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 2014/05/13 15:07:03 UTC

[3/4] git commit: CAMEL-6716 Fixed the issue of ServiceInterfaceStrategy fails to create with interface containing multiple methods without parameters with thanks to Andrea

CAMEL-6716 Fixed the issue of ServiceInterfaceStrategy fails to create with interface containing multiple methods without parameters with thanks to Andrea


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/4fb4175c
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/4fb4175c
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/4fb4175c

Branch: refs/heads/camel-2.12.x
Commit: 4fb4175c961a777e12bca80b7b090f03d5b90a73
Parents: 6224f46
Author: Willem Jiang <wi...@gmail.com>
Authored: Tue May 13 15:06:36 2014 +0800
Committer: Willem Jiang <wi...@gmail.com>
Committed: Tue May 13 21:05:54 2014 +0800

----------------------------------------------------------------------
 .../soap/name/ServiceInterfaceStrategy.java     | 16 ++++++-----
 .../soap/name/ServiceInterfaceStrategyTest.java |  4 +++
 .../dataformat/soap/CustomerServiceImpl.java    | 13 +++++++++
 .../camel/dataformat/soap/CustomerService.wsdl  | 28 ++++++++++++++++++++
 4 files changed, 54 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/4fb4175c/components/camel-soap/src/main/java/org/apache/camel/dataformat/soap/name/ServiceInterfaceStrategy.java
