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/06 03:45:50 UTC

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

Author: ningjiang
Date: Wed Nov  5 18:45:49 2008
New Revision: 711756

URL: http://svn.apache.org/viewvc?rev=711756&view=rev
Log:
CAMEL-1056 Patch applied with thanks to William

Added:
    activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/wsdl_first/JaxwsTestHandler.java   (with props)
Modified:
    activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBean.java
    activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanDefinitionParser.java
    activemq/camel/trunk/components/camel-cxf/src/main/resources/schema/cxfEndpoint.xsd
    activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfWsdlFirstProcessorTest.java
    activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfWsdlFirstTest.java
    activemq/camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/WsdlFirstBeans.xml
    activemq/camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/WsdlFirstProcessor.xml

Modified: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBean.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBean.java?rev=711756&r1=711755&r2=711756&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBean.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBean.java Wed Nov  5 18:45:49 2008
@@ -17,6 +17,8 @@
 package org.apache.camel.component.cxf.spring;
 
 
+import java.util.List;
+
 import org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory;
 import org.apache.cxf.service.factory.ReflectionServiceFactoryBean;
 
@@ -24,7 +26,17 @@
  *
  */
 public class CxfEndpointBean extends AbstractWSDLBasedEndpointFactory {
+    private List handlers;
+
     public CxfEndpointBean() {
         setServiceFactory(new ReflectionServiceFactoryBean());
     }
+    
+    public List getHandlers() {
+        return handlers;
+    }
+    
+    public void setHandlers(List handlers) {
+        this.handlers = handlers;
+    }
 }

Modified: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanDefinitionParser.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanDefinitionParser.java?rev=711756&r1=711755&r2=711756&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanDefinitionParser.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanDefinitionParser.java Wed Nov  5 18:45:49 2008
@@ -55,7 +55,8 @@
             setFirstChildAsProperty(el, ctx, bean, "bindingConfig");
         } else if ("inInterceptors".equals(name) || "inFaultInterceptors".equals(name)
             || "outInterceptors".equals(name) || "outFaultInterceptors".equals(name)
-            || "features".equals(name) || "schemaLocations".equals(name)) {
+            || "features".equals(name) || "schemaLocations".equals(name)
+            || "handlers".equals(name)) {
             java.util.List list = (java.util.List)ctx.getDelegate().parseListElement(el, bean.getBeanDefinition());
             bean.addPropertyValue(name, list);
         } else {

Modified: activemq/camel/trunk/components/camel-cxf/src/main/resources/schema/cxfEndpoint.xsd
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/resources/schema/cxfEndpoint.xsd?rev=711756&r1=711755&r2=711756&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/resources/schema/cxfEndpoint.xsd (original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/resources/schema/cxfEndpoint.xsd Wed Nov  5 18:45:49 2008
@@ -41,6 +41,7 @@
             <xsd:element name="inFaultInterceptors" type="xsd:anyType" minOccurs="0"/>            
             <xsd:element name="outInterceptors" type="xsd:anyType" minOccurs="0"/>
             <xsd:element name="outFaultInterceptors" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="handlers" type="xsd:anyType" minOccurs="0"/>
             <xsd:element name="properties" type="beans:mapType" minOccurs="0"/>
             <xsd:element name="schemaLocations" type="schemasType" minOccurs="0"/>
             <xsd:element name="serviceBean" type="xsd:anyType" minOccurs="0"/>

Modified: activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfWsdlFirstProcessorTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfWsdlFirstProcessorTest.java?rev=711756&r1=711755&r2=711756&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfWsdlFirstProcessorTest.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfWsdlFirstProcessorTest.java Wed Nov  5 18:45:49 2008
@@ -16,22 +16,6 @@
  */
 package org.apache.camel.component.cxf;
 
-import java.net.URL;
-
-import javax.xml.namespace.QName;
-import javax.xml.ws.Endpoint;
-import javax.xml.ws.Holder;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.spring.SpringTestSupport;
-import org.apache.camel.wsdl_first.Person;
-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.endpoint.ServerImpl;
-import org.apache.cxf.frontend.ClientProxy;
-import org.apache.cxf.interceptor.LoggingOutInterceptor;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
 public class CxfWsdlFirstProcessorTest extends CxfWsdlFirstTest {
@@ -41,4 +25,13 @@
         return new ClassPathXmlApplicationContext("org/apache/camel/component/cxf/WsdlFirstProcessor.xml");
     }
 
+    @Override
+    protected int getExpectedJaxwsHandlerMessageCount() {
+        return 4;
+    }
+    
+    @Override
+    protected int getExpectedJaxwsHandlerFaultCount() {
+        return 2;
+    }
 }

Modified: activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfWsdlFirstTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfWsdlFirstTest.java?rev=711756&r1=711755&r2=711756&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfWsdlFirstTest.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfWsdlFirstTest.java Wed Nov  5 18:45:49 2008
@@ -21,7 +21,6 @@
 import java.util.List;
 
 import javax.xml.namespace.QName;
-import javax.xml.ws.BindingProvider;
 import javax.xml.ws.Endpoint;
 import javax.xml.ws.Holder;
 import javax.xml.ws.WebServiceException;
@@ -31,13 +30,12 @@
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.spring.SpringTestSupport;
+import org.apache.camel.wsdl_first.JaxwsTestHandler;
 import org.apache.camel.wsdl_first.Person;
 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.endpoint.ServerImpl;
-import org.apache.cxf.frontend.ClientProxy;
-import org.apache.cxf.interceptor.LoggingOutInterceptor;
 import org.apache.cxf.jaxws.EndpointImpl;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
@@ -86,6 +84,8 @@
 
     public void testInvokingServiceFromCXFClient() throws Exception {
 
+        JaxwsTestHandler myHandler = getMandatoryBean(JaxwsTestHandler.class, "myJaxwsHandler");
+        myHandler.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();
@@ -112,7 +112,18 @@
             // Caught expected WebServiceException here
             assertTrue("Should get the xml vaildate error!", ex.getMessage().indexOf("MyStringType") > 0);         
         }
+        
+        assertEquals(getExpectedJaxwsHandlerFaultCount(), myHandler.getFaultCount());
+        assertEquals(getExpectedJaxwsHandlerMessageCount(), myHandler.getMessageCount());
+
+    }
+
+    protected int getExpectedJaxwsHandlerMessageCount() {
+        return 11;
+    }
 
