You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by jm...@apache.org on 2006/05/22 01:07:04 UTC

svn commit: r408518 - in /incubator/tuscany/sandbox/jboynes/sca: core2/src/main/java/org/apache/tuscany/core/builder/ core2/src/test/java/org/apache/tuscany/core/builder/ core2/src/test/java/org/apache/tuscany/core/mock/component/ core2/src/test/java/o...

Author: jmarino
Date: Sun May 21 16:07:03 2006
New Revision: 408518

URL: http://svn.apache.org/viewvc?rev=408518&view=rev
Log:
package movement; testcase refactorings

Added:
    incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/SimpleSource.java
      - copied, changed from r408481, incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/mock/SimpleSource.java
    incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/SimpleSourceImpl.java
      - copied, changed from r408481, incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/mock/SimpleSourceImpl.java
    incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/SimpleTarget.java
      - copied, changed from r408481, incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/mock/SimpleTarget.java
    incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/SimpleTargetImpl.java
      - copied, changed from r408481, incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/mock/SimpleTargetImpl.java
    incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/context/MockTargetInvoker.java
    incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/wire/
    incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/wire/MockHandler.java
      - copied, changed from r408481, incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/mock/MockHandler.java
    incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/wire/MockStaticInvoker.java
      - copied, changed from r408481, incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/mock/MockStaticInvoker.java
    incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/wire/MockSyncInterceptor.java
      - copied, changed from r408481, incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/mock/MockSyncInterceptor.java
Removed:
    incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/mock/
Modified:
    incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
    incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/builder/ConnectorTestCase.java
    incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/context/MockAtomicContext.java
    incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/InvocationConfigurationErrorTestCase.java
    incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/InvocationConfigurationTestCase.java
    incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/InvocationErrorTestCase.java
    incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandlerTestCase.java
    incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKWireFactoryServiceTestCase.java
    incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/MediationTestCase.java
    incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentContextExtension.java
    incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ReferenceContextExtension.java

Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java?rev=408518&r1=408517&r2=408518&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java Sun May 21 16:07:03 2006
@@ -96,40 +96,44 @@
         }
     }
 
