You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Andreas Veithen (JIRA)" <ji...@apache.org> on 2009/06/30 02:26:47 UTC

[jira] Created: (AXIS2-4413) getPullParser methods generated by ADB are broken

getPullParser methods generated by ADB are broken
-------------------------------------------------

                 Key: AXIS2-4413
                 URL: https://issues.apache.org/jira/browse/AXIS2-4413
             Project: Axis 2.0 (Axis2)
          Issue Type: Bug
          Components: adb
            Reporter: Andreas Veithen


When working on the ADB test suite, I noticed that the getPullParser methods generated by ADB don't work properly. 98 (!) out of 114 existing test cases (working properly with serialize or getOMElement) fail when trying to use getPullParser.

Probably this is the reason why ADBDataSource#getReader builds an Axiom tree from the bean and gets the XMLStreamReader from this tree (which is highly inefficient) instead of using getPullParser.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (AXIS2-4413) getPullParser methods generated by ADB are broken

Posted by "Amila Chinthaka Suriarachchi (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AXIS2-4413?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12725471#action_12725471 ] 

Amila Chinthaka Suriarachchi commented on AXIS2-4413:
-----------------------------------------------------

At the time of ADB starts it had only getPullparser method. which returns a xml reader. This is inefficient compared to directly serialise to the xmlstream writer since it creates an intermediate Axiom object.

Then it started with the serialise method which directly serialise the java objects to xml stream writer. However some modules like rampart requires to build the Axiom tree. But at that time (as you have noticed) serialise method has developed a lot. So I did the strategy you have mentioned to re use the existing logic in the serialise method.

 public XMLStreamReader getReader() throws XMLStreamException {
        // since only ADBBeans related to elements can be serialized
        // we are safe in passing null here.
        MTOMAwareOMBuilder mtomAwareOMBuilder = new MTOMAwareOMBuilder();
        serialize(mtomAwareOMBuilder);
        return mtomAwareOMBuilder.getOMElement().getXMLStreamReader();
    }

I think within the axiom it gets the xmlstream reader and build the Axom tree which already build at the mtomAwareOMBuilder.getOMElement(). 

Therefore if we can add an method to OMDataSourceExt to get an OMElement instead of xmlstream reader we can eliminate this efficiency while reusing the existing serialise logic.

Otherwise we need to fix getPullParser method with I believe would take a lot of time.

> getPullParser methods generated by ADB are broken
> -------------------------------------------------
>
>                 Key: AXIS2-4413
>                 URL: https://issues.apache.org/jira/browse/AXIS2-4413
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: adb
>            Reporter: Andreas Veithen
>
> When working on the ADB test suite, I noticed that the getPullParser methods generated by ADB don't work properly. 98 (!) out of 114 existing test cases (working properly with serialize or getOMElement) fail when trying to use getPullParser.
> Probably this is the reason why ADBDataSource#getReader builds an Axiom tree from the bean and gets the XMLStreamReader from this tree (which is highly inefficient) instead of using getPullParser.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.