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/14 10:54:09 UTC

svn commit: r406286 - in /incubator/tuscany/sandbox/jboynes/sca/core2/src: main/java/org/apache/tuscany/core/context/ main/java/org/apache/tuscany/core/system/context/ test/java/org/apache/tuscany/core/context/scope/ test/java/org/apache/tuscany/core/m...

Author: jmarino
Date: Sun May 14 01:54:07 2006
New Revision: 406286

URL: http://svn.apache.org/viewcvs?rev=406286&view=rev
Log:
extension api work again

Modified:
    incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/PojoAtomicContext.java
    incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemAtomicContextImpl.java
    incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/BasicHttpSessionScopeTestCase.java
    incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/BasicModuleScopeTestCase.java
    incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/BasicRequestScopeTestCase.java
    incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/MockFactory.java
    incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/context/SystemAtomicContextTestCase.java

Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/PojoAtomicContext.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/PojoAtomicContext.java?rev=406286&r1=406285&r2=406286&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/PojoAtomicContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/PojoAtomicContext.java Sun May 14 01:54:07 2006
@@ -6,12 +6,13 @@
 import org.apache.tuscany.common.ObjectCreationException;
 import org.apache.tuscany.common.ObjectFactory;
 import org.apache.tuscany.core.injection.EventInvoker;
+import org.apache.tuscany.core.injection.Injector;
 import org.apache.tuscany.model.Scope;
+import org.apache.tuscany.spi.context.AbstractContext;
 import org.apache.tuscany.spi.context.AtomicContext;
 import org.apache.tuscany.spi.context.InstanceWrapper;
 import org.apache.tuscany.spi.context.ScopeContext;
 import org.apache.tuscany.spi.context.TargetException;
