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/08 07:24:49 UTC
svn commit: r404931 - in /incubator/tuscany/sandbox/jboynes/sca:
containers/container.java/src/main/java/org/apache/tuscany/container/java/context/
containers/container.java/src/test/java/org/apache/tuscany/container/java/context/
containers/container....
Author: jmarino
Date: Sun May 7 22:24:47 2006
New Revision: 404931
URL: http://svn.apache.org/viewcvs?rev=404931&view=rev
Log:
incorporate basic invocation framework into atomic context
Added:
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/context/ReferenceInjectionTestCase.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/Source.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/SourceImpl.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/Target.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/TargetImpl.java
Modified:
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/context/JavaAtomicContext.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/invocation/ScopedPojoInvokerTestCase.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockFactory.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemAtomicContext.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/WireTargetConfigurationImpl.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKSourceWireFactory.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/Source.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKWireFactoryFactoryTestCase.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/AtomicContext.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireTargetConfiguration.java
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/context/JavaAtomicContext.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/context/JavaAtomicContext.java?rev=404931&r1=404930&r2=404931&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/context/JavaAtomicContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/context/JavaAtomicContext.java Sun May 7 22:24:47 2006
@@ -64,7 +64,12 @@
}
public InstanceContext createInstance() throws ObjectCreationException {
- InstanceContext ctx = new PojoInstanceContext(this, objectFactory.getInstance());
+ Object instance = objectFactory.getInstance();
+ // inject the instance with properties and references
+ for (Injector<Object> injector : injectors) {
+ injector.inject(instance);
+ }
+ InstanceContext ctx = new PojoInstanceContext(this,instance);
ctx.start();
return ctx;
}
@@ -76,8 +81,8 @@
return getTargetInstance();
}
- public void addTargetWireFactory(String serviceName, TargetWireFactory factory) {
- targetWireFactories.put(serviceName, factory);
+ public void addTargetWireFactory(TargetWireFactory factory) {
+ targetWireFactories.put(factory.getConfiguration().getServiceName(), factory);
}
public TargetWireFactory getTargetWireFactory(String serviceName) {
@@ -88,7 +93,8 @@
return targetWireFactories;
}
- public void addSourceWireFactory(String referenceName, SourceWireFactory factory) {
+ public void addSourceWireFactory(SourceWireFactory factory) {
+ String referenceName = factory.getConfiguration().getReferenceName();
Member member = members.get(referenceName);
if (member == null) {
throw new NoAccessorException(referenceName);
@@ -97,7 +103,9 @@
sourceWireFactories.add(factory);
}
- public void addSourceWireFactories(String referenceName, Class<?> multiplicityClass, List<SourceWireFactory> factories) {
+ public void addSourceWireFactories(Class<?> multiplicityClass, List<SourceWireFactory> factories) {
+ assert(factories.size() >0): "Wire factories was empty";
+ String referenceName = factories.get(0).getConfiguration().getReferenceName();
Member member = members.get(referenceName);
if (member == null) {
throw new NoAccessorException(referenceName);
Added: incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/context/ReferenceInjectionTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/context/ReferenceInjectionTestCase.java?rev=404931&view=auto
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/context/ReferenceInjectionTestCase.java (added)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/context/ReferenceInjectionTestCase.java Sun May 7 22:24:47 2006
@@ -0,0 +1,64 @@
+package org.apache.tuscany.container.java.context;
+
+import java.lang.reflect.Member;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+import java.util.HashMap;
+import java.util.Map;
+
+import junit.framework.TestCase;
+import org.apache.tuscany.container.java.mock.MockFactory;
+import org.apache.tuscany.container.java.mock.components.SourceImpl;
+import org.apache.tuscany.container.java.mock.components.Target;
+import org.apache.tuscany.container.java.mock.components.TargetImpl;
+import org.apache.tuscany.container.java.mock.components.Source;
+import org.apache.tuscany.core.context.WorkContextImpl;
+import org.apache.tuscany.core.context.scope.ModuleScopeContext;
+import org.apache.tuscany.spi.QualifiedName;
+import org.apache.tuscany.spi.wire.SourceWireFactory;
+import org.apache.tuscany.spi.wire.TargetWireFactory;
+import org.apache.tuscany.spi.context.AtomicContext;
+import org.apache.tuscany.spi.context.ScopeContext;
+import org.apache.tuscany.spi.context.WorkContext;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+public class ReferenceInjectionTestCase extends TestCase {
+
+ private Map<String, Member> members;
+
+ public void testProxiedReferenceInjection() throws Exception {
+ WorkContext ctx = new WorkContextImpl();
+ ScopeContext<AtomicContext> scope = new ModuleScopeContext(ctx);
+ scope.start();
+ JavaAtomicContext targetContext = MockFactory.createJavaAtomicContext("source", TargetImpl.class);
+ TargetWireFactory targetWireFactory = MockFactory.createTargetWireFactory("Target",Target.class);
+ targetContext.addTargetWireFactory(targetWireFactory);
+ JavaAtomicContext sourceContext = MockFactory.createJavaAtomicContext("source", SourceImpl.class, false, null, null, null, members);
+ SourceWireFactory sourceWireFactory = MockFactory.createSourceWireFactory("target", new QualifiedName("target"), Target.class);
+ sourceContext.addSourceWireFactory(sourceWireFactory);
+ scope.register(targetContext);
+ sourceContext.setScopeContext(scope);
+ scope.register(sourceContext);
+ targetContext.setScopeContext(scope);
+ MockFactory.connect(sourceWireFactory,targetWireFactory,targetContext,false);
+ Source source = (Source)sourceContext.getInstance(null);
+ Target target = source.getTarget();
+ assertTrue(Proxy.isProxyClass(target.getClass()));
+
+ assertNotNull(target);
+ scope.stop();
+ }
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ members = new HashMap<String, Member>();
+ Method m = SourceImpl.class.getMethod("setTarget", Target.class);
+ members.put("target", m);
+ }
+
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ }
+}
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/invocation/ScopedPojoInvokerTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/invocation/ScopedPojoInvokerTestCase.java?rev=404931&r1=404930&r2=404931&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/invocation/ScopedPojoInvokerTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/invocation/ScopedPojoInvokerTestCase.java Sun May 7 22:24:47 2006
@@ -51,7 +51,7 @@
WorkContext ctx = new WorkContextImpl();
ScopeContext<AtomicContext> scope = new ModuleScopeContext(ctx);
scope.start();
- JavaAtomicContext context = MockFactory.createJavaAtomicContext("foo", SimpleTargetImpl.class, false, null, null, null);
+ JavaAtomicContext context = MockFactory.createJavaAtomicContext("foo", SimpleTargetImpl.class);
scope.register(context);
context.setScopeContext(scope);
ScopedJavaComponentInvoker invoker = new ScopedJavaComponentInvoker(echoMethod, context, false);
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockFactory.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockFactory.java?rev=404931&r1=404930&r2=404931&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockFactory.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockFactory.java Sun May 7 22:24:47 2006
@@ -1,47 +1,140 @@
package org.apache.tuscany.container.java.mock;
import java.lang.reflect.Constructor;
+import java.lang.reflect.Member;
+import java.lang.reflect.Method;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
-import org.apache.tuscany.common.ObjectCreationException;
import org.apache.tuscany.common.ObjectFactory;
import org.apache.tuscany.container.java.context.JavaAtomicContext;
+import org.apache.tuscany.container.java.invocation.ScopedJavaComponentInvoker;
import org.apache.tuscany.core.injection.EventInvoker;
import org.apache.tuscany.core.injection.Injector;
import org.apache.tuscany.core.injection.PojoObjectFactory;
+import org.apache.tuscany.core.wire.InvokerInterceptor;
+import org.apache.tuscany.core.wire.MessageChannelImpl;
+import org.apache.tuscany.core.wire.SourceInvocationConfigurationImpl;
+import org.apache.tuscany.core.wire.TargetInvocationConfigurationImpl;
+import org.apache.tuscany.core.wire.WireSourceConfigurationImpl;
+import org.apache.tuscany.core.wire.WireTargetConfigurationImpl;
+import org.apache.tuscany.core.wire.jdk.JDKSourceWireFactory;
+import org.apache.tuscany.core.wire.jdk.JDKTargetWireFactory;
+import org.apache.tuscany.spi.QualifiedName;
+import org.apache.tuscany.spi.builder.BuilderConfigException;
import org.apache.tuscany.spi.context.AtomicContext;
+import org.apache.tuscany.spi.wire.SourceInvocationConfiguration;
+import org.apache.tuscany.spi.wire.SourceWireFactory;
+import org.apache.tuscany.spi.wire.TargetInvocationConfiguration;
+import org.apache.tuscany.spi.wire.TargetInvoker;
+import org.apache.tuscany.spi.wire.TargetWireFactory;
+import org.apache.tuscany.spi.wire.WireFactoryInitException;
+import org.apache.tuscany.spi.wire.WireSourceConfiguration;
+import org.apache.tuscany.spi.wire.WireTargetConfiguration;
/**
* @version $$Rev$$ $$Date$$
*/
public class MockFactory {
+ public static JavaAtomicContext createJavaAtomicContext(String name, Class<?> clazz) throws NoSuchMethodException {
+ return createJavaAtomicContext(name, clazz, false, null, null, null, null);
- public static JavaAtomicContext createJavaAtomicContext(String name, Class<?> clazz, boolean eagerInit, EventInvoker<Object> initInvoker,
- EventInvoker<Object> destroyInvoker, List<Injector> injectors) throws NoSuchMethodException {
- return new JavaAtomicContext(name, createObjectFactory(clazz, null), false, null, null, null, null);
}
+ public static JavaAtomicContext createJavaAtomicContext(String name, Class<?> clazz, boolean eagerInit, EventInvoker<Object> initInvoker,
+ EventInvoker<Object> destroyInvoker, List<Injector> injectors, Map<String, Member> members) throws NoSuchMethodException {
+ return new JavaAtomicContext(name, createObjectFactory(clazz, null), eagerInit, initInvoker, destroyInvoker, injectors, members);
+ }
- private static <T> ObjectFactory<T> createObjectFactory(Class<T> clazz, List<Injector> injectors) throws NoSuchMethodException {
- Constructor<T> ctr = clazz.getConstructor((Class<T>[]) null);
- return new PojoObjectFactory<T>(ctr, null, injectors);
+ public static TargetWireFactory createTargetWireFactory(String serviceName, Class<?> interfaze) throws WireFactoryInitException {
+ WireTargetConfiguration wireConfiguration = new WireTargetConfigurationImpl(serviceName, createTargetInvocationConfigurations(interfaze));
+ TargetWireFactory wireFactory = new JDKTargetWireFactory();
+ wireFactory.setBusinessInterface(interfaze);
+ wireFactory.setConfiguration(wireConfiguration);
+ wireFactory.initialize();
+ return wireFactory;
}
+ public static Map<Method, TargetInvocationConfiguration> createTargetInvocationConfigurations(Class<?> interfaze) {
+ Map<Method, TargetInvocationConfiguration> invocations = new HashMap<Method, TargetInvocationConfiguration>();
+ Method[] methods = interfaze.getMethods();
+ for (Method method : methods) {
+ TargetInvocationConfiguration iConfig = new TargetInvocationConfigurationImpl(method);
+ // add tail interceptor
+ iConfig.addInterceptor(new InvokerInterceptor());
+ invocations.put(method, iConfig);
+ }
+ return invocations;
+ }
- /**
- * Used for injecting references
- */
- private static class AtomicContextInstanceFactory implements ObjectFactory {
- private AtomicContext ctx;
+ public static SourceWireFactory createSourceWireFactory(String refName, QualifiedName targetName, Class<?> interfaze) throws WireFactoryInitException {
+ WireSourceConfiguration wireConfiguration = new WireSourceConfigurationImpl(refName, targetName, createSourceInvocationConfigurations(interfaze));
+ SourceWireFactory wireFactory = new JDKSourceWireFactory();
+ wireFactory.setBusinessInterface(interfaze);
+ wireFactory.setConfiguration(wireConfiguration);
+ wireFactory.initialize();
+ return wireFactory;
+ }
- public AtomicContextInstanceFactory(AtomicContext ctx) {
- this.ctx = ctx;
+ public static void connect(SourceWireFactory<?> sourceFactory, TargetWireFactory<?> targetFactory, AtomicContext targetContext, boolean cacheable) throws Exception {
+ if (targetFactory != null) {
+ // if null, the target side has no interceptors or handlers
+ Map<Method, TargetInvocationConfiguration> targetInvocationConfigs = targetFactory.getConfiguration().getInvocationConfigurations();
+ for (SourceInvocationConfiguration sourceInvocationConfig : sourceFactory.getConfiguration()
+ .getInvocationConfigurations().values()) {
+ // match wire chains
+ TargetInvocationConfiguration targetInvocationConfig = targetInvocationConfigs.get(sourceInvocationConfig.getMethod());
+ if (targetInvocationConfig == null) {
+ BuilderConfigException e = new BuilderConfigException("Incompatible source and target interface types for reference");
+ e.setIdentifier(sourceFactory.getConfiguration().getReferenceName());
+ throw e;
+ }
+ // if handler is configured, add that
+ if (targetInvocationConfig.getRequestHandlers() != null) {
+ sourceInvocationConfig.setTargetRequestChannel(new MessageChannelImpl(targetInvocationConfig
+ .getRequestHandlers()));
+ sourceInvocationConfig.setTargetResponseChannel(new MessageChannelImpl(targetInvocationConfig
+ .getResponseHandlers()));
+ } else {
+ // no handlers, just connect interceptors
+ if (targetInvocationConfig.getHeadInterceptor() == null) {
+ BuilderConfigException e = new BuilderConfigException("No target handler or interceptor for operation");
+ e.setIdentifier(targetInvocationConfig.getMethod().getName());
+ throw e;
+ }
+ if (!(sourceInvocationConfig.getTailInterceptor() instanceof InvokerInterceptor && targetInvocationConfig
+ .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());
+ }
+ }
+ }
+
+ for (SourceInvocationConfiguration sourceInvocationConfig : sourceFactory.getConfiguration().getInvocationConfigurations()
+ .values()) {
+ //FIXME should use target method, not sourceInvocationConfig.getMethod()
+ TargetInvoker invoker = new ScopedJavaComponentInvoker(sourceInvocationConfig.getMethod(), targetContext, cacheable);
+ sourceInvocationConfig.setTargetInvoker(invoker);
+ }
}
+ }
+
- public Object getInstance() throws ObjectCreationException {
- return ctx.getTargetInstance();
+ public static Map<Method, SourceInvocationConfiguration> createSourceInvocationConfigurations(Class<?> interfaze) {
+ Map<Method, SourceInvocationConfiguration> invocations = new HashMap<Method, SourceInvocationConfiguration>();
+ Method[] methods = interfaze.getMethods();
+ for (Method method : methods) {
+ invocations.put(method, new SourceInvocationConfigurationImpl(method));
}
+ return invocations;
+ }
+
+ private static <T> ObjectFactory<T> createObjectFactory(Class<T> clazz, List<Injector> injectors) throws NoSuchMethodException {
+ Constructor<T> ctr = clazz.getConstructor((Class<T>[]) null);
+ return new PojoObjectFactory<T>(ctr, null, injectors);
}
+
}
Added: incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/Source.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/Source.java?rev=404931&view=auto
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/Source.java (added)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/Source.java Sun May 7 22:24:47 2006
@@ -0,0 +1,19 @@
+package org.apache.tuscany.container.java.mock.components;
+
+import java.util.List;
+
+
+/**
+ * Implementations are used in wiring tests
+ *
+ * @version $Rev$ $Date$
+ */
+public interface Source {
+
+ public Target getTarget();
+
+ public List<Target> getTargets();
+
+ public List<Target> getTargetsThroughField();
+
+}
Added: incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/SourceImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/SourceImpl.java?rev=404931&view=auto
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/SourceImpl.java (added)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/SourceImpl.java Sun May 7 22:24:47 2006
@@ -0,0 +1,51 @@
+package org.apache.tuscany.container.java.mock.components;
+
+import java.util.List;
+
+
+/**
+ * Mock system component implementation used in wiring tests
+ *
+ * @version $Rev$ $Date$
+ */
+public class SourceImpl implements Source {
+
+ private Target target;
+
+ private List<Target> targets;
+
+ private List<Target> targetsThroughField;
+
+ public void setTarget(Target target) {
+ this.target = target;
+ }
+
+ public Target getTarget() {
+ return target;
+ }
+
+ public List<Target> getTargets() {
+ return targets;
+ }
+
+ public void setTargets(List<Target> targets) {
+ this.targets = targets;
+ }
+
+ public List<Target> getTargetsThroughField() {
+ return targetsThroughField;
+ }
+
+
+ private Target[] targetsArray;
+
+ public Target[] getArrayOfTargets() {
+ return targetsArray;
+ }
+
+ public void setArrayOfTargets(Target[] targets) {
+ targetsArray = targets;
+ }
+
+
+}
Added: incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/Target.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/Target.java?rev=404931&view=auto
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/Target.java (added)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/Target.java Sun May 7 22:24:47 2006
@@ -0,0 +1,13 @@
+package org.apache.tuscany.container.java.mock.components;
+
+/**
+ * Implementations are used in wiring tests
+ *
+ * @version $Rev$ $Date$
+ */
+public interface Target {
+
+ public String getString();
+
+ public void setString(String val);
+}
Added: incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/TargetImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/TargetImpl.java?rev=404931&view=auto
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/TargetImpl.java (added)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/TargetImpl.java Sun May 7 22:24:47 2006
@@ -0,0 +1,20 @@
+package org.apache.tuscany.container.java.mock.components;
+
+/**
+ * Mock system component implementation used in wiring tests
+ *
+ * @version $Rev$ $Date$
+ */
+public class TargetImpl implements Target {
+
+ private String theString;
+
+ public String getString() {
+ return theString;
+ }
+
+ public void setString(String val) {
+ theString = val;
+ }
+
+}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemAtomicContext.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemAtomicContext.java?rev=404931&r1=404930&r2=404931&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemAtomicContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemAtomicContext.java Sun May 7 22:24:47 2006
@@ -42,7 +42,7 @@
return getTargetInstance();
}
- public void addTargetWireFactory(String serviceName, TargetWireFactory factory) {
+ public void addTargetWireFactory(TargetWireFactory factory) {
throw new UnsupportedOperationException();
}
@@ -54,11 +54,11 @@
throw new UnsupportedOperationException();
}
- public void addSourceWireFactory(String referenceName, SourceWireFactory factory) {
+ public void addSourceWireFactory(SourceWireFactory factory) {
throw new UnsupportedOperationException();
}
- public void addSourceWireFactories(String referenceName, Class<?> multiplicityClass, List<SourceWireFactory> factories){
+ public void addSourceWireFactories(Class<?> multiplicityClass, List<SourceWireFactory> factories){
throw new UnsupportedOperationException();
}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/WireTargetConfigurationImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/WireTargetConfigurationImpl.java?rev=404931&r1=404930&r2=404931&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/WireTargetConfigurationImpl.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/WireTargetConfigurationImpl.java Sun May 7 22:24:47 2006
@@ -15,23 +15,23 @@
public class WireTargetConfigurationImpl implements WireTargetConfiguration {
protected Map<Method, TargetInvocationConfiguration> configurations;
- protected QualifiedName targetName;
+ protected String targetName;
/**
* Creates the source side of a wire
*
- * @param targetName the qualified name of the target service specified by the wire
+ * @param targetName the name of the target service specified by the wire
* @param invocationConfigs a collection of target service operation-to-invocation chain mappings
*/
- public WireTargetConfigurationImpl(QualifiedName targetName, Map<Method, TargetInvocationConfiguration> invocationConfigs) {
+ public WireTargetConfigurationImpl(String targetName, Map<Method, TargetInvocationConfiguration> invocationConfigs) {
assert (invocationConfigs != null) : "No wire configuration map specified";
this.targetName = targetName;
configurations = invocationConfigs;
}
- public QualifiedName getTargetName() {
+ public String getServiceName() {
return targetName;
}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKSourceWireFactory.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKSourceWireFactory.java?rev=404931&r1=404930&r2=404931&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKSourceWireFactory.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKSourceWireFactory.java Sun May 7 22:24:47 2006
@@ -44,19 +44,6 @@
private WireSourceConfiguration configuration;
- public void initialize() throws WireFactoryInitException {
- if (state != UNINITIALIZED) {
- throw new IllegalStateException("Proxy factory in wrong state [" + state + "]");
- }
- Map<Method, SourceInvocationConfiguration> invocationConfigs = configuration.getInvocationConfigurations();
- methodToInvocationConfig = new MethodHashMap<SourceInvocationConfiguration>(invocationConfigs.size());
- for (Map.Entry<Method, SourceInvocationConfiguration> entry : invocationConfigs.entrySet()) {
- Method method = entry.getKey();
- methodToInvocationConfig.put(method, entry.getValue());
- }
- state = INITIALIZED;
- }
-
@SuppressWarnings("unchecked")
public T createProxy() {
if (state != INITIALIZED) {
@@ -91,4 +78,17 @@
return businessInterfaceArray;
}
+ public void initialize() throws WireFactoryInitException {
+ if (state != UNINITIALIZED) {
+ throw new IllegalStateException("Proxy factory in wrong state [" + state + "]");
+ }
+ Map<Method, SourceInvocationConfiguration> invocationConfigs = configuration.getInvocationConfigurations();
+ methodToInvocationConfig = new MethodHashMap<SourceInvocationConfiguration>(invocationConfigs.size());
+ for (Map.Entry<Method, SourceInvocationConfiguration> entry : invocationConfigs.entrySet()) {
+ Method method = entry.getKey();
+ methodToInvocationConfig.put(method, entry.getValue());
+ }
+ state = INITIALIZED;
+ }
+
}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/Source.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/Source.java?rev=404931&r1=404930&r2=404931&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/Source.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/Source.java Sun May 7 22:24:47 2006
@@ -17,13 +17,13 @@
/**
* Implementations are used in wiring tests
- *
+ *
* @version $Rev$ $Date$
*/
public interface Source {
public Target getTarget();
-
+
public List<Target> getTargets();
public List<Target> getTargetsThroughField();
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKWireFactoryFactoryTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKWireFactoryFactoryTestCase.java?rev=404931&r1=404930&r2=404931&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKWireFactoryFactoryTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKWireFactoryFactoryTestCase.java Sun May 7 22:24:47 2006
@@ -72,7 +72,7 @@
source.build();
Map<Method, TargetInvocationConfiguration> configs = new MethodHashMap<TargetInvocationConfiguration>();
configs.put(hello, source);
- WireTargetConfiguration config = new WireTargetConfigurationImpl(new QualifiedName("foo"), configs);
+ WireTargetConfiguration config = new WireTargetConfigurationImpl("Foo", configs);
JDKTargetWireFactory<SimpleTarget> factory = new JDKTargetWireFactory<SimpleTarget>();
factory.setConfiguration(config);
factory.setBusinessInterface(SimpleTarget.class);
Modified: incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/AtomicContext.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/AtomicContext.java?rev=404931&r1=404930&r2=404931&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/AtomicContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/AtomicContext.java Sun May 7 22:24:47 2006
@@ -75,7 +75,7 @@
* invocation chains associated with the destination service of a wire and are responsible for generating
* proxies
*/
- public void addTargetWireFactory(String serviceName, TargetWireFactory factory);
+ public void addTargetWireFactory(TargetWireFactory factory);
/**
* Returns the target-side wire factory associated with the given service name
@@ -93,20 +93,17 @@
* this configuration. Source-side wire factories also produce proxies that are injected on a reference in
* a component implementation.
*
- * @param referenceName
* @param factory
*/
- public void addSourceWireFactory(String referenceName, SourceWireFactory factory);
+ public void addSourceWireFactory(SourceWireFactory factory);
/**
* Adds a set of source-side wire multiplicity factories for the given reference. Source-side wire factories contain
* the invocation chains for a reference in the implementation associated with the instance context
* created by this configuration. Source-side wire factories also produce proxies that are injected on a
* reference in a component implementation.
- *
- * @param referenceName
*/
- public void addSourceWireFactories(String referenceName, Class<?> multiplicityClass, List<SourceWireFactory> factories);
+ public void addSourceWireFactories(Class<?> multiplicityClass, List<SourceWireFactory> factories);
/**
* Returns a collection of source-side wire factories for references. There may 1..n wire factories per
* reference.
Modified: incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireTargetConfiguration.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireTargetConfiguration.java?rev=404931&r1=404930&r2=404931&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireTargetConfiguration.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireTargetConfiguration.java Sun May 7 22:24:47 2006
@@ -10,9 +10,9 @@
*/
public interface WireTargetConfiguration {
/**
- * Returns the qualified name of the target service specified by the wire
+ * Returns the name of the target service specified by the wire
*/
- QualifiedName getTargetName();
+ String getServiceName();
/**
* Returns the invocation configuration for each operation on a service specified by a reference or a