camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Willem Jiang <willem.ji...@gmail.com>
Subject Re: Questions about camel Exchange that contains a CxfMessage with POJO dataFormat
Date Mon, 23 Mar 2009 01:04:43 GMT
Hi William,

Just as Claus said, can we use the Camel 2.0 syntax to specify the data
format name? Like this
 String DATA_FORMAT_PROPERTY = "CamelCXFDataFormat";
It is because we use it in Camel, and it could make Exchange property
JMS friendly.

And We keep use the constant of DATA_FORMAT_PROPERTY in Camel 1.x.


Willem


William Tam wrote:
> Hi,
> 
> I think the DATA_FORMAT property in the exchange was not intended to
> be used outside CXF component before.   In 1.x, the DATA_FORMAT was
> only set by the CXF producer and not by the consumer.  So, if we are
> going to make it "public", we should set it in both side to be useful.
>   I agree that 2.x should use DATA_FORMAT in CxfConstants rather than
> DataFormat.class.getName().  I'll fire a Jira.
> 
> Cheers,
> William
> 
> On Sun, Mar 22, 2009 at 3:42 AM, Claus Ibsen <claus.ibsen@gmail.com> wrote:
>> Hi
>>
>> Can we get a CfxConstants class/interface containing all the keys end
>> users need to know about using camel-cxf?
>>
>> And org.apache.camel.component.cxf.DataFormat.class.getName() isn't the same as
>> "org.apache.camel.component.cxf.DataFormat" ?
>>
>> And is there a compelling reason why this key hasn't been migrated to
>> the new short form Camel 2.0 syntax?
>>
>>
>> On Sun, Mar 22, 2009 at 5:49 AM, Willem Jiang <willem.jiang@gmail.com> wrote:
>>> Hi Michael,
>>>
>>> You can get the dataFromat info by checking the exchange's property.
>>> Camel 2.0
>>> exchange.getProperty(org.apache.camel.component.cxf.DataFormat.class.getName());
>>>
>>> For Camel 1.x, you may try to use this
>>> exchange.getProperty(org.apache.camel.component.cxf.CxfExchange.DATA_FORMAT);
>>>
>>> Willem
>>>
>>> Michael Ramnarine wrote:
>>>> Thanks Willem,
>>>>
>>>> We were looking to write a custom processor that doesn't know ahead of
>>>> time which dataFormat the client will be using to access the endpoint.
>>>>
>>>> Is there anything on the camel exchange or camel message or cxf message
>>>> that we can check to at least tell which dataFormat is coming into the
>>>> custom processor?  I suppose we could check the class type of the
>>>> exchange.getIn().getBody(), but can you think of a better way?
>>>>
>>>> -Mike
>>>>
>>>> -----Original Message-----
>>>> From: Willem Jiang [mailto:willem.jiang@gmail.com]
>>>> Sent: Friday, March 20, 2009 3:21 AM
>>>> To: users@camel.apache.org
>>>> Subject: Re: Questions about camel Exchange that contains a CxfMessage
>>>> with POJO dataFormat
>>>>
>>>> Hi Michael,
>>>>
>>>> Since CXF using Stax to handle the XML message , it does not cache the
>>>> whole xml message when it do the marshaling work.
>>>>
>>>> For the POJO Dataformate, you can't get the xml message from the
>>>> CXFMessage instace, since the inputstream is consumed by the
>>>> XMLStreamReader.
>>>>
>>>> Can I know the reason why are you want to get the xml message even you
>>>> have the list of the request parameters ?
>>>>
>>>> Willem
>>>>
>>>> Michael Ramnarine wrote:
>>>>> One thing I just noticed...
>>>>> Using getContentFormats() on a POJO CxfMessage for a soap over http
>>>> endpoint via:
>>>>>    CxfMessage message = (CxfMessage) exchange.getIn()
>>>>>    message.getMessage().getContentFormats()
>>>>>
>>>>> Returns:
>>>>>    [interface java.util.List, class java.io.InputStream, interface
>>>> javax.xml.stream.XMLStreamReader, interface org.w3c.dom.Node]
>>>>> Will one of these have the original xml message?
>>>>> How do I use these content formats to get that message in w3c format?
>>>>> -Mike
>>>>>
>>>>> ________________________________________
>>>>> From: Michael Ramnarine
>>>>> Sent: Thursday, March 19, 2009 10:46 PM
>>>>> To: 'users@camel.apache.org'
>>>>> Subject: Questions about camel Exchange that contains a CxfMessage
>>>> with POJO dataFormat
>>>>> Is the original xml message available given a camel Exchange for a
>>>> soap message that contains a CxfMessage with POJO dataFormat?
>>>>> Specifically, working in a custom processor, if the inbound message is
>>>> a CxfMessage with MESSAGE dataFormat, the body is a copy of the original
>>>> raw message (accessible via exchange.getIn().getBody()).  However, if
>>>> the inbound message is POJO dataFormat, then getBody() only returns a
>>>> list containing the Java parameters for the operation being invoked.  Is
>>>> there anyway to get at the raw xml message when the inbound message is
>>>> in POJO dataFormat?
>>>>> Also, is there a way to determine the dataFormat (MESSAGE, PAYLOAD, or
>>>> POJO) from the camel Exchange or CxfMessage?
>>>>> -Mike
>>>>>
>>>>>
>>>>
>>>
>>
>>
>> --
>> Claus Ibsen
>> Apache Camel Committer
>>
>> Open Source Integration: http://fusesource.com
>> Blog: http://davsclaus.blogspot.com/
>>
> 


Mime
View raw message