You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ay...@apache.org on 2015/05/08 21:12:39 UTC

camel git commit: CAMEL-8663 Namespace defined on the SOAP envelope lost; Thanks to Stephan

Repository: camel
Updated Branches:
  refs/heads/master c4a16df02 -> 2965c7689


CAMEL-8663 Namespace defined on the SOAP envelope lost; Thanks to Stephan


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/2965c768
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/2965c768
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/2965c768

Branch: refs/heads/master
Commit: 2965c76899211e2a4afeebd9d9e153e0f47ce0cf
Parents: c4a16df
Author: Akitoshi Yoshida <ay...@apache.org>
Authored: Fri May 8 21:03:54 2015 +0200
Committer: Akitoshi Yoshida <ay...@apache.org>
Committed: Fri May 8 21:11:51 2015 +0200

----------------------------------------------------------------------
 .../converter/stream/StreamSourceCache.java     |  2 +-
 .../camel/component/cxf/DefaultCxfBinding.java  |  1 -
 .../cxf/converter/CachedCxfPayload.java         | 24 +++++------
 .../converter/DelegatingXMLStreamReader.java    | 41 ++++++++++--------
 .../cxf/feature/PayLoadDataFormatFeature.java   |  2 +
 ...sumerNamespaceOnEnvelopeStreamCacheTest.java | 43 +++++++++++++++++++
 ...fPayloadConsumerNamespaceOnEnvelopeTest.java | 17 ++++----
 ...ducerNamespaceOnEnvelopeStreamCacheTest.java | 44 ++++++++++++++++++++
 ...fPayloadProducerNamespaceOnEnvelopeTest.java | 11 +++--
 .../camel/component/cxf/GetTokenBeans.xml       |  7 +---
 10 files changed, 139 insertions(+), 53 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/2965c768/camel-core/src/main/java/org/apache/camel/converter/stream/StreamSourceCache.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/converter/stream/StreamSourceCache.java b/camel-core/src/main/java/org/apache/camel/converter/stream/StreamSourceCache.java
index a7edfc9..39440c4 100644
--- a/camel-core/src/main/java/org/apache/camel/converter/stream/StreamSourceCache.java
+++ b/camel-core/src/main/java/org/apache/camel/converter/stream/StreamSourceCache.java
@@ -53,7 +53,7 @@ public final class StreamSourceCache extends StreamSource implements StreamCache
         }
     }
     
