Author: ema
Date: Thu Jul 19 04:51:17 2007
New Revision: 557586

URL: http://svn.apache.org/viewvc?view=rev&rev=557586
Log:
[CXF-810]Fixed ant script generated by wsdl2java

Modified:
    
incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/AntGenerator.java
    
incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/build.vm
    
incubator/cxf/trunk/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java

Modified: 
incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/AntGenerator.java
URL: 
http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/AntGenerator.java?view=diff&rev=557586&r1=557585&r2=557586
==============================================================================
--- 
incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/AntGenerator.java
 (original)
+++ 
incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/AntGenerator.java
 Thu Jul 19 04:51:17 2007
@@ -19,12 +19,20 @@
 
 package org.apache.cxf.tools.wsdlto.frontend.jaxws.generators;
 
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
 import org.apache.cxf.common.i18n.Message;
 import org.apache.cxf.service.model.ServiceInfo;
 import org.apache.cxf.tools.common.ToolConstants;
 import org.apache.cxf.tools.common.ToolContext;
 import org.apache.cxf.tools.common.ToolException;
+import org.apache.cxf.tools.common.model.JavaInterface;
 import org.apache.cxf.tools.common.model.JavaModel;
+import org.apache.cxf.tools.common.model.JavaPort;
+import org.apache.cxf.tools.common.model.JavaServiceClass;
+import org.apache.cxf.tools.util.NameUtil;
 
 public class AntGenerator extends AbstractJAXWSGenerator {
 
@@ -60,9 +68,50 @@
             }
             return;
         }
+        
+        Map<String, String> clientClassNamesMap = new HashMap<String, 
String>();
+        Map<String, String> serverClassNamesMap = new HashMap<String, 
String>();
+        
+        Map<String, JavaInterface> interfaces = javaModel.getInterfaces();
+        int index = 1;
+        Iterator it = javaModel.getServiceClasses().values().iterator();
+        while (it.hasNext()) {
+            JavaServiceClass js = (JavaServiceClass)it.next();
+            Iterator i = js.getPorts().iterator();
+            while (i.hasNext()) {
+                JavaPort jp = (JavaPort)i.next();
+                String interfaceName = jp.getPortType();
+                JavaInterface intf = interfaces.get(interfaceName);
+                
+                String clientClassName = intf.getPackageName() + "." + 
interfaceName + "_"
+                                         + 
NameUtil.mangleNameToClassName(jp.getPortName()) + "_Client";
+
+                String serverClassName = intf.getPackageName() + "." + 
interfaceName + "_"
+                                         + 
NameUtil.mangleNameToClassName(jp.getPortName()) + "_Server";
+                String clientTargetName = interfaceName + "Client";
+                boolean collison = false;
+                if (clientClassNamesMap.keySet().contains(clientTargetName)) {
+                    clientTargetName = clientTargetName + index;
+                    collison = true;
+                }
+                String serverTargetName = interfaceName + "Server";
+                if (serverClassNamesMap.keySet().contains(serverTargetName)) {
+                    serverTargetName = serverTargetName + index;
+                    collison = true;
+                }
+                
+                if (collison) {
+                    index++;
+                }
+                clientClassNamesMap.put(clientTargetName, clientClassName);
+                serverClassNamesMap.put(serverTargetName, serverClassName);
+                
+            }
+        }
 
         clearAttributes();
-        setAttributes("intfs", javaModel.getInterfaces().values());
+        setAttributes("clientClassNamesMap", clientClassNamesMap);
+        setAttributes("serverClassNamesMap", serverClassNamesMap);
         setAttributes("wsdlLocation", javaModel.getLocation());
         setCommonAttributes();
 

Modified: 
incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/build.vm
URL: 
http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/build.vm?view=diff&rev=557586&r1=557585&r2=557586
==============================================================================
--- 
incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/build.vm
 (original)
+++ 
incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/build.vm
 Thu Jul 19 04:51:17 2007
@@ -91,20 +91,23 @@
        <pathelement location="${cxf-manifest-incubator.jar.file}"/>
     </path>
 
-#foreach ($interface in $intfs)
-    <target name="${interface.Name}.Client" description="Run ${interface.Name} 
client" depends="compile">
+#foreach ($targetName in $clientClassNamesMap.keySet())
+    <target name="$targetName" description="Run 
$clientClassNamesMap.get($targetName)" depends="compile">
        <property name="param" value=""/>
-       <cxfrun classname="${interface.PackageName}.${interface.Name}Client"
+       <cxfrun classname="$clientClassNamesMap.get($targetName)"
                   param1="$wsdlLocation"
                   param2="${op}" 
                   param3="${param}"/>
     </target> 
+#end
 
-    <target name="${interface.Name}.Server" description="Run ${interface.Name} 
server" depends="compile">
-       <cxfrun classname="${interface.PackageName}.${interface.Name}Server" 
+#foreach ($target in $serverClassNamesMap.keySet())
+    <target name="${target}" description="Run 
$serverClassNamesMap.get($target)" depends="compile">
+       <cxfrun classname="$serverClassNamesMap.get($target)" 
                   param1="$wsdlLocation"/>
     </target>
 #end
+
 
 
     <target name="compile">

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=557586&r1=557585&r2=557586
==============================================================================
--- 
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 Jul 19 04:51:17 2007
@@ -611,4 +611,21 @@
     }
     
     
-}
+    @Test
+    public void testAntFile() throws Exception {
+        env.put(ToolConstants.CFG_WSDLURL, 
getLocation("/wsdl2java_wsdl/hello_world.wsdl"));
+        env.put(ToolConstants.CFG_ANT, ToolConstants.CFG_ANT);
+        env.put(ToolConstants.CFG_SERVICENAME, "SOAPService_Test1");
+        processor.setContext(env);
+        
+        processor.execute();
+        File file = new File(output.getCanonicalPath() + "/build.xml");
+        String str = getStringFromFile(file);
+        
assertTrue(str.indexOf("org.apache.hello_world_soap_http.Greeter_SoapPortTest1_Client")
 > -1);
+        
assertTrue(str.indexOf("org.apache.hello_world_soap_http.Greeter_SoapPortTest2_Client")
 > -1);
+        
assertTrue(str.indexOf("org.apache.hello_world_soap_http.Greeter_SoapPortTest1_Server")
 > -1);
+        
assertTrue(str.indexOf("org.apache.hello_world_soap_http.Greeter_SoapPortTest2_Server")
 > -1);        
+    }
+    
+    
+}
\ No newline at end of file


Reply via email to