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/11/27 14:09:11 UTC
svn commit: r479611 - in
/webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description:
AxisEndpoint.java WSDL20ToAxisServiceBuilder.java WSDL2Constants.java
Author: keithc
Date: Mon Nov 27 05:09:08 2006
New Revision: 479611
URL: http://svn.apache.org/viewvc?view=rev&rev=479611
Log:
Added HTTPBinding specific attributes to relavant classes
Modified:
webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/AxisEndpoint.java
webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/WSDL20ToAxisServiceBuilder.java
webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/WSDL2Constants.java
Modified: webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/AxisEndpoint.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/AxisEndpoint.java?view=diff&rev=479611&r1=479610&r2=479611
==============================================================================
--- webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/AxisEndpoint.java (original)
+++ webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/AxisEndpoint.java Mon Nov 27 05:09:08 2006
@@ -22,6 +22,8 @@
import org.apache.axis2.AxisFault;
import javax.xml.namespace.QName;
+import java.util.Map;
+import java.util.HashMap;
public class AxisEndpoint extends AxisDescription{
@@ -33,6 +35,29 @@
// The alias used for the endpoint
private String alias;
+
+ private Map options;
+
+ public AxisEndpoint() {
+ options = new HashMap();
+ }
+
+ public void setProperty(String name, Object value) {
+ options.put(name, value);
+ }
+
+ /**
+ * @param name name of the property to search for
+ * @return the value of the property, or null if the property is not found
+ */
+ public Object getProperty(String name) {
+ Object obj = options.get(name);
+ if (obj != null) {
+ return obj;
+ }
+
+ return null;
+ }
public String getAlias() {
return alias;
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=479611&r1=479610&r2=479611
==============================================================================
--- 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 Mon Nov 27 05:09:08 2006
@@ -9,6 +9,7 @@
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.http.HTTPBindingExtensionsImpl;
import org.apache.woden.schema.Schema;
import org.apache.woden.types.NCName;
import org.apache.woden.wsdl20.*;
@@ -16,6 +17,10 @@
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.HTTPEndpointExtensions;
+import org.apache.woden.wsdl20.extensions.http.HTTPBindingFaultExtensions;
+import org.apache.woden.wsdl20.extensions.http.HTTPBindingOperationExtensions;
+import org.apache.woden.wsdl20.extensions.http.HTTPBindingMessageReferenceExtensions;
import org.apache.woden.wsdl20.extensions.soap.*;
import org.apache.woden.wsdl20.xml.*;
import org.apache.ws.commons.schema.XmlSchema;
@@ -225,6 +230,16 @@
axisEndpoint.setBinding(processBinding(endpoint.getBinding()));
}
+ HTTPEndpointExtensions httpEndpointExtensions = null;
+ try {
+ httpEndpointExtensions = (HTTPEndpointExtensions)endpoint.getComponentExtensionsForNamespace(new URI(WSDL2Constants.URI_WSDL2_HTTP));
+ } catch (URISyntaxException e) {
+ throw new AxisFault("HTTP Binding Extention not found");
+ }
+
+ axisEndpoint.setProperty(WSDL2Constants.ATTR_WHTTP_AUTHENTICATION_TYPE,httpEndpointExtensions.getHttpAuthenticationScheme());
+ axisEndpoint.setProperty(WSDL2Constants.ATTR_WHTTP_AUTHENTICATION_REALM,httpEndpointExtensions.getHttpAuthenticationRealm());
+
return axisEndpoint;
}
@@ -303,10 +318,12 @@
axisBinding.setName(binding.getName());
- if (binding.getType().toString().equals(WSDL2Constants.URI_WSDL2_SOAP)) {
- processSoapBindingExtention(binding, axisBinding);
- } else {
- //ToDo implement other bindings
+ String bindingType = binding.getType().toString();
+
+ if (bindingType.equals(WSDL2Constants.URI_WSDL2_SOAP)) {
+ processSOAPBindingExtention(binding, axisBinding);
+ } else if (bindingType.equals(WSDL2Constants.URI_WSDL2_HTTP)) {
+ processHTTPBindingExtention(binding, axisBinding);
}
// We should process the interface based on the service not on a binding
@@ -327,7 +344,7 @@
return axisBinding;
}
- private void processSoapBindingExtention(Binding binding, AxisBinding axisBinding)
+ private void processSOAPBindingExtention(Binding binding, AxisBinding axisBinding)
throws AxisFault {
// Capture all the binding specific properties
@@ -539,6 +556,144 @@
soapBindingFaultReferenceExtensions.getSoapModules());
axisBindingOperation.addFault(axisBindingMessageFault);
+
+ }
+
+ axisBinding.addChild(axisBindingOperation.getName(),axisBindingOperation);
+
+
+ }
+ }
+
+ private void processHTTPBindingExtention(Binding binding, AxisBinding axisBinding)
+ throws AxisFault {
+
+ // Capture all the binding specific properties
+
+ HTTPBindingExtensionsImpl httpBindingExtensions = null;
+ try {
+ httpBindingExtensions = (HTTPBindingExtensionsImpl) binding
+ .getComponentExtensionsForNamespace(new URI(WSDL2Constants.URI_WSDL2_HTTP));
+ } catch (URISyntaxException e) {
+ throw new AxisFault("HTTP Binding Extention not found");
+ }
+
+ axisBinding.setProperty(WSDL2Constants.ATTR_WHTTP_METHOD,httpBindingExtensions.getHttpMethodDefault());
+ axisBinding.setProperty(WSDL2Constants.ATTR_WHTTP_QUERY_PARAMETER_SEPARATOR,httpBindingExtensions.getHttpQueryParameterSeparatorDefault());
+ axisBinding.setProperty(WSDL2Constants.ATTR_WHTTP_TRANSFER_CODING,httpBindingExtensions.getHttpTransferCodingDefault());
+
+ // Capture all the fault specific properties
+
+ BindingFault[] bindingFaults = binding.getBindingFaults();
+ for (int i = 0; i < bindingFaults.length; i++) {
+ BindingFault bindingFault = bindingFaults[i];
+ InterfaceFault interfaceFault = bindingFault.getInterfaceFault();
+
+ AxisBindingMessage axisBindingFault = new AxisBindingMessage();
+ axisBindingFault.setName(interfaceFault.getName().getLocalPart());
+ axisBindingFault.setParent(axisBinding);
+
+ HTTPBindingFaultExtensions httpBindingFaultExtensions = null;
+
+ try {
+ httpBindingFaultExtensions = (HTTPBindingFaultExtensions) bindingFault
+ .getComponentExtensionsForNamespace(new URI(WSDL2Constants.URI_WSDL2_HTTP));
+ } catch (URISyntaxException e) {
+ throw new AxisFault("HTTP Binding Extention not found");
+ }
+
+ axisBindingFault.setProperty(WSDL2Constants.ATTR_WHTTP_CODE,
+ httpBindingFaultExtensions.getHttpErrorStatusCode());
+ axisBindingFault.setProperty(WSDL2Constants.ATTR_WHTTP_HEADER,
+ httpBindingFaultExtensions.getHttpHeaders());
+ axisBindingFault.setProperty(WSDL2Constants.ATTR_WHTTP_TRANSFER_CODING,
+ httpBindingFaultExtensions.getHttpTransferCoding());
+
+ axisBinding.addFault(axisBindingFault);
+
+ }
+
+ // Capture all the binding operation specific properties
+
+ BindingOperation[] bindingOperations = binding.getBindingOperations();
+ for (int i = 0; i < bindingOperations.length; i++) {
+ BindingOperation bindingOperation = bindingOperations[i];
+
+ AxisBindingOperation axisBindingOperation = new AxisBindingOperation();
+ AxisOperation axisOperation =
+ axisService.getOperation(bindingOperation.getInterfaceOperation().getName());
+
+ axisBindingOperation.setAxisOperation(axisOperation);
+ axisBindingOperation.setParent(axisBinding);
+ axisBindingOperation.setName(axisOperation.getName());
+
+ HTTPBindingOperationExtensions httpBindingOperationExtensions = null;
+ try {
+ httpBindingOperationExtensions = ((HTTPBindingOperationExtensions)
+ bindingOperation.getComponentExtensionsForNamespace(
+ new URI(WSDL2Constants.URI_WSDL2_HTTP)));
+ } catch (URISyntaxException e) {
+ throw new AxisFault("HTTP Binding Extention not found");
+ }
+
+ axisBindingOperation.setProperty(WSDL2Constants.ATTR_WHTTP_FAULT_SERIALIZATION,httpBindingOperationExtensions.getHttpFaultSerialization());
+ axisBindingOperation.setProperty(WSDL2Constants.ATTR_WHTTP_INPUT_SERIALIZATION,httpBindingOperationExtensions.getHttpInputSerialization());
+ URI httpLocation = httpBindingOperationExtensions.getHttpLocation();
+ if (httpLocation != null) {
+ axisBindingOperation.setProperty(WSDL2Constants.ATTR_WHTTP_LOCATION,httpLocation);
+ }
+ axisBindingOperation.setProperty(WSDL2Constants.ATTR_WHTTP_METHOD,httpBindingOperationExtensions.getHttpMethod());
+ axisBindingOperation.setProperty(WSDL2Constants.ATTR_WHTTP_OUTPUT_SERIALIZATION,httpBindingOperationExtensions.getHttpOutputSerialization());
+ axisBindingOperation.setProperty(WSDL2Constants.ATTR_WHTTP_QUERY_PARAMETER_SEPARATOR,httpBindingOperationExtensions.getHttpQueryParameterSeparator());
+ axisBindingOperation.setProperty(WSDL2Constants.ATTR_WHTTP_TRANSFER_CODING,httpBindingOperationExtensions.getHttpTransferCodingDefault());
+
+ BindingMessageReference[] bindingMessageReferences =
+ bindingOperation.getBindingMessageReferences();
+ for (int j = 0; j < bindingMessageReferences.length; j++) {
+ BindingMessageReference bindingMessageReference = bindingMessageReferences[j];
+
+ AxisBindingMessage axisBindingMessage = new AxisBindingMessage();
+ axisBindingMessage.setParent(axisBindingOperation);
+
+ AxisMessage axisMessage = axisOperation.getMessage(bindingMessageReference
+ .getInterfaceMessageReference().getMessageLabel().toString());
+
+ axisBindingMessage.setAxisMessage(axisMessage);
+ axisBindingMessage.setName(axisMessage.getName());
+ axisBindingMessage.setDirection(axisMessage.getDirection());
+
+
+ HTTPBindingMessageReferenceExtensions httpBindingMessageReferenceExtensions = null;
+ try {
+ httpBindingMessageReferenceExtensions =
+ (HTTPBindingMessageReferenceExtensions) bindingMessageReference
+ .getComponentExtensionsForNamespace(
+ new URI(WSDL2Constants.URI_WSDL2_HTTP));
+ } catch (URISyntaxException e) {
+ throw new AxisFault("HTTP Binding Extention not found");
+ }
+
+ axisBindingMessage.setProperty(WSDL2Constants.ATTR_WHTTP_HEADER,httpBindingMessageReferenceExtensions.getHttpHeaders());
+ axisBindingMessage.setProperty(WSDL2Constants.ATTR_WHTTP_TRANSFER_CODING,httpBindingMessageReferenceExtensions.getHttpTransferCoding());
+
+
+// SOAPHeaderBlock[] soapHeaders = soapHeaderExt.getSoapHeaders();
+//
+// for (int k = 0; k < soapHeaders.length; k++) {
+// SOAPHeaderBlock soapHeader = soapHeaders[j];
+//
+// ElementDeclaration elementDeclaration = soapHeader.getElementDeclaration();
+//
+// if (elementDeclaration != null) {
+// QName name = elementDeclaration.getName();
+// SOAPHeaderMessage soapHeaderMessage = new SOAPHeaderMessage(name);
+// soapHeaderMessage.setRequired(soapHeader.isRequired().booleanValue());
+// message.addSoapHeader(soapHeaderMessage);
+// }
+// }
+
+ axisBindingOperation.addChild(axisBindingMessage.getName(),axisBindingMessage);
+
}
Modified: webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/WSDL2Constants.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/WSDL2Constants.java?view=diff&rev=479611&r1=479610&r2=479611
==============================================================================
--- webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/WSDL2Constants.java (original)
+++ webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/WSDL2Constants.java Mon Nov 27 05:09:08 2006
@@ -23,6 +23,7 @@
String DEFAULT_WSDL_NAMESPACE_PREFIX = "wsdl2";
String DESCRIPTION = "description";
String URI_WSDL2_SOAP = "http://www.w3.org/2006/01/wsdl/soap";
+ String URI_WSDL2_HTTP = "http://www.w3.org/2006/01/wsdl/http";
String SOAP_PREFIX = "wsoap";
String URI_WSDL2_SOAP_ENV = "http://www.w3.org/2003/05/soap-envelope";
String SOAP_ENV_PREFIX = "soap";
@@ -62,6 +63,14 @@
String ATTR_WHTTP_TRANSFER_CODING = "whttp:transferCoding";
String ATTR_WHTTP_LOCATION = "whttp:location";
String ATTR_WHTTP_HEADER = "whttp:header";
+ String ATTR_WHTTP_METHOD = "whttp:method";
+ String ATTR_WHTTP_CODE = "whttp:code";
+ String ATTR_WHTTP_QUERY_PARAMETER_SEPARATOR = "whttp:queryParameterSeparator";
+ String ATTR_WHTTP_INPUT_SERIALIZATION = "whttp:inputSerialization";
+ String ATTR_WHTTP_OUTPUT_SERIALIZATION = "whttp:outputSerialization";
+ String ATTR_WHTTP_FAULT_SERIALIZATION = "whttp:faultSerialization";
+ String ATTR_WHTTP_AUTHENTICATION_TYPE = "whttp:authenticationType";
+ String ATTR_WHTTP_AUTHENTICATION_REALM = "whttp:authenticationRealm";
String SOAP_VERSION_1_1 = "1.1";
String SOAP_VERSION_1_2 = "1.2";
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org