Author: rfeng
Date: Wed Oct 18 08:23:02 2006
New Revision: 465272

URL: http://svn.apache.org/viewvc?view=rev&rev=465272
Log:
Apply the patch from Ignacio for TUSCANY-642. Thanks, Ignacio.

Modified:
    
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeReferenceTargetInvoker.java
    
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractOperationOutboundInvocationHandler.java
    
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBindlessBuilder.java
    
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReference.java
    
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceCallbackTargetInvoker.java
    
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceTargetInvoker.java
    
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeService.java
    
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/OperationCallbackInvocationHandler.java
    
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/OperationOutboundInvocationHandler.java
    
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceCallbackTargetInvokerInvocationExceptionTestCase.java
    
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceCallbackTargetInvokerTestCase.java
    
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceCallbackTargetInvokerThrowableTestCase.java
    
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceTestCase.java

Modified: 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeReferenceTargetInvoker.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeReferenceTargetInvoker.java?view=diff&rev=465272&r1=465271&r2=465272
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeReferenceTargetInvoker.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeReferenceTargetInvoker.java
 Wed Oct 18 08:23:02 2006
@@ -21,6 +21,9 @@
 import java.lang.reflect.InvocationTargetException;
 
 import org.apache.tuscany.spi.model.Operation;
