Author: ningjiang
Date: Tue May  3 13:27:20 2011
New Revision: 1099050

URL: http://svn.apache.org/viewvc?rev=1099050&view=rev
Log:
CAMEL-3879 Applied patch of DanK with thanks

Modified:
    
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanDefinitionParser.java
    
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfRsClientFactoryBeanDefinitionParser.java
    
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfRsServerFactoryBeanDefinitionParser.java
    
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/transport/CamelTransportFactory.java
    
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CXFWsdlOnlyTest.java
    
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfSpringRouterTest.java
    
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/cxfbean/CxfBeanTest.java
    
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsConsumerTest.java
    
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/spring/SpringBusFactoryBeanTest.java

Modified: 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanDefinitionParser.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanDefinitionParser.java?rev=1099050&r1=1099049&r2=1099050&view=diff
==============================================================================
--- 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanDefinitionParser.java
 (original)
+++ 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanDefinitionParser.java
 Tue May  3 13:27:20 2011
@@ -28,6 +28,7 @@ import org.apache.cxf.BusFactory;
 import org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor;
 import org.apache.cxf.bus.spring.SpringBusFactory;
 import org.apache.cxf.service.factory.ReflectionServiceFactoryBean;
+import org.apache.cxf.version.Version;
 import org.springframework.beans.BeansException;
 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
 import org.springframework.beans.factory.xml.ParserContext;
@@ -87,15 +88,19 @@ public class CxfEndpointBeanDefinitionPa
             super(factory);
         }
         
+        @SuppressWarnings("deprecation")
         public void setApplicationContext(ApplicationContext ctx) throws 
