You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by am...@apache.org on 2007/08/21 13:06:43 UTC
svn commit: r568060 - in /webservices/axis2/trunk/java/modules:
codegen/src/org/apache/axis2/wsdl/codegen/
codegen/src/org/apache/axis2/wsdl/codegen/emitter/
codegen/src/org/apache/axis2/wsdl/codegen/emitter/jaxws/
codegen/src/org/apache/axis2/wsdl/cod...
Author: amilas
Date: Tue Aug 21 04:06:31 2007
New Revision: 568060
URL: http://svn.apache.org/viewvc?rev=568060&view=rev
Log:
commited the patch for Axis2-3135
Modified:
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/codegen-config.properties
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/jaxws/AnnotationElementBuilder.java
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/jaxws/JAXWS20Emitter.java
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/jaxws/JAXWSEmitter.java
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/SchemaUnwrapperExtension.java
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/JaxwsExceptionTemplate.xsl
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/JaxwsServiceClassTemplate.xsl
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/JaxwsServiceEndpointInterfaceTemplate.xsl
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/JavaUtils.java
Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/codegen-config.properties
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/codegen-config.properties?rev=568060&r1=568059&r2=568060&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/codegen-config.properties (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/codegen-config.properties Tue Aug 21 04:06:31 2007
@@ -137,12 +137,12 @@
# file extension for generated source files from this language
c.filename.extension=c
-jax-ws.callback.template=org.apache.axis2.wsdl.codegen.writer.CallbackHandlerWriter,/org/apache/axis2/wsdl/template/java/CallbackHandlerTemplate.xsl
jax-ws.exception.template=org.apache.axis2.wsdl.codegen.writer.ExceptionWriter,/org/apache/axis2/wsdl/template/java/JaxwsExceptionTemplate.xsl
+jax-ws.interface.impl.template=org.apache.axis2.wsdl.codegen.writer.InterfaceImplementationWriter,/org/apache/axis2/wsdl/template/java/JaxwsServiceEndpointInterfaceImplTemplate.xsl
jax-ws.skeleton.template=org.apache.axis2.wsdl.codegen.writer.SkeletonWriter,/org/apache/axis2/wsdl/template/java/JaxwsServiceClassTemplate.xsl
jax-ws.skeleton.interface.template=org.apache.axis2.wsdl.codegen.writer.SkeletonInterfaceWriter,/org/apache/axis2/wsdl/template/java/JaxwsServiceEndpointInterfaceTemplate.xsl
jax-ws.testclass.template=org.apache.axis2.wsdl.codegen.writer.TestClassWriter,/org/apache/axis2/wsdl/template/java/TestClassTemplate.xsl
-jax-ws.service.template=org.apache.axis2.wsdl.codegen.writer.ServiceXMLWriter,/org/apache/axis2/wsdl/template/general/ServiceXMLTemplate.xsl
+jax-ws.service.template=org.apache.axis2.wsdl.codegen.writer.ServiceXMLWriter,/org/apache/axis2/wsdl/template/java/JaxwsServiceXMLTemplate.xsl
jax-ws.antbuild.jaxbri.template=org.apache.axis2.wsdl.codegen.writer.AntBuildWriter,/org/apache/axis2/wsdl/template/general/jaxbriAntBuildTemplate.xsl
jax-ws.antbuild.none.template=org.apache.axis2.wsdl.codegen.writer.AntBuildWriter,/org/apache/axis2/wsdl/template/general/defaultAntBuildTemplate.xsl
# file extension for generated files from this language
Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java?rev=568060&r1=568059&r2=568060&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java Tue Aug 21 04:06:31 2007
@@ -207,6 +207,9 @@
protected static final String TEST_SRC_DIR_NAME = "test";
+ protected boolean useHolderClass_jaxws = false;
+ protected boolean wrapped_jaxws = false;
+
/**
* default constructor - builds
@@ -2160,12 +2163,25 @@
addAttribute(doc, "namespace", axisOperation.getName().getNamespaceURI(), methodElement);
addAttribute(doc, "style", (String) getBindingPropertyFromOperation(
WSDLConstants.WSDL_1_1_STYLE, axisOperation.getName()), methodElement);
- addAttribute(doc, "parameterstyle", (axisOperation.getParameter(
- Constants.UNWRAPPED_KEY) != null)?"WRAPPPED":"BARE", methodElement);
+
+ String messageExchangePattern = axisOperation.getMessageExchangePattern();
+
+ //Jaxws Specific
+ if("jax-ws".equals(codeGenConfiguration.getOutputLanguage())){
+ boolean wrapped = false;
+ if (WSDLUtil.isInputPresentForMEP(messageExchangePattern)) {
+ AxisMessage msg = axisOperation.getMessage(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
+ if(msg.getParameter(Constants.UNWRAPPED_KEY) != null){
+ wrapped = true;
+ }
+ }
+ addAttribute(doc, "parameterstyle", (wrapped)?"WRAPPPED":"BARE", methodElement);
+ }
+
+
addAttribute(doc, "dbsupportname",
endpointName + localPart + DATABINDING_SUPPORTER_NAME_SUFFIX,
methodElement);
- String messageExchangePattern = axisOperation.getMessageExchangePattern();
addAttribute(doc, "mep", Utils.getAxisSpecifMEPConstant(messageExchangePattern) + "",
methodElement);
addAttribute(doc, "mepURI", messageExchangePattern, methodElement);
@@ -2195,18 +2211,20 @@
if (WSDLUtil.isInputPresentForMEP(messageExchangePattern)) {
- methodElement.appendChild(getInputElement(doc,
- axisOperation, soapHeaderInputParameterList));
if("jax-ws".equals(codeGenConfiguration.getOutputLanguage())){
+ useHolderClass_jaxws = false;
AxisMessage inMessage = axisOperation.getMessage(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
if (WSDLUtil.isOutputPresentForMEP(messageExchangePattern)) {
AxisMessage outMessage = axisOperation.getMessage(WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
if(inMessage.getName().equals(outMessage.getName())){
// in/out message
+ useHolderClass_jaxws = true;
addAttribute(doc, "useholder", "true", methodElement);
}
}
}
+ methodElement.appendChild(getInputElement(doc,
+ axisOperation, soapHeaderInputParameterList));
}
if (WSDLUtil.isOutputPresentForMEP(messageExchangePattern)) {
methodElement.appendChild(getOutputElement(doc,
@@ -2872,7 +2890,7 @@
MessagePartInformationHolder infoHolder =
(MessagePartInformationHolder) detailsParameter.getValue();
List partsList = infoHolder.getPartsList();
-
+ wrapped_jaxws = true;
//populate the parts list - this list is needed to generate multiple
//parameters in the signatures
for (int i = 0; i < partsList.size(); i++) {
@@ -2974,6 +2992,13 @@
Element paramElement = doc.createElement("param");
addAttribute(doc, "name",
paramName, paramElement);
+
+ if (codeGenConfiguration.getOutputLanguage().equals("jax-ws") && useHolderClass_jaxws) {
+ Class primitive = JavaUtils.getWrapperClass(paramType);
+ if(primitive != null){
+ paramType = primitive.getName();
+ }
+ }
addAttribute(doc, "type",
(paramType == null) ? "" : paramType,
Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/jaxws/AnnotationElementBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/jaxws/AnnotationElementBuilder.java?rev=568060&r1=568059&r2=568060&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/jaxws/AnnotationElementBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/jaxws/AnnotationElementBuilder.java Tue Aug 21 04:06:31 2007
@@ -25,6 +25,19 @@
return annotationElement;
}
+ static Element buildWebServiceAnnotationElement(String endpointInterface, Document doc) {
+
+ Element annotationElement = doc.createElement("annotation");
+ XSLTUtils.addAttribute(doc, "name", "javax.jws.WebService", annotationElement);
+
+ Element paramElement = doc.createElement("param");
+ XSLTUtils.addAttribute(doc, "type", "endpointInterface", paramElement);
+ XSLTUtils.addAttribute(doc, "value", endpointInterface, paramElement);
+ annotationElement.appendChild(paramElement);
+
+ return annotationElement;
+ }
+
static Element buildWebFaultAnnotationElement(String name, String targetNS, Document doc) {
Element annotationElement = doc.createElement("annotation");
XSLTUtils.addAttribute(doc, "name", "javax.xml.ws.WebFault", annotationElement);
Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/jaxws/JAXWS20Emitter.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/jaxws/JAXWS20Emitter.java?rev=568060&r1=568059&r2=568060&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/jaxws/JAXWS20Emitter.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/jaxws/JAXWS20Emitter.java Tue Aug 21 04:06:31 2007
@@ -3,9 +3,7 @@
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.apache.axis2.description.WSDL2Constants;
-import org.apache.axis2.util.JavaUtils;
-import org.apache.woden.internal.util.dom.DOM2Writer;
-
+import org.apache.axis2.AxisFault;
import javax.xml.namespace.QName;
import java.util.Iterator;
@@ -16,14 +14,18 @@
*
* @return DOM Document
*/
- protected Document createDOMDocumentForSEI() {
+ protected Document createDOMDocumentForSEI() throws AxisFault {
Document doc = getEmptyDocument();
Element rootElement = doc.createElement("javaConstruct");
Element importList = doc.createElement("importList");
rootElement.appendChild(importList);
+ String packageName = codeGenConfiguration.getPackageName();
+ String targetNS = codeGenConfiguration.getTargetNamespace();
+ String portTypeName = (String) axisService.getParameterValue(WSDL2Constants.INTERFACE_LOCAL_NAME);
portTypeName = resolveNameCollision(portTypeName, packageName, TYPE_SUFFIX);
+ this.axisService.addParameter(JAXWS_PORT_TYPE_NAME, portTypeName);
addAttribute(doc, "package", packageName, rootElement);
addAttribute(doc, "targetNamespace", targetNS, rootElement);
@@ -46,6 +48,45 @@
}
/**
+ * Creates the XML model for the Service Endpoint interface
+ *
+ * @return DOM Document
+ */
+ protected Document createDOMDocumentForSEIImpl() throws AxisFault {
+ Document doc = getEmptyDocument();
+ Element rootElement = doc.createElement("javaConstruct");
+
+ //Element importList = doc.createElement("importList");
+ //rootElement.appendChild(importList);
+
+ String packageName = codeGenConfiguration.getPackageName();
+ String targetNS = codeGenConfiguration.getTargetNamespace();
+ String portTypeName = (String) axisService.getParameterValue(WSDL2Constants.INTERFACE_LOCAL_NAME);
+ portTypeName = resolveNameCollision(portTypeName, packageName, TYPE_SUFFIX);
+ this.axisService.addParameter(JAXWS_PORT_TYPE_NAME, portTypeName);
+
+ addAttribute(doc, "package", packageName, rootElement);
+ addAttribute(doc, "targetNamespace", targetNS, rootElement);
+ addAttribute(doc, "name", axisService.getParameter(JAXWS_PORT_TYPE_NAME).getValue() + JAXWS_IMPL_SUFFIX,
+ rootElement);
+
+ Element annotationElement = AnnotationElementBuilder.buildWebServiceAnnotationElement(
+ packageName +"." +axisService.getParameter(JAXWS_PORT_TYPE_NAME).getValue(), doc);
+ rootElement.appendChild(annotationElement);
+
+ loadOperations(doc, rootElement, null);
+
+ //attach a list of faults
+ rootElement.appendChild(getUniqueListofFaults(doc));
+ doc.appendChild(rootElement);
+ //////////////////////////////////////////////////////////
+// System.out.println(DOM2Writer.nodeToString(rootElement));
+ ////////////////////////////////////////////////////////////
+ return doc;
+
+ }
+
+ /**
* Creates the XML model for the Service Class
*
* @return DOM Document
@@ -57,8 +98,11 @@
Element importList = doc.createElement("importList");
rootElement.appendChild(importList);
+ String serviceName = axisService.getName();
String capitalizedServiceName = serviceName.toUpperCase();
String wsdlLocation = "Needs to be fixed";
+ String packageName = codeGenConfiguration.getPackageName();
+ String targetNS = codeGenConfiguration.getTargetNamespace();
serviceName = resolveNameCollision(serviceName, packageName, TYPE_SUFFIX);
@@ -68,12 +112,6 @@
addAttribute(doc, "wsdlLocation", wsdlLocation, rootElement);
addAttribute(doc, "capitalizedServiceName", capitalizedServiceName, rootElement);
- //Adding annotations -- tempory solution hardcoded solution
-// Element importElement;
-// importElement = doc.createElement("import");
-// addAttribute(doc, "value", "java.net.URL", importElement);
-// importList.appendChild(importElement);
-
Element annotationElement = AnnotationElementBuilder.buildWebServiceClientAnnotationElement(serviceName,
targetNS, wsdlLocation, doc);
rootElement.appendChild(annotationElement);
@@ -84,7 +122,8 @@
Element portElement = doc.createElement("port");
addAttribute(doc, "portName", portName, portElement);
- addAttribute(doc, "portTypeName", portTypeName, portElement);
+ addAttribute(doc, "portTypeName", (String) this.axisService.getParameter(JAXWS_PORT_TYPE_NAME).getValue(),
+ portElement);
Element endPointAnnoElement = AnnotationElementBuilder.buildWebEndPointAnnotationElement(portName, doc);
portElement.appendChild(endPointAnnoElement);
@@ -115,18 +154,20 @@
Element importList = doc.createElement("importList");
faultElement.appendChild(importList);
+ String packageName = codeGenConfiguration.getPackageName();
+ String targetNS = codeGenConfiguration.getTargetNamespace();
+
addAttribute(doc, "package", packageName, faultElement);
addAttribute(doc, "targetNamespace", targetNS, faultElement);
String exceptionClassName = (String) faultClassNameMap.get(key);
- exceptionClassName = resolveNameCollision(exceptionClassName, packageName, EXCEPTION_SUFFIX);
- addAttribute(doc, "name",exceptionClassName, faultElement);
-// addAttribute(doc, "shortName",
-// (String) faultClassNameMap.get(key) + "Exception",
-// faultElement);
+ String resolvedExpClass = resolveNameCollision(exceptionClassName, packageName, EXCEPTION_SUFFIX);
+
+ if (!resolvedExpClass.equals(exceptionClassName))
+ faultClassNameMap.put(key, resolvedExpClass);
+
+ addAttribute(doc, "name", resolvedExpClass, faultElement);
- //the type represents the type that will be wrapped by this
- //name
String typeMapping =
this.mapper.getTypeMappingName((QName) faultElementQNameMap.get(key));
String shortType = extratClassName(typeMapping);
@@ -144,14 +185,6 @@
addAttribute(doc, "value", typeMapping, importElement);
importList.appendChild(importElement);
-// String attribValue = (String) instantiatableMessageClassNames.
-// get(key);
-// addAttribute(doc, "instantiatableType",
-// attribValue == null ? "" : attribValue,
-// faultElement);
-
- // add an extra attribute to say whether the type mapping is
- // the default
if (mapper.getDefaultMappingName().equals(typeMapping)) {
addAttribute(doc, "default", "yes", faultElement);
}
Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/jaxws/JAXWSEmitter.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/jaxws/JAXWSEmitter.java?rev=568060&r1=568059&r2=568060&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/jaxws/JAXWSEmitter.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/jaxws/JAXWSEmitter.java Tue Aug 21 04:06:31 2007
@@ -1,15 +1,14 @@
package org.apache.axis2.wsdl.codegen.emitter.jaxws;
import org.w3c.dom.Document;
-import org.apache.axis2.wsdl.codegen.writer.FileWriter;
-import org.apache.axis2.wsdl.codegen.writer.SkeletonInterfaceWriter;
-import org.apache.axis2.wsdl.codegen.writer.ExceptionWriter;
-import org.apache.axis2.wsdl.codegen.writer.SkeletonWriter;
+import org.w3c.dom.Element;
+import org.apache.axis2.wsdl.codegen.writer.*;
import org.apache.axis2.wsdl.codegen.emitter.AxisServiceBasedMultiLanguageEmitter;
import org.apache.axis2.wsdl.codegen.CodeGenerationException;
import org.apache.axis2.wsdl.codegen.CodeGenConfiguration;
import org.apache.axis2.description.AxisService;
-import org.apache.axis2.description.WSDL2Constants;
+import org.apache.axis2.AxisFault;
+
import java.util.Iterator;
import java.util.Map;
@@ -18,18 +17,11 @@
protected final static String TYPE_SUFFIX = "Type";
protected final static String SERVICE_SUFFIX = "Service";
protected final static String EXCEPTION_SUFFIX = "Exception";
-
- protected String portTypeName;
- protected String serviceName;
- protected String packageName;
- protected String targetNS;
+ protected final static String JAXWS_PORT_TYPE_NAME = "JaxwsPortTypeName";
+ protected final static String JAXWS_IMPL_SUFFIX = "Impl";
public void setCodeGenConfiguration(CodeGenConfiguration configuration) {
super.setCodeGenConfiguration(configuration);
- portTypeName = (String) axisService.getParameterValue(WSDL2Constants.INTERFACE_LOCAL_NAME);
- serviceName = axisService.getName();
- targetNS = codeGenConfiguration.getTargetNamespace();
- packageName = codeGenConfiguration.getPackageName();
}
public void emitSkeleton() throws CodeGenerationException {
@@ -56,11 +48,14 @@
//handle faults
generateAndPopulateFaultNames();
+ //write the Exceptions
+ writeExceptions();
+
//write the Service Endpoint Interface
writeServiceEndpointInterface();
- //write the Exceptions
- writeExceptions();
+ //write the Service Endpoint Interface
+ writeServiceEndpointInterfaceImpl();
//write the Service Class
writeServiceClass();
@@ -110,6 +105,19 @@
writeFile(skeletonModel, skeletonInterfaceWriter);
}
+ protected void writeServiceEndpointInterfaceImpl() throws Exception {
+ Document skeletonModel = createDOMDocumentForSEIImpl();
+ debugLogDocument("Document for Service Endpoint Interface:", skeletonModel);
+ FileWriter interfaceImplementationWriter = new InterfaceImplementationWriter(
+ codeGenConfiguration.isFlattenFiles() ?
+ getOutputDirectory(codeGenConfiguration.getOutputLocation(), null) :
+ getOutputDirectory(codeGenConfiguration.getOutputLocation(),
+ codeGenConfiguration.getSourceLocation())
+ , this.codeGenConfiguration.getOutputLanguage());
+
+ writeFile(skeletonModel, interfaceImplementationWriter);
+ }
+
/**
* Writes the exception calsses.
*/
@@ -153,12 +161,37 @@
writeFile(skeletonModel, skeletonInterfaceWriter);
}
+ protected Document createDOMDocumentForServiceXML() {
+ Document doc = getEmptyDocument();
+ String className = null;
+ String serviceName = null;
+ Element rootElement = doc.createElement("interfaces");
+ doc.appendChild(rootElement);
+
+ for (Iterator iter = this.axisServices.iterator(); iter.hasNext();) {
+ this.axisService = (AxisService) iter.next();
+ this.axisBinding = axisService.getEndpoint(axisService.getEndpointName()).getBinding();
+ serviceName = axisService.getName();
+ className = (String)axisService.getParameter(JAXWS_PORT_TYPE_NAME).getValue() + JAXWS_IMPL_SUFFIX;
+ rootElement.appendChild(getServiceElement(serviceName, className, doc));
+ }
+
+ return doc;
+ }
+
/**
* Creates the XML model for the Service Endpoint interface
*
* @return DOM Document
*/
- protected abstract Document createDOMDocumentForSEI();
+ protected abstract Document createDOMDocumentForSEI() throws AxisFault;
+
+ /**
+ * Creates the XML model for the Service Endpoint interface Implementation class
+ *
+ * @return DOM Document
+ */
+ protected abstract Document createDOMDocumentForSEIImpl() throws AxisFault;
/**
* Creates the XML model for the Service Class
@@ -174,6 +207,48 @@
* @return DOM Document
*/
protected abstract Document createDOMDocumentForException(String key);
+
+ /**
+ * A resusable method to return the service element for creating the service xml
+ *
+ * @param serviceName
+ * @param className
+ * @param doc
+ * @return DOM Element
+ */
+ protected Element getServiceElement(String serviceName, String className, Document doc) {
+
+ if (allServiceInfoHolder.get(serviceName) != null) {
+ this.infoHolder = (Map) allServiceInfoHolder.get(serviceName);
+ }
+ Element rootElement = doc.createElement("interface");
+
+ addAttribute(doc, "package", "", rootElement);
+ addAttribute(doc, "classpackage", codeGenConfiguration.getPackageName(), rootElement);
+ addAttribute(doc, "name", className, rootElement);
+
+ if (!codeGenConfiguration.isWriteTestCase()) {
+ addAttribute(doc, "testOmit", "true", rootElement);
+ }
+ addAttribute(doc, "servicename", serviceName, rootElement);
+
+ Iterator it = mepToClassMap.keySet().iterator();
+ while (it.hasNext()) {
+ Object key = it.next();
+
+ if (Boolean.TRUE.equals(infoHolder.get(key))) {
+ Element elt = addElement(doc, "messagereceiver",
+ makeJavaClassName(serviceName) + mepToSuffixMap.get(key),
+ rootElement);
+ addAttribute(doc, "mepURI", key.toString(), elt);
+ }
+
+ }
+
+ loadOperations(doc, rootElement, null);
+
+ return rootElement;
+ }
//Util methods
public String extratClassName(String fullyQualifiedName) {
Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/SchemaUnwrapperExtension.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/SchemaUnwrapperExtension.java?rev=568060&r1=568059&r2=568060&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/SchemaUnwrapperExtension.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/SchemaUnwrapperExtension.java Tue Aug 21 04:06:31 2007
@@ -61,7 +61,7 @@
public void engage(CodeGenConfiguration configuration) throws CodeGenerationException {
this.codeGenConfiguration = configuration;
- if (!configuration.isParametersWrapped()) {
+ if (!configuration.isParametersWrapped() && !codeGenConfiguration.getOutputLanguage().equals("jax-ws")) {
// A check to avoid nasty surprises - Since unwrapping is not
// supported by all frameworks, we check the framework name to be
Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/JaxwsExceptionTemplate.xsl
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/JaxwsExceptionTemplate.xsl?rev=568060&r1=568059&r2=568060&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/JaxwsExceptionTemplate.xsl (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/JaxwsExceptionTemplate.xsl Tue Aug 21 04:06:31 2007
@@ -12,8 +12,8 @@
/**
* <xsl:value-of select="@name"/>.java
*
- * This class was generated by Apache Axis2.
- * Apache Axis2 {version} - {date} {time}
+ * This class was auto-generated from WSDL.
+ * Apache Axis2 version: #axisVersion# #today#
*
*/
<xsl:for-each select="annotation">
Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/JaxwsServiceClassTemplate.xsl
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/JaxwsServiceClassTemplate.xsl?rev=568060&r1=568059&r2=568060&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/JaxwsServiceClassTemplate.xsl (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/JaxwsServiceClassTemplate.xsl Tue Aug 21 04:06:31 2007
@@ -17,8 +17,8 @@
/**
* <xsl:value-of select="@name"/>.java
*
- * This class was generated by Apache Axis2.
- * Apache Axis2 {version} - {date} {time}
+ * This class was auto-generated from WSDL.
+ * Apache Axis2 version: #axisVersion# #today#
*
*/
<xsl:for-each select="annotation">
Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/JaxwsServiceEndpointInterfaceTemplate.xsl
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/JaxwsServiceEndpointInterfaceTemplate.xsl?rev=568060&r1=568059&r2=568060&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/JaxwsServiceEndpointInterfaceTemplate.xsl (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/JaxwsServiceEndpointInterfaceTemplate.xsl Tue Aug 21 04:06:31 2007
@@ -1,6 +1,6 @@
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- <xsl:output method="text"/>
+ <xsl:output method="text"/>
<xsl:variable name="targetNs" select="/javaConstruct/@targetNamespace"/>
<xsl:template match="javaConstruct">package <xsl:value-of select="@package"/>;
<xsl:for-each select="importList/import">
@@ -10,9 +10,8 @@
/**
* <xsl:value-of select="@name"/>.java
*
- * This class was generated by Apache Axis2.
- * Apache Axis2 {version} - {date} {time}
- *
+ * This class was auto-generated from WSDL.
+ * Apache Axis2 version: #axisVersion# #today#
*/
<xsl:for-each select="annotation">
<xsl:variable name="annoparamcount" select="count(param)"/>
@@ -20,14 +19,14 @@
<xsl:choose>
<xsl:when test="$annoparamcount = position()">
<xsl:value-of select="@type"/>
- <xsl:text>=</xsl:text>"<xsl:value-of select="@value"/>"</xsl:when>
+ <xsl:text> = </xsl:text>"<xsl:value-of select="@value"/>"</xsl:when>
<xsl:otherwise>
<xsl:value-of select="@type"/>
- <xsl:text>=</xsl:text>"<xsl:value-of select="@value"/>",<xsl:text> </xsl:text>
+ <xsl:text> = </xsl:text>"<xsl:value-of select="@value"/>",<xsl:text> </xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>)</xsl:for-each>
-public interface <xsl:value-of select="@name"/>{
+public interface <xsl:value-of select="@name"/> {
<xsl:apply-templates/>
}
</xsl:template>
@@ -36,13 +35,17 @@
<xsl:variable name="outparamcount" select="count(output/param)"/>
<xsl:variable name="parameterstyle" select="@parameterstyle"/>
<xsl:variable name="useholder" select="@useholder"/>
- <xsl:variable name="style" select="@style"/>
- /**<xsl:for-each select="input/param">
- * @param <xsl:value-of select="@name"/></xsl:for-each><xsl:if test="$outparamcount != 0">
- * @return
- * <xsl:value-of select="output/param/@shorttype"/></xsl:if><xsl:for-each select="fault/param[@type!='']">
- * @throws <xsl:value-of select="@name"/></xsl:for-each>
- */
+ <xsl:variable name="style" select="@style"/>
+ <xsl:variable name="inputWrappedCount" select="count(input/param/param)"/>
+ <xsl:variable name="inparamcount" select="count(input/param)"/>
+ /**<xsl:choose><xsl:when test="$inputWrappedCount > 0"><xsl:for-each select="input/param/param">
+ * @param <xsl:value-of select="@name"/></xsl:for-each><xsl:if test="$outparamcount != 0">
+ * @return <xsl:value-of select="output/param/@shorttype"/></xsl:if><xsl:for-each select="fault/param[@type!='']">
+ * @throws <xsl:value-of select="@name"/></xsl:for-each></xsl:when><xsl:otherwise><xsl:for-each select="input/param">
+ * @param <xsl:value-of select="@name"/></xsl:for-each><xsl:if test="$outparamcount != 0">
+ * @return <xsl:value-of select="output/param/@shorttype"/></xsl:if><xsl:for-each select="fault/param[@type!='']">
+ * @throws <xsl:value-of select="@shortName"/></xsl:for-each></xsl:otherwise> </xsl:choose>
+ */
@javax.jws.WebMethod<xsl:choose>
<xsl:when test="$outparamcount = 0"><xsl:text>
</xsl:text>@javax.jws.Oneway</xsl:when>
@@ -51,51 +54,98 @@
</xsl:text>@javax.jws.WebResult(targetNamespace = "<xsl:value-of select="$targetNs"/>"<xsl:choose>
<xsl:when test="$parameterstyle = 'BARE'">, partName = "<xsl:value-of select="output/param/@partname"/>"</xsl:when></xsl:choose>)</xsl:otherwise>
</xsl:choose>
- <xsl:if test="$parameterstyle = 'BARE'">
- @javax.jws.soap.SOAPBinding(parameterStyle = javax.jws.soap.SOAPBinding.ParameterStyle.BARE)</xsl:if>
+ <xsl:choose>
+ <xsl:when test="$inputWrappedCount = 0">
+ @javax.jws.soap.SOAPBinding(parameterStyle = javax.jws.soap.SOAPBinding.ParameterStyle.BARE)</xsl:when>
+ <xsl:otherwise>
+ @javax.xml.ws.RequestWrapper(localName = "<xsl:value-of select="input/param/@name"/>", targetNamespace = "<xsl:value-of select="$targetNs"/>", className = "<xsl:value-of select="input/param/@type"/>")<xsl:if test="$outparamcount != 0">
+ @javax.xml.ws.ResponseWrapper(localName = "<xsl:value-of select="output/param/@name"/>", targetNamespace = "<xsl:value-of select="$targetNs"/>", className = "<xsl:value-of select="output/param/@type"/>")</xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
public <xsl:choose>
<xsl:when test="$outparamcount = 0">void </xsl:when>
<xsl:when test="$useholder = 'true'">void </xsl:when>
+ <xsl:when test="$inputWrappedCount != 0"><xsl:value-of select="output/param/param/@type"/><xsl:text> </xsl:text></xsl:when>
<xsl:otherwise><xsl:value-of select="output/param/@type"/><xsl:text> </xsl:text></xsl:otherwise>
</xsl:choose>
- <xsl:value-of select="@name"/>(<xsl:variable name="inparamcount" select="count(input/param)"/>
- <xsl:choose>
+ <xsl:value-of select="@name"/>(<xsl:choose>
<xsl:when test="$useholder = 'true'">
- <xsl:for-each select="input/param">
- @javax.jws.WebParam(name = "<xsl:value-of select="@name"/>", targetNamespace = "<xsl:value-of select="$targetNs"/>", mode = javax.jws.WebParam.Mode.INOUT<xsl:choose>
- <xsl:when test="$parameterstyle = 'BARE'">, partName = "<xsl:value-of select="@partname"/>"</xsl:when></xsl:choose>)
- <xsl:choose>
- <xsl:when test="$inparamcount = position()">javax.xml.ws.Holder<<xsl:value-of select="@type"/>
+ <xsl:choose>
+ <xsl:when test="$inputWrappedCount = 0">
+ <xsl:for-each select="input/param">
+ @javax.jws.WebParam(name = "<xsl:value-of select="@name"/>", targetNamespace = "<xsl:value-of select="$targetNs"/>", mode = javax.jws.WebParam.Mode.INOUT<xsl:choose>
+ <xsl:when test="$parameterstyle = 'BARE'">, partName = "<xsl:value-of select="@partname"/>"</xsl:when></xsl:choose>)<xsl:choose>
+ <xsl:when test="$inparamcount = position()">
+ javax.xml.ws.Holder<<xsl:value-of select="@type"/>
<xsl:text>> </xsl:text>
<xsl:value-of select="@name"/>
</xsl:when>
- <xsl:otherwise>javax.xml.ws.Holder<<xsl:value-of select="@type"/>
+ <xsl:otherwise>
+ javax.xml.ws.Holder<<xsl:value-of select="@type"/>
<xsl:text>> </xsl:text>
<xsl:value-of select="@name"/>,<xsl:text> </xsl:text>
</xsl:otherwise>
</xsl:choose>
- </xsl:for-each></xsl:when>
- <xsl:otherwise><xsl:for-each select="input/param">
- @javax.jws.WebParam(name = "<xsl:value-of select="@name"/>", targetNamespace = "<xsl:value-of select="$targetNs"/>"<xsl:choose>
- <xsl:when test="$parameterstyle = 'BARE'">, partName = "<xsl:value-of select="@partname"/>"</xsl:when></xsl:choose>)
- <xsl:choose>
- <xsl:when test="$inparamcount = position()">
- <xsl:value-of select="@type"/>
- <xsl:text> </xsl:text>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:for-each select="input/param/param">
+ @javax.jws.WebParam(name = "<xsl:value-of select="@name"/>", targetNamespace = "<xsl:value-of select="$targetNs"/>", mode = javax.jws.WebParam.Mode.INOUT<xsl:choose>
+ <xsl:when test="$parameterstyle = 'BARE'">, partName = "<xsl:value-of select="@partname"/>"</xsl:when></xsl:choose>)<xsl:choose>
+ <xsl:when test="$inputWrappedCount = position()">
+ javax.xml.ws.Holder<<xsl:value-of select="@type"/>
+ <xsl:text>> </xsl:text>
<xsl:value-of select="@name"/>
</xsl:when>
<xsl:otherwise>
- <xsl:value-of select="@type"/>
- <xsl:text> </xsl:text>
+ javax.xml.ws.Holder<<xsl:value-of select="@type"/>
+ <xsl:text>> </xsl:text>
<xsl:value-of select="@name"/>,<xsl:text> </xsl:text>
</xsl:otherwise>
</xsl:choose>
+ </xsl:for-each>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$inputWrappedCount > 0">
+ <xsl:for-each select="input/param/param">
+ @javax.jws.WebParam(name = "<xsl:value-of select="@name"/>", targetNamespace = "<xsl:value-of select="$targetNs"/>"<xsl:choose>
+ <xsl:when test="$parameterstyle = 'BARE'">, partName = "<xsl:value-of select="@partname"/>"</xsl:when></xsl:choose>)
+ <xsl:choose>
+ <xsl:when test="$inputWrappedCount = position()">
+ <xsl:value-of select="@type"/>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="@name"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@type"/>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="@name"/>,<xsl:text> </xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise><xsl:for-each select="input/param">
+ @javax.jws.WebParam(name = "<xsl:value-of select="@name"/>", targetNamespace = "<xsl:value-of select="$targetNs"/>"<xsl:choose>
+ <xsl:when test="$parameterstyle = 'BARE'">, partName = "<xsl:value-of select="@partname"/>"</xsl:when></xsl:choose>)
+ <xsl:choose>
+ <xsl:when test="$inparamcount = position()">
+ <xsl:value-of select="@type"/>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="@name"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@type"/>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="@name"/>,<xsl:text> </xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
</xsl:for-each></xsl:otherwise>
- </xsl:choose>)<!--<xsl:for-each select="fault/param[@type!='']">
+ </xsl:choose>)<xsl:for-each select="fault/param[@type!='']">
<xsl:if test="position()=1">
- throws </xsl:if>
- <xsl:if test="position()>1">,</xsl:if><xsl:value-of select="@name"/>
- </xsl:for-each>-->;
+ throws </xsl:if>
+ <xsl:if test="position()>1">,</xsl:if><xsl:value-of select="@shortName"/>
+ </xsl:for-each>;
</xsl:template>
</xsl:stylesheet>
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/JavaUtils.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/JavaUtils.java?rev=568060&r1=568059&r2=568060&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/JavaUtils.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/JavaUtils.java Tue Aug 21 04:06:31 2007
@@ -455,6 +455,28 @@
return null;
}
+ public static Class getWrapperClass(String primitive) {
+ if (primitive.equals("int")) {
+ return java.lang.Integer.class;
+ } else if (primitive.equals("short")) {
+ return java.lang.Short.class;
+ } else if (primitive.equals("boolean")) {
+ return java.lang.Boolean.class;
+ } else if (primitive.equals("byte")) {
+ return java.lang.Byte.class;
+ } else if (primitive.equals("long")) {
+ return java.lang.Long.class;
+ } else if (primitive.equals("double")) {
+ return java.lang.Double.class;
+ } else if (primitive.equals("float")) {
+ return java.lang.Float.class;
+ } else if (primitive.equals("char")) {
+ return java.lang.Character.class;
+ }
+
+ return null;
+ }
+
/**
* Scans the parameter string for the parameter search ignoring case when
* comparing characters.
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org