You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by em...@apache.org on 2007/01/04 09:29:18 UTC
svn commit: r492445 [2/2] - in /incubator/cxf/trunk:
rt/core/src/main/java/org/apache/cxf/wsdl11/ tools2/wsdlto/
tools2/wsdlto/core/
tools2/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/
tools2/wsdlto/core/src/main/java/org/apache/cxf/tools/wsd...
Modified: incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/OperationProcessor.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/OperationProcessor.java?view=diff&rev=492445&r1=492444&r2=492445
==============================================================================
--- incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/OperationProcessor.java (original)
+++ incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/OperationProcessor.java Thu Jan 4 00:29:16 2007
@@ -35,6 +35,7 @@
import org.apache.cxf.tools.common.model.JavaMethod;
import org.apache.cxf.tools.common.model.JavaParameter;
import org.apache.cxf.tools.common.model.JavaReturn;
+import org.apache.cxf.tools.wsdlto.frontend.jaxws.customiztion.JAXWSBinding;
import org.apache.cxf.tools.wsdlto.frontend.jaxws.processor.internal.annotator.WebMethodAnnotator;
import org.apache.cxf.tools.wsdlto.frontend.jaxws.processor.internal.mapper.MethodMapper;
@@ -55,9 +56,9 @@
method.setInterface(intf);
// TODO: add customizing
- // method.setJAXWSBinding(customizing(intf, operation));
+
- processMethod(method, operation);
+ processMethod(method, operation, null);
Collection<FaultInfo> faults = operation.getFaults();
FaultProcessor faultProcessor = new FaultProcessor(context);
@@ -67,7 +68,8 @@
}
@SuppressWarnings("unchecked")
- public void processMethod(JavaMethod method, OperationInfo operation) throws ToolException {
+ public void processMethod(JavaMethod method, OperationInfo operation,
+ JAXWSBinding globalBinding) throws ToolException {
MessageInfo inputMessage = operation.getInput();
MessageInfo outputMessage = operation.getOutput();
@@ -95,7 +97,15 @@
annotator.addWebResultAnnotation(method);
annotator.addSOAPBindingAnnotation(method);
- if (!method.isOneWay() && method.getJAXWSBinding().isEnableAsyncMapping()) {
+
+ JAXWSBinding opBinding = (JAXWSBinding)operation.getExtensor(JAXWSBinding.class);
+
+ boolean enableAsync = false;
+ if (globalBinding != null && globalBinding.isEnableAsyncMapping()
+ || opBinding != null && opBinding.isEnableAsyncMapping()) {
+ enableAsync = true;
+ }
+ if (!method.isOneWay() && enableAsync) {
addAsyncMethod(method);
}
}
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=492445&r1=492444&r2=492445
==============================================================================
--- 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 Thu Jan 4 00:29:16 2007
@@ -27,10 +27,9 @@
import javax.wsdl.OperationType;
import javax.xml.namespace.QName;
-import com.sun.codemodel.JType;
-import com.sun.tools.xjc.api.Property;
import org.apache.cxf.common.util.StringUtils;
+import org.apache.cxf.jaxb.JAXBUtils;
import org.apache.cxf.service.model.MessageInfo;
import org.apache.cxf.service.model.MessagePartInfo;
import org.apache.cxf.tools.common.ToolContext;
@@ -137,12 +136,12 @@
}
MessagePartInfo part = inputParts.iterator().next();
- List<? extends Property> block = dataBinding.getBlock(part);
- if (block == null || block.size() == 0) {
+ List<QName> wrappedElements = ProcessorUtil.getWrappedElement(context, part.getElementQName());
+ if (wrappedElements == null || wrappedElements.size() == 0) {
return;
}
- for (Property item : block) {
- addParameter(method, getParameterFromProperty(item, JavaType.Style.IN, part));
+ for (QName item : wrappedElements) {
+ addParameter(method, getParameterFromQName(item, JavaType.Style.IN, part));
}
}
@@ -205,28 +204,29 @@
MessagePartInfo inputPart = inputParts.size() > 0 ? inputParts.iterator().next() : null;
MessagePartInfo outputPart = outputParts.size() > 0 ? outputParts.iterator().next() : null;
- List<? extends Property> inputBlock = null;
- List<? extends Property> outputBlock = null;
+ List<QName> inputWrapElement = null;
+ List<QName> outputWrapElement = null;
if (inputPart != null) {
- inputBlock = dataBinding.getBlock(inputPart);
+ inputWrapElement = ProcessorUtil.getWrappedElement(context, inputPart.getElementQName());
+ //dataBinding.getBlock(inputPart);
}
if (outputPart != null) {
- outputBlock = dataBinding.getBlock(outputPart);
+ outputWrapElement = ProcessorUtil.getWrappedElement(context, outputPart.getElementQName());
}
- if (outputBlock == null || outputBlock.size() == 0) {
+ if (inputWrapElement == null || outputWrapElement.size() == 0) {
addVoidReturn(method);
return;
}
method.setReturn(null);
- if (outputBlock.size() == 1 && inputBlock != null) {
- Property outElement = outputBlock.iterator().next();
+ if (inputWrapElement.size() == 1 && outputWrapElement != null) {
+ QName outElement = outputWrapElement.iterator().next();
boolean sameWrapperChild = false;
- for (Property inElement : inputBlock) {
+ for (QName inElement : inputWrapElement) {
if (isSameWrapperChild(inElement, outElement)) {
- addParameter(method, getParameterFromProperty(outElement, JavaType.Style.INOUT,
+ addParameter(method, getParameterFromQName(outElement, JavaType.Style.INOUT,
outputPart));
sameWrapperChild = true;
if (method.getReturn() == null) {
@@ -236,26 +236,26 @@
}
}
if (!sameWrapperChild) {
- method.setReturn(getReturnFromProperty(outElement, outputPart));
+ method.setReturn(getReturnFromQName(outElement, outputPart));
return;
}
}
- for (Property outElement : outputBlock) {
- if ("return".equals(outElement.elementName().getLocalPart())) {
+ for (QName outElement : outputWrapElement) {
+ if ("return".equals(outElement.getLocalPart())) {
if (method.getReturn() != null) {
org.apache.cxf.common.i18n.Message msg =
new org.apache.cxf.common.i18n.Message("WRAPPER_STYLE_TWO_RETURN_TYPES", LOG);
throw new ToolException(msg);
}
- method.setReturn(getReturnFromProperty(outElement, outputPart));
+ method.setReturn(getReturnFromQName(outElement, outputPart));
continue;
}
boolean sameWrapperChild = false;
- if (inputBlock != null) {
- for (Property inElement : inputBlock) {
+ if (inputWrapElement != null) {
+ for (QName inElement : inputWrapElement) {
if (isSameWrapperChild(inElement, outElement)) {
- addParameter(method, getParameterFromProperty(outElement, JavaType.Style.INOUT,
+ addParameter(method, getParameterFromQName(outElement, JavaType.Style.INOUT,
outputPart));
sameWrapperChild = true;
break;
@@ -263,7 +263,7 @@
}
}
if (!sameWrapperChild) {
- addParameter(method, getParameterFromProperty(outElement, JavaType.Style.OUT, outputPart));
+ addParameter(method, getParameterFromQName(outElement, JavaType.Style.OUT, outputPart));
}
}
if (method.getReturn() == null) {
@@ -276,33 +276,72 @@
method.setReturn(returnType);
}
- private boolean isSameWrapperChild(Property in, Property out) {
- if (!in.name().equals(out.name())) {
+ private boolean isSameWrapperChild(QName in, QName out) {
+ if (!in.getLocalPart().equals(out.getLocalPart())) {
return false;
}
- if (!in.type().fullName().equals(out.type().fullName())) {
- return false;
- }
- if (!in.elementName().getNamespaceURI().equals(out.elementName().getNamespaceURI())) {
+
+ if (!in.getNamespaceURI().equals(out.getNamespaceURI())) {
return false;
}
return true;
}
- private JavaParameter getParameterFromProperty(Property property,
- JavaType.Style style,
- MessagePartInfo part) {
- return ParameterMapper.map(property, style, part);
+ private JavaParameter getParameterFromQName(QName element, JavaType.Style style, MessagePartInfo part) {
+
+ String fullJavaName = "";
+ String simpleJavaName = "";
+
+ fullJavaName = this.dataBinding.getType(element);
+ simpleJavaName = fullJavaName;
+
+ int index = fullJavaName.lastIndexOf(".");
+
+ if (index > -1) {
+ simpleJavaName = fullJavaName.substring(index);
+ }
+
+ String targetNamespace = ProcessorUtil.resolvePartNamespace(part);
+ if (targetNamespace == null) {
+ targetNamespace = element.getNamespaceURI();
+ }
+ JavaParameter parameter = new JavaParameter(simpleJavaName, fullJavaName, targetNamespace);
+ parameter.setStyle(style);
+ parameter.setQName(element);
+ if (style == JavaType.Style.OUT || style == JavaType.Style.INOUT) {
+ parameter.setHolder(true);
+ parameter.setHolderName(javax.xml.ws.Holder.class.getName());
+ String holderClass = fullJavaName;
+ if (JAXBUtils.holderClass(fullJavaName) != null) {
+ holderClass = JAXBUtils.holderClass(fullJavaName).getName();
+ }
+ parameter.setHolderClass(holderClass);
+ }
+ return parameter;
+
}
- private JavaReturn getReturnFromProperty(Property property, MessagePartInfo part) {
- JType t = property.type();
+ private JavaReturn getReturnFromQName(QName element, MessagePartInfo part) {
+ String fullJavaName = "";
+ String simpleJavaName = "";
+
+
+
+ fullJavaName = this.dataBinding.getType(element);
+ simpleJavaName = fullJavaName;
+
+ int index = fullJavaName.lastIndexOf(".");
+
+ if (index > -1) {
+ simpleJavaName = fullJavaName.substring(index);
+ }
+
String targetNamespace = ProcessorUtil.resolvePartNamespace(part);
if (targetNamespace == null) {
- targetNamespace = property.elementName().getNamespaceURI();
+ targetNamespace = element.getNamespaceURI();
}
- JavaReturn returnType = new JavaReturn(property.name(), t.fullName(), targetNamespace);
- returnType.setQName(property.elementName());
+ JavaReturn returnType = new JavaReturn(simpleJavaName, fullJavaName , targetNamespace);
+ returnType.setQName(element);
returnType.setStyle(JavaType.Style.OUT);
return returnType;
}
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=492445&r1=492444&r2=492445
==============================================================================
--- 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 4 00:29:16 2007
@@ -78,17 +78,5 @@
return false;
}
- // TODO: add cusomizing
- // private JAXWSBinding customizing(JavaModel jmodel, PortType portType) {
- // String portTypeName = portType.getQName().getLocalPart();
- // JAXWSBinding bindings = CustomizationParser.getInstance().getPortTypeExtension(portTypeName);
- // if (bindings != null) {
- // return bindings;
- // } else if (jmodel.getJAXWSBinding() != null) {
- // return jmodel.getJAXWSBinding();
- // } else {
- // // TBD: There is no extensibilityelement in port type
- // return new JAXWSBinding();
- // }
- // }
+
}
Modified: incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ProcessorUtil.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/ProcessorUtil.java?view=diff&rev=492445&r1=492444&r2=492445
==============================================================================
--- incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ProcessorUtil.java (original)
+++ incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ProcessorUtil.java Thu Jan 4 00:29:16 2007
@@ -23,7 +23,11 @@
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
import java.util.StringTokenizer;
+
import javax.xml.namespace.QName;
import org.w3c.dom.DOMException;
@@ -37,11 +41,16 @@
import org.apache.cxf.helpers.JavaUtils;
import org.apache.cxf.jaxb.JAXBUtils;
import org.apache.cxf.service.model.MessagePartInfo;
-
+import org.apache.cxf.service.model.ServiceInfo;
import org.apache.cxf.tools.common.ToolContext;
import org.apache.cxf.tools.util.ClassCollector;
import org.apache.cxf.tools.util.URIParserUtil;
import org.apache.cxf.tools.wsdlto.core.DataBindingProfile;
+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.XmlSchemaObjectCollection;
+import org.apache.ws.commons.schema.XmlSchemaSequence;
public final class ProcessorUtil {
private static final String KEYWORDS_PREFIX = "_";
@@ -63,7 +72,7 @@
public static String getType(MessagePartInfo part, ToolContext context, boolean fullname) {
DataBindingProfile dataBinding = context.get(DataBindingProfile.class);
- String type = dataBinding.getType(getElementName(part), fullname);
+ String type = dataBinding.getType(getElementName(part));
if (type == null) {
type = resolvePartType(part);
}
@@ -107,7 +116,7 @@
return resolvePartType(part);
}
}
- String name = dataBinding.getType(getElementName(part), fullName);
+ String name = dataBinding.getType(getElementName(part));
if (name == null) {
return resolvePartType(part);
}
@@ -146,8 +155,9 @@
if (location.startsWith("http://")) {
return location;
} else {
- return resolvePath(new File(location).getCanonicalPath());
+ return resolvePath(new File(location).getAbsolutePath());
}
+
}
public static URL getWSDLURL(String location) throws Exception {
@@ -199,7 +209,7 @@
//
// the non-wrapper style will get the type info from the part directly
//
- public static String getFullClzName(MessagePartInfo part, ToolContext context, boolean boxify) {
+ public static String getFullClzName(MessagePartInfo part, ToolContext context, boolean primitiveType) {
DataBindingProfile dataBinding = context.get(DataBindingProfile.class);
String jtype = null;
QName xmlTypeName = getElementName(part);
@@ -209,24 +219,19 @@
// if not found, find in the generated class
- if (boxify && dataBinding != null) {
- jtype = dataBinding.getJavaType(xmlTypeName, true);
+ if (!primitiveType && dataBinding != null) {
+ jtype = dataBinding.getType(xmlTypeName);
}
- if (boxify && dataBinding == null) {
+ if (!primitiveType && dataBinding == null) {
Class holderClass = JAXBUtils.holderClass(xmlTypeName.getLocalPart());
jtype = holderClass == null ? null : holderClass.getName();
if (jtype == null) {
jtype = JAXBUtils.builtInTypeToJavaType(xmlTypeName.getLocalPart());
- }
-
+ }
}
- if (!boxify && dataBinding != null) {
- jtype = dataBinding.getJavaType(xmlTypeName, false);
- }
-
- if (!boxify && dataBinding == null) {
+ if (primitiveType) {
jtype = JAXBUtils.builtInTypeToJavaType(xmlTypeName.getLocalPart());
}
@@ -339,5 +344,29 @@
}
return clone;
}
+
+ public static List<QName> getWrappedElement(ToolContext context, QName partElement) {
+ List<QName> qnames = new ArrayList<QName>();
+
+ ServiceInfo serviceInfo = (ServiceInfo)context.get(ServiceInfo.class);
+ XmlSchemaCollection schema = (XmlSchemaCollection)serviceInfo
+ .getProperty("WSDLServiceBuilder.SCHEMA");
+ XmlSchemaElement elementByName = schema.getElementByQName(partElement);
+
+ XmlSchemaComplexType type = (XmlSchemaComplexType)elementByName.getSchemaType();
+
+ XmlSchemaSequence seq = (XmlSchemaSequence)type.getParticle();
+
+ XmlSchemaObjectCollection items = seq.getItems();
+
+ Iterator ite = items.getIterator();
+
+ while (ite.hasNext()) {
+ XmlSchemaElement subElement = (XmlSchemaElement)ite.next();
+ qnames.add(subElement.getQName());
+ }
+ return qnames;
+ }
+
}
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=492445&r1=492444&r2=492445
==============================================================================
--- 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 4 00:29:16 2007
@@ -27,13 +27,13 @@
import javax.wsdl.extensions.ExtensibilityElement;
import javax.wsdl.extensions.http.HTTPBinding;
import javax.wsdl.extensions.mime.MIMEMultipartRelated;
-
import javax.xml.namespace.QName;
import org.apache.cxf.service.model.BindingInfo;
import org.apache.cxf.service.model.BindingMessageInfo;
import org.apache.cxf.service.model.BindingOperationInfo;
import org.apache.cxf.service.model.EndpointInfo;
+import org.apache.cxf.service.model.InterfaceInfo;
import org.apache.cxf.service.model.MessageInfo;
import org.apache.cxf.service.model.MessagePartInfo;
import org.apache.cxf.service.model.OperationInfo;
@@ -53,10 +53,10 @@
import org.apache.cxf.tools.common.model.JavaPort;
import org.apache.cxf.tools.common.model.JavaServiceClass;
import org.apache.cxf.tools.common.model.JavaType;
-
import org.apache.cxf.tools.util.ClassCollector;
import org.apache.cxf.tools.util.ProcessorUtil;
import org.apache.cxf.tools.util.SOAPBindingUtil;
+import org.apache.cxf.tools.wsdlto.frontend.jaxws.customiztion.JAXWSBinding;
public class ServiceProcessor extends AbstractProcessor {
@@ -76,6 +76,8 @@
private Object bindingObj;
private ServiceInfo service;
+
+ private JAXWSBinding jaxwsBinding = new JAXWSBinding();
public ServiceProcessor(ToolContext penv) {
super(penv);
@@ -106,11 +108,38 @@
while (isNameCollision(packageName, name)) {
name = name + "_Service";
}
-
+
+ //customizing
+ JAXWSBinding serviceBinding = service.getExtensor(JAXWSBinding.class);
+
+ //TODO : Handle service customized class
+ if (serviceBinding != null) {
+ if (serviceBinding.getPackage() != null) {
+ jaxwsBinding.setPackage(serviceBinding.getPackage());
+ }
+
+ if (serviceBinding.isEnableAsyncMapping()) {
+ jaxwsBinding.setEnableAsyncMapping(true);
+ }
+
+ if (serviceBinding.isEnableMime()) {
+ jaxwsBinding.setEnableMime(true);
+ }
+
+ if (serviceBinding.isEnableWrapperStyle()) {
+ jaxwsBinding.setEnableWrapperStyle(true);
+ }
+ }
+
sclz.setName(name);
sclz.setServiceName(service.getName().getLocalPart());
sclz.setNamespace(namespace);
- sclz.setPackageName(packageName);
+
+ if (jaxwsBinding.getPackage() != null) {
+ sclz.setPackageName(jaxwsBinding.getPackage());
+ } else {
+ sclz.setPackageName(packageName);
+ }
Collection<EndpointInfo> ports = service.getEndpoints();
@@ -132,10 +161,27 @@
String packageName = ProcessorUtil.parsePackageName(namespace, context.mapPackageName(namespace));
jport.setPackageName(packageName);
+ InterfaceInfo infInfo = binding.getInterface();
+
String portType = binding.getInterface().getName().getLocalPart();
jport.setPortType(portType);
- jport.setInterfaceClass(ProcessorUtil.mangleNameToClassName(portType));
-
+
+ JAXWSBinding infBinding = infInfo.getExtensor(JAXWSBinding.class);
+
+ if (!infBinding.isEnableAsyncMapping()) {
+ jaxwsBinding.setEnableAsyncMapping(false);
+ }
+
+ if (!infBinding.isEnableWrapperStyle()) {
+ jaxwsBinding.setEnableWrapperStyle(false);
+ }
+
+ if (infBinding.getJaxwsClass() != null && infBinding.getJaxwsClass().getClassName() != null) {
+ String className = ProcessorUtil.mangleNameToClassName(infBinding.getJaxwsClass().getClassName());
+ jport.setInterfaceClass(className);
+ } else {
+ jport.setInterfaceClass(ProcessorUtil.mangleNameToClassName(portType));
+ }
bindingType = getBindingType(binding);
@@ -162,14 +208,27 @@
private void processOperation(JavaModel model, BindingOperationInfo bop, BindingInfo binding)
throws ToolException {
+
+ JAXWSBinding bind = binding.getExtensor(JAXWSBinding.class);
+
+ if (bind != null && !bind.isEnableMime()) {
+ jaxwsBinding.setEnableMime(false);
+ }
+
+ JAXWSBinding bopBinding = bop.getExtensor(JAXWSBinding.class);
+
+ if (bopBinding != null && bopBinding.isEnableMime()) {
+ jaxwsBinding.setEnableMime(false);
+ if (bopBinding.getJaxwsPara() != null) {
+ jaxwsBinding.setJaxwsPara(bopBinding.getJaxwsPara());
+ }
+ }
+
String portType = ProcessorUtil
.mangleNameToClassName(binding.getInterface().getName().getLocalPart());
- JavaInterface jf = model.getInterfaces().get(portType);
- // TODO: extend other bindings
-
- // TODO: add customize here
- //doCustomizeBinding(model, jf, binding);
+ JavaInterface jf = model.getInterfaces().get(portType);
+
if (isSoapBinding()) {
SoapBinding soapBinding = (SoapBinding)bindingObj;
if (SOAPBindingUtil.getSoapStyle(soapBinding.getStyle()) == null) {
@@ -217,16 +276,28 @@
int headerType = isNonWrappable(bop);
- if (jm.isWrapperStyle() && headerType > this.noHEADER) {
+ OperationInfo opinfo = bop.getOperationInfo();
+
+ JAXWSBinding opBinding = (JAXWSBinding)opinfo.getExtensor(JAXWSBinding.class);
+
+ if (opBinding != null && !opBinding.isEnableWrapperStyle()) {
+ jaxwsBinding.setEnableWrapperStyle(false);
+ if (!opBinding.isEnableAsyncMapping()) {
+ jaxwsBinding.setEnableAsyncMapping(false);
+ }
+ }
+
+ if (jm.isWrapperStyle() && headerType > this.noHEADER
+ || !jaxwsBinding.isEnableWrapperStyle()) {
// changed wrapper style
jm.setWrapperStyle(false);
- processor.processMethod(jm, bop.getOperationInfo());
+ processor.processMethod(jm, bop.getOperationInfo(), jaxwsBinding);
jm.getAnnotationMap().remove("ResponseWrapper");
jm.getAnnotationMap().remove("RequestWrapper");
} else {
- processor.processMethod(jm, bop.getOperationInfo());
+ processor.processMethod(jm, bop.getOperationInfo(), jaxwsBinding);
}
@@ -475,43 +546,45 @@
}
return null;
}
+
+ //private void cutomizing(JavaModel jmodel, ji)
// TODO: enable customize
-// private void doCustomizeBinding(JavaModel jmodel, JavaInterface ji, Binding binding) {
-// JAXWSBinding bindingExt = null;
-// List extElements = binding.getExtensibilityElements();
-// if (extElements.size() > 0) {
-// Iterator iterator = extElements.iterator();
-// while (iterator.hasNext()) {
-// Object obj = iterator.next();
-// if (obj instanceof JAXWSBinding) {
-// bindingExt = (JAXWSBinding)obj;
-// ji.setBindingExt(bindingExt);
-// return;
-// }
-// }
-// }
-// String portTypeName = binding.getPortType().getQName().getLocalPart();
-// bindingExt = CustomizationParser.getInstance().getPortTypeExtension(portTypeName);
-// if (bindingExt != null) {
-// if (!bindingExt.isSetMimeEnable() && jmodel.getJAXWSBinding().isSetMimeEnable()
-// && jmodel.getJAXWSBinding().isEnableMime()) {
-// bindingExt.setSetMimeEnable(true);
-// bindingExt.setEnableMime(true);
-// }
-// } else if (jmodel.getJAXWSBinding() != null) {
-// bindingExt = new JAXWSBinding();
-// if (jmodel.getJAXWSBinding().isSetMimeEnable() && jmodel.getJAXWSBinding().isEnableMime()) {
-// bindingExt.setSetMimeEnable(true);
-// bindingExt.setEnableMime(true);
-// }
-// } else {
-// // TBD: There is no extensibilityelement in port type
-// bindingExt = new JAXWSBinding();
-// }
+ /* private void doCustomizeBinding(JavaModel jmodel, JavaInterface ji, Binding binding) {
+ JAXWSBinding bindingExt = null;
+ List extElements = binding.getExtensibilityElements();
+ if (extElements.size() > 0) {
+ Iterator iterator = extElements.iterator();
+ while (iterator.hasNext()) {
+ Object obj = iterator.next();
+ if (obj instanceof JAXWSBinding) {
+ bindingExt = (JAXWSBinding)obj;
+ ji.setBindingExt(bindingExt);
+ return;
+ }
+ }
+ }
+ String portTypeName = binding.getPortType().getQName().getLocalPart();
+ bindingExt = CustomizationParser.getInstance().getPortTypeExtension(portTypeName);
+ if (bindingExt != null) {
+ if (!bindingExt.isSetMimeEnable() && jmodel.getJAXWSBinding().isSetMimeEnable()
+ && jmodel.getJAXWSBinding().isEnableMime()) {
+ bindingExt.setSetMimeEnable(true);
+ bindingExt.setEnableMime(true);
+ }
+ } else if (jmodel.getJAXWSBinding() != null) {
+ bindingExt = new JAXWSBinding();
+ if (jmodel.getJAXWSBinding().isSetMimeEnable() && jmodel.getJAXWSBinding().isEnableMime()) {
+ bindingExt.setSetMimeEnable(true);
+ bindingExt.setEnableMime(true);
+ }
+ } else {
+ // TBD: There is no extensibilityelement in port type
+ bindingExt = new JAXWSBinding();
+ }
-// ji.setBindingExt(bindingExt);
-// }
+ ji.setBindingExt(bindingExt);
+ }
// private void doCustomizeOperation(JavaInterface ji, JavaMethod jm, BindingOperation bo) {
// JAXWSBinding bindingExt = null;
@@ -549,7 +622,7 @@
// }
// jm.setBindingExt(bindingExt);
// }
-
+*/
public enum BindingType {
HTTPBinding, SOAPBinding, XMLBinding
}
Modified: incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/mapper/ParameterMapper.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/mapper/ParameterMapper.java?view=diff&rev=492445&r1=492444&r2=492445
==============================================================================
--- incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/mapper/ParameterMapper.java (original)
+++ incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/mapper/ParameterMapper.java Thu Jan 4 00:29:16 2007
@@ -19,9 +19,6 @@
package org.apache.cxf.tools.wsdlto.frontend.jaxws.processor.internal.mapper;
-import com.sun.codemodel.JType;
-import com.sun.tools.xjc.api.Property;
-
import org.apache.cxf.service.model.MessagePartInfo;
import org.apache.cxf.tools.common.ToolContext;
import org.apache.cxf.tools.common.model.JavaParameter;
@@ -54,22 +51,5 @@
return parameter;
}
- public static JavaParameter map(Property property,
- JavaType.Style style,
- MessagePartInfo part) {
- JType t = property.type();
- String targetNamespace = ProcessorUtil.resolvePartNamespace(part);
- if (targetNamespace == null) {
- targetNamespace = property.elementName().getNamespaceURI();
- }
- JavaParameter parameter = new JavaParameter(property.name(), t.fullName(), targetNamespace);
- parameter.setStyle(style);
- parameter.setQName(property.elementName());
- if (style == JavaType.Style.OUT || style == JavaType.Style.INOUT) {
- parameter.setHolder(true);
- parameter.setHolderName(javax.xml.ws.Holder.class.getName());
- parameter.setHolderClass(t.boxify().fullName());
- }
- return parameter;
- }
+
}
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=492445&r1=492444&r2=492445
==============================================================================
--- 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 4 00:29:16 2007
@@ -20,23 +20,32 @@
package org.apache.cxf.tools.wsdlto.frontend.jaxws.wsdl11;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
import java.util.Iterator;
-
+import java.util.Set;
import java.util.logging.Logger;
import javax.jws.soap.SOAPBinding;
import javax.wsdl.Binding;
import javax.wsdl.BindingOperation;
-
import javax.wsdl.Definition;
import javax.wsdl.Operation;
-
import javax.wsdl.PortType;
import javax.wsdl.extensions.ExtensionRegistry;
import javax.wsdl.xml.WSDLReader;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+import org.xml.sax.InputSource;
+
import org.apache.cxf.common.i18n.Message;
import org.apache.cxf.common.logging.LogUtils;
+import org.apache.cxf.helpers.DOMUtils;
import org.apache.cxf.tools.common.ToolConstants;
import org.apache.cxf.tools.common.ToolException;
import org.apache.cxf.tools.util.SOAPBindingUtil;
@@ -53,9 +62,19 @@
protected static final Logger LOG = LogUtils.getL7dLogger(JAXWSDefinitionBuilder.class);
protected CustomizationParser cusParser;
- private WSDLReader reader;
-
+ private WSDLDefinitionBuilder builder;
+ private WSDLReader wsdlReader;
+ private Definition wsdlDefinition;
+
+ private Set<InputSource> jaxbBindings;
+ private Element handlerChain;
+
public JAXWSDefinitionBuilder() {
+ builder = new WSDLDefinitionBuilder();
+ ExtensionRegistry registry = builder.getExtenstionRegistry();
+ registerJaxwsExtension(registry);
+ wsdlReader = builder.getWSDLReader();
+ wsdlReader.setExtensionRegistry(registry);
}
public Definition build() {
@@ -64,19 +83,10 @@
}
public Definition build(String wsdlURL) {
- WSDLDefinitionBuilder builder = new WSDLDefinitionBuilder();
- ExtensionRegistry registry = builder.getExtenstionRegistry();
-
- registerJaxwsExtension(registry);
- Definition wsdlDefinition = builder.build(wsdlURL);
-
- reader = builder.getWSDLReader();
-
+ wsdlDefinition = builder.build(wsdlURL);
context.put(ToolConstants.WSDL_DEFINITION, wsdlDefinition);
context.put(ToolConstants.IMPORTED_DEFINITION, builder.getImportedDefinitions());
-
- checkSupported(wsdlDefinition);
-
+ checkSupported(wsdlDefinition);
return wsdlDefinition;
}
@@ -90,7 +100,6 @@
private void registerJAXWSBinding(ExtensionRegistry registry, Class clz) {
registry.registerSerializer(clz, ToolConstants.JAXWS_BINDINGS, new JAXWSBindingSerializer());
-
registry.registerDeserializer(clz, ToolConstants.JAXWS_BINDINGS, new JAXWSBindingDeserializer());
registry.mapExtensionTypes(clz, ToolConstants.JAXWS_BINDINGS, JAXWSBinding.class);
}
@@ -98,6 +107,8 @@
public void customize() {
cusParser = CustomizationParser.getInstance();
cusParser.parse(context);
+ jaxbBindings = cusParser.getJaxbBindings();
+ handlerChain = cusParser.getHandlerChains();
}
private void checkSupported(Definition def) throws ToolException {
@@ -140,15 +151,28 @@
return false;
}
- public CustomizationParser getCustomizationParer() {
+ private CustomizationParser getCustomizationParer() {
return cusParser;
}
- public Definition getCustomizedDefinition() {
+ public Definition getDefinition() {
try {
-
- Definition def = reader.readWSDL(cusParser.getCustomizedWSDLElement().getBaseURI(), cusParser
- .getCustomizedWSDLElement());
+ if (this.wsdlDefinition == null) {
+ this.build();
+ }
+
+ if (!context.containsKey(ToolConstants.CFG_BINDING)) {
+ return this.wsdlDefinition;
+ }
+
+ File file = File.createTempFile("customzied", ".wsdl");
+ OutputStream outs = new FileOutputStream(file);
+ DOMUtils.writeXml(getCustomizationParer().getCustomizedWSDLElement(), outs);
+ InputStream ins = new FileInputStream(new File(file.toURI()));
+ Document wsdlDoc = DOMUtils.readXml(ins);
+ Definition def = wsdlReader.readWSDL(this.wsdlDefinition.getDocumentBaseURI(),
+ wsdlDoc);
+ file.delete();
return def;
} catch (Exception we) {
Message msg = new Message("FAIL_TO_CREATE_WSDL_DEFINITION", LOG, cusParser
@@ -156,9 +180,20 @@
throw new RuntimeException(msg.toString(), we);
}
}
+ public WSDLReader getWSDLReader() {
+ return wsdlReader;
+ }
public boolean validate(Definition def) throws ToolException {
return new WSDL11Validator(def, context).isValid();
+ }
+
+ public Set<InputSource> getJaxbBindings() {
+ return this.jaxbBindings;
+ }
+
+ public Element getHandlerChain() {
+ return this.handlerChain;
}
}
Modified: incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/test/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/DummyDataBinding.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/test/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/DummyDataBinding.java?view=diff&rev=492445&r1=492444&r2=492445
==============================================================================
--- incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/test/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/DummyDataBinding.java (original)
+++ incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/test/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/DummyDataBinding.java Thu Jan 4 00:29:16 2007
@@ -29,12 +29,16 @@
import org.apache.cxf.tools.common.ToolException;
public class DummyDataBinding implements org.apache.cxf.tools.wsdlto.core.DataBindingProfile {
+ public void initialize(ToolContext context) {
- public void generate(ToolContext context) throws ToolException {
+ }
+
+ public void generate() throws ToolException {
+
}
- public String getType(QName qn, boolean fullName) {
+ public String getType(QName qn) {
return null;
}
Modified: incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/test/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/JAXWSProfileTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/test/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/JAXWSProfileTest.java?view=diff&rev=492445&r1=492444&r2=492445
==============================================================================
--- incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/test/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/JAXWSProfileTest.java (original)
+++ incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/test/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/JAXWSProfileTest.java Thu Jan 4 00:29:16 2007
@@ -19,18 +19,14 @@
package org.apache.cxf.tools.wsdlto.frontend.jaxws;
-import java.util.List;
import java.util.Map;
import junit.framework.TestCase;
-import org.apache.cxf.tools.common.FrontEndGenerator;
import org.apache.cxf.tools.common.Processor;
import org.apache.cxf.tools.plugin.FrontEnd;
import org.apache.cxf.tools.plugin.Generator;
import org.apache.cxf.tools.plugin.Plugin;
-import org.apache.cxf.tools.wsdl2java.frontend.jaxws.AntGenerator;
-import org.apache.cxf.tools.wsdl2java.frontend.jaxws.ImplGenerator;
import org.apache.cxf.tools.wsdl2java.processor.WSDLToJavaProcessor;
import org.apache.cxf.tools.wsdlto.core.AbstractWSDLBuilder;
import org.apache.cxf.tools.wsdlto.core.FrontEndProfile;
@@ -66,13 +62,13 @@
FrontEndProfile profile = loader.getFrontEndProfile("jaxws");
assertNotNull(profile);
-
- List<FrontEndGenerator> generators = profile.getGenerators();
+ //TODO: After generator completed ,umcomment these linses
+ /*List<FrontEndGenerator> generators = profile.getGenerators();
assertNotNull(generators);
assertEquals(2, generators.size());
assertTrue(generators.get(0) instanceof AntGenerator);
assertTrue(generators.get(1) instanceof ImplGenerator);
-
+ */
Processor processor = profile.getProcessor();
assertNotNull(processor);
assertTrue(processor instanceof WSDLToJavaProcessor);
Modified: incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/test/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ProcessorUtilTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/test/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ProcessorUtilTest.java?view=diff&rev=492445&r1=492444&r2=492445
==============================================================================
--- incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/test/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ProcessorUtilTest.java (original)
+++ incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/test/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ProcessorUtilTest.java Thu Jan 4 00:29:16 2007
@@ -32,12 +32,12 @@
ProcessorUtil.getAbsolutePath("http://cxf.org"));
if (isWindows()) {
- assertEquals("C:/org/cxf",
+
+ assertEquals("c:/org/cxf",
ProcessorUtil.getAbsolutePath("c:\\org\\cxf"));
- assertEquals("C:/org/cxf",
+
+ assertEquals("c:/org/cxf",
ProcessorUtil.getAbsolutePath("c:/org/cxf"));
- assertEquals("C:/org/cxf",
- ProcessorUtil.getAbsolutePath("/org/cxf"));
}
}
}
Modified: incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/test/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/wsdl11/JAXWSDefinitionBuilderTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/test/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/wsdl11/JAXWSDefinitionBuilderTest.java?view=diff&rev=492445&r1=492444&r2=492445
==============================================================================
--- incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/test/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/wsdl11/JAXWSDefinitionBuilderTest.java (original)
+++ incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/test/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/wsdl11/JAXWSDefinitionBuilderTest.java Thu Jan 4 00:29:16 2007
@@ -19,28 +19,27 @@
package org.apache.cxf.tools.wsdlto.frontend.jaxws.wsdl11;
-import java.io.*;
-import java.net.*;
-import java.util.*;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
import javax.wsdl.Binding;
import javax.wsdl.BindingInput;
import javax.wsdl.BindingOperation;
import javax.wsdl.Definition;
+import javax.wsdl.Operation;
import javax.wsdl.Port;
+import javax.wsdl.PortType;
import javax.wsdl.Service;
+import javax.wsdl.extensions.ExtensibilityElement;
import javax.wsdl.extensions.http.HTTPAddress;
-import javax.wsdl.extensions.schema.Schema;
import javax.xml.namespace.QName;
-import org.w3c.dom.Element;
-
import junit.framework.TestCase;
import org.apache.cxf.bindings.xformat.XMLBindingMessageFormat;
import org.apache.cxf.tools.common.ToolConstants;
import org.apache.cxf.tools.common.ToolContext;
-import org.apache.cxf.tools.wsdlto.frontend.jaxws.customiztion.CustomizationParser;
import org.apache.cxf.tools.wsdlto.frontend.jaxws.customiztion.JAXWSBinding;
import org.apache.cxf.transports.jms.JMSAddressPolicyType;
@@ -120,45 +119,40 @@
env.put(ToolConstants.CFG_BINDING, getClass().getResource("./binding2.xml").toString());
JAXWSDefinitionBuilder builder = new JAXWSDefinitionBuilder();
builder.setContext(env);
- Definition def = builder.build();
builder.customize();
- CustomizationParser parser = builder.getCustomizationParer();
-
- JAXWSBinding jaxwsBinding = parser.getDefinitionBindingMap().get(def.getTargetNamespace());
- assertNotNull("JAXWSBinding for definition is null", jaxwsBinding);
- assertEquals("Package customiztion for definition is not correct", "com.foo", jaxwsBinding
- .getPackage());
-
- QName qn = new QName(def.getTargetNamespace(), "Greeter");
- jaxwsBinding = parser.getPortTypeBindingMap().get(qn);
- assertNotNull("JAXWSBinding for PortType is null", jaxwsBinding);
- assertTrue("AsynMapping customiztion for PortType is not true", jaxwsBinding.isEnableAsyncMapping());
-
- qn = new QName(def.getTargetNamespace(), "greetMeOneWay");
- jaxwsBinding = parser.getOperationBindingMap().get(qn);
-
- assertNotNull("JAXWSBinding for Operation is null", jaxwsBinding);
- assertEquals("Method name customiztion for operation is not correct", "echoMeOneWay", jaxwsBinding
- .getMethodName());
-
- qn = new QName(def.getTargetNamespace(), "in");
- jaxwsBinding = parser.getPartBindingMap().get(qn);
-
- assertEquals("Parameter name customiztion for part is not correct", "num1", jaxwsBinding
- .getJaxwsPara().getName());
-
- Definition cusDef = builder.getCustomizedDefinition();
-
- Schema schema = (Schema)cusDef.getTypes().getExtensibilityElements().iterator().next();
-
- Element appinfoElement = (Element)schema.getElement()
- .getElementsByTagNameNS(ToolConstants.SCHEMA_URI, "appinfo").item(0);
-
- assertNotNull("Appinfo element does not be append to schema element", appinfoElement);
-
- assertNotNull("typesafeEnum element does not be append to schema element", appinfoElement
- .getElementsByTagName("jaxb:typesafeEnumClass").item(0));
+ Definition customizedDef = builder.getDefinition();
+ List defExtensionList = customizedDef.getExtensibilityElements();
+ Iterator ite = defExtensionList.iterator();
+
+ while (ite.hasNext()) {
+ ExtensibilityElement extElement = (ExtensibilityElement)ite.next();
+ JAXWSBinding binding = (JAXWSBinding)extElement;
+ assertEquals("Customized package name does not been parsered", "com.foo", binding.getPackage());
+ assertEquals("Customized enableAsync does not parsered", true, binding.isEnableAsyncMapping());
+ }
+
+ PortType portType = customizedDef.getPortType(new QName("http://apache.org/hello_world_soap_http",
+ "Greeter"));
+
+ List portTypeList = portType.getExtensibilityElements();
+ JAXWSBinding binding = (JAXWSBinding)portTypeList.get(0);
+
+ assertEquals("Customized enable EnableWrapperStyle name does not been parsered", true, binding
+ .isEnableWrapperStyle());
+
+ List opList = portType.getOperations();
+ Operation operation = (Operation)opList.get(0);
+ List extList = operation.getExtensibilityElements();
+ binding = (JAXWSBinding)extList.get(0);
+ assertEquals("Customized method name does not parsered", "echoMeOneWay", binding.getMethodName());
+
+
+ assertEquals("Customized parameter element name does not parsered", "tns:number1", binding
+ .getJaxwsPara().getElementName());
+ assertEquals("Customized parameter message name does not parsered", "greetMeOneWayRequest", binding
+ .getJaxwsPara().getMessageName());
+ assertEquals("customized parameter name does not parsered", "num1", binding.getJaxwsPara().getName());
}
}
Modified: incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/test/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/wsdl11/binding2.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/test/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/wsdl11/binding2.xml?view=diff&rev=492445&r1=492444&r2=492445
==============================================================================
--- incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/test/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/wsdl11/binding2.xml (original)
+++ incubator/cxf/trunk/tools2/wsdlto/frontend/jaxws/src/test/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/wsdl11/binding2.xml Thu Jan 4 00:29:16 2007
@@ -23,13 +23,14 @@
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<jaxws:package name="com.foo" />
+ <jaxws:enableAsyncMapping>true</jaxws:enableAsyncMapping>
<jaxws:bindings node="wsdl:portType[@name='Greeter']">
- <jaxws:enableAsyncMapping>true</jaxws:enableAsyncMapping>
- <jaxws:parameter part="wsdl:message[@name='greetMeOneWayRequest']/wsdl:part[@name='in']" element="tns:number1" name="num1"/>
+ <jaxws:enableAsyncMapping>true</jaxws:enableAsyncMapping>
<jaxws:bindings
node="wsdl:operation[@name='greetMeOneWay']">
<jaxws:method name="echoMeOneWay" />
+ <jaxws:parameter part="wsdl:message[@name='greetMeOneWayRequest']/wsdl:part[@name='in']" childElementName="tns:number1" name="num1"/>
</jaxws:bindings>
</jaxws:bindings>
Modified: incubator/cxf/trunk/tools2/wsdlto/pom.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools2/wsdlto/pom.xml?view=diff&rev=492445&r1=492444&r2=492445
==============================================================================
--- incubator/cxf/trunk/tools2/wsdlto/pom.xml (original)
+++ incubator/cxf/trunk/tools2/wsdlto/pom.xml Thu Jan 4 00:29:16 2007
@@ -39,5 +39,6 @@
<module>core</module>
<module>frontend/jaxws</module>
<module>databinding/jaxb</module>
+ <module>test</module>
</modules>
</project>
Added: incubator/cxf/trunk/tools2/wsdlto/test/pom.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools2/wsdlto/test/pom.xml?view=auto&rev=492445
==============================================================================
--- incubator/cxf/trunk/tools2/wsdlto/test/pom.xml (added)
+++ incubator/cxf/trunk/tools2/wsdlto/test/pom.xml Thu Jan 4 00:29:16 2007
@@ -0,0 +1,157 @@
+<!--
+ 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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-tools2-wsdlto-test</artifactId>
+ <packaging>jar</packaging>
+ <version>2.0-incubator-RC-SNAPSHOT</version>
+ <name>Apache CXF Command Line Tools2 WSDLTo Test</name>
+ <url>http://cwiki.apache.org/confluence/display/CXF/Index</url>
+
+ <parent>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-tools2-wsdlto</artifactId>
+ <version>2.0-incubator-RC-SNAPSHOT</version>
+ </parent>
+
+ <properties>
+ <topDirectoryLocation>../../</topDirectoryLocation>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-tools-common</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-common-schemas</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-tools-validator</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.easymock</groupId>
+ <artifactId>easymockclassextension</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>asm</groupId>
+ <artifactId>asm</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>velocity</groupId>
+ <artifactId>velocity</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>wsdl4j</groupId>
+ <artifactId>wsdl4j</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.sun.xml.bind</groupId>
+ <artifactId>jaxb-xjc</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.sun.xml.bind</groupId>
+ <artifactId>jaxb-impl</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.xml.ws</groupId>
+ <artifactId>jaxws-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.xml.soap</groupId>
+ <artifactId>saaj-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>woodstox</groupId>
+ <artifactId>wstx-asl</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-common-utilities</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-common-schemas</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+<!--
+ <dependency>
+ <groupId>org.codehaus.castor</groupId>
+ <artifactId>castor</artifactId>
+ <version>1.0.4</version>
+ </dependency>
+-->
+
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-tools2-wsdlto-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-tools-wsdl2java</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-tools2-wsdlto-databinding-jaxb</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-tools2-wsdlto-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+</project>
Propchange: incubator/cxf/trunk/tools2/wsdlto/test/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/cxf/trunk/tools2/wsdlto/test/pom.xml
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange: incubator/cxf/trunk/tools2/wsdlto/test/pom.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml
Added: incubator/cxf/trunk/tools2/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/WSDLToJavaTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools2/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/WSDLToJavaTest.java?view=auto&rev=492445
==============================================================================
--- incubator/cxf/trunk/tools2/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/WSDLToJavaTest.java (added)
+++ incubator/cxf/trunk/tools2/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/WSDLToJavaTest.java Thu Jan 4 00:29:16 2007
@@ -0,0 +1,65 @@
+/**
+ * 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.
+ */
+
+package org.apache.cxf.tools.wsdlto;
+
+import java.io.*;
+import java.util.*;
+
+import junit.framework.TestCase;
+
+public class WSDLToJavaTest extends TestCase {
+
+
+ public void testGetFrontEndName() throws Exception {
+ WSDLToJava w2j = new WSDLToJava();
+ assertEquals("jaxws", w2j.getFrontEndName(new String[]{"-frontend", "jaxws"}));
+ assertEquals("jaxws", w2j.getFrontEndName(new String[]{"-fe", "jaxws"}));
+ assertNull(w2j.getFrontEndName(new String[]{"-frontend"}));
+ assertNull(w2j.getFrontEndName(new String[]{"-fe"}));
+ assertNull(w2j.getFrontEndName(new String[]{"nothing"}));
+ assertNull(w2j.getFrontEndName(null));
+ }
+
+ public void testGetDataBindingName() throws Exception {
+ WSDLToJava w2j = new WSDLToJava();
+ assertEquals("jaxb", w2j.getDataBindingName(new String[]{"-databinding", "jaxb"}));
+ assertEquals("jaxb", w2j.getDataBindingName(new String[]{"-db", "jaxb"}));
+ assertNull(w2j.getDataBindingName(new String[]{"-databinding"}));
+ assertNull(w2j.getDataBindingName(new String[]{"-db"}));
+ assertNull(w2j.getDataBindingName(new String[]{"nothing"}));
+ assertNull(w2j.getDataBindingName(null));
+ assertNull(w2j.getDataBindingName(new String[]{"-frontend", "jaxws"}));
+ }
+
+ public void testIsVerbose() {
+ WSDLToJava w2j = new WSDLToJava();
+ w2j.setArguments(new String[]{"-V"});
+ assertTrue(w2j.isVerbose());
+ w2j = new WSDLToJava();
+ w2j.setArguments(new String[]{"-verbose"});
+ assertTrue(w2j.isVerbose());
+ w2j = new WSDLToJava();
+ w2j.setArguments(new String[]{"none"});
+ assertFalse(w2j.isVerbose());
+ }
+
+
+
+}
Propchange: incubator/cxf/trunk/tools2/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/WSDLToJavaTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/cxf/trunk/tools2/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/WSDLToJavaTest.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/cxf/trunk/tools2/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/WSDLVersionTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools2/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/WSDLVersionTest.java?view=auto&rev=492445
==============================================================================
--- incubator/cxf/trunk/tools2/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/WSDLVersionTest.java (added)
+++ incubator/cxf/trunk/tools2/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/WSDLVersionTest.java Thu Jan 4 00:29:16 2007
@@ -0,0 +1,33 @@
+/**
+ * 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.
+ */
+
+package org.apache.cxf.tools.wsdlto;
+
+import junit.framework.TestCase;
+
+import org.apache.cxf.tools.common.ToolConstants;
+
+public class WSDLVersionTest extends TestCase {
+
+ public void testWSDLVersion() {
+ assertEquals(ToolConstants.WSDLVersion.WSDL11, WSDLVersion.getVersion("1.1"));
+ assertEquals(ToolConstants.WSDLVersion.WSDL20, WSDLVersion.getVersion("2.0"));
+ assertEquals(ToolConstants.WSDLVersion.UNKNOWN, WSDLVersion.getVersion("3.0"));
+ }
+}
Propchange: incubator/cxf/trunk/tools2/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/WSDLVersionTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/cxf/trunk/tools2/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/WSDLVersionTest.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/cxf/trunk/tools2/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/core/PluginLoaderTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools2/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/core/PluginLoaderTest.java?view=auto&rev=492445
==============================================================================
--- incubator/cxf/trunk/tools2/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/core/PluginLoaderTest.java (added)
+++ incubator/cxf/trunk/tools2/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/core/PluginLoaderTest.java Thu Jan 4 00:29:16 2007
@@ -0,0 +1,107 @@
+/**
+ * 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.
+ */
+
+package org.apache.cxf.tools.wsdlto.core;
+
+import java.util.Map;
+
+import junit.framework.TestCase;
+
+import org.apache.cxf.common.i18n.Message;
+import org.apache.cxf.tools.common.ToolException;
+import org.apache.cxf.tools.plugin.DataBinding;
+import org.apache.cxf.tools.plugin.FrontEnd;
+import org.apache.cxf.tools.plugin.Generator;
+import org.apache.cxf.tools.plugin.Plugin;
+
+public class PluginLoaderTest extends TestCase {
+
+ public void testLoadPlugins() throws Exception {
+ PluginLoader loader = PluginLoader.getInstance();
+ assertEquals(1, loader.getPlugins().size());
+ assertEquals("default", getPlugin(loader, 0).getName());
+
+ loader.loadPlugin("/org/apache/cxf/tools/wsdlto/core/plugin.xml");
+ assertEquals(2, loader.getPlugins().size());
+ Plugin plugin = getPlugin(loader, 1);
+ assertEquals("test", plugin.getName());
+ assertEquals("2.0", plugin.getVersion());
+ assertEquals("apache cxf", plugin.getProvider());
+
+ Map<String, FrontEnd> frontends = loader.getFrontEnds();
+ assertNotNull(frontends);
+ assertEquals(1, frontends.size());
+
+ FrontEnd frontend = getFrontEnd(frontends, 0);
+ assertEquals("jaxws", frontend.getName());
+ assertEquals("org.apache.cxf.tools.wsdlto.frontend.jaxws", frontend.getPackage());
+ assertEquals("JAXWSProfile", frontend.getProfile());
+ assertNotNull(frontend.getGenerators());
+ assertNotNull(frontend.getGenerators().getGenerator());
+ assertEquals(2, frontend.getGenerators().getGenerator().size());
+ assertEquals("AntGenerator", getGenerator(frontend, 0).getName());
+ assertEquals("ImplGenerator", getGenerator(frontend, 1).getName());
+
+ assertEquals("org.apache.cxf.tools.wsdlto.core", frontend.getContainer().getPackage());
+ assertEquals("DummyContainer", frontend.getContainer().getName());
+ assertEquals("dummy.toolspec", frontend.getContainer().getToolspec());
+
+ try {
+ loader.getFrontEndProfile("jaxws");
+ fail("JaxWs frontend not loaded yet");
+ } catch (ToolException e) {
+ assertEquals(getLogMessage("FRONTEND_PROFILE_LOAD_FAIL", frontend.getPackage()
+ + "."
+ + frontend.getProfile()),
+ e.getMessage());
+ }
+
+ Map<String, DataBinding> databindings = loader.getDataBindings();
+ assertNotNull(databindings);
+ assertEquals(1, databindings.size());
+
+ DataBinding databinding = getDataBinding(databindings, 0);
+ assertEquals("jaxb", databinding.getName());
+ assertEquals("org.apache.cxf.tools.wsdlto.databinding.jaxb", databinding.getPackage());
+ assertEquals("JAXBBindingGenerator", databinding.getProfile());
+ }
+
+ protected String getLogMessage(String key, Object...params) {
+ return new Message(key, PluginLoader.LOG, params).toString();
+ }
+
+ protected Generator getGenerator(FrontEnd frontend, int index) {
+ return frontend.getGenerators().getGenerator().get(index);
+ }
+
+ protected FrontEnd getFrontEnd(Map<String, FrontEnd> frontends, int index) {
+ int size = frontends.size();
+ return frontends.values().toArray(new FrontEnd[size])[index];
+ }
+
+ protected DataBinding getDataBinding(Map<String, DataBinding> databindings, int index) {
+ int size = databindings.size();
+ return databindings.values().toArray(new DataBinding[size])[index];
+ }
+
+ protected Plugin getPlugin(PluginLoader loader, int index) {
+ int size = loader.getPlugins().size();
+ return loader.getPlugins().values().toArray(new Plugin[size])[index];
+ }
+}
Propchange: incubator/cxf/trunk/tools2/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/core/PluginLoaderTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/cxf/trunk/tools2/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/core/PluginLoaderTest.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/cxf/trunk/tools2/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/core/plugin.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools2/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/core/plugin.xml?view=auto&rev=492445
==============================================================================
--- incubator/cxf/trunk/tools2/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/core/plugin.xml (added)
+++ incubator/cxf/trunk/tools2/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/core/plugin.xml Thu Jan 4 00:29:16 2007
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<plugin name="test" version="2.0" provider="apache cxf" xmlns="http://cxf.apache.org/tools/plugin">
+ <frontend name="jaxws" package="org.apache.cxf.tools.wsdlto.frontend.jaxws" profile="JAXWSProfile">
+ <container name="DummyContainer" toolspec="dummy.toolspec" package="org.apache.cxf.tools.wsdlto.core"/>
+ <generators package="org.apache.cxf.tools.wsdl2java.frontend.jaxws">
+ <generator name="AntGenerator"/>
+ <generator name="ImplGenerator"/>
+ </generators>
+ </frontend>
+ <databinding name="jaxb" package="org.apache.cxf.tools.wsdlto.databinding.jaxb" profile="JAXBBindingGenerator"/>
+</plugin>
\ No newline at end of file
Propchange: incubator/cxf/trunk/tools2/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/core/plugin.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/cxf/trunk/tools2/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/core/plugin.xml
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange: incubator/cxf/trunk/tools2/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/core/plugin.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml