Author: ema
Date: Thu Jan 18 01:04:03 2007
New Revision: 497360
URL: http://svn.apache.org/viewvc?view=rev&rev=497360
Log:
Got HandlerConfigGenerator to work in tools2
Added check service qname in WSDLToJavaContainer
Added more test cases for wsdl2java tool
Modified:
incubator/cxf/trunk/tools2/common/src/main/java/org/apache/cxf/tools/common/ToolContext.java
incubator/cxf/trunk/tools2/common/src/main/java/org/apache/cxf/tools/common/model/JavaInterface.java
incubator/cxf/trunk/tools2/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/Messages.properties
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/customiztion/CustomizationParser.java
incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/HandlerConfigGenerator.java
incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/SEIGenerator.java
incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/FaultProcessor.java
incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/PortTypeProcessor.java
incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ServiceProcessor.java
incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/wsdl11/JAXWSDefinitionBuilder.java
incubator/cxf/trunk/tools2/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenTest.java
incubator/cxf/trunk/tools2/wsdlto/test/src/test/resources/wsdl2java_wsdl/hello_world_wsdl_import.wsdl
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=497360&r1=497359&r2=497360
==============================================================================
---
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
Thu Jan 18 01:04:03 2007
@@ -184,9 +184,8 @@
if (getPackageName() != null) {
return getPackageName();
}
- String pkg = URIParserUtil.parsePackageName(ns, null);
- setPackageName(pkg);
- return pkg;
+ return URIParserUtil.parsePackageName(ns, null);
+
}
}
Modified:
incubator/cxf/trunk/tools2/common/src/main/java/org/apache/cxf/tools/common/model/JavaInterface.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/tools2/common/src/main/java/org/apache/cxf/tools/common/model/JavaInterface.java?view=diff&rev=497360&r1=497359&r2=497360
==============================================================================
---
incubator/cxf/trunk/tools2/common/src/main/java/org/apache/cxf/tools/common/model/JavaInterface.java
(original)
+++
incubator/cxf/trunk/tools2/common/src/main/java/org/apache/cxf/tools/common/model/JavaInterface.java
Thu Jan 18 01:04:03 2007
@@ -21,6 +21,9 @@
import java.util.*;
import javax.jws.soap.SOAPBinding;
+
+import org.w3c.dom.Element;
+
import org.apache.cxf.tools.common.ToolException;
public class JavaInterface implements JavaAnnotatable {
@@ -39,6 +42,7 @@
private final Set<String> imports = new TreeSet<String>();
private String webserviceName;
+ private Element handlerChains;
public JavaInterface() {
}
@@ -186,6 +190,14 @@
public void annotate(Annotator annotator) {
annotator.annotate(this);
+ }
+
+ public Element getHandlerChains() {
+ return this.handlerChains;
+ }
+
+ public void setHandlerChains(Element elem) {
+ this.handlerChains = elem;
}
}
Modified:
incubator/cxf/trunk/tools2/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/Messages.properties
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/tools2/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/Messages.properties?view=diff&rev=497360&r1=497359&r2=497360
==============================================================================
---
incubator/cxf/trunk/tools2/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/Messages.properties
(original)
+++
incubator/cxf/trunk/tools2/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/Messages.properties
Thu Jan 18 01:04:03 2007
@@ -23,5 +23,7 @@
FILE_NOT_EXIST = File does not exist : {0}
NOT_A_FILE = {0} is not a file
PARAMETER_MISSING = Required parameter is missing
+SERVICE_NOT_FOUND = There is no service in wsdl : {0}
+
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=497360&r1=497359&r2=497360
==============================================================================
---
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
Thu Jan 18 01:04:03 2007
@@ -30,12 +30,15 @@
import java.util.List;
import java.util.Properties;
import java.util.Set;
+import java.util.logging.Logger;
+
import javax.wsdl.Definition;
import javax.xml.namespace.QName;
import org.apache.cxf.Bus;
import org.apache.cxf.BusFactoryHelper;
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.ServiceInfo;
import org.apache.cxf.tools.common.AbstractCXFToolContainer;
@@ -57,9 +60,10 @@
import org.apache.cxf.tools.wsdlto.core.FrontEndProfile;
import org.apache.cxf.tools.wsdlto.core.PluginLoader;
import org.apache.cxf.wsdl11.WSDLServiceBuilder;
+
public class WSDLToJavaContainer extends AbstractCXFToolContainer {
-
+ protected static final Logger LOG =
LogUtils.getL7dLogger(WSDLToJavaContainer.class);
private static final String DEFAULT_NS2PACKAGE =
"http://www.w3.org/2005/08/addressing";
String toolName;
@@ -86,88 +90,97 @@
}
@SuppressWarnings("unchecked")
- public void execute(boolean exitOnFinish) throws ToolException {
- try {
- if (getArgument() != null) {
- super.execute(exitOnFinish);
- }
- if (!hasInfoOption()) {
- buildToolContext();
- validate(context);
+ public void execute() throws ToolException {
+ if (!hasInfoOption()) {
+ buildToolContext();
+ validate(context);
+
+ FrontEndProfile frontend = context.get(FrontEndProfile.class);
+
+ if (frontend == null) {
+ String name = WSDLToJava.DEFAULT_FRONTEND_NAME;
+ if (context.get(ToolConstants.CFG_FRONTEND) != null) {
+ name = (String)context.get(ToolConstants.CFG_FRONTEND);
+ }
+ frontend = PluginLoader.getInstance().getFrontEndProfile(name);
+ context.put(FrontEndProfile.class, frontend);
+ }
+
+ DataBindingProfile dataBindingProfile =
context.get(DataBindingProfile.class);
+ if (dataBindingProfile == null) {
+ String name = WSDLToJava.DEFAULT_DATABINDING_NAME;
+ if (context.get(ToolConstants.CFG_DATABINDING) != null) {
+ name = (String)context.get(ToolConstants.CFG_DATABINDING);
+ }
+ dataBindingProfile =
PluginLoader.getInstance().getDataBindingProfile(name);
+ context.put(DataBindingProfile.class, dataBindingProfile);
+ }
+
+ ToolConstants.WSDLVersion version = getWSDLVersion();
+
+ ServiceInfo service = null;
+ String wsdlURL = (String)context.get(ToolConstants.CFG_WSDLURL);
+
+ // Build the ServiceModel from the WSDLModel
+ if (version == ToolConstants.WSDLVersion.WSDL11) {
+ AbstractWSDLBuilder<Definition> builder =
+ (AbstractWSDLBuilder<Definition>)
frontend.getWSDLBuilder();
+ builder.setContext(context);
+ Definition definition = builder.build(wsdlURL);
- FrontEndProfile frontend = context.get(FrontEndProfile.class);
-
- if (frontend == null) {
- String name = WSDLToJava.DEFAULT_FRONTEND_NAME;
- if (context.get(ToolConstants.CFG_FRONTEND) != null) {
- name = (String)context.get(ToolConstants.CFG_FRONTEND);
- }
- frontend =
PluginLoader.getInstance().getFrontEndProfile(name);
- context.put(FrontEndProfile.class, frontend);
- }
-
- DataBindingProfile dataBindingProfile =
context.get(DataBindingProfile.class);
- if (dataBindingProfile == null) {
- String name = WSDLToJava.DEFAULT_DATABINDING_NAME;
- if (context.get(ToolConstants.CFG_DATABINDING) != null) {
- name =
(String)context.get(ToolConstants.CFG_DATABINDING);
- }
- dataBindingProfile =
PluginLoader.getInstance().getDataBindingProfile(name);
- context.put(DataBindingProfile.class, dataBindingProfile);
+ builder.customize();
+ context.put(Definition.class, builder.getWSDLModel());
+ if (context.optionSet(ToolConstants.CFG_VALIDATE_WSDL)) {
+ builder.validate(definition);
}
-
- ToolConstants.WSDLVersion version = getWSDLVersion();
- ServiceInfo service = null;
- String wsdlURL =
(String)context.get(ToolConstants.CFG_WSDLURL);
-
- // Build the ServiceModel from the WSDLModel
- if (version == ToolConstants.WSDLVersion.WSDL11) {
- AbstractWSDLBuilder<Definition> builder =
- (AbstractWSDLBuilder<Definition>)
frontend.getWSDLBuilder();
- builder.setContext(context);
- Definition definition = builder.build(wsdlURL);
-
- builder.customize();
- context.put(Definition.class, builder.getWSDLModel());
- if (context.optionSet(ToolConstants.CFG_VALIDATE_WSDL)) {
- builder.validate(definition);
- }
+ WSDLServiceBuilder serviceBuilder = new
WSDLServiceBuilder(getBus());
+ service = serviceBuilder.buildService(definition,
getServiceQName(definition));
+ context.put(ClassCollector.class, new ClassCollector());
+ } else {
+ // TODO: wsdl2.0 support
+ }
+ context.put(ServiceInfo.class, service);
+ if (context.optionSet(ToolConstants.CFG_VALIDATE_WSDL)) {
+ validate(service);
+ }
+ // Generate types
+
+ generateTypes();
- WSDLServiceBuilder serviceBuilder = new
WSDLServiceBuilder(getBus());
- service = serviceBuilder.buildService(definition,
getServiceQName(definition));
- context.put(ClassCollector.class, new ClassCollector());
- } else {
- // TODO: wsdl2.0 support
- }
- context.put(ServiceInfo.class, service);
- if (context.optionSet(ToolConstants.CFG_VALIDATE_WSDL)) {
- validate(service);
- }
- // Generate types
-
- generateTypes();
+ // Build the JavaModel from the ServiceModel
+ context.put(ServiceInfo.class, service);
+ Processor processor = frontend.getProcessor();
+ processor.setEnvironment(context);
+ processor.process();
- // Build the JavaModel from the ServiceModel
- context.put(ServiceInfo.class, service);
- Processor processor = frontend.getProcessor();
- processor.setEnvironment(context);
- processor.process();
-
- // Generate artifacts
- for (FrontEndGenerator generator : frontend.getGenerators()) {
- generator.generate(context);
- }
+ // Generate artifacts
+ for (FrontEndGenerator generator : frontend.getGenerators()) {
+ generator.generate(context);
+ }
- // Build projects: compile classes and copy resources etc.
- if (context.optionSet(ToolConstants.CFG_COMPILE)) {
- new ClassUtils().compile(context);
- }
+ // Build projects: compile classes and copy resources etc.
+ if (context.optionSet(ToolConstants.CFG_COMPILE)) {
+ new ClassUtils().compile(context);
+ }
- if (context.isExcludeNamespaceEnabled()) {
+ if (context.isExcludeNamespaceEnabled()) {
+ try {
removeExcludeFiles();
+ } catch (IOException e) {
+ throw new ToolException(e);
}
}
+ }
+ }
+
+ public void execute(boolean exitOnFinish) throws ToolException {
+ try {
+ if (getArgument() != null) {
+ super.execute(exitOnFinish);
+ }
+ execute();
+
} catch (ToolException ex) {
if (ex.getCause() instanceof BadUsageException) {
getInstance().printUsageException(toolName,
(BadUsageException)ex.getCause());
@@ -189,6 +202,11 @@
public QName getServiceQName(Definition definition) {
QName qname = context.getQName(ToolConstants.CFG_SERVICENAME);
if (qname == null) {
+ if (definition.getServices().size() == 0) {
+ Message msg = new Message("SERVICE_NOT_FOUND",
+ LOG, new Object[]
{definition.getDocumentBaseURI()});
+ throw new ToolException(msg);
+ }
qname = (QName)
definition.getServices().keySet().iterator().next();
}
if (StringUtils.isEmpty(qname.getNamespaceURI())) {
@@ -279,25 +297,28 @@
String wsdl = (String)env.get(ToolConstants.CFG_WSDLURL);
- File wsdlFile = null;
+ URI wsdlURI = getURI(wsdl);
+ env.put(ToolConstants.CFG_WSDLURL, wsdlURI.toString());
+
+
+ String[] bindingFiles;
try {
- URI wsdlURI = new URI(wsdl);
- if (!wsdlURI.isAbsolute()) {
- File tmpfile = new File("");
- wsdlURI = tmpfile.toURI().resolve(wsdlURI);
- }
- wsdlFile = new File(wsdlURI);
- } catch (URISyntaxException e) {
- wsdlFile = new File(wsdl);
+ bindingFiles = (String[])env.get(ToolConstants.CFG_BINDING);
+ if (bindingFiles == null) {
+ return;
+ }
+ } catch (ClassCastException e) {
+ bindingFiles = new String[1];
+ bindingFiles[0] = (String)env.get(ToolConstants.CFG_BINDING);
}
- if (!wsdlFile.exists()) {
- Message msg = new Message("FILE_NOT_EXIST", LOG, wsdl);
- throw new ToolException(msg);
- } else if (wsdlFile.isDirectory()) {
- Message msg = new Message("NOT_A_FILE", LOG, wsdl);
- throw new ToolException(msg);
+
+ for (int i = 0; i < bindingFiles.length; i++) {
+
+ URI bindingURI = getURI(bindingFiles[i]);
+ bindingFiles[i] = bindingURI.toString();
}
- env.put(ToolConstants.CFG_WSDLURL, wsdlFile.toURI().toString());
+
+ env.put(ToolConstants.CFG_BINDING, bindingFiles);
}
public void setAntProperties(ToolContext env) {
@@ -336,11 +357,7 @@
if (!context.containsKey(ToolConstants.CFG_WSDL_VERSION)) {
context.put(ToolConstants.CFG_WSDL_VERSION, WSDLVersion.WSDL11);
}
-
- /*if (isVerboseOn()) {
- context.put(ToolConstants.CFG_VERBOSE, Boolean.TRUE);
- }*/
-
+
setExcludePackageAndNamespaces(context);
loadDefaultNSPackageMapping(context);
setPackageAndNamespaces(context);
@@ -411,6 +428,29 @@
return true;
}
return false;
+ }
+
+ private URI getURI(String arg) {
+ File tmpFile = null;
+ URI uri = null;
+ try {
+ uri = new URI(arg);
+ if (!uri.isAbsolute()) {
+ File tmpfile = new File("");
+ uri = tmpfile.toURI().resolve(uri);
+ }
+ tmpFile = new File(uri);
+ } catch (URISyntaxException e) {
+ tmpFile = new File(arg);
+ }
+ if (!tmpFile.exists()) {
+ Message msg = new Message("FILE_NOT_EXIST", LOG, tmpFile.toURI());
+ throw new ToolException(msg);
+ } else if (tmpFile.isDirectory()) {
+ Message msg = new Message("NOT_A_FILE", LOG, tmpFile.toURI());
+ throw new ToolException(msg);
+ }
+ return tmpFile.toURI();
}
public void generateTypes() throws ToolException {
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=497360&r1=497359&r2=497360
==============================================================================
---
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
Thu Jan 18 01:04:03 2007
@@ -60,7 +60,7 @@
// For WSDL1.1
private static final Logger LOG =
LogUtils.getL7dLogger(CustomizationParser.class);
private static final XPathFactory XPF = XPathFactory.newInstance();
- private static CustomizationParser parser;
+
private final XPath xpath = XPF.newXPath();
@@ -68,27 +68,17 @@
private final List<Element> jaxwsBindings = new ArrayList<Element>();
private final Set<InputSource> jaxbBindings = new HashSet<InputSource>();
+
private Element handlerChains;
private Element wsdlNode;
private String wsdlURL;
- private CustomizationParser() {
-
- }
-
- public static CustomizationParser getInstance() {
- if (parser == null) {
- parser = new CustomizationParser();
- parser.clean();
- }
- return parser;
- }
-
- public void clean() {
+ public CustomizationParser() {
jaxwsBindings.clear();
jaxbBindings.clear();
}
+
public Element getHandlerChains() {
return this.handlerChains;
}
@@ -258,6 +248,9 @@
if (firstChild == null && cloneNode.getNodeName().indexOf("bindings")
> -1) {
firstChild = node;
+ if (wsdlNode.getAttributeNode("xmls:jaxws") == null) {
+ wsdlNode.setAttribute("xmlns:jaxws",
ToolConstants.JAXWS_BINDINGS.getNamespaceURI());
+ }
}
Element cloneEle = (Element)cloneNode;
@@ -326,13 +319,7 @@
}
private void addBinding(String bindingFile) throws XMLStreamException {
- URI bindingURI = null;
- try {
- bindingURI = new URI(bindingFile);
- } catch (URISyntaxException e2) {
- //ignore
- }
- InputSource is = new InputSource(bindingURI.toString());
+ InputSource is = new InputSource(bindingFile);
XMLStreamReader reader = StAXUtil.createFreshXMLStreamReader(is);
StAXUtil.toStartTag(reader);
@@ -341,7 +328,8 @@
InputStream inputStream;
Element root = null;
try {
- inputStream = new FileInputStream(new File(bindingURI));
+ URI uri = new URI(bindingFile);
+ inputStream = new FileInputStream(new File(uri));
root = DOMUtils.readXml(inputStream).getDocumentElement();
} catch (Exception e1) {
Message msg = new Message("CAN_NOT_READ_AS_ELEMENT", LOG, new
Object[] {bindingFile});
Modified:
incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/HandlerConfigGenerator.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/HandlerConfigGenerator.java?view=diff&rev=497360&r1=497359&r2=497360
==============================================================================
---
incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/HandlerConfigGenerator.java
(original)
+++
incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/HandlerConfigGenerator.java
Thu Jan 18 01:04:03 2007
@@ -19,16 +19,23 @@
package org.apache.cxf.tools.wsdlto.frontend.jaxws.generators;
+import java.io.Writer;
+
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+
+import org.apache.cxf.helpers.XMLUtils;
import org.apache.cxf.tools.common.ToolConstants;
import org.apache.cxf.tools.common.ToolContext;
import org.apache.cxf.tools.common.ToolException;
import org.apache.cxf.tools.common.model.JavaAnnotation;
import org.apache.cxf.tools.common.model.JavaInterface;
+import
org.apache.cxf.tools.wsdlto.frontend.jaxws.processor.internal.ProcessorUtil;
public class HandlerConfigGenerator extends AbstractJAXWSGenerator {
- //private static final String HANDLER_CHAIN_NAME = "";
- // private JavaInterface intf;
+ private static final String HANDLER_CHAIN_NAME = "";
+ private JavaInterface intf;
private JavaAnnotation handlerChainAnnotation;
public HandlerConfigGenerator() {
@@ -48,19 +55,19 @@
}
public void setJavaInterface(JavaInterface javaInterface) {
- // this.intf = javaInterface;
+ this.intf = javaInterface;
}
public void generate(ToolContext penv) throws ToolException {
- //TODO: Enable Handler Chain
+
this.env = penv;
if (passthrough()) {
return;
}
- /* Element e = this.intf.getHandlerChains();
+ Element e = this.intf.getHandlerChains();
NodeList nl =
e.getElementsByTagNameNS(ToolConstants.HANDLER_CHAINS_URI,
ToolConstants.HANDLER_CHAIN);
if (nl.getLength() > 0) {
@@ -71,10 +78,10 @@
generateHandlerChainFile(e,
parseOutputName(this.intf.getPackageName(),
fName,
".xml"));
- }*/
+ }
}
- /*private void generateHandlerChainFile(Element hChains, Writer writer)
throws ToolException {
+ private void generateHandlerChainFile(Element hChains, Writer writer)
throws ToolException {
XMLUtils.generateXMLFile(hChains, writer);
- }*/
+ }
}
Modified:
incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/SEIGenerator.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/SEIGenerator.java?view=diff&rev=497360&r1=497359&r2=497360
==============================================================================
---
incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/SEIGenerator.java
(original)
+++
incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/generators/SEIGenerator.java
Thu Jan 18 01:04:03 2007
@@ -56,8 +56,8 @@
private boolean hasHandlerConfig(JavaInterface intf) {
//TODO : enbale handler chain
- //return intf.getHandlerChains() != null;
- return false;
+ return intf.getHandlerChains() != null;
+
}
public void generate(ToolContext penv) throws ToolException {
@@ -89,6 +89,7 @@
setCommonAttributes();
doWrite(SEI_TEMPLATE, parseOutputName(intf.getPackageName(),
intf.getName()));
+
}
}
}
Modified:
incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/FaultProcessor.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/FaultProcessor.java?view=diff&rev=497360&r1=497359&r2=497360
==============================================================================
---
incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/FaultProcessor.java
(original)
+++
incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/FaultProcessor.java
Thu Jan 18 01:04:03 2007
@@ -67,13 +67,14 @@
JavaModel model = method.getInterface().getJavaModel();
String name =
NameUtil.mangleNameToClassName(faultMessage.getName().getLocalPart());
//Fix issue 305770
+
String namespace = faultMessage.getName().getNamespaceURI();
String packageName = ProcessorUtil.parsePackageName(namespace,
context.mapPackageName(namespace));
while (isNameCollision(packageName, name)) {
name = name + "_Exception";
}
-
+
String fullClassName = packageName + "." + name;
collector.addExceptionClassName(packageName, name, fullClassName);
Modified:
incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/PortTypeProcessor.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/PortTypeProcessor.java?view=diff&rev=497360&r1=497359&r2=497360
==============================================================================
---
incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/PortTypeProcessor.java
(original)
+++
incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/PortTypeProcessor.java
Thu Jan 18 01:04:03 2007
@@ -23,11 +23,15 @@
import java.util.Collection;
import java.util.List;
import java.util.logging.Level;
+
import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
import org.apache.cxf.service.model.InterfaceInfo;
import org.apache.cxf.service.model.OperationInfo;
import org.apache.cxf.service.model.ServiceInfo;
+import org.apache.cxf.tools.common.ToolConstants;
import org.apache.cxf.tools.common.ToolContext;
import org.apache.cxf.tools.common.ToolException;
import org.apache.cxf.tools.common.model.JavaInterface;
@@ -53,6 +57,9 @@
JavaInterface intf = new InterfaceMapper(context).map(interfaceInfo);
intf.setJavaModel(jmodel);
+ Element handler = (Element)context.get(ToolConstants.HANDLER_CHAIN);
+ intf.setHandlerChains(handler);
+
Collection<OperationInfo> operations = interfaceInfo.getOperations();
Modified:
incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ServiceProcessor.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/ServiceProcessor.java?view=diff&rev=497360&r1=497359&r2=497360
==============================================================================
---
incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ServiceProcessor.java
(original)
+++
incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ServiceProcessor.java
Thu Jan 18 01:04:03 2007
@@ -460,7 +460,8 @@
int result = this.noHEADER;
// begin process input
- if (bop.getInput() != null) {
+ if (bop.getInput() != null
+ && bop.getInput().getExtensors(ExtensibilityElement.class) !=
null) {
List<ExtensibilityElement> extensors =
bop.getInput().getExtensors(ExtensibilityElement.class);
if (extensors != null) {
for (ExtensibilityElement ext : extensors) {
@@ -493,7 +494,7 @@
containParts = false;
// process output
- if (bop.getOutput() != null) {
+ if (bop.getOutput() != null &&
bop.getOutput().getExtensors(ExtensibilityElement.class) != null) {
List<ExtensibilityElement> extensors =
bop.getOutput().getExtensors(ExtensibilityElement.class);
if (extensors != null) {
for (ExtensibilityElement ext : extensors) {
Modified:
incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/wsdl11/JAXWSDefinitionBuilder.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/wsdl11/JAXWSDefinitionBuilder.java?view=diff&rev=497360&r1=497359&r2=497360
==============================================================================
---
incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/wsdl11/JAXWSDefinitionBuilder.java
(original)
+++
incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/wsdl11/JAXWSDefinitionBuilder.java
Thu Jan 18 01:04:03 2007
@@ -108,14 +108,13 @@
if (!context.containsKey(ToolConstants.CFG_BINDING)) {
return;
}
- cusParser = CustomizationParser.getInstance();
+ cusParser = new CustomizationParser();
cusParser.parse(context);
jaxbBindings = cusParser.getJaxbBindings();
handlerChain = cusParser.getHandlerChains();
context.put(ToolConstants.NS_JAXB_BINDINGS, jaxbBindings);
context.put(ToolConstants.HANDLER_CHAIN, handlerChain);
-
try {
this.wsdlDefinition = buildCustomizedDefinition();
} catch (Exception e) {
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=497360&r1=497359&r2=497360
==============================================================================
---
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
Thu Jan 18 01:04:03 2007
@@ -22,20 +22,27 @@
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
+
+//import javax.jws.HandlerChain;
+import javax.jws.HandlerChain;
import javax.jws.Oneway;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
+import javax.xml.ws.Holder;
import javax.xml.ws.RequestWrapper;
import javax.xml.ws.ResponseWrapper;
+import javax.xml.ws.WebFault;
import org.apache.cxf.tools.common.ProcessorTestBase;
import org.apache.cxf.tools.common.ToolConstants;
import org.apache.cxf.tools.util.AnnotationUtil;
import org.apache.cxf.tools.wsdlto.WSDLToJavaContainer;
+
+
public class CodeGenTest extends ProcessorTestBase {
private WSDLToJavaContainer processor;
private ClassLoader classLoader;
@@ -59,13 +66,14 @@
public void tearDown() {
super.tearDown();
processor = null;
+ env = null;
}
public void testRPCLit() throws Exception {
env.put(ToolConstants.CFG_WSDLURL,
getLocation("/wsdl2java_wsdl/hello_world_rpc_lit.wsdl"));
processor.setContext(env);
- processor.execute(false);
+ processor.execute();
assertNotNull(output);
@@ -112,7 +120,7 @@
public void testAsynMethod() throws Exception {
env.put(ToolConstants.CFG_WSDLURL,
getLocation("/wsdl2java_wsdl/hello_world_async.wsdl"));
processor.setContext(env);
- processor.execute(true);
+ processor.execute();
assertNotNull(output);
@@ -146,7 +154,7 @@
public void testHelloWorldSoap12() throws Exception {
env.put(ToolConstants.CFG_WSDLURL,
getLocation("/wsdl2java_wsdl/hello_world_soap12.wsdl"));
processor.setContext(env);
- processor.execute(true);
+ processor.execute();
assertNotNull(output);
@@ -203,7 +211,7 @@
public void testHelloWorld() throws Exception {
env.put(ToolConstants.CFG_WSDLURL,
getLocation("/wsdl2java_wsdl/hello_world.wsdl"));
processor.setContext(env);
- processor.execute(true);
+ processor.execute();
assertNotNull(output);
@@ -277,7 +285,7 @@
public void testDocLitHolder() throws Exception {
env.put(ToolConstants.CFG_WSDLURL,
getLocation("/wsdl2java_wsdl/mapping-doc-literal.wsdl"));
processor.setContext(env);
- processor.execute(true);
+ processor.execute();
assertNotNull(output);
File org = new File(output, "org");
assertTrue(org.exists());
@@ -301,7 +309,7 @@
env.put(ToolConstants.CFG_WSDLURL,
getLocation("/wsdl2java_wsdl/hello_world_schema_import.wsdl"));
processor.setContext(env);
- processor.execute(true);
+ processor.execute();
assertNotNull(output);
@@ -337,7 +345,7 @@
env.put(ToolConstants.CFG_WSDLURL,
getLocation("/wsdl2java_wsdl/InvoiceServer.wsdl"));
processor.setContext(env);
- processor.execute(true);
+ processor.execute();
assertNotNull(output);
@@ -370,7 +378,7 @@
env.put(ToolConstants.CFG_WSDLURL,
getLocation("/wsdl2java_wsdl/hello_world_collision.wsdl"));
env.setPackageName("org.apache");
processor.setContext(env);
- processor.execute(true);
+ processor.execute();
assertNotNull(output);
@@ -401,7 +409,7 @@
getLocation("/wsdl2java_wsdl/helloworld-portname_servicename.wsdl"));
env.setPackageName("org.apache");
processor.setContext(env);
- processor.execute(true);
+ processor.execute();
assertNotNull(output);
@@ -422,6 +430,197 @@
clz =
classLoader.loadClass("org.apache.HelloWorldServiceImpl_Service");
}
+ public void testSoapHeader() throws Exception {
+ env.put(ToolConstants.CFG_WSDLURL,
getLocation("/wsdl2java_wsdl/soap_header.wsdl"));
+ env.setPackageName("org.apache");
+ 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[] files = apache.listFiles();
+ assertEquals(12, files.length);
+
+ Class clz = classLoader.loadClass("org.apache.HeaderTester");
+ assertEquals(3, clz.getMethods().length);
+
+ SOAPBinding soapBindingAnno =
AnnotationUtil.getPrivClassAnnotation(clz, SOAPBinding.class);
+ assertEquals("BARE", soapBindingAnno.parameterStyle().name());
+ assertEquals("LITERAL", soapBindingAnno.use().name());
+ assertEquals("DOCUMENT", soapBindingAnno.style().name());
+
+ Class para = classLoader.loadClass("org.apache.InoutHeader");
+
+ Method method = clz.getMethod("inoutHeader", new Class[] {para,
Holder.class});
+
+ soapBindingAnno = AnnotationUtil.getPrivMethodAnnotation(method,
SOAPBinding.class);
+ assertEquals("BARE", soapBindingAnno.parameterStyle().name());
+ WebParam webParamAnno = AnnotationUtil.getWebParam(method,
"SOAPHeaderInfo");
+ assertEquals("INOUT", webParamAnno.mode().name());
+ assertEquals(true, webParamAnno.header());
+ assertEquals("header_info", webParamAnno.partName());
+
+ }
+
+ public void testHolderHeader() throws Exception {
+ env.put(ToolConstants.CFG_WSDLURL,
getLocation("/wsdl2java_wsdl/hello_world_holder.wsdl"));
+ processor.setContext(env);
+ processor.execute();
+
+ Class clz =
classLoader.loadClass("org.apache.hello_world_holder.Greeter");
+ assertEquals(1, clz.getMethods().length);
+
+ SOAPBinding soapBindingAnno =
AnnotationUtil.getPrivClassAnnotation(clz, SOAPBinding.class);
+ assertEquals("BARE", soapBindingAnno.parameterStyle().name());
+ assertEquals("LITERAL", soapBindingAnno.use().name());
+ assertEquals("DOCUMENT", soapBindingAnno.style().name());
+
+ Class para =
classLoader.loadClass("org.apache.hello_world_holder.types.GreetMe");
+ Method method = clz.getMethod("sayHi", new Class[] {Holder.class,
para});
+ assertEquals("GreetMeResponse",
method.getReturnType().getSimpleName());
+
+ WebParam webParamAnno = AnnotationUtil.getWebParam(method, "greetMe");
+ assertEquals(true, webParamAnno.header());
+
+ webParamAnno = AnnotationUtil.getWebParam(method, "sayHi");
+ assertEquals("INOUT", webParamAnno.mode().name());
+
+ }
+
+
+ public void testWSAddress() throws Exception {
+ env.addNamespacePackageMap("http://apache.org/hello_world_soap_http",
"ws.address");
+ env.put(ToolConstants.CFG_BINDING,
getLocation("/wsdl2java_wsdl/ws_address_binding.wsdl"));
+ env.put(ToolConstants.CFG_WSDLURL,
getLocation("/wsdl2java_wsdl/hello_world_addr.wsdl"));
+
+ processor.setContext(env);
+ processor.execute();
+
+ assertNotNull(output);
+
+ File ws = new File(output, "ws");
+ assertTrue(ws.exists());
+ File address = new File(ws, "address");
+ assertTrue(address.exists());
+
+ File[] files = address.listFiles();
+ assertEquals(5, files.length);
+ File handlerConfig = new File(address, "Greeter_handler.xml");
+ assertTrue(handlerConfig.exists());
+
+ Class clz = classLoader.loadClass("ws.address.Greeter");
+ HandlerChain handlerChainAnno =
AnnotationUtil.getPrivClassAnnotation(clz, HandlerChain.class);
+ assertEquals("Greeter_handler.xml", handlerChainAnno.file());
+ assertNotNull("Handler chain xml generate fail!",
+
classLoader.getResource("ws/address/Greeter_handler.xml"));
+ }
+
+
+
+ public void testSupportXMLBindingBare() throws Exception {
+ env.put(ToolConstants.CFG_WSDLURL,
getLocation("/wsdl2java_wsdl/xml_http_bare.wsdl"));
+ processor.setContext(env);
+ processor.execute();
+ }
+
+
+ public void testSupportXMLBindingWrapped() throws Exception {
+ env.put(ToolConstants.CFG_WSDLURL,
getLocation("/wsdl2java_wsdl/xml_http_wrapped.wsdl"));
+ processor.setContext(env);
+ processor.execute();
+ }
+
+
+ public void testRouterWSDL() throws Exception {
+ env.put(ToolConstants.CFG_WSDLURL,
getLocation("/wsdl2java_wsdl/router.wsdl"));
+ processor.setContext(env);
+ processor.execute();
+ }
+
+ public void testVoidInOutMethod() throws Exception {
+ env.put(ToolConstants.CFG_WSDLURL,
getLocation("/wsdl2java_wsdl/interoptestdoclit.wsdl"));
+ processor.setContext(env);
+ processor.execute(true);
+
+ assertNotNull(output);
+
+ File org = new File(output, "org");
+ assertTrue(org.exists());
+ File soapinterop = new File(org, "soapinterop");
+ assertTrue(soapinterop.exists());
+ File wsdlinterop = new File(soapinterop, "wsdlinteroptestdoclit");
+ assertTrue(wsdlinterop.exists());
+ File xsd = new File(soapinterop, "xsd");
+ assertTrue(xsd.exists());
+ File[] files = wsdlinterop.listFiles();
+ assertEquals(3, files.length);
+ files = xsd.listFiles();
+ assertEquals(4, files.length);
+
+ Class clz = classLoader
+
.loadClass("org.soapinterop.wsdlinteroptestdoclit.WSDLInteropTestDocLitPortType");
+
+ Method method = clz.getMethod("echoVoid", new Class[] {});
+ WebMethod webMethodAnno =
AnnotationUtil.getPrivMethodAnnotation(method, WebMethod.class);
+ assertEquals(method.getName() + "()" + " Annotation :
WebMethod.operationName ", "echoVoid",
+ webMethodAnno.operationName());
+ }
+
+ public void testWsdlImport() throws Exception {
+ env.put(ToolConstants.CFG_WSDLURL,
getLocation("/wsdl2java_wsdl/hello_world_wsdl_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 helloWorld = new File(apache, "hello_world");
+ assertTrue(helloWorld.exists());
+
+ Class clz = classLoader.loadClass("org.apache.hello_world.Greeter");
+ assertEquals(3, 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);
+ assertEquals("org.apache.hello_world.messages.PingMeFault",
method.getExceptionTypes()[0]
+ .getCanonicalName());
+ }
+
+ public void testWebFault() throws Exception {
+ env.put(ToolConstants.CFG_WSDLURL,
getLocation("/wsdl2java_wsdl/InvoiceServer-issue305570.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());
+
+ Class clz =
classLoader.loadClass("org.apache.invoiceserver.NoSuchCustomerFault");
+ WebFault webFault = AnnotationUtil.getPrivClassAnnotation(clz,
WebFault.class);
+ assertEquals("WebFault annotaion name attribute error",
"NoSuchCustomer", webFault.name());
+
+ }
+
+
+
private String getLocation(String wsdlFile) {
return this.getClass().getResource(wsdlFile).getFile();
}
Modified:
incubator/cxf/trunk/tools2/wsdlto/test/src/test/resources/wsdl2java_wsdl/hello_world_wsdl_import.wsdl
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/tools2/wsdlto/test/src/test/resources/wsdl2java_wsdl/hello_world_wsdl_import.wsdl?view=diff&rev=497360&r1=497359&r2=497360
==============================================================================
---
incubator/cxf/trunk/tools2/wsdlto/test/src/test/resources/wsdl2java_wsdl/hello_world_wsdl_import.wsdl
(original)
+++
incubator/cxf/trunk/tools2/wsdlto/test/src/test/resources/wsdl2java_wsdl/hello_world_wsdl_import.wsdl
Thu Jan 18 01:04:03 2007
@@ -47,4 +47,49 @@
<wsdl:fault name="pingMeFault" message="x1:pingMeFault"/>
</wsdl:operation>
</wsdl:portType>
+
+ <wsdl:binding name="Greeter_SOAPBinding" type="tns:Greeter">
+ <soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
+ <wsdl:operation name="sayHi">
+ <soap:operation style="document"/>
+ <wsdl:input>
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="greetMe">
+ <soap:operation style="document"/>
+ <wsdl:input>
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="pingMe">
+ <soap:operation style="document"/>
+ <wsdl:input>
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal"/>
+ </wsdl:output>
+ <wsdl:fault name="pingMeFault">
+ <soap:fault name="pingMeFault" use="literal"/>
+ </wsdl:fault>
+
+ </wsdl:operation>
+
+ </wsdl:binding>
+
+
+ <wsdl:service name="SOAPService">
+ <wsdl:port name="SoapPort" binding="tns:Greeter_SOAPBinding">
+ <soap:address
location="http://localhost:9000/SoapContext/SoapPort"/>
+ <wswa:UsingAddressing
xmlns:wswa="http://www.w3.org/2005/08/addressing/wsdl"/>
+ </wsdl:port>
+ </wsdl:service>
</wsdl:definitions>