-    private <T>  void connect(SourceWire<T> source, TargetWire<T> targetWire, Context<?> target, boolean optimizable) {
+    /**
+     * Default access set for unit testing
+     */
+    <T> void connect(SourceWire<T> source, TargetWire<T> targetWire, Context<?> target, boolean optimizable) {
         Map<Method, TargetInvocationChain> targetInvocationConfigs = targetWire.getInvocationChains();
         // perform optimization, if possible
         if (optimizable && source.getInvocationChains().isEmpty() && targetInvocationConfigs.isEmpty()) {
             source.setTargetWire(targetWire);
             return;
         }
-        for (SourceInvocationChain sourceInvocationConfig : source.getInvocationChains().values()) {
+        for (SourceInvocationChain sourceChain : source.getInvocationChains().values()) {
             // match wire chains
-            TargetInvocationChain targetInvocationConfig = targetInvocationConfigs.get(sourceInvocationConfig.getMethod());
-            if (targetInvocationConfig == null) {
-                BuilderConfigException e = new BuilderConfigException("Incompatible source and targetWire interface types for reference");
+            TargetInvocationChain targetChain = targetInvocationConfigs.get(sourceChain.getMethod());
+            if (targetChain == null) {
+                BuilderConfigException e = new BuilderConfigException("Incompatible source and target chain interfaces for reference");
                 e.setIdentifier(source.getReferenceName());
                 throw e;
             }
             // if handler is configured, add that
-            if (targetInvocationConfig.getRequestHandlers() != null) {
-                sourceInvocationConfig.setTargetRequestChannel(new MessageChannelImpl(targetInvocationConfig
+            if (targetChain.getRequestHandlers() != null) {
+                sourceChain.setTargetRequestChannel(new MessageChannelImpl(targetChain
                         .getRequestHandlers()));
-                sourceInvocationConfig.setTargetResponseChannel(new MessageChannelImpl(targetInvocationConfig
+                sourceChain.setTargetResponseChannel(new MessageChannelImpl(targetChain
                         .getResponseHandlers()));
             } else {
                 // no handlers, just connect interceptors
-                if (targetInvocationConfig.getHeadInterceptor() == null) {
-                    BuilderConfigException e = new BuilderConfigException("No targetWire handler or interceptor for operation");
-                    e.setIdentifier(targetInvocationConfig.getMethod().getName());
+                if (targetChain.getHeadInterceptor() == null) {
+                    BuilderConfigException e = new BuilderConfigException("No chain handler or interceptor for operation");
+                    e.setIdentifier(targetChain.getMethod().getName());
                     throw e;
                 }
-                if (!(sourceInvocationConfig.getTailInterceptor() instanceof InvokerInterceptor && targetInvocationConfig
+                if (!(sourceChain.getTailInterceptor() instanceof InvokerInterceptor && targetChain
                         .getHeadInterceptor() instanceof InvokerInterceptor)) {
                     // check that we do not have the case where the only interceptors are invokers since we just need one
-                    sourceInvocationConfig.setTargetInterceptor(targetInvocationConfig.getHeadInterceptor());
+                    sourceChain.setTargetInterceptor(targetChain.getHeadInterceptor());
                 }
             }
+            sourceChain.build();
         }
 
         if (target instanceof ReferenceContext){
@@ -151,7 +155,7 @@
     private void attachInvoker(String serviceName, Collection<SourceInvocationChain> chains, ReferenceContext<?> target){
         for (SourceInvocationChain chain : chains) {
             TargetInvoker invoker = target.createTargetInvoker(serviceName, chain.getMethod());
-            // TODO fix cacheable attrivute
+            // TODO fix cacheable attribute
             //invoker.setCacheable(cacheable);
             chain.setTargetInvoker(invoker);
         }

Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/builder/ConnectorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/builder/ConnectorTestCase.java?rev=408518&r1=408517&r2=408518&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/builder/ConnectorTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/builder/ConnectorTestCase.java Sun May 21 16:07:03 2006
@@ -1,11 +1,168 @@
 package org.apache.tuscany.core.builder;
 
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Member;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 import junit.framework.TestCase;
+import org.apache.tuscany.core.context.WorkContextImpl;
+import org.apache.tuscany.core.context.event.ModuleStart;
+import org.apache.tuscany.core.context.event.ModuleStop;
+import org.apache.tuscany.core.context.scope.ModuleScopeContext;
+import org.apache.tuscany.core.injection.PojoObjectFactory;
+import org.apache.tuscany.core.mock.component.SimpleSource;
+import org.apache.tuscany.core.mock.component.SimpleSourceImpl;
+import org.apache.tuscany.core.mock.component.SimpleTarget;
+import org.apache.tuscany.core.mock.component.SimpleTargetImpl;
+import org.apache.tuscany.core.mock.context.MockAtomicContext;
+import org.apache.tuscany.core.mock.wire.MockSyncInterceptor;
+import org.apache.tuscany.core.wire.SourceInvocationChainImpl;
+import org.apache.tuscany.core.wire.TargetInvocationChainImpl;
+import org.apache.tuscany.core.wire.InvokerInterceptor;
+import org.apache.tuscany.core.wire.jdk.JDKSourceWire;
+import org.apache.tuscany.core.wire.jdk.JDKTargetWire;
+import org.apache.tuscany.spi.QualifiedName;
+import org.apache.tuscany.spi.context.ScopeContext;
+import org.apache.tuscany.spi.context.WorkContext;
+import org.apache.tuscany.spi.wire.SourceInvocationChain;
+import org.apache.tuscany.spi.wire.SourceWire;
+import org.apache.tuscany.spi.wire.TargetWire;
+import org.apache.tuscany.spi.wire.Interceptor;
+import org.apache.tuscany.spi.wire.MessageHandler;
 
 /**
  * @version $$Rev$$ $$Date$$
  */
 public class ConnectorTestCase extends TestCase {
 
-        public void testStub(){}
+    @SuppressWarnings("unchecked")
+    public void testNoInterceptorsNoHandlers() throws Exception {
+        ConnectorImpl connector = new ConnectorImpl();
+        WorkContext workContext = new WorkContextImpl();
+        ModuleScopeContext scopeContext = new ModuleScopeContext(workContext);
+        scopeContext.start();
+
+        MockAtomicContext<SimpleSource> sourceContext = setupSource(scopeContext,null,null,null);
+        MockAtomicContext<SimpleTarget> targetContext = setupTarget(scopeContext,null,null,null);
+        for (SourceWire<?> sourceWire : sourceContext.getSourceWires()) {
+            TargetWire<SimpleTarget> targetWire = targetContext.getTargetWire(sourceWire.getTargetName().getPortName());
+            connector.connect((SourceWire<SimpleTarget>)sourceWire, targetWire, targetContext,false);
+        }
+
+        scopeContext.onEvent(new ModuleStart(this, null));
+        SimpleSource source = sourceContext.getService();
+        assertEquals("foo",source.getTarget().echo("foo"));
+        scopeContext.onEvent(new ModuleStop(this, null));
+        scopeContext.stop();
+    }
+
+
+    /**
+     * Verifies an invocation with a single source interceptor
+     */
+    public void testSourceInterceptor() throws Exception {
+        ConnectorImpl connector = new ConnectorImpl();
+        WorkContext workContext = new WorkContextImpl();
+        ModuleScopeContext scopeContext = new ModuleScopeContext(workContext);
+        scopeContext.start();
+
+        MockSyncInterceptor interceptor = new MockSyncInterceptor();
+        List<Interceptor> interceptors = new ArrayList<Interceptor>();
+        interceptors.add(interceptor);
+        MockAtomicContext<SimpleSource> sourceContext = setupSource(scopeContext,interceptors,null,null);
+        MockAtomicContext<SimpleTarget> targetContext = setupTarget(scopeContext,null,null,null);
+        for (SourceWire<?> sourceWire : sourceContext.getSourceWires()) {
+            TargetWire<SimpleTarget> targetWire = targetContext.getTargetWire(sourceWire.getTargetName().getPortName());
+            connector.connect((SourceWire<SimpleTarget>)sourceWire, targetWire, targetContext,false);
+        }
+
+        scopeContext.onEvent(new ModuleStart(this, null));
+        assertEquals(0,interceptor.getCount());
+        SimpleSource source = sourceContext.getService();
+        assertEquals("foo",source.getTarget().echo("foo"));
+        assertEquals(1,interceptor.getCount());
+        scopeContext.onEvent(new ModuleStop(this, null));
+        scopeContext.stop();
+    }
+
+
+
+
+    private MockAtomicContext<SimpleSource> setupSource(ScopeContext scopeContext, List<Interceptor> interceptors,
+                                                        List<MessageHandler> requestHandlers,
+                                                        List<MessageHandler> responseHandlers) throws NoSuchMethodException {
+        Method echo = SimpleTarget.class.getMethod("echo", String.class);
+
+        List<Class<?>> sourceInterfaces = new ArrayList<Class<?>>();
+        sourceInterfaces.add(SimpleSource.class);
+        Constructor<SimpleSourceImpl> sourceCtr = SimpleSourceImpl.class.getConstructor();
+        Map<String, Member> members = new HashMap<String, Member>();
+        members.put("target", SimpleSourceImpl.class.getMethod("setTarget", SimpleTarget.class));
+        MockAtomicContext<SimpleSource> source = new MockAtomicContext<SimpleSource>("source", sourceInterfaces, new PojoObjectFactory<SimpleSourceImpl>(sourceCtr),
+                scopeContext.getScope(), members);
+        SourceWire<SimpleTarget> sourceWire = new JDKSourceWire<SimpleTarget>();
+        sourceWire.setBusinessInterface(SimpleTarget.class);
+        sourceWire.setReferenceName("target");
+        sourceWire.setTargetName(new QualifiedName("target/Target"));
+        SourceInvocationChain chain = new SourceInvocationChainImpl(echo);
+        if (interceptors != null){
+            for (Interceptor interceptor : interceptors) {
+                chain.addInterceptor(interceptor);
+            }
+        }
+        if(requestHandlers != null){
+            for (MessageHandler handler : requestHandlers) {
+                chain.addRequestHandler(handler);
+            }
+        }
+        if(responseHandlers != null){
+            for (MessageHandler handler : responseHandlers) {
+                chain.addResponseHandler(handler);
+            }
+        }
+        sourceWire.addInvocationChain(echo, chain);
+        source.addSourceWire(sourceWire);
+        source.setScopeContext(scopeContext);
+        return source;
+    }
+
+    private MockAtomicContext<SimpleTarget> setupTarget(ScopeContext scopeContext, List<Interceptor> interceptors,
+                                                        List<MessageHandler> requestHandlers,
+                                                        List<MessageHandler> responseHandlers)  throws NoSuchMethodException {
+        Method echo = SimpleTarget.class.getMethod("echo", String.class);
+
+        List<Class<?>> targetInterfaces = new ArrayList<Class<?>>();
+        targetInterfaces.add(SimpleTarget.class);
+        Constructor<SimpleTargetImpl> targetCtr = SimpleTargetImpl.class.getConstructor();
+        MockAtomicContext<SimpleTarget> target = new MockAtomicContext<SimpleTarget>("target", targetInterfaces, new PojoObjectFactory<SimpleTargetImpl>(targetCtr),
+                scopeContext.getScope(), null);
+        TargetWire<SimpleTarget> targetWire = new JDKTargetWire<SimpleTarget>();
+        targetWire.setBusinessInterface(SimpleTarget.class);
+        targetWire.setServiceName("Target");
+        TargetInvocationChainImpl chain = new TargetInvocationChainImpl(echo);
+        if (interceptors != null){
+            for (Interceptor interceptor : interceptors) {
+                chain.addInterceptor(interceptor);
+            }
+        }
+        if(requestHandlers != null){
+            for (MessageHandler handler : requestHandlers) {
+                chain.addRequestHandler(handler);
+            }
+        }
+        if(responseHandlers != null){
+            for (MessageHandler handler : responseHandlers) {
+                chain.addResponseHandler(handler);
+            }
+        }
+        chain.addInterceptor(new InvokerInterceptor()); // add tail interceptor
+        targetWire.addInvocationChain(echo, chain);
+        target.addTargetWire(targetWire);
+        target.setScopeContext(scopeContext);
+        return target;
+    }
 }

Copied: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/SimpleSource.java (from r408481, incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/mock/SimpleSource.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/SimpleSource.java?p2=incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/SimpleSource.java&p1=incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/mock/SimpleSource.java&r1=408481&r2=408518&rev=408518&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/mock/SimpleSource.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/SimpleSource.java Sun May 21 16:07:03 2006
@@ -14,12 +14,14 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.tuscany.core.wire.mock;
+package org.apache.tuscany.core.mock.component;
 
 public interface SimpleSource {
 
     public void invokeHello() throws Exception;
 
     public void invokeGoodbye() throws Exception;
+
+    public SimpleTarget getTarget();
 }
 

Copied: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/SimpleSourceImpl.java (from r408481, incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/mock/SimpleSourceImpl.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/SimpleSourceImpl.java?p2=incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/SimpleSourceImpl.java&p1=incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/mock/SimpleSourceImpl.java&r1=408481&r2=408518&rev=408518&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/mock/SimpleSourceImpl.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/SimpleSourceImpl.java Sun May 21 16:07:03 2006
@@ -14,22 +14,33 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.tuscany.core.wire.mock;
+package org.apache.tuscany.core.mock.component;
 
 public class SimpleSourceImpl implements SimpleSource {
 
-    private SimpleTarget proxy;
+    private SimpleTarget target;
+
+    public SimpleSourceImpl() {
+    }
 
     public SimpleSourceImpl(SimpleTarget proxy) {
-        this.proxy = proxy;
+        this.target = proxy;
     }
 
     public void invokeHello() throws Exception {
-        proxy.hello("hello");
+        target.hello("hello");
     }
 
     public void invokeGoodbye() throws Exception {
-        proxy.goodbye("hello");
+        target.goodbye("hello");
+    }
+
+    public SimpleTarget getTarget() {
+        return target;
+    }
+
+    public void setTarget(SimpleTarget target) {
+        this.target = target;
     }
 
 }

Copied: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/SimpleTarget.java (from r408481, incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/mock/SimpleTarget.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/SimpleTarget.java?p2=incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/SimpleTarget.java&p1=incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/mock/SimpleTarget.java&r1=408481&r2=408518&rev=408518&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/mock/SimpleTarget.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/SimpleTarget.java Sun May 21 16:07:03 2006
@@ -14,7 +14,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.tuscany.core.wire.mock;
+package org.apache.tuscany.core.mock.component;
 
 public interface SimpleTarget {
 

Copied: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/SimpleTargetImpl.java (from r408481, incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/mock/SimpleTargetImpl.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/SimpleTargetImpl.java?p2=incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/SimpleTargetImpl.java&p1=incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/mock/SimpleTargetImpl.java&r1=408481&r2=408518&rev=408518&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/mock/SimpleTargetImpl.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/SimpleTargetImpl.java Sun May 21 16:07:03 2006
@@ -14,7 +14,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.tuscany.core.wire.mock;
+package org.apache.tuscany.core.mock.component;
 
 public class SimpleTargetImpl implements SimpleTarget {
 

Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/context/MockAtomicContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/context/MockAtomicContext.java?rev=408518&r1=408517&r2=408518&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/context/MockAtomicContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/context/MockAtomicContext.java Sun May 21 16:07:03 2006
@@ -1,17 +1,15 @@
 package org.apache.tuscany.core.mock.context;
 
-import java.util.List;
-import java.util.Map;
 import java.lang.reflect.Member;
 import java.lang.reflect.Method;
+import java.util.List;
+import java.util.Map;
 
 import org.apache.tuscany.core.context.PojoAtomicContext;
-import org.apache.tuscany.core.injection.EventInvoker;
-import org.apache.tuscany.core.injection.Injector;
+import org.apache.tuscany.model.Scope;
 import org.apache.tuscany.spi.ObjectFactory;
-import org.apache.tuscany.spi.wire.TargetInvoker;
 import org.apache.tuscany.spi.context.TargetException;
-import org.apache.tuscany.model.Scope;
+import org.apache.tuscany.spi.wire.TargetInvoker;
 
 /**
  * Provides a runtime context for Java component implementations
@@ -20,9 +18,8 @@
  */
 public class MockAtomicContext<T> extends PojoAtomicContext<T> {
 
-    public MockAtomicContext(String name, List<Class<?>> serviceInterfaces, ObjectFactory<?> objectFactory, Scope scope, boolean eagerInit, EventInvoker<Object> initInvoker,
-                             EventInvoker<Object> destroyInvoker, List<Injector> injectors, Map<String, Member> members) {
-        super(name, serviceInterfaces, objectFactory, eagerInit, initInvoker, destroyInvoker, injectors, members);
+    public MockAtomicContext(String name, List<Class<?>> serviceInterfaces, ObjectFactory<?> objectFactory, Scope scope, Map<String, Member> members) {
+        super(name, serviceInterfaces, objectFactory, false, null, null, null, members);
         this.scope = scope;
     }
 
@@ -40,7 +37,7 @@
     }
 
     public TargetInvoker createTargetInvoker(String serviceName, Method operation) {
-        return null;// new JavaTargetInvoker(operation, this);
+        return new MockTargetInvoker(operation, this);
     }
 
 

Added: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/context/MockTargetInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/context/MockTargetInvoker.java?rev=408518&view=auto
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/context/MockTargetInvoker.java (added)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/context/MockTargetInvoker.java Sun May 21 16:07:03 2006
@@ -0,0 +1,60 @@
+package org.apache.tuscany.core.mock.context;
+
+import java.lang.reflect.Method;
+
+import org.apache.tuscany.core.wire.jdk.PojoTargetInvoker;
+import org.apache.tuscany.spi.context.TargetException;
+
+/**
+ *
+ * @version $Rev: 408473 $ $Date: 2006-05-21 12:46:01 -0700 (Sun, 21 May 2006) $
+ */
+public class MockTargetInvoker extends PojoTargetInvoker {
+
+    private MockAtomicContext context;
+    private Object target;
+    public boolean cacheable;
+
+
+    /**
+     * Creates a new invoker
+     *
+     * @param operation the operation the invoker is associated with
+     * @param context   the scope context the component is resolved in
+     */
+    public MockTargetInvoker(Method operation, MockAtomicContext context) {
+        super(operation);
+        assert (context != null) : "No atomic context specified";
+        this.context = context;
+    }
+
+    public boolean isCacheable() {
+        return cacheable;
+    }
+
+    public void setCacheable(boolean cacheable) {
+        this.cacheable = cacheable;
+    }
+
+    /**
+     * Resolves the target service instance or returns a cached one
+     */
+    protected Object getInstance() throws TargetException {
+        if (!cacheable) {
+            return context.getTargetInstance();
+        } else {
+            if (target == null) {
+                target = context.getTargetInstance();
+            }
+            return target;
+        }
+    }
+
+    public MockTargetInvoker clone() throws CloneNotSupportedException {
+        MockTargetInvoker invoker = (MockTargetInvoker) super.clone();
+        invoker.target = null;
+        invoker.cacheable = this.cacheable;
+        invoker.context = this.context;
+        return invoker;
+    }
+}

Copied: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/wire/MockHandler.java (from r408481, incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/mock/MockHandler.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/wire/MockHandler.java?p2=incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/wire/MockHandler.java&p1=incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/mock/MockHandler.java&r1=408481&r2=408518&rev=408518&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/mock/MockHandler.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/wire/MockHandler.java Sun May 21 16:07:03 2006
@@ -1,7 +1,7 @@
 /**
  * 
  */
-package org.apache.tuscany.core.wire.mock;
+package org.apache.tuscany.core.mock.wire;
 
 import org.apache.tuscany.spi.wire.MessageHandler;
 import org.apache.tuscany.spi.wire.Message;

Copied: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/wire/MockStaticInvoker.java (from r408481, incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/mock/MockStaticInvoker.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/wire/MockStaticInvoker.java?p2=incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/wire/MockStaticInvoker.java&p1=incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/mock/MockStaticInvoker.java&r1=408481&r2=408518&rev=408518&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/mock/MockStaticInvoker.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/wire/MockStaticInvoker.java Sun May 21 16:07:03 2006
@@ -1,4 +1,4 @@
-package org.apache.tuscany.core.wire.mock;
+package org.apache.tuscany.core.mock.wire;
 
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;

Copied: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/wire/MockSyncInterceptor.java (from r408481, incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/mock/MockSyncInterceptor.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/wire/MockSyncInterceptor.java?p2=incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/wire/MockSyncInterceptor.java&p1=incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/mock/MockSyncInterceptor.java&r1=408481&r2=408518&rev=408518&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/mock/MockSyncInterceptor.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/wire/MockSyncInterceptor.java Sun May 21 16:07:03 2006
@@ -14,7 +14,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.tuscany.core.wire.mock;
+package org.apache.tuscany.core.mock.wire;
 
 import org.apache.tuscany.spi.wire.Interceptor;
 import org.apache.tuscany.spi.wire.Message;

Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/InvocationConfigurationErrorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/InvocationConfigurationErrorTestCase.java?rev=408518&r1=408517&r2=408518&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/InvocationConfigurationErrorTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/InvocationConfigurationErrorTestCase.java Sun May 21 16:07:03 2006
@@ -16,11 +16,11 @@
 import java.lang.reflect.Method;
 
 import junit.framework.TestCase;
-import org.apache.tuscany.core.wire.mock.MockHandler;
-import org.apache.tuscany.core.wire.mock.MockStaticInvoker;
-import org.apache.tuscany.core.wire.mock.MockSyncInterceptor;
-import org.apache.tuscany.core.wire.mock.SimpleTarget;
-import org.apache.tuscany.core.wire.mock.SimpleTargetImpl;
+import org.apache.tuscany.core.mock.wire.MockHandler;
+import org.apache.tuscany.core.mock.wire.MockStaticInvoker;
+import org.apache.tuscany.core.mock.wire.MockSyncInterceptor;
+import org.apache.tuscany.core.mock.component.SimpleTarget;
+import org.apache.tuscany.core.mock.component.SimpleTargetImpl;
 import org.apache.tuscany.spi.wire.Message;
 import org.apache.tuscany.spi.wire.SourceInvocationChain;
 import org.apache.tuscany.spi.wire.TargetInvocationChain;

Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/InvocationConfigurationTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/InvocationConfigurationTestCase.java?rev=408518&r1=408517&r2=408518&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/InvocationConfigurationTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/InvocationConfigurationTestCase.java Sun May 21 16:07:03 2006
@@ -16,11 +16,11 @@
 import java.lang.reflect.Method;
 
 import junit.framework.TestCase;
-import org.apache.tuscany.core.wire.mock.MockHandler;
-import org.apache.tuscany.core.wire.mock.MockStaticInvoker;
-import org.apache.tuscany.core.wire.mock.MockSyncInterceptor;
-import org.apache.tuscany.core.wire.mock.SimpleTarget;
-import org.apache.tuscany.core.wire.mock.SimpleTargetImpl;
+import org.apache.tuscany.core.mock.wire.MockHandler;
+import org.apache.tuscany.core.mock.wire.MockStaticInvoker;
+import org.apache.tuscany.core.mock.wire.MockSyncInterceptor;
+import org.apache.tuscany.core.mock.component.SimpleTarget;
+import org.apache.tuscany.core.mock.component.SimpleTargetImpl;
 import org.apache.tuscany.spi.wire.Message;
 import org.apache.tuscany.spi.wire.SourceInvocationChain;
 import org.apache.tuscany.spi.wire.TargetInvocationChain;

Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/InvocationErrorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/InvocationErrorTestCase.java?rev=408518&r1=408517&r2=408518&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/InvocationErrorTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/InvocationErrorTestCase.java Sun May 21 16:07:03 2006
@@ -23,9 +23,9 @@
 import junit.framework.TestCase;
 import org.apache.tuscany.core.util.MethodHashMap;
 import org.apache.tuscany.core.wire.jdk.JDKInvocationHandler;
-import org.apache.tuscany.core.wire.mock.MockHandler;
-import org.apache.tuscany.core.wire.mock.MockStaticInvoker;
-import org.apache.tuscany.core.wire.mock.MockSyncInterceptor;
+import org.apache.tuscany.core.mock.wire.MockHandler;
+import org.apache.tuscany.core.mock.wire.MockStaticInvoker;
+import org.apache.tuscany.core.mock.wire.MockSyncInterceptor;
 import org.apache.tuscany.spi.wire.InvocationChain;
 import org.apache.tuscany.spi.wire.SourceInvocationChain;
 import org.apache.tuscany.spi.wire.WireInvocationHandler;

Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandlerTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandlerTestCase.java?rev=408518&r1=408517&r2=408518&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandlerTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandlerTestCase.java Sun May 21 16:07:03 2006
@@ -3,11 +3,11 @@
 import junit.framework.TestCase;
 import org.apache.tuscany.core.wire.InvocationChainImpl;
 import org.apache.tuscany.core.util.MethodHashMap;
-import org.apache.tuscany.core.wire.mock.SimpleTarget;
-import org.apache.tuscany.core.wire.mock.SimpleTargetImpl;
-import org.apache.tuscany.core.wire.mock.MockStaticInvoker;
-import org.apache.tuscany.core.wire.mock.MockHandler;
-import org.apache.tuscany.core.wire.mock.MockSyncInterceptor;
+import org.apache.tuscany.core.mock.component.SimpleTarget;
+import org.apache.tuscany.core.mock.component.SimpleTargetImpl;
+import org.apache.tuscany.core.mock.wire.MockHandler;
+import org.apache.tuscany.core.mock.wire.MockStaticInvoker;
+import org.apache.tuscany.core.mock.wire.MockSyncInterceptor;
 import org.apache.tuscany.core.wire.SourceInvocationChainImpl;
 import org.apache.tuscany.core.wire.InvokerInterceptor;
 import org.apache.tuscany.core.wire.MessageChannelImpl;

Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKWireFactoryServiceTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKWireFactoryServiceTestCase.java?rev=408518&r1=408517&r2=408518&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKWireFactoryServiceTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKWireFactoryServiceTestCase.java Sun May 21 16:07:03 2006
@@ -19,10 +19,10 @@
 import org.apache.tuscany.core.wire.InvokerInterceptor;
 import org.apache.tuscany.core.wire.SourceInvocationChainImpl;
 import org.apache.tuscany.core.wire.TargetInvocationChainImpl;
-import org.apache.tuscany.core.wire.mock.MockStaticInvoker;
-import org.apache.tuscany.core.wire.mock.MockSyncInterceptor;
-import org.apache.tuscany.core.wire.mock.SimpleTarget;
-import org.apache.tuscany.core.wire.mock.SimpleTargetImpl;
+import org.apache.tuscany.core.mock.wire.MockStaticInvoker;
+import org.apache.tuscany.core.mock.wire.MockSyncInterceptor;
+import org.apache.tuscany.core.mock.component.SimpleTarget;
+import org.apache.tuscany.core.mock.component.SimpleTargetImpl;
 
 public class JDKWireFactoryServiceTestCase extends TestCase {
 

Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/MediationTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/MediationTestCase.java?rev=408518&r1=408517&r2=408518&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/MediationTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/MediationTestCase.java Sun May 21 16:07:03 2006
@@ -17,7 +17,7 @@
 
 import junit.framework.Assert;
 import junit.framework.TestCase;
-import org.apache.tuscany.core.wire.mock.SimpleTargetImpl;
+import org.apache.tuscany.core.mock.component.SimpleTargetImpl;
 
 /**
  * Tests invoking on a different interface from the one actually implemented by the target

Modified: incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentContextExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentContextExtension.java?rev=408518&r1=408517&r2=408518&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentContextExtension.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentContextExtension.java Sun May 21 16:07:03 2006
@@ -53,6 +53,7 @@
         for (TargetWire<T> targetWire : targetWires.values()) {
             for (TargetInvocationChain chain : targetWire.getInvocationChains().values()) {
                 chain.setTargetInvoker(createTargetInvoker(targetWire.getServiceName(), chain.getMethod()));
+                chain.build();
             }
         }
     }

Modified: incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ReferenceContextExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ReferenceContextExtension.java?rev=408518&r1=408517&r2=408518&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ReferenceContextExtension.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ReferenceContextExtension.java Sun May 21 16:07:03 2006
@@ -82,6 +82,7 @@
     public void prepare() {
         for (TargetInvocationChain chain : targetWire.getInvocationChains().values()) {
             chain.setTargetInvoker(createTargetInvoker(targetWire.getServiceName(), chain.getMethod()));
+            chain.build();
         }
     }
 



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