Author: ningjiang
Date: Thu Nov 13 22:44:12 2008
New Revision: 713932

URL: http://svn.apache.org/viewvc?rev=713932&view=rev
Log:
CAMEL-1086 Applied patch with thanks to William

Modified:
    
activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/invoker/CxfClient.java
    
activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfGreeterPayLoadWithFeatureRouterTest.java
    
activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/TestCxfFeature.java

Modified: 
activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/invoker/CxfClient.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/invoker/CxfClient.java?rev=713932&r1=713931&r2=713932&view=diff
==============================================================================
--- 
activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/invoker/CxfClient.java
 (original)
+++ 
activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/invoker/CxfClient.java
 Thu Nov 13 22:44:12 2008
@@ -98,7 +98,6 @@
 
         Exchange exchange = new ExchangeImpl();
         // put the message Observer to call the CxfClient onMessage()
-        setExchangeProperties(exchange, getEndpoint(), bi);
         exchange.put(InvokingContext.class, invokingContext);
 
         if (bi != null) {
@@ -118,6 +117,7 @@
             message.putAll(ep);
         }
 
+        setExchangeProperties(exchange, ep, bi);
         PhaseInterceptorChain chain = setupInterceptorChain(getEndpoint());
 
         message.setInterceptorChain(chain);
@@ -209,3 +209,4 @@
 
 }
 
+

Modified: 
activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfGreeterPayLoadWithFeatureRouterTest.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfGreeterPayLoadWithFeatureRouterTest.java?rev=713932&r1=713931&r2=713932&view=diff
==============================================================================
--- 
activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfGreeterPayLoadWithFeatureRouterTest.java
 (original)
+++ 
activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfGreeterPayLoadWithFeatureRouterTest.java
 Thu Nov 13 22:44:12 2008
@@ -16,13 +16,12 @@
  */
 package org.apache.camel.component.cxf;
 
-import org.apache.camel.CamelContext;
-import org.apache.camel.spring.processor.SpringTestHelper;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
 
 /**
  * The Greeter Payload mode test that is configured with CXF features.
  */
-public class CxfGreeterPayLoadWithFeatureRouterTest  extends 
CXFGreeterRouterTest {
+public class CxfGreeterPayLoadWithFeatureRouterTest extends 
CXFGreeterRouterTest {
 
     @Override
     protected void setUp() throws Exception {
@@ -35,11 +34,12 @@
         assertEquals(TestCxfFeature.class, 
endpoint.getCxfEndpointBean().getFeatures().get(0).getClass());
         assertEquals(DataFormat.PAYLOAD.toString(), endpoint.getDataFormat());
     }   
-    
+
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        return SpringTestHelper.createSpringCamelContext(this, 
+    protected ClassPathXmlApplicationContext createApplicationContext() {
+        return new ClassPathXmlApplicationContext(
                 
"org/apache/camel/component/cxf/GreeterEndpointWithFeatureBeans.xml");
     }
 
+
 }

Modified: 
activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/TestCxfFeature.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/TestCxfFeature.java?rev=713932&r1=713931&r2=713932&view=diff
==============================================================================
--- 
activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/TestCxfFeature.java
 (original)
+++ 
activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/TestCxfFeature.java
 Thu Nov 13 22:44:12 2008
@@ -16,8 +16,48 @@
  */
 package org.apache.camel.component.cxf;
 
+import org.apache.cxf.Bus;
+import org.apache.cxf.endpoint.Client;
+import org.apache.cxf.endpoint.Endpoint;
 import org.apache.cxf.feature.AbstractFeature;
+import org.apache.cxf.interceptor.Fault;
+import org.apache.cxf.interceptor.InterceptorProvider;
+import org.apache.cxf.message.Exchange;
+import org.apache.cxf.message.Message;
+import org.apache.cxf.phase.AbstractPhaseInterceptor;
+import org.apache.cxf.phase.Phase;
 
 public class TestCxfFeature extends AbstractFeature {
+    
+    
+    @Override
+    protected void initializeProvider(InterceptorProvider provider, Bus bus) {
+            
+        if (provider instanceof Client) {
+            provider = ((Client)provider).getEndpoint();
+        }
+        
+        provider.getOutInterceptors().add(new EndpointCheckInterceptor());
+                
+    }
+    
+    class EndpointCheckInterceptor extends AbstractPhaseInterceptor<Message> {
+
+        public EndpointCheckInterceptor() {
+            super(Phase.PREPARE_SEND);
+        }
+
+        public void handleMessage(Message message) throws Fault {
+            Exchange ex = message.getExchange();
+            
+            // This test verifies that the "to" endpoint is not the from 
endpoint.
+            Endpoint endpoint = ex.get(Endpoint.class);
+            if 
("http://localhost:9003/CamelContext/RouterPort".equals(endpoint.getEndpointInfo().getAddress()))
 {
+                throw new Fault(new Exception("bad endpoint " + 
endpoint.getEndpointInfo().getAddress()));
+            }
+            
+        }
+    }
+
 
 }


Reply via email to