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 2007/07/22 06:27:32 UTC

svn commit: r558461 - in /incubator/tuscany/java/sca: modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/ modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/ modules/core/src/main/java/org/apache/tuscany/sca/core...

Author: rfeng
Date: Sat Jul 21 21:27:27 2007
New Revision: 558461

URL: http://svn.apache.org/viewvc?view=rev&rev=558461
Log:
Apply the 2nd patch from Simon Nash for TUSCANY-1469

Modified:
    incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2BindingInvoker.java
    incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2OneWayBindingInvoker.java
    incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ReferenceBindingProvider.java
    incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceClient.java
    incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceInMessageReceiver.java
    incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceInOutSyncMessageReceiver.java
    incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceProvider.java
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/AbstractInvocationHandler.java
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/CompositeActivatorImpl.java
    incubator/tuscany/java/sca/samples/simple-callback-ws/src/main/resources/simplecallback.composite
    incubator/tuscany/java/sca/samples/simple-callback-ws/src/main/resources/wsdl/simplecallback.wsdl

Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2BindingInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2BindingInvoker.java?view=diff&rev=558461&r1=558460&r2=558461
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2BindingInvoker.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2BindingInvoker.java Sat Jul 21 21:27:27 2007
@@ -36,6 +36,7 @@
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.transport.http.HTTPConstants;
 import org.apache.axis2.wsdl.WSDLConstants;
+import org.apache.tuscany.sca.core.invocation.ThreadMessageContext;
 import org.apache.tuscany.sca.interfacedef.ConversationSequence;
 import org.apache.tuscany.sca.invocation.Invoker;
 import org.apache.tuscany.sca.invocation.Message;
@@ -78,7 +79,8 @@
         return msg;
     }
 
