You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by mm...@apache.org on 2007/03/05 10:01:19 UTC
svn commit: r514610 - in /incubator/cxf/trunk:
tools/common/src/main/java/org/apache/cxf/tools/util/
tools/wsdl2java/src/main/java/org/apache/cxf/tools/wsdl2java/processor/internal/
tools2/common/src/main/java/org/apache/cxf/tools/util/ tools2/javato/s...
Author: mmao
Date: Mon Mar 5 01:01:18 2007
New Revision: 514610
URL: http://svn.apache.org/viewvc?view=rev&rev=514610
Log:
Code cleanup
* Port exitOnFinish from tools to tools2
* Remove commented code
* Refactoring JIRA-356, previous fix is over-engineered,
there is no need to copy bunch of code into ProcessorUtil, we can extract the element targetnamespace from the jaxb property, and only doc-lit need this fix.
* Port the JIRA-356 fix into tools2
Added:
incubator/cxf/trunk/tools2/wsdlto/test/src/test/resources/wsdl2java_wsdl/locator.wsdl
Modified:
incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/ProcessorUtil.java
incubator/cxf/trunk/tools/wsdl2java/src/main/java/org/apache/cxf/tools/wsdl2java/processor/internal/OperationProcessor.java
incubator/cxf/trunk/tools/wsdl2java/src/main/java/org/apache/cxf/tools/wsdl2java/processor/internal/ParameterProcessor.java
incubator/cxf/trunk/tools2/common/src/main/java/org/apache/cxf/tools/util/PropertyUtil.java
incubator/cxf/trunk/tools2/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/JavaToWSDLProcessorTest.java
incubator/cxf/trunk/tools2/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJava.java
incubator/cxf/trunk/tools2/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java
incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java
incubator/cxf/trunk/tools2/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenTest.java
Modified: incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/ProcessorUtil.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/ProcessorUtil.java?view=diff&rev=514610&r1=514609&r2=514610
==============================================================================
--- incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/ProcessorUtil.java (original)
+++ incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/ProcessorUtil.java Mon Mar 5 01:01:18 2007
@@ -24,23 +24,13 @@
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collection;
import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
import java.util.Map;
import java.util.StringTokenizer;
-import javax.wsdl.Definition;
-import javax.wsdl.Import;
import javax.wsdl.Message;
import javax.wsdl.Operation;
import javax.wsdl.Part;
-import javax.wsdl.Types;
-import javax.wsdl.extensions.UnknownExtensibilityElement;
-import javax.wsdl.extensions.schema.Schema;
-import javax.wsdl.extensions.schema.SchemaImport;
import javax.xml.namespace.QName;
import org.w3c.dom.DOMException;
@@ -53,24 +43,13 @@
import org.apache.cxf.helpers.JavaUtils;
import org.apache.cxf.jaxb.JAXBUtils;
-import org.apache.cxf.resource.XmlSchemaURIResolver;
import org.apache.cxf.tools.common.DataBindingGenerator;
import org.apache.cxf.tools.common.ToolConstants;
import org.apache.cxf.tools.common.ToolContext;
import org.apache.cxf.tools.common.ToolException;
-import org.apache.ws.commons.schema.XmlSchemaCollection;
-import org.apache.ws.commons.schema.XmlSchemaComplexType;
-import org.apache.ws.commons.schema.XmlSchemaElement;
-import org.apache.ws.commons.schema.XmlSchemaObject;
-import org.apache.ws.commons.schema.XmlSchemaObjectCollection;
-import org.apache.ws.commons.schema.XmlSchemaSequence;
-
-import static org.apache.cxf.helpers.CastUtils.cast;
public final class ProcessorUtil {
- //private static final Logger LOG = LogUtils.getL7dLogger(ProcessorUtil.class);
private static final String KEYWORDS_PREFIX = "_";
- private static Map<String, Element> schemaList = new HashMap<String, Element>();
private ProcessorUtil() {
}
@@ -171,46 +150,6 @@
}
}
- public static String resolvePartNamespace(Part part, Definition definition) {
- QName qname = part.getElementName();
-
-
-
- if (qname == null) {
- qname = part.getTypeName();
- }
- if (qname != null) {
- XmlSchemaElement schemaElement = getSchemas(definition).getElementByQName(qname);
- if (schemaElement != null
- && schemaElement.getSchemaType() instanceof XmlSchemaComplexType) {
- XmlSchemaComplexType xsct = null;
-
- xsct = (XmlSchemaComplexType)schemaElement.getSchemaType();
- if (xsct.getParticle() instanceof XmlSchemaSequence) {
- XmlSchemaSequence seq = (XmlSchemaSequence)xsct.getParticle();
- XmlSchemaObjectCollection items = seq.getItems();
-
- for (int x = 0; x < items.getCount(); x++) {
- XmlSchemaObject o = items.getItem(x);
- XmlSchemaElement el = null;
- if (o instanceof XmlSchemaElement) {
- el = (XmlSchemaElement)o;
- }
-
- if (el != null && el.getRefName() != null) {
- return el.getRefName().getNamespaceURI();
- }
- }
- }
-
-
- }
- return qname.getNamespaceURI();
- } else {
- return null;
- }
- }
-
public static String mangleNameToClassName(String clzName) {
return JAXBRIContext.mangleNameToClassName(clzName);
}
@@ -522,127 +461,4 @@
return clone;
}
- public static XmlSchemaCollection getSchemas(Definition def) {
- XmlSchemaCollection schemaCol = new XmlSchemaCollection();
-
- List<Definition> defList = new ArrayList<Definition>();
- parseImports(def, defList);
- extractSchema(def, schemaCol);
- // added
- getSchemaList(def);
- for (Definition def2 : defList) {
- extractSchema(def2, schemaCol);
- // added
- getSchemaList(def2);
- }
-
- return schemaCol;
- }
-
- private static void parseImports(Definition def, List<Definition> defList) {
- List<Import> importList = new ArrayList<Import>();
-
- Collection<List<Import>> ilist = cast(def.getImports().values());
- for (List<Import> list : ilist) {
- importList.addAll(list);
- }
- for (Import impt : importList) {
- parseImports(impt.getDefinition(), defList);
- defList.add(impt.getDefinition());
- }
- }
-
- private static void extractSchema(Definition def, XmlSchemaCollection schemaCol) {
- Types typesElement = def.getTypes();
- if (typesElement != null) {
- for (Object obj : typesElement.getExtensibilityElements()) {
- org.w3c.dom.Element schemaElem = null;
- if (obj instanceof Schema) {
- Schema schema = (Schema)obj;
- schemaElem = schema.getElement();
- } else if (obj instanceof UnknownExtensibilityElement) {
- org.w3c.dom.Element elem = ((UnknownExtensibilityElement)obj).getElement();
- if (elem.getLocalName().equals("schema")) {
- schemaElem = elem;
- }
- }
- if (schemaElem != null) { // && schemaElem.getNodeValue() != null) {
- for (Object prefix : def.getNamespaces().keySet()) {
- String ns = (String)def.getNamespaces().get(prefix);
- if (!"".equals(prefix) && !schemaElem.hasAttribute("xmlns:" + prefix)) {
- schemaElem.setAttributeNS(javax.xml.XMLConstants.XMLNS_ATTRIBUTE_NS_URI,
- "xmlns:" + prefix, ns);
- }
- }
- try {
- schemaCol.setBaseUri(def.getDocumentBaseURI());
- schemaCol.setSchemaResolver(new XmlSchemaURIResolver());
-
- schemaCol.read(schemaElem);
- } catch (Exception e) {
- //e.printStackTrace();
- }
-
- }
- }
- }
- }
-
- private static void getSchemaList(Definition def) {
- Types typesElement = def.getTypes();
- if (typesElement != null) {
- Iterator ite = typesElement.getExtensibilityElements().iterator();
- while (ite.hasNext()) {
- Object obj = ite.next();
- if (obj instanceof Schema) {
- Schema schema = (Schema)obj;
- addSchema(schema);
- }
- }
- }
- }
-
- @SuppressWarnings("unchecked")
- private static void addSchema(Schema schema) {
- if (schemaList.get(schema.getDocumentBaseURI()) == null) {
- schemaList.put(schema.getDocumentBaseURI(), schema.getElement());
- } else {
- String tns = schema.getDocumentBaseURI() + "#"
- + schema.getElement().getAttribute("targetNamespace");
- if (schemaList.get(tns) == null) {
- schemaList.put(tns, schema.getElement());
- }
- }
-
- Map<String, List> imports = schema.getImports();
- if (imports != null && imports.size() > 0) {
- Collection<String> importKeys = imports.keySet();
- for (String importNamespace : importKeys) {
- if (importNamespace != null
- && !isSchemaParsed(schema.getDocumentBaseURI(), importNamespace)) {
- List<SchemaImport> schemaImports = imports.get(importNamespace);
- for (SchemaImport schemaImport : schemaImports) {
- Schema tempImport = schemaImport.getReferencedSchema();
- if (tempImport != null && !schemaList.containsValue(tempImport.getElement())) {
- addSchema(tempImport);
- }
- }
- }
- }
- }
- }
-
- private static boolean isSchemaParsed(String baseUri, String ns) {
- if (schemaList.get(baseUri) != null) {
- Element ele = schemaList.get(baseUri);
- String tns = ele.getAttribute("targetNamespace");
- if (ns.equals(tns)) {
- return true;
- }
- }
- return false;
- }
-
-
-
}
Modified: incubator/cxf/trunk/tools/wsdl2java/src/main/java/org/apache/cxf/tools/wsdl2java/processor/internal/OperationProcessor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdl2java/src/main/java/org/apache/cxf/tools/wsdl2java/processor/internal/OperationProcessor.java?view=diff&rev=514610&r1=514609&r2=514610
==============================================================================
--- incubator/cxf/trunk/tools/wsdl2java/src/main/java/org/apache/cxf/tools/wsdl2java/processor/internal/OperationProcessor.java (original)
+++ incubator/cxf/trunk/tools/wsdl2java/src/main/java/org/apache/cxf/tools/wsdl2java/processor/internal/OperationProcessor.java Mon Mar 5 01:01:18 2007
@@ -26,7 +26,6 @@
import java.util.logging.Level;
import javax.jws.soap.SOAPBinding;
-//import javax.wsdl.Definition;
import javax.wsdl.Fault;
import javax.wsdl.Message;
import javax.wsdl.Operation;
Modified: incubator/cxf/trunk/tools/wsdl2java/src/main/java/org/apache/cxf/tools/wsdl2java/processor/internal/ParameterProcessor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdl2java/src/main/java/org/apache/cxf/tools/wsdl2java/processor/internal/ParameterProcessor.java?view=diff&rev=514610&r1=514609&r2=514610
==============================================================================
--- incubator/cxf/trunk/tools/wsdl2java/src/main/java/org/apache/cxf/tools/wsdl2java/processor/internal/ParameterProcessor.java (original)
+++ incubator/cxf/trunk/tools/wsdl2java/src/main/java/org/apache/cxf/tools/wsdl2java/processor/internal/ParameterProcessor.java Mon Mar 5 01:01:18 2007
@@ -105,7 +105,7 @@
private JavaParameter getParameterFromPart(JavaMethod method, Part part, JavaType.Style style) {
String name = ProcessorUtil.resolvePartName(part);
- String namespace = ProcessorUtil.resolvePartNamespace(part, definition);
+ String namespace = ProcessorUtil.resolvePartNamespace(part);
String type = ProcessorUtil.resolvePartType(part, this.env);
JavaParameter parameter = new JavaParameter(name, type, namespace);
@@ -174,7 +174,7 @@
String name = part == null ? "return" : part.getName();
String type = part == null ? "void" : ProcessorUtil.resolvePartType(part, this.env);
- String namespace = part == null ? null : ProcessorUtil.resolvePartNamespace(part, definition);
+ String namespace = part == null ? null : ProcessorUtil.resolvePartNamespace(part);
JavaReturn returnType = new JavaReturn(name, type, namespace);
returnType.setQName(ProcessorUtil.getElementName(part));
@@ -439,9 +439,9 @@
private JavaParameter getParameterFromProperty(Property property, JavaType.Style style, Part part) {
JType t = property.type();
- String targetNamespace = ProcessorUtil.resolvePartNamespace(part, definition);
+ String targetNamespace = property.elementName().getNamespaceURI();
if (targetNamespace == null) {
- targetNamespace = property.elementName().getNamespaceURI();
+ targetNamespace = ProcessorUtil.resolvePartNamespace(part);
}
JavaParameter parameter = new JavaParameter(property.name(), t.fullName(), targetNamespace);
parameter.setStyle(style);
@@ -456,9 +456,9 @@
private JavaReturn getReturnFromProperty(Property property, Part part) {
JType t = property.type();
- String targetNamespace = ProcessorUtil.resolvePartNamespace(part, definition);
+ String targetNamespace = property.elementName().getNamespaceURI();
if (targetNamespace == null) {
- targetNamespace = property.elementName().getNamespaceURI();
+ targetNamespace = ProcessorUtil.resolvePartNamespace(part);
}
JavaReturn returnType = new JavaReturn(property.name(), t.fullName(), targetNamespace);
returnType.setQName(property.elementName());
Modified: incubator/cxf/trunk/tools2/common/src/main/java/org/apache/cxf/tools/util/PropertyUtil.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools2/common/src/main/java/org/apache/cxf/tools/util/PropertyUtil.java?view=diff&rev=514610&r1=514609&r2=514610
==============================================================================
--- incubator/cxf/trunk/tools2/common/src/main/java/org/apache/cxf/tools/util/PropertyUtil.java (original)
+++ incubator/cxf/trunk/tools2/common/src/main/java/org/apache/cxf/tools/util/PropertyUtil.java Mon Mar 5 01:01:18 2007
@@ -19,8 +19,14 @@
package org.apache.cxf.tools.util;
-import java.io.*;
-import java.util.*;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.StringTokenizer;
+
import org.apache.cxf.common.util.StringUtils;
public class PropertyUtil {
Modified: incubator/cxf/trunk/tools2/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/JavaToWSDLProcessorTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools2/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/JavaToWSDLProcessorTest.java?view=diff&rev=514610&r1=514609&r2=514610
==============================================================================
--- incubator/cxf/trunk/tools2/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/JavaToWSDLProcessorTest.java (original)
+++ incubator/cxf/trunk/tools2/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/JavaToWSDLProcessorTest.java Mon Mar 5 01:01:18 2007
@@ -37,7 +37,6 @@
import org.apache.cxf.tools.common.ToolException;
import org.apache.cxf.tools.common.WSDLConstants;
import org.apache.cxf.tools.common.extensions.soap.SoapBinding;
-import org.apache.cxf.tools.common.toolspec.ToolSpec;
import org.apache.cxf.tools.util.SOAPBindingUtil;
import org.apache.cxf.tools.wsdlto.frontend.jaxws.JAXWSContainer;
@@ -49,9 +48,6 @@
private String serviceName = "cxfService";
private WSDLHelper wsdlHelper = new WSDLHelper();
private File classFile;
- private String toolspecFile = "/org/apache/cxf/tools/wsdlto/frontend/jaxws/jaxws-toolspec.xml";
- private InputStream ins = getClass().getResourceAsStream(toolspecFile);
- private ToolSpec toolspec = new ToolSpec(ins, true);
public void setUp() throws Exception {
Modified: incubator/cxf/trunk/tools2/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJava.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools2/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJava.java?view=diff&rev=514610&r1=514609&r2=514610
==============================================================================
--- incubator/cxf/trunk/tools2/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJava.java (original)
+++ incubator/cxf/trunk/tools2/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJava.java Mon Mar 5 01:01:18 2007
@@ -19,8 +19,9 @@
package org.apache.cxf.tools.wsdlto;
-import java.io.*;
-import java.util.*;
+import java.io.InputStream;
+import java.util.Arrays;
+import java.util.List;
import org.apache.cxf.common.util.StringUtils;
import org.apache.cxf.tools.common.ToolConstants;
@@ -61,6 +62,14 @@
return pluginLoader.getDataBindingProfile(name);
}
+ private boolean isExitOnFinish() {
+ String exit = System.getProperty("exitOnFinish");
+ if (StringUtils.isEmpty(exit)) {
+ return false;
+ }
+ return "YES".equalsIgnoreCase(exit) || "TRUE".equalsIgnoreCase(exit);
+ }
+
public void run(ToolContext context) throws Exception {
FrontEndProfile frontend = null;
if (args != null) {
@@ -87,6 +96,7 @@
toolspecStream,
false,
args,
+ isExitOnFinish(),
context);
}
Modified: incubator/cxf/trunk/tools2/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools2/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java?view=diff&rev=514610&r1=514609&r2=514610
==============================================================================
--- incubator/cxf/trunk/tools2/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java (original)
+++ incubator/cxf/trunk/tools2/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java Mon Mar 5 01:01:18 2007
@@ -182,13 +182,22 @@
if (isVerboseOn()) {
ex.printStackTrace();
}
+ if (exitOnFinish) {
+ System.exit(1);
+ }
} catch (Exception ex) {
System.err.println("Error : " + ex.getMessage());
System.err.println();
if (isVerboseOn()) {
ex.printStackTrace();
}
+ if (exitOnFinish) {
+ System.exit(1);
+ }
}
+ if (exitOnFinish) {
+ System.exit(0);
+ }
}
@SuppressWarnings("unchecked")
Modified: incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java?view=diff&rev=514610&r1=514609&r2=514610
==============================================================================
--- incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java (original)
+++ incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java Mon Mar 5 01:01:18 2007
@@ -98,7 +98,6 @@
private JavaParameter addParameter(JavaMethod method, JavaParameter parameter) throws ToolException {
parameter.setMethod(method);
parameter.annotate(new WebParamAnnotator());
- //new WebParamAnnotator().annotate(method, parameter);
method.addParameter(parameter);
return parameter;
}
@@ -145,27 +144,6 @@
addParameter(method, getParameterFromQName(part.getElementQName(),
item, JavaType.Style.IN, part));
}
-
- /*Map<String, Part> inputPartsMap = inputMessage.getParts();
- Collection<Part> inputParts = inputPartsMap.values();
- if (inputParts.size() > 1) {
- processInput(method, inputMessage);
- return;
- } else if (inputParts.isEmpty()) {
- return;
- }
- Part part = inputParts.iterator().next();
-
- List<? extends Property> block = dataBinder.getBlock(part);
- if (block != null) {
- if (block.size() == 0) {
- // complete
- }
- for (Property item : block) {
- addParameter(method, getParameterFromProperty(item, JavaType.Style.IN, part));
- }
- }*/
-
}
@SuppressWarnings("unchecked")
@@ -190,7 +168,6 @@
outParts.add(outpart);
continue;
}
- // outParts.add(outpart);
}
}
@@ -318,10 +295,11 @@
fullJavaName = this.dataBinding.getWrappedElementType(wrapperElement, item);
- String targetNamespace = ProcessorUtil.resolvePartNamespace(part);
+ String targetNamespace = item.getNamespaceURI();
if (targetNamespace == null) {
- targetNamespace = wrapperElement.getNamespaceURI();
+ targetNamespace = ProcessorUtil.resolvePartNamespace(part);
}
+
String jpname = ProcessorUtil.mangleNameToVariableName(item.getLocalPart());
JavaParameter parameter = new JavaParameter(jpname, fullJavaName, targetNamespace);
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=514610&r1=514609&r2=514610
==============================================================================
--- 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 Mon Mar 5 01:01:18 2007
@@ -758,6 +758,35 @@
}
}
+ public void testRefTNS() throws Exception {
+ env.put(ToolConstants.CFG_WSDLURL, getLocation("/wsdl2java_wsdl/locator.wsdl"));
+ processor.setContext(env);
+ processor.execute();
+
+ assertNotNull(output);
+
+ File org = new File(output, "org");
+ assertTrue(org.exists());
+ File apache = new File(org, "apache");
+ assertTrue(apache.exists());
+ File locator = new File(apache, "locator");
+ assertTrue(locator.exists());
+ File locatorService = new File(locator, "LocatorService.java");
+ assertTrue(locatorService.exists());
+
+
+ Class<?> clz = classLoader.loadClass("org.apache.locator.LocatorService");
+
+ javax.jws.WebService ws = AnnotationUtil.getPrivClassAnnotation(clz, javax.jws.WebService.class);
+ assertTrue("Webservice annotation wsdlLocation should begin with file", ws.wsdlLocation()
+ .startsWith("file"));
+
+ Class<?> paraClass = classLoader.loadClass("org.apache.locator.query.QuerySelectType");
+ Method method = clz.getMethod("queryEndpoints", new Class[] {paraClass});
+ WebParam webParamAnn = AnnotationUtil.getWebParam(method, "select");
+ assertEquals("http://apache.org/locator/query", webParamAnn.targetNamespace());
+ }
+
private String getLocation(String wsdlFile) {
return this.getClass().getResource(wsdlFile).getFile();
}
Added: incubator/cxf/trunk/tools2/wsdlto/test/src/test/resources/wsdl2java_wsdl/locator.wsdl
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools2/wsdlto/test/src/test/resources/wsdl2java_wsdl/locator.wsdl?view=auto&rev=514610
==============================================================================
--- incubator/cxf/trunk/tools2/wsdlto/test/src/test/resources/wsdl2java_wsdl/locator.wsdl (added)
+++ incubator/cxf/trunk/tools2/wsdlto/test/src/test/resources/wsdl2java_wsdl/locator.wsdl Mon Mar 5 01:01:18 2007
@@ -0,0 +1,514 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+
+<definitions targetNamespace="http://apache.org/locator"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:ls="http://apache.org/locator"
+ xmlns:query="http://apache.org/locator/query"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://apache.org/locator/types"
+ xmlns:wsa="http://www.w3.org/2005/08/addressing"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <types>
+ <xs:schema attributeFormDefault="unqualified" blockDefault="#all"
+ elementFormDefault="qualified" finalDefault=""
+ targetNamespace="http://www.w3.org/2005/08/addressing"
+ xmlns:tns="http://www.w3.org/2005/08/addressing">
+ <xs:element name="EndpointReference" type="tns:EndpointReferenceType"/>
+ <xs:complexType mixed="false" name="EndpointReferenceType">
+ <xs:sequence>
+ <xs:element name="Address" type="tns:AttributedURIType"/>
+ <xs:element minOccurs="0" name="ReferenceParameters"
+ type="tns:ReferenceParametersType"/>
+ <xs:element minOccurs="0" ref="tns:Metadata"/>
+ <xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other"
+ processContents="lax"/>
+ </xs:sequence>
+ <xs:anyAttribute namespace="##other" processContents="lax"/>
+ </xs:complexType>
+ <xs:complexType mixed="false" name="ReferenceParametersType">
+ <xs:sequence>
+ <xs:any maxOccurs="unbounded" minOccurs="0" namespace="##any"
+ processContents="lax"/>
+ </xs:sequence>
+ <xs:anyAttribute namespace="##other" processContents="lax"/>
+ </xs:complexType>
+ <xs:element name="Metadata" type="tns:MetadataType"/>
+ <xs:complexType mixed="false" name="MetadataType">
+ <xs:sequence>
+ <xs:any maxOccurs="unbounded" minOccurs="0" namespace="##any"
+ processContents="lax"/>
+ </xs:sequence>
+ <!--
+ Until anyAttribute is supported, explicitly include the
+ wsdlLocation attribute definition.
+
+ <xs:anyAttribute namespace="##other" processContents="lax"/>
+-->
+ <xs:attribute name="wsdlLocation" type="xs:string" use="optional"/>
+ </xs:complexType>
+ <xs:element name="MessageID" type="tns:AttributedURIType"/>
+ <xs:element name="RelatesTo" type="tns:RelatesToType"/>
+ <xs:complexType mixed="false" name="RelatesToType">
+ <xs:simpleContent>
+ <xs:extension base="xs:anyURI">
+ <xs:attribute name="RelationshipType"
+ type="tns:RelationshipTypeOpenEnum" use="optional"/>
+ <xs:anyAttribute namespace="##other" processContents="lax"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:simpleType name="RelationshipTypeOpenEnum">
+ <xs:union memberTypes="tns:RelationshipType xs:anyURI"/>
+ </xs:simpleType>
+ <xs:simpleType name="RelationshipType">
+ <xs:restriction base="xs:anyURI">
+ <xs:enumeration value="http://www.w3.org/2005/08/addressing/reply"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:element name="ReplyTo" type="tns:EndpointReferenceType"/>
+ <xs:element name="From" type="tns:EndpointReferenceType"/>
+ <xs:element name="FaultTo" type="tns:EndpointReferenceType"/>
+ <xs:element name="To" type="tns:AttributedURIType"/>
+ <xs:element name="Action" type="tns:AttributedURIType"/>
+ <xs:complexType mixed="false" name="AttributedURIType">
+ <xs:simpleContent>
+ <xs:extension base="xs:anyURI">
+ <xs:anyAttribute namespace="##other" processContents="lax"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:attribute name="IsReferenceParameter" type="xs:boolean"/>
+ <xs:simpleType name="FaultCodesOpenEnumType">
+ <xs:union memberTypes="tns:FaultCodesType xs:QName"/>
+ </xs:simpleType>
+ <xs:simpleType name="FaultCodesType">
+ <xs:restriction base="xs:QName">
+ <xs:enumeration value="tns:InvalidAddressingHeader"/>
+ <xs:enumeration value="tns:InvalidAddress"/>
+ <xs:enumeration value="tns:InvalidEPR"/>
+ <xs:enumeration value="tns:InvalidCardinality"/>
+ <xs:enumeration value="tns:MissingAddressInEPR"/>
+ <xs:enumeration value="tns:DuplicateMessageID"/>
+ <xs:enumeration value="tns:ActionMismatch"/>
+ <xs:enumeration value="tns:MessageAddressingHeaderRequired"/>
+ <xs:enumeration value="tns:DestinationUnreachable"/>
+ <xs:enumeration value="tns:ActionNotSupported"/>
+ <xs:enumeration value="tns:EndpointUnavailable"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:element name="RetryAfter" type="tns:AttributedUnsignedLongType"/>
+ <xs:complexType mixed="false" name="AttributedUnsignedLongType">
+ <xs:simpleContent>
+ <xs:extension base="xs:unsignedLong">
+ <xs:anyAttribute namespace="##other" processContents="lax"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:element name="ProblemHeaderQName" type="tns:AttributedQNameType"/>
+ <xs:complexType mixed="false" name="AttributedQNameType">
+ <xs:simpleContent>
+ <xs:extension base="xs:QName">
+ <xs:anyAttribute namespace="##other" processContents="lax"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:element name="ProblemHeader" type="tns:AttributedAnyType"/>
+ <xs:complexType mixed="false" name="AttributedAnyType">
+ <xs:sequence>
+ <xs:any maxOccurs="1" minOccurs="1" namespace="##any"
+ processContents="lax"/>
+ </xs:sequence>
+ <xs:anyAttribute namespace="##other" processContents="lax"/>
+ </xs:complexType>
+ <xs:element name="ProblemIRI" type="tns:AttributedURIType"/>
+ <xs:element name="ProblemAction" type="tns:ProblemActionType"/>
+ <xs:complexType mixed="false" name="ProblemActionType">
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="tns:Action"/>
+ <xs:element minOccurs="0" name="SoapAction" type="xs:anyURI"/>
+ </xs:sequence>
+ <xs:anyAttribute namespace="##other" processContents="lax"/>
+ </xs:complexType>
+ </xs:schema>
+ <xs:schema elementFormDefault="qualified"
+ targetNamespace="http://apache.org/locator/query"
+ xmlns:tns="http://apache.org/locator/query">
+ <xs:simpleType name="FieldEnumeratedType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="GROUP"/>
+ <xs:enumeration value="SERVICE"/>
+ <xs:enumeration value="PORTNAME"/>
+ <xs:enumeration value="INTERFACE"/>
+ <xs:enumeration value="BINDING"/>
+ <xs:enumeration value="EXTENSOR"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="FilterFieldType">
+ <xs:union memberTypes="tns:FieldEnumeratedType xs:string"/>
+ </xs:simpleType>
+ <xs:complexType name="FilterType">
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="field" type="tns:FilterFieldType"
+ use="required"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:complexType name="QuerySelectType">
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="filter"
+ type="tns:FilterType"/>
+ <xs:any minOccurs="0" namespace="##other" processContents="lax"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="select" type="tns:QuerySelectType"/>
+ </xs:schema>
+ <xs:schema targetNamespace="http://apache.org/locator/extensions">
+ <xs:element name="group" type="xs:string"/>
+ </xs:schema>
+ <xs:schema targetNamespace="http://apache.org/locator/types">
+ <xs:import namespace="http://www.w3.org/2005/08/addressing"/>
+ <xs:import namespace="http://apache.org/locator/query"/>
+ <xs:complexType name="EmptyMessage">
+ <xs:sequence/>
+ </xs:complexType>
+ <xs:complexType name="EndpointIdentity">
+ <xs:annotation>
+ <xs:documentation>Extensible endpoint identity type.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="node_id" type="xs:string"/>
+ <xs:element name="service_qname" type="xs:QName"/>
+ <xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other"
+ processContents="lax"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="registerPeerManager">
+ <xs:annotation>
+ <xs:documentation>Input message element for "registerPeerManager" operation.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="peer_manager" type="wsa:EndpointReferenceType"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="registerPeerManagerResponse">
+ <xs:annotation>
+ <xs:documentation>Output message element for "registerPeerManager" operation.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="peer_manager_reference"
+ type="wsa:EndpointReferenceType"/>
+ <xs:element name="node_id" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="deregisterPeerManager">
+ <xs:annotation>
+ <xs:documentation>Input message element for "deregisterPeerManager" operation.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="node_id" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="deregisterPeerManagerResponse" type="tns:EmptyMessage"/>
+ <xs:element name="registerEndpoint">
+ <xs:annotation>
+ <xs:documentation>Input message element for "registerEndpoint" operation.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="endpoint_id" type="tns:EndpointIdentity"/>
+ <xs:element name="endpoint_reference"
+ type="wsa:EndpointReferenceType"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="registerEndpointResponse" type="tns:EmptyMessage"/>
+ <xs:element name="deregisterEndpoint">
+ <xs:annotation>
+ <xs:documentation>Input message element for "deregisterEndpoint" operation.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="endpoint_id" type="tns:EndpointIdentity"/>
+ <xs:element name="endpoint_reference"
+ type="wsa:EndpointReferenceType"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="deregisterEndpointResponse" type="tns:EmptyMessage"/>
+ <xs:element name="lookupEndpoint">
+ <xs:annotation>
+ <xs:documentation>Input message element for "lookupEndpoint" operation.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="service_qname" type="xs:QName"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="lookupEndpointResponse">
+ <xs:annotation>
+ <xs:documentation>Output message element for "lookupEndpoint" operation.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="service_endpoint"
+ type="wsa:EndpointReferenceType"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="listEndpoints" type="tns:EmptyMessage"/>
+ <xs:element name="listEndpointsResponse">
+ <xs:annotation>
+ <xs:documentation>Output message element for "listEndpoints" operation.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="endpoint">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="endpoint_id"
+ type="tns:EndpointIdentity"/>
+ <xs:element name="endpoint_reference"
+ type="wsa:EndpointReferenceType"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="queryEndpoints">
+ <xs:annotation>
+ <xs:documentation>Input message element for "queryEndpoints" operation.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="query:select"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="queryEndpointsResponse">
+ <xs:annotation>
+ <xs:documentation>Output message element for "queryEndpoints" operation.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="endpoint">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="endpoint_id"
+ type="tns:EndpointIdentity"/>
+ <xs:element name="endpoint_reference"
+ type="wsa:EndpointReferenceType"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:complexType name="EndpointNotExistFaultException">
+ <xs:annotation>
+ <xs:documentation>Fault exception when no endpoint available.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="error" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="EndpointNotExistFault"
+ type="tns:EndpointNotExistFaultException"/>
+ </xs:schema>
+ </types>
+ <message name="registerPeerManagerInput">
+ <part element="tns:registerPeerManager" name="parameters"/>
+ </message>
+ <message name="registerPeerManagerOutput">
+ <part element="tns:registerPeerManagerResponse" name="parameters"/>
+ </message>
+ <message name="deregisterPeerManagerInput">
+ <part element="tns:deregisterPeerManager" name="parameters"/>
+ </message>
+ <message name="deregisterPeerManagerOutput">
+ <part element="tns:deregisterPeerManagerResponse" name="parameters"/>
+ </message>
+ <message name="registerEndpointInput">
+ <part element="tns:registerEndpoint" name="parameters"/>
+ </message>
+ <message name="registerEndpointOutput">
+ <part element="tns:registerEndpointResponse" name="parameters"/>
+ </message>
+ <message name="deregisterEndpointInput">
+ <part element="tns:deregisterEndpoint" name="parameters"/>
+ </message>
+ <message name="deregisterEndpointOutput">
+ <part element="tns:deregisterEndpointResponse" name="parameters"/>
+ </message>
+ <message name="lookupEndpointInput">
+ <part element="tns:lookupEndpoint" name="parameters"/>
+ </message>
+ <message name="lookupEndpointOutput">
+ <part element="tns:lookupEndpointResponse" name="parameters"/>
+ </message>
+ <message name="listEndpointInput">
+ <part element="tns:listEndpoints" name="parameters"/>
+ </message>
+ <message name="listEndpointOutput">
+ <part element="tns:listEndpointsResponse" name="parameters"/>
+ </message>
+ <message name="queryEndpointInput">
+ <part element="tns:queryEndpoints" name="parameters"/>
+ </message>
+ <message name="queryEndpointOutput">
+ <part element="tns:queryEndpointsResponse" name="parameters"/>
+ </message>
+ <message name="endpointNotExistFault">
+ <part element="tns:EndpointNotExistFault" name="parameters"/>
+ </message>
+ <portType name="LocatorService">
+ <operation name="registerPeerManager">
+ <xs:documentation>
+ Register a peer endpoint manager with the locator service. Once registered,
+ the Locator associates the peer_id with the peer endpoint manager.
+ </xs:documentation>
+ <input message="ls:registerPeerManagerInput"/>
+ <output message="ls:registerPeerManagerOutput"/>
+ </operation>
+ <operation name="deregisterPeerManager">
+ <xs:documentation>
+ Deregister a peer endpoint manager with the locator service. Deregistering a
+ peer manager also deregisters all endpoints that were registered by it.
+ </xs:documentation>
+ <input message="ls:deregisterPeerManagerInput"/>
+ <output message="ls:deregisterPeerManagerOutput"/>
+ </operation>
+ <operation name="registerEndpoint">
+ <xs:documentation>
+ Register an endpoint to become available in the locator. Once registered, an
+ endpoint will be returned in response to the "list_endpoints" and "query_endpoints" operations.
+ </xs:documentation>
+ <input message="ls:registerEndpointInput"/>
+ <output message="ls:registerEndpointOutput"/>
+ </operation>
+ <operation name="deregisterEndpoint">
+ <xs:documentation>
+ Deregister an endpoint from the locator. Once deregistered an endpoint will
+ no longer be returned in response to the "list_endpoints" and "query_endpoints operations.
+ </xs:documentation>
+ <input message="ls:deregisterEndpointInput"/>
+ <output message="ls:deregisterEndpointOutput"/>
+ </operation>
+ <operation name="lookupEndpoint">
+ <xs:documentation>Lookup an endpoint from the locator based on a QName.</xs:documentation>
+ <input message="ls:lookupEndpointInput"/>
+ <output message="ls:lookupEndpointOutput"/>
+ <fault message="ls:endpointNotExistFault" name="fault"/>
+ </operation>
+ <operation name="listEndpoints">
+ <xs:documentation>List all endpoints available in the locator.</xs:documentation>
+ <input message="ls:listEndpointInput"/>
+ <output message="ls:listEndpointOutput"/>
+ </operation>
+ <operation name="queryEndpoints">
+ <xs:documentation>List all endpoints available in the locator based on selection filters.</xs:documentation>
+ <input message="ls:queryEndpointInput"/>
+ <output message="ls:queryEndpointOutput"/>
+ </operation>
+ </portType>
+ <binding name="LocatorServiceBinding" type="ls:LocatorService">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="registerPeerManager">
+ <soap:operation/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="deregisterPeerManager">
+ <soap:operation/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="registerEndpoint">
+ <soap:operation/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="deregisterEndpoint">
+ <soap:operation/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="lookupEndpoint">
+ <soap:operation/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ <fault name="fault">
+ <soap:fault name="fault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="listEndpoints">
+ <soap:operation/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="queryEndpoints">
+ <soap:operation/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="LocatorService">
+ <port binding="ls:LocatorServiceBinding" name="LocatorServicePort">
+ <soap:address location="http://localhost:6006/services/LocatorService"/>
+ </port>
+ </service>
+</definitions>