Adding Serializer/Deserializer for DataObject using StAX for better Axis2 AXIOM 
integration
-------------------------------------------------------------------------------------------

         Key: TUSCANY-118
         URL: http://issues.apache.org/jira/browse/TUSCANY-118
     Project: Tuscany
        Type: Improvement
  Components: Java SCA Axis Integration, Java SDO Implementation  
    Reporter: Raymond Feng
 Attachments: rfeng_stax.diff

Here are the key classes:

1) DataObjectStAXWrapper
Implements "org.apache.axis2.databinding.ADBBean" interface by feeding elements 
and attibutes to "org.apache.axis2.databinding.utils.ADBPullParser". It can be 
used as
a Serializer for DataObject to be serialized as OMElement. 
 
2) StAXXMLResourceImpl and StAX2SAXAdapter
StAXXMLResourceImpl extends "org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl" to 
provide additional methods to load DataObject directly from XMLStreamReader. 
StAX2SAXAdpter is responsible to pull StAX events from XMLSreamReader and 
generate SAX events so that they can be consumed by XMLResourceImpl.

3) DataObjectStAXWrapperTestCase 
It tests the round trip for "DataObject --> OMElment --> DataObject". Both 
static SDO model (pre-generated) and dynamic SDO model (loaded from WSDL/XSD) 
are covered. It also test the cost of the optimized roundtrip against the old 
"quick and dirty"  way (DataObject --> OutputStream --> InputStream --> 
OMElement --> OutputStream --> InputStream --> DataObject).

It shows more that 400% performance gain.
 
It seems that files in set 1 and 2 are more fit to be included in the SDO 
sub-project. The following helper method is desirable.

void SDOUtil.load(TypeHelper scope, XMLStreamReader reader, Object options)
XMLStreamReader SDOUtil.save(TypeHelper scope, XMLDocument document, Object 
options)


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to