Hi All
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 and also create a JIRA .
Thanks
Indika