-    private StreamSourceCache(StreamCache streamCache) {
+    public StreamSourceCache(StreamCache streamCache) {
         this.streamCache = streamCache;
         if (streamCache instanceof InputStream) {
             setInputStream((InputStream) streamCache);

http://git-wip-us.apache.org/repos/asf/camel/blob/2965c768/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java
index 0a5f0bf..07e879a 100644
--- a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java
+++ b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java
@@ -55,7 +55,6 @@ import org.apache.cxf.binding.soap.Soap11;
 import org.apache.cxf.binding.soap.Soap12;
 import org.apache.cxf.binding.soap.SoapBindingConstants;
 import org.apache.cxf.binding.soap.SoapHeader;
-import org.apache.cxf.binding.soap.SoapMessage;
 import org.apache.cxf.endpoint.Client;
 import org.apache.cxf.endpoint.Endpoint;
 import org.apache.cxf.headers.Header;

http://git-wip-us.apache.org/repos/asf/camel/blob/2965c768/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CachedCxfPayload.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CachedCxfPayload.java b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CachedCxfPayload.java
index 51f54ff..d03ef55 100644
--- a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CachedCxfPayload.java
+++ b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CachedCxfPayload.java
@@ -19,7 +19,6 @@ package org.apache.camel.component.cxf.converter;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.ListIterator;
 import java.util.Map;
 
@@ -29,7 +28,6 @@ import javax.xml.transform.TransformerException;
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stax.StAXSource;
 import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
 
 import org.w3c.dom.Document;
 
@@ -37,6 +35,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.StreamCache;
 import org.apache.camel.component.cxf.CxfPayload;
 import org.apache.camel.converter.jaxp.XmlConverter;
+import org.apache.camel.converter.stream.CachedOutputStream;
 import org.apache.camel.converter.stream.StreamSourceCache;
 import org.apache.cxf.staxutils.StaxSource;
 import org.slf4j.Logger;
@@ -67,17 +66,18 @@ public class CachedCxfPayload<T> extends CxfPayload<T> implements StreamCache {
             }
             if (reader != null) {
                 Map<String, String> nsmap = getNsMap();
-                if (nsmap == null) {
-                    nsmap = Collections.emptyMap();
+                if (nsmap != null && !(reader instanceof DelegatingXMLStreamReader)) {
+                    source = new StAXSource(new DelegatingXMLStreamReader(reader, nsmap));
                 }
-                source = new StAXSource(new DelegatingXMLStreamReader(reader, nsmap));
-                StreamSource streamSource = exchange.getContext().getTypeConverter().convertTo(StreamSource.class, exchange, source);
-                if (streamSource != null) {
-                    try {
-                        li.set(new StreamSourceCache(streamSource, exchange));
-                    } catch (IOException e) {
-                        LOG.error("Cannot Create StreamSourceCache ", e);
-                    }
+                CachedOutputStream cos = new CachedOutputStream(exchange);
+                StreamResult sr = new StreamResult(cos);
+                try {
+                    xml.toResult(source, sr);
+                    li.set(new StreamSourceCache(cos.newStreamCache()));
+                } catch (TransformerException e) {
+                    LOG.error("Transformation failed ", e);
+                } catch (IOException e) {
+                    LOG.error("Cannot Create StreamSourceCache ", e);
                 }
             } else if (!(source instanceof DOMSource)) {
                 Document document = exchange.getContext().getTypeConverter().convertTo(Document.class, exchange, source);

http://git-wip-us.apache.org/repos/asf/camel/blob/2965c768/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/DelegatingXMLStreamReader.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/DelegatingXMLStreamReader.java b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/DelegatingXMLStreamReader.java
index 354c8c3..743a671 100644
--- a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/DelegatingXMLStreamReader.java
+++ b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/DelegatingXMLStreamReader.java
@@ -17,11 +17,16 @@
 
 package org.apache.camel.component.cxf.converter;
 
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import javax.xml.namespace.NamespaceContext;
 import javax.xml.namespace.QName;
 import javax.xml.stream.Location;
+import javax.xml.stream.XMLStreamConstants;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 
@@ -30,13 +35,12 @@ import javax.xml.stream.XMLStreamReader;
  */
 class DelegatingXMLStreamReader implements XMLStreamReader {
     private XMLStreamReader reader;
-    private final Map<String, String> nsmap;
-    private final String[] prefixes;
+    private final String[] xprefixes;
+    private int depth;
 
     public DelegatingXMLStreamReader(XMLStreamReader reader, Map<String, String> nsmap) {
         this.reader = reader;
-        this.nsmap = nsmap;
-        this.prefixes = nsmap.keySet().toArray(new String[0]);
+        this.xprefixes = nsmap.keySet().toArray(new String[0]);
     }
 
     @Override
@@ -46,7 +50,14 @@ class DelegatingXMLStreamReader implements XMLStreamReader {
 
     @Override
     public int next() throws XMLStreamException {
-        return reader.next();
+        // only inject namespaces at the root level
+        final int c = reader.next();
+        if (c == XMLStreamConstants.START_ELEMENT) {
+            depth++;
+        } else if (c == XMLStreamConstants.END_ELEMENT) {
+            depth--;
+        }
+        return c;
     }
 
     @Override
@@ -76,11 +87,7 @@ class DelegatingXMLStreamReader implements XMLStreamReader {
 
     @Override
     public String getNamespaceURI(String prefix) {
-        String nsuri = reader.getNamespaceURI();
-        if (nsuri == null) {
-            nsuri = nsmap.get(prefix);
-        }
-        return nsuri;
+        return reader.getNamespaceURI(prefix);
     }
 
     @Override
@@ -139,22 +146,22 @@ class DelegatingXMLStreamReader implements XMLStreamReader {
     }
 
     public int getNamespaceCount() {
-        return prefixes.length + reader.getNamespaceCount();
+        return (depth == 1 ? xprefixes.length : 0) + reader.getNamespaceCount();
     }
 
     public String getNamespacePrefix(int index) {
-        if (index < prefixes.length) {
-            return prefixes[index];
+        if (depth == 1) {
+            return index < xprefixes.length ? xprefixes[index] : reader.getNamespacePrefix(index - xprefixes.length);
         } else {
-            return reader.getNamespacePrefix(index - prefixes.length);
+            return reader.getNamespacePrefix(index);
         }
     }
 
     public String getNamespaceURI(int index) {
-        if (index < prefixes.length) {
-            return nsmap.get(prefixes[index]);
+        if (depth == 1) {
+            return index < xprefixes.length ? getNamespaceURI(xprefixes[index]) : reader.getNamespaceURI(index - xprefixes.length);
         } else {
-            return reader.getNamespaceURI(index - prefixes.length);
+            return reader.getNamespaceURI(index);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/2965c768/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/feature/PayLoadDataFormatFeature.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/feature/PayLoadDataFormatFeature.java b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/feature/PayLoadDataFormatFeature.java
index dabde13..09f1acd 100644
--- a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/feature/PayLoadDataFormatFeature.java
+++ b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/feature/PayLoadDataFormatFeature.java
@@ -61,6 +61,7 @@ public class PayLoadDataFormatFeature extends AbstractDataFormatFeature {
     
     @Override
     public void initialize(Client client, Bus bus) {
+        client.getEndpoint().put("org.apache.cxf.binding.soap.addNamespaceContext", "true");
         removeFaultInInterceptorFromClient(client);
         
         // Need to remove some interceptors that are incompatible
@@ -86,6 +87,7 @@ public class PayLoadDataFormatFeature extends AbstractDataFormatFeature {
 
     @Override
     public void initialize(Server server, Bus bus) {
+        server.getEndpoint().put("org.apache.cxf.binding.soap.addNamespaceContext", "true");
         server.getEndpoint().getBinding().getInInterceptors().add(new ConfigureDocLitWrapperInterceptor(true));
         if (server.getEndpoint().getBinding() instanceof SoapBinding) {
             server.getEndpoint().getBinding().getOutInterceptors().add(new SetSoapVersionInterceptor());

http://git-wip-us.apache.org/repos/asf/camel/blob/2965c768/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayloadConsumerNamespaceOnEnvelopeStreamCacheTest.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayloadConsumerNamespaceOnEnvelopeStreamCacheTest.java b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayloadConsumerNamespaceOnEnvelopeStreamCacheTest.java
new file mode 100644
index 0000000..5a805b9
--- /dev/null
+++ b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayloadConsumerNamespaceOnEnvelopeStreamCacheTest.java
@@ -0,0 +1,43 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.camel.component.cxf;
+
+import org.w3c.dom.Document;
+
+import org.apache.camel.builder.RouteBuilder;
+
+public class CxfPayloadConsumerNamespaceOnEnvelopeStreamCacheTest extends CxfPayloadConsumerNamespaceOnEnvelopeTest {
+    @Override
+    protected RouteBuilder createRouteBuilder() {
+        return new RouteBuilder() {
+            public void configure() {
+                from("direct:router")
+                        // Use message mode to send the raw message
+                        .to("cxf:bean:serviceEndpoint?dataFormat=MESSAGE")
+                        // Convert to String to make testing the result easier
+                        .convertBodyTo(String.class);
+                // The consumer is running in payload mode
+                from("cxf:bean:serviceEndpoint?DataFormat=PAYLOAD")
+                        // Use stream caching to trigger the issue
+                        .streamCaching()
+                        // Parse to DOM to make sure it's still valid XML
+                        .convertBodyTo(Document.class).setBody().constant(RESPONSE_PAYLOAD);
+            }
+        };
+    }
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/2965c768/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayloadConsumerNamespaceOnEnvelopeTest.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayloadConsumerNamespaceOnEnvelopeTest.java b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayloadConsumerNamespaceOnEnvelopeTest.java
index 063fbeb..9f9ed95 100644
--- a/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayloadConsumerNamespaceOnEnvelopeTest.java
+++ b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayloadConsumerNamespaceOnEnvelopeTest.java
@@ -29,8 +29,6 @@ import org.junit.Before;
 import org.springframework.context.support.AbstractXmlApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
-
-
 public class CxfPayloadConsumerNamespaceOnEnvelopeTest extends CamelTestSupport {
     /*
      * The request message is generated directly. The issue here is that the xsi
@@ -42,14 +40,13 @@ public class CxfPayloadConsumerNamespaceOnEnvelopeTest extends CamelTestSupport
      * If some CXF proxy is used to send the message the namespaces will be
      * defined within the payload (and everything works fine).
      */
-    private static final String RESPONSE_PAYLOAD = "<ns2:getTokenResponse xmlns:ns2=\"http://camel.apache.org/cxf/namespace\""
-        + " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""
-        + " xmlns:xs=\"http://www.w3.org/2001/XMLSchema\"><return xsi:type=\"xs:string\">Return Value</return></ns2:getTokenResponse>";
-    private static final String REQUEST_MESSAGE  = "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" "
-        + "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\"><soap:Body>"
-        + "<ns2:getToken xmlns:ns2=\"http://camel.apache.org/cxf/namespace\"><arg0 xsi:type=\"xs:string\">Send</arg0></ns2:getToken>"
-        + "</soap:Body></soap:Envelope>";
-    
+    protected static final String RESPONSE_PAYLOAD = 
+        "<ns2:getTokenResponse xmlns:ns2=\"http://camel.apache.org/cxf/namespace\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">"
+        + "<return xsi:type=\"xs:string\">Return Value</return></ns2:getTokenResponse>";
+    protected static final String REQUEST_MESSAGE =
+        "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">"
+        + "<soap:Body><ns2:getToken xmlns:ns2=\"http://camel.apache.org/cxf/namespace\"><arg0 xsi:type=\"xs:string\">Send</arg0></ns2:getToken></soap:Body></soap:Envelope>";
+
     private AbstractXmlApplicationContext applicationContext;
 
     // Don't remove this, it initializes the CXFTestSupport class

http://git-wip-us.apache.org/repos/asf/camel/blob/2965c768/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayloadProducerNamespaceOnEnvelopeStreamCacheTest.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayloadProducerNamespaceOnEnvelopeStreamCacheTest.java b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayloadProducerNamespaceOnEnvelopeStreamCacheTest.java
new file mode 100644
index 0000000..dc06375
--- /dev/null
+++ b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayloadProducerNamespaceOnEnvelopeStreamCacheTest.java
@@ -0,0 +1,44 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.camel.component.cxf;
+
+import org.w3c.dom.Document;
+
+import org.apache.camel.builder.RouteBuilder;
+
+public class CxfPayloadProducerNamespaceOnEnvelopeStreamCacheTest extends CxfPayloadProducerNamespaceOnEnvelopeTest {
+    @Override
+    protected RouteBuilder createRouteBuilder() {
+        return new RouteBuilder() {
+            public void configure() {
+                from("direct:router") //
+                        .streamCaching()
+                        // call an external Web service in payload mode
+                        .to("cxf:bean:serviceEndpoint?dataFormat=PAYLOAD")
+                        // Check that the issue doesn't occur if stream caching is enabled
+                        // Parse to DOM to make sure it's still valid XML
+                        .convertBodyTo(Document.class)
+                        // Convert back to String to make testing the result
+                        // easier
+                        .convertBodyTo(String.class);
+                // This route just returns the test message
+                from("cxf:bean:serviceEndpoint?DataFormat=MESSAGE").setBody().constant(RESPONSE_MESSAGE);
+            }
+        };
+    }
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/2965c768/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayloadProducerNamespaceOnEnvelopeTest.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayloadProducerNamespaceOnEnvelopeTest.java b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayloadProducerNamespaceOnEnvelopeTest.java
index b1a26e2..2d514a1 100644
--- a/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayloadProducerNamespaceOnEnvelopeTest.java
+++ b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayloadProducerNamespaceOnEnvelopeTest.java
@@ -29,7 +29,6 @@ import org.junit.Before;
 import org.springframework.context.support.AbstractXmlApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
-
 public class CxfPayloadProducerNamespaceOnEnvelopeTest extends CamelTestSupport {
     /*
      * The response message is generated directly. The issue here is that the
@@ -41,11 +40,11 @@ public class CxfPayloadProducerNamespaceOnEnvelopeTest extends CamelTestSupport
      * If some CXF implementation bean is used as the service the namespaces
      * will be defined within the payload (and everything works fine).
      */
-    private static final String RESPONSE_MESSAGE = "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""
-        + " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\"><soap:Body>"
-        + "<ns2:getTokenResponse xmlns:ns2=\"http://camel.apache.org/cxf/namespace\"><return xsi:type=\"xs:string\">Return Value</return></ns2:getTokenResponse>"
-        + "</soap:Body></soap:Envelope>";
-    private static final String REQUEST_PAYLOAD = "<ns2:getToken xmlns:ns2=\"http://camel.apache.org/cxf/namespace\"/>";
+
+    protected static final String RESPONSE_MESSAGE = 
+        "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\"><soap:Body>"
+        + "<ns2:getTokenResponse xmlns:ns2=\"http://camel.apache.org/cxf/namespace\"><return xsi:type=\"xs:string\">Return Value</return></ns2:getTokenResponse></soap:Body></soap:Envelope>";
+    protected static final String REQUEST_PAYLOAD = "<ns2:getToken xmlns:ns2=\"http://camel.apache.org/cxf/namespace\"/>";
 
     private AbstractXmlApplicationContext applicationContext;
     

http://git-wip-us.apache.org/repos/asf/camel/blob/2965c768/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/GetTokenBeans.xml
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/GetTokenBeans.xml b/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/GetTokenBeans.xml
index acfee79..a3c4a28 100644
--- a/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/GetTokenBeans.xml
+++ b/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/GetTokenBeans.xml
@@ -30,10 +30,5 @@
     <cxf:cxfEndpoint id="serviceEndpoint" address="http://localhost:${CXFTestSupport.port1}/GetToken/SoapContext/SoapPort"
         wsdlURL="GetToken.wsdl"
         serviceName="s:GetTokenService"
-        xmlns:s="http://camel.apache.org/cxf/namespace">
-      <cxf:properties>
-		<entry key="org.apache.cxf.binding.soap.addNamespaceContext" value="true"/>
-      </cxf:properties>
-
-	</cxf:cxfEndpoint>
+        xmlns:s="http://camel.apache.org/cxf/namespace"/>
 </beans>