-import org.apache.tuscany.spi.context.AbstractContext;
 
 /**
  * Base implementation of an {@link AtomicContext} whose implementation type is a Java class
@@ -26,9 +27,10 @@
     protected EventInvoker<Object> destroyInvoker;
     protected ObjectFactory<?> objectFactory;
     protected List<Class<?>> serviceInterfaces;
+    protected List<Injector> injectors;
 
     public PojoAtomicContext(String name, Class<?> serviceInterface, ObjectFactory<?> objectFactory, boolean eagerInit, EventInvoker<Object> initInvoker,
-                             EventInvoker<Object> destroyInvoker) {
+                             EventInvoker<Object> destroyInvoker, List<Injector> injectors) {
         super(name);
         List<Class<?>> serviceInterfaces = new ArrayList<Class<?>>();
         serviceInterfaces.add(serviceInterface);
@@ -41,10 +43,11 @@
         this.initInvoker = initInvoker;
         this.destroyInvoker = destroyInvoker;
         this.serviceInterfaces = serviceInterfaces;
+        this.injectors = (injectors == null) ? new ArrayList<Injector>() : injectors;
     }
 
     public PojoAtomicContext(String name, List<Class<?>> serviceInterfaces, ObjectFactory<?> objectFactory, boolean eagerInit, EventInvoker<Object> initInvoker,
-                             EventInvoker<Object> destroyInvoker) {
+                             EventInvoker<Object> destroyInvoker,List<Injector> injectors) {
         super(name);
         assert (objectFactory != null) : "Object factory was null";
         if (eagerInit && initInvoker == null) {
@@ -55,6 +58,7 @@
         this.initInvoker = initInvoker;
         this.destroyInvoker = destroyInvoker;
         this.serviceInterfaces = serviceInterfaces;
+        this.injectors = (injectors == null) ? new ArrayList<Injector>() : injectors;
     }
 
     public List<Class<?>> getServiceInterfaces() {
@@ -91,11 +95,16 @@
 
     @SuppressWarnings("unchecked")
     public T getTargetInstance() throws TargetException {
-        return (T)scopeContext.getInstance(this);
+        return (T) scopeContext.getInstance(this);
     }
 
     public InstanceWrapper createInstance() throws ObjectCreationException {
-        InstanceWrapper ctx = new PojoInstanceWrapper(this, objectFactory.getInstance());
+        Object instance = objectFactory.getInstance();
+        InstanceWrapper ctx = new PojoInstanceWrapper(this, instance);
+        // inject the instance with properties and references
+        for (Injector<Object> injector : injectors) {
+            injector.inject(instance);
+        }
         ctx.start();
         return ctx;
     }

Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemAtomicContextImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemAtomicContextImpl.java?rev=406286&r1=406285&r2=406286&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemAtomicContextImpl.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemAtomicContextImpl.java Sun May 14 01:54:07 2006
@@ -1,48 +1,40 @@
 package org.apache.tuscany.core.system.context;
 
+import java.lang.reflect.Method;
 import java.util.List;
 import java.util.Map;
-import java.lang.reflect.Method;
 
-import org.apache.tuscany.common.ObjectCreationException;
 import org.apache.tuscany.common.ObjectFactory;
 import org.apache.tuscany.core.context.PojoAtomicContext;
-import org.apache.tuscany.core.context.PojoInstanceWrapper;
 import org.apache.tuscany.core.injection.EventInvoker;
-import org.apache.tuscany.spi.context.InstanceWrapper;
+import org.apache.tuscany.core.injection.Injector;
 import org.apache.tuscany.spi.context.TargetException;
 import org.apache.tuscany.spi.wire.SourceWire;
-import org.apache.tuscany.spi.wire.TargetWire;
 import org.apache.tuscany.spi.wire.TargetInvoker;
+import org.apache.tuscany.spi.wire.TargetWire;
 
 /**
  * @version $$Rev$$ $$Date$$
  */
 public class SystemAtomicContextImpl<T> extends PojoAtomicContext<T> implements SystemAtomicContext<T> {
 
-    public SystemAtomicContextImpl(String name, Class<?> serviceInterface, ObjectFactory<?> objectFactory) {
-        super(name, serviceInterface, objectFactory, false, null, null);
+    public SystemAtomicContextImpl(String name, Class<?> serviceInterface, ObjectFactory<?> objectFactory, List<Injector> injectors) {
+        super(name, serviceInterface, objectFactory, false, null, null, injectors);
     }
 
     public SystemAtomicContextImpl(String name, Class<?> serviceInterface, ObjectFactory<?> objectFactory, boolean eagerInit, EventInvoker<Object> initInvoker,
-                                   EventInvoker<Object> destroyInvoker) {
-        super(name, serviceInterface, objectFactory, eagerInit, initInvoker, destroyInvoker);
+                                   EventInvoker<Object> destroyInvoker, List<Injector> injectors) {
+        super(name, serviceInterface, objectFactory, eagerInit, initInvoker, destroyInvoker, injectors);
     }
 
     public SystemAtomicContextImpl(String name, List<Class<?>> serviceInterfaces, ObjectFactory<?> objectFactory, boolean eagerInit, EventInvoker<Object> initInvoker,
-                                   EventInvoker<Object> destroyInvoker) {
-        super(name, serviceInterfaces, objectFactory, eagerInit, initInvoker, destroyInvoker);
+                                   EventInvoker<Object> destroyInvoker, List<Injector> injectors) {
+        super(name, serviceInterfaces, objectFactory, eagerInit, initInvoker, destroyInvoker, injectors);
     }
 
     @SuppressWarnings("unchecked")
     public T getTargetInstance() throws TargetException {
-        return (T)scopeContext.getInstance(this);
-    }
-
-    public InstanceWrapper createInstance() throws ObjectCreationException {
-        InstanceWrapper ctx = new PojoInstanceWrapper(this, objectFactory.getInstance());
-        ctx.start();
-        return ctx;
+        return (T) scopeContext.getInstance(this);
     }
 
     public void prepare() {
@@ -80,7 +72,7 @@
         throw new UnsupportedOperationException();
     }
 
-    public TargetInvoker createTargetInvoker(String serviceName, Method operation){
+    public TargetInvoker createTargetInvoker(String serviceName, Method operation) {
         throw new UnsupportedOperationException();
     }
 

Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/BasicHttpSessionScopeTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/BasicHttpSessionScopeTestCase.java?rev=406286&r1=406285&r2=406286&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/BasicHttpSessionScopeTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/BasicHttpSessionScopeTestCase.java Sun May 14 01:54:07 2006
@@ -84,6 +84,6 @@
     }
 
     private SystemAtomicContext createContext() {
-        return new SystemAtomicContextImpl("foo", SessionScopeInitDestroyComponent.class, factory, false, initInvoker, destroyInvoker);
+        return new SystemAtomicContextImpl("foo", SessionScopeInitDestroyComponent.class, factory, false, initInvoker, destroyInvoker, null);
     }
 }

Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/BasicModuleScopeTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/BasicModuleScopeTestCase.java?rev=406286&r1=406285&r2=406286&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/BasicModuleScopeTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/BasicModuleScopeTestCase.java Sun May 14 01:54:07 2006
@@ -77,6 +77,6 @@
     }
 
     private SystemAtomicContext createContext() {
-        return new SystemAtomicContextImpl("foo", ModuleScopeInitDestroyComponent.class,factory, false, initInvoker, destroyInvoker);
+        return new SystemAtomicContextImpl("foo", ModuleScopeInitDestroyComponent.class,factory, false, initInvoker, destroyInvoker, null);
     }
 }

Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/BasicRequestScopeTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/BasicRequestScopeTestCase.java?rev=406286&r1=406285&r2=406286&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/BasicRequestScopeTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/BasicRequestScopeTestCase.java Sun May 14 01:54:07 2006
@@ -76,6 +76,6 @@
     }
 
     private SystemAtomicContext createContext() {
-        return new SystemAtomicContextImpl("foo", RequestScopeInitDestroyComponent.class,factory, false, initInvoker, destroyInvoker);
+        return new SystemAtomicContextImpl("foo", RequestScopeInitDestroyComponent.class,factory, false, initInvoker, destroyInvoker, null);
     }
 }

Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/MockFactory.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/MockFactory.java?rev=406286&r1=406285&r2=406286&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/MockFactory.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/MockFactory.java Sun May 14 01:54:07 2006
@@ -123,7 +123,7 @@
      */
     public static SystemAtomicContextImpl createSystemAtomicContext(String name, List<Class<?>> serviceInterfaces, Class<?> clazz, boolean eagerInit, EventInvoker<Object> initInvoker,
                                                                     EventInvoker<Object> destroyInvoker, List<Injector> injectors) throws NoSuchMethodException {
-        return new SystemAtomicContextImpl(name, serviceInterfaces, createObjectFactory(clazz, injectors), eagerInit, initInvoker, destroyInvoker);
+        return new SystemAtomicContextImpl(name, serviceInterfaces, createObjectFactory(clazz, injectors), eagerInit, initInvoker, destroyInvoker, null);
     }
 
     public static <T> TargetWire<T> createTargetWireFactory(String serviceName, Class<T> interfaze) throws WireFactoryInitException {

Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/context/SystemAtomicContextTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/context/SystemAtomicContextTestCase.java?rev=406286&r1=406285&r2=406286&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/context/SystemAtomicContextTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/context/SystemAtomicContextTestCase.java Sun May 14 01:54:07 2006
@@ -19,7 +19,7 @@
     public void testContextCreationAndInit() throws Exception {
         ObjectFactory<Foo> factory = new PojoObjectFactory<Foo>(Foo.class.getConstructor((Class[]) null), null, null);
         ScopeContext<AtomicContext> scopeContext = new MockScopeContext();
-        SystemAtomicContext context = new SystemAtomicContextImpl("foo",Foo.class,factory,false,initInvoker,null);
+        SystemAtomicContext context = new SystemAtomicContextImpl("foo",Foo.class,factory,false,initInvoker,null, null);
         context.setScopeContext(scopeContext);
         Foo instance = (Foo) context.getService(null);
         assertNotNull(instance);