isn't the following mapping is suitable ?

(In transport's specific headers) -> (Axis2 internal representations) ->
(Out transport's specific headers )

~ Indika

On Tue, Feb 1, 2011 at 7:55 AM, Andreas Veithen
<[email protected]>wrote:

> Either the JMS provider accepts these property names and there is no
> reason for the JMS transport to throw an exception (because this would
> break existing use cases) or the provider rejects them and will throw
> an exception (as in Hiranya's original post). Therefore I don't see
> any reason to modify the JMS transport.
>
> The real problem is that blindly copying transport headers from an
> incoming to an outgoing message is in general not a good idea and will
> lead to unexpected results. One can argue that Synapse's default
> behavior (which is to copy transport headers) is suboptimal, but
> that's a question of point of view.
>
> Andreas
>
> On Mon, Jan 31, 2011 at 06:39, Ruwan Linton <[email protected]>
> wrote:
> > +1
> > I think the fix should be that the JMS transport should throw an
> exception
> > in the case of a presence of character '-' in the property names. Rest of
> it
> > really belongs to synapse, transport switching scenario.
> > Ruwan
> > On Sun, Jan 30, 2011 at 9:09 PM, Amila Suriarachchi
> > <[email protected]> wrote:
> >>
> >>
> >> On Sat, Jan 29, 2011 at 12:09 PM, Hiranya Jayathilaka
> >> <[email protected]> wrote:
> >>>
> >>> Hi Amila,
> >>>
> >>> On Sat, Jan 29, 2011 at 11:45 AM, Amila Suriarachchi
> >>> <[email protected]> wrote:
> >>>>
> >>>> if those properties are not meaning full in JMS then the correct way
> is
> >>>> to remove from the synapse layer. Synapse does the jms transport
> sender
> >>>> invocation. So it should not send any unrelated stuff.
> >>>
> >>> Synapse does not distinguish between different transports. It's a
> generic
> >>> mediation layer which interacts with all the transports the same way.
> So I
> >>> don't think special casing JMS invocations is a very good solution for
> >>> Synapse. Also it's not Synapse which invokes the sender. It's the
> underlying
> >>> Axis2 engine (see the stack trace).
> >>
> >> I did not intended to put that to synapse code. When some one writes a
> >> synapse configuration he knows he is going to invoke a jms transport. So
> he
> >> can remove those headers in his synapse configuration. Synapse In
> sequence
> >> (or send mediator) initiates the message sending part.
> >>
> >>>
> >>> It seems it's wrong to have '-' in JMS property names according to the
> >>> specs and that's why many brokers don't allow that.
> >>
> >> If '- 'is not allowed in JMS, even JMS transport should throw an
> >> exception. JMS transport should not try to make invalid headers to valid
> >> formats. These invalid headers are given by the synapse configuration.
> so it
> >> has to remove them.
> >>
> >> thanks,
> >> Amila.
> >>
> >>
> >>>
> >>> However some brokers (eg: ActiveMQ) are more flexible in this area. So
> I
> >>> think this is something we should fix in the JMS transport level once
> and
> >>> for all. WDYT?
> >>> Thanks,
> >>> Hiranya
> >>>
> >>>>
> >>>> thanks,
> >>>> Amila.
> >>>>
> >>>> On Fri, Jan 28, 2011 at 10:18 AM, Hiranya Jayathilaka
> >>>> <[email protected]> wrote:
> >>>>>
> >>>>> Hi Folks,
> >>>>> Many JMS brokers/clients do not allow setting properties with the
> >>>>> character '-' in the name, on JMS messages. For instance IBM
> Websphere MQ
> >>>>> client library throws the following error if this is attempted:
> >>>>> javax.jms.MessageFormatException: MQJMS1058: Invalid message property
> >>>>> name: Content-Type
> >>>>> at
> >>>>>
> com.ibm.jms.JMSMessage.newMessageFormatException(JMSMessage.java:4772)
> >>>>> at com.ibm.jms.JMSMessage.setStringProperty(JMSMessage.java:5771)
> >>>>> at
> >>>>>
> org.apache.synapse.transport.jms.JMSSender.createJMSMessage(JMSSender.java:424)
> >>>>> at
> >>>>>
> org.apache.synapse.transport.jms.JMSSender.sendMessage(JMSSender.java:207)
> >>>>> at
> >>>>>
> org.apache.synapse.transport.base.AbstractTransportSender.invoke(AbstractTransportSender.java:120)
> >>>>> at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:448)
> >>>>> at
> >>>>>
> org.apache.synapse.core.axis2.DynamicAxisOperation$DynamicOperationClient.send(DynamicAxisOperation.java:190)
> >>>>> at
> >>>>>
> org.apache.synapse.core.axis2.DynamicAxisOperation$DynamicOperationClient.executeImpl(DynamicAxisOperation.java:174)
> >>>>> at
> >>>>>
> org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)
> >>>>>
> >>>>> In Synapse we set request headers as properties on the outgoing JMS
> >>>>> message. If the request was received over HTTP, it will probably have
> a few
> >>>>> headers with the '-' character (Content-Type, Transfer-Encoding etc).
>  So
> >>>>> this leads to the above error with certain JMS providers. What should
> be the
> >>>>> correct fix for this? One option is to fix this in JMSSender and
> replace the
> >>>>> '-' with something like '_' in property names. We can also probably
> fix this
> >>>>> in Synapse layer by looking at EPR prefix (right now we workaround by
> >>>>> removing such headers using some mediators). Thoughts?
> >>>>> Thanks
> >>>>> --
> >>>>> Hiranya Jayathilaka
> >>>>> Senior Software Engineer;
> >>>>> WSO2 Inc.;  http://wso2.org
> >>>>> E-mail: [email protected];  Mobile: +94 77 633 3491
> >>>>> Blog: http://techfeast-hiranya.blogspot.com
> >>>>
> >>>>
> >>>>
> >>>> --
> >>>> Amila Suriarachchi
> >>>> WSO2 Inc.
> >>>> blog: http://amilachinthaka.blogspot.com/
> >>>
> >>>
> >>>
> >>> --
> >>> Hiranya Jayathilaka
> >>> Senior Software Engineer;
> >>> WSO2 Inc.;  http://wso2.org
> >>> E-mail: [email protected];  Mobile: +94 77 633 3491
> >>> Blog: http://techfeast-hiranya.blogspot.com
> >>
> >>
> >>
> >> --
> >> Amila Suriarachchi
> >> WSO2 Inc.
> >> blog: http://amilachinthaka.blogspot.com/
> >
> >
> >
> > --
> > Ruwan Linton
> > Member, Apache Software Foundation; http://www.apache.org
> > Software Architect & Product Manager, WSO2 Inc.; http://wso2.org
> > phone: +1 408 754 7388 ext 51789
> > email: [email protected]; cell: +94 77 341 3097
> > blog: http://blog.ruwan.org
> > linkedin: http://www.linkedin.com/in/ruwanlinton
> > google: http://www.google.com/profiles/ruwan.linton
> > tweet: http://twitter.com/ruwanlinton
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

Reply via email to