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 "Rich Scheuerle (JIRA)" <ji...@apache.org> on 2010/01/15 23:24:54 UTC

[jira] Created: (AXIS2-4603) JAX-WS: JAXB Unmarshal code no longer has direct access to the required XMLStreamReader

JAX-WS: JAXB Unmarshal code no longer has direct access to the required XMLStreamReader
---------------------------------------------------------------------------------------

                 Key: AXIS2-4603
                 URL: https://issues.apache.org/jira/browse/AXIS2-4603
             Project: Axis2
          Issue Type: Bug
          Components: jaxws
            Reporter: Rich Scheuerle
            Assignee: Rich Scheuerle


Background:

The JAX-WS programming model uses JAX-B objects as the representation of user business data.
The JAX-WS runtime in Axis2 is responsibile for building the JAXBContext and marshaling and umarshaling the JAX-B objects.
The marshaling and unmarshaling includes marshaling and unmarshaling MTOM data.

When unmarshaling JAXB, the streaming, non-cached parser (original XMLStreamReader) or cached XMLStreamReader (OMStaXWrapper) is used
as the input XMLStreamReader for the JAXB unmarshal code.

Problem:

The Axiom implementation has been changed such that the non-cached parser is now wrapped by one or more other axiom wrappers or delegates.
Failure to the access the original steaming parser has resulted in poorer performance in some cases when unmarshaling
WSCommons-518 now exposes additional methods to access the original non-cached parser.





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


[jira] Commented: (AXIS2-4603) JAX-WS: JAXB Unmarshal code no longer has direct access to the required XMLStreamReader

Posted by "Rich Scheuerle (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AXIS2-4603?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12800977#action_12800977 ] 

Rich Scheuerle commented on AXIS2-4603:
---------------------------------------

Thanks for the suggestion, but there are two problems with that approach. 

1) The JAXB Umarshaller works more efficiently if the XMLStreamReader from the same vendor is used.  Thus there is a need to access the original parser.

2) Adding an XOPEncodingStreamReader may be one solution for accessing DataHandlers...but I believe that it also adds a buffering.

thanks,

Rich

> JAX-WS: JAXB Unmarshal code no longer has direct access to the required XMLStreamReader
> ---------------------------------------------------------------------------------------
>
>                 Key: AXIS2-4603
>                 URL: https://issues.apache.org/jira/browse/AXIS2-4603
>             Project: Axis2
>          Issue Type: Bug
>          Components: jaxws
>            Reporter: Rich Scheuerle
>            Assignee: Rich Scheuerle
>   Original Estimate: 120h
>  Remaining Estimate: 120h
>
> Background:
> The JAX-WS programming model uses JAX-B objects as the representation of user business data.
> The JAX-WS runtime in Axis2 is responsibile for building the JAXBContext and marshaling and umarshaling the JAX-B objects.
> The marshaling and unmarshaling includes marshaling and unmarshaling MTOM data.
> When unmarshaling JAXB, the streaming, non-cached parser (original XMLStreamReader) or cached XMLStreamReader (OMStaXWrapper) is used
> as the input XMLStreamReader for the JAXB unmarshal code.
> Problem:
> The Axiom implementation has been changed such that the non-cached parser is now wrapped by one or more other axiom wrappers or delegates.
> Failure to the access the original steaming parser has resulted in poorer performance in some cases when unmarshaling
> WSCommons-518 now exposes additional methods to access the original non-cached parser.

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


[jira] Commented: (AXIS2-4603) JAX-WS: JAXB Unmarshal code no longer has direct access to the required XMLStreamReader

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

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

Please have a look at scenario 3 here[1].

Both adb and jaxbri data-bindings access the XMLStreamReader using the standard  getXMLStreamReaderWithoutCaching method. Further I have done some tests and found out that CXF jaxb implementation performance lies in between adb and jaxbri.

So I think main performance bottle neck for JAXB in some where else.


[1] http://isurues.wordpress.com/2009/10/05/apache-axis2-performance-results/ 

> JAX-WS: JAXB Unmarshal code no longer has direct access to the required XMLStreamReader
> ---------------------------------------------------------------------------------------
>
>                 Key: AXIS2-4603
>                 URL: https://issues.apache.org/jira/browse/AXIS2-4603
>             Project: Axis2
>          Issue Type: Bug
>          Components: jaxws
>            Reporter: Rich Scheuerle
>            Assignee: Rich Scheuerle
>   Original Estimate: 120h
>  Remaining Estimate: 120h
>
> Background:
> The JAX-WS programming model uses JAX-B objects as the representation of user business data.
> The JAX-WS runtime in Axis2 is responsibile for building the JAXBContext and marshaling and umarshaling the JAX-B objects.
> The marshaling and unmarshaling includes marshaling and unmarshaling MTOM data.
> When unmarshaling JAXB, the streaming, non-cached parser (original XMLStreamReader) or cached XMLStreamReader (OMStaXWrapper) is used
> as the input XMLStreamReader for the JAXB unmarshal code.
> Problem:
> The Axiom implementation has been changed such that the non-cached parser is now wrapped by one or more other axiom wrappers or delegates.
> Failure to the access the original steaming parser has resulted in poorer performance in some cases when unmarshaling
> WSCommons-518 now exposes additional methods to access the original non-cached parser.

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


[jira] Commented: (AXIS2-4603) JAX-WS: JAXB Unmarshal code no longer has direct access to the required XMLStreamReader

Posted by "Andreas Veithen (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AXIS2-4603?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12800971#action_12800971 ] 

Andreas Veithen commented on AXIS2-4603:
----------------------------------------

