cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From e..@apache.org
Subject svn commit: r521224 - in /incubator/cxf/trunk: rt/core/src/main/java/org/apache/cxf/wsdl11/ tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/ tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/ tools/wsdlto/test/src/test/resou...
Date Thu, 22 Mar 2007 11:36:12 GMT
Author: ema
Date: Thu Mar 22 04:36:11 2007
New Revision: 521224

URL: http://svn.apache.org/viewvc?view=rev&rev=521224
Log:
[CXF-469] Enable tools to generate multiple interface class for wsdl with no service

Added:
    incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/helloworld_noservice_import.wsdl
  (with props)
    incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/helloworld_noservice_imported1.wsdl
  (with props)
    incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/helloworld_noservice_imported2.wsdl
  (with props)
Modified:
    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java
    incubator/cxf/trunk/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java
    incubator/cxf/trunk/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java

Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java?view=diff&rev=521224&r1=521223&r2=521224
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java
(original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java
Thu Mar 22 04:36:11 2007
@@ -88,7 +88,7 @@
 import static org.apache.cxf.helpers.CastUtils.cast;
 
 public class WSDLServiceBuilder {
-
+  
     public static final String WSDL_SCHEMA_LIST = WSDLServiceBuilder.class.getName() + ".SCHEMA";
     public static final String WSDL_DEFINITION = WSDLServiceBuilder.class.getName() + ".DEFINITION";
     public static final String WSDL_SERVICE = WSDLServiceBuilder.class.getName() + ".SERVICE";
@@ -158,7 +158,25 @@
         return buildService(def, serv, null);
     }
     
-    public ServiceInfo buildMockService(Definition def) {
+    
+    public List<ServiceInfo> buildMockServices(Definition d) {
+        List<ServiceInfo> serviceList = new ArrayList<ServiceInfo>();
+        List<Definition> defList = new ArrayList<Definition>();
+        defList.add(d);
+        parseImports(d, defList);        
+        for (Definition def : defList) {
+            for (Iterator ite = def.getPortTypes().entrySet().iterator(); ite.hasNext();)
{
+                Entry entry = (Entry)ite.next();
+                PortType portType = def.getPortType((QName)entry.getKey());
+                ServiceInfo serviceInfo = this.buildMockService(def, portType);
+                serviceList.add(serviceInfo);
+            }     
+        }
+        return serviceList;
+    }
+    
+    
+    public ServiceInfo buildMockService(Definition def, PortType p) {
         DescriptionInfo description = new DescriptionInfo();
         description.setProperty(WSDL_DEFINITION, def);
         description.setName(def.getQName());
@@ -170,17 +188,13 @@
         service.setDescription(description);
         service.setProperty(WSDL_DEFINITION, def);
         XmlSchemaCollection schemas = getSchemas(def, service);
-        
-        
+                
         service.setProperty(WSDL_SCHEMA_ELEMENT_LIST, this.schemaList);       
        
         service.setProperty(WSDL_SCHEMA_LIST, schemas);
+
+        buildInterface(service, p);
         
-        for (Iterator ite = def.getPortTypes().entrySet().iterator(); ite.hasNext();) {
-            Entry entry = (Entry)ite.next();
-            PortType portType = def.getPortType((QName)entry.getKey());
-            buildInterface(service, portType);
-        }
         return service;
     }
     
@@ -533,7 +547,6 @@
     private void checkForWrapped(OperationInfo opInfo) {
         MessageInfo inputMessage = opInfo.getInput();
         MessageInfo outputMessage = opInfo.getOutput();
-
         boolean passedRule = true;
         // RULE No.1:
         // The operation's input and output message (if present) each contain
@@ -547,7 +560,6 @@
         if (!passedRule) {
             return;
         }
-
         XmlSchemaCollection schemas = (XmlSchemaCollection)opInfo.getInterface().getService()
             .getProperty(WSDL_SCHEMA_LIST);
         XmlSchemaElement inputEl = null;
@@ -571,7 +583,6 @@
         if (!passedRule) {
             return;
         }
-
         // RULE No.3:
         // The output message part refers to a global element declaration
         MessagePartInfo outputPart = null;
@@ -590,7 +601,6 @@
         if (!passedRule) {
             return;
         }
-
         // RULE No.4 and No5:
         // wrapper element should be pure complex type
 
@@ -632,7 +642,6 @@
         if (!passedRule) {
             return;
         }
-
         // we are wrappable!!
         opInfo.setUnwrappedOperation(unwrapped);
         unwrapped.setInput(opInfo.getInputName(), unwrappedInput);
@@ -691,7 +700,6 @@
     private void buildMessage(AbstractMessageContainer minfo, Message msg, List paramOrder)
{
         XmlSchemaCollection schemas = (XmlSchemaCollection)minfo.getOperation().getInterface().getService()
             .getProperty(WSDL_SCHEMA_LIST);
-
         List orderedParam = msg.getOrderedParts(paramOrder);
         for (Part part : cast(orderedParam, Part.class)) {
             MessagePartInfo pi = minfo.addMessagePart(new QName(minfo.getName().getNamespaceURI(),
part

Modified: incubator/cxf/trunk/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java?view=diff&rev=521224&r1=521223&r2=521224
==============================================================================
--- incubator/cxf/trunk/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java
(original)
+++ incubator/cxf/trunk/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java
Thu Mar 22 04:36:11 2007
@@ -142,8 +142,7 @@
                 } else  if (definition.getServices().size() > 0) {
                     serviceList = serviceBuilder.buildService(definition);
                 } else  {
-                    ServiceInfo service = serviceBuilder.buildMockService(definition);
-                    serviceList.add(service);
+                    serviceList = serviceBuilder.buildMockServices(definition);
                 }
 
                 context.put(ClassCollector.class, new ClassCollector());
@@ -152,7 +151,8 @@
             }
             Map<String, InterfaceInfo> interfaces = new HashMap<String, InterfaceInfo>();
             for (ServiceInfo service : serviceList) {
-                if (!interfaces.containsKey(service.getInterface().getName().toString()))
{
+                if (service.getInterface() != null
+                    && !interfaces.containsKey(service.getInterface().getName().toString()))
{
                     interfaces.put(service.getInterface().getName().toString(), service.getInterface());
                 }
             }

Modified: incubator/cxf/trunk/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java?view=diff&rev=521224&r1=521223&r2=521224
==============================================================================
--- incubator/cxf/trunk/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java
(original)
+++ incubator/cxf/trunk/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java
Thu Mar 22 04:36:11 2007
@@ -323,4 +323,14 @@
         processor.setContext(env);
         processor.execute();
     }
+    
+    public void testNoServiceImport() throws Exception {
+        env.put(ToolConstants.CFG_WSDLURL, getLocation("/wsdl2java_wsdl/helloworld_noservice_import.wsdl"));
+        processor.setContext(env);
+        processor.execute();
+        Class cls = classLoader.loadClass("org.apache.hello_world1.Greeter");
+        assertNotNull(cls);
+        cls = classLoader.loadClass("org.apache.hello_world2.Greeter2");
+    }
+    
 }

Added: incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/helloworld_noservice_import.wsdl
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/helloworld_noservice_import.wsdl?view=auto&rev=521224
==============================================================================
--- incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/helloworld_noservice_import.wsdl
(added)
+++ incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/helloworld_noservice_import.wsdl
Thu Mar 22 04:36:11 2007
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+-->
+<wsdl:definitions name="HelloWorldImport"
+    xmlns="http://schemas.xmlsoap.org/wsdl/"
+    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+    xmlns:tns="http://apache.org/hello_world"
+    xmlns:x1="http://apache.org/hello_world/messages"
+    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+    targetNamespace="http://apache.org/hello_world">
+
+
+    <wsdl:import
+            namespace="http://apache.org/hello_world1"
+        location="./helloworld_noservice_imported1.wsdl"/>
+        
+    <wsdl:import
+	    namespace="http://apache.org/hello_world2"
+        location="./helloworld_noservice_imported2.wsdl"/>
+    
+   
+</wsdl:definitions>

Propchange: incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/helloworld_noservice_import.wsdl
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/helloworld_noservice_import.wsdl
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/helloworld_noservice_import.wsdl
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/helloworld_noservice_imported1.wsdl
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/helloworld_noservice_imported1.wsdl?view=auto&rev=521224
==============================================================================
--- incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/helloworld_noservice_imported1.wsdl
(added)
+++ incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/helloworld_noservice_imported1.wsdl
Thu Mar 22 04:36:11 2007
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+-->
+<wsdl:definitions name="HelloWorldImport1"
+    xmlns="http://schemas.xmlsoap.org/wsdl/"
+    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+    xmlns:tns="http://apache.org/hello_world1"
+    xmlns:x1="http://apache.org/hello_world/types"
+    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+    targetNamespace="http://apache.org/hello_world1">
+    <wsdl:types>
+        <schema
+            xmlns="http://www.w3.org/2001/XMLSchema"
+            xmlns:x1="http://apache.org/hello_world/types"
+            targetNamespace="http://apache.org/hello_world/types"
+            elementFormDefault="qualified">
+            <element name="pingMe">
+                <complexType/>
+            </element>
+            <element name="pingMeResponse">
+                <complexType/>
+            </element>
+            <element name="faultDetail">
+                <complexType>
+                    <sequence>
+                        <element name="minor" type="short" form="qualified" minOccurs="0"/>
+                        <element name="major" type="short" form="qualified" minOccurs="0"/>
+                    </sequence>
+                </complexType>
+            </element>
+        </schema>
+    </wsdl:types>
+
+    <wsdl:message name="pingMeRequest">
+        <wsdl:part name="in" element="x1:pingMe"/>
+    </wsdl:message>
+    <wsdl:message name="pingMeResponse">
+        <wsdl:part name="out" element="x1:pingMeResponse"/>
+    </wsdl:message>
+    <wsdl:message name="pingMeFault">
+        <wsdl:part name="faultDetail" element="x1:faultDetail"/>
+    </wsdl:message>
+    <wsdl:portType name="Greeter">
+        <wsdl:operation name="pingMe">
+            <wsdl:input name="pingMeRequest" message="tns:pingMeRequest"/>
+            <wsdl:output name="pingMeResponse" message="tns:pingMeResponse"/>
+            <wsdl:fault name="pingMeFault" message="tns:pingMeFault"/>
+        </wsdl:operation>
+    </wsdl:portType>  
+</wsdl:definitions>
\ No newline at end of file

Propchange: incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/helloworld_noservice_imported1.wsdl
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/helloworld_noservice_imported1.wsdl
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/helloworld_noservice_imported1.wsdl
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/helloworld_noservice_imported2.wsdl
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/helloworld_noservice_imported2.wsdl?view=auto&rev=521224
==============================================================================
--- incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/helloworld_noservice_imported2.wsdl
(added)
+++ incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/helloworld_noservice_imported2.wsdl
Thu Mar 22 04:36:11 2007
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+-->
+<wsdl:definitions name="HelloWorldImport2"
+    xmlns="http://schemas.xmlsoap.org/wsdl/"
+    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+    xmlns:tns="http://apache.org/hello_world2"
+    xmlns:x1="http://apache.org/hello_world/types"
+    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+    targetNamespace="http://apache.org/hello_world2">    
+    <wsdl:types>
+            <schema
+                xmlns="http://www.w3.org/2001/XMLSchema"
+                targetNamespace="http://apache.org/hello_world/types"
+                elementFormDefault="qualified">
+                <element name="sayHi">
+                    <complexType/>
+                </element>
+                <element name="sayHiResponse">
+                    <complexType>
+                        <sequence>
+                            <element name="responseType" type="string"/>
+                        </sequence>
+                    </complexType>
+                </element>
+                
+            </schema>
+    </wsdl:types>
+    <wsdl:message name="sayHiRequest">
+            <wsdl:part name="in" element="x1:sayHi"/>
+        </wsdl:message>
+        <wsdl:message name="sayHiResponse">
+            <wsdl:part name="out" element="x1:sayHiResponse"/>
+    </wsdl:message>
+    <wsdl:portType name="Greeter2">
+            <wsdl:operation name="sayHi">
+                <wsdl:input message="tns:sayHiRequest" name="sayHiRequest"/>
+                <wsdl:output message="tns:sayHiResponse" name="sayHiResponse"/>
+            </wsdl:operation>            
+    </wsdl:portType>   
+</wsdl:definitions>
\ No newline at end of file

Propchange: incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/helloworld_noservice_imported2.wsdl
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/helloworld_noservice_imported2.wsdl
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/helloworld_noservice_imported2.wsdl
------------------------------------------------------------------------------
    svn:mime-type = text/xml



Mime
View raw message