+import org.apache.tuscany.spi.wire.InvocationRuntimeException;
+import org.apache.tuscany.spi.wire.Message;
+import org.apache.tuscany.spi.wire.MessageImpl;
 import org.apache.tuscany.spi.wire.TargetInvoker;
 
 /**
@@ -51,19 +54,19 @@
     }
 
     public Object invokeTarget(final Object payload) throws 
InvocationTargetException {
-        Object[] args;
-        if (payload != null && !payload.getClass().isArray()) {
-            args = new Object[]{payload};
-        } else {
-            args = (Object[]) payload;
-        }
+        throw new InvocationTargetException(new 
InvocationRuntimeException("Not allowed to invokeTarget with object"));
+    }
+
+    public Message invoke(Message msg) throws InvocationRuntimeException {
         try {
             AbstractOperationOutboundInvocationHandler invocationHandler = 
getInvocationHandler();
-            return invocationHandler.invoke(operation, args);
-        } catch (Throwable t) {
-            throw new InvocationTargetException(t);
+            return invocationHandler.invoke(operation, msg);
+        } catch (Throwable e) {
+            Message faultMsg = new MessageImpl();
+            faultMsg.setBodyWithFault(e);
+            return faultMsg;
         }
-    }
+}
 
     @Override
     public AbstractCompositeReferenceTargetInvoker clone() throws 
CloneNotSupportedException {

Modified: 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractOperationOutboundInvocationHandler.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractOperationOutboundInvocationHandler.java?view=diff&rev=465272&r1=465271&r2=465272
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractOperationOutboundInvocationHandler.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractOperationOutboundInvocationHandler.java
 Wed Oct 18 08:23:02 2006
@@ -1,10 +1,58 @@
+/*
+ * 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.core.implementation.composite;
 
 import org.apache.tuscany.spi.model.Operation;
-import org.apache.tuscany.spi.wire.AbstractOutboundInvocationHandler;
+import org.apache.tuscany.spi.wire.Interceptor;
+import org.apache.tuscany.spi.wire.InvocationRuntimeException;
+import org.apache.tuscany.spi.wire.Message;
+import org.apache.tuscany.spi.wire.OutboundInvocationChain;
+import org.apache.tuscany.spi.wire.TargetInvoker;
 
-public abstract class AbstractOperationOutboundInvocationHandler
-    extends AbstractOutboundInvocationHandler {
+public abstract class AbstractOperationOutboundInvocationHandler {
 
-    public abstract Object invoke(Operation operation, Object[] args) throws 
Throwable;
+    public abstract Message invoke(Operation operation, Message msg) throws 
Throwable;
+
+    protected Message invoke(OutboundInvocationChain chain, TargetInvoker 
invoker, Message msg) throws Throwable {
+        Interceptor headInterceptor = chain.getHeadInterceptor();
+        if (headInterceptor == null) {
+            try {
+                // short-circuit the dispatch and invoke the target directly
+                TargetInvoker targetInvoker = chain.getTargetInvoker();
+                if (targetInvoker == null) {
+                    String name = chain.getOperation().getName();
+                    throw new AssertionError("No target invoker [" + name + 
"]");
+                }
+                return targetInvoker.invoke(msg);
+            } catch (InvocationRuntimeException e) {
+                // the cause was thrown by the target so throw it
+                throw e.getCause();
+            }
+        } else {
+            msg.setTargetInvoker(invoker);
+            msg.setFromAddress(getFromAddress());
+
+            Message resp = headInterceptor.invoke(msg);
+
+            return resp;
+        }
+    }
+
+    protected abstract Object getFromAddress();
 }

Modified: 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBindlessBuilder.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBindlessBuilder.java?view=diff&rev=465272&r1=465271&r2=465272
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBindlessBuilder.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBindlessBuilder.java
 Wed Oct 18 08:23:02 2006
@@ -26,7 +26,6 @@
 import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.component.Reference;
 import org.apache.tuscany.spi.component.Service;
-import org.apache.tuscany.spi.component.WorkContext;
 import org.apache.tuscany.spi.deployer.DeploymentContext;
 import org.apache.tuscany.spi.model.BindlessServiceDefinition;
 import org.apache.tuscany.spi.model.ReferenceDefinition;
@@ -39,7 +38,6 @@
 
     protected BuilderRegistry builderRegistry;
     protected WireService wireService;
-    protected WorkContext workContext;
 
     @Autowire
     public void setBuilderRegistry(BuilderRegistry registry) {
@@ -51,11 +49,6 @@
         this.wireService = wireService;
     }
 
-    @Autowire
-    public void setWorkContext(WorkContext workContext) {
-        this.workContext = workContext;
-    }
-
     @Init(eager = true)
     public void init() {
         builderRegistry.register(this);
@@ -67,8 +60,7 @@
         return new CompositeService(definition.getName(),
             definition.getServiceContract().getInterfaceClass(),
             parent,
-            wireService,
-            workContext);
+            wireService);
     }
 
     public Reference build(CompositeComponent parent,
@@ -77,7 +69,6 @@
         return new CompositeReference(definition.getName(),
             parent,
             wireService,
-            definition.getServiceContract(),
-            workContext);
+            definition.getServiceContract());
     }
 }

Modified: 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReference.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReference.java?view=diff&rev=465272&r1=465271&r2=465272
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReference.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReference.java
 Wed Oct 18 08:23:02 2006
@@ -19,7 +19,6 @@
 package org.apache.tuscany.core.implementation.composite;
 
 import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.component.WorkContext;
 import org.apache.tuscany.spi.extension.ReferenceExtension;
 import org.apache.tuscany.spi.model.Operation;
 import org.apache.tuscany.spi.model.ServiceContract;
@@ -31,22 +30,18 @@
  */
 public class CompositeReference extends ReferenceExtension {
 
-    private WorkContext workContext;
-
     public CompositeReference(String name,
                               CompositeComponent parent,
                               WireService wireService,
-                              ServiceContract contract,
-                              WorkContext workContext) {
+                              ServiceContract contract) {
         super(name, contract.getInterfaceClass(), parent, wireService);
-        this.workContext = workContext;
     }
 
     public TargetInvoker createTargetInvoker(ServiceContract contract, 
Operation operation) {
-        return new CompositeReferenceTargetInvoker(operation, inboundWire, 
outboundWire, workContext);
+        return new CompositeReferenceTargetInvoker(operation, inboundWire, 
outboundWire);
     }
 
     public TargetInvoker createCallbackTargetInvoker(ServiceContract contract, 
Operation operation) {
-        return new CompositeReferenceCallbackTargetInvoker(operation, 
inboundWire, workContext);
+        return new CompositeReferenceCallbackTargetInvoker(operation, 
inboundWire);
     }
 }