+    protected int getExpectedJaxwsHandlerFaultCount() {
+        return 8;
     }
 
     @SuppressWarnings("unchecked")

Added: activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/wsdl_first/JaxwsTestHandler.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/wsdl_first/JaxwsTestHandler.java?rev=711756&view=auto
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/wsdl_first/JaxwsTestHandler.java (added)
+++ activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/wsdl_first/JaxwsTestHandler.java Wed Nov  5 18:45:49 2008
@@ -0,0 +1,62 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.wsdl_first;
+
+import java.util.Set;
+import javax.xml.namespace.QName;
+import javax.xml.ws.handler.MessageContext;
+import javax.xml.ws.handler.soap.SOAPHandler;
+import javax.xml.ws.handler.soap.SOAPMessageContext;
+
+public class JaxwsTestHandler implements SOAPHandler<SOAPMessageContext> {
+
+    private int faultCount;
+    private int messageCount;
+
+    public Set<QName> getHeaders() {
+        return null;
+    }
+
+    public void close(MessageContext messagecontext) {
+        
+    }
+
+    public boolean handleFault(SOAPMessageContext messagecontext) {
+        faultCount++;
+        return true;
+    }
+
+    public boolean handleMessage(SOAPMessageContext messagecontext) {
+        messageCount++;
+        return true;
+    }
+
+    public void reset() {
+        faultCount = 0;
+        messageCount = 0;
+    }
+    
+    public int getFaultCount() {
+        return faultCount;
+    }
+    
+    public int getMessageCount() {
+        return messageCount;
+    }
+  
+
+}

Propchange: activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/wsdl_first/JaxwsTestHandler.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/wsdl_first/JaxwsTestHandler.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: activemq/camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/WsdlFirstBeans.xml
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/WsdlFirstBeans.xml?rev=711756&r1=711755&r2=711756&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/WsdlFirstBeans.xml (original)
+++ activemq/camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/WsdlFirstBeans.xml Wed Nov  5 18:45:49 2008
@@ -34,7 +34,10 @@
                    xmlns:person="http://camel.apache.org/wsdl-first">
       <cxf:properties>            
             <entry key="schema-validation-enabled" value="true" />
-      </cxf:properties>           
+      </cxf:properties>      
+      <cxf:handlers>
+          <ref bean="myJaxwsHandler"/> 
+      </cxf:handlers>     
   </cxf:cxfEndpoint> 
 
 
@@ -58,5 +61,7 @@
 
     </camelContext>
 
+    <bean id="myJaxwsHandler" class="org.apache.camel.wsdl_first.JaxwsTestHandler"/>
+
 
 </beans>

Modified: activemq/camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/WsdlFirstProcessor.xml
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/WsdlFirstProcessor.xml?rev=711756&r1=711755&r2=711756&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/WsdlFirstProcessor.xml (original)
+++ activemq/camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/WsdlFirstProcessor.xml Wed Nov  5 18:45:49 2008
@@ -36,6 +36,9 @@
         <cxf:properties>            
             <entry key="schema-validation-enabled" value="true" />
         </cxf:properties>
+        <cxf:handlers>
+          <ref bean="myJaxwsHandler"/> 
+      </cxf:handlers>     
     </cxf:cxfEndpoint> 
 
 	<cxf:cxfEndpoint id="serviceEndpoint"
@@ -63,6 +66,8 @@
 
 
 	</camelContext>
+	
+	<bean id="myJaxwsHandler" class="org.apache.camel.wsdl_first.JaxwsTestHandler"/>
 
 
 </beans>