-    protected Object invokeTarget(final Object payload, final ConversationSequence sequence, String conversationId) throws InvocationTargetException {
+    protected Object invokeTarget(final Object payload, final ConversationSequence sequence, String conversationId)
+                             throws InvocationTargetException {
         try {
 
             Object[] args = (Object[]) payload;
@@ -138,6 +140,25 @@
         }
 
         operationClient.setOptions(options);
+        if (options.getTo() == null) {
+            org.apache.tuscany.sca.runtime.EndpointReference ep = ThreadMessageContext.getMessageContext().getTo();
+            if (ep != null) {
+                System.out.println("Axis2BindingInvoker: dynamic endpoint URI is " + ep.getURI());
+                requestMC.setTo(new EndpointReference(ep.getURI()));
+            } else {
+                throw new RuntimeException("Unable to determine destination endpoint");
+            }
+        }
+        if (options.getFrom() != null) {
+            requestMC.setFrom(options.getFrom());
+            //FIXME: is there any way to use the Axis2 addressing support for this?
+            SOAPEnvelope sev = requestMC.getEnvelope();
+            SOAPHeader sh = sev.getHeader();
+            OMElement el = options.getFrom().toOM(AddressingConstants.Final.WSA_NAMESPACE,
+                                                  AddressingConstants.WSA_FROM,
+                                                  AddressingConstants.WSA_DEFAULT_PREFIX);
+            sh.addChild(el);
+        }
         operationClient.addMessageContext(requestMC);
 
         return operationClient;

Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2OneWayBindingInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2OneWayBindingInvoker.java?view=diff&rev=558461&r1=558460&r2=558461
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2OneWayBindingInvoker.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2OneWayBindingInvoker.java Sat Jul 21 21:27:27 2007
@@ -27,6 +27,10 @@
 import org.apache.axis2.client.OperationClient;
 import org.apache.axis2.client.Options;
 import org.apache.axis2.client.ServiceClient;
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.transport.http.HTTPConstants;
+import org.apache.axis2.wsdl.WSDLConstants;
+import org.apache.tuscany.sca.interfacedef.ConversationSequence;
 
 public class Axis2OneWayBindingInvoker extends Axis2BindingInvoker {
 
@@ -38,11 +42,17 @@
         super(serviceClient, wsdlOperationName, options, soapFactory);
     }
 
-    protected Object invokeTarget(final Object payload, final short sequence, String conversationId) throws InvocationTargetException {
+    protected Object invokeTarget(final Object payload, final ConversationSequence sequence, String conversationId)
+                             throws InvocationTargetException {
         try {
             Object[] args = (Object[]) payload;
 
             OperationClient operationClient = createOperationClient(args, conversationId);
+
+            // ensure connections are tracked so that they can be closed by the reference binding
+            MessageContext requestMC = operationClient.getMessageContext(WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
+            requestMC.getOptions().setProperty(HTTPConstants.REUSE_HTTP_CLIENT, Boolean.TRUE);
+
             operationClient.execute(false);
 
             // REVIEW it seems ok to return null
@@ -50,8 +60,6 @@
 
         } catch (AxisFault e) {
             throw new InvocationTargetException(e);
-        } catch (Throwable t) {
-            throw new InvocationTargetException(t);
         }
     }
 

Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ReferenceBindingProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ReferenceBindingProvider.java?view=diff&rev=558461&r1=558460&r2=558461
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ReferenceBindingProvider.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ReferenceBindingProvider.java Sat Jul 21 21:27:27 2007
@@ -136,8 +136,14 @@
                 axisClient = new Axis2ServiceClient(component, reference, wsBinding, servletHost,
                                                     messageFactory, callbackBinding);
             } else {
-                axisProvider = new Axis2ServiceProvider(component, reference, wsBinding, servletHost,
-                                                        messageFactory);
+                //FIXME: need to support callbacks through self-references
+                // For now, don't create a callback service provider for a self-reference
+                // because this modifies the binding URI.  This messes up the service callback
+                // wires because the self-reference has the same binding object as the service.
+                if (!reference.getName().startsWith("$self$.")) {
+                    axisProvider = new Axis2ServiceProvider(component, reference, wsBinding, servletHost,
+                                                            messageFactory);
+                }
             }
         }
     }
@@ -186,7 +192,10 @@
             if (!wsBinding.isCallback()) {
                 axisClient.start();
             } else {
-                axisProvider.start();
+                //FIXME: need to support callbacks through self-references
+                if (!reference.getName().startsWith("$self$.")) {
+                    axisProvider.start();
+                }
             }
         }
     }
@@ -200,7 +209,10 @@
             if (!wsBinding.isCallback()) {
                 axisClient.stop();
             } else {
-                axisProvider.stop();
+                //FIXME: need to support callbacks through self-references
+                if (!reference.getName().startsWith("$self$.")) {
+                    axisProvider.stop();
+                }
             }
         }
     }

Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/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/axis2/Axis2ServiceClient.java?view=diff&rev=558461&r1=558460&r2=558461
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceClient.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceClient.java Sat Jul 21 21:27:27 2007
@@ -40,7 +40,6 @@
 import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
 import org.apache.tuscany.sca.assembly.AbstractContract;
 import org.apache.tuscany.sca.binding.ws.WebServiceBinding;
-import org.apache.tuscany.sca.core.invocation.ThreadMessageContext;
 import org.apache.tuscany.sca.http.ServletHost;
 import org.apache.tuscany.sca.interfacedef.Operation;
 import org.apache.tuscany.sca.invocation.Invoker;
