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