BeansException {
             applicationContext = ctx;
-            if (getBus() == null) {
-                // Don't relate on the DefaultBus
-                BusFactory factory = new SpringBusFactory(ctx);
-                Bus bus = factory.createBus();               
-                setBus(bus);
+            if (bus == null) {
+                if (Version.getCurrentVersion().startsWith("2.3")) {
+                    // Don't relate on the DefaultBus
+                    BusFactory factory = new SpringBusFactory(ctx);
+                    bus = factory.createBus();               
+                    
BusWiringBeanFactoryPostProcessor.updateBusReferencesInContext(bus, ctx);
+                } else {
+                    bus = BusWiringBeanFactoryPostProcessor.addDefaultBus(ctx);
+                }
             }
-            
BusWiringBeanFactoryPostProcessor.updateBusReferencesInContext(getBus(), ctx);
         }
         
         public ApplicationContext getApplicationContext() {

Modified: 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfRsClientFactoryBeanDefinitionParser.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfRsClientFactoryBeanDefinitionParser.java?rev=1099050&r1=1099049&r2=1099050&view=diff
==============================================================================
--- 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfRsClientFactoryBeanDefinitionParser.java
 (original)
+++ 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfRsClientFactoryBeanDefinitionParser.java
 Tue May  3 13:27:20 2011
@@ -29,6 +29,7 @@ import org.apache.cxf.bus.spring.SpringB
 import org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean;
 import org.apache.cxf.jaxrs.model.UserResource;
 import org.apache.cxf.jaxrs.utils.ResourceUtils;
+import org.apache.cxf.version.Version;
 import org.springframework.beans.BeansException;
 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
 import org.springframework.beans.factory.xml.ParserContext;
@@ -78,13 +79,18 @@ public class CxfRsClientFactoryBeanDefin
             super();
         }
         
+        @SuppressWarnings("deprecation")
         public void setApplicationContext(ApplicationContext ctx) throws 
BeansException {
-            if (getBus() == null) {
-                // Don't relate on the DefaultBus
-                BusFactory factory = new SpringBusFactory(ctx);
-                Bus bus = factory.createBus();    
-                
BusWiringBeanFactoryPostProcessor.updateBusReferencesInContext(bus, ctx);
-                setBus(bus);
+            if (bus == null) {
+                if (Version.getCurrentVersion().startsWith("2.3")) {
+                    // Don't relate on the DefaultBus
+                    BusFactory factory = new SpringBusFactory(ctx);
+                    bus = factory.createBus();    
+                    
BusWiringBeanFactoryPostProcessor.updateBusReferencesInContext(bus, ctx);
+                    setBus(bus);
+                } else {
+                    
setBus(BusWiringBeanFactoryPostProcessor.addDefaultBus(ctx));
+                }
             }
         }
 

Modified: 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfRsServerFactoryBeanDefinitionParser.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfRsServerFactoryBeanDefinitionParser.java?rev=1099050&r1=1099049&r2=1099050&view=diff
==============================================================================
--- 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfRsServerFactoryBeanDefinitionParser.java
 (original)
+++ 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfRsServerFactoryBeanDefinitionParser.java
 Tue May  3 13:27:20 2011
@@ -30,6 +30,7 @@ import org.apache.cxf.jaxrs.JAXRSServerF
 import org.apache.cxf.jaxrs.JAXRSServiceFactoryBean;
 import org.apache.cxf.jaxrs.model.UserResource;
 import org.apache.cxf.jaxrs.utils.ResourceUtils;
+import org.apache.cxf.version.Version;
 import org.springframework.beans.BeansException;
 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
 import org.springframework.beans.factory.xml.ParserContext;
@@ -91,13 +92,18 @@ public class CxfRsServerFactoryBeanDefin
             super(sf);
         }
 
+        @SuppressWarnings("deprecation")
         public void setApplicationContext(ApplicationContext ctx) throws 
BeansException {
-            if (getBus() == null) {
-                // Don't relate on the DefaultBus
-                BusFactory factory = new SpringBusFactory(ctx);
-                Bus bus = factory.createBus();  
-                
BusWiringBeanFactoryPostProcessor.updateBusReferencesInContext(bus, ctx);
-                setBus(bus);
+            if (bus == null) {
+                if (Version.getCurrentVersion().startsWith("2.3")) {
+                    // Don't relate on the DefaultBus
+                    BusFactory factory = new SpringBusFactory(ctx);
+                    bus = factory.createBus();               
+                    setBus(bus);
+                    
BusWiringBeanFactoryPostProcessor.updateBusReferencesInContext(bus, ctx);
+                } else {
+                    
setBus(BusWiringBeanFactoryPostProcessor.addDefaultBus(ctx));
+                }
             }
         }
 

Modified: 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/transport/CamelTransportFactory.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/transport/CamelTransportFactory.java?rev=1099050&r1=1099049&r2=1099050&view=diff
==============================================================================
--- 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/transport/CamelTransportFactory.java
 (original)
+++ 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/transport/CamelTransportFactory.java
 Tue May  3 13:27:20 2011
@@ -17,8 +17,10 @@
 package org.apache.camel.component.cxf.transport;
 
 import java.io.IOException;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Set;
 
 import javax.annotation.PostConstruct;
@@ -28,6 +30,7 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.component.cxf.CxfHeaderFilterStrategy;
 import org.apache.camel.spi.HeaderFilterStrategy;
 import org.apache.cxf.Bus;
+import org.apache.cxf.common.injection.NoJSR250Annotations;
 import org.apache.cxf.service.model.EndpointInfo;
 import org.apache.cxf.transport.AbstractTransportFactory;
 import org.apache.cxf.transport.Conduit;
@@ -41,12 +44,13 @@ import org.apache.cxf.ws.addressing.Endp
 /**
  * @version 
  */
+@NoJSR250Annotations(unlessNull = "bus")
 public class CamelTransportFactory extends AbstractTransportFactory implements 
ConduitInitiator, DestinationFactory {
 
     public static final String TRANSPORT_ID = 
"http://cxf.apache.org/transports/camel";;
+    public static final List<String> DEFAULT_NAMESPACES = 
Arrays.asList(TRANSPORT_ID);
     private static final Set<String> URI_PREFIXES = new HashSet<String>();
 
-    private Collection<String> activationNamespaces;
     private HeaderFilterStrategy headerFilterStrategy;
     private boolean checkException;
 
@@ -54,7 +58,6 @@ public class CamelTransportFactory exten
         URI_PREFIXES.add("camel://");        
     }
 
-    private Bus bus;
     private CamelContext camelContext;
     
     public CamelTransportFactory() {
@@ -63,27 +66,17 @@ public class CamelTransportFactory exten
         defaultHeaderFilterStrategy.setOutFilterPattern(null);
         headerFilterStrategy = defaultHeaderFilterStrategy;
     }
-
-    @Resource(name = "bus")
-    public void setBus(Bus b) {
-        bus = b;
-    }
-
-    public Bus getBus() {
-        return bus;
-    }
-
-    public void setActivationNamespaces(Collection<String> ans) {
-        activationNamespaces = ans;
-    }
-
-    public CamelContext getCamelContext() {
-        return camelContext;
+    public CamelTransportFactory(Bus b) {
+        super(DEFAULT_NAMESPACES, b);
+        CxfHeaderFilterStrategy defaultHeaderFilterStrategy = new 
CxfHeaderFilterStrategy();
+        // Doesn't filter the camel relates headers by default
+        defaultHeaderFilterStrategy.setOutFilterPattern(null);
+        headerFilterStrategy = defaultHeaderFilterStrategy;
     }
 
-    @Resource(name = "camelContext")
-    public void setCamelContext(CamelContext camelContext) {
-        this.camelContext = camelContext;
+    @Resource(name = "cxf")
+    public void setBus(Bus b) {
+        super.setBus(b);
     }
     
     public void setCheckException(boolean check) {
@@ -110,25 +103,6 @@ public class CamelTransportFactory exten
         return URI_PREFIXES;
     }
 
-    @PostConstruct
-    void registerWithBindingManager() {
-        if (null == bus) {
-            return;
-        }
-        ConduitInitiatorManager cim = 
bus.getExtension(ConduitInitiatorManager.class);
-        if (null != cim && null != activationNamespaces) {
-            for (String ns : activationNamespaces) {
-                cim.registerConduitInitiator(ns, this);
-            }
-        }
-        DestinationFactoryManager dfm = 
bus.getExtension(DestinationFactoryManager.class);
-        if (null != dfm && null != activationNamespaces) {
-            for (String ns : activationNamespaces) {
-                dfm.registerDestinationFactory(ns, this);
-            }
-        }
-    }
-
     public HeaderFilterStrategy getHeaderFilterStrategy() {
         return headerFilterStrategy;
     }
@@ -136,6 +110,13 @@ public class CamelTransportFactory exten
     public void setHeaderFilterStrategy(HeaderFilterStrategy 
headerFilterStrategy) {
         this.headerFilterStrategy = headerFilterStrategy;
     }
+    
+    public CamelContext getCamelContext() {
+        return camelContext;
+    }
+    public void setCamelContext(CamelContext c) {
+        camelContext = c;
+    }
 
 }
 

Modified: 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CXFWsdlOnlyTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CXFWsdlOnlyTest.java?rev=1099050&r1=1099049&r2=1099050&view=diff
==============================================================================
--- 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CXFWsdlOnlyTest.java
 (original)
+++ 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CXFWsdlOnlyTest.java
 Tue May  3 13:27:20 2011
@@ -30,18 +30,23 @@ import org.apache.camel.wsdl_first.Perso
 import org.apache.camel.wsdl_first.PersonImpl;
 import org.apache.camel.wsdl_first.PersonService;
 import org.apache.camel.wsdl_first.UnknownPersonFault;
+import org.apache.cxf.BusFactory;
 import org.junit.After;
+import org.junit.AfterClass;
 import org.junit.Before;
+import org.junit.BeforeClass;
 import org.junit.Ignore;
 import org.junit.Test;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
 public class CXFWsdlOnlyTest extends CamelSpringTestSupport {
 
-    private Endpoint endpoint1;
-    private Endpoint endpoint2;
+    private static Endpoint endpoint1;
+    private static Endpoint endpoint2;
 
     protected ClassPathXmlApplicationContext createApplicationContext() {
+        // When the Application is closed, the camel-cxf endpoint will be 
shutdown,
+        // this will cause the issue of the new http server doesn't send the 
response back. 
         return new 
ClassPathXmlApplicationContext("org/apache/camel/component/cxf/WsdlOnlyBeans.xml");
     }
 
@@ -49,8 +54,8 @@ public class CXFWsdlOnlyTest extends Cam
         assertNotNull("No context found!", context);
     }
 
-    @Before
-    public void startServices() {
+    @BeforeClass
+    public static void startServices() {
         Object implementor = new PersonImpl();
         String address = "http://localhost:9000/PersonService/";;
         endpoint1 = Endpoint.publish(address, implementor);
@@ -59,8 +64,8 @@ public class CXFWsdlOnlyTest extends Cam
         endpoint2 = Endpoint.publish(address, implementor);
     }
     
-    @After
-    public void stopServices() {
+    @AfterClass
+    public static void stopServices() {
         if (endpoint1 != null) {
             endpoint1.stop();
         }
@@ -71,7 +76,7 @@ public class CXFWsdlOnlyTest extends Cam
     }
 
     @Test
-    public void testRoutes() throws Exception {
+    public void testRoutesWithFault() throws Exception {
         URL wsdlURL = getClass().getClassLoader().getResource("person.wsdl");
         PersonService ss = new PersonService(wsdlURL, new 
QName("http://camel.apache.org/wsdl-first";,
                                                                 
"PersonService"));
@@ -82,27 +87,10 @@ public class CXFWsdlOnlyTest extends Cam
         Holder<String> name = new Holder<String>();
         client.getPerson(personId, ssn, name);
         assertEquals("Bonjour", name.value);
-
-        Person client2 = ss.getSoap2();
-        Holder<String> personId2 = new Holder<String>();
-        personId2.value = "hello";
-        Holder<String> ssn2 = new Holder<String>();
-        Holder<String> name2 = new Holder<String>();
-        client2.getPerson(personId2, ssn2, name2);
-        assertEquals("Bonjour", name2.value);
-    }
-    
-    @Test
-    public void testSoapFaultRoutes() {
-        URL wsdlURL = getClass().getClassLoader().getResource("person.wsdl");
-        PersonService ss = new PersonService(wsdlURL, new 
QName("http://camel.apache.org/wsdl-first";,
-                                                                
"PersonService"));
-        // test message mode
-        Person client = ss.getSoap();
-        Holder<String> personId = new Holder<String>();
+        
         personId.value = "";
-        Holder<String> ssn = new Holder<String>();
-        Holder<String> name = new Holder<String>();
+        ssn = new Holder<String>();
+        name = new Holder<String>();
         Throwable t = null;
         try {
             client.getPerson(personId, ssn, name);
@@ -112,13 +100,17 @@ public class CXFWsdlOnlyTest extends Cam
         }
         assertTrue(t instanceof UnknownPersonFault);
 
-        
-        // test PAYLOAD mode
         Person client2 = ss.getSoap2();
         Holder<String> personId2 = new Holder<String>();
-        personId2.value = "";
+        personId2.value = "hello";
         Holder<String> ssn2 = new Holder<String>();
         Holder<String> name2 = new Holder<String>();
+        client2.getPerson(personId2, ssn2, name2);
+        assertEquals("Bonjour", name2.value);
+        
+        personId2.value = "";
+        ssn2 = new Holder<String>();
+        name2 = new Holder<String>();
         try {
             client2.getPerson(personId2, ssn2, name2);
             fail("Expect exception");
@@ -127,5 +119,6 @@ public class CXFWsdlOnlyTest extends Cam
         }
         assertTrue(t instanceof UnknownPersonFault);
     }
-
+    
+   
 }

Modified: 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfSpringRouterTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfSpringRouterTest.java?rev=1099050&r1=1099049&r2=1099050&view=diff
==============================================================================
--- 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfSpringRouterTest.java
 (original)
+++ 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfSpringRouterTest.java
 Tue May  3 13:27:20 2011
@@ -39,10 +39,9 @@ public class CxfSpringRouterTest extends
 
     @After
     public void tearDown() throws Exception {
-        if (applicationContext != null) {
-            applicationContext.destroy();
-        }
+        // Don't close the application context, as it will cause some trouble 
on the bus shutdown
         super.tearDown();
+        
     }
 
     @Override

Modified: 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/cxfbean/CxfBeanTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/cxfbean/CxfBeanTest.java?rev=1099050&r1=1099049&r2=1099050&view=diff
==============================================================================
--- 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/cxfbean/CxfBeanTest.java
 (original)
+++ 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/cxfbean/CxfBeanTest.java
 Tue May  3 13:27:20 2011
@@ -18,6 +18,7 @@ package org.apache.camel.component.cxf.c
 
 import java.io.InputStream;
 import java.net.URL;
+import java.net.URLConnection;
 
 import javax.xml.namespace.QName;
 import javax.xml.ws.Holder;
@@ -105,15 +106,12 @@ public class CxfBeanTest extends Abstrac
         
         
invokeRsService("http://localhost:9000/customerservice/orders/223/products/323";,
                          "{\"Product\":{\"description\":\"product 
323\",\"id\":323}}");
-       
-         
     }
     
     @Test
     public void testGetConsumerWithQueryParam() throws Exception {
         
invokeRsService("http://localhost:9000/customerservice/customers?id=123";,
-                        "{\"Customer\":{\"id\":123,\"name\":\"John\"}}");
-        
+                        "{\"Customer\":{\"id\":123,\"name\":\"John\"}}");      
  
     }
 
     @Test
@@ -126,7 +124,6 @@ public class CxfBeanTest extends Abstrac
 
         
invokeRsService("http://localhost:9000/customerservice/orders/223/products/323";,
                         "{\"Product\":{\"description\":\"product 
323\",\"id\":323}}"); 
-     
     }
     
     @Test

Modified: 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsConsumerTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsConsumerTest.java?rev=1099050&r1=1099049&r2=1099050&view=diff
==============================================================================
--- 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsConsumerTest.java
 (original)
+++ 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsConsumerTest.java
 Tue May  3 13:27:20 2011
@@ -19,6 +19,7 @@ package org.apache.camel.component.cxf.j
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.net.URL;
+import java.net.URLConnection;
 
 import javax.ws.rs.WebApplicationException;
 import javax.ws.rs.core.Response;

Modified: 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/spring/SpringBusFactoryBeanTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/spring/SpringBusFactoryBeanTest.java?rev=1099050&r1=1099049&r2=1099050&view=diff
==============================================================================
--- 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/spring/SpringBusFactoryBeanTest.java
 (original)
+++ 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/spring/SpringBusFactoryBeanTest.java
 Tue May  3 13:27:20 2011
@@ -33,7 +33,7 @@ public class SpringBusFactoryBeanTest ex
     public void getTheBusInstance() {
         Bus bus = (Bus)ctx.getBean("cxfBus");
         assertNotNull("The bus should not be null", bus);
-        if (!Version.getCurrentVersion().startsWith("2.4")) {
+        if (Version.getCurrentVersion().startsWith("2.3")) {
             // This test just for the CXF 2.3.x, we skip this test with CXF 
2.4.x
             CamelTransportFactory factory = 
bus.getExtension(CamelTransportFactory.class);
             assertNull("You should not find the factory here", factory);
@@ -41,6 +41,7 @@ public class SpringBusFactoryBeanTest ex
         
         bus = (Bus)ctx.getBean("myBus");
         assertNotNull("The bus should not be null", bus);
+
         CamelTransportFactory factory = 
bus.getExtension(CamelTransportFactory.class);
         assertNotNull("You should find the factory here", factory);
         SoapBindingFactory soapBindingFactory = 
bus.getExtension(SoapBindingFactory.class);


Reply via email to