[
https://issues.apache.org/jira/browse/WSCOMMONS-540?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andreas Veithen resolved WSCOMMONS-540.
---------------------------------------
Resolution: Fixed
Implemented as described above.
> CustomBuilder interface is not well defined for optimized binary data
> ---------------------------------------------------------------------
>
> Key: WSCOMMONS-540
> URL: https://issues.apache.org/jira/browse/WSCOMMONS-540
> Project: WS-Commons
> Issue Type: Bug
> Components: AXIOM
> Reporter: Andreas Veithen
> Assignee: Andreas Veithen
> Fix For: Axiom 1.2.9
>
>
> The CustomBuilder contract doesn't specify very well how the implementation
> is supposed to handle documents with optimized binary data (either from an
> XOP encoded document or exposed by the OMConstants.DATA_HANDLER /
> DataHandlerReader extension).
> Situation in Axiom 1.2.8: In all cases, the XMLStreamReader passed to the
> CustomBuilder is the original reader passed to StAXOMBuilder. This means that
> if the document/message is XOP, the XMLStreamReader passed to CustomBuilder
> represents an XOP encoded stream. However, in other cases the XMLStreamReader
> may expose optimized binary data using the OMConstants.DATA_HANDLER property.
> Therefore the CustomBuilder needs to be able to handle two different cases.
> Current situation (since r795595): If the original document/message is XOP,
> then the XMLStreamReader passed to CustomBuilder will now be a
> XOPDecodingStreamReader exposing the optimized binary data through a
> DataHandlerReader. Thus, in all cases, the XMLStreamReader passed to
> CustomBuilder represents plain XML with optional support for
> DataHandlerReader. That is consistent and suitable for CustomBuilders that
> require the binary data as base64 encoded character data or that support the
> Axiom specific DataHandlerReader extension. However, it makes things more
> difficult for CustomBuilders that require an XOP encoded stream. This is
> often required when interacting with third-party libraries to make sure that
> binary data is handled efficiently. An example of this is JAXB2 (see also
> WSCOMMONS-344).
> Suggested fix: Complete the Javadoc of the CustomBuilder to specify how
> StAXOMBuilder delivers optimized binary data and how the implementation can
> get an XOP encoded stream. For the last part, it is necessary to cover the
> following cases:
> 1. If the XMLStreamReader passed to StAXOMBuilder was created by parsing a
> plain XML document, then no special action is required.
> 2. If the original document is XOP encoded, then the XOPDecodingStreamReader
> needs to be unwrapped to get access to the original stream.
> 3. If the XMLStreamReader passed to StAXOMBuilder implements the
> DataHandlerReader extension, then it needs to be wrapped with an
> XOPEncodingStreamReader.
> Obviously, there should be a utility method implementing this algorithm.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.