Author: ema
Date: Tue Jan 16 02:08:53 2007
New Revision: 496651
URL: http://svn.apache.org/viewvc?view=rev&rev=496651
Log:
Updated woodstox dependency
Ported some wsdl2java test cases from old tools
Modified:
incubator/cxf/trunk/tools2/common/src/main/java/org/apache/cxf/tools/common/ToolContext.java
incubator/cxf/trunk/tools2/validator/pom.xml
incubator/cxf/trunk/tools2/wsdlto/core/pom.xml
incubator/cxf/trunk/tools2/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/ClassNameAllocatorImpl.java
incubator/cxf/trunk/tools2/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java
incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/customiztion/CustomizationParser.java
incubator/cxf/trunk/tools2/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenTest.java
Modified:
incubator/cxf/trunk/tools2/common/src/main/java/org/apache/cxf/tools/common/ToolContext.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/tools2/common/src/main/java/org/apache/cxf/tools/common/ToolContext.java?view=diff&rev=496651&r1=496650&r2=496651
==============================================================================
---
incubator/cxf/trunk/tools2/common/src/main/java/org/apache/cxf/tools/common/ToolContext.java
(original)
+++
incubator/cxf/trunk/tools2/common/src/main/java/org/apache/cxf/tools/common/ToolContext.java
Tue Jan 16 02:08:53 2007
@@ -181,6 +181,9 @@
if (hasNamespace(ns)) {
return mapNamespaceToPackageName(ns);
} else {
+ if (getPackageName() != null) {
+ return getPackageName();
+ }
String pkg = URIParserUtil.parsePackageName(ns, null);
setPackageName(pkg);
return pkg;
Modified: incubator/cxf/trunk/tools2/validator/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/tools2/validator/pom.xml?view=diff&rev=496651&r1=496650&r2=496651
==============================================================================
--- incubator/cxf/trunk/tools2/validator/pom.xml (original)
+++ incubator/cxf/trunk/tools2/validator/pom.xml Tue Jan 16 02:08:53 2007
@@ -83,7 +83,7 @@
</dependency>
<dependency>
- <groupId>woodstox</groupId>
+ <groupId>org.codehaus.woodstox</groupId>
<artifactId>wstx-asl</artifactId>
<scope>runtime</scope>
</dependency>
Modified: incubator/cxf/trunk/tools2/wsdlto/core/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/tools2/wsdlto/core/pom.xml?view=diff&rev=496651&r1=496650&r2=496651
==============================================================================
--- incubator/cxf/trunk/tools2/wsdlto/core/pom.xml (original)
+++ incubator/cxf/trunk/tools2/wsdlto/core/pom.xml Tue Jan 16 02:08:53 2007
@@ -106,10 +106,10 @@
<artifactId>saaj-api</artifactId>
</dependency>
<dependency>
- <groupId>woodstox</groupId>
- <artifactId>wstx-asl</artifactId>
- <scope>runtime</scope>
- </dependency>
+ <groupId>org.codehaus.woodstox</groupId>
+ <artifactId>wstx-asl</artifactId>
+ <scope>runtime</scope>
+ </dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-common-utilities</artifactId>
Modified:
incubator/cxf/trunk/tools2/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/ClassNameAllocatorImpl.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/tools2/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/ClassNameAllocatorImpl.java?view=diff&rev=496651&r1=496650&r2=496651
==============================================================================
---
incubator/cxf/trunk/tools2/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/ClassNameAllocatorImpl.java
(original)
+++
incubator/cxf/trunk/tools2/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/ClassNameAllocatorImpl.java
Tue Jan 16 02:08:53 2007
@@ -31,8 +31,10 @@
public class ClassNameAllocatorImpl implements ClassNameAllocator {
private static final String TYPE_SUFFIX = "_Type";
private ClassCollector collector;
+
public ClassNameAllocatorImpl(ClassCollector classCollector) {
collector = classCollector;
+
}
private boolean isNameCollision(String packageName, String className) {
Modified:
incubator/cxf/trunk/tools2/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/tools2/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java?view=diff&rev=496651&r1=496650&r2=496651
==============================================================================
---
incubator/cxf/trunk/tools2/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java
(original)
+++
incubator/cxf/trunk/tools2/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java
Tue Jan 16 02:08:53 2007
@@ -20,6 +20,7 @@
import java.io.File;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.logging.Logger;
@@ -27,6 +28,7 @@
import javax.wsdl.Definition;
import javax.xml.namespace.QName;
+import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.xml.sax.InputSource;
@@ -42,6 +44,7 @@
import org.apache.cxf.common.i18n.Message;
import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.common.util.StringUtils;
+
import org.apache.cxf.service.model.SchemaInfo;
import org.apache.cxf.service.model.ServiceInfo;
import org.apache.cxf.tools.common.ToolConstants;
@@ -57,6 +60,7 @@
private ToolContext env;
private ServiceInfo serviceInfo;
private Definition def;
+ private List<String> schemaSystemIds = new ArrayList<String>();
@SuppressWarnings("unchecked")
private void initialize(ToolContext penv) throws ToolException {
@@ -65,7 +69,9 @@
def = (Definition)env.get(Definition.class);
SchemaCompilerImpl schemaCompiler =
(SchemaCompilerImpl)XJC.createSchemaCompiler();
-
+ if (env.getPackageName() != null) {
+ schemaCompiler.setDefaultPackageName(env.getPackageName());
+ }
ClassCollector classCollector = env.get(ClassCollector.class);
ClassNameAllocatorImpl allocator = new
ClassNameAllocatorImpl(classCollector);
allocator.setInterface(serviceInfo.getInterface(),
env.mapPackageName(def.getTargetNamespace()));
@@ -74,14 +80,25 @@
JAXBBindErrorListener listener = new JAXBBindErrorListener(env);
schemaCompiler.setErrorListener(listener);
- Collection<SchemaInfo> schemas =
serviceInfo.getTypeInfo().getSchemas();
+ Collection<SchemaInfo> schemas = serviceInfo.getSchemas();
Collection<InputSource> jaxbBindings =
env.getJaxbBindingFile().values();
for (SchemaInfo schema : schemas) {
- Element element = schema.getElement();
- String tns = element.getAttribute("targetNamespace");
- schemaCompiler.parseSchema(tns, element);
+ Document[] docs = schema.getSchema().getAllSchemas();
+ for (int i = 0; i < docs.length; i++) {
+ Element ele = docs[i].getDocumentElement();
+ String systemId = schema.getElement().getBaseURI();
+ String tns = ele.getAttribute("targetNamespace");
+ if (StringUtils.isEmpty(tns)) {
+ continue;
+ }
+ if
(schemaSystemIds.contains(schema.getElement().getBaseURI())) {
+ systemId = schema.getElement().getBaseURI() + "#" + tns;
+ }
+ schemaCompiler.parseSchema(systemId, ele);
+ }
+
}
for (InputSource binding : jaxbBindings) {
Modified:
incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/customiztion/CustomizationParser.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/customiztion/CustomizationParser.java?view=diff&rev=496651&r1=496650&r2=496651
==============================================================================
---
incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/customiztion/CustomizationParser.java
(original)
+++
incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/customiztion/CustomizationParser.java
Tue Jan 16 02:08:53 2007
@@ -332,7 +332,7 @@
} catch (URISyntaxException e2) {
//ignore
}
- InputSource is = new InputSource(bindingFile);
+ InputSource is = new InputSource(bindingURI.toString());
XMLStreamReader reader = StAXUtil.createFreshXMLStreamReader(is);
StAXUtil.toStartTag(reader);
Modified:
incubator/cxf/trunk/tools2/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenTest.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/tools2/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenTest.java?view=diff&rev=496651&r1=496650&r2=496651
==============================================================================
---
incubator/cxf/trunk/tools2/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenTest.java
(original)
+++
incubator/cxf/trunk/tools2/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenTest.java
Tue Jan 16 02:08:53 2007
@@ -62,7 +62,7 @@
}
public void testRPCLit() throws Exception {
-
+
env.put(ToolConstants.CFG_WSDLURL,
getLocation("/wsdl2java_wsdl/hello_world_rpc_lit.wsdl"));
processor.setContext(env);
processor.execute(false);
@@ -274,7 +274,6 @@
}
-
public void testDocLitHolder() throws Exception {
env.put(ToolConstants.CFG_WSDLURL,
getLocation("/wsdl2java_wsdl/mapping-doc-literal.wsdl"));
processor.setContext(env);
@@ -297,7 +296,131 @@
webParamAnno = AnnotationUtil.getWebParam(method, "z");
assertEquals("OUT", webParamAnno.mode().name());
}
-
+
+ public void testSchemaImport() throws Exception {
+ env.put(ToolConstants.CFG_WSDLURL,
getLocation("/wsdl2java_wsdl/hello_world_schema_import.wsdl"));
+
+ processor.setContext(env);
+ processor.execute(true);
+
+ assertNotNull(output);
+
+ File org = new File(output, "org");
+ assertTrue(org.exists());
+ File apache = new File(org, "apache");
+ assertTrue(apache.exists());
+ File[] files = apache.listFiles();
+ assertEquals(2, files.length);
+ File helloworldsoaphttp = new File(apache, "hello_world_soap_http");
+ assertTrue(helloworldsoaphttp.exists());
+ File types = new File(helloworldsoaphttp, "types");
+ assertTrue(types.exists());
+ files = helloworldsoaphttp.listFiles();
+ assertEquals(1, files.length);
+ files = types.listFiles();
+ assertEquals(files.length, 10);
+ File schemaImport = new File(apache, "schema_import");
+ assertTrue(schemaImport.exists());
+ files = schemaImport.listFiles();
+ assertEquals(4, files.length);
+
+ Class clz = classLoader.loadClass("org.apache.schema_import.Greeter");
+ assertEquals(4, clz.getMethods().length);
+
+ Method method = clz.getMethod("pingMe", new Class[] {});
+ assertEquals("void", method.getReturnType().getSimpleName());
+ assertEquals("Exception class is not generated ", 1,
method.getExceptionTypes().length);
+
+ }
+
+ public void testExceptionNameCollision() throws Exception {
+ env.put(ToolConstants.CFG_WSDLURL,
getLocation("/wsdl2java_wsdl/InvoiceServer.wsdl"));
+
+ processor.setContext(env);
+ processor.execute(true);
+
+ assertNotNull(output);
+
+ File org = new File(output, "org");
+ assertTrue(org.exists());
+ File apache = new File(org, "apache");
+ assertTrue(apache.exists());
+ File invoiceserver = new File(apache, "invoiceserver");
+ assertTrue(invoiceserver.exists());
+ File invoice = new File(apache, "invoice");
+ assertTrue(invoice.exists());
+
+ File exceptionCollision = new File(invoiceserver,
"NoSuchCustomerFault_Exception.java");
+ assertTrue(exceptionCollision.exists());
+
+ File[] files = invoiceserver.listFiles();
+ assertEquals(13, files.length);
+ files = invoice.listFiles();
+ assertEquals(files.length, 9);
+
+ Class clz =
classLoader.loadClass("org.apache.invoiceserver.InvoiceServer");
+ assertEquals(3, clz.getMethods().length);
+
+ Method method = clz.getMethod("getInvoicesForCustomer", new Class[]
{String.class, String.class});
+ assertEquals("NoSuchCustomerFault_Exception",
method.getExceptionTypes()[0].getSimpleName());
+
+ }
+
+ public void testAllNameCollision() throws Exception {
+ env.put(ToolConstants.CFG_WSDLURL,
getLocation("/wsdl2java_wsdl/hello_world_collision.wsdl"));
+ env.setPackageName("org.apache");
+ processor.setContext(env);
+ processor.execute(true);
+
+ assertNotNull(output);
+
+ File org = new File(output, "org");
+ assertTrue(org.exists());
+ File apache = new File(org, "apache");
+ assertTrue(apache.exists());
+
+ File[] files = apache.listFiles();
+ assertEquals(14, files.length);
+
+ File typeCollision = new File(apache, "Greeter_Type.java");
+ assertTrue(typeCollision.exists());
+ File exceptionCollision = new File(apache, "Greeter_Exception.java");
+ assertTrue(exceptionCollision.exists());
+ File serviceCollision = new File(apache, "Greeter_Service.java");
+ assertTrue(serviceCollision.exists());
+
+ Class clz = classLoader.loadClass("org.apache.Greeter");
+ assertTrue("SEI class Greeter modifier should be interface",
clz.isInterface());
+
+ clz = classLoader.loadClass("org.apache.Greeter_Exception");
+ clz = classLoader.loadClass("org.apache.Greeter_Service");
+ }
+
+ public void testImportNameCollision() throws Exception {
+ env.put(ToolConstants.CFG_WSDLURL,
+
getLocation("/wsdl2java_wsdl/helloworld-portname_servicename.wsdl"));
+ env.setPackageName("org.apache");
+ processor.setContext(env);
+ processor.execute(true);
+
+ assertNotNull(output);
+
+ File org = new File(output, "org");
+ assertTrue(org.exists());
+ File apache = new File(org, "apache");
+ assertTrue(apache.exists());
+
+ File[] files = apache.listFiles();
+ assertEquals(4, files.length);
+
+ File serviceCollision = new File(apache,
"HelloWorldServiceImpl_Service.java");
+ assertTrue(serviceCollision.exists());
+
+ Class clz = classLoader.loadClass("org.apache.HelloWorldServiceImpl");
+ assertTrue("SEI class HelloWorldServiceImpl modifier should be
interface", clz.isInterface());
+
+ clz =
classLoader.loadClass("org.apache.HelloWorldServiceImpl_Service");
+ }
private String getLocation(String wsdlFile) {
return this.getClass().getResource(wsdlFile).getFile();