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 2008/11/16 04:03:21 UTC

svn commit: r717969 - in /activemq/camel/branches/camel-1.x: ./ components/camel-cxf/src/main/java/org/apache/camel/component/cxf/ components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/ components/camel-cxf/src/test/java/org/apache/cam...

Author: ningjiang
Date: Sat Nov 15 19:03:21 2008
New Revision: 717969

URL: http://svn.apache.org/viewvc?rev=717969&view=rev
Log:
Merged revisions 717965 via svnmerge from 
https://svn.apache.org/repos/asf/activemq/camel/trunk

........
  r717965 | ningjiang | 2008-11-16 10:42:33 +0800 (Sun, 16 Nov 2008) | 1 line
  
  CAMEL-1094 Applied patch with thanks to William
........

Modified:
    activemq/camel/branches/camel-1.x/   (props changed)
    activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfProducer.java
    activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfSoapProducer.java
    activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfEndpointUtils.java
    activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/Dummy.java
    activemq/camel/branches/camel-1.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfWsdlFirstProcessorTest.java
    activemq/camel/branches/camel-1.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfWsdlFirstTest.java
    activemq/camel/branches/camel-1.x/components/camel-cxf/src/test/java/org/apache/camel/wsdl_first/JaxwsTestHandler.java
    activemq/camel/branches/camel-1.x/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/WsdlFirstBeans.xml
    activemq/camel/branches/camel-1.x/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/WsdlFirstProcessor.xml

Propchange: activemq/camel/branches/camel-1.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sat Nov 15 19:03:21 2008
@@ -1 +1 @@
-/activemq/camel/trunk:709850,711200,711206,711219-711220,711523,711531,711756,711784,711859,711874,711962,711971,712064,712119,712148,712662,712692,712925,713013,713107,713136,713273,713290,713292,713295,713314,713475,713625,713932,713944,714032
+/activemq/camel/trunk:709850,711200,711206,711219-711220,711523,711531,711756,711784,711859,711874,711962,711971,712064,712119,712148,712662,712692,712925,713013,713107,713136,713273,713290,713292,713295,713314,713475,713625,713932,713944,714032,717965

Propchange: activemq/camel/branches/camel-1.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfProducer.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfProducer.java?rev=717969&r1=717968&r2=717969&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfProducer.java (original)
+++ activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfProducer.java Sat Nov 15 19:03:21 2008
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.component.cxf;
 
+import java.lang.reflect.Proxy;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -42,7 +43,9 @@
 import org.apache.cxf.common.classloader.ClassLoaderUtils;
 import org.apache.cxf.endpoint.Client;
 import org.apache.cxf.endpoint.Endpoint;
-import org.apache.cxf.frontend.ClientFactoryBean;
+import org.apache.cxf.frontend.ClientProxy;
+import org.apache.cxf.frontend.ClientProxyFactoryBean;
+import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
 import org.apache.cxf.message.ExchangeImpl;
 import org.apache.cxf.message.Message;
 import org.apache.cxf.message.MessageContentsList;
@@ -86,15 +89,16 @@
                 throw new CamelException(e);
             }
         }
-
+        
         boolean jsr181Enabled = CxfEndpointUtils.hasWebServiceAnnotation(serviceClass);
         cfb.setJSR181Enabled(jsr181Enabled);
-        
-        return createClientFromClientFactoryBean(cfb);
+       
+        return createClientFromClientFactoryBean(jsr181Enabled ? new JaxWsProxyFactoryBean(cfb) :
+            new ClientProxyFactoryBean(cfb));
     }
 
     // If cfb is null, we will try to find the right cfb to use.
