StreamingOMSerializer expands OMSourcedElement nodes
----------------------------------------------------
Key: WSCOMMONS-512
URL: https://issues.apache.org/jira/browse/WSCOMMONS-512
Project: WS-Commons
Issue Type: Bug
Components: AXIOM
Reporter: Rich Scheuerle
Assignee: Rich Scheuerle
Background:
An OM tree may have one or more OMSourcedElement nodes in the tree. An
OMSourcedElement represents an OMElement but contains its content in an
alternative form (String, bytes, JAXB object etc.)
The OMSourcedElement nodes allow OM to represent a message with a much flatter
tree.
Problem:
If an OM tree containing OMSourcedElements is serialized with the
StreamingOMSerializer, the OMSourcedElements are inadvertently expanded. This
extra processing is slow and unnecessary.
Solution:
The StreamingOMSerializer uses an OMNavigator to walk the incoming
XMLStreamReader events. When the OMNavigator encounters a OMSourcedElement,
it expands the OMSourcedElement so that it can generated the XMLStreamReader
events for the content.
The solution is to add a property to the OMNavigator to allow it to tree
OMSourcedElements as leaf objects. In such cases, the StreamingOMSerializer
can gain access to the OMDataSource and write it out directly. This increases
performance because it eliminates the expansion of the tree.
I am working on a series of validation tests and a code solution.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.