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.