You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2008/09/02 15:22:32 UTC

svn commit: r691237 - in /cxf/trunk/tools: common/src/main/java/org/apache/cxf/tools/common/ wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/ wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/ wsdlto/test/src/test/resources/wsdl2java_ws...

Author: seanoc
Date: Tue Sep  2 06:22:29 2008
New Revision: 691237

URL: http://svn.apache.org/viewvc?rev=691237&view=rev
Log:
Fix for https://issues.apache.org/jira/browse/CXF-1662

Added:
    cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf1662/
    cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf1662/child.wsdl
    cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf1662/child2.wsdl
    cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf1662/test.wsdl
    cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf1662/test2.wsdl
Modified:
    cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/ToolContext.java
    cxf/trunk/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java
    cxf/trunk/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java

Modified: cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/ToolContext.java
URL: http://svn.apache.org/viewvc/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/ToolContext.java?rev=691237&r1=691236&r2=691237&view=diff
==============================================================================
--- cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/ToolContext.java (original)
+++ cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/ToolContext.java Tue Sep  2 06:22:29 2008
@@ -39,6 +39,7 @@
     protected JavaModel javaModel;
     private Map<String, Object> paramMap;
     private String packageName;
+    private boolean packageNameChanged;
     private Map<String, String> namespacePackageMap = new HashMap<String, String>();
     private Map<String, String> excludeNamespacePackageMap = new HashMap<String, String>();
     private List<InputSource> jaxbBindingFiles = new ArrayList<InputSource>();
@@ -191,6 +192,7 @@
 
     public void setPackageName(String pkgName) {
         this.packageName = pkgName;
+        packageNameChanged = true;
     }
 
     public String getPackageName() {
@@ -257,4 +259,8 @@
     public Map<String, String> getNamespacePackageMap() {
         return namespacePackageMap;
     }
+    
+    public boolean isPackageNameChanged() {
+        return packageNameChanged;
+    }
 }

Modified: cxf/trunk/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java
URL: http://svn.apache.org/viewvc/cxf/trunk/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java?rev=691237&r1=691236&r2=691237&view=diff
==============================================================================
--- cxf/trunk/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java (original)
+++ cxf/trunk/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java Tue Sep  2 06:22:29 2008
@@ -169,6 +169,13 @@
                     }
                 }
             }
+            
+            if (context.isPackageNameChanged() && schemas.size() > 1 
+                && context.get(ToolConstants.CFG_NO_ADDRESS_BINDING) == null) {
+                throw new ToolException(new Message("-p option cannot be used "
+                    + "when wsdl contains mutiple schemas", LOG));
+            }
+            
             context.put(ToolConstants.SCHEMA_MAP, schemas);
             context.put(ToolConstants.PORTTYPE_MAP, interfaces);
             context.put(ClassCollector.class, new ClassCollector());
@@ -217,7 +224,6 @@
                 }
             }
         }
-
     }
 
     private boolean isSuppressCodeGen() {
@@ -237,6 +243,7 @@
             }
             throw ex;
         } catch (Exception ex) {
+            ex.printStackTrace();
             throw new ToolException(ex);
         } finally {
             tearDown();
@@ -341,6 +348,7 @@
                 }
             }
         }
+        
     }
 
     public void validate(ToolContext env) throws ToolException {

Modified: cxf/trunk/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java?rev=691237&r1=691236&r2=691237&view=diff
==============================================================================
--- cxf/trunk/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java (original)
+++ cxf/trunk/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java Tue Sep  2 06:22:29 2008
@@ -36,6 +36,7 @@
 import org.apache.cxf.helpers.IOUtils;
 import org.apache.cxf.tools.common.ProcessorTestBase;
 import org.apache.cxf.tools.common.ToolConstants;
+import org.apache.cxf.tools.common.ToolException;
 import org.apache.cxf.tools.util.AnnotationUtil;
 import org.apache.cxf.tools.wsdlto.WSDLToJava;
 import org.apache.cxf.tools.wsdlto.core.DataBindingProfile;
@@ -81,7 +82,7 @@
         //processor = null;
         env = null;
     }
-    
+
     @Test
     // Test for CXF-1678
     public void testLogicalOnlyWSDL() throws Exception {
@@ -1055,4 +1056,30 @@
         }
     }
     
+    @Test
+    public void testCXF1662() throws Exception {
+        String[] args = new String[] {"-d", output.getCanonicalPath(), "-p", "org.cxf",
+                getLocation("/wsdl2java_wsdl/cxf1662/test.wsdl")};
+
+        try {
+            WSDLToJava.main(args);
+        } catch (ToolException tex) {
+            assertTrue(tex.getMessage().contains(" -p option cannot be used when "
+                + "wsdl contains mutiple schemas"));
+        }    
+        
+        
+        String[] args2 = new String[] {"-d", output.getCanonicalPath(), "-p", "org.cxf",
+                getLocation("/wsdl2java_wsdl/cxf1662/test2.wsdl")};       
+        try {
+            WSDLToJava.main(args2);
+        } catch (ToolException tex) {
+            assertNull(tex);
+        }
+        assertNotNull(output);
+        File file = new File(output, "org/cxf/package-info.java");
+        assertTrue(file.exists());
+        String str = FileUtils.getStringFromFile(file);
+        assertTrue(str.contains("http://child/xsd"));
+    }   
 }

