[
https://issues.apache.org/jira/browse/WSCOMMONS-525?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12840701#action_12840701
]
indika priyantha kumara commented on WSCOMMONS-525:
---------------------------------------------------
Andreas, thanks for feedback ....
I think this can be done with DataSourceMessageBuilder interface. Anyone wants
to create SOAP inforset in different ways using java objects, can implement it.
Implementations can be specified with content type rules and axis2 builder
configuration (so it is totally configurable).
Within the implementation of the following method
public OMElement processDocument(DataSource dataSource, String contentType,
MessageContext messageContext) throws AxisFault
They have to check datasource is an instance of ObjectDataSource .... (So, only
change required is to move ObjectDataSource (in the given patch) out of Jms
transport)...
With this approach, the given patch can be used 'as-is' except changes to the
ObjectDataSource. The ObjectMessageBuilder in the given patch is a delegator
... It delegates if there is a builder already selected based on the content
type ....
What do you think about this approach ?
Thanks
Indika
> Supporting JMS Object Messages
> ------------------------------
>
> Key: WSCOMMONS-525
> URL: https://issues.apache.org/jira/browse/WSCOMMONS-525
> Project: WS-Commons
> Issue Type: Improvement
> Components: Transport
> Affects Versions: Transports 1.0
> Reporter: indika priyantha kumara
> Fix For: Transports 1.1
>
> Attachments: jms-object-msg.patch
>
>
> I have attached herewith a patch to support Object Messages. What I did is as
> follows
> 1) Add a content type rule as follows
> <parameter name="transport.jms.ContentType">
> <rules>
>
> <objectMessage>application/java-serialized-object</objectMessage>
> </rules>
> </parameter>
> Even there is no content type for Java object messages, I have to specify one
> due to fact the JMS message receiver validates the content type. Furthermore,
> if there is content type, we can specify message builder / formatters.
> 2) When an Object message is received, it is wrapped with an
> ObjectDataSource and processed by the ObjectMessageBuilder. Within the
> ObjectMessageBuilder , if the content type is
> ''application/java-serialized-object" , It just wraps the ObjectDataSource
> using a DataHandler. The actual object can be accessed directly through the
> ObjectDataSource. This is useful for Apache Synapse as a mediator can access
> the object directly and do whatever it needs. If the content type is
> something other than ''application/java-serialized-object", selects the
> correct builder for the content type and build the java object with it by
> giving object as an XML stream. I here used XML Encoder... I will change it
> later.
> 3) When sending Object Messages, within the JMS transport, the object
> can be directly accessed from the ObjectDataSource. For other transport, if
> it is useful, ObjectMessageFormatter can be used.At later, I can improve
> ObjectDataSource to rerun the representation of Object based on the content
> type. E.g. XML, byte, etc... representations
> Any feedback is welcome. I will improve as per any suggestions and update the
> patch
> Thanks Indika
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.