[ https://issues.apache.org/jira/browse/WSCOMMONS-525?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12842461#action_12842461 ]
Andreas Veithen commented on WSCOMMONS-525: ------------------------------------------- The problem I see is that when starting from a Java object (in contrast to a binary or character stream), it is not meaningful to assign a content type. In addition, there is no meaningful way to implement Builder#processDocument, and DataSourceMessageBuilder#processDocument would only support a subclass of DataSource. Thus, the resulting component is not a message builder as defined by the Builder interface (because it can't be used through that interface). Therefore I don't see any good reason why such a component should implement Builder at all (instead of a new interface specific to Object->SOAP infoset conversion). > 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.