You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2009/01/24 08:27:38 UTC

svn commit: r737314 - in /camel/trunk/components/camel-cxf/src: main/java/org/apache/camel/component/cxf/ main/java/org/apache/camel/component/cxf/converter/ main/java/org/apache/camel/component/cxf/spring/ test/java/org/apache/camel/component/cxf/spring/

Author: ningjiang
Date: Sat Jan 24 07:27:37 2009
New Revision: 737314

URL: http://svn.apache.org/viewvc?rev=737314&view=rev
Log:
CAMEL-1294 support to use the cxfEndpoint directly in Camel Context

Modified:
    camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfComponent.java
    camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java
    camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfSpringEndpoint.java
    camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfConverter.java
    camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanDefinitionParser.java
    camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanTest.java

Modified: camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfComponent.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfComponent.java?rev=737314&r1=737313&r2=737314&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfComponent.java (original)
+++ camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfComponent.java Sat Jan 24 07:27:37 2009
@@ -63,7 +63,7 @@
             
         } else {
             // endpoint URI does not specify a bean
-            result = new CxfEndpoint(this, remaining);
+            result = new CxfEndpoint(remaining, this);
         }
         
         return result;

Modified: camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java?rev=737314&r1=737313&r2=737314&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java (original)
+++ camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java Sat Jan 24 07:27:37 2009
@@ -22,6 +22,7 @@
 
 import javax.xml.ws.WebServiceProvider;
 
+import org.apache.camel.CamelContext;
 import org.apache.camel.CamelException;
 import org.apache.camel.Consumer;
 import org.apache.camel.Exchange;
@@ -81,9 +82,13 @@
     private AtomicBoolean getBusHasBeenCalled = new AtomicBoolean(false);
     private boolean isSetDefaultBus;
 
-    public CxfEndpoint(CxfComponent cxfComponent, String remaining) {
+    public CxfEndpoint(String remaining, CxfComponent cxfComponent) {
         super(remaining, cxfComponent);
     }
+    
+    public CxfEndpoint(String remaining, CamelContext context) {
+        super(remaining, context);
+    }
 
     public Producer createProducer() throws Exception {
         return new CxfProducer(this);

Modified: camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfSpringEndpoint.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfSpringEndpoint.java?rev=737314&r1=737313&r2=737314&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfSpringEndpoint.java (original)
+++ camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfSpringEndpoint.java Sat Jan 24 07:27:37 2009
@@ -22,6 +22,7 @@
 
 import javax.xml.namespace.QName;
 
+import org.apache.camel.CamelContext;
 import org.apache.camel.component.cxf.spring.CxfEndpointBean;
 import org.apache.camel.component.cxf.util.CxfEndpointUtils;
 import org.apache.camel.spring.SpringCamelContext;
@@ -50,10 +51,10 @@
     private String endpointLocalName;
     private String endpointNamespace;
     
-    public CxfSpringEndpoint(CxfComponent cxfComponent, String beanId,
+    public CxfSpringEndpoint(CamelContext context, String beanId,
             CxfEndpointBean bean) throws Exception {
         
-        super(cxfComponent, bean.getAddress());
+        super(bean.getAddress(), context);
         this.beanId = beanId;
         this.bean = bean;
         
@@ -64,6 +65,15 @@
         configurer = new ConfigurerImpl(((SpringCamelContext)getCamelContext())
             .getApplicationContext());
     }
+    
+    public CxfSpringEndpoint(CxfComponent component, String beanId,
+            CxfEndpointBean bean) throws Exception {
+        this(component.getCamelContext(), beanId, bean);
+    }
+    
+    public CxfSpringEndpoint(CamelContext context, CxfEndpointBean bean) throws Exception {
+        this(context, "", bean);
+    }
 
     /**
      * Read properties from the CxfEndpointBean and copy them to the 

Modified: camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfConverter.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfConverter.java?rev=737314&r1=737313&r2=737314&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfConverter.java (original)
+++ camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfConverter.java Sat Jan 24 07:27:37 2009
@@ -21,7 +21,11 @@
 import javax.xml.soap.SOAPMessage;
 
 import org.apache.camel.Converter;
+import org.apache.camel.Endpoint;
+import org.apache.camel.component.cxf.CxfSpringEndpoint;
 import org.apache.camel.component.cxf.DataFormat;
+import org.apache.camel.component.cxf.spring.CxfEndpointBeanDefinitionParser.CxfSpringEndpointBean;
+import org.apache.camel.spring.SpringCamelContext;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.cxf.message.MessageContentsList;
@@ -67,6 +71,17 @@
         }
         return baos.toString();
     }
+    
+    @Converter
+    public static Endpoint toEndpoint(final CxfSpringEndpointBean endpointBean) throws Exception {
+        if (endpointBean == null) {
+            throw new IllegalArgumentException("The CxfEndpoint instance is null");
+        }
+        //CamelContext 
+        SpringCamelContext context = SpringCamelContext.springCamelContext(endpointBean.getApplicationContext());
+        Endpoint answer = new CxfSpringEndpoint(context, endpointBean);        
+        return answer;
+    }
 
     @Converter
     public static DataFormat toDataFormat(final String name) {

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=737314&r1=737313&r2=737314&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 Sat Jan 24 07:27:37 2009
@@ -99,6 +99,8 @@
     // To make the CxfEndpointBean clear without touching any Spring relates class 
     // , we implements the ApplicationContextAware here
     public static class CxfSpringEndpointBean extends CxfEndpointBean implements ApplicationContextAware {
+        private ApplicationContext applicationContext;
+        
         public CxfSpringEndpointBean() {
             super();
         }
@@ -108,6 +110,7 @@
         }
         
         public void setApplicationContext(ApplicationContext ctx) throws BeansException {
+            applicationContext = ctx;
             if (getBus() == null) {
                 Bus bus = BusFactory.getThreadDefaultBus();                
                 setBus(bus);
@@ -115,6 +118,10 @@
             BusWiringBeanFactoryPostProcessor.updateBusReferencesInContext(getBus(), ctx);
         }
         
+        public ApplicationContext getApplicationContext() {
+            return applicationContext;
+        }
+        
     }
 
 

Modified: camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanTest.java?rev=737314&r1=737313&r2=737314&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanTest.java (original)
+++ camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanTest.java Sat Jan 24 07:27:37 2009
@@ -67,7 +67,6 @@
             assertTrue("Should get the fault here ", ex.getCause() instanceof org.apache.cxf.interceptor.Fault);
             // do nothing here;
         }
-
-    }
-
+    }    
+   
 }