[ http://issues.apache.org/jira/browse/TUSCANY-118?page=all ]

Raymond Feng updated TUSCANY-118:
---------------------------------

    Attachment: rfeng_sdo_stax.diff

Per the discussion with Frank and Jeremy about the dependency and license 
concerns, I updated the patch based on some utility classes from the latest 
Axis2 code base. 

It contains two parts:

1) The code to deal with SDO DataObject <--> XMLStreamReader (should go to 
tuscany-sdo-impl) 
2) The utility to deal with SDO DataObject <--> AXIOM OMElement (should go to 
tuscany-binding-axis2)

Part1 only has dependencies on the StAX APIs.
Part2 has dependencies to Axiom.

This is the first cut which can be further tuned. Please review and comment.

As part of the testing, I discovered an issue with the Axiom and JIRA 
WSCOMMONS-10 was created to track it.

Thanks,
Raymond

> 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_sdo_stax.diff, rfeng_stax.diff, rfeng_stax_axis_095.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