You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2007/05/12 05:18:07 UTC

svn commit: r537327 - in /incubator/tuscany/java/sca: modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/ modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/ modules/contribution-impl/src/main/java/org/apache/tuscany/...

Author: jsdelfino
Date: Fri May 11 20:18:05 2007
New Revision: 537327

URL: http://svn.apache.org/viewvc?view=rev&rev=537327
Log:
Moved MessageImpl out of the invocation SPI package as it's not an SPI. Changed ConversationSequence to a clean enum.

Added:
    incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/MessageFactory.java   (with props)
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/MessageFactoryImpl.java   (with props)
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/MessageImpl.java   (with props)
Removed:
    incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/MessageImpl.java
Modified:
    incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProvider.java
    incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProviderFactory.java
    incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIModuleActivator.java
    incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingInvoker.java
    incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingProviderFactory.java
    incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2CallbackInvocationHandler.java
    incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ModuleActivator.java
    incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceBindingProvider.java
    incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceCallback.java
    incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceCallbackTargetInvoker.java
    incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ServiceBindingProvider.java
    incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/service/impl/ContributionServiceImpl.java
    incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/contribution/service/ContributionService.java
    incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/AbstractInvocationHandler.java
    incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/ConversationSequence.java
    incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/Message.java
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKCallbackInvocationHandler.java
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKInvocationHandler.java
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKProxyService.java
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/NonBlockingInterceptor.java
    incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/wire/CallbackInterfaceInterceptorTestCase.java
    incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/wire/NonBlockingInterceptorTestCase.java
    incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/impl/ReallySmallRuntimeBuilder.java
    incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/invocation/JavaTargetInvoker.java
    incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/invocation/TargetInvoker.java
    incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/implementation/java/mock/MockStaticInvoker.java
    incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/module/EchoModuleActivator.java
    incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/provider/EchoBindingProviderFactory.java
    incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/provider/EchoServiceBindingProvider.java
    incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/server/EchoService.java
    incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/module/EchoModuleActivator.java
    incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/provider/EchoBindingProviderFactory.java
    incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/provider/EchoServiceBindingProvider.java
    incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/server/EchoService.java

Modified: incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProvider.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProvider.java (original)
+++ incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProvider.java Fri May 11 20:18:05 2007
@@ -42,7 +42,7 @@
 import org.apache.tuscany.sca.core.RuntimeComponentService;
 import org.apache.tuscany.sca.invocation.Invoker;
 import org.apache.tuscany.sca.invocation.Message;
-import org.apache.tuscany.sca.invocation.MessageImpl;
+import org.apache.tuscany.sca.invocation.MessageFactory;
 import org.apache.tuscany.sca.provider.ReferenceBindingProvider;
 import org.apache.tuscany.sca.provider.ServiceBindingProvider;
 import org.apache.tuscany.sca.spi.component.WorkContextTunnel;
@@ -56,6 +56,7 @@
     private RuntimeComponentService service;
     private RuntimeComponentReference reference;
     private RMIBinding binding;
+    private MessageFactory messageFactory;
     private RMIHost rmiHost;
 
     // need this member to morph the service interface to extend from Remote if