Added: cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf1662/child.wsdl
URL: http://svn.apache.org/viewvc/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf1662/child.wsdl?rev=691237&view=auto
==============================================================================
--- cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf1662/child.wsdl (added)
+++ cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf1662/child.wsdl Tue Sep  2 06:22:29 2008
@@ -0,0 +1,39 @@
+<wsdl:definitions name="Child"
+  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+  xmlns:xs="http://www.w3.org/2001/XMLSchema"
+  xmlns:tns="http://child/"
+  xmlns:xsd="http://child/xsd"
+  targetNamespace="http://child/">
+  <wsdl:types>
+    <xs:schema targetNamespace="http://child/xsd">
+      <xs:element name="Message">
+        <xs:complexType>
+          <xs:sequence/>
+        </xs:complexType>
+      </xs:element>
+    </xs:schema>
+  </wsdl:types>
+  <wsdl:message name="Message">
+    <wsdl:part name="msg" element="xsd:Message"/>
+  </wsdl:message>
+  <wsdl:portType name="PortType">
+    <wsdl:operation name="Operation">
+      <wsdl:input message="tns:Message"/>
+    </wsdl:operation>
+  </wsdl:portType>
+  <wsdl:binding name="Binding" type="tns:PortType">
+        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
+    <wsdl:operation name="Operation">
+      <soap:operation style="document"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+  </wsdl:binding>
+  <wsdl:service name="Service">
+        <wsdl:port name="Port" binding="tns:Binding">
+            <soap:address location="http://localhost/service" />
+        </wsdl:port>
+  </wsdl:service>
+</wsdl:definitions>
\ No newline at end of file

Added: cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf1662/child2.wsdl
URL: http://svn.apache.org/viewvc/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf1662/child2.wsdl?rev=691237&view=auto
==============================================================================
--- cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf1662/child2.wsdl (added)
+++ cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf1662/child2.wsdl Tue Sep  2 06:22:29 2008
@@ -0,0 +1,39 @@
+<wsdl:definitions name="Child2"
+  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+  xmlns:xs="http://www.w3.org/2001/XMLSchema"
+  xmlns:tns="http://child2/"
+  xmlns:xsd="http://child2/xsd"
+  targetNamespace="http://child2/">
+  <wsdl:types>
+    <xs:schema targetNamespace="http://child2/xsd">
+      <xs:element name="Child2Message">
+        <xs:complexType>
+          <xs:sequence/>
+        </xs:complexType>
+      </xs:element>
+    </xs:schema>
+  </wsdl:types>
+  <wsdl:message name="Child2Message">
+    <wsdl:part name="msg" element="xsd:Child2Message"/>
+  </wsdl:message>
+  <wsdl:portType name="Child2PortType">
+    <wsdl:operation name="Child2Operation">
+      <wsdl:input message="tns:Child2Message"/>
+    </wsdl:operation>
+  </wsdl:portType>
+  <wsdl:binding name="Child2Binding" type="tns:Child2PortType">
+        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
+    <wsdl:operation name="Child2Operation">
+      <soap:operation style="document"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+  </wsdl:binding>
+  <wsdl:service name="Child2Service">
+        <wsdl:port name="Child2Port" binding="tns:Child2Binding">
+            <soap:address location="http://localhost/service/child2" />
+        </wsdl:port>
+  </wsdl:service>
+</wsdl:definitions>
\ No newline at end of file

Added: cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf1662/test.wsdl
URL: http://svn.apache.org/viewvc/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf1662/test.wsdl?rev=691237&view=auto
==============================================================================
--- cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf1662/test.wsdl (added)
+++ cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf1662/test.wsdl Tue Sep  2 06:22:29 2008
@@ -0,0 +1,4 @@
+<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" name="Parent">
+    <wsdl:import namespace="http://child/" location="child.wsdl" />
+    <wsdl:import namespace="http://child2/" location="child2.wsdl" />
+</wsdl:definitions>
\ No newline at end of file

Added: cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf1662/test2.wsdl
URL: http://svn.apache.org/viewvc/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf1662/test2.wsdl?rev=691237&view=auto
==============================================================================
--- cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf1662/test2.wsdl (added)
+++ cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf1662/test2.wsdl Tue Sep  2 06:22:29 2008
@@ -0,0 +1,3 @@
+<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" name="Parent">
+    <wsdl:import namespace="http://child/" location="child.wsdl" />
+</wsdl:definitions>
\ No newline at end of file