You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by dk...@apache.org on 2011/12/02 21:04:16 UTC

svn commit: r1209676 - in /camel/trunk/components/camel-cxf/src: main/java/org/apache/camel/component/cxf/spring/ test/java/org/apache/camel/component/cxf/spring/ test/resources/org/apache/camel/component/cxf/ test/resources/org/apache/camel/component/...

Author: dkulp
Date: Fri Dec  2 20:04:15 2011
New Revision: 1209676

URL: http://svn.apache.org/viewvc?rev=1209676&view=rev
Log:
[CAMEL-3731] Enhance how the bus wiring is done for cxf endpoints
Support both CXF >=2.5.1 and older CXF versions that don't have
the bug fixed there.
Also fix some tests that will start failing with CXF 2.5.1 that were
referencing an undefined bus.

Modified:
    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/CxfEndpointBeanBusSettingTest.java
    camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/CxfDispatchMessageBeans.xml
    camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/CxfDispatchPayloadBeans.xml
    camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/spring/CxfEndpointBeansBusSetting.xml

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=1209676&r1=1209675&r2=1209676&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 Fri Dec  2 20:04:15 2011
@@ -23,6 +23,7 @@ import javax.xml.namespace.QName;
 import org.w3c.dom.Element;
 
 import org.apache.camel.component.cxf.CxfSpringEndpoint;
+import org.apache.cxf.common.util.StringUtils;
 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
 import org.springframework.beans.factory.xml.ParserContext;
 
@@ -43,6 +44,17 @@ public class CxfEndpointBeanDefinitionPa
     }
 
     @Override
+    protected boolean parseAttributes(Element element, ParserContext ctx, BeanDefinitionBuilder bean) {
+        boolean addedBus = super.parseAttributes(element, ctx, bean);
+        final String bus = element.getAttribute("bus");
+        if (!addedBus && !StringUtils.isEmpty(bus)) {
+            bean.addPropertyReference("bus", bus.startsWith("#") ? bus.substring(1) : bus);
+            addedBus = true;
+        }
+        return addedBus;
+    }
+
+    @Override
     protected void mapAttribute(BeanDefinitionBuilder bean, Element e, String name, String val) {
         if ("endpointName".equals(name) || "serviceName".equals(name)) {
             if (isSpringPlaceHolder(val)) {

Modified: camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanBusSettingTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanBusSettingTest.java?rev=1209676&r1=1209675&r2=1209676&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanBusSettingTest.java (original)
+++ camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanBusSettingTest.java Fri Dec  2 20:04:15 2011
@@ -46,20 +46,17 @@ public class CxfEndpointBeanBusSettingTe
         Bus cxf1 = endpoint.getBus();
         
         assertEquals(cxf1, ctx.getBean("cxf1"));
-        assertTrue(cxf1.getOutInterceptors().size() >= 1);
-        assertTrue(cxf1.getInInterceptors().size() == 0);
-        LoggingOutInterceptor log1 = getInterceptor(cxf1.getOutInterceptors(), LoggingOutInterceptor.class);
-        assertNotNull(log1);
+        assertEquals(cxf1, endpoint.getBus());
+        assertEquals("barf", endpoint.getBus().getProperty("foo"));
         
         endpoint = (CxfEndpoint)camelContext.getEndpoint("cxf:bean:serviceEndpoint");
         assertEquals("Get a wrong endpoint uri", "cxf://bean:serviceEndpoint", endpoint.getEndpointUri());
         Bus cxf2 = endpoint.getBus();
         
         assertEquals(cxf2, ctx.getBean("cxf2"));
-        assertTrue(cxf2.getInInterceptors().size() >= 1);
-        assertTrue(cxf2.getOutInterceptors().size() == 0);
-        LoggingInInterceptor log2 = getInterceptor(cxf2.getInInterceptors(), LoggingInInterceptor.class);
-        assertNotNull(log2);
+        assertEquals(cxf2, endpoint.getBus());
+        assertEquals("snarf", endpoint.getBus().getProperty("foo"));
+        
     }
     
     

Modified: camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/CxfDispatchMessageBeans.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/CxfDispatchMessageBeans.xml?rev=1209676&r1=1209675&r2=1209676&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/CxfDispatchMessageBeans.xml (original)
+++ camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/CxfDispatchMessageBeans.xml Fri Dec  2 20:04:15 2011
@@ -32,7 +32,7 @@
 		   address="http://localhost:${CXFTestSupport.port1}/CxfDispatchMessageTest/SoapContext/GreeterPort"
 		   endpointName="s:GreeterPort" 
 		   serviceName="s:GreeterService"
-		   bus="#bus">
+		   bus="#cxf">
 
       <cxf:properties>
          <entry key="dataFormat" value="MESSAGE"/>

Modified: camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/CxfDispatchPayloadBeans.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/CxfDispatchPayloadBeans.xml?rev=1209676&r1=1209675&r2=1209676&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/CxfDispatchPayloadBeans.xml (original)
+++ camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/CxfDispatchPayloadBeans.xml Fri Dec  2 20:04:15 2011
@@ -33,7 +33,7 @@
 		   address="http://localhost:${CXFTestSupport.port1}/CxfDispatchPayloadTest/SoapContext/GreeterPort"
 		   endpointName="s:GreeterPort" 
 		   serviceName="s:GreeterService"
-		   bus="#bus">
+		   bus="#cxf">
 
       <cxf:properties>
          <entry key="dataFormat" value="PAYLOAD"/>

Modified: camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/spring/CxfEndpointBeansBusSetting.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/spring/CxfEndpointBeansBusSetting.xml?rev=1209676&r1=1209675&r2=1209676&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/spring/CxfEndpointBeansBusSetting.xml (original)
+++ camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/spring/CxfEndpointBeansBusSetting.xml Fri Dec  2 20:04:15 2011
@@ -29,20 +29,16 @@
     ">
     <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/>
 
-    <bean id="cxf1" class="org.apache.cxf.bus.extension.ExtensionManagerBus"/>
-    <bean id="cxf2" class="org.apache.cxf.bus.extension.ExtensionManagerBus"/>
-
-    <!-- The bus configure doesn't create the CXF bus instance -->
     <cxfcore:bus bus="cxf1">
-        <cxfcore:outInterceptors>
-        <bean id="logOutbound" class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
-        </cxfcore:outInterceptors>
+        <cxfcore:properties>
+            <entry key="foo" value="barf"/>
+        </cxfcore:properties>
     </cxfcore:bus>
 
     <cxfcore:bus bus="cxf2">
-        <cxfcore:inInterceptors>
-        <bean id="logInbound" class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
-        </cxfcore:inInterceptors>
+        <cxfcore:properties>
+            <entry key="foo" value="snarf"/>
+        </cxfcore:properties>
     </cxfcore:bus>