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