You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by jb...@apache.org on 2007/03/12 01:44:08 UTC

svn commit: r517057 - in /incubator/tuscany/java/sca/kernel/core/src: main/java/org/apache/tuscany/core/component/ReflectiveInstanceFactoryProvider.java test/java/org/apache/tuscany/core/component/ReflectiveInstanceFactoryProviderTestCase.java

Author: jboynes
Date: Sun Mar 11 17:44:07 2007
New Revision: 517057

URL: http://svn.apache.org/viewvc?view=rev&rev=517057
Log:
key injection values by URI to support both callbacks and references

Modified:
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/ReflectiveInstanceFactoryProvider.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/ReflectiveInstanceFactoryProviderTestCase.java

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/ReflectiveInstanceFactoryProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/ReflectiveInstanceFactoryProvider.java?view=diff&rev=517057&r1=517056&r2=517057
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/ReflectiveInstanceFactoryProvider.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/ReflectiveInstanceFactoryProvider.java Sun Mar 11 17:44:07 2007
@@ -25,6 +25,7 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.net.URI;
 
 import org.apache.tuscany.core.injection.EventInvoker;
 import org.apache.tuscany.core.injection.FieldInjector;
@@ -37,15 +38,15 @@
  */
 public class ReflectiveInstanceFactoryProvider<T> implements InstanceFactoryProvider<T> {
     private final Constructor<T> constructor;
-    private final List<String> constructorNames;
-    private final Map<String, Member> injectionSites;
+    private final List<URI> constructorNames;
+    private final Map<URI, Member> injectionSites;
     private final EventInvoker<T> initInvoker;
     private final EventInvoker<T> destroyInvoker;
-    private final Map<String, ObjectFactory<?>> factories = new HashMap<String, ObjectFactory<?>>();
+    private final Map<URI, ObjectFactory<?>> factories = new HashMap<URI, ObjectFactory<?>>();
 
     public ReflectiveInstanceFactoryProvider(Constructor<T> constructor,
-                                             List<String> constructorNames,
-                                             Map<String, Member> injectionSites,
+                                             List<URI> constructorNames,
+                                             Map<URI, Member> injectionSites,
                                              EventInvoker<T> initInvoker,
                                              EventInvoker<T> destroyInvoker) {
         this.constructor = constructor;
@@ -55,7 +56,7 @@
         this.destroyInvoker = destroyInvoker;
     }
 
-    public void setObjectFactory(String name, ObjectFactory<?> objectFactory) {
+    public void setObjectFactory(URI name, ObjectFactory<?> objectFactory) {
         factories.put(name, objectFactory);
     }
 
@@ -68,7 +69,7 @@
     protected ObjectFactory<?>[] getConstructorArgs() {
         ObjectFactory<?>[] initArgs = new ObjectFactory<?>[constructorNames.size()];
         for (int i = 0; i < initArgs.length; i++) {
-            String name = constructorNames.get(i);
+            URI name = constructorNames.get(i);
             ObjectFactory<?> factory = factories.get(name);
             assert factory != null;
             initArgs[i] = factory;
@@ -82,8 +83,8 @@
         Injector<T>[] injectors = (Injector<T>[]) new Injector[injectionSites.size()];
 
         int i = 0;
-        for (Map.Entry<String, Member> entry : injectionSites.entrySet()) {
-            String name = entry.getKey();
+        for (Map.Entry<URI, Member> entry : injectionSites.entrySet()) {
+            URI name = entry.getKey();
             Member site = entry.getValue();
             ObjectFactory<?> factory = factories.get(name);
             assert factory != null;

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/ReflectiveInstanceFactoryProviderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/ReflectiveInstanceFactoryProviderTestCase.java?view=diff&rev=517057&r1=517056&r2=517057
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/ReflectiveInstanceFactoryProviderTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/ReflectiveInstanceFactoryProviderTestCase.java Sun Mar 11 17:44:07 2007
@@ -26,6 +26,7 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.net.URI;
 
 import junit.framework.TestCase;
 import org.easymock.EasyMock;
@@ -46,8 +47,8 @@
     private EventInvoker<Foo> destroyInvoker;
     private Constructor<Foo> noArgConstructor;
     private Constructor<Foo> argConstructor;
-    private List<String> ctrNames;
-    private Map<String, Member> sites;
+    private List<URI> ctrNames;
+    private Map<URI, Member> sites;
     private ObjectFactory intFactory;
     private ObjectFactory stringFactory;
     private ReflectiveInstanceFactoryProvider<Foo> provider;
@@ -55,6 +56,8 @@
     private Field stringField;
     private Method intSetter;
     private Method stringSetter;
+    private URI intURI = URI.create("int");
+    private URI stringURI = URI.create("string");
 
     public void testNoConstructorArgs() {
         ObjectFactory<?>[] args = provider.getConstructorArgs();
@@ -62,15 +65,15 @@
     }
 
     public void testConstructorArgs() {
-        ctrNames.add("int");
-        ctrNames.add("string");
+        ctrNames.add(intURI);
+        ctrNames.add(stringURI);
         provider = new ReflectiveInstanceFactoryProvider<Foo>(argConstructor,
                                                               ctrNames,
                                                               sites,
                                                               initInvoker,
                                                               destroyInvoker);
-        provider.setObjectFactory("int", intFactory);
-        provider.setObjectFactory("string", stringFactory);
+        provider.setObjectFactory(intURI, intFactory);
+        provider.setObjectFactory(stringURI, stringFactory);
         ObjectFactory<?>[] args = provider.getConstructorArgs();
         assertEquals(2, args.length);
         assertSame(intFactory, args[0]);
@@ -78,8 +81,8 @@
     }
 
     public void testFieldInjectors() {
-        sites.put("int", intField);
-        sites.put("string", stringField);
+        sites.put(intURI, intField);
+        sites.put(stringURI, stringField);
         Injector<Foo>[] injectors = provider.getInjectors();
         assertEquals(2, injectors.length);
 
@@ -94,8 +97,8 @@
     }
 
     public void testMethodInjectors() {
-        sites.put("int", intSetter);
-        sites.put("string", stringSetter);
+        sites.put(intURI, intSetter);
+        sites.put(stringURI, stringSetter);
         Injector<Foo>[] injectors = provider.getInjectors();
         assertEquals(2, injectors.length);
 
@@ -110,8 +113,8 @@
     }
 
     public void testFactory() {
-        sites.put("int", intSetter);
-        sites.put("string", stringField);
+        sites.put(intURI, intSetter);
+        sites.put(stringURI, stringField);
         InstanceFactory<Foo> instanceFactory = provider.createFactory();
         InstanceWrapper<Foo> instanceWrapper = instanceFactory.newInstance();
         try {
@@ -136,8 +139,8 @@
         stringField = Foo.class.getField("stringField");
         intSetter = Foo.class.getMethod("setIntField", int.class);
         stringSetter = Foo.class.getMethod("setStringField", String.class);
-        ctrNames = new ArrayList<String>();
-        sites = new HashMap<String, Member>();
+        ctrNames = new ArrayList<URI>();
+        sites = new HashMap<URI, Member>();
         provider = new ReflectiveInstanceFactoryProvider<Foo>(noArgConstructor,
                                                               ctrNames,
                                                               sites,
@@ -149,8 +152,8 @@
         EasyMock.expect(stringFactory.getInstance()).andReturn("Hello");
         EasyMock.replay(intFactory, stringFactory);
 
-        provider.setObjectFactory("int", intFactory);
-        provider.setObjectFactory("string", stringFactory);
+        provider.setObjectFactory(intURI, intFactory);
+        provider.setObjectFactory(stringURI, stringFactory);
     }
 
     public static class Foo {



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