Paul

I may be wrong, however, I haven't seen many people actually using JMS Map messages.. The Axis2 JMS transport thus supports bytes and text messages. So I would think this is a cool feature, but only few many find it actually useful...

asankha

Paul Fremantle wrote:
One more thought. A number of systems use a java Map message as a core
data type. Especially a Map<String,Object> where Object is actually a
simple type object such as Float, Double, String, Boolean

In particular JMS supports these. I think it would be valuable to
define this as a core Synapse datatype. For example, it would be cool
to be able to mediate between a JMS Map message and another JMS Map
message, and have a well-defined schema for what the Axiom
representation would look like in Synapse.

Paul

On 7/26/07, Paul Fremantle <[EMAIL PROTECTED]> wrote:
  
Hi

As Synapse is getting more interest I see a number of people looking
to use it and extend it for binary and text content types as well as
XML.

We already support those from some transports (e.g. JMS) but each
transport defines its own way of handling these things, and so I can't
be sure that a message coming in as binary/jms can go out correctly as
binary/http post.

So here is what I'd like to do:

I'd like to have explicit methods:

OMElement get/setPayload()
DataHandler get/setBytesPayload()
String get/setTextPayload()
boolean isBinary();
boolean isText();
int getPayloadType()

In order to make this work, we should have two well defined QNames -
one for binary and one for text.

For example binary payload will be in a wrapper element called:
<a:binary xmlns:a="http://ws.apache.org/commons/axiom/ns/data">

And text payload could be in
<a:text  xmlns:a="http://ws.apache.org/commons/axiom/ns/data">

So if I setBinaryPayload, basically what happens (under the covers is)

OMElement el = fac.createOMElement("binary", axNS);
OMText bin = fac.createOMText(dh, true);
el.addChild(bin);
getBody().setFirstChild(el);

Now I'd be very happy to do this just in Synapse, but it makes much
more sense to do it in Axiom. That would mean everyone using this
(axis2 transports, synapse mediators, etc) would inherit the same
definitions and use the data in a consistent way. Which is the point
of this.

Paul


--
Paul Fremantle
Co-Founder and VP of Technical Sales, WSO2
OASIS WS-RX TC Co-chair

blog: http://pzf.fremantle.org
[EMAIL PROTECTED]

"Oxygenating the Web Service Platform", www.wso2.com

    


  
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to