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 05:53:29 UTC
svn commit: r517098 - in /incubator/tuscany/java/sca/kernel/core/src:
main/java/org/apache/tuscany/core/component/
main/java/org/apache/tuscany/core/implementation/system/builder/
main/java/org/apache/tuscany/core/implementation/system/model/ test/java...
Author: jboynes
Date: Sun Mar 11 21:53:28 2007
New Revision: 517098
URL: http://svn.apache.org/viewvc?view=rev&rev=517098
Log:
start implementation of SystemPhysicalComponentBuilder
Modified:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/ReflectiveInstanceFactoryProvider.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemPhysicalComponentBuilder.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/model/SystemPhysicalComponentDefinition.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=517098&r1=517097&r2=517098
==============================================================================
--- 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 21:53:28 2007
@@ -31,6 +31,7 @@
import org.apache.tuscany.core.injection.FieldInjector;
import org.apache.tuscany.core.injection.Injector;
import org.apache.tuscany.core.injection.MethodInjector;
+import org.apache.tuscany.core.injection.MethodEventInvoker;
import org.apache.tuscany.spi.ObjectFactory;
/**
@@ -47,13 +48,13 @@
public ReflectiveInstanceFactoryProvider(Constructor<T> constructor,
List<URI> constructorNames,
Map<URI, Member> injectionSites,
- EventInvoker<T> initInvoker,
- EventInvoker<T> destroyInvoker) {
+ Method initMethod,
+ Method destroyMethod) {
this.constructor = constructor;
this.constructorNames = constructorNames;
this.injectionSites = injectionSites;
- this.initInvoker = initInvoker;
- this.destroyInvoker = destroyInvoker;
+ this.initInvoker = initMethod == null ? null : new MethodEventInvoker<T>(initMethod);
+ this.destroyInvoker = destroyMethod == null ? null : new MethodEventInvoker<T>(destroyMethod);
}
public void setObjectFactory(URI name, ObjectFactory<?> objectFactory) {
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemPhysicalComponentBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemPhysicalComponentBuilder.java?view=diff&rev=517098&r1=517097&r2=517098
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemPhysicalComponentBuilder.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemPhysicalComponentBuilder.java Sun Mar 11 21:53:28 2007
@@ -18,18 +18,44 @@
*/
package org.apache.tuscany.core.implementation.system.builder;
+import java.net.URI;
+import java.lang.reflect.Method;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Member;
+import java.util.List;
+import java.util.Map;
+
import org.apache.tuscany.core.implementation.system.component.SystemComponent;
import org.apache.tuscany.core.implementation.system.model.SystemPhysicalComponentDefinition;
+import org.apache.tuscany.core.component.InstanceFactoryProvider;
+import org.apache.tuscany.core.component.ReflectiveInstanceFactoryProvider;
+import org.apache.tuscany.core.injection.EventInvoker;
+import org.apache.tuscany.core.injection.MethodEventInvoker;
+import org.apache.tuscany.spi.builder.physical.PhysicalComponentBuilder;
+import org.apache.tuscany.spi.builder.BuilderException;
+import org.apache.tuscany.spi.component.ScopeContainer;
/**
* @version $Rev$ $Date$
*/
-public class SystemPhysicalComponentBuilder {
- <T> SystemComponent<T> build(SystemPhysicalComponentDefinition<T> definition) {
- throw new UnsupportedOperationException();
-/*
- SystemComponent<T> component = new SystemComponent<T>();
+public class SystemPhysicalComponentBuilder<T>
+ implements PhysicalComponentBuilder<SystemPhysicalComponentDefinition<T>, SystemComponent<T>> {
+
+ public SystemComponent<T> build(SystemPhysicalComponentDefinition<T> definition) {
+ URI componentId = definition.getComponentId();
+ int initLevel = definition.getInitLevel();
+ Method initMethod = definition.getInitMethod();
+ Method destroyMethod = definition.getDestroyMethod();
+ Constructor<T> constructor = null;
+ List<URI> constructorNames = null;
+ Map<URI, Member> injectionSites = null;
+ ScopeContainer scopeContainer = null;
+ InstanceFactoryProvider<T> provider = new ReflectiveInstanceFactoryProvider(constructor,
+ constructorNames,
+ injectionSites,
+ initMethod,
+ destroyMethod);
+ SystemComponent<T> component = new SystemComponent<T>(componentId, provider, scopeContainer, initLevel, -1, -1);
return component;
-*/
}
}
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/model/SystemPhysicalComponentDefinition.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/model/SystemPhysicalComponentDefinition.java?view=diff&rev=517098&r1=517097&r2=517098
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/model/SystemPhysicalComponentDefinition.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/model/SystemPhysicalComponentDefinition.java Sun Mar 11 21:53:28 2007
@@ -18,6 +18,8 @@
*/
package org.apache.tuscany.core.implementation.system.model;
+import java.lang.reflect.Method;
+
import org.apache.tuscany.spi.model.physical.PhysicalComponentDefinition;
/**
@@ -28,4 +30,42 @@
// we can use an actual class as system components cannot be marshalled
private Class<T> implClass;
+
+ private Method initMethod;
+
+ private Method destroyMethod;
+
+ private int initLevel;
+
+ public Class<T> getImplClass() {
+ return implClass;
+ }
+
+ public void setImplClass(Class<T> implClass) {
+ this.implClass = implClass;
+ }
+
+ public Method getInitMethod() {
+ return initMethod;
+ }
+
+ public void setInitMethod(Method initMethod) {
+ this.initMethod = initMethod;
+ }
+
+ public Method getDestroyMethod() {
+ return destroyMethod;
+ }
+
+ public void setDestroyMethod(Method destroyMethod) {
+ this.destroyMethod = destroyMethod;
+ }
+
+ public int getInitLevel() {
+ return initLevel;
+ }
+
+ public void setInitLevel(int initLevel) {
+ this.initLevel = initLevel;
+ }
}
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=517098&r1=517097&r2=517098
==============================================================================
--- 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 21:53:28 2007
@@ -19,21 +19,20 @@
package org.apache.tuscany.core.component;
import java.lang.reflect.Constructor;
-import java.lang.reflect.Member;
import java.lang.reflect.Field;
+import java.lang.reflect.Member;
import java.lang.reflect.Method;
+import java.net.URI;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.net.URI;
import junit.framework.TestCase;
import org.easymock.EasyMock;
-import org.apache.tuscany.core.injection.EventInvoker;
-import org.apache.tuscany.core.injection.Injector;
import org.apache.tuscany.core.injection.FieldInjector;
+import org.apache.tuscany.core.injection.Injector;
import org.apache.tuscany.core.injection.MethodInjector;
import org.apache.tuscany.spi.ObjectFactory;
import org.apache.tuscany.spi.component.InstanceWrapper;
@@ -43,9 +42,6 @@
* @version $Rev$ $Date$
*/
public class ReflectiveInstanceFactoryProviderTestCase extends TestCase {
- private EventInvoker<Foo> initInvoker;
- private EventInvoker<Foo> destroyInvoker;
- private Constructor<Foo> noArgConstructor;
private Constructor<Foo> argConstructor;
private List<URI> ctrNames;
private Map<URI, Member> sites;
@@ -70,8 +66,8 @@
provider = new ReflectiveInstanceFactoryProvider<Foo>(argConstructor,
ctrNames,
sites,
- initInvoker,
- destroyInvoker);
+ null,
+ null);
provider.setObjectFactory(intURI, intFactory);
provider.setObjectFactory(stringURI, stringFactory);
ObjectFactory<?>[] args = provider.getConstructorArgs();
@@ -131,9 +127,7 @@
@SuppressWarnings("unchecked")
protected void setUp() throws Exception {
super.setUp();
- initInvoker = EasyMock.createMock(EventInvoker.class);
- destroyInvoker = EasyMock.createMock(EventInvoker.class);
- noArgConstructor = Foo.class.getConstructor();
+ Constructor<Foo> noArgConstructor = Foo.class.getConstructor();
argConstructor = Foo.class.getConstructor(int.class, String.class);
intField = Foo.class.getField("intField");
stringField = Foo.class.getField("stringField");
@@ -144,8 +138,8 @@
provider = new ReflectiveInstanceFactoryProvider<Foo>(noArgConstructor,
ctrNames,
sites,
- initInvoker,
- destroyInvoker);
+ null,
+ null);
intFactory = EasyMock.createMock(ObjectFactory.class);
stringFactory = EasyMock.createMock(ObjectFactory.class);
EasyMock.expect(intFactory.getInstance()).andReturn(34);
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org