----------------------------------------------------------------------
diff --git a/components/camel-soap/src/main/java/org/apache/camel/dataformat/soap/name/ServiceInterfaceStrategy.java b/components/camel-soap/src/main/java/org/apache/camel/dataformat/soap/name/ServiceInterfaceStrategy.java
index b18f909..a860d56 100644
--- a/components/camel-soap/src/main/java/org/apache/camel/dataformat/soap/name/ServiceInterfaceStrategy.java
+++ b/components/camel-soap/src/main/java/org/apache/camel/dataformat/soap/name/ServiceInterfaceStrategy.java
@@ -158,13 +158,15 @@ public class ServiceInterfaceStrategy implements ElementNameStrategy {
             MethodInfo info = analyzeMethod(method);
             for (int i = 0; i < info.getIn().length; i++) {
                 TypeInfo ti = info.getIn()[i];
-                if (inTypeNameToQName.containsKey(ti.getTypeName())
-                    && (!(ti.getTypeName().equals("javax.xml.ws.Holder")))
-                    && (!(inTypeNameToQName.get(ti.getTypeName()).equals(ti.getElName())))) {
-                    LOG.warn("Ambiguous QName mapping. The type [ "
-                                                    + ti.getTypeName()
-                                                    + " ] is already mapped to a QName in this context.");
-                    continue;
+                if (inTypeNameToQName.containsKey(ti.getTypeName())) {
+                    if (ti.getTypeName() != null) {
+                        if (!(ti.getTypeName().equals("javax.xml.ws.Holder"))
+                            && (!(inTypeNameToQName.get(ti.getTypeName()).equals(ti.getElName())))) {
+                            LOG.warn("Ambiguous QName mapping. The type [ " + ti.getTypeName()
+                                     + " ] is already mapped to a QName in this context.");
+                            continue;
+                        }
+                    }
                 }
                 inTypeNameToQName.put(ti.getTypeName(), ti.getElName());
             }

http://git-wip-us.apache.org/repos/asf/camel/blob/4fb4175c/components/camel-soap/src/test/java/org/apache/camel/converter/soap/name/ServiceInterfaceStrategyTest.java
----------------------------------------------------------------------
diff --git a/components/camel-soap/src/test/java/org/apache/camel/converter/soap/name/ServiceInterfaceStrategyTest.java b/components/camel-soap/src/test/java/org/apache/camel/converter/soap/name/ServiceInterfaceStrategyTest.java
index 8c19a99..e14e24f 100644
--- a/components/camel-soap/src/test/java/org/apache/camel/converter/soap/name/ServiceInterfaceStrategyTest.java
+++ b/components/camel-soap/src/test/java/org/apache/camel/converter/soap/name/ServiceInterfaceStrategyTest.java
@@ -50,6 +50,10 @@ public class ServiceInterfaceStrategyTest extends Assert {
         QName elName3 = strategy.findQNameForSoapActionOrType("http://customerservice.example.com/getAllCustomers",
                 null);
         assertNull(elName3);
+        
+        QName elName4 = strategy.findQNameForSoapActionOrType("http://customerservice.example.com/getAllAmericanCustomers",
+                null);
+        assertNull(elName4);
 
         try {
             elName = strategy.findQNameForSoapActionOrType("test", Class.class);

http://git-wip-us.apache.org/repos/asf/camel/blob/4fb4175c/components/camel-soap/src/test/java/org/apache/camel/dataformat/soap/CustomerServiceImpl.java
----------------------------------------------------------------------
diff --git a/components/camel-soap/src/test/java/org/apache/camel/dataformat/soap/CustomerServiceImpl.java b/components/camel-soap/src/test/java/org/apache/camel/dataformat/soap/CustomerServiceImpl.java
index 0c1f7f8..c9c3d92 100644
--- a/components/camel-soap/src/test/java/org/apache/camel/dataformat/soap/CustomerServiceImpl.java
+++ b/components/camel-soap/src/test/java/org/apache/camel/dataformat/soap/CustomerServiceImpl.java
@@ -18,6 +18,7 @@ package org.apache.camel.dataformat.soap;
 
 import com.example.customerservice.Customer;
 import com.example.customerservice.CustomerService;
+import com.example.customerservice.GetAllAmericanCustomersResponse;
 import com.example.customerservice.GetAllCustomersResponse;
 import com.example.customerservice.GetCustomersByName;
 import com.example.customerservice.GetCustomersByNameResponse;
@@ -70,6 +71,18 @@ public class CustomerServiceImpl implements CustomerService {
         response.getReturn().add(customer);
         return response;
     }
+    
+    /**
+     * This method is to test a call without input parameter
+     */
+    public GetAllAmericanCustomersResponse getAllAmericanCustomers() {
+        GetAllAmericanCustomersResponse response = new GetAllAmericanCustomersResponse();
+        Customer customer = new Customer();
+        customer.setName("Schmitz");
+        customer.setRevenue(100000);
+        response.getReturn().add(customer);
+        return response;
+    }
 
     public void saveCustomer(SaveCustomer request) {
         lastSavedCustomer = request.getCustomer();

http://git-wip-us.apache.org/repos/asf/camel/blob/4fb4175c/components/camel-soap/src/test/resources/org/apache/camel/dataformat/soap/CustomerService.wsdl
----------------------------------------------------------------------
diff --git a/components/camel-soap/src/test/resources/org/apache/camel/dataformat/soap/CustomerService.wsdl b/components/camel-soap/src/test/resources/org/apache/camel/dataformat/soap/CustomerService.wsdl
index a1423de..3973389 100644
--- a/components/camel-soap/src/test/resources/org/apache/camel/dataformat/soap/CustomerService.wsdl
+++ b/components/camel-soap/src/test/resources/org/apache/camel/dataformat/soap/CustomerService.wsdl
@@ -73,6 +73,18 @@
                         minOccurs="0"></xs:element>
                 </xs:sequence>
             </xs:complexType>
+            
+            <xs:element name="getAllAmericanCustomers">
+            </xs:element>
+            <xs:element name="getAllAmericanCustomersResponse" type="tns:getAllAmericanCustomersResponse">
+            </xs:element>
+
+            <xs:complexType name="getAllAmericanCustomersResponse">
+                <xs:sequence>
+                    <xs:element name="return" type="tns:customer" maxOccurs="unbounded"
+                        minOccurs="0"></xs:element>
+                </xs:sequence>
+            </xs:complexType>
 
             <xs:element name="saveCustomer" type="tns:saveCustomer">
             </xs:element>
@@ -100,7 +112,12 @@
     </wsdl:message>
     <wsdl:message name="getAllCustomersResponse">
         <wsdl:part name="parameters" element="tns:getAllCustomersResponse"></wsdl:part>
+    </wsdl:message>   
+	<wsdl:message name="getAllAmericanCustomers">
     </wsdl:message>
+    <wsdl:message name="getAllAmericanCustomersResponse">
+        <wsdl:part name="parameters" element="tns:getAllAmericanCustomersResponse"></wsdl:part>
+    </wsdl:message>   
     <wsdl:message name="saveCustomerRequest">
         <wsdl:part name="parameters" element="tns:saveCustomer"></wsdl:part>
     </wsdl:message>
@@ -119,6 +136,10 @@
             <wsdl:input message="tns:getAllCustomers"></wsdl:input>
             <wsdl:output message="tns:getAllCustomersResponse"></wsdl:output>
         </wsdl:operation>
+        <wsdl:operation name="getAllAmericanCustomers">
+            <wsdl:input message="tns:getAllAmericanCustomers"></wsdl:input>
+            <wsdl:output message="tns:getAllAmericanCustomersResponse"></wsdl:output>
+        </wsdl:operation>
         <wsdl:operation name="saveCustomer">
             <wsdl:input message="tns:saveCustomerRequest"></wsdl:input>
             <wsdl:output message="tns:saveCustomerResponse"></wsdl:output>
@@ -152,6 +173,12 @@
                 <soap:body use="literal" />
             </wsdl:output>
         </wsdl:operation>
+        <wsdl:operation name="getAllAmericanCustomers">
+            <soap:operation soapAction="http://customerservice.example.com/getAllAmericanCustomers" />
+            <wsdl:output>
+                <soap:body use="literal" />
+            </wsdl:output>
+        </wsdl:operation>
         <wsdl:operation name="saveCustomer">
             <soap:operation soapAction="http://customerservice.example.com/saveCustomer" />
             <wsdl:input>
@@ -168,3 +195,4 @@
         </wsdl:port>
     </wsdl:service>
 </wsdl:definitions>
+