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