-    private Client createClientFromClientFactoryBean(ClientFactoryBean cfb) throws CamelException {
+    private Client createClientFromClientFactoryBean(ClientProxyFactoryBean cfb) throws CamelException {
         Bus bus = null;
         if (endpoint.getApplicationContext() != null) {
             SpringBusFactory bf = new SpringBusFactory(endpoint.getApplicationContext());
@@ -153,7 +157,7 @@
         }
         
         cfb.setBus(bus);
-        return cfb.create();
+        return ((ClientProxy)Proxy.getInvocationHandler(cfb.create())).getClient();
     }
 
     public void process(Exchange exchange) throws Exception {

Modified: activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfSoapProducer.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfSoapProducer.java?rev=717969&r1=717968&r2=717969&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfSoapProducer.java (original)
+++ activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfSoapProducer.java Sat Nov 15 19:03:21 2008
@@ -17,6 +17,7 @@
 package org.apache.camel.component.cxf;
 
 import java.io.OutputStream;
+import java.lang.reflect.Proxy;
 
 import javax.xml.transform.Source;
 
@@ -36,6 +37,8 @@
 import org.apache.cxf.Bus;
 import org.apache.cxf.endpoint.ClientImpl;
 import org.apache.cxf.frontend.ClientFactoryBean;
+import org.apache.cxf.frontend.ClientProxy;
+import org.apache.cxf.frontend.ClientProxyFactoryBean;
 import org.apache.cxf.interceptor.InterceptorChain;
 import org.apache.cxf.interceptor.OutgoingChainInterceptor;
 import org.apache.cxf.io.CachedOutputStream;
@@ -74,7 +77,7 @@
 
         //create the endpoint and setup the interceptors
         Class sei = CxfEndpointUtils.getSEIClass(endpoint.getServiceClass());
-        ClientFactoryBean cfb = CxfEndpointUtils.getClientFactoryBean(sei);
+        ClientProxyFactoryBean cfb = CxfEndpointUtils.getClientFactoryBean(sei);
         if (sei == null) {
             cfb.setServiceClass(Dummy.class);
         } else {
@@ -88,7 +91,7 @@
             cfb.setEndpointName(endpoint.getEndpointName());
         }
         cfb.setConduitSelector(new NullConduitSelector());
-        client = (ClientImpl) cfb.create();
+        client = (ClientImpl)((ClientProxy)Proxy.getInvocationHandler(cfb.create())).getClient();
 
     }
 

Modified: activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfEndpointUtils.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfEndpointUtils.java?rev=717969&r1=717968&r2=717969&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfEndpointUtils.java (original)
+++ activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfEndpointUtils.java Sat Nov 15 19:03:21 2008
@@ -35,9 +35,9 @@
 import org.apache.cxf.common.classloader.ClassLoaderUtils;
 import org.apache.cxf.common.i18n.Message;
 import org.apache.cxf.common.logging.LogUtils;
-import org.apache.cxf.frontend.ClientFactoryBean;
+import org.apache.cxf.frontend.ClientProxyFactoryBean;
 import org.apache.cxf.frontend.ServerFactoryBean;
-import org.apache.cxf.jaxws.JaxWsClientFactoryBean;
+import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
 import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
 import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
 import org.apache.cxf.service.Service;
@@ -147,16 +147,16 @@
 
     }
 