@@ -109,18 +108,11 @@
      * Create and configure an Axis2BindingInvoker for each operation
      */
     protected Invoker createInvoker(Operation operation) {
+        Options options = new Options();
         EndpointReference epTo = getPortLocationEPR(wsBinding);
-        if (epTo == null) {
-            org.apache.tuscany.sca.runtime.EndpointReference epr = ThreadMessageContext.getMessageContext().getTo();
-            if (epr != null) {
-                epTo = new EndpointReference(epr.getURI());
-            } else {
-                throw new RuntimeException("Unable to determine destination endpoint");
-            }
+        if (epTo != null) {
+            options.setTo(epTo);
         }
-
-        Options options = new Options();
-        options.setTo(epTo);
         if (callbackBinding != null) {
             options.setFrom(getPortLocationEPR(callbackBinding));
         }

Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceInMessageReceiver.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceInMessageReceiver.java?view=diff&rev=558461&r1=558460&r2=558461
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceInMessageReceiver.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceInMessageReceiver.java Sat Jul 21 21:27:27 2007
@@ -63,7 +63,7 @@
             } else {
                 String conversationID = provider.isConversational() ?
                                             Axis2ServiceProvider.getConversationID(inMC) : null;
-                String callbackAddress = inMC.getFrom() != null ? inMC.getFrom().getAddress() : null;
+                String callbackAddress = provider.getFromEPR(inMC);
                 provider.invokeTarget(operation, args, null, conversationID, callbackAddress);
             }
         } catch (InvocationTargetException e) {

Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceInOutSyncMessageReceiver.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceInOutSyncMessageReceiver.java?view=diff&rev=558461&r1=558460&r2=558461
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceInOutSyncMessageReceiver.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceInOutSyncMessageReceiver.java Sat Jul 21 21:27:27 2007
@@ -66,7 +66,7 @@
             } else {
                 String conversationID = provider.isConversational() ?
                                             Axis2ServiceProvider.getConversationID(inMC) : null;
-                String callbackAddress = inMC.getFrom() != null ? inMC.getFrom().getAddress() : null;
+                String callbackAddress = provider.getFromEPR(inMC);
                 responseOM = (OMElement)provider.invokeTarget(operation, args, null, conversationID,
                                                               callbackAddress);
             }

Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceProvider.java?view=diff&rev=558461&r1=558460&r2=558461
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceProvider.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceProvider.java Sat Jul 21 21:27:27 2007
@@ -71,7 +71,9 @@
     private ConfigurationContext configContext;
 
     // TODO: what to do about the base URI?
-    private static final String BASE_URI = "http://localhost:8080/";
+    //FIXME: changed from 8080 to 8085 as hack to work around current limitation that base URI
+    // must be the same for all servlet mappings in a single Tomcat or Jetty ServletHost 
+    private static final String BASE_URI = "http://localhost:8085/";
 
     public Axis2ServiceProvider(RuntimeComponent component,
                                 AbstractContract contract,
@@ -96,7 +98,7 @@
         if (uri.endsWith("/")) {
             uri = uri.substring(0, uri.length() - 1);
         }
-        wsBinding.setURI(uri.toString());
+        wsBinding.setURI(uri);
     }
 
     protected void start() {
@@ -114,8 +116,7 @@
         servlet.init(configContext);
         String servletURI = wsBinding.getURI();
         configContext.setContextRoot(servletURI);
-        System.out.println("adding servlet mapping for " + servletURI);
-        (new RuntimeException()).printStackTrace();
+        System.out.println("Axis2ServiceProvider: adding servlet mapping for " + servletURI);
         servletHost.addServletMapping(servletURI, servlet);
     }
 
@@ -187,14 +188,14 @@
             actualURI = baseURI + "/" + componentURI;
         }
 
