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.