If you plug an XOPEncodingStreamReader in between the XMLStreamReader you get from Axiom and JAXB's unmarshaller (and remove the call to setInlineMTOM), you should be able to get this for free without any changes to Axiom. You can then use XOPEncodingStreamReader#getDataHandler to get the DataHandlers for the xop:Include elements produced by the encoder. In addition this is also more robust since it is designed to work correctly regardless of the origin of the StAX stream (cached from parser, non-cached from parser, Axiom tree created programmatically).

> JAX-WS: JAXB Unmarshal code no longer has direct access to the required XMLStreamReader
> ---------------------------------------------------------------------------------------
>
>                 Key: AXIS2-4603
>                 URL: https://issues.apache.org/jira/browse/AXIS2-4603
>             Project: Axis2
>          Issue Type: Bug
>          Components: jaxws
>            Reporter: Rich Scheuerle
>            Assignee: Rich Scheuerle
>   Original Estimate: 120h
>  Remaining Estimate: 120h
>
> Background:
> The JAX-WS programming model uses JAX-B objects as the representation of user business data.
> The JAX-WS runtime in Axis2 is responsibile for building the JAXBContext and marshaling and umarshaling the JAX-B objects.
> The marshaling and unmarshaling includes marshaling and unmarshaling MTOM data.
> When unmarshaling JAXB, the streaming, non-cached parser (original XMLStreamReader) or cached XMLStreamReader (OMStaXWrapper) is used
> as the input XMLStreamReader for the JAXB unmarshal code.
> Problem:
> The Axiom implementation has been changed such that the non-cached parser is now wrapped by one or more other axiom wrappers or delegates.
> Failure to the access the original steaming parser has resulted in poorer performance in some cases when unmarshaling
> WSCommons-518 now exposes additional methods to access the original non-cached parser.

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


[jira] Commented: (AXIS2-4603) JAX-WS: JAXB Unmarshal code no longer has direct access to the required XMLStreamReader

Posted by "Andreas Veithen (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AXIS2-4603?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12801017#action_12801017 ] 

Andreas Veithen commented on AXIS2-4603:
----------------------------------------

> 1) The JAXB Umarshaller works more efficiently if the XMLStreamReader from the same vendor is used. Thus there is a need to access the original parser. 

I'm not going to ask which vendor we are talking about :-)

More seriously: if I'm not mistaken, even in Axiom 1.2.8 or 1.2.7, there would still be at least the OMStAXWrapper between the unmarshaller and the original parser. Do I miss something here, or are you also proposing to allow to unwrap the OMStAXWrapper?

> 2) Adding an XOPEncodingStreamReader may be one solution for accessing DataHandlers...but I believe that it also adds a buffering. 

Nope. It has been specifically designed not to fetch the DataHandler object until explicitly requested through XOPEncodingStreamReader#getDataHandler.

> JAX-WS: JAXB Unmarshal code no longer has direct access to the required XMLStreamReader
> ---------------------------------------------------------------------------------------
>
>                 Key: AXIS2-4603
>                 URL: https://issues.apache.org/jira/browse/AXIS2-4603
>             Project: Axis2
>          Issue Type: Bug
>          Components: jaxws
>            Reporter: Rich Scheuerle
>            Assignee: Rich Scheuerle
>   Original Estimate: 120h
>  Remaining Estimate: 120h
>
> Background:
> The JAX-WS programming model uses JAX-B objects as the representation of user business data.
> The JAX-WS runtime in Axis2 is responsibile for building the JAXBContext and marshaling and umarshaling the JAX-B objects.
> The marshaling and unmarshaling includes marshaling and unmarshaling MTOM data.
> When unmarshaling JAXB, the streaming, non-cached parser (original XMLStreamReader) or cached XMLStreamReader (OMStaXWrapper) is used
> as the input XMLStreamReader for the JAXB unmarshal code.
> Problem:
> The Axiom implementation has been changed such that the non-cached parser is now wrapped by one or more other axiom wrappers or delegates.
> Failure to the access the original steaming parser has resulted in poorer performance in some cases when unmarshaling
> WSCommons-518 now exposes additional methods to access the original non-cached parser.

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


[jira] Resolved: (AXIS2-4603) JAX-WS: JAXB Unmarshal code no longer has direct access to the required XMLStreamReader

Posted by "Rich Scheuerle (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AXIS2-4603?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Rich Scheuerle resolved AXIS2-4603.
-----------------------------------

    Resolution: Fixed

> JAX-WS: JAXB Unmarshal code no longer has direct access to the required XMLStreamReader
> ---------------------------------------------------------------------------------------
>
>                 Key: AXIS2-4603
>                 URL: https://issues.apache.org/jira/browse/AXIS2-4603
>             Project: Axis2
>          Issue Type: Bug
>          Components: jaxws
>            Reporter: Rich Scheuerle
>            Assignee: Rich Scheuerle
>   Original Estimate: 120h
>  Remaining Estimate: 120h
>
> Background:
> The JAX-WS programming model uses JAX-B objects as the representation of user business data.
> The JAX-WS runtime in Axis2 is responsibile for building the JAXBContext and marshaling and umarshaling the JAX-B objects.
> The marshaling and unmarshaling includes marshaling and unmarshaling MTOM data.
> When unmarshaling JAXB, the streaming, non-cached parser (original XMLStreamReader) or cached XMLStreamReader (OMStaXWrapper) is used
> as the input XMLStreamReader for the JAXB unmarshal code.
> Problem:
> The Axiom implementation has been changed such that the non-cached parser is now wrapped by one or more other axiom wrappers or delegates.
> Failure to the access the original steaming parser has resulted in poorer performance in some cases when unmarshaling
> WSCommons-518 now exposes additional methods to access the original non-cached parser.

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