-    public static ClientFactoryBean getClientFactoryBean(Class<?> cls) throws CamelException {
-        ClientFactoryBean clientFactory = null;
+    public static ClientProxyFactoryBean getClientFactoryBean(Class<?> cls) throws CamelException {
+        ClientProxyFactoryBean clientFactory = null;
         try {
             if (cls == null) {
-                clientFactory = new ClientFactoryBean();
+                clientFactory = new ClientProxyFactoryBean();
                 clientFactory.setServiceFactory(new WSDLSoapServiceFactoryBean());
             } else {
                 boolean isJSR181SEnabled = CxfEndpointUtils.hasWebServiceAnnotation(cls);
-                clientFactory = isJSR181SEnabled ? new JaxWsClientFactoryBean()
-                        : new ClientFactoryBean();
+                clientFactory = isJSR181SEnabled ? new JaxWsProxyFactoryBean()
+                        : new ClientProxyFactoryBean();
             }
             return clientFactory;
         } catch (Exception e) {
@@ -274,3 +274,4 @@
 }
 
 
+

Modified: activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/Dummy.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/Dummy.java?rev=717969&r1=717968&r2=717969&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/Dummy.java (original)
+++ activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/Dummy.java Sat Nov 15 19:03:21 2008
@@ -17,6 +17,6 @@
 package org.apache.camel.component.cxf.util;
 
 // Dummy class for setting service class
-public class Dummy {
+public interface Dummy {
 
 }

Modified: activemq/camel/branches/camel-1.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfWsdlFirstProcessorTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfWsdlFirstProcessorTest.java?rev=717969&r1=717968&r2=717969&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfWsdlFirstProcessorTest.java (original)
+++ activemq/camel/branches/camel-1.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfWsdlFirstProcessorTest.java Sat Nov 15 19:03:21 2008
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.component.cxf;
 
+import org.apache.camel.wsdl_first.JaxwsTestHandler;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
 public class CxfWsdlFirstProcessorTest extends CxfWsdlFirstTest {
@@ -26,12 +27,11 @@
     }
 
     @Override
-    protected int getExpectedJaxwsHandlerMessageCount() {
-        return 4;
-    }
-    
-    @Override
-    protected int getExpectedJaxwsHandlerFaultCount() {
-        return 2;
+    protected void verifyJaxwsHandlers(JaxwsTestHandler fromHandler, JaxwsTestHandler toHandler) {
+        assertEquals(2, fromHandler.getFaultCount());
+        assertEquals(4, fromHandler.getMessageCount());
+        assertEquals(0, toHandler.getGetHeadersCount());
+        
     }
+
 }

Modified: activemq/camel/branches/camel-1.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfWsdlFirstTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfWsdlFirstTest.java?rev=717969&r1=717968&r2=717969&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfWsdlFirstTest.java (original)
+++ activemq/camel/branches/camel-1.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfWsdlFirstTest.java Sat Nov 15 19:03:21 2008
@@ -84,8 +84,12 @@
 
     public void testInvokingServiceFromCXFClient() throws Exception {
 
-        JaxwsTestHandler myHandler = getMandatoryBean(JaxwsTestHandler.class, "myJaxwsHandler");
-        myHandler.reset();
+        JaxwsTestHandler fromHandler = getMandatoryBean(JaxwsTestHandler.class, "fromEndpointJaxwsHandler");
+        fromHandler.reset();
+        
+        JaxwsTestHandler toHandler = getMandatoryBean(JaxwsTestHandler.class, "toEndpointJaxwsHandler");
+        toHandler.reset();
+
         URL wsdlURL = getClass().getClassLoader().getResource("person.wsdl");
         PersonService ss = new PersonService(wsdlURL, new QName("http://camel.apache.org/wsdl-first", "PersonService"));
         Person client = ss.getSoap();
@@ -113,17 +117,14 @@
             assertTrue("Should get the xml vaildate error!", ex.getMessage().indexOf("MyStringType") > 0);         
         }
         
-        assertEquals(getExpectedJaxwsHandlerFaultCount(), myHandler.getFaultCount());
-        assertEquals(getExpectedJaxwsHandlerMessageCount(), myHandler.getMessageCount());
-
+        verifyJaxwsHandlers(fromHandler, toHandler);
     }
 
-    protected int getExpectedJaxwsHandlerMessageCount() {
-        return 11;
-    }
-
-    protected int getExpectedJaxwsHandlerFaultCount() {
-        return 8;
+    protected void verifyJaxwsHandlers(JaxwsTestHandler fromHandler, JaxwsTestHandler toHandler) {
+        assertEquals(8, fromHandler.getFaultCount());
+        assertEquals(11, fromHandler.getMessageCount());
+        assertEquals(7, toHandler.getGetHeadersCount());
+        
     }
 
     @SuppressWarnings("unchecked")

Modified: activemq/camel/branches/camel-1.x/components/camel-cxf/src/test/java/org/apache/camel/wsdl_first/JaxwsTestHandler.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/components/camel-cxf/src/test/java/org/apache/camel/wsdl_first/JaxwsTestHandler.java?rev=717969&r1=717968&r2=717969&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/components/camel-cxf/src/test/java/org/apache/camel/wsdl_first/JaxwsTestHandler.java (original)
+++ activemq/camel/branches/camel-1.x/components/camel-cxf/src/test/java/org/apache/camel/wsdl_first/JaxwsTestHandler.java Sat Nov 15 19:03:21 2008
@@ -26,8 +26,14 @@
 
     private int faultCount;
     private int messageCount;
+    private int getHeadersCount;
+
+    public int getGetHeadersCount() {
+        return getHeadersCount;
+    }
 
     public Set<QName> getHeaders() {
+        getHeadersCount++;
         return null;
     }
 
@@ -48,6 +54,7 @@
     public void reset() {
         faultCount = 0;
         messageCount = 0;
+        getHeadersCount = 0;
     }
     
     public int getFaultCount() {

Modified: activemq/camel/branches/camel-1.x/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/WsdlFirstBeans.xml
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/WsdlFirstBeans.xml?rev=717969&r1=717968&r2=717969&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/WsdlFirstBeans.xml (original)
+++ activemq/camel/branches/camel-1.x/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/WsdlFirstBeans.xml Sat Nov 15 19:03:21 2008
@@ -36,7 +36,7 @@
             <entry key="schema-validation-enabled" value="true" />
       </cxf:properties>      
       <cxf:handlers>
-          <ref bean="myJaxwsHandler"/> 
+          <ref bean="fromEndpointJaxwsHandler"/> 
       </cxf:handlers>     
   </cxf:cxfEndpoint> 
 
@@ -45,7 +45,13 @@
                    serviceClass="org.apache.camel.wsdl_first.Person"
                    endpointName="person:soap"
                    serviceName="person:PersonService"                   
-                   xmlns:person="http://camel.apache.org/wsdl-first"/>
+                   xmlns:person="http://camel.apache.org/wsdl-first">
+      
+      <cxf:handlers>
+          <ref bean="toEndpointJaxwsHandler"/> 
+      </cxf:handlers>     
+
+  </cxf:cxfEndpoint>
       
 
    <camelContext id="camel" xmlns="http://activemq.apache.org/camel/schema/spring">
@@ -61,7 +67,9 @@
 
     </camelContext>
 
-    <bean id="myJaxwsHandler" class="org.apache.camel.wsdl_first.JaxwsTestHandler"/>
+    <bean id="fromEndpointJaxwsHandler" class="org.apache.camel.wsdl_first.JaxwsTestHandler"/>
+    <bean id="toEndpointJaxwsHandler" class="org.apache.camel.wsdl_first.JaxwsTestHandler"/>
+    
 
 
 </beans>

Modified: activemq/camel/branches/camel-1.x/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/WsdlFirstProcessor.xml
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/WsdlFirstProcessor.xml?rev=717969&r1=717968&r2=717969&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/WsdlFirstProcessor.xml (original)
+++ activemq/camel/branches/camel-1.x/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/WsdlFirstProcessor.xml Sat Nov 15 19:03:21 2008
@@ -37,7 +37,7 @@
             <entry key="schema-validation-enabled" value="true" />
         </cxf:properties>
         <cxf:handlers>
-          <ref bean="myJaxwsHandler"/> 
+          <ref bean="fromEndpointJaxwsHandler"/> 
       </cxf:handlers>     
     </cxf:cxfEndpoint> 
 
@@ -46,7 +46,11 @@
 		serviceClass="org.apache.camel.wsdl_first.Person"
 		endpointName="person:soap"		
 		serviceName="person:PersonService"
-		xmlns:person="http://camel.apache.org/wsdl-first"/>    
+		xmlns:person="http://camel.apache.org/wsdl-first">
+		<cxf:handlers>
+          <ref bean="toEndpointJaxwsHandler"/> 
+        </cxf:handlers>
+	</cxf:cxfEndpoint>    
 
 	<bean id="personProcessor"
 		class="org.apache.camel.wsdl_first.PersonProcessor" />
@@ -67,7 +71,8 @@
 
 	</camelContext>
 	
-	<bean id="myJaxwsHandler" class="org.apache.camel.wsdl_first.JaxwsTestHandler"/>
+	<bean id="fromEndpointJaxwsHandler" class="org.apache.camel.wsdl_first.JaxwsTestHandler"/>
+	<bean id="toEndpointJaxwsHandler" class="org.apache.camel.wsdl_first.JaxwsTestHandler"/>
 
 
 </beans>