Author: wtam
Date: Sun Mar 22 16:48:42 2009
New Revision: 757214

URL: http://svn.apache.org/viewvc?rev=757214&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/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/CxfBinding.java
    
camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfConstants.java
    
camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfExchange.java
    
camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfProducer.java

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=757214&r1=757213&r2=757214&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
 Sun Mar 22 16:48:42 2009
@@ -23,7 +23,9 @@
 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;
@@ -60,6 +62,18 @@
         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);
         cxfExchange.setProperty(BindingOperationInfo.class.toString(), bop);
 

Modified: 
camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfBinding.java
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfBinding.java?rev=757214&r1=757213&r2=757214&view=diff
==============================================================================
--- 
camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfBinding.java
 (original)
+++ 
camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfBinding.java
 Sun Mar 22 16:48:42 2009
@@ -146,7 +146,7 @@
         if (response != null) {
             CxfHeaderHelper.propagateCxfToCamel(strategy, response, 
out.getHeaders());
             out.setMessage(response);
-            DataFormat dataFormat = (DataFormat) 
exchange.getProperty(CxfExchange.DATA_FORMAT);
+            DataFormat dataFormat = (DataFormat) 
exchange.getProperty(CxfConstants.DATA_FORMAT_PROPERTY);
             if (dataFormat.equals(DataFormat.MESSAGE)) {
                 out.setBody(response.getContent(InputStream.class));
             }

Modified: 
camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfConstants.java
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfConstants.java?rev=757214&r1=757213&r2=757214&view=diff
==============================================================================
--- 
camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfConstants.java
 (original)
+++ 
camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfConstants.java
 Sun Mar 22 16:48:42 2009
@@ -24,7 +24,10 @@
 public interface CxfConstants {
     String METHOD = "method";
     String SERVICE_CLASS = "serviceClass";
+    // dataFormat is used in endpoint uri
     String DATA_FORMAT = "dataFormat";
+    // org.apache.camel.cxf.dataFormat is used as exchange property key
+    String DATA_FORMAT_PROPERTY = "org.apache.camel.cxf.dataFormat";
     String SET_DEFAULT_BUS = "setDefaultBus";
     String WSDL_URL = "wsdlURL";
     String ADDRESS = "address";

Modified: 
camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfExchange.java
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfExchange.java?rev=757214&r1=757213&r2=757214&view=diff
==============================================================================
--- 
camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfExchange.java
 (original)
+++ 
camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfExchange.java
 Sun Mar 22 16:48:42 2009
@@ -32,7 +32,6 @@
  * @version $Revision$
  */
 public class CxfExchange extends DefaultExchange {
-    public static final String DATA_FORMAT = "DATA_FORMAT";
     private Exchange exchange;
 
     public CxfExchange(CamelContext context, ExchangePattern pattern, Exchange 
exchange) {

Modified: 
camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfProducer.java
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfProducer.java?rev=757214&r1=757213&r2=757214&view=diff
==============================================================================
--- 
camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfProducer.java
 (original)
+++ 
camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfProducer.java
 Sun Mar 22 16:48:42 2009
@@ -160,7 +160,7 @@
 
     public void process(CxfExchange exchange) throws Exception {
         Message inMessage = 
CxfBinding.createCxfMessage(endpoint.getHeaderFilterStrategy(), exchange);
-        exchange.setProperty(CxfExchange.DATA_FORMAT, dataFormat);
+        exchange.setProperty(CxfConstants.DATA_FORMAT_PROPERTY, dataFormat);
 
         if (dataFormat.equals(DataFormat.POJO)) {
             // InputStream is = m.getContent(InputStream.class);


Reply via email to