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 ke...@apache.org on 2006/12/13 10:44:05 UTC
svn commit: r486566 - in /webservices/axis2/branches/java/WSDL_2_0/modules:
codegen/src/org/apache/axis2/wsdl/codegen/emitter/
kernel/src/org/apache/axis2/description/ kernel/src/org/apache/axis2/wsdl/
Author: keithc
Date: Wed Dec 13 01:44:03 2006
New Revision: 486566
URL: http://svn.apache.org/viewvc?view=rev&rev=486566
Log:
added SOAPModuleMessage class to capture details of soap modules
added httpBinding specific properties to intermidiate XML
Added:
webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/wsdl/SOAPModuleMessage.java
Modified:
webservices/axis2/branches/java/WSDL_2_0/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java
webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/WSDL20ToAxisServiceBuilder.java
Modified: webservices/axis2/branches/java/WSDL_2_0/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/WSDL_2_0/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java?view=diff&rev=486566&r1=486565&r2=486566
==============================================================================
--- webservices/axis2/branches/java/WSDL_2_0/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java (original)
+++ webservices/axis2/branches/java/WSDL_2_0/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java Wed Dec 13 01:44:03 2006
@@ -7,6 +7,7 @@
import org.apache.axis2.wsdl.SOAPHeaderMessage;
import org.apache.axis2.wsdl.WSDLConstants;
import org.apache.axis2.wsdl.WSDLUtil;
+import org.apache.axis2.wsdl.SOAPModuleMessage;
import org.apache.axis2.wsdl.codegen.CodeGenConfiguration;
import org.apache.axis2.wsdl.codegen.CodeGenerationException;
import org.apache.axis2.wsdl.codegen.writer.*;
@@ -209,6 +210,10 @@
private Object getBindingPropertyFromMessage(String name, QName qName, String key) {
+ if (name.equalsIgnoreCase(WSDL2Constants.ATTR_WSOAP_MODULE) && qName.getLocalPart().equalsIgnoreCase("echostring")){
+ System.out.println("");
+ }
+
Object property = null;
// Get the correct AxisBindingOperation coresponding to the AxisOperation
AxisBindingOperation axisBindingOperation =
@@ -605,7 +610,7 @@
doc.appendChild(rootElement);
//////////////////////////////////////////////////////////
-// System.out.println(DOM2Writer.nodeToString(rootElement));
+ System.out.println(DOM2Writer.nodeToString(rootElement));
////////////////////////////////////////////////////////////
return doc;
}
@@ -1889,6 +1894,34 @@
axisOperation));
setTransferCoding(axisOperation, methodElement, doc);
+
+ if (axisBinding.getType().equals(WSDL2Constants.URI_WSDL2_HTTP)) {
+
+ String property = (String) getBindingPropertyFromOperation(WSDL2Constants.ATTR_WHTTP_QUERY_PARAMETER_SEPARATOR,
+ axisOperation.getName());
+ if (property != null) {
+ methodElement.appendChild(generateOptionParamComponent(doc,"WSDL2Constants.ATTR_WHTTP_QUERY_PARAMETER_SEPARATOR", "\"" + property + "\""));
+ }
+
+ property = (String) getBindingPropertyFromOperation(WSDL2Constants.ATTR_WHTTP_METHOD,
+ axisOperation.getName());
+ if (property != null) {
+ methodElement.appendChild(generateOptionParamComponent(doc,"WSDL2Constants.ATTR_WHTTP_METHOD", "\"" + property + "\""));
+ }
+
+ property = (String) getBindingPropertyFromOperation(WSDL2Constants.ATTR_WHTTP_CODE,
+ axisOperation.getName());
+ if (property != null) {
+ methodElement.appendChild(generateOptionParamComponent(doc,"WSDL2Constants.ATTR_WHTTP_CODE", "\"" + property + "\""));
+ }
+
+ property = (String) getBindingPropertyFromOperation(WSDL2Constants.ATTR_WHTTP_INPUT_SERIALIZATION,
+ axisOperation.getName());
+ if (property != null) {
+ methodElement.appendChild(generateOptionParamComponent(doc,"WSDL2Constants.ATTR_WHTTP_INPUT_SERIALIZATION", "\"" + property + "\""));
+ }
+
+ }
return methodElement;
}
@@ -2185,6 +2218,7 @@
List parameterElementList = getParameterElementList(doc, headerParameterQNameList, WSDLConstants.SOAP_HEADER);
parameterElementList.addAll(getParameterElementListForHttpHeader(doc, (ArrayList) getBindingPropertyFromMessage(WSDL2Constants.ATTR_WHTTP_HEADER, operation.getName(), WSDLConstants.WSDL_MESSAGE_DIRECTION_IN), WSDLConstants.HTTP_HEADER));
+ parameterElementList.addAll(getParameterElementListForSOAPModules(doc, (ArrayList)getBindingPropertyFromMessage(WSDL2Constants.ATTR_WSOAP_MODULE, operation.getName(), WSDLConstants.WSDL_MESSAGE_DIRECTION_IN)));
for (int i = 0; i < parameterElementList.size(); i++) {
inputElt.appendChild((Element) parameterElementList.get(i));
@@ -2638,6 +2672,28 @@
addAttribute(doc, "type", typeMappingStr, param);
addAttribute(doc, "location", location, param);
+ parameterElementList.add(param);
+ }
+ }
+
+ return parameterElementList;
+ }
+
+ protected List getParameterElementListForSOAPModules(Document doc, List parameters) {
+
+ List parameterElementList = new ArrayList();
+
+ if ((parameters != null) && !parameters.isEmpty()) {
+ int count = parameters.size();
+
+ for (int i = 0; i < count; i++) {
+ Element param = doc.createElement("param");
+ SOAPModuleMessage soapModuleMessage = (SOAPModuleMessage) parameters.get(i);
+
+ // header name is to set the header value
+ addAttribute(doc, "uri", soapModuleMessage.getUri(), param);
+
+ addAttribute(doc, "location", "wsoap_module", param);
parameterElementList.add(param);
}
}
Modified: webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/WSDL20ToAxisServiceBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/WSDL20ToAxisServiceBuilder.java?view=diff&rev=486566&r1=486565&r2=486566
==============================================================================
--- webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/WSDL20ToAxisServiceBuilder.java (original)
+++ webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/WSDL20ToAxisServiceBuilder.java Wed Dec 13 01:44:03 2006
@@ -7,18 +7,15 @@
import org.apache.axis2.wsdl.WSDLConstants;
import org.apache.axis2.wsdl.SOAPHeaderMessage;
import org.apache.axis2.wsdl.HTTPHeaderMessage;
+import org.apache.axis2.wsdl.SOAPModuleMessage;
import org.apache.woden.*;
import org.apache.woden.internal.DOMWSDLFactory;
import org.apache.woden.internal.wsdl20.extensions.soap.SOAPBindingExtensionsImpl;
-import org.apache.woden.internal.wsdl20.extensions.soap.SOAPHeaderBlockImpl;
import org.apache.woden.internal.wsdl20.extensions.http.HTTPBindingExtensionsImpl;
-import org.apache.woden.internal.wsdl20.extensions.http.HTTPHeaderImpl;
import org.apache.woden.schema.Schema;
import org.apache.woden.wsdl20.*;
import org.apache.woden.wsdl20.enumeration.Direction;
import org.apache.woden.wsdl20.enumeration.MessageLabel;
-import org.apache.woden.wsdl20.extensions.ExtensionElement;
-import org.apache.woden.wsdl20.extensions.UnknownExtensionElement;
import org.apache.woden.wsdl20.extensions.http.HTTPBindingFaultExtensions;
import org.apache.woden.wsdl20.extensions.http.HTTPBindingOperationExtensions;
import org.apache.woden.wsdl20.extensions.http.HTTPBindingMessageReferenceExtensions;
@@ -27,7 +24,6 @@
import org.apache.woden.wsdl20.xml.*;
import org.apache.ws.commons.schema.XmlSchema;
import org.apache.ws.commons.schema.utils.NamespaceMap;
-import org.apache.http.Header;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -438,7 +434,7 @@
axisBinding.setProperty(WSDL2Constants.ATTR_WHTTP_TRANSFER_CODING,
soapBindingExtensions.getHttpTransferCodingDefault());
axisBinding.setProperty(WSDL2Constants.ATTR_WSOAP_MODULE,
- soapBindingExtensions.getSoapModules());
+ createSoapModules(soapBindingExtensions.getSoapModules()));
// Capture all the fault specific properties
@@ -471,7 +467,7 @@
axisBindingFault.setProperty(WSDL2Constants.ATTR_WSOAP_HEADER,
createSoapHeaders(soapBindingFaultExtensions.getSoapHeaders()));
axisBindingFault.setProperty(WSDL2Constants.ATTR_WSOAP_MODULE,
- soapBindingFaultExtensions.getSoapModules());
+ createSoapModules(soapBindingFaultExtensions.getSoapModules()));
axisBinding.addFault(axisBindingFault);
@@ -506,7 +502,7 @@
soapAction.toString());
}
axisBindingOperation.setProperty(WSDL2Constants.ATTR_WSOAP_MODULE,
- soapBindingOperationExtensions.getSoapModules());
+ createSoapModules(soapBindingOperationExtensions.getSoapModules()));
URI soapMep = soapBindingOperationExtensions.getSoapMep();
if (soapMep != null) {
axisBindingOperation.setProperty(WSDL2Constants.ATTR_WSOAP_MEP,
@@ -554,7 +550,7 @@
axisBindingMessage.setProperty(WSDL2Constants.ATTR_WSOAP_HEADER,
createSoapHeaders(soapBindingMessageReferenceExtensions.getSoapHeaders()));
axisBindingMessage.setProperty(WSDL2Constants.ATTR_WSOAP_MODULE,
- soapBindingMessageReferenceExtensions.getSoapModules());
+ createSoapModules(soapBindingMessageReferenceExtensions.getSoapModules()));
// SOAPHeaderBlock[] soapHeaders = soapHeaderExt.getSoapHeaders();
//
@@ -598,7 +594,7 @@
}
axisBindingMessageFault.setProperty(WSDL2Constants.ATTR_WSOAP_MODULE,
- soapBindingFaultReferenceExtensions.getSoapModules());
+ createSoapModules(soapBindingFaultReferenceExtensions.getSoapModules()));
axisBindingOperation.addFault(axisBindingMessageFault);
@@ -1256,6 +1252,9 @@
* @return ArrayList - An ArrayList of SOAPHeaderMessage objects
*/
private ArrayList createSoapHeaders(SOAPHeaderBlock soapHeaderBlocks[]) {
+
+ if (soapHeaderBlocks.length ==0)
+ return null;
ArrayList soapHeaderMessages = new ArrayList();
for (int i = 0; i < soapHeaderBlocks.length; i++) {
@@ -1273,11 +1272,34 @@
}
/**
+ * Convert woden dependent SOAPHeaderBlock objects to SOAPHeaderMessage objects
+ * @param soapModules - An array of SOAPModule objects
+ * @return ArrayList - An ArrayList of SOAPHeaderMessage objects
+ */
+ private ArrayList createSoapModules(SOAPModule soapModules[]) {
+
+ if (soapModules.length ==0)
+ return null;
+ ArrayList soapModuleMessages = new ArrayList();
+
+ for (int i = 0; i < soapModules.length; i++) {
+ SOAPModule soapModule = soapModules[i];
+ SOAPModuleMessage soapModuleMessage = new SOAPModuleMessage();
+ soapModuleMessage.setUri(soapModule.getRef().toString());
+ soapModuleMessages.add(soapModuleMessage);
+ }
+ return soapModuleMessages;
+ }
+
+ /**
* Convert woden dependent HTTPHeader objects to Header objects
* @param httpHeaders - An array of HTTPHeader objects
* @return ArrayList - An ArrayList of Header objects
*/
private ArrayList createHttpHeaders(HTTPHeader httpHeaders[]) {
+
+ if (httpHeaders.length ==0)
+ return null;
ArrayList httpHeaderMessages = new ArrayList();
for (int i = 0; i < httpHeaders.length; i++) {
Added: webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/wsdl/SOAPModuleMessage.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/wsdl/SOAPModuleMessage.java?view=auto&rev=486566
==============================================================================
--- webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/wsdl/SOAPModuleMessage.java (added)
+++ webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/wsdl/SOAPModuleMessage.java Wed Dec 13 01:44:03 2006
@@ -0,0 +1,34 @@
+package org.apache.axis2.wsdl;
+
+
+/*
+* Copyright 2004,2005 The Apache Software Foundation.
+*
+* Licensed 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.
+*
+*
+*/
+
+public class SOAPModuleMessage {
+
+ private String uri;
+
+
+ public String getUri() {
+ return uri;
+ }
+
+ public void setUri(String uri) {
+ this.uri = uri;
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org