-        // with multiple services the default binding URI is the binding name
-        if (bindingURI == null && component.getServices().size() > 1) {
-            // if the binding doesn't have a name use the name of the service
-            // (assumption, not in spec)
-            if (wsBinding.getName() != null) {
+        // for service bindings with multiple services, the default binding URI is the binding name
+        // for callback reference bindings, add a prefix "$callback$." to ensure uniqueness
+        if (bindingURI == null && 
+            (wsBinding.isCallback() || component.getServices().size() > 1)) {
+            if (!wsBinding.isCallback()) {
                 bindingURI = URI.create(wsBinding.getName());
             } else {
-                bindingURI = URI.create(contract.getName());
+                bindingURI = URI.create("$callback$." + wsBinding.getName());
             }
         }
 
@@ -329,7 +330,7 @@
 
     /**
      * @param inMC
-     * @return
+     * @return conversationID
      */
     protected static String getConversationID(MessageContext inMC) {
         String conversationID = null;
@@ -355,6 +356,35 @@
 
         }
         return conversationID;
+    }
+
+    //FIXME: is there any way to use the Axis2 addressing support for this?
+     /**
+     * @param inMC
+     * @return fromEPR
+     */
+    protected String getFromEPR(MessageContext inMC) {
+        String fromEPR = null;
+        if (contract instanceof RuntimeComponentService &&
+            contract.getInterfaceContract().getCallbackInterface() != null) {
+            //FIXME: this code can get a NPE if WS-Addressing information is not present
+            Iterator i =
+                inMC.getEnvelope().getHeader()
+                    .getChildrenWithName(new QName("http://www.w3.org/2005/08/addressing", "From"));
+            for (; i.hasNext();) {
+                Object a = i.next();
+                if (a instanceof OMElement) {
+                    OMElement ao = (OMElement)a;
+                    for (Iterator adI =
+                            ao.getChildrenWithName(new QName("http://www.w3.org/2005/08/addressing", "Address"));
+                            adI.hasNext();) {
+                        OMElement adE = (OMElement)adI.next();
+                        fromEPR = adE.getText();
+                    }
+                }
+            }
+        }
+        return fromEPR;
     }
 
     public Object invokeTarget(Operation op,

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/AbstractInvocationHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/AbstractInvocationHandler.java?view=diff&rev=558461&r1=558460&r2=558461
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/AbstractInvocationHandler.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/AbstractInvocationHandler.java Sat Jul 21 21:27:27 2007
@@ -29,6 +29,7 @@
 import org.apache.tuscany.sca.invocation.Invoker;
 import org.apache.tuscany.sca.invocation.Message;
 import org.apache.tuscany.sca.invocation.MessageFactory;
+import org.apache.tuscany.sca.runtime.EndpointReference;
 import org.apache.tuscany.sca.runtime.RuntimeWire;
 import org.osoa.sca.Conversation;
 
@@ -57,6 +58,7 @@
 
         Message msgContext = ThreadMessageContext.getMessageContext();
         Object  msgContextConversationId = msgContext.getConversationID();
+        EndpointReference epTo = msgContext.getTo();   
         
         Message msg = messageFactory.createMessage();
                
@@ -129,7 +131,11 @@
         }
         msg.setBody(args);
         msg.setFrom(wire.getSource());
-        msg.setTo(wire.getTarget());
+        if (epTo != null) {
+            msg.setTo(epTo);
+        } else {
+            msg.setTo(wire.getTarget());
+        }
         ThreadMessageContext.setMessageContext(msg);
         try {
             // dispatch the wire down the chain and get the response

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/CompositeActivatorImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/CompositeActivatorImpl.java?view=diff&rev=558461&r1=558460&r2=558461
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/CompositeActivatorImpl.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/CompositeActivatorImpl.java Sat Jul 21 21:27:27 2007
@@ -555,8 +555,13 @@
         }
         RuntimeWire wire = createServiceWire(service, component, binding, null, null, binding, isCallback);
 
-        //FIXME: need better way to create the source URI
-        wire.getSource().setURI(binding.getURI());
+        //FIXME: need to decide if this is the best way to create the source URI
+        // The source URI is used by JDKCallbackInvocationHandler to find the callback wire
+        // corresponding to the forward wire that was used to invoke the service.
+        // This only works if the source URI is the same for the matched pair of forward and
+        // callback wires.  The binding name seems a reasonable key to use for this match,
+        // as it allows the user to control which callback binding should be selected.
+        wire.getSource().setURI(binding.getName());
     }
 
     /**

Modified: incubator/tuscany/java/sca/samples/simple-callback-ws/src/main/resources/simplecallback.composite
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/simple-callback-ws/src/main/resources/simplecallback.composite?view=diff&rev=558461&r1=558460&r2=558461
==============================================================================
--- incubator/tuscany/java/sca/samples/simple-callback-ws/src/main/resources/simplecallback.composite (original)
+++ incubator/tuscany/java/sca/samples/simple-callback-ws/src/main/resources/simplecallback.composite Sat Jul 21 21:27:27 2007
@@ -28,7 +28,12 @@
                 callbackInterface="simplecallback.MyServiceCallback" />
             <binding.ws wsdlElement="http://simplecallback#wsdl.port(MyServiceSoapService/MyServiceSoapPort)" />
             <callback>
+                <!-- comment out the following for tactical==false -->
                 <binding.ws wsdlElement="http://simplecallback#wsdl.binding(MyServiceCallbackSoapBinding)" />
+                <!-- end of commented out code -->
+                <!-- uncomment the following for tactical==false
+                <binding.ws wsdlElement="http://simplecallback#wsdl.port(MyServiceCallbackSoapService/MyServiceCallbackSoapPort)" />
+                ... end of commented out code -->
             </callback>
         </reference>
         <implementation.java class="simplecallback.MyClientImpl" />
@@ -40,7 +45,12 @@
                 callbackInterface="http://simplecallback#wsdl.interface(MyServiceCallback)" />
             <binding.ws wsdlElement="http://simplecallback#wsdl.port(MyServiceSoapService/MyServiceSoapPort)" />
             <callback>
+                <!-- comment out the following for tactical==false -->
                 <binding.ws wsdlElement="http://simplecallback#wsdl.binding(MyServiceCallbackSoapBinding)" />
+                <!-- end of commented out code -->
+                <!-- uncomment the following for tactical==false
+                <binding.ws wsdlElement="http://simplecallback#wsdl.port(MyServiceCallbackSoapService/MyServiceCallbackSoapPort)" />
+                ... end of commented out code -->
             </callback>
         </service>
         <implementation.java class="simplecallback.MyServiceImpl" />

Modified: incubator/tuscany/java/sca/samples/simple-callback-ws/src/main/resources/wsdl/simplecallback.wsdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/simple-callback-ws/src/main/resources/wsdl/simplecallback.wsdl?view=diff&rev=558461&r1=558460&r2=558461
==============================================================================
--- incubator/tuscany/java/sca/samples/simple-callback-ws/src/main/resources/wsdl/simplecallback.wsdl (original)
+++ incubator/tuscany/java/sca/samples/simple-callback-ws/src/main/resources/wsdl/simplecallback.wsdl Sat Jul 21 21:27:27 2007
@@ -69,7 +69,9 @@
     <wsdl:portType name="MyService">
         <wsdl:operation name="someMethod">
             <wsdl:input message="tns:someMethodRequest" name="someMethodRequest"/>
+            <!-- comment out the following for tactical==false -->
             <wsdl:output message="tns:someMethodResponse" name="someMethodResponse"/>
+            <!-- end of commented out code -->
         </wsdl:operation>
     </wsdl:portType>
 
@@ -87,9 +89,11 @@
             <wsdl:input name="someMethodRequest">
                 <wsdlsoap:body use="literal"/>
             </wsdl:input>
+            <!-- comment out the following for tactical==false -->
             <wsdl:output name="someMethodResponse">
                 <wsdlsoap:body use="literal"/>
             </wsdl:output>
+            <!-- end of commented out code -->
         </wsdl:operation>
     </wsdl:binding>
 
@@ -109,6 +113,13 @@
     <wsdl:service name="MyServiceSoapService">
         <wsdl:port binding="tns:MyServiceSoapBinding" name="MyServiceSoapPort">
             <wsdlsoap:address location="http://localhost:8085/MyServiceComponent"/>
+        </wsdl:port>
+    </wsdl:service>
+
+    <!--FIXME: remove the need for this fake service in the WSDL -->
+    <wsdl:service name="MyServiceCallbackSoapService">
+        <wsdl:port binding="tns:MyServiceCallbackSoapBinding" name="MyServiceCallbackSoapPort">
+            <!-- callback address needs to be determined dynamically -->
         </wsdl:port>
     </wsdl:service>
 



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