You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by wt...@apache.org on 2009/03/24 03:14:21 UTC

svn commit: r757638 - in /camel/branches/camel-1.x: ./ components/camel-cxf/src/main/java/org/apache/camel/component/cxf/ components/camel-cxf/src/test/java/org/apache/camel/component/cxf/

Author: wtam
Date: Tue Mar 24 02:14:20 2009
New Revision: 757638

URL: http://svn.apache.org/viewvc?rev=757638&view=rev
Log:
[CAMEL-1476]  Set property in the exchange to identify CXF component DataFormat mode (payload, message, or pojo)

Modified:
    camel/branches/camel-1.x/   (props changed)
    camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CamelInvoker.java
    camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfConsumer.java
    camel/branches/camel-1.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerTest.java

Propchange: camel/branches/camel-1.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Mar 24 02:14:20 2009
@@ -1 +1 @@
-/camel/trunk:736980,739733,739904,740251,740295,740306,740596,740663,741848,742231,742705,742739,742854,742856,742898,742906,743613,743762,743773,743920,743959-743960,744123,745105,745367,745541,745751,745826,745978,746269,746872,746895,746962,747258,747678-747704,748392,748436,748821,749563-749564,749574,749628-749629,749936,749956,750017,750334,750396,750761,750796,752068,752117,752418,752751-752755,752764-752773,752956,753087,753101,753175,755136,755487,756313,756348,756870
+/camel/trunk:736980,739733,739904,740251,740295,740306,740596,740663,741848,742231,742705,742739,742854,742856,742898,742906,743613,743762,743773,743920,743959-743960,744123,745105,745367,745541,745751,745826,745978,746269,746872,746895,746962,747258,747678-747704,748392,748436,748821,749563-749564,749574,749628-749629,749936,749956,750017,750334,750396,750761,750796,752068,752117,752418,752751-752755,752764-752773,752956,753087,753101,753175,755136,755487,756313,756348,756870,757636

Propchange: camel/branches/camel-1.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CamelInvoker.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CamelInvoker.java?rev=757638&r1=757637&r2=757638&view=diff
==============================================================================
--- camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CamelInvoker.java (original)
+++ camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CamelInvoker.java Tue Mar 24 02:14:20 2009
@@ -23,9 +23,7 @@
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import org.apache.camel.CamelException;
 import org.apache.camel.ExchangePattern;
-import org.apache.camel.component.cxf.util.CxfEndpointUtils;
 import org.apache.camel.component.cxf.util.CxfHeaderHelper;
 import org.apache.cxf.common.logging.LogUtils;
 import org.apache.cxf.endpoint.Client;
@@ -45,9 +43,11 @@
 public class CamelInvoker implements Invoker, MessageInvoker {
     private static final Logger LOG = LogUtils.getL7dLogger(CamelInvoker.class);
     private CxfConsumer cxfConsumer;
+    private DataFormat dataFormat;
 
-    public CamelInvoker(CxfConsumer consumer) {
+    public CamelInvoker(CxfConsumer consumer, DataFormat dataFormat) {
         cxfConsumer = consumer;
+        this.dataFormat = dataFormat;
     }
 
     /**
@@ -61,17 +61,6 @@
         //TODO set the request context here
         CxfEndpoint endpoint = cxfConsumer.getEndpoint();
         CxfExchange cxfExchange = endpoint.createExchange(inMessage);
-
-        // set data format mode in Camel exchange
-        DataFormat dataFormat = DataFormat.POJO;
-        try {
-            dataFormat = CxfEndpointUtils.getDataFormat(endpoint);
-        } catch (CamelException e) {
-            if (LOG.isLoggable(Level.FINE)) {
-                LOG.log(Level.FINE, "Unable to determine dataFormat due to " + e.toString());
-            }
-        }
-
         cxfExchange.setProperty(CxfConstants.DATA_FORMAT_PROPERTY, dataFormat);   
 
         BindingOperationInfo bop = exchange.get(BindingOperationInfo.class);
@@ -167,6 +156,7 @@
         }
 
         CxfExchange cxfExchange = endpoint.createExchange(exchange.getInMessage());
+        cxfExchange.setProperty(CxfConstants.DATA_FORMAT_PROPERTY, dataFormat);   
 
         BindingOperationInfo bop = exchange.get(BindingOperationInfo.class);
         MethodDispatcher md = (MethodDispatcher)

Modified: camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfConsumer.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfConsumer.java?rev=757638&r1=757637&r2=757638&view=diff
==============================================================================
--- camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfConsumer.java (original)
+++ camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfConsumer.java Tue Mar 24 02:14:20 2009
@@ -21,15 +21,11 @@
 import org.apache.camel.Processor;
 import org.apache.camel.component.cxf.feature.MessageDataFormatFeature;
 import org.apache.camel.component.cxf.feature.PayLoadDataFormatFeature;
-import org.apache.camel.component.cxf.spring.CxfEndpointBean;
 import org.apache.camel.component.cxf.util.CxfEndpointUtils;
 import org.apache.camel.impl.DefaultConsumer;
 import org.apache.cxf.Bus;
 import org.apache.cxf.BusFactory;
 import org.apache.cxf.bus.spring.SpringBusFactory;
-import org.apache.cxf.common.classloader.ClassLoaderUtils;
-import org.apache.cxf.configuration.Configurer;
-import org.apache.cxf.configuration.spring.ConfigurerImpl;
 import org.apache.cxf.endpoint.Server;
 import org.apache.cxf.frontend.ServerFactoryBean;
 
@@ -88,7 +84,7 @@
         
         DataFormat dataFormat = CxfEndpointUtils.getDataFormat(endpoint);
 
-        svrBean.setInvoker(new CamelInvoker(this));
+        svrBean.setInvoker(new CamelInvoker(this, dataFormat));
 
         // apply feature here
         if (!dataFormat.equals(DataFormat.POJO) && !isWebServiceProvider) {

Modified: camel/branches/camel-1.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerTest.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerTest.java?rev=757638&r1=757637&r2=757638&view=diff
==============================================================================
--- camel/branches/camel-1.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerTest.java (original)
+++ camel/branches/camel-1.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerTest.java Tue Mar 24 02:14:20 2009
@@ -45,6 +45,7 @@
             public void configure() {
                 from(SIMPLE_ENDPOINT_URI).choice().when(header(CxfConstants.OPERATION_NAME).isEqualTo(ECHO_OPERATION)).process(new Processor() {
                     public void process(final Exchange exchange) {
+                        assertEquals(DataFormat.POJO, exchange.getProperty(CxfConstants.DATA_FORMAT_PROPERTY, DataFormat.class));
                         Message in = exchange.getIn();
                         // Get the parameter list
                         List<?> parameter = in.getBody(List.class);