You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2008/04/13 22:37:31 UTC

svn commit: r647623 - in /incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2: Axis2ServiceClient.java WSDLDefinitionHelper.java

Author: rfeng
Date: Sun Apr 13 13:37:29 2008
New Revision: 647623

URL: http://svn.apache.org/viewvc?rev=647623&view=rev
Log:
Fix for TUSCANY-2220

Modified:
    incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceClient.java
    incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/WSDLDefinitionHelper.java

Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceClient.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceClient.java?rev=647623&r1=647622&r2=647623&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceClient.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceClient.java Sun Apr 13 13:37:29 2008
@@ -297,13 +297,15 @@
             InterfaceContract ic = wsBinding.getBindingInterfaceContract();
             WSDLInterface wi = (WSDLInterface)ic.getInterface();
             Service service = helper.createService(wsdlDefinition, wi.getPortType());
-            Port port = (Port)service.getPorts().values().iterator().next();
+            Binding binding = helper.createBinding(wsdlDefinition, wi.getPortType());
+            
+            Port port = helper.createPort(wsdlDefinition, binding, service, wsBinding.getURI());
             wsBinding.setService(service);
             wsBinding.setPort(port);
             wsBinding.setBinding(port.getBinding());
         } else {
             Service service = helper.createService(wsdlDefinition, wsBinding.getBinding());
-            Port port = (Port)service.getPorts().values().iterator().next();
+            Port port = helper.createPort(wsdlDefinition, wsBinding.getBinding(), service, wsBinding.getURI());
             wsBinding.setService(service);
             wsBinding.setPort(port);
         }

Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/WSDLDefinitionHelper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/WSDLDefinitionHelper.java?rev=647623&r1=647622&r2=647623&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/WSDLDefinitionHelper.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/WSDLDefinitionHelper.java Sun Apr 13 13:37:29 2008
@@ -35,6 +35,8 @@
 import javax.wsdl.PortType;
 import javax.wsdl.Service;
 import javax.wsdl.WSDLException;
+import javax.wsdl.extensions.ExtensibilityElement;
+import javax.wsdl.extensions.soap.SOAPAddress;
 import javax.wsdl.extensions.soap.SOAPBinding;
 import javax.wsdl.extensions.soap.SOAPBody;
 import javax.wsdl.extensions.soap.SOAPOperation;
@@ -66,20 +68,24 @@
         return reader.readWSDL(definition.getDocumentBaseURI(), root);
     }
 
-    public Binding createBinding(Definition definition, PortType portType) throws WSDLException {
-        Binding binding = definition.createBinding();
-        binding.setPortType(portType);
-        configureBinding(binding, portType);
-        SOAPBinding soapBinding =
-            (SOAPBinding)definition.getExtensionRegistry().createExtension(Binding.class, SOAP_BINDING);
-        soapBinding.setStyle("document");
-        soapBinding.setTransportURI("http://schemas.xmlsoap.org/soap/http");
-        binding.addExtensibilityElement(soapBinding);
-
-        createBindingOperations(definition, binding, portType);
-        binding.setUndefined(false);
-        definition.addBinding(binding);
-        return binding;
+    public Binding createBinding(Definition definition, PortType portType) {
+        try {
+            Binding binding = definition.createBinding();
+            binding.setPortType(portType);
+            configureBinding(binding, portType);
+            SOAPBinding soapBinding =
+                (SOAPBinding)definition.getExtensionRegistry().createExtension(Binding.class, SOAP_BINDING);
+            soapBinding.setStyle("document");
+            soapBinding.setTransportURI("http://schemas.xmlsoap.org/soap/http");
+            binding.addExtensibilityElement(soapBinding);
+
+            createBindingOperations(definition, binding, portType);
+            binding.setUndefined(false);
+            definition.addBinding(binding);
+            return binding;
+        } catch (WSDLException e) {
+            throw new IllegalArgumentException(e);
+        }
     }
 
     protected void configureBinding(Binding binding, PortType portType) throws WSDLException {
@@ -98,7 +104,8 @@
             bindingOperation.setOperation(operation);
             configureBindingOperation(bindingOperation, operation);
             SOAPOperation soapOperation =
-                (SOAPOperation)definition.getExtensionRegistry().createExtension(BindingOperation.class, SOAP_OPERATION);
+                (SOAPOperation)definition.getExtensionRegistry()
+                    .createExtension(BindingOperation.class, SOAP_OPERATION);
             soapOperation.setSoapActionURI("");
             bindingOperation.addExtensibilityElement(soapOperation);
             if (operation.getInput() != null) {
@@ -150,8 +157,7 @@
         try {
             Service service = definition.createService();
             configureService(service, portType);
-            Binding binding = createBinding(definition, portType);
-            createPort(definition, binding, service);
+            // createPort(definition, binding, service);
             definition.addService(service);
             return service;
         } catch (WSDLException e) {
@@ -163,7 +169,7 @@
         try {
             Service service = definition.createService();
             configureService(service, binding.getPortType());
-            createPort(definition, binding, service);
+            // createPort(definition, binding, service);
             definition.addService(service);
             return service;
         } catch (WSDLException e) {
@@ -178,18 +184,22 @@
         }
     }
 
-    protected Port createPort(Definition definition, Binding binding, Service service) throws WSDLException {
-        Port port = definition.createPort();
-        port.setBinding(binding);
-        configurePort(definition, port, binding);
-        /*
-        ExtensibilityElement soapAddress =
-            definition.getExtensionRegistry().createExtension(Port.class, SOAP_ADDRESS);
-        ((SOAPAddress)soapAddress).setLocationURI("");
-        port.addExtensibilityElement(soapAddress);
-        */
-        service.addPort(port);
-        return port;
+    public Port createPort(Definition definition, Binding binding, Service service, String uri) {
+        try {
+            Port port = definition.createPort();
+            port.setBinding(binding);
+            configurePort(definition, port, binding);
+            if (uri != null) {
+                ExtensibilityElement soapAddress =
+                    definition.getExtensionRegistry().createExtension(Port.class, SOAP_ADDRESS);
+                ((SOAPAddress)soapAddress).setLocationURI(uri);
+                port.addExtensibilityElement(soapAddress);
+            }
+            service.addPort(port);
+            return port;
+        } catch (WSDLException e) {
+            throw new IllegalArgumentException(e);
+        }
     }
 
     protected void configurePort(Definition definition, Port port, Binding binding) throws WSDLException {



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org