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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to