Modified: 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceCallbackTargetInvoker.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceCallbackTargetInvoker.java?view=diff&rev=465272&r1=465271&r2=465272
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceCallbackTargetInvoker.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceCallbackTargetInvoker.java
 Wed Oct 18 08:23:02 2006
@@ -18,13 +18,8 @@
  */
 package org.apache.tuscany.core.implementation.composite;
 
-import java.lang.reflect.InvocationTargetException;
-
-import org.apache.tuscany.spi.component.WorkContext;
 import org.apache.tuscany.spi.model.Operation;
 import org.apache.tuscany.spi.wire.InboundWire;
-import org.apache.tuscany.spi.wire.InvocationRuntimeException;
-import org.apache.tuscany.spi.wire.Message;
 
 /**
  * 
@@ -32,26 +27,10 @@
 public class CompositeReferenceCallbackTargetInvoker extends 
AbstractCompositeReferenceTargetInvoker {
 
     private InboundWire inboundWire;
-    private WorkContext workContext;
 
-    public CompositeReferenceCallbackTargetInvoker(Operation operation, 
InboundWire inboundWire, WorkContext context) {
+    public CompositeReferenceCallbackTargetInvoker(Operation operation, 
InboundWire inboundWire) {
         super(operation);
         this.inboundWire = inboundWire;
-        this.workContext = context;
-    }
-
-    public Message invoke(Message msg) throws InvocationRuntimeException {
-        try {
-            workContext.setCurrentMessageId(msg.getMessageId());
-            workContext.setCurrentCorrelationId(msg.getCorrelationId());
-            Object resp = invokeTarget(msg.getBody());
-            msg.setBody(resp);
-        } catch (InvocationTargetException e) {
-            msg.setBodyWithFault(e.getCause());
-        } catch (Throwable e) {
-            msg.setBodyWithFault(e);
-        }
-        return msg;
     }
 
     public CompositeReferenceCallbackTargetInvoker clone() throws 
CloneNotSupportedException {
@@ -59,6 +38,6 @@
     }
 
     protected AbstractOperationOutboundInvocationHandler 
getInvocationHandler() {
-        return new OperationCallbackInvocationHandler(workContext, 
inboundWire);
+        return new OperationCallbackInvocationHandler(inboundWire);
     }
 }

Modified: 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceTargetInvoker.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceTargetInvoker.java?view=diff&rev=465272&r1=465271&r2=465272
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceTargetInvoker.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceTargetInvoker.java
 Wed Oct 18 08:23:02 2006
@@ -18,9 +18,6 @@
  */
 package org.apache.tuscany.core.implementation.composite;
 
-import java.lang.reflect.InvocationTargetException;
-
-import org.apache.tuscany.spi.component.WorkContext;
 import org.apache.tuscany.spi.model.Operation;
 import org.apache.tuscany.spi.wire.InboundWire;
 import org.apache.tuscany.spi.wire.InvocationRuntimeException;
@@ -34,32 +31,18 @@
 
     private InboundWire inboundWire;
     private OutboundWire outboundWire;
-    private WorkContext workContext;
-
 
     public CompositeReferenceTargetInvoker(Operation operation,
                                            InboundWire inboundWire,
-                                           OutboundWire outboundWire,
-                                           WorkContext workContext) {
+                                           OutboundWire outboundWire) {
         super(operation);
         this.inboundWire = inboundWire;
         this.outboundWire = outboundWire;
-        this.workContext = workContext;
     }
 
     public Message invoke(Message msg) throws InvocationRuntimeException {
-        try {
-            inboundWire.addMapping(msg.getMessageId(), msg.getFromAddress());
-            workContext.setCurrentMessageId(msg.getMessageId());
-            workContext.setCurrentCorrelationId(msg.getCorrelationId());
-            Object resp = invokeTarget(msg.getBody());
-            msg.setBody(resp);
-        } catch (InvocationTargetException e) {
-            msg.setBodyWithFault(e.getCause());
-        } catch (Throwable e) {
-            msg.setBodyWithFault(e);
-        }
-        return msg;
+        inboundWire.addMapping(msg.getMessageId(), msg.getFromAddress());
+        return super.invoke(msg);
     }
 
     public CompositeReferenceTargetInvoker clone() throws 