@@ -70,11 +71,13 @@
     public RMIBindingProvider(RuntimeComponent component,
                               RuntimeComponentService service,
                               RMIBinding binding,
+                              MessageFactory messageFactory,
                               RMIHost rmiHost) {
         this.component = component;
         this.service = service;
         this.binding = binding;
         this.rmiHost = rmiHost;
+        this.messageFactory = messageFactory;
     }
 
     public RMIBindingProvider(RuntimeComponent component,
@@ -198,7 +201,8 @@
     }
 
     public Object invokeTarget(Operation op, Object[] args) throws InvocationTargetException {
-        Message requestMsg = new MessageImpl();
+        
+        Message requestMsg = messageFactory.createMessage();
         requestMsg.setWorkContext(WorkContextTunnel.getThreadWorkContext());
         requestMsg.setBody(args);
 

Modified: incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProviderFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProviderFactory.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProviderFactory.java (original)
+++ incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProviderFactory.java Fri May 11 20:18:05 2007
@@ -21,6 +21,7 @@
 import org.apache.tuscany.sca.core.RuntimeComponent;
 import org.apache.tuscany.sca.core.RuntimeComponentReference;
 import org.apache.tuscany.sca.core.RuntimeComponentService;
+import org.apache.tuscany.sca.invocation.MessageFactory;
 import org.apache.tuscany.sca.provider.BindingProviderFactory;
 import org.apache.tuscany.sca.provider.ReferenceBindingProvider;
 import org.apache.tuscany.sca.provider.ServiceBindingProvider;
@@ -35,9 +36,11 @@
 public class RMIBindingProviderFactory implements BindingProviderFactory<RMIBinding> {
 
     private RMIHost rmiHost;
+    private MessageFactory messageFactory;
     
-    public RMIBindingProviderFactory(RMIHost rmiHost) {
+    public RMIBindingProviderFactory(MessageFactory messageFactory, RMIHost rmiHost) {
         this.rmiHost = rmiHost;
+        this.messageFactory = messageFactory;
     }
 
     public ReferenceBindingProvider createReferenceBindingProvider(RuntimeComponent component, RuntimeComponentReference reference, RMIBinding binding) {
@@ -45,7 +48,7 @@
     }
 
     public ServiceBindingProvider createServiceBindingProvider(RuntimeComponent component, RuntimeComponentService service, RMIBinding binding) {
-        return new RMIBindingProvider(component, service, binding, rmiHost);
+        return new RMIBindingProvider(component, service, binding, messageFactory, rmiHost);
     }
     
     public Class<RMIBinding> getModelType() {

Modified: incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIModuleActivator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIModuleActivator.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIModuleActivator.java (original)
+++ incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIModuleActivator.java Fri May 11 20:18:05 2007
@@ -30,6 +30,8 @@
 import org.apache.tuscany.rmi.RMIHost;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.core.ModuleActivator;
+import org.apache.tuscany.sca.core.invocation.MessageFactoryImpl;
+import org.apache.tuscany.sca.invocation.MessageFactory;
 import org.apache.tuscany.sca.provider.ProviderFactoryExtensionPoint;
 
 public class RMIModuleActivator implements ModuleActivator {
@@ -46,7 +48,8 @@
         processors.addArtifactProcessor(new RMIBindingProcessor(assemblyFactory, policyFactory, rmiFactory));
         
         ProviderFactoryExtensionPoint providerFactories = registry.getExtensionPoint(ProviderFactoryExtensionPoint.class);
-        providerFactories.addProviderFactory(new RMIBindingProviderFactory(rmiHost));
+        MessageFactory messageFactory = new MessageFactoryImpl();
+        providerFactories.addProviderFactory(new RMIBindingProviderFactory(messageFactory, rmiHost));
     }
 
     public void stop(ExtensionPointRegistry registry) {

Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingInvoker.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingInvoker.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingInvoker.java Fri May 11 20:18:05 2007
@@ -36,6 +36,7 @@
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.wsdl.WSDLConstants;
 import org.apache.tuscany.assembly.xml.Constants;
+import org.apache.tuscany.sca.invocation.ConversationSequence;
 import org.apache.tuscany.sca.invocation.Invoker;
 import org.apache.tuscany.sca.invocation.Message;
 import org.apache.tuscany.sca.scope.Scope;
@@ -84,7 +85,7 @@
         return msg;
     }
 
-    protected Object invokeTarget(final Object payload, final short sequence, WorkContext workContext) throws InvocationTargetException {
+    protected Object invokeTarget(final Object payload, final ConversationSequence sequence, WorkContext workContext) throws InvocationTargetException {
         try {
 
             Object[] args = (Object[]) payload;

Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingProviderFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingProviderFactory.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingProviderFactory.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingProviderFactory.java Fri May 11 20:18:05 2007
@@ -23,6 +23,7 @@
 import org.apache.tuscany.sca.core.RuntimeComponent;
 import org.apache.tuscany.sca.core.RuntimeComponentReference;
 import org.apache.tuscany.sca.core.RuntimeComponentService;
+import org.apache.tuscany.sca.invocation.MessageFactory;
 import org.apache.tuscany.sca.provider.BindingProviderFactory;
 import org.apache.tuscany.sca.provider.ReferenceBindingProvider;
 import org.apache.tuscany.sca.provider.ServiceBindingProvider;
@@ -35,18 +36,20 @@
 
 public class Axis2BindingProviderFactory implements BindingProviderFactory<WebServiceBinding> {
 
+    private MessageFactory messageFactory;
     private ServletHost servletHost;
 
-    public Axis2BindingProviderFactory(ServletHost servletHost) {
+    public Axis2BindingProviderFactory(ServletHost servletHost, MessageFactory messageFactory) {
         this.servletHost = servletHost;
+        this.messageFactory = messageFactory;
     }
 
     public ReferenceBindingProvider createReferenceBindingProvider(RuntimeComponent component, RuntimeComponentReference reference, WebServiceBinding binding) {
-        return new Axis2ReferenceBindingProvider(component, reference, binding);
+        return new Axis2ReferenceBindingProvider(component, reference, binding, messageFactory);
     }
 
     public ServiceBindingProvider createServiceBindingProvider(RuntimeComponent component, RuntimeComponentService service, WebServiceBinding binding) {
-        return new Axis2ServiceBindingProvider(component, service, binding, servletHost);
+        return new Axis2ServiceBindingProvider(component, service, binding, servletHost, messageFactory);
     }
     
     public Class<WebServiceBinding> getModelType() {

Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2CallbackInvocationHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2CallbackInvocationHandler.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2CallbackInvocationHandler.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2CallbackInvocationHandler.java Fri May 11 20:18:05 2007
@@ -24,12 +24,14 @@
 import org.apache.tuscany.interfacedef.Operation;
 import org.apache.tuscany.sca.core.RuntimeWire;
 import org.apache.tuscany.sca.invocation.AbstractInvocationHandler;
+import org.apache.tuscany.sca.invocation.MessageFactory;
 
 public class Axis2CallbackInvocationHandler extends AbstractInvocationHandler {
 
     private RuntimeWire wire;
 
-    public Axis2CallbackInvocationHandler(RuntimeWire wire) {
+    public Axis2CallbackInvocationHandler(MessageFactory messageFactory, RuntimeWire wire) {
+        super(messageFactory, false);
         this.wire = wire;
     }
 

Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ModuleActivator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ModuleActivator.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ModuleActivator.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ModuleActivator.java Fri May 11 20:18:05 2007
@@ -36,6 +36,8 @@
 import org.apache.tuscany.policy.PolicyFactory;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.core.ModuleActivator;
+import org.apache.tuscany.sca.core.invocation.MessageFactoryImpl;
+import org.apache.tuscany.sca.invocation.MessageFactory;
 import org.apache.tuscany.sca.provider.ProviderFactoryExtensionPoint;
 
 public class Axis2ModuleActivator implements ModuleActivator {
@@ -46,6 +48,7 @@
         PolicyFactory policyFactory = new DefaultPolicyFactory();
         WebServiceBindingFactory wsFactory = new DefaultWebServiceBindingFactory();
         WSDLFactory wsdlFactory = new DefaultWSDLFactory();
+        MessageFactory messageFactory = new MessageFactoryImpl();
         
         StAXArtifactProcessorExtensionPoint processors = registry.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class);
         WSDLInterfaceIntrospector introspector = new DefaultWSDLInterfaceIntrospector(wsdlFactory);
@@ -55,7 +58,7 @@
 
         ProviderFactoryExtensionPoint providerFactories = registry.getExtensionPoint(ProviderFactoryExtensionPoint.class);
         ServletHost servletHost = registry.getExtensionPoint(ServletHost.class);
-        Axis2BindingProviderFactory providerFactory = new Axis2BindingProviderFactory(servletHost);
+        Axis2BindingProviderFactory providerFactory = new Axis2BindingProviderFactory(servletHost, messageFactory);
         providerFactories.addProviderFactory(providerFactory);
     }
 

Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceBindingProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceBindingProvider.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceBindingProvider.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceBindingProvider.java Fri May 11 20:18:05 2007
@@ -45,10 +45,12 @@
 import org.apache.tuscany.sca.core.RuntimeComponentReference;
 import org.apache.tuscany.sca.core.RuntimeWire;
 import org.apache.tuscany.sca.invocation.Invoker;
+import org.apache.tuscany.sca.invocation.MessageFactory;
 import org.apache.tuscany.sca.provider.ReferenceBindingProvider;
 
 public class Axis2ReferenceBindingProvider implements ReferenceBindingProvider {
 
+    private MessageFactory messageFactory;
     private RuntimeComponent component;
     private RuntimeComponentReference reference;
     private WebServiceBinding wsBinding;
@@ -57,15 +59,13 @@
 
     public Axis2ReferenceBindingProvider(RuntimeComponent component,
                                          RuntimeComponentReference reference,
-                                         WebServiceBinding wsBinding) {
-
-        // TODO: before the SPI changes, a composite reference was passed to the
-        // builder.
-        // Is the change to a component reference OK?
+                                         WebServiceBinding wsBinding,
+                                         MessageFactory messageFactory) {
 
         this.component = component;
         this.reference = reference;
         this.wsBinding = wsBinding;
+        this.messageFactory = messageFactory;
 
         try {
             TuscanyAxisConfigurator tuscanyAxisConfigurator = new TuscanyAxisConfigurator();
@@ -168,7 +168,7 @@
 
             RuntimeWire wire = reference.getRuntimeWire(wsBinding);
             Operation callbackOperation = findCallbackOperation(wire);
-            Axis2CallbackInvocationHandler invocationHandler = new Axis2CallbackInvocationHandler(wire);
+            Axis2CallbackInvocationHandler invocationHandler = new Axis2CallbackInvocationHandler(messageFactory, wire);
             Axis2ReferenceCallbackTargetInvoker callbackInvoker = new Axis2ReferenceCallbackTargetInvoker(
                                                                                                           callbackOperation,
                                                                                                           wire,

Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceCallback.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceCallback.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceCallback.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceCallback.java Fri May 11 20:18:05 2007
@@ -38,7 +38,7 @@
         MessageContext responseMC = result.getResponseMessageContext();
         OMElement responseOM = responseMC.getEnvelope().getBody().getFirstElement();
         try {
-            targetInvoker.invokeTarget(new Object[] {responseOM}, ConversationSequence.NONE, null);
+            targetInvoker.invokeTarget(new Object[] {responseOM}, null, null);
         } catch (InvocationTargetException e) {
             // FIXME what is the appropriate exception here?
             throw new RuntimeException(e);

Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceCallbackTargetInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceCallbackTargetInvoker.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceCallbackTargetInvoker.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceCallbackTargetInvoker.java Fri May 11 20:18:05 2007
@@ -48,7 +48,7 @@
         this.invocationHandler = invocationHandler;
     }
 
-    public Object invokeTarget(final Object payload, final short sequence, WorkContext workContext) throws InvocationTargetException {
+    public Object invokeTarget(final Object payload, final ConversationSequence sequence, WorkContext workContext) throws InvocationTargetException {
         Object[] args;
         if (payload != null && !payload.getClass().isArray()) {
             args = new Object[]{payload};
@@ -70,7 +70,7 @@
 
     public Message invoke(Message msg) {
         try {
-            Object resp = invokeTarget(msg.getBody(), ConversationSequence.NONE, null);
+            Object resp = invokeTarget(msg.getBody(), null, null);
             msg.setBody(resp);
         } catch (InvocationTargetException e) {
             msg.setFaultBody(e.getCause());

Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ServiceBindingProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ServiceBindingProvider.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ServiceBindingProvider.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ServiceBindingProvider.java Fri May 11 20:18:05 2007
@@ -54,7 +54,7 @@
 import org.apache.tuscany.sca.core.RuntimeComponentService;
 import org.apache.tuscany.sca.invocation.Invoker;
 import org.apache.tuscany.sca.invocation.Message;
-import org.apache.tuscany.sca.invocation.MessageImpl;
+import org.apache.tuscany.sca.invocation.MessageFactory;
 import org.apache.tuscany.sca.provider.ServiceBindingProvider;
 import org.apache.tuscany.sca.scope.Scope;
 import org.apache.tuscany.sca.spi.component.WorkContext;
@@ -67,6 +67,7 @@
     private WebServiceBinding wsBinding;
     private ServletHost servletHost;
     private ConfigurationContext configContext;
+    private MessageFactory messageFactory;
 
     // TODO: what to do about the base URI?
     private static final String BASE_URI = "http://localhost:8080/";
@@ -74,12 +75,14 @@
     public Axis2ServiceBindingProvider(RuntimeComponent component,
                                        RuntimeComponentService service,
                                        WebServiceBinding wsBinding,
-                                       ServletHost servletHost) {
+                                       ServletHost servletHost,
+                                       MessageFactory messageFactory) {
 
         this.component = component;
         this.service = service;
         this.wsBinding = wsBinding;
         this.servletHost = servletHost;
+        this.messageFactory = messageFactory;
 
         try {
             TuscanyAxisConfigurator tuscanyAxisConfigurator = new TuscanyAxisConfigurator();
@@ -365,7 +368,7 @@
     public Object invokeTarget(Operation op, Object[] args, Object messageId, String conversationID)
         throws InvocationTargetException {
 
-        Message requestMsg = new MessageImpl();
+        Message requestMsg = messageFactory.createMessage();
 
         if (messageId != null) {
             requestMsg.setMessageID(messageId);

Modified: incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/service/impl/ContributionServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/service/impl/ContributionServiceImpl.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/service/impl/ContributionServiceImpl.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/service/impl/ContributionServiceImpl.java Fri May 11 20:18:05 2007
@@ -25,9 +25,9 @@
 import java.net.URL;
 import java.net.URLClassLoader;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 
 import javax.xml.stream.XMLInputFactory;
 import javax.xml.stream.XMLStreamException;
@@ -79,9 +79,9 @@
     private ContributionMetadataLoaderImpl contributionLoader;
 
     /**
-     * Contribution registry This is a registry of processed Contributios index by URI
+     * Contribution registry This is a registry of processed Contributions indexed by URI
      */
-    private Map<String, Contribution> contributionRegistry = new HashMap<String, Contribution>();
+    private Map<String, Contribution> contributionRegistry = new ConcurrentHashMap<String, Contribution>();
 
     /**
      * Contribution model facotry
@@ -174,7 +174,6 @@
     }
 
     public void remove(String contribution) throws ContributionException {
-        // remove from repository
         this.contributionRegistry.remove(contribution);
     }
 
@@ -186,14 +185,6 @@
         contribution.getArtifacts().add(artifact);
 
         contribution.getDeployables().add(composite);
-    }
-
-    public <M> M resolve(Class modelClass,
-                         Class<M> elementClass,
-                         Object modelKey,
-                         Object elementKey,
-                         Map<String, Object> attributes) {
-        return null;
     }
 
     /**

Modified: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/contribution/service/ContributionService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/contribution/service/ContributionService.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/contribution/service/ContributionService.java (original)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/contribution/service/ContributionService.java Fri May 11 20:18:05 2007
@@ -21,7 +21,6 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URL;
-import java.util.Map;
 
 import org.apache.tuscany.assembly.Composite;
 import org.apache.tuscany.contribution.Contribution;
@@ -99,16 +98,4 @@
      */
     void remove(String contribution) throws ContributionException;
 
-    /**
-    * Resolve an artifact by QName within the contribution
-    * 
-    * @param <T> The java type of the artifact such as javax.wsdl.Definition
-    * @param contribution The URI of the contribution
-    * @param definitionType The java type of the artifact
-    * @param namespace The namespace of the artifact
-    * @param name The name of the artifact
-    * @return The resolved artifact
-    */
-    <M> M resolve(Class modelClass, Class<M> elementClass, Object modelKey, Object elementKey, Map<String, Object> attributes);
- 
 }

Modified: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/AbstractInvocationHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/AbstractInvocationHandler.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/AbstractInvocationHandler.java (original)
+++ incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/AbstractInvocationHandler.java Fri May 11 20:18:05 2007
@@ -34,12 +34,11 @@
 public abstract class AbstractInvocationHandler {
     protected boolean conversational;
     private boolean conversationStarted;
+    private MessageFactory messageFactory;
 
-    protected AbstractInvocationHandler(boolean conversational) {
+    protected AbstractInvocationHandler(MessageFactory messageFactory, boolean conversational) {
         this.conversational = conversational;
-    }
-
-    public AbstractInvocationHandler() {
+        this.messageFactory = messageFactory;
     }
 
     protected Object invoke(InvocationChain chain,
@@ -48,7 +47,7 @@
                             LinkedList<URI> callbackUris, WorkContext workContext)
         throws Throwable {
         Invoker headInvoker = chain.getHeadInvoker();
-        Message msg = new MessageImpl();
+        Message msg = messageFactory.createMessage();
         msg.setWorkContext(workContext);
         msg.setCorrelationID(workContext.getCorrelationId());
         Operation operation = chain.getTargetOperation();
@@ -56,14 +55,14 @@
         if (contract != null && contract.isConversational()) {
             Operation.ConversationSequence sequence = chain.getTargetOperation().getConversationSequence();
             if (sequence == Operation.ConversationSequence.CONVERSATION_END) {
-                msg.setConversationSequence(ConversationSequence.END);
+                msg.setConversationSequence(ConversationSequence.CONVERSATION_END);
                 conversationStarted = false;
             } else if (sequence == Operation.ConversationSequence.CONVERSATION_CONTINUE) {
                 if (conversationStarted) {
-                    msg.setConversationSequence(ConversationSequence.CONTINUE);
+                    msg.setConversationSequence(ConversationSequence.CONVERSATION_CONTINUE);
                 } else {
                     conversationStarted = true;
-                    msg.setConversationSequence(ConversationSequence.START);
+                    msg.setConversationSequence(ConversationSequence.CONVERSATION_START);
                 }
             }
         }

Modified: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/ConversationSequence.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/ConversationSequence.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/ConversationSequence.java (original)
+++ incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/ConversationSequence.java Fri May 11 20:18:05 2007
@@ -19,14 +19,6 @@
 
 package org.apache.tuscany.sca.invocation;
 
-//FIXME remove this
-public interface ConversationSequence {
-    /* indicates that no conversational sequence is associated with the message */
-    short NONE = 0;
-    /* indicates that the message initiates a conversation */
-    short START = 1;
-    /* indicates that the message continues a conversation */
-    short CONTINUE = 2;
-    /* indicates that the message ends a conversation */
-    short END = 3;
+public enum ConversationSequence {
+    CONVERSATION_START, CONVERSATION_CONTINUE, CONVERSATION_END 
 }

Modified: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/Message.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/Message.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/Message.java (original)
+++ incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/Message.java Fri May 11 20:18:05 2007
@@ -114,14 +114,13 @@
      *
      * @return the conversational sequence the message is associated with
      */
-    short getConversationSequence();
+    ConversationSequence getConversationSequence();
 
     /**
-     * Returns the conversational sequence the message is associated with, NONE, START, CONTINUE, or END on {@link
-     * TargetInvoker}
+     * Returns the conversational sequence the message is associated with, NONE, START, CONTINUE, or END
      *
      * @param sequence the conversational sequence
      */
-    void setConversationSequence(short sequence);
+    void setConversationSequence(ConversationSequence sequence);
 
 }

Added: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/MessageFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/MessageFactory.java?view=auto&rev=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/MessageFactory.java (added)
+++ incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/MessageFactory.java Fri May 11 20:18:05 2007
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.    
+ */
+package org.apache.tuscany.sca.invocation;
+
+
+/**
+ * A factory for messages
+ *
+ * @version $Rev $Date
+ */
+public interface MessageFactory {
+
+    /**
+     * Creates a new message.
+     * 
+     * @return
+     */
+    Message createMessage();
+    
+}

Propchange: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/MessageFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/MessageFactory.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKCallbackInvocationHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKCallbackInvocationHandler.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKCallbackInvocationHandler.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKCallbackInvocationHandler.java Fri May 11 20:18:05 2007
@@ -34,6 +34,7 @@
 import org.apache.tuscany.sca.core.RuntimeWire;
 import org.apache.tuscany.sca.invocation.AbstractInvocationHandler;
 import org.apache.tuscany.sca.invocation.InvocationChain;
+import org.apache.tuscany.sca.invocation.MessageFactory;
 import org.apache.tuscany.sca.spi.component.WorkContext;
 import org.osoa.sca.NoRegisteredCallbackException;
 
@@ -52,12 +53,14 @@
     /**
      * Constructor used for deserialization only
      */
-    public JDKCallbackInvocationHandler() {
+    public JDKCallbackInvocationHandler(MessageFactory messageFactory) {
+        super(messageFactory, false);
         sourceWireNames = new ArrayList<String>();
         wires = new HashMap<URI, RuntimeWire>();
     }
 
-    public JDKCallbackInvocationHandler(List<RuntimeWire> wireList, WorkContext context) {
+    public JDKCallbackInvocationHandler(MessageFactory messageFactory, List<RuntimeWire> wireList, WorkContext context) {
+        super(messageFactory, false);
         this.context = context;
         this.wires = new HashMap<URI, RuntimeWire>();
         for (RuntimeWire wire : wireList) {

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKInvocationHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKInvocationHandler.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKInvocationHandler.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKInvocationHandler.java Fri May 11 20:18:05 2007
@@ -33,6 +33,7 @@
 import org.apache.tuscany.sca.core.RuntimeWire;
 import org.apache.tuscany.sca.invocation.AbstractInvocationHandler;
 import org.apache.tuscany.sca.invocation.InvocationChain;
+import org.apache.tuscany.sca.invocation.MessageFactory;
 import org.apache.tuscany.sca.scope.Scope;
 import org.apache.tuscany.sca.spi.component.WorkContext;
 import org.apache.tuscany.sca.spi.component.WorkContextTunnel;
@@ -53,8 +54,8 @@
     // if the associated wire is conversational
     private transient boolean conversational;
 
-    public JDKInvocationHandler(Class<?> proxyInterface, RuntimeWire wire, WorkContext workContext) {
-        super();
+    public JDKInvocationHandler(MessageFactory messageFactory, Class<?> proxyInterface, RuntimeWire wire, WorkContext workContext) {
+        super(messageFactory, false);
         this.proxyInterface = proxyInterface;
         this.wire = wire;
         this.workContext = workContext;

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKProxyService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKProxyService.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKProxyService.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKProxyService.java Fri May 11 20:18:05 2007
@@ -23,6 +23,7 @@
 
 import org.apache.tuscany.interfacedef.InterfaceContractMapper;
 import org.apache.tuscany.sca.core.RuntimeWire;
+import org.apache.tuscany.sca.invocation.MessageFactory;
 import org.apache.tuscany.sca.invocation.ProxyCreationException;
 import org.apache.tuscany.sca.invocation.ProxyFactory;
 import org.apache.tuscany.sca.spi.component.WorkContext;
@@ -37,27 +38,25 @@
 public class JDKProxyService implements ProxyFactory {
     protected WorkContext context;
     protected InterfaceContractMapper contractMapper;
+    private MessageFactory messageFactory;
 
-    public JDKProxyService() {
-        this(null, null);
-    }
-
-    public JDKProxyService(WorkContext context, InterfaceContractMapper mapper) {
+    public JDKProxyService(MessageFactory messageFactory, WorkContext context, InterfaceContractMapper mapper) {
         this.context = context;
         this.contractMapper = mapper;
+        this.messageFactory = messageFactory;
     }
 
     public <T> T createProxy(Class<T> interfaze, RuntimeWire wire) throws ProxyCreationException {
         assert interfaze != null;
         assert wire != null;
-        JDKInvocationHandler handler = new JDKInvocationHandler(interfaze, wire, context);
+        JDKInvocationHandler handler = new JDKInvocationHandler(messageFactory, interfaze, wire, context);
         ClassLoader cl = interfaze.getClassLoader();
         return interfaze.cast(Proxy.newProxyInstance(cl, new Class[] {interfaze}, handler));
     }
 
     public Object createCallbackProxy(Class<?> interfaze, List<RuntimeWire> wires) throws ProxyCreationException {
         ClassLoader cl = interfaze.getClassLoader();
-        JDKCallbackInvocationHandler handler = new JDKCallbackInvocationHandler(wires, context);
+        JDKCallbackInvocationHandler handler = new JDKCallbackInvocationHandler(messageFactory, wires, context);
         return interfaze.cast(Proxy.newProxyInstance(cl, new Class[] {interfaze}, handler));
     }
 

Added: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/MessageFactoryImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/MessageFactoryImpl.java?view=auto&rev=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/MessageFactoryImpl.java (added)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/MessageFactoryImpl.java Fri May 11 20:18:05 2007
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.    
+ */
+
+package org.apache.tuscany.sca.core.invocation;
+
+import org.apache.tuscany.sca.invocation.Message;
+import org.apache.tuscany.sca.invocation.MessageFactory;
+
+/**
+ * Implementation of MessageFactory.
+ *
+ * @version $Rev$ $Date$
+ */
+public class MessageFactoryImpl implements MessageFactory {
+
+    public Message createMessage() {
+        return new MessageImpl();
+    }
+
+}

Propchange: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/MessageFactoryImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/MessageFactoryImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/MessageImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/MessageImpl.java?view=auto&rev=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/MessageImpl.java (added)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/MessageImpl.java Fri May 11 20:18:05 2007
@@ -0,0 +1,111 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.    
+ */
+package org.apache.tuscany.sca.core.invocation;
+
+import java.util.LinkedList;
+
+import org.apache.tuscany.sca.core.RuntimeWire;
+import org.apache.tuscany.sca.invocation.ConversationSequence;
+import org.apache.tuscany.sca.invocation.Message;
+import org.apache.tuscany.sca.spi.component.WorkContext;
+
+/**
+ * The default implementation of a message flowed through a wire during an invocation
+ *
+ * @version $Rev $Date
+ */
+public class MessageImpl implements Message {
+    private Object body;
+    private LinkedList<RuntimeWire> callbackWires;
+    private Object messageID;
+    private Object correlationID;
+    private boolean isFault;
+    private ConversationSequence conversationSequence;
+    private WorkContext workContext;
+
+    protected MessageImpl() {
+    }
+
+    @SuppressWarnings("unchecked")
+    public Object getBody() {
+        return body;
+    }
+
+    public void setBody(Object body) {
+        this.isFault = false;
+        this.body = body;
+    }
+
+    public WorkContext getWorkContext() {
+        return workContext;
+    }
+
+    public void setWorkContext(WorkContext workContext) {
+        this.workContext = workContext;
+    }
+    
+    public ConversationSequence getConversationSequence() {
+        return conversationSequence;
+    }
+
+    public void setConversationSequence(ConversationSequence conversationSequence) {
+        this.conversationSequence = conversationSequence;
+    }
+
+    public void pushCallbackWire(RuntimeWire wire) {
+        if (callbackWires == null) {
+            callbackWires = new LinkedList<RuntimeWire>();
+        }
+        callbackWires.add(wire);
+    }
+
+    public LinkedList<RuntimeWire> getCallbackWires() {
+        return callbackWires;
+    }
+
+    public void setCallbackWires(LinkedList<RuntimeWire> wires) {
+        this.callbackWires = wires;
+    }
+
+    public Object getMessageID() {
+        return messageID;
+    }
+
+    public void setMessageID(Object messageId) {
+        this.messageID = messageId;
+    }
+
+    public Object getCorrelationID() {
+        return correlationID;
+    }
+
+    public void setCorrelationID(Object correlationId) {
+        this.correlationID = correlationId;
+    }
+
+    public boolean isFault() {
+        return isFault;
+    }
+
+    public void setFaultBody(Object fault) {
+        this.isFault = true;
+        this.body = fault;
+    }
+
+}

Propchange: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/MessageImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/MessageImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/NonBlockingInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/NonBlockingInterceptor.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/NonBlockingInterceptor.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/NonBlockingInterceptor.java Fri May 11 20:18:05 2007
@@ -143,12 +143,12 @@
             throw new UnsupportedOperationException();
         }
 
-        public short getConversationSequence() {
-            return ConversationSequence.NONE;
+        public void setConversationSequence(ConversationSequence sequence) {
+            throw new UnsupportedOperationException();
         }
-
-        public void setConversationSequence(short sequence) {
-
+        
+        public ConversationSequence getConversationSequence() {
+            return null;
         }
 
     }

Modified: incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/wire/CallbackInterfaceInterceptorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/wire/CallbackInterfaceInterceptorTestCase.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/wire/CallbackInterfaceInterceptorTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/wire/CallbackInterfaceInterceptorTestCase.java Fri May 11 20:18:05 2007
@@ -18,15 +18,14 @@
  */
 package org.apache.tuscany.sca.core.wire;
 
-import org.osoa.sca.NoRegisteredCallbackException;
+import junit.framework.TestCase;
 
 import org.apache.tuscany.sca.core.invocation.CallbackInterfaceInterceptor;
+import org.apache.tuscany.sca.core.invocation.MessageFactoryImpl;
 import org.apache.tuscany.sca.invocation.Interceptor;
 import org.apache.tuscany.sca.invocation.Message;
-import org.apache.tuscany.sca.invocation.MessageImpl;
-
-import junit.framework.TestCase;
 import org.easymock.EasyMock;
+import org.osoa.sca.NoRegisteredCallbackException;
 
 /**
  * @version $Rev$ $Date$
@@ -39,14 +38,14 @@
         EasyMock.expect(next.invoke(EasyMock.isA(Message.class))).andReturn(null);
         EasyMock.replay(next);
         interceptor.setNext(next);
-        interceptor.invoke(new MessageImpl());
+        interceptor.invoke(new MessageFactoryImpl().createMessage());
         EasyMock.verify(next);
     }
 
     public void testDoesNotImplement() {
         CallbackInterfaceInterceptor interceptor = new CallbackInterfaceInterceptor(false);
         try {
-            interceptor.invoke(new MessageImpl());
+            interceptor.invoke(new MessageFactoryImpl().createMessage());
             fail();
         } catch (NoRegisteredCallbackException e) {
             // expected

Modified: incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/wire/NonBlockingInterceptorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/wire/NonBlockingInterceptorTestCase.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/wire/NonBlockingInterceptorTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/wire/NonBlockingInterceptorTestCase.java Fri May 11 20:18:05 2007
@@ -26,10 +26,10 @@
 import static org.easymock.EasyMock.verify;
 import junit.framework.TestCase;
 
+import org.apache.tuscany.sca.core.invocation.MessageFactoryImpl;
 import org.apache.tuscany.sca.core.invocation.NonBlockingInterceptor;
 import org.apache.tuscany.sca.invocation.Interceptor;
 import org.apache.tuscany.sca.invocation.Message;
-import org.apache.tuscany.sca.invocation.MessageImpl;
 import org.apache.tuscany.sca.scope.Scope;
 import org.apache.tuscany.sca.spi.component.WorkContext;
 import org.apache.tuscany.sca.work.WorkScheduler;
@@ -58,7 +58,7 @@
         context.setCorrelationId(null);
         context.setIdentifier(Scope.CONVERSATION, convID);
         EasyMock.replay(context);
-        Message msg = new MessageImpl();
+        Message msg = new MessageFactoryImpl().createMessage();
         Interceptor next = EasyMock.createMock(Interceptor.class);
         EasyMock.expect(next.invoke(EasyMock.eq(msg))).andReturn(msg);
         EasyMock.replay(next);

Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/impl/ReallySmallRuntimeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/impl/ReallySmallRuntimeBuilder.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/impl/ReallySmallRuntimeBuilder.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/impl/ReallySmallRuntimeBuilder.java Fri May 11 20:18:05 2007
@@ -67,6 +67,7 @@
 import org.apache.tuscany.sca.core.invocation.DefaultWireProcessorExtensionPoint;
 import org.apache.tuscany.sca.core.invocation.ExtensibleWireProcessor;
 import org.apache.tuscany.sca.core.invocation.JDKProxyService;
+import org.apache.tuscany.sca.core.invocation.MessageFactoryImpl;
 import org.apache.tuscany.sca.core.runtime.ActivationException;
 import org.apache.tuscany.sca.core.runtime.CompositeActivator;
 import org.apache.tuscany.sca.core.runtime.DefaultCompositeActivator;
@@ -77,6 +78,7 @@
 import org.apache.tuscany.sca.core.scope.StatelessScopeContainerFactory;
 import org.apache.tuscany.sca.core.util.IOHelper;
 import org.apache.tuscany.sca.core.work.Jsr237WorkScheduler;
+import org.apache.tuscany.sca.invocation.MessageFactory;
 import org.apache.tuscany.sca.invocation.ProxyFactory;
 import org.apache.tuscany.sca.provider.DefaultProviderFactoryExtensionPoint;
 import org.apache.tuscany.sca.provider.ProviderFactoryExtensionPoint;
@@ -105,7 +107,8 @@
                                                   InterfaceContractMapper mapper) {
 
         // Create a proxy factory
-        ProxyFactory proxyFactory = new JDKProxyService(workContext, mapper);
+        MessageFactory messageFactory = new MessageFactoryImpl();
+        ProxyFactory proxyFactory = new JDKProxyService(messageFactory, workContext, mapper);
 
         // FIXME remove this
         registry.addExtensionPoint(ProxyFactory.class, proxyFactory);

Modified: incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/invocation/JavaTargetInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/invocation/JavaTargetInvoker.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/invocation/JavaTargetInvoker.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/invocation/JavaTargetInvoker.java Fri May 11 20:18:05 2007
@@ -22,6 +22,7 @@
 import java.lang.reflect.Method;
 
 import org.apache.tuscany.sca.core.RuntimeComponent;
+import org.apache.tuscany.sca.invocation.ConversationSequence;
 import org.apache.tuscany.sca.scope.InstanceWrapper;
 import org.apache.tuscany.sca.scope.Scope;
 import org.apache.tuscany.sca.scope.ScopeContainer;
@@ -65,30 +66,33 @@
     /**
      * Resolves the target service instance or returns a cached one
      */
-    protected InstanceWrapper getInstance(short sequence, Object contextId) throws TargetException {
-        switch (sequence) {
-            case NONE:
-                if (cacheable) {
-                    if (target == null) {
-                        target = scopeContainer.getWrapper(contextId);
-                    }
-                    return target;
-                } else {
-                    return scopeContainer.getWrapper(contextId);
+    protected InstanceWrapper getInstance(ConversationSequence sequence, Object contextId) throws TargetException {
+        if (sequence == null) {
+            if (cacheable) {
+                if (target == null) {
+                    target = scopeContainer.getWrapper(contextId);
                 }
-            case START:
-                assert !cacheable;
+                return target;
+            } else {
                 return scopeContainer.getWrapper(contextId);
-            case CONTINUE:
-            case END:
-                assert !cacheable;
-                return scopeContainer.getAssociatedWrapper(contextId);
-            default:
-                throw new InvalidConversationSequenceException("Unknown sequence type: " + String.valueOf(sequence));
+            }
+        }
+        else {
+            switch (sequence) {
+                case CONVERSATION_START:
+                    assert !cacheable;
+                    return scopeContainer.getWrapper(contextId);
+                case CONVERSATION_CONTINUE:
+                case CONVERSATION_END:
+                    assert !cacheable;
+                    return scopeContainer.getAssociatedWrapper(contextId);
+                default:
+                    throw new InvalidConversationSequenceException("Unknown sequence type: " + String.valueOf(sequence));
+            }
         }
     }
 
-    public Object invokeTarget(final Object payload, final short sequence, WorkContext workContext)
+    public Object invokeTarget(final Object payload, final ConversationSequence sequence, WorkContext workContext)
         throws InvocationTargetException {
         Object contextId = workContext.getIdentifier(scopeContainer.getScope());
         try {
@@ -101,7 +105,7 @@
                 ret = operation.invoke(instance, (Object[])payload);
             }
             scopeContainer.returnWrapper(wrapper, contextId);
-            if (sequence == END) {
+            if (sequence == ConversationSequence.CONVERSATION_END) {
                 // if end conversation, remove resource
                 scopeContainer.remove();
             }

Modified: incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/invocation/TargetInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/invocation/TargetInvoker.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/invocation/TargetInvoker.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/invocation/TargetInvoker.java Fri May 11 20:18:05 2007
@@ -20,6 +20,7 @@
 
 import java.lang.reflect.InvocationTargetException;
 
+import org.apache.tuscany.sca.invocation.ConversationSequence;
 import org.apache.tuscany.sca.invocation.Message;
 import org.apache.tuscany.sca.spi.component.WorkContext;
 
@@ -31,14 +32,6 @@
  * @Deprecated
  */
 public interface TargetInvoker extends Cloneable {
-    /* indicates that no conversational sequence is associated with the message */
-    short NONE = 0;
-    /* indicates that the message initiates a conversation */
-    short START = 1;
-    /* indicates that the message continues a conversation */
-    short CONTINUE = 2;
-    /* indicates that the message ends a conversation */
-    short END = 3;
 
     /**
      * Invokes an operation on a target with the given payload. Used in optmized cases where messages do not need to be
@@ -52,7 +45,7 @@
      * @return the result of the invocation
      * @throws InvocationTargetException if there was a problem invoking the target
      */
-    Object invokeTarget(final Object payload, final short sequence, WorkContext workContext)
+    Object invokeTarget(final Object payload, final ConversationSequence sequence, WorkContext workContext)
         throws InvocationTargetException;
 
     /**

Modified: incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/implementation/java/mock/MockStaticInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/implementation/java/mock/MockStaticInvoker.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/implementation/java/mock/MockStaticInvoker.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/implementation/java/mock/MockStaticInvoker.java Fri May 11 20:18:05 2007
@@ -22,6 +22,7 @@
 import java.lang.reflect.Method;
 
 import org.apache.tuscany.implementation.java.invocation.TargetInvoker;
+import org.apache.tuscany.sca.invocation.ConversationSequence;
 import org.apache.tuscany.sca.invocation.Interceptor;
 import org.apache.tuscany.sca.invocation.Message;
 import org.apache.tuscany.sca.spi.component.WorkContext;
@@ -53,7 +54,7 @@
         this.cacheable = cacheable;
     }
 
-    public Object invokeTarget(final Object payload, final short sequence, WorkContext workContext) throws InvocationTargetException {
+    public Object invokeTarget(final Object payload, final ConversationSequence sequence, WorkContext workContext) throws InvocationTargetException {
         try {
             if (payload != null && !payload.getClass().isArray()) {
                 return operation.invoke(instance, payload);
@@ -67,7 +68,7 @@
 
     public Message invoke(Message msg) {
         try {
-            Object resp = invokeTarget(msg.getBody(), TargetInvoker.NONE, null);
+            Object resp = invokeTarget(msg.getBody(), null, null);
             msg.setBody(resp);
         } catch (InvocationTargetException e) {
             msg.setFaultBody(e.getCause());

Modified: incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/module/EchoModuleActivator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/module/EchoModuleActivator.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/module/EchoModuleActivator.java (original)
+++ incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/module/EchoModuleActivator.java Fri May 11 20:18:05 2007
@@ -24,6 +24,8 @@
 import org.apache.tuscany.contribution.processor.StAXArtifactProcessorExtensionPoint;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.core.ModuleActivator;
+import org.apache.tuscany.sca.core.invocation.MessageFactoryImpl;
+import org.apache.tuscany.sca.invocation.MessageFactory;
 import org.apache.tuscany.sca.provider.ProviderFactoryExtensionPoint;
 
 import echo.DefaultEchoBindingFactory;
@@ -55,7 +57,8 @@
         processors.addArtifactProcessor(echoBindingProcessor);
         
         ProviderFactoryExtensionPoint providerFactories = registry.getExtensionPoint(ProviderFactoryExtensionPoint.class);
-        providerFactories.addProviderFactory(new EchoBindingProviderFactory());
+        MessageFactory messageFactory = new MessageFactoryImpl();
+        providerFactories.addProviderFactory(new EchoBindingProviderFactory(messageFactory));
        
         // Start the Echo server
         EchoServer.start();

Modified: incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/provider/EchoBindingProviderFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/provider/EchoBindingProviderFactory.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/provider/EchoBindingProviderFactory.java (original)
+++ incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/provider/EchoBindingProviderFactory.java Fri May 11 20:18:05 2007
@@ -22,6 +22,7 @@
 import org.apache.tuscany.sca.core.RuntimeComponent;
 import org.apache.tuscany.sca.core.RuntimeComponentReference;
 import org.apache.tuscany.sca.core.RuntimeComponentService;
+import org.apache.tuscany.sca.invocation.MessageFactory;
 import org.apache.tuscany.sca.provider.BindingProviderFactory;
 import org.apache.tuscany.sca.provider.ReferenceBindingProvider;
 import org.apache.tuscany.sca.provider.ServiceBindingProvider;
@@ -35,13 +36,19 @@
  * @version $Rev$ $Date$
  */
 public class EchoBindingProviderFactory implements BindingProviderFactory<EchoBinding> {
+    
+    private MessageFactory messageFactory;
+    
+    public EchoBindingProviderFactory(MessageFactory messageFactory) {
+        this.messageFactory = messageFactory;
+    }
 
     public ReferenceBindingProvider createReferenceBindingProvider(RuntimeComponent component, RuntimeComponentReference reference, EchoBinding binding) {
         return new EchoReferenceBindingProvider(component, reference, binding);
     }
 
     public ServiceBindingProvider createServiceBindingProvider(RuntimeComponent component, RuntimeComponentService service, EchoBinding binding) {
-        return new EchoServiceBindingProvider(component, service, binding);
+        return new EchoServiceBindingProvider(component, service, binding, messageFactory);
     }
     
     public Class<EchoBinding> getModelType() {

Modified: incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/provider/EchoServiceBindingProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/provider/EchoServiceBindingProvider.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/provider/EchoServiceBindingProvider.java (original)
+++ incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/provider/EchoServiceBindingProvider.java Fri May 11 20:18:05 2007
@@ -24,6 +24,7 @@
 import org.apache.tuscany.sca.core.RuntimeComponentService;
 import org.apache.tuscany.sca.core.RuntimeWire;
 import org.apache.tuscany.sca.invocation.InvocationChain;
+import org.apache.tuscany.sca.invocation.MessageFactory;
 import org.apache.tuscany.sca.provider.ServiceBindingProvider;
 
 import echo.EchoBinding;
@@ -36,15 +37,18 @@
  * @version $Rev$ $Date$
  */
 public class EchoServiceBindingProvider implements ServiceBindingProvider {
-
+    
     private RuntimeComponent component;
-    private RuntimeComponentService service;
+    private RuntimeComponentService service;  
     private EchoBinding binding;
-
-    public EchoServiceBindingProvider(RuntimeComponent component, RuntimeComponentService service, EchoBinding binding) {
+    private MessageFactory messageFactory;
+    
+    public EchoServiceBindingProvider(RuntimeComponent component,
+                                      RuntimeComponentService service, EchoBinding binding, MessageFactory messageFactory) {
         this.component = component;
         this.service = service;
         this.binding = binding;
+        this.messageFactory = messageFactory;
     }
 
     public InterfaceContract getBindingInterfaceContract() {
@@ -53,17 +57,17 @@
 
     public void start() {
 
-        RuntimeComponentService componentService = (RuntimeComponentService)service;
+        RuntimeComponentService componentService = (RuntimeComponentService) service;
         RuntimeWire wire = componentService.getRuntimeWire(binding);
         InvocationChain chain = wire.getInvocationChains().get(0);
-
+        
         // Register with the hosting server
         String uri = component.getURI() + "/" + binding.getName();
-        EchoServer.getServer().register(uri, new EchoService(chain.getHeadInvoker()));
+        EchoServer.getServer().register(uri, new EchoService(chain.getHeadInvoker(), messageFactory));
     }
 
     public void stop() {
-
+        
         // Unregister from the hosting server
         String uri = component.getURI() + "/" + binding.getName();
         EchoServer.getServer().unregister(uri);

Modified: incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/server/EchoService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/server/EchoService.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/server/EchoService.java (original)
+++ incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/server/EchoService.java Fri May 11 20:18:05 2007
@@ -22,7 +22,7 @@
 
 import org.apache.tuscany.sca.invocation.Invoker;
 import org.apache.tuscany.sca.invocation.Message;
-import org.apache.tuscany.sca.invocation.MessageImpl;
+import org.apache.tuscany.sca.invocation.MessageFactory;
 import org.apache.tuscany.sca.spi.component.WorkContext;
 import org.apache.tuscany.sca.spi.component.WorkContextTunnel;
 
@@ -31,25 +31,26 @@
  */
 public class EchoService {
     private Invoker invoker;
+    private MessageFactory messageFactory;
 
-    public EchoService(Invoker invoker) {
+    public EchoService(Invoker invoker, MessageFactory messageFactory) {
         super();
         this.invoker = invoker;
+        this.messageFactory = messageFactory;
     }
 
     public String sendReceive(String input) throws InvocationTargetException {
 
+        Message request = messageFactory.createMessage();
+        request.setBody(new Object[] {input});
         WorkContext workContext = WorkContextTunnel.getThreadWorkContext();
-
-        Message msg = new MessageImpl();
-        msg.setBody(new Object[] {input});
-        msg.setWorkContext(workContext);
-        Message resp;
+        request.setWorkContext(workContext);
+        Message response;
 
         // dispatch and get the response
-        resp = invoker.invoke(msg);
-        Object body = resp.getBody();
-        if (resp.isFault()) {
+        response = invoker.invoke(request);
+        Object body = response.getBody();
+        if (response.isFault()) {
             throw new InvocationTargetException((Throwable)body);
         }
         return (String)body;

Modified: incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/module/EchoModuleActivator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/module/EchoModuleActivator.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/module/EchoModuleActivator.java (original)
+++ incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/module/EchoModuleActivator.java Fri May 11 20:18:05 2007
@@ -24,6 +24,8 @@
 import org.apache.tuscany.contribution.processor.StAXArtifactProcessorExtensionPoint;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.core.ModuleActivator;
+import org.apache.tuscany.sca.core.invocation.MessageFactoryImpl;
+import org.apache.tuscany.sca.invocation.MessageFactory;
 import org.apache.tuscany.sca.provider.ProviderFactoryExtensionPoint;
 
 import echo.DefaultEchoBindingFactory;
@@ -55,7 +57,8 @@
         processors.addArtifactProcessor(echoBindingProcessor);
         
         ProviderFactoryExtensionPoint providerFactories = registry.getExtensionPoint(ProviderFactoryExtensionPoint.class);
-        providerFactories.addProviderFactory(new EchoBindingProviderFactory());
+        MessageFactory messageFactory = new MessageFactoryImpl();
+        providerFactories.addProviderFactory(new EchoBindingProviderFactory(messageFactory));
        
         // Start the Echo server
         EchoServer.start();

Modified: incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/provider/EchoBindingProviderFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/provider/EchoBindingProviderFactory.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/provider/EchoBindingProviderFactory.java (original)
+++ incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/provider/EchoBindingProviderFactory.java Fri May 11 20:18:05 2007
@@ -22,6 +22,7 @@
 import org.apache.tuscany.sca.core.RuntimeComponent;
 import org.apache.tuscany.sca.core.RuntimeComponentReference;
 import org.apache.tuscany.sca.core.RuntimeComponentService;
+import org.apache.tuscany.sca.invocation.MessageFactory;
 import org.apache.tuscany.sca.provider.BindingProviderFactory;
 import org.apache.tuscany.sca.provider.ReferenceBindingProvider;
 import org.apache.tuscany.sca.provider.ServiceBindingProvider;
@@ -35,13 +36,19 @@
  * @version $Rev$ $Date$
  */
 public class EchoBindingProviderFactory implements BindingProviderFactory<EchoBinding> {
+    
+    private MessageFactory messageFactory;
+    
+    public EchoBindingProviderFactory(MessageFactory messageFactory) {
+        this.messageFactory = messageFactory;
+    }
 
     public ReferenceBindingProvider createReferenceBindingProvider(RuntimeComponent component, RuntimeComponentReference reference, EchoBinding binding) {
         return new EchoReferenceBindingProvider(component, reference, binding);
     }
 
     public ServiceBindingProvider createServiceBindingProvider(RuntimeComponent component, RuntimeComponentService service, EchoBinding binding) {
-        return new EchoServiceBindingProvider(component, service, binding);
+        return new EchoServiceBindingProvider(component, service, binding, messageFactory);
     }
     
     public Class<EchoBinding> getModelType() {

Modified: incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/provider/EchoServiceBindingProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/provider/EchoServiceBindingProvider.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/provider/EchoServiceBindingProvider.java (original)
+++ incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/provider/EchoServiceBindingProvider.java Fri May 11 20:18:05 2007
@@ -24,6 +24,7 @@
 import org.apache.tuscany.sca.core.RuntimeComponentService;
 import org.apache.tuscany.sca.core.RuntimeWire;
 import org.apache.tuscany.sca.invocation.InvocationChain;
+import org.apache.tuscany.sca.invocation.MessageFactory;
 import org.apache.tuscany.sca.provider.ServiceBindingProvider;
 
 import echo.EchoBinding;
@@ -40,11 +41,14 @@
     private RuntimeComponent component;
     private RuntimeComponentService service;  
     private EchoBinding binding;
+    private MessageFactory messageFactory;
     
-    public EchoServiceBindingProvider(RuntimeComponent component, RuntimeComponentService service, EchoBinding binding) {
+    public EchoServiceBindingProvider(RuntimeComponent component,
+                                      RuntimeComponentService service, EchoBinding binding, MessageFactory messageFactory) {
         this.component = component;
         this.service = service;
         this.binding = binding;
+        this.messageFactory = messageFactory;
     }
 
     public InterfaceContract getBindingInterfaceContract() {
@@ -59,7 +63,7 @@
         
         // Register with the hosting server
         String uri = component.getURI() + "/" + binding.getName();
-        EchoServer.getServer().register(uri, new EchoService(chain.getHeadInvoker()));
+        EchoServer.getServer().register(uri, new EchoService(chain.getHeadInvoker(), messageFactory));
     }
 
     public void stop() {

Modified: incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/server/EchoService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/server/EchoService.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/server/EchoService.java (original)
+++ incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/server/EchoService.java Fri May 11 20:18:05 2007
@@ -22,7 +22,7 @@
 
 import org.apache.tuscany.sca.invocation.Invoker;
 import org.apache.tuscany.sca.invocation.Message;
-import org.apache.tuscany.sca.invocation.MessageImpl;
+import org.apache.tuscany.sca.invocation.MessageFactory;
 import org.apache.tuscany.sca.spi.component.WorkContext;
 import org.apache.tuscany.sca.spi.component.WorkContextTunnel;
 
@@ -31,25 +31,26 @@
  */
 public class EchoService {
     private Invoker invoker;
+    private MessageFactory messageFactory;
 
-    public EchoService(Invoker invoker) {
+    public EchoService(Invoker invoker, MessageFactory messageFactory) {
         super();
         this.invoker = invoker;
+        this.messageFactory = messageFactory;
     }
 
     public String sendReceive(String input) throws InvocationTargetException {
 
+        Message request = messageFactory.createMessage();
+        request.setBody(new Object[] {input});
         WorkContext workContext = WorkContextTunnel.getThreadWorkContext();
-
-        Message msg = new MessageImpl();
-        msg.setBody(new Object[] {input});
-        msg.setWorkContext(workContext);
-        Message resp;
+        request.setWorkContext(workContext);
+        Message response;
 
         // dispatch and get the response
-        resp = invoker.invoke(msg);
-        Object body = resp.getBody();
-        if (resp.isFault()) {
+        response = invoker.invoke(request);
+        Object body = response.getBody();
+        if (response.isFault()) {
             throw new InvocationTargetException((Throwable)body);
         }
         return (String)body;



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