You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tuscany.apache.org by "Raymond Feng (JIRA)" <tu...@ws.apache.org> on 2006/04/19 00:59:21 UTC

[jira] Updated: (TUSCANY-118) Adding Serializer/Deserializer for DataObject using StAX for better Axis2 AXIOM integration

     [ 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