You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2009/11/04 18:35:44 UTC
svn commit: r832808 - in /cxf/branches/2.2.x-fixes: ./
api/src/main/java/org/apache/cxf/tools/common/
tools/common/src/main/java/org/apache/cxf/tools/common/
tools/common/src/main/java/org/apache/cxf/tools/util/
tools/wsdlto/core/src/main/java/org/apac...
Author: dkulp
Date: Wed Nov 4 17:35:43 2009
New Revision: 832808
URL: http://svn.apache.org/viewvc?rev=832808&view=rev
Log:
Merged revisions 832802 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r832802 | dkulp | 2009-11-04 12:20:13 -0500 (Wed, 04 Nov 2009) | 5 lines
[CXF-1939] For services that don't differ after mapping, map to new nam
Bunch of optimizations in wsdl2java to reduce reprocssing the same data
over and over.
Add a workaround for running codegen tests in eclipse if eclipse is
using jdk 1.5, but commandline/apth is set to use jdk 1.6.
........
Added:
cxf/branches/2.2.x-fixes/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf1939/
- copied from r832802, cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf1939/
cxf/branches/2.2.x-fixes/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf1939/hello_world.wsdl
- copied unchanged from r832802, cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf1939/hello_world.wsdl
Modified:
cxf/branches/2.2.x-fixes/ (props changed)
cxf/branches/2.2.x-fixes/api/src/main/java/org/apache/cxf/tools/common/ToolConstants.java
cxf/branches/2.2.x-fixes/tools/common/src/main/java/org/apache/cxf/tools/common/ClassUtils.java
cxf/branches/2.2.x-fixes/tools/common/src/main/java/org/apache/cxf/tools/common/ToolException.java
cxf/branches/2.2.x-fixes/tools/common/src/main/java/org/apache/cxf/tools/util/ClassCollector.java
cxf/branches/2.2.x-fixes/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java
cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/JAXWSContainer.java
cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/AntGenerator.java
cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/ClientGenerator.java
cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/FaultGenerator.java
cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/ImplGenerator.java
cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/SEIGenerator.java
cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/ServerGenerator.java
cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/ServiceGenerator.java
cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/jaxws-toolspec.xml
cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/Messages.properties
cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/PortTypeProcessor.java
cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ServiceProcessor.java
cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/impl.vm
cxf/branches/2.2.x-fixes/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java
cxf/branches/2.2.x-fixes/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenTest.java
cxf/branches/2.2.x-fixes/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/wsdl11/JAXWSDefinitionBuilderTest.java
Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: cxf/branches/2.2.x-fixes/api/src/main/java/org/apache/cxf/tools/common/ToolConstants.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/api/src/main/java/org/apache/cxf/tools/common/ToolConstants.java?rev=832808&r1=832807&r2=832808&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/api/src/main/java/org/apache/cxf/tools/common/ToolConstants.java (original)
+++ cxf/branches/2.2.x-fixes/api/src/main/java/org/apache/cxf/tools/common/ToolConstants.java Wed Nov 4 17:35:43 2009
@@ -90,6 +90,7 @@
public static final String CFG_ANT_PROP = "ant.prop";
public static final String CFG_NO_ADDRESS_BINDING = "noAddressBinding";
public static final String CFG_ALLOW_ELEMENT_REFS = "allowElementReferences";
+ public static final String CFG_RESERVE_NAME = "reserveClass";
Modified: cxf/branches/2.2.x-fixes/tools/common/src/main/java/org/apache/cxf/tools/common/ClassUtils.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/tools/common/src/main/java/org/apache/cxf/tools/common/ClassUtils.java?rev=832808&r1=832807&r2=832808&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/tools/common/src/main/java/org/apache/cxf/tools/common/ClassUtils.java (original)
+++ cxf/branches/2.2.x-fixes/tools/common/src/main/java/org/apache/cxf/tools/common/ClassUtils.java Wed Nov 4 17:35:43 2009
@@ -53,6 +53,11 @@
argList.add("-verbose");
}
+ if ("1.5".equals(System.getProperty("java.specification.version"))) {
+ argList.add("-target");
+ argList.add("1.5");
+ }
+
if (context.get(ToolConstants.CFG_CLASSDIR) != null) {
argList.add("-d");
String classDir = (String)context.get(ToolConstants.CFG_CLASSDIR);
Modified: cxf/branches/2.2.x-fixes/tools/common/src/main/java/org/apache/cxf/tools/common/ToolException.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/tools/common/src/main/java/org/apache/cxf/tools/common/ToolException.java?rev=832808&r1=832807&r2=832808&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/tools/common/src/main/java/org/apache/cxf/tools/common/ToolException.java (original)
+++ cxf/branches/2.2.x-fixes/tools/common/src/main/java/org/apache/cxf/tools/common/ToolException.java Wed Nov 4 17:35:43 2009
@@ -58,5 +58,8 @@
public ToolException(String messageId, Logger logger) {
this(new Message(messageId, logger));
}
+ public ToolException(String messageId, Logger logger, Object ... args) {
+ this(new Message(messageId, logger, args));
+ }
}
Modified: cxf/branches/2.2.x-fixes/tools/common/src/main/java/org/apache/cxf/tools/util/ClassCollector.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/tools/common/src/main/java/org/apache/cxf/tools/util/ClassCollector.java?rev=832808&r1=832807&r2=832808&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/tools/common/src/main/java/org/apache/cxf/tools/util/ClassCollector.java (original)
+++ cxf/branches/2.2.x-fixes/tools/common/src/main/java/org/apache/cxf/tools/util/ClassCollector.java Wed Nov 4 17:35:43 2009
@@ -35,9 +35,36 @@
private final Map<String, String> implClassNames = new HashMap<String, String>();
private final Map<String, String> clientClassNames = new HashMap<String, String>();
private final Map<String, String> serverClassNames = new HashMap<String, String>();
+ private final Map<String, String> reservedClassNames = new HashMap<String, String>();
+
private final Set<String> typesPackages = new HashSet<String>();
-
+
+ public ClassCollector() {
+
+ }
+ public void reserveClass(String fullName) {
+ String cls = fullName;
+ int idx = cls.lastIndexOf('.');
+ String pkg = "";
+ if (idx != -1) {
+ pkg = cls.substring(0, idx);
+ cls = cls.substring(idx + 1);
+ }
+ reservedClassNames.put(key(pkg, cls), fullName);
+
+ addSeiClassName(pkg, cls, fullName);
+ addTypesClassName(pkg, cls, fullName);
+ addServerClassName(pkg, cls, fullName);
+ addImplClassName(pkg, cls, fullName);
+ addClientClassName(pkg, cls, fullName);
+ addServiceClassName(pkg, cls, fullName);
+ addExceptionClassName(pkg, cls, fullName);
+ }
+
+ public boolean isReserved(String packagename, String type) {
+ return reservedClassNames.containsKey(key(packagename, type));
+ }
public boolean containSeiClass(String packagename, String type) {
return seiClassNames.containsKey(key(packagename, type));
}
@@ -49,6 +76,18 @@
public boolean containExceptionClass(String packagename, String type) {
return exceptionClassNames.containsKey(key(packagename, type));
}
+ public boolean containServiceClass(String packagename, String type) {
+ return this.serviceClassNames.containsKey(key(packagename, type));
+ }
+ public boolean containClientClass(String packagename, String type) {
+ return this.clientClassNames.containsKey(key(packagename, type));
+ }
+ public boolean containServerClass(String packagename, String type) {
+ return this.serverClassNames.containsKey(key(packagename, type));
+ }
+ public boolean containImplClass(String packagename, String type) {
+ return this.implClassNames.containsKey(key(packagename, type));
+ }
public void addSeiClassName(String packagename, String type, String fullClassName) {
seiClassNames.put(key(packagename, type), fullClassName);
Modified: cxf/branches/2.2.x-fixes/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java?rev=832808&r1=832807&r2=832808&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java (original)
+++ cxf/branches/2.2.x-fixes/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java Wed Nov 4 17:35:43 2009
@@ -204,7 +204,15 @@
context.put(ToolConstants.XML_SCHEMA_COLLECTION, schemaCollection);
context.put(ToolConstants.PORTTYPE_MAP, interfaces);
- context.put(ClassCollector.class, new ClassCollector());
+
+ ClassCollector collector = new ClassCollector();
+ String reserved[] = (String[])context.get(ToolConstants.CFG_RESERVE_NAME);
+ if (reserved != null) {
+ for (String r : reserved) {
+ collector.reserveClass(r);
+ }
+ }
+ context.put(ClassCollector.class, collector);
Processor processor = frontend.getProcessor();
if (processor instanceof ClassNameProcessor) {
processor.setEnvironment(context);
@@ -228,12 +236,11 @@
// Build the JavaModel from the ServiceModel
processor.setEnvironment(context);
processor.process();
-
- if (!isSuppressCodeGen()) {
- // Generate artifacts
- for (FrontEndGenerator generator : frontend.getGenerators()) {
- generator.generate(context);
- }
+ }
+ if (!isSuppressCodeGen()) {
+ // Generate artifacts
+ for (FrontEndGenerator generator : frontend.getGenerators()) {
+ generator.generate(context);
}
}
context.remove(ToolConstants.SERVICE_LIST);
Modified: cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/JAXWSContainer.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/JAXWSContainer.java?rev=832808&r1=832807&r2=832808&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/JAXWSContainer.java (original)
+++ cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/JAXWSContainer.java Wed Nov 4 17:35:43 2009
@@ -41,6 +41,7 @@
public Set<String> getArrayKeys() {
Set<String> set = super.getArrayKeys();
set.add(ToolConstants.CFG_BINDING);
+ set.add(ToolConstants.CFG_RESERVE_NAME);
return set;
}
Modified: cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/AntGenerator.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/AntGenerator.java?rev=832808&r1=832807&r2=832808&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/AntGenerator.java (original)
+++ cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/AntGenerator.java Wed Nov 4 17:35:43 2009
@@ -23,7 +23,10 @@
import java.util.Iterator;
import java.util.Map;
+import javax.xml.namespace.QName;
+
import org.apache.cxf.common.i18n.Message;
+import org.apache.cxf.helpers.CastUtils;
import org.apache.cxf.service.model.ServiceInfo;
import org.apache.cxf.tools.common.ToolConstants;
import org.apache.cxf.tools.common.ToolContext;
@@ -33,6 +36,7 @@
import org.apache.cxf.tools.common.model.JavaPort;
import org.apache.cxf.tools.common.model.JavaServiceClass;
import org.apache.cxf.tools.util.NameUtil;
+import org.apache.cxf.tools.wsdlto.frontend.jaxws.processor.WSDLToJavaProcessor;
public class AntGenerator extends AbstractJAXWSGenerator {
@@ -53,72 +57,74 @@
public void generate(ToolContext penv) throws ToolException {
this.env = penv;
- JavaModel javaModel = env.get(JavaModel.class);
-
if (passthrough()) {
return;
}
- if (javaModel.getServiceClasses().size() == 0) {
- ServiceInfo serviceInfo = (ServiceInfo)env.get(ServiceInfo.class);
- String wsdl = serviceInfo.getDescription().getBaseURI();
- Message msg = new Message("CAN_NOT_GEN_ANT", LOG, wsdl);
- if (penv.isVerbose()) {
- System.out.println(msg.toString());
- }
- 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.getInterfaceClass();
- JavaInterface intf = interfaces.get(interfaceName);
- if (intf == null) {
- interfaceName = jp.getPortType();
- 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;
+ Map<QName, JavaModel> map = CastUtils.cast((Map)penv.get(WSDLToJavaProcessor.MODEL_MAP));
+ for (JavaModel javaModel : map.values()) {
+
+ if (javaModel.getServiceClasses().size() == 0) {
+ ServiceInfo serviceInfo = (ServiceInfo)env.get(ServiceInfo.class);
+ String wsdl = serviceInfo.getDescription().getBaseURI();
+ Message msg = new Message("CAN_NOT_GEN_ANT", LOG, wsdl);
+ if (penv.isVerbose()) {
+ System.out.println(msg.toString());
}
-
- if (collison) {
- index++;
+ 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.getInterfaceClass();
+ JavaInterface intf = interfaces.get(interfaceName);
+ if (intf == null) {
+ interfaceName = jp.getPortType();
+ 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);
+
}
- clientClassNamesMap.put(clientTargetName, clientClassName);
- serverClassNamesMap.put(serverTargetName, serverClassName);
-
}
+
+ clearAttributes();
+ setAttributes("clientClassNamesMap", clientClassNamesMap);
+ setAttributes("serverClassNamesMap", serverClassNamesMap);
+ setAttributes("wsdlLocation", javaModel.getLocation());
+ setCommonAttributes();
+
+ doWrite(ANT_TEMPLATE, parseOutputName(null, "build", ".xml"));
}
-
- clearAttributes();
- setAttributes("clientClassNamesMap", clientClassNamesMap);
- setAttributes("serverClassNamesMap", serverClassNamesMap);
- setAttributes("wsdlLocation", javaModel.getLocation());
- setCommonAttributes();
-
- doWrite(ANT_TEMPLATE, parseOutputName(null, "build", ".xml"));
}
}
Modified: cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/ClientGenerator.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/ClientGenerator.java?rev=832808&r1=832807&r2=832808&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/ClientGenerator.java (original)
+++ cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/ClientGenerator.java Wed Nov 4 17:35:43 2009
@@ -22,7 +22,10 @@
import java.util.Iterator;
import java.util.Map;
+import javax.xml.namespace.QName;
+
import org.apache.cxf.common.i18n.Message;
+import org.apache.cxf.helpers.CastUtils;
import org.apache.cxf.service.model.ServiceInfo;
import org.apache.cxf.tools.common.ToolConstants;
import org.apache.cxf.tools.common.ToolContext;
@@ -33,6 +36,7 @@
import org.apache.cxf.tools.common.model.JavaServiceClass;
import org.apache.cxf.tools.util.ClassCollector;
import org.apache.cxf.tools.util.NameUtil;
+import org.apache.cxf.tools.wsdlto.frontend.jaxws.processor.WSDLToJavaProcessor;
public class ClientGenerator extends AbstractJAXWSGenerator {
@@ -60,50 +64,66 @@
public void generate(ToolContext penv) throws ToolException {
this.env = penv;
- JavaModel javaModel = env.get(JavaModel.class);
if (passthrough()) {
return;
}
- if (javaModel.getServiceClasses().size() == 0) {
- ServiceInfo serviceInfo = (ServiceInfo)env.get(ServiceInfo.class);
- String wsdl = serviceInfo.getDescription().getBaseURI();
- Message msg = new Message("CAN_NOT_GEN_CLIENT", LOG, wsdl);
- if (penv.isVerbose()) {
- System.out.println(msg.toString());
+ Map<QName, JavaModel> map = CastUtils.cast((Map)penv.get(WSDLToJavaProcessor.MODEL_MAP));
+ for (JavaModel javaModel : map.values()) {
+
+ if (javaModel.getServiceClasses().size() == 0) {
+ ServiceInfo serviceInfo = (ServiceInfo)env.get(ServiceInfo.class);
+ String wsdl = serviceInfo.getDescription().getBaseURI();
+ Message msg = new Message("CAN_NOT_GEN_CLIENT", LOG, wsdl);
+ if (penv.isVerbose()) {
+ System.out.println(msg.toString());
+ }
+ return;
}
- return;
- }
-
- Map<String, JavaInterface> interfaces = javaModel.getInterfaces();
- 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.getInterfaceClass();
- JavaInterface intf = interfaces.get(interfaceName);
- if (intf == null) {
- interfaceName = jp.getPortType();
- intf = interfaces.get(interfaceName);
+
+ Map<String, JavaInterface> interfaces = javaModel.getInterfaces();
+ 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.getInterfaceClass();
+ JavaInterface intf = interfaces.get(interfaceName);
+ if (intf == null) {
+ interfaceName = jp.getPortType();
+ intf = interfaces.get(interfaceName);
+ }
+
+ String clientClassName = interfaceName + "_"
+ + NameUtil.mangleNameToClassName(jp.getPortName()) + "_Client";
+
+ clientClassName = mapClassName(intf.getPackageName(), clientClassName, penv);
+ clearAttributes();
+ setAttributes("clientClassName", clientClassName);
+ setAttributes("intf", intf);
+ setAttributes("service", js);
+ setAttributes("port", jp);
+
+ setCommonAttributes();
+
+ doWrite(CLT_TEMPLATE, parseOutputName(intf.getPackageName(), clientClassName));
}
-
- String clientClassName = interfaceName + "_"
- + NameUtil.mangleNameToClassName(jp.getPortName()) + "_Client";
-
- clearAttributes();
- setAttributes("clientClassName", clientClassName);
- setAttributes("intf", intf);
- setAttributes("service", js);
- setAttributes("port", jp);
-
- setCommonAttributes();
-
- doWrite(CLT_TEMPLATE, parseOutputName(intf.getPackageName(), clientClassName));
}
}
}
+ private String mapClassName(String packageName, String name, ToolContext context) {
+ ClassCollector collector = context.get(ClassCollector.class);
+ int count = 0;
+ String checkName = name;
+ while (collector.containClientClass(packageName, checkName)) {
+ checkName = name + (++count);
+ }
+ collector.addClientClassName(packageName, checkName,
+ packageName + "." + checkName);
+ return checkName;
+ }
+
public void register(final ClassCollector collector, String packageName, String fileName) {
collector.addClientClassName(packageName , fileName , packageName + "." + fileName);
}
Modified: cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/FaultGenerator.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/FaultGenerator.java?rev=832808&r1=832807&r2=832808&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/FaultGenerator.java (original)
+++ cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/FaultGenerator.java Wed Nov 4 17:35:43 2009
@@ -24,6 +24,9 @@
import java.util.Iterator;
import java.util.Map;
+import javax.xml.namespace.QName;
+
+import org.apache.cxf.helpers.CastUtils;
import org.apache.cxf.tools.common.ToolConstants;
import org.apache.cxf.tools.common.ToolContext;
import org.apache.cxf.tools.common.ToolException;
@@ -31,6 +34,7 @@
import org.apache.cxf.tools.common.model.JavaField;
import org.apache.cxf.tools.common.model.JavaModel;
import org.apache.cxf.tools.util.ClassCollector;
+import org.apache.cxf.tools.wsdlto.frontend.jaxws.processor.WSDLToJavaProcessor;
import org.apache.cxf.tools.wsdlto.frontend.jaxws.processor.internal.ProcessorUtil;
public class FaultGenerator extends AbstractJAXWSGenerator {
@@ -62,29 +66,30 @@
public void generate(ToolContext penv) throws ToolException {
this.env = penv;
- JavaModel javaModel = env.get(JavaModel.class);
-
if (passthrough()) {
return;
}
+ Map<QName, JavaModel> map = CastUtils.cast((Map)penv.get(WSDLToJavaProcessor.MODEL_MAP));
+ for (JavaModel javaModel : map.values()) {
- Map<String, JavaExceptionClass> exceptionClasses = javaModel
- .getExceptionClasses();
- for (Iterator iter = exceptionClasses.keySet().iterator(); iter
- .hasNext();) {
- String expClassName = (String)iter.next();
- JavaExceptionClass expClz =
- exceptionClasses.get(expClassName);
-
- clearAttributes();
- setAttributes("suid", getSUID());
- setAttributes("expClass", expClz);
- for (JavaField jf : expClz.getFields()) {
- setAttributes("paraName", ProcessorUtil.mangleNameToVariableName(jf.getName()));
+ Map<String, JavaExceptionClass> exceptionClasses = javaModel
+ .getExceptionClasses();
+ for (Iterator iter = exceptionClasses.keySet().iterator(); iter
+ .hasNext();) {
+ String expClassName = (String)iter.next();
+ JavaExceptionClass expClz =
+ exceptionClasses.get(expClassName);
+
+ clearAttributes();
+ setAttributes("suid", getSUID());
+ setAttributes("expClass", expClz);
+ for (JavaField jf : expClz.getFields()) {
+ setAttributes("paraName", ProcessorUtil.mangleNameToVariableName(jf.getName()));
+ }
+ setCommonAttributes();
+ doWrite(FAULT_TEMPLATE, parseOutputName(expClz.getPackageName(),
+ expClz.getName()));
}
- setCommonAttributes();
- doWrite(FAULT_TEMPLATE, parseOutputName(expClz.getPackageName(),
- expClz.getName()));
}
}
Modified: cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/ImplGenerator.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/ImplGenerator.java?rev=832808&r1=832807&r2=832808&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/ImplGenerator.java (original)
+++ cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/ImplGenerator.java Wed Nov 4 17:35:43 2009
@@ -22,6 +22,9 @@
import java.util.Iterator;
import java.util.Map;
+import javax.xml.namespace.QName;
+
+import org.apache.cxf.helpers.CastUtils;
import org.apache.cxf.tools.common.ToolConstants;
import org.apache.cxf.tools.common.ToolContext;
import org.apache.cxf.tools.common.ToolException;
@@ -29,6 +32,8 @@
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.ClassCollector;
+import org.apache.cxf.tools.wsdlto.frontend.jaxws.processor.WSDLToJavaProcessor;
public class ImplGenerator extends AbstractJAXWSGenerator {
@@ -62,47 +67,62 @@
public void generate(ToolContext penv) throws ToolException {
this.env = penv;
- JavaModel javaModel = env.get(JavaModel.class);
-
if (passthrough()) {
return;
}
+ Map<QName, JavaModel> map = CastUtils.cast((Map)penv.get(WSDLToJavaProcessor.MODEL_MAP));
+ for (JavaModel javaModel : map.values()) {
- Map<String, JavaInterface> interfaces = javaModel.getInterfaces();
-
- Map<String, JavaServiceClass> services = javaModel.getServiceClasses();
-
- JavaServiceClass service = null;
- String port = "";
- Iterator portIterator = null;
- if (!services.values().isEmpty()) {
- JavaServiceClass javaservice = services.values().iterator().next();
- service = javaservice;
-
- if (javaservice.getPorts().size() != 0) {
- portIterator = javaservice.getPorts().iterator();
+
+ Map<String, JavaInterface> interfaces = javaModel.getInterfaces();
+
+ Map<String, JavaServiceClass> services = javaModel.getServiceClasses();
+
+ JavaServiceClass service = null;
+ if (!services.values().isEmpty()) {
+ for (JavaServiceClass javaservice : services.values()) {
+ service = javaservice;
+ for (JavaPort jport : javaservice.getPorts()) {
+ JavaInterface intf = interfaces.get(jport.getInterfaceClass());
+ outputImpl(intf, service, jport.getPortName(), penv);
+
+ }
+ }
+ } else {
+ for (Iterator iter = interfaces.keySet().iterator(); iter.hasNext();) {
+ String interfaceName = (String)iter.next();
+ JavaInterface intf = interfaces.get(interfaceName);
+ outputImpl(intf, service, "", penv);
+ }
}
}
- for (Iterator iter = interfaces.keySet().iterator(); iter.hasNext();) {
- String interfaceName = (String)iter.next();
- JavaInterface intf = interfaces.get(interfaceName);
-
- if (portIterator != null) {
- JavaPort jport = (JavaPort)portIterator.next();
- port = jport.getPortName();
- }
-
- clearAttributes();
- setAttributes("intf", intf);
+ }
+ private void outputImpl(JavaInterface intf, JavaServiceClass service,
+ String port, ToolContext penv) {
+ clearAttributes();
+ setAttributes("intf", intf);
- setAttributes("service", service);
+ setAttributes("service", service);
- setAttributes("port", port);
-
- setCommonAttributes();
-
- doWrite(IMPL_TEMPLATE, parseOutputName(intf.getPackageName(), intf.getName() + "Impl"));
+ setAttributes("port", port);
+
+ setCommonAttributes();
+
+ String name = intf.getName() + "Impl";
+ name = mapClassName(intf.getPackageName(), name, penv);
+ setAttributes("implName", name);
+ penv.put(ToolConstants.CFG_IMPL_CLASS, name);
+ doWrite(IMPL_TEMPLATE, parseOutputName(intf.getPackageName(), name));
+ }
+ private String mapClassName(String packageName, String name, ToolContext context) {
+ ClassCollector collector = context.get(ClassCollector.class);
+ int count = 0;
+ String checkName = name;
+ while (collector.containImplClass(packageName, checkName)) {
+ checkName = name + (++count);
}
+ collector.addImplClassName(packageName, checkName,
+ packageName + "." + checkName);
+ return checkName;
}
-
}
Modified: cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/SEIGenerator.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/SEIGenerator.java?rev=832808&r1=832807&r2=832808&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/SEIGenerator.java (original)
+++ cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/SEIGenerator.java Wed Nov 4 17:35:43 2009
@@ -22,9 +22,11 @@
import java.util.Map;
import javax.jws.HandlerChain;
+import javax.xml.namespace.QName;
import org.apache.cxf.annotations.DataBinding;
import org.apache.cxf.common.i18n.Message;
+import org.apache.cxf.helpers.CastUtils;
import org.apache.cxf.service.model.ServiceInfo;
import org.apache.cxf.tools.common.ToolConstants;
import org.apache.cxf.tools.common.ToolContext;
@@ -34,6 +36,7 @@
import org.apache.cxf.tools.common.model.JavaInterface;
import org.apache.cxf.tools.common.model.JavaModel;
import org.apache.cxf.tools.util.ClassCollector;
+import org.apache.cxf.tools.wsdlto.frontend.jaxws.processor.WSDLToJavaProcessor;
public class SEIGenerator extends AbstractJAXWSGenerator {
@@ -66,61 +69,63 @@
public void generate(ToolContext penv) throws ToolException {
this.env = penv;
- JavaModel javaModel = env.get(JavaModel.class);
-
if (passthrough()) {
return;
}
- Map<String, JavaInterface> interfaces = javaModel.getInterfaces();
-
- if (interfaces.size() == 0) {
- ServiceInfo serviceInfo = (ServiceInfo)env.get(ServiceInfo.class);
- String wsdl = serviceInfo.getDescription().getBaseURI();
- Message msg = new Message("CAN_NOT_GEN_SEI", LOG, wsdl);
- if (penv.isVerbose()) {
- System.out.println(msg.toString());
+ Map<QName, JavaModel> map = CastUtils.cast((Map)penv.get(WSDLToJavaProcessor.MODEL_MAP));
+ for (JavaModel javaModel : map.values()) {
+
+ Map<String, JavaInterface> interfaces = javaModel.getInterfaces();
+
+ if (interfaces.size() == 0) {
+ ServiceInfo serviceInfo = (ServiceInfo)env.get(ServiceInfo.class);
+ String wsdl = serviceInfo.getDescription().getBaseURI();
+ Message msg = new Message("CAN_NOT_GEN_SEI", LOG, wsdl);
+ if (penv.isVerbose()) {
+ System.out.println(msg.toString());
+ }
+ return;
}
- return;
- }
- for (JavaInterface intf : interfaces.values()) {
-
- if (hasHandlerConfig(intf)) {
- HandlerConfigGenerator handlerGen = new HandlerConfigGenerator();
- // REVISIT: find a better way to handle Handler gen, should not
- // pass JavaInterface around.
- handlerGen.setJavaInterface(intf);
- handlerGen.generate(getEnvironment());
-
- JAnnotation annot = handlerGen.getHandlerAnnotation();
- if (handlerGen.getHandlerAnnotation() != null) {
- boolean existHandlerAnno = false;
- for (JAnnotation jann : intf.getAnnotations()) {
- if (jann.getType() == HandlerChain.class) {
- existHandlerAnno = true;
+ for (JavaInterface intf : interfaces.values()) {
+
+ if (hasHandlerConfig(intf)) {
+ HandlerConfigGenerator handlerGen = new HandlerConfigGenerator();
+ // REVISIT: find a better way to handle Handler gen, should not
+ // pass JavaInterface around.
+ handlerGen.setJavaInterface(intf);
+ handlerGen.generate(getEnvironment());
+
+ JAnnotation annot = handlerGen.getHandlerAnnotation();
+ if (handlerGen.getHandlerAnnotation() != null) {
+ boolean existHandlerAnno = false;
+ for (JAnnotation jann : intf.getAnnotations()) {
+ if (jann.getType() == HandlerChain.class) {
+ existHandlerAnno = true;
+ }
+ }
+ if (!existHandlerAnno) {
+ intf.addAnnotation(annot);
+ intf.addImport("javax.jws.HandlerChain");
}
- }
- if (!existHandlerAnno) {
- intf.addAnnotation(annot);
- intf.addImport("javax.jws.HandlerChain");
}
}
+ if (penv.containsKey(ToolConstants.RUNTIME_DATABINDING_CLASS)) {
+ JAnnotation ann = new JAnnotation(DataBinding.class);
+ JAnnotationElement el
+ = new JAnnotationElement(null,
+ penv.get(ToolConstants.RUNTIME_DATABINDING_CLASS),
+ true);
+ ann.addElement(el);
+ intf.addAnnotation(ann);
+ }
+ clearAttributes();
+ setAttributes("intf", intf);
+ setCommonAttributes();
+
+ doWrite(SEI_TEMPLATE, parseOutputName(intf.getPackageName(), intf.getName()));
+
}
- if (penv.containsKey(ToolConstants.RUNTIME_DATABINDING_CLASS)) {
- JAnnotation ann = new JAnnotation(DataBinding.class);
- JAnnotationElement el
- = new JAnnotationElement(null,
- penv.get(ToolConstants.RUNTIME_DATABINDING_CLASS),
- true);
- ann.addElement(el);
- intf.addAnnotation(ann);
- }
- clearAttributes();
- setAttributes("intf", intf);
- setCommonAttributes();
-
- doWrite(SEI_TEMPLATE, parseOutputName(intf.getPackageName(), intf.getName()));
-
}
}
Modified: cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/ServerGenerator.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/ServerGenerator.java?rev=832808&r1=832807&r2=832808&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/ServerGenerator.java (original)
+++ cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/ServerGenerator.java Wed Nov 4 17:35:43 2009
@@ -22,8 +22,11 @@
import java.util.Iterator;
import java.util.Map;
+import javax.xml.namespace.QName;
+
import org.apache.cxf.common.i18n.Message;
import org.apache.cxf.common.util.StringUtils;
+import org.apache.cxf.helpers.CastUtils;
import org.apache.cxf.service.model.ServiceInfo;
import org.apache.cxf.tools.common.ToolConstants;
import org.apache.cxf.tools.common.ToolContext;
@@ -34,6 +37,7 @@
import org.apache.cxf.tools.common.model.JavaServiceClass;
import org.apache.cxf.tools.util.ClassCollector;
import org.apache.cxf.tools.util.NameUtil;
+import org.apache.cxf.tools.wsdlto.frontend.jaxws.processor.WSDLToJavaProcessor;
public class ServerGenerator extends AbstractJAXWSGenerator {
@@ -59,54 +63,73 @@
public void generate(ToolContext penv) throws ToolException {
this.env = penv;
- JavaModel javaModel = env.get(JavaModel.class);
if (passthrough()) {
return;
}
- String address = "CHANGE_ME";
- Map<String, JavaInterface> interfaces = javaModel.getInterfaces();
-
- if (javaModel.getServiceClasses().size() == 0) {
- ServiceInfo serviceInfo = (ServiceInfo)env.get(ServiceInfo.class);
- String wsdl = serviceInfo.getDescription().getBaseURI();
- Message msg = new Message("CAN_NOT_GEN_SRV", LOG, wsdl);
- if (penv.isVerbose()) {
- System.out.println(msg.toString());
- }
- return;
- }
- 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.getInterfaceClass();
- JavaInterface intf = interfaces.get(interfaceName);
- if (intf == null) {
- interfaceName = jp.getPortType();
- intf = interfaces.get(interfaceName);
+
+ Map<QName, JavaModel> map = CastUtils.cast((Map)penv.get(WSDLToJavaProcessor.MODEL_MAP));
+ for (JavaModel javaModel : map.values()) {
+
+ String address = "CHANGE_ME";
+ Map<String, JavaInterface> interfaces = javaModel.getInterfaces();
+
+ if (javaModel.getServiceClasses().size() == 0) {
+ ServiceInfo serviceInfo = (ServiceInfo)env.get(ServiceInfo.class);
+ String wsdl = serviceInfo.getDescription().getBaseURI();
+ Message msg = new Message("CAN_NOT_GEN_SRV", LOG, wsdl);
+ if (penv.isVerbose()) {
+ System.out.println(msg.toString());
}
- address = StringUtils.isEmpty(jp.getBindingAdress()) ? address : jp.getBindingAdress();
- String serverClassName = interfaceName + "_"
- + NameUtil.mangleNameToClassName(jp.getPortName()) + "_Server";
-
- clearAttributes();
- setAttributes("serverClassName", serverClassName);
- setAttributes("intf", intf);
- if (penv.optionSet(ToolConstants.CFG_IMPL_CLASS)) {
- setAttributes("impl", (String)penv.get(ToolConstants.CFG_IMPL_CLASS));
- } else {
- setAttributes("impl", intf.getName() + "Impl");
+ return;
+ }
+ 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.getInterfaceClass();
+ JavaInterface intf = interfaces.get(interfaceName);
+ if (intf == null) {
+ interfaceName = jp.getPortType();
+ intf = interfaces.get(interfaceName);
+ }
+ address = StringUtils.isEmpty(jp.getBindingAdress()) ? address : jp.getBindingAdress();
+ String serverClassName = interfaceName + "_"
+ + NameUtil.mangleNameToClassName(jp.getPortName()) + "_Server";
+
+ serverClassName = mapClassName(intf.getPackageName(), serverClassName, penv);
+ clearAttributes();
+ setAttributes("serverClassName", serverClassName);
+ setAttributes("intf", intf);
+ if (penv.optionSet(ToolConstants.CFG_IMPL_CLASS)) {
+ setAttributes("impl", (String)penv.get(ToolConstants.CFG_IMPL_CLASS));
+ penv.remove(ToolConstants.CFG_IMPL_CLASS);
+ } else {
+ setAttributes("impl", intf.getName() + "Impl");
+ }
+ setAttributes("address", address);
+ setCommonAttributes();
+
+ doWrite(SRV_TEMPLATE, parseOutputName(intf.getPackageName(), serverClassName));
}
- setAttributes("address", address);
- setCommonAttributes();
-
- doWrite(SRV_TEMPLATE, parseOutputName(intf.getPackageName(), serverClassName));
}
}
}
+
+ private String mapClassName(String packageName, String name, ToolContext context) {
+ ClassCollector collector = context.get(ClassCollector.class);
+ int count = 0;
+ String checkName = name;
+ while (collector.containServerClass(packageName, checkName)) {
+ checkName = name + (++count);
+ }
+ collector.addServerClassName(packageName, checkName,
+ packageName + "." + checkName);
+ return checkName;
+ }
+
public void register(final ClassCollector collector, String packageName, String fileName) {
collector.addServerClassName(packageName , fileName , packageName + "." + fileName);
}
Modified: cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/ServiceGenerator.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/ServiceGenerator.java?rev=832808&r1=832807&r2=832808&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/ServiceGenerator.java (original)
+++ cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/ServiceGenerator.java Wed Nov 4 17:35:43 2009
@@ -22,8 +22,10 @@
import java.util.Map;
import javax.jws.HandlerChain;
+import javax.xml.namespace.QName;
import org.apache.cxf.common.i18n.Message;
+import org.apache.cxf.helpers.CastUtils;
import org.apache.cxf.service.model.ServiceInfo;
import org.apache.cxf.tools.common.ToolConstants;
import org.apache.cxf.tools.common.ToolContext;
@@ -33,6 +35,7 @@
import org.apache.cxf.tools.common.model.JavaPort;
import org.apache.cxf.tools.common.model.JavaServiceClass;
import org.apache.cxf.tools.util.ClassCollector;
+import org.apache.cxf.tools.wsdlto.frontend.jaxws.processor.WSDLToJavaProcessor;
public class ServiceGenerator extends AbstractJAXWSGenerator {
private static final String SERVICE_TEMPLATE = TEMPLATE_BASE + "/service.vm";
@@ -60,79 +63,82 @@
public void generate(ToolContext penv) throws ToolException {
this.env = penv;
- JavaModel javaModel = env.get(JavaModel.class);
-
if (passthrough()) {
return;
}
- ClassCollector collector = penv.get(ClassCollector.class);
-
- Map<String, JavaServiceClass> serviceClasses = javaModel.getServiceClasses();
- if (serviceClasses.size() == 0) {
- ServiceInfo serviceInfo = (ServiceInfo)env.get(ServiceInfo.class);
- String wsdl = serviceInfo.getDescription().getBaseURI();
- Message msg = new Message("CAN_NOT_GEN_SERVICE", LOG, wsdl);
- if (penv.isVerbose()) {
- System.out.println(msg.toString());
+ Map<QName, JavaModel> map = CastUtils.cast((Map)penv.get(WSDLToJavaProcessor.MODEL_MAP));
+ for (JavaModel javaModel : map.values()) {
+
+ ClassCollector collector = penv.get(ClassCollector.class);
+
+ Map<String, JavaServiceClass> serviceClasses = javaModel.getServiceClasses();
+
+ if (serviceClasses.size() == 0) {
+ ServiceInfo serviceInfo = (ServiceInfo)env.get(ServiceInfo.class);
+ String wsdl = serviceInfo.getDescription().getBaseURI();
+ Message msg = new Message("CAN_NOT_GEN_SERVICE", LOG, wsdl);
+ if (penv.isVerbose()) {
+ System.out.println(msg.toString());
+ }
+ return;
}
- return;
- }
-
- for (JavaServiceClass js : serviceClasses.values()) {
- if (js.getHandlerChains() != null) {
- HandlerConfigGenerator handlerGen = new HandlerConfigGenerator();
- handlerGen.setJavaInterface(js);
- handlerGen.generate(getEnvironment());
-
- JAnnotation annot = handlerGen.getHandlerAnnotation();
-
- if (handlerGen.getHandlerAnnotation() != null) {
- boolean existHandlerAnno = false;
- for (JAnnotation jann : js.getAnnotations()) {
- if (jann.getType() == HandlerChain.class) {
- existHandlerAnno = true;
+
+ for (JavaServiceClass js : serviceClasses.values()) {
+ if (js.getHandlerChains() != null) {
+ HandlerConfigGenerator handlerGen = new HandlerConfigGenerator();
+ handlerGen.setJavaInterface(js);
+ handlerGen.generate(getEnvironment());
+
+ JAnnotation annot = handlerGen.getHandlerAnnotation();
+
+ if (handlerGen.getHandlerAnnotation() != null) {
+ boolean existHandlerAnno = false;
+ for (JAnnotation jann : js.getAnnotations()) {
+ if (jann.getType() == HandlerChain.class) {
+ existHandlerAnno = true;
+ }
+ }
+ if (!existHandlerAnno) {
+ js.addAnnotation(annot);
+ js.addImport("javax.jws.HandlerChain");
}
}
- if (!existHandlerAnno) {
- js.addAnnotation(annot);
- js.addImport("javax.jws.HandlerChain");
+
+ }
+
+ for (JavaPort port : js.getPorts()) {
+ if (!port.getPackageName().equals(js.getPackageName())) {
+ js.addImport(port.getFullClassName());
}
}
+
+ String url = (String)env.get(ToolConstants.CFG_WSDLURL);
+ String location = (String)env.get(ToolConstants.CFG_WSDLLOCATION);
+ if (location == null) {
+ location = url;
+ }
- }
-
- for (JavaPort port : js.getPorts()) {
- if (!port.getPackageName().equals(js.getPackageName())) {
- js.addImport(port.getFullClassName());
+ String serviceSuperclass = "Service";
+ for (String s : collector.getGeneratedFileInfo()) {
+ if (s.equals(js.getPackageName() + ".Service")) {
+ serviceSuperclass = "javax.xml.ws.Service";
+ }
}
- }
-
- String url = (String)env.get(ToolConstants.CFG_WSDLURL);
- String location = (String)env.get(ToolConstants.CFG_WSDLLOCATION);
- if (location == null) {
- location = url;
- }
-
- String serviceSuperclass = "Service";
- for (String s : collector.getGeneratedFileInfo()) {
- if (s.equals(js.getPackageName() + ".Service")) {
- serviceSuperclass = "javax.xml.ws.Service";
+ clearAttributes();
+
+ setAttributes("service", js);
+ setAttributes("wsdlLocation", location);
+ setAttributes("serviceSuperclass", serviceSuperclass);
+ if ("Service".equals(serviceSuperclass)) {
+ js.addImport("javax.xml.ws.Service");
}
+ setAttributes("wsdlUrl", url);
+ setCommonAttributes();
+
+ doWrite(SERVICE_TEMPLATE, parseOutputName(js.getPackageName(),
+ js.getName()));
}
- clearAttributes();
-
- setAttributes("service", js);
- setAttributes("wsdlLocation", location);
- setAttributes("serviceSuperclass", serviceSuperclass);
- if ("Service".equals(serviceSuperclass)) {
- js.addImport("javax.xml.ws.Service");
- }
- setAttributes("wsdlUrl", url);
- setCommonAttributes();
-
- doWrite(SERVICE_TEMPLATE, parseOutputName(js.getPackageName(),
- js.getName()));
}
}
Modified: cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/jaxws-toolspec.xml
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/jaxws-toolspec.xml?rev=832808&r1=832807&r2=832808&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/jaxws-toolspec.xml (original)
+++ cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/jaxws-toolspec.xml Wed Nov 4 17:35:43 2009
@@ -99,7 +99,18 @@
<annotation>binding-file-name</annotation>
</associatedArgument>
</option>
-
+ <option id="reserveClass" maxOccurs="unbounded">
+ <annotation>
+ Reserve a class name to keep the code generator from generating
+ a class of the given name. In name cases, a binding file or
+ use of -autoNameResolution flag may be necessary for the
+ code generator to completely generate usable code.
+ </annotation>
+ <switch>reserveClass</switch>
+ <associatedArgument placement="afterSpace">
+ <annotation>class-name</annotation>
+ </associatedArgument>
+ </option>
<option id="catalog" maxOccurs="1">
<annotation>
Specify catalog file to map the imported wsdl/schema.
Modified: cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/Messages.properties
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/Messages.properties?rev=832808&r1=832807&r2=832808&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/Messages.properties (original)
+++ cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/Messages.properties Wed Nov 4 17:35:43 2009
@@ -20,6 +20,8 @@
#
PARAMETER_ALREADY_EXIST = Parameter : {0} already exist in the wsdl model
EXCEPTION_ALREADY_EXIST = Exception : {0} already exist in the wsdl model
+RESERVED_SEI_NAME = Reserved SEI interface name {0}. Use a binding file or -autoNameResolution to resolve.
+DUPLICATE_SERVICE_NAME = Duplicate Service class name {0}. Use a binding file or -autoNameResolution to resolve.
MIMEPART_CANNOT_MAP = MIME part: {0} could not be mapped to available parts in portType!"
WRAPPER_STYLE_TWO_RETURN_TYPES = Wrapper style can not have two return types
CANNOT_FIND_WSDL = Can not find the wsdl from : {0}
Modified: cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/PortTypeProcessor.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/PortTypeProcessor.java?rev=832808&r1=832807&r2=832808&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/PortTypeProcessor.java (original)
+++ cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/PortTypeProcessor.java Wed Nov 4 17:35:43 2009
@@ -47,44 +47,65 @@
super(c);
}
- public void processClassNames(ServiceInfo serviceInfo) throws ToolException {
- InterfaceInfo interfaceInfo = serviceInfo.getInterface();
- if (interfaceInfo == null) {
- return;
- }
+ private JavaInterface getInterface(ServiceInfo serviceInfo,
+ InterfaceInfo interfaceInfo) throws ToolException {
+ JavaInterface intf = interfaceInfo.getProperty("JavaInterface", JavaInterface.class);
+ if (intf == null) {
+ intf = new InterfaceMapper(context).map(interfaceInfo);
+
+ JAXWSBinding jaxwsBinding = null;
+ if (serviceInfo.getDescription() != null) {
+ jaxwsBinding = serviceInfo.getDescription().getExtensor(JAXWSBinding.class);
+ }
+ JAXWSBinding infBinding = interfaceInfo.getExtensor(JAXWSBinding.class);
+ if (infBinding != null && infBinding.getPackage() != null) {
+ intf.setPackageName(infBinding.getPackage());
+ } else if (jaxwsBinding != null && jaxwsBinding.getPackage() != null) {
+ intf.setPackageName(jaxwsBinding.getPackage());
+ }
+
+ if (infBinding != null && !infBinding.getPackageJavaDoc().equals("")) {
+ intf.setPackageJavaDoc(infBinding.getPackageJavaDoc());
+ } else if (jaxwsBinding != null && !jaxwsBinding.getPackageJavaDoc().equals("")) {
+ intf.setPackageJavaDoc(jaxwsBinding.getPackageJavaDoc());
+ }
- JavaInterface intf = new InterfaceMapper(context).map(interfaceInfo);
+ String name = intf.getName();
+ if (infBinding != null
+ && infBinding.getJaxwsClass() != null
+ && infBinding.getJaxwsClass().getClassName() != null) {
+ name = infBinding.getJaxwsClass().getClassName();
+ intf.setClassJavaDoc(infBinding.getJaxwsClass().getComments());
+ }
- JAXWSBinding jaxwsBinding = null;
- if (serviceInfo.getDescription() != null) {
- jaxwsBinding = serviceInfo.getDescription().getExtensor(JAXWSBinding.class);
- }
- JAXWSBinding infBinding = interfaceInfo.getExtensor(JAXWSBinding.class);
- if (infBinding != null && infBinding.getPackage() != null) {
- intf.setPackageName(infBinding.getPackage());
- } else if (jaxwsBinding != null && jaxwsBinding.getPackage() != null) {
- intf.setPackageName(jaxwsBinding.getPackage());
- }
+ ClassCollector collector = context.get(ClassCollector.class);
+ if (context.optionSet(ToolConstants.CFG_AUTORESOLVE)) {
+ int count = 0;
+ String checkName = name;
+ while (collector.isReserved(intf.getPackageName(), checkName)) {
+ checkName = name + "_" + (++count);
+ }
+ name = checkName;
+ } else if (collector.isReserved(intf.getPackageName(), name)) {
+ throw new ToolException("RESERVED_SEI_NAME", LOG, name);
+ }
+ interfaceInfo.setProperty("InterfaceName", name);
+ intf.setName(name);
+ collector.addSeiClassName(intf.getPackageName(),
+ intf.getName(),
+ intf.getPackageName() + "." + intf.getName());
- if (infBinding != null && !infBinding.getPackageJavaDoc().equals("")) {
- intf.setPackageJavaDoc(infBinding.getPackageJavaDoc());
- } else if (jaxwsBinding != null && !jaxwsBinding.getPackageJavaDoc().equals("")) {
- intf.setPackageJavaDoc(jaxwsBinding.getPackageJavaDoc());
+ interfaceInfo.setProperty("JavaInterface", intf);
}
-
- String name = intf.getName();
- if (infBinding != null
- && infBinding.getJaxwsClass() != null
- && infBinding.getJaxwsClass().getClassName() != null) {
- name = infBinding.getJaxwsClass().getClassName();
- intf.setClassJavaDoc(infBinding.getJaxwsClass().getComments());
+ return intf;
+ }
+
+ public void processClassNames(ServiceInfo serviceInfo) throws ToolException {
+ InterfaceInfo interfaceInfo = serviceInfo.getInterface();
+ if (interfaceInfo == null) {
+ return;
}
- intf.setName(name);
-
- ClassCollector collector = context.get(ClassCollector.class);
- collector.addSeiClassName(intf.getPackageName(),
- intf.getName(),
- intf.getPackageName() + "." + intf.getName());
+ getInterface(serviceInfo, interfaceInfo);
}
public void process(ServiceInfo serviceInfo) throws ToolException {
@@ -98,35 +119,8 @@
return;
}
- JavaInterface intf = new InterfaceMapper(context).map(interfaceInfo);
+ JavaInterface intf = getInterface(serviceInfo, interfaceInfo);
intf.setJavaModel(jmodel);
-
- JAXWSBinding jaxwsBinding = null;
- if (serviceInfo.getDescription() != null) {
- jaxwsBinding = serviceInfo.getDescription().getExtensor(JAXWSBinding.class);
- }
- JAXWSBinding infBinding = interfaceInfo.getExtensor(JAXWSBinding.class);
- if (infBinding != null && infBinding.getPackage() != null) {
- intf.setPackageName(infBinding.getPackage());
- } else if (jaxwsBinding != null && jaxwsBinding.getPackage() != null) {
- intf.setPackageName(jaxwsBinding.getPackage());
- }
-
- if (infBinding != null && !infBinding.getPackageJavaDoc().equals("")) {
- intf.setPackageJavaDoc(infBinding.getPackageJavaDoc());
- } else if (jaxwsBinding != null && !jaxwsBinding.getPackageJavaDoc().equals("")) {
- intf.setPackageJavaDoc(jaxwsBinding.getPackageJavaDoc());
- }
-
-
- String name = intf.getName();
- if (infBinding != null
- && infBinding.getJaxwsClass() != null
- && infBinding.getJaxwsClass().getClassName() != null) {
- name = infBinding.getJaxwsClass().getClassName();
- intf.setClassJavaDoc(infBinding.getJaxwsClass().getComments());
- }
- intf.setName(name);
Element handler = (Element)context.get(ToolConstants.HANDLER_CHAIN);
intf.setHandlerChains(handler);
Modified: cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ServiceProcessor.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ServiceProcessor.java?rev=832808&r1=832807&r2=832808&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ServiceProcessor.java (original)
+++ cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ServiceProcessor.java Wed Nov 4 17:35:43 2009
@@ -101,6 +101,21 @@
}
}
+ private String mapName(String packageName, String name) {
+ while (isNameCollision(packageName, name)) {
+ name = name + "_Service";
+ }
+ ClassCollector collector = context.get(ClassCollector.class);
+ if (collector.isReserved(packageName, name)) {
+ int count = 0;
+ String checkName = name;
+ while (collector.isReserved(packageName, checkName)) {
+ checkName = name + (++count);
+ }
+ name = checkName;
+ }
+ return name;
+ }
private boolean isNameCollision(String packageName, String className) {
if (context.optionSet(ToolConstants.CFG_GEN_OVERWRITE)) {
@@ -113,89 +128,102 @@
}
private void processService(JavaModel model) throws ToolException {
- JavaServiceClass sclz = new JavaServiceClass(model);
- String name = NameUtil.mangleNameToClassName(service.getName().getLocalPart());
- String namespace = service.getName().getNamespaceURI();
- String packageName = ProcessorUtil.parsePackageName(namespace, context.mapPackageName(namespace));
-
-
- //customizing
- JAXWSBinding serviceBinding = null;
- if (service.getDescription() != null) {
- serviceBinding = service.getDescription().getExtensor(JAXWSBinding.class);
- }
- JAXWSBinding serviceBinding2 = service.getExtensor(JAXWSBinding.class);
-
- //TODO : Handle service customized class
- if (serviceBinding != null) {
- if (serviceBinding.getPackage() != null) {
- jaxwsBinding.setPackage(serviceBinding.getPackage());
- }
-
- if (serviceBinding.isEnableAsyncMapping()) {
- jaxwsBinding.setEnableAsyncMapping(true);
- }
-
- if (serviceBinding.isEnableMime()) {
- jaxwsBinding.setEnableMime(true);
- }
- jaxwsBinding.setEnableWrapperStyle(serviceBinding.isEnableWrapperStyle());
-
- if (serviceBinding.getJaxwsClass() != null
- && serviceBinding.getJaxwsClass().getClassName() != null) {
- name = serviceBinding.getJaxwsClass().getClassName();
- sclz.setClassJavaDoc(serviceBinding.getJaxwsClass().getComments());
- }
- sclz.setPackageJavaDoc(serviceBinding.getPackageJavaDoc());
- }
- if (serviceBinding2 != null) {
- if (serviceBinding2.getPackage() != null) {
- jaxwsBinding.setPackage(serviceBinding2.getPackage());
- }
-
- if (serviceBinding2.isEnableAsyncMapping()) {
- jaxwsBinding.setEnableAsyncMapping(true);
- }
-
- if (serviceBinding2.isEnableMime()) {
- jaxwsBinding.setEnableMime(true);
- }
-
- if (serviceBinding2.isEnableWrapperStyle()) {
- jaxwsBinding.setEnableWrapperStyle(true);
- }
- if (serviceBinding2.getJaxwsClass() != null
- && serviceBinding2.getJaxwsClass().getClassName() != null) {
- name = serviceBinding2.getJaxwsClass().getClassName();
- sclz.setClassJavaDoc(serviceBinding2.getJaxwsClass().getComments());
- }
- if (!serviceBinding2.getPackageJavaDoc().equals("")) {
- sclz.setPackageJavaDoc(serviceBinding2.getPackageJavaDoc());
- }
+ JavaServiceClass sclz = (JavaServiceClass)service.getProperty("JavaServiceClass");
+ if (sclz != null) {
+ return;
}
- sclz.setServiceName(service.getName().getLocalPart());
- sclz.setNamespace(namespace);
-
- if (jaxwsBinding.getPackage() != null) {
- packageName = jaxwsBinding.getPackage();
- }
- sclz.setPackageName(packageName);
-
- while (isNameCollision(packageName, name)) {
- name = name + "_Service";
- }
- sclz.setName(name);
-
-
- if (model.getServiceClasses().containsKey(name)) {
- sclz = model.getServiceClasses().get(name);
+ for (JavaServiceClass sc : model.getServiceClasses().values()) {
+ if (sc.getServiceName().equals(service.getName().getLocalPart())) {
+ sclz = sc;
+ }
+ }
+ if (sclz == null) {
+ sclz = new JavaServiceClass(model);
+ service.setProperty("JavaServiceClass", sclz);
+ String name = NameUtil.mangleNameToClassName(service.getName().getLocalPart());
+ String namespace = service.getName().getNamespaceURI();
+ String packageName = ProcessorUtil.parsePackageName(namespace, context.mapPackageName(namespace));
+
+
+ //customizing
+ JAXWSBinding serviceBinding = null;
+ if (service.getDescription() != null) {
+ serviceBinding = service.getDescription().getExtensor(JAXWSBinding.class);
+ }
+ JAXWSBinding serviceBinding2 = service.getExtensor(JAXWSBinding.class);
+
+ //TODO : Handle service customized class
+ if (serviceBinding != null) {
+ if (serviceBinding.getPackage() != null) {
+ jaxwsBinding.setPackage(serviceBinding.getPackage());
+ }
+
+ if (serviceBinding.isEnableAsyncMapping()) {
+ jaxwsBinding.setEnableAsyncMapping(true);
+ }
+
+ if (serviceBinding.isEnableMime()) {
+ jaxwsBinding.setEnableMime(true);
+ }
+ jaxwsBinding.setEnableWrapperStyle(serviceBinding.isEnableWrapperStyle());
+
+ if (serviceBinding.getJaxwsClass() != null
+ && serviceBinding.getJaxwsClass().getClassName() != null) {
+ name = serviceBinding.getJaxwsClass().getClassName();
+ sclz.setClassJavaDoc(serviceBinding.getJaxwsClass().getComments());
+ }
+ sclz.setPackageJavaDoc(serviceBinding.getPackageJavaDoc());
+ }
+ if (serviceBinding2 != null) {
+ if (serviceBinding2.getPackage() != null) {
+ jaxwsBinding.setPackage(serviceBinding2.getPackage());
+ }
+
+ if (serviceBinding2.isEnableAsyncMapping()) {
+ jaxwsBinding.setEnableAsyncMapping(true);
+ }
+
+ if (serviceBinding2.isEnableMime()) {
+ jaxwsBinding.setEnableMime(true);
+ }
+
+ if (serviceBinding2.isEnableWrapperStyle()) {
+ jaxwsBinding.setEnableWrapperStyle(true);
+ }
+ if (serviceBinding2.getJaxwsClass() != null
+ && serviceBinding2.getJaxwsClass().getClassName() != null) {
+ name = serviceBinding2.getJaxwsClass().getClassName();
+ sclz.setClassJavaDoc(serviceBinding2.getJaxwsClass().getComments());
+ }
+ if (!serviceBinding2.getPackageJavaDoc().equals("")) {
+ sclz.setPackageJavaDoc(serviceBinding2.getPackageJavaDoc());
+ }
+ }
+
+ sclz.setServiceName(service.getName().getLocalPart());
+ sclz.setNamespace(namespace);
+
+ if (jaxwsBinding.getPackage() != null) {
+ packageName = jaxwsBinding.getPackage();
+ }
+ sclz.setPackageName(packageName);
+ name = mapName(packageName, name);
+ sclz.setName(name);
+ ClassCollector collector = context.get(ClassCollector.class);
+ String checkName = name;
+ int count = 0;
+ while (collector.containServiceClass(packageName, checkName)) {
+ checkName = name + (++count);
+ }
+ name = checkName;
+ sclz.setName(name);
+ collector.addServiceClassName(packageName, name, packageName + "." + name);
+
+ Element handler = (Element)context.get(ToolConstants.HANDLER_CHAIN);
+ sclz.setHandlerChains(handler);
}
- Element handler = (Element)context.get(ToolConstants.HANDLER_CHAIN);
- sclz.setHandlerChains(handler);
-
-
Collection<EndpointInfo> ports = service.getEndpoints();
for (EndpointInfo port : ports) {
@@ -204,7 +232,7 @@
}
sclz.setClassJavaDoc(jaxwsBinding.getClassJavaDoc());
- model.addServiceClass(name, sclz);
+ model.addServiceClass(sclz.getName(), sclz);
}
private JavaPort processPort(JavaModel model, EndpointInfo port) throws ToolException {
Modified: cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/impl.vm
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/impl.vm?rev=832808&r1=832807&r2=832808&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/impl.vm (original)
+++ cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/impl.vm Wed Nov 4 17:35:43 2009
@@ -49,7 +49,7 @@
#end
endpointInterface = "$intf.PackageName.$intf.Name")
-public class ${intf.Name}Impl implements $intf.Name {
+public class ${implName} implements $intf.Name {
private static final Logger LOG = Logger.getLogger(${intf.Name}Impl.class.getName());
Modified: cxf/branches/2.2.x-fixes/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java?rev=832808&r1=832807&r2=832808&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java (original)
+++ cxf/branches/2.2.x-fixes/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java Wed Nov 4 17:35:43 2009
@@ -24,6 +24,7 @@
import java.io.FileInputStream;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
+import java.util.Arrays;
import java.util.List;
import javax.jws.WebService;
@@ -177,7 +178,7 @@
File cxf = new File(org, "cxf");
File[] files = cxf.listFiles();
- assertEquals(23, files.length);
+ assertEquals(25, files.length);
Class clz = classLoader.loadClass("org.cxf.Greeter");
assertTrue("Generate " + clz.getName() + "error", clz.isInterface());
@@ -576,7 +577,7 @@
processor.execute();
File file = new File(output, "org/apache/cxf/w2j/hello_world_soap_http");
- assertEquals(4, file.list().length);
+ assertEquals(Arrays.asList(file.list()).toString(), 4, file.list().length);
file = new File(output,
"org/apache/cxf/w2j/hello_world_soap_http/DocLitBare_DocLitBarePort_Client.java");
assertTrue("DocLitBare_DocLitBarePort_Client is not found", file.exists());
@@ -935,7 +936,7 @@
processor.setContext(env);
processor.execute();
File file = new File(output, "org/mypkg");
- assertEquals(23, file.listFiles().length);
+ assertEquals(25, file.listFiles().length);
Class<?> clz = classLoader.loadClass("org.mypkg.MyService");
assertNotNull("Customized service class is not found", clz);
clz = classLoader.loadClass("org.mypkg.MyGreeter");
@@ -1087,4 +1088,21 @@
assertTrue(str.contains("@XmlLocation"));
assertTrue(str.contains("synchronized"));
}
+
+ @Test
+ public void testCXF1939() throws Exception {
+ String[] args = new String[] {"-d", output.getCanonicalPath(),
+ "-impl", "-server", "-client", "-autoNameResolution",
+ getLocation("/wsdl2java_wsdl/cxf1939/hello_world.wsdl")};
+ WSDLToJava.main(args);
+
+ assertNotNull(output);
+ assertTrue(new File(output, "org/apache/cxf/w2j/hello_world_soap_http/GreeterImpl.java").exists());
+ assertTrue(new File(output, "org/apache/cxf/w2j/hello_world_soap_http/GreeterImpl1.java").exists());
+ assertTrue(new File(output,
+ "org/apache/cxf/w2j/hello_world_soap_http/TestServiceName.java").exists());
+ assertTrue(new File(output,
+ "org/apache/cxf/w2j/hello_world_soap_http/TestServiceName1.java").exists());
+ }
+
}
Modified: cxf/branches/2.2.x-fixes/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenTest.java?rev=832808&r1=832807&r2=832808&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenTest.java (original)
+++ cxf/branches/2.2.x-fixes/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenTest.java Wed Nov 4 17:35:43 2009
@@ -487,7 +487,7 @@
File types = new File(helloworldsoaphttp, "types");
assertTrue(types.exists());
File[] files = helloworldsoaphttp.listFiles();
- assertEquals(7, files.length);
+ assertEquals(9, files.length);
files = types.listFiles();
assertEquals(17, files.length);
@@ -578,7 +578,7 @@
File types = new File(helloworldsoaphttp, "types");
assertTrue(types.exists());
File[] files = helloworldsoaphttp.listFiles();
- assertEquals(7, files.length);
+ assertEquals(9, files.length);
files = types.listFiles();
assertEquals(17, files.length);
Modified: cxf/branches/2.2.x-fixes/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/wsdl11/JAXWSDefinitionBuilderTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/wsdl11/JAXWSDefinitionBuilderTest.java?rev=832808&r1=832807&r2=832808&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/wsdl11/JAXWSDefinitionBuilderTest.java (original)
+++ cxf/branches/2.2.x-fixes/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/wsdl11/JAXWSDefinitionBuilderTest.java Wed Nov 4 17:35:43 2009
@@ -71,7 +71,8 @@
assertNotNull(port);
assertEquals(1, port.getExtensibilityElements().size());
- assertTrue(port.getExtensibilityElements().get(0) instanceof HTTPAddress);
+ assertTrue(port.getExtensibilityElements().get(0).getClass().getName(),
+ port.getExtensibilityElements().get(0) instanceof HTTPAddress);
Binding binding = port.getBinding();
assertNotNull(binding);