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