CloneNotSupportedException {
@@ -67,6 +50,6 @@
     }
     
     protected AbstractOperationOutboundInvocationHandler 
getInvocationHandler() {
-        return new OperationOutboundInvocationHandler(outboundWire, 
workContext);
+        return new OperationOutboundInvocationHandler(outboundWire);
     }
 }

Modified: 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeService.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeService.java?view=diff&rev=465272&r1=465271&r2=465272
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeService.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeService.java
 Wed Oct 18 08:23:02 2006
@@ -21,7 +21,6 @@
 import org.apache.tuscany.spi.CoreRuntimeException;
 import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.component.TargetException;
-import org.apache.tuscany.spi.component.WorkContext;
 import org.apache.tuscany.spi.extension.ServiceExtension;
 import org.apache.tuscany.spi.model.Operation;
 import org.apache.tuscany.spi.model.ServiceContract;
@@ -30,15 +29,11 @@
 
 public class CompositeService extends ServiceExtension {
 
-    private WorkContext workContext;
-
     public CompositeService(String name,
                             Class<?> interfaze,
                             CompositeComponent parent,
-                            WireService wireService,
-                            WorkContext workContext) throws 
CoreRuntimeException {
+                            WireService wireService) throws 
CoreRuntimeException {
         super(name, interfaze, parent, wireService);
-        this.workContext = workContext;
     }
 
     /**
@@ -48,13 +43,13 @@
      * FIXME !!! Notice that this method is not defined in the SPI !!!
      */
     public TargetInvoker createTargetInvoker(ServiceContract contract, 
Operation operation) {
-        return new CompositeReferenceTargetInvoker(operation, inboundWire, 
outboundWire, workContext);
+        return new CompositeReferenceTargetInvoker(operation, inboundWire, 
outboundWire);
     }
 
     /**
      */
     public TargetInvoker createCallbackTargetInvoker(ServiceContract contract, 
Operation operation) {
-         return new CompositeReferenceCallbackTargetInvoker(operation, 
inboundWire, workContext);
+         return new CompositeReferenceCallbackTargetInvoker(operation, 
inboundWire);
     }
 
     public Object getServiceInstance() throws TargetException {

Modified: 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/OperationCallbackInvocationHandler.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/OperationCallbackInvocationHandler.java?view=diff&rev=465272&r1=465271&r2=465272
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/OperationCallbackInvocationHandler.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/OperationCallbackInvocationHandler.java
 Wed Oct 18 08:23:02 2006
@@ -20,9 +20,9 @@
 
 import java.util.Map;
 
-import org.apache.tuscany.spi.component.WorkContext;
 import org.apache.tuscany.spi.model.Operation;
 import org.apache.tuscany.spi.wire.InboundWire;
+import org.apache.tuscany.spi.wire.Message;
 import org.apache.tuscany.spi.wire.OutboundInvocationChain;
 import org.apache.tuscany.spi.wire.TargetInvoker;
 
@@ -31,21 +31,14 @@
  */
 public class OperationCallbackInvocationHandler extends 
AbstractOperationOutboundInvocationHandler {
 
-    private WorkContext context;
     private InboundWire inboundWire;
-    private Object messageId;
-    private Object correlationId;
 
-    public OperationCallbackInvocationHandler(WorkContext context, InboundWire 
inboundWire) {
-        this.context = context;
+    public OperationCallbackInvocationHandler(InboundWire inboundWire) {
         this.inboundWire = inboundWire;
     }
 
-    public Object invoke(Object proxy, Operation operation, Object[] args) 
throws Throwable {
-        messageId = context.getCurrentMessageId();
-        context.setCurrentMessageId(null);
-        correlationId = context.getCurrentCorrelationId();
-        context.setCurrentCorrelationId(null);
+    public Message invoke(Operation operation, Message msg) throws Throwable {
+        Object correlationId = msg.getCorrelationId();
         Object targetAddress = inboundWire.retrieveMapping(correlationId);
         if (targetAddress == null) {
             throw new AssertionError("No from address associated with message 
id [" + correlationId + "]");
@@ -55,23 +48,11 @@
             inboundWire.getSourceCallbackInvocationChains(targetAddress);
         OutboundInvocationChain chain = 
sourceCallbackInvocationChains.get(operation);
         TargetInvoker invoker = chain.getTargetInvoker();
-        return invoke(chain, invoker, args);
+        return invoke(chain, invoker, msg);
     }
 
 
-    public Object invoke(Operation operation, Object[] args) throws Throwable {
-        return invoke(null, operation, args);
-    }
-
     protected Object getFromAddress() {
         return (inboundWire.getContainer() == null) ? null : 
inboundWire.getContainer().getName();
-    }
-    
-    protected Object getMessageId() {
-        return messageId;
-    }
-    
-    protected Object getCorrelationId() {
-        return correlationId;
     }
 }

Modified: 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/OperationOutboundInvocationHandler.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/OperationOutboundInvocationHandler.java?view=diff&rev=465272&r1=465271&r2=465272
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/OperationOutboundInvocationHandler.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/OperationOutboundInvocationHandler.java
 Wed Oct 18 08:23:02 2006
@@ -22,8 +22,8 @@
 import java.util.Map;
 
 import org.apache.tuscany.spi.component.TargetException;
-import org.apache.tuscany.spi.component.WorkContext;
 import org.apache.tuscany.spi.model.Operation;
+import org.apache.tuscany.spi.wire.Message;
 import org.apache.tuscany.spi.wire.OutboundInvocationChain;
 import org.apache.tuscany.spi.wire.OutboundWire;
 import org.apache.tuscany.spi.wire.TargetInvoker;
@@ -41,12 +41,9 @@
      * is not cacheable, the master associated with the wire chains will be 
used.
      */
     private Map<Operation, ChainHolder> chains;
-    private WorkContext context;
     private Object fromAddress;
-    private Object messageId;
-    private Object correlationId;
 
-    public OperationOutboundInvocationHandler(OutboundWire wire, WorkContext 
context) {
+    public OperationOutboundInvocationHandler(OutboundWire wire) {
         Map<Operation<?>, OutboundInvocationChain> invocationChains = 
wire.getInvocationChains();
         this.chains = new HashMap<Operation, 
ChainHolder>(invocationChains.size());
         this.fromAddress = (wire.getContainer() == null) ? null : 
wire.getContainer().getName();
@@ -55,11 +52,9 @@
             Operation operation = entry.getKey();
             this.chains.put(operation, new ChainHolder(entry.getValue()));
         }
-
-        this.context = context;
     }
 
-    public Object invoke(Object proxy, Operation operation, Object[] args) 
throws Throwable {
+    public Message invoke(Operation operation, Message msg) throws Throwable {
         ChainHolder holder = chains.get(operation);
         if (holder == null) {
             TargetException e = new TargetException("Operation not 
configured");
@@ -87,27 +82,12 @@
             assert chain != null;
             invoker = chain.getTargetInvoker();
         }
-        messageId = context.getCurrentMessageId();
-        context.setCurrentMessageId(null);
-        correlationId = context.getCurrentCorrelationId();
-        context.setCurrentCorrelationId(null);
-        return invoke(chain, invoker, args);
-    }
 
-    public Object invoke(Operation operation, Object[] args) throws Throwable {
-        return invoke(null, operation, args);
+        return invoke(chain, invoker, msg);
     }
 
     protected Object getFromAddress() {
         return fromAddress;
-    }
-
-    protected Object getMessageId() {
-        return messageId;
-    }
-
-    protected Object getCorrelationId() {
-        return correlationId;
     }
 
     /**

Modified: 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceCallbackTargetInvokerInvocationExceptionTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceCallbackTargetInvokerInvocationExceptionTestCase.java?view=diff&rev=465272&r1=465271&r2=465272
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceCallbackTargetInvokerInvocationExceptionTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceCallbackTargetInvokerInvocationExceptionTestCase.java
 Wed Oct 18 08:23:02 2006
@@ -4,7 +4,6 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.tuscany.spi.component.WorkContext;
 import org.apache.tuscany.spi.model.Operation;
 import org.apache.tuscany.spi.wire.InboundWire;
 import org.apache.tuscany.spi.wire.Interceptor;
@@ -20,7 +19,6 @@
  */
 public class 
CompositeReferenceCallbackTargetInvokerInvocationExceptionTestCase extends 
TestCase {
     private InboundWire wire;
-    private WorkContext context;
     private Message message;
     private OutboundInvocationChain chain;
     private CompositeReferenceCallbackTargetInvoker invoker;
@@ -35,7 +33,6 @@
         Object body = response.getBody();
         assertTrue(SomeException.class.equals(body.getClass()));
         EasyMock.verify(wire);
-        EasyMock.verify(context);
         EasyMock.verify(chain);
     }
 
@@ -63,15 +60,7 @@
         
EasyMock.expect(wire.getSourceCallbackInvocationChains(targetAddress)).andReturn(chains);
         EasyMock.expect(wire.getContainer()).andReturn(null);
         EasyMock.replay(wire);
-        context = EasyMock.createMock(WorkContext.class);
-        context.setCurrentMessageId(EasyMock.eq(id));
-        context.setCurrentMessageId(EasyMock.isNull());
-        context.setCurrentCorrelationId(corrId);
-        context.setCurrentCorrelationId(EasyMock.isNull());
-        EasyMock.expect(context.getCurrentMessageId()).andReturn(id);
-        EasyMock.expect(context.getCurrentCorrelationId()).andReturn(corrId);
-        EasyMock.replay(context);
-        invoker = new CompositeReferenceCallbackTargetInvoker(operation, wire, 
context);
+        invoker = new CompositeReferenceCallbackTargetInvoker(operation, wire);
     }
 
     private class SomeException extends Exception {

Modified: 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceCallbackTargetInvokerTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceCallbackTargetInvokerTestCase.java?view=diff&rev=465272&r1=465271&r2=465272
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceCallbackTargetInvokerTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceCallbackTargetInvokerTestCase.java
 Wed Oct 18 08:23:02 2006
@@ -22,7 +22,6 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.tuscany.spi.component.WorkContext;
 import org.apache.tuscany.spi.model.Operation;
 import org.apache.tuscany.spi.wire.InboundWire;
 import org.apache.tuscany.spi.wire.Interceptor;
@@ -38,7 +37,6 @@
  */
 public class CompositeReferenceCallbackTargetInvokerTestCase extends TestCase {
     private InboundWire wire;
-    private WorkContext context;
     private Message message;
     private OutboundInvocationChain chain;
     private Interceptor head;
@@ -51,7 +49,6 @@
         Message response = invoker.invoke(message);
         assertEquals("response", response.getBody());
         EasyMock.verify(wire);
-        EasyMock.verify(context);
         EasyMock.verify(chain);
         EasyMock.verify(head);
     }
@@ -82,15 +79,8 @@
         
EasyMock.expect(wire.getSourceCallbackInvocationChains(targetAddress)).andReturn(chains);
         EasyMock.expect(wire.getContainer()).andReturn(null);
         EasyMock.replay(wire);
-        context = EasyMock.createMock(WorkContext.class);
-        context.setCurrentMessageId(EasyMock.eq(id));
-        context.setCurrentMessageId(EasyMock.isNull());
-        context.setCurrentCorrelationId(corrId);
-        context.setCurrentCorrelationId(EasyMock.isNull());
-        EasyMock.expect(context.getCurrentMessageId()).andReturn(id);
-        EasyMock.expect(context.getCurrentCorrelationId()).andReturn(corrId);
-        EasyMock.replay(context);
-        invoker = new CompositeReferenceCallbackTargetInvoker(operation, wire, 
context);
+        
+        invoker = new CompositeReferenceCallbackTargetInvoker(operation, wire);
     }
 
 

Modified: 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceCallbackTargetInvokerThrowableTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceCallbackTargetInvokerThrowableTestCase.java?view=diff&rev=465272&r1=465271&r2=465272
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceCallbackTargetInvokerThrowableTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceCallbackTargetInvokerThrowableTestCase.java
 Wed Oct 18 08:23:02 2006
@@ -23,7 +23,6 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.tuscany.spi.component.WorkContext;
 import org.apache.tuscany.spi.model.Operation;
 import org.apache.tuscany.spi.wire.InboundWire;
 import org.apache.tuscany.spi.wire.Interceptor;
@@ -40,7 +39,6 @@
  */
 public class CompositeReferenceCallbackTargetInvokerThrowableTestCase extends 
TestCase {
     private InboundWire wire;
-    private WorkContext context;
     private Message message;
     private OutboundInvocationChain chain;
     private Interceptor head;
@@ -59,7 +57,6 @@
         UndeclaredThrowableException e = (UndeclaredThrowableException) body;
         
assertTrue(InsidiousException.class.equals(e.getUndeclaredThrowable().getClass()));
         EasyMock.verify(wire);
-        EasyMock.verify(context);
         EasyMock.verify(chain);
         EasyMock.verify(head);
     }
@@ -94,15 +91,7 @@
         
EasyMock.expect(wire.getSourceCallbackInvocationChains(targetAddress)).andReturn(chains);
         EasyMock.expect(wire.getContainer()).andReturn(null);
         EasyMock.replay(wire);
-        context = EasyMock.createMock(WorkContext.class);
-        context.setCurrentMessageId(EasyMock.eq(id));
-        context.setCurrentMessageId(EasyMock.isNull());
-        context.setCurrentCorrelationId(corrId);
-        context.setCurrentCorrelationId(EasyMock.isNull());
-        EasyMock.expect(context.getCurrentMessageId()).andReturn(id);
-        EasyMock.expect(context.getCurrentCorrelationId()).andReturn(corrId);
-        EasyMock.replay(context);
-        invoker = new CompositeReferenceCallbackTargetInvoker(operation, wire, 
context);
+        invoker = new CompositeReferenceCallbackTargetInvoker(operation, wire);
     }
 
     private class InsidiousException extends Throwable {

Modified: 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceTestCase.java?view=diff&rev=465272&r1=465271&r2=465272
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceTestCase.java
 Wed Oct 18 08:23:02 2006
@@ -37,8 +37,7 @@
         CompositeReference compositeReference = new 
CompositeReference("testCompositeReferemce",
                                                                        null,
                                                                        null,
-                                                                       
serviceContract,
-                                                                       null);
+                                                                       
serviceContract);
         Operation operation = new Operation<Type>("sayHi", null, null, null, 
false, null);
         TargetInvoker targetInvoker = 
compositeReference.createTargetInvoker(serviceContract, operation);
         assertNotNull(targetInvoker);
@@ -50,8 +49,7 @@
         CompositeReference compositeReference = new 
CompositeReference("testCompositeReferemce",
                                                                        null,
                                                                        null,
-                                                                       
serviceContract,
-                                                                       null);
+                                                                       
serviceContract);
         Operation operation = new Operation<Type>("sayHi", null, null, null, 
false, null);
         TargetInvoker targetInvoker = 
compositeReference.createCallbackTargetInvoker(serviceContract, operation);
         assertNotNull(targetInvoker);



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to