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/07 05:28:12 UTC

svn commit: r400402 [3/3] - in /incubator/tuscany/sandbox/jboynes/sca: containers/container.java/src/main/java/org/apache/tuscany/container/java/assembly/ containers/container.java/src/main/java/org/apache/tuscany/container/java/assembly/impl/ containe...

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=400402&r1=400401&r2=400402&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 Sat May  6 20:28:07 2006
@@ -3,17 +3,22 @@
 import java.lang.reflect.Constructor;
 import java.lang.reflect.Method;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 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.core.injection.MethodEventInvoker;
 import org.apache.tuscany.core.injection.MethodInjector;
 import org.apache.tuscany.core.injection.PojoObjectFactory;
 import org.apache.tuscany.core.system.context.SystemAtomicContext;
 import org.apache.tuscany.spi.context.AtomicContext;
 import org.apache.tuscany.spi.context.ScopeContext;
+import org.osoa.sca.annotations.Destroy;
+import org.osoa.sca.annotations.Init;
 
 /**
  * @version $$Rev$$ $$Date$$
@@ -25,30 +30,21 @@
      * algorithm searches for the first method on the source with a single parameter type matching an
      * interface implemented by the target.
      *
-     * @param source
-     * @param sourceClass
-     * @param target
-     * @param targetClass
-     * @param sourceScope
-     * @param targetScope
-     * @return
      * @throws NoSuchMethodException
      */
-    public static List<AtomicContext> createWiredContexts(String source, Class<?> sourceClass, String target,
-                                                          Class<?> targetClass,
-                                                          ScopeContext<AtomicContext> sourceScope,
-                                                          ScopeContext<AtomicContext> targetScope) throws NoSuchMethodException {
-
-        List<AtomicContext> contexts = new ArrayList<AtomicContext>();
-        SystemAtomicContext targetCtx = createSystemAtomicContext(target, targetClass, false, null, null, null);
-        targetCtx.setScopeContext(targetScope);
+    public static Map<String, AtomicContext> createWiredContexts(String source, Class<?> sourceClass, ScopeContext<AtomicContext> sourceScopeCtx,
+                                                                 String target, Class<?> targetClass,ScopeContext<AtomicContext> targetScopeCtx) throws NoSuchMethodException {
 
-        //wire the contexts
+        Map<String, AtomicContext> contexts = new HashMap<String, AtomicContext>();
+        SystemAtomicContext targetCtx = createSystemAtomicContext(target, targetClass);//, targetEager, targetInitInvoker, targetDestroyInvoker, null);
+        targetCtx.setScopeContext(targetScopeCtx);
+
+        //create target wire
+        Method[] sourceMethods = sourceClass.getMethods();
         Class[] interfaces = targetClass.getInterfaces();
         Method setter = null;
         for (Class interfaze : interfaces) {
-            Method[] methods = sourceClass.getMethods();
-            for (Method method : methods) {
+            for (Method method : sourceMethods) {
                 if (method.getParameterTypes().length == 1) {
                     if (interfaze.isAssignableFrom(method.getParameterTypes()[0])) {
                         setter = method;
@@ -66,14 +62,47 @@
         MethodInjector injector = new MethodInjector(setter, new AtomicContextInstanceFactory(targetCtx));
         List<Injector> injectors = new ArrayList<Injector>();
         injectors.add(injector);
-        SystemAtomicContext sourceCtx = createSystemAtomicContext(source, sourceClass, false, null, null, injectors);
-        sourceCtx.setScopeContext(sourceScope);
-
-        contexts.add(sourceCtx);
-        contexts.add(targetCtx);
+        SystemAtomicContext sourceCtx = createSystemAtomicContext(source, sourceClass,injectors);//, sourceEager, sourceInitInvoker, sourceDestroyInvoker, injectors);
+        sourceCtx.setScopeContext(sourceScopeCtx);
+        contexts.put(source, sourceCtx);
+        contexts.put(target, targetCtx);
         return contexts;
     }
 
+
+    public static SystemAtomicContext createSystemAtomicContext(String name, Class<?> clazz) throws NoSuchMethodException {
+       return  createSystemAtomicContext(name, clazz, null);
+    }
+
+    public static SystemAtomicContext createSystemAtomicContext(String name, Class<?> clazz, List<Injector> injectors) throws NoSuchMethodException {
+        Method[] methods = clazz.getMethods();
+        EventInvoker<Object> initInvoker = null;
+        EventInvoker<Object> destroyInvoker = null;
+        boolean eager = false;
+        for (Method method : methods) {
+            Init init;
+            if ((init = method.getAnnotation(Init.class)) != null) {
+                eager = init.eager();
+                initInvoker = new MethodEventInvoker<Object>(method);
+
+            } else if (method.getAnnotation(Destroy.class) != null) {
+                destroyInvoker = new MethodEventInvoker<Object>(method);
+            }
+        }
+        return createSystemAtomicContext(name, clazz, eager, initInvoker, destroyInvoker, injectors);
+    }
+
+    /**
+     * Creates a system atomic context
+     *
+     * @param name           the name of the context
+     * @param clazz          the component implementation class
+     * @param eagerInit      if the component eager initializes
+     * @param initInvoker    the invoker for {@link org.osoa.sca.annotations.Init}
+     * @param destroyInvoker the invoker for {@link org.osoa.sca.annotations.Destroy}
+     * @param injectors      the injectors responsible for injecting on an instance
+     * @throws NoSuchMethodException
+     */
     public static SystemAtomicContext createSystemAtomicContext(String name, Class<?> clazz, boolean eagerInit, EventInvoker<Object> initInvoker,
                                                                 EventInvoker<Object> destroyInvoker, List<Injector> injectors) throws NoSuchMethodException {
         return new SystemAtomicContext(name, createObjectFactory(clazz, injectors), eagerInit, initInvoker, destroyInvoker);
@@ -85,8 +114,10 @@
     }
 
 
+    /**
+     * Used for injecting references
+     */
     private static class AtomicContextInstanceFactory implements ObjectFactory {
-
         private AtomicContext ctx;
 
         public AtomicContextInstanceFactory(AtomicContext ctx) {
@@ -99,6 +130,3 @@
     }
 
 }
-
-//ObjectFactory<?> objectFactory, boolean eagerInit, EventInvoker<Object> initInvoker,
-//                               EventInvoker<Object> destroyInvoker
\ No newline at end of file

Copied: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/OrderException.java (from r400327, incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/OrderException.java)
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/OrderException.java?p2=incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/OrderException.java&p1=incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/OrderException.java&r1=400327&r2=400402&rev=400402&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/OrderException.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/OrderException.java Sat May  6 20:28:07 2006
@@ -14,7 +14,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.tuscany.container.java.scopes;
+package org.apache.tuscany.core.mock.component;
 
 public class OrderException extends Exception {
 

Propchange: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/OrderException.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/OrderException.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/OrderedDependentPojo.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/OrderedDependentPojo.java?rev=400402&view=auto
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/OrderedDependentPojo.java (added)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/OrderedDependentPojo.java Sat May  6 20:28:07 2006
@@ -0,0 +1,11 @@
+package org.apache.tuscany.core.mock.component;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+public interface OrderedDependentPojo extends OrderedInitPojo{
+
+    OrderedInitPojo getPojo();
+
+    void setPojo(OrderedInitPojo pojo);
+}

Copied: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/OrderedDependentPojoImpl.java (from r400327, incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/OrderedDependentPojo.java)
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/OrderedDependentPojoImpl.java?p2=incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/OrderedDependentPojoImpl.java&p1=incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/OrderedDependentPojo.java&r1=400327&r2=400402&rev=400402&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/OrderedDependentPojo.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/OrderedDependentPojoImpl.java Sat May  6 20:28:07 2006
@@ -1,17 +1,17 @@
-package org.apache.tuscany.container.java.scopes;
+package org.apache.tuscany.core.mock.component;
 
 /**
  * @version $$Rev$$ $$Date$$
  */
-public class OrderedDependentPojo extends OrderedInitPojo {
+public class OrderedDependentPojoImpl extends OrderedInitPojoImpl implements OrderedDependentPojo {
 
-    private OrderedDependentPojo pojo;
+    private OrderedInitPojo pojo;
 
-    public OrderedDependentPojo getPojo() {
+    public OrderedInitPojo getPojo() {
         return pojo;
     }
 
-    public void setPojo(OrderedDependentPojo pojo) {
+    public void setPojo(OrderedInitPojo pojo) {
         this.pojo = pojo;
     }
 

Copied: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/OrderedEagerInitPojo.java (from r400327, incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/OrderedEagerInitPojo.java)
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/OrderedEagerInitPojo.java?p2=incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/OrderedEagerInitPojo.java&p1=incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/OrderedEagerInitPojo.java&r1=400327&r2=400402&rev=400402&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/OrderedEagerInitPojo.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/OrderedEagerInitPojo.java Sat May  6 20:28:07 2006
@@ -14,7 +14,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.tuscany.container.java.scopes;
+package org.apache.tuscany.core.mock.component;
 
 import org.osoa.sca.annotations.Destroy;
 import org.osoa.sca.annotations.Init;
@@ -23,7 +23,7 @@
 @Scope("MODULE")
 public class OrderedEagerInitPojo {
 
-    private static Object lock = new Object();
+    private static final Object lock = new Object();
     private static int numberInstantied;
     private int initOrder;
 

Propchange: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/OrderedEagerInitPojo.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/OrderedEagerInitPojo.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/OrderedInitPojo.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/OrderedInitPojo.java?rev=400402&view=auto
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/OrderedInitPojo.java (added)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/OrderedInitPojo.java Sat May  6 20:28:07 2006
@@ -0,0 +1,10 @@
+package org.apache.tuscany.core.mock.component;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+public interface OrderedInitPojo {
+    int getNumberInstantiated();
+
+    int getInitOrder();
+}

Propchange: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/OrderedInitPojo.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/OrderedInitPojo.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Copied: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/OrderedInitPojoImpl.java (from r400327, incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/OrderedInitPojo.java)
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/OrderedInitPojoImpl.java?p2=incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/OrderedInitPojoImpl.java&p1=incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/OrderedInitPojo.java&r1=400327&r2=400402&rev=400402&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/OrderedInitPojo.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/OrderedInitPojoImpl.java Sat May  6 20:28:07 2006
@@ -14,16 +14,16 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.tuscany.container.java.scopes;
+package org.apache.tuscany.core.mock.component;
 
 import org.osoa.sca.annotations.Destroy;
 import org.osoa.sca.annotations.Init;
 import org.osoa.sca.annotations.Scope;
 
 @Scope("MODULE")
-public class OrderedInitPojo {
+public class OrderedInitPojoImpl implements OrderedInitPojo {
 
-    private static Object lock = new Object();
+    private static final Object lock = new Object();
     private static int numberInstantied;
     private int initOrder;
 

Propchange: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/OrderedInitPojoImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/OrderedInitPojoImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Copied: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/RequestScopedOrderedInitPojo.java (from r400327, incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/RequestScopedOrderedInitPojo.java)
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/RequestScopedOrderedInitPojo.java?p2=incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/RequestScopedOrderedInitPojo.java&p1=incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/RequestScopedOrderedInitPojo.java&r1=400327&r2=400402&rev=400402&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/RequestScopedOrderedInitPojo.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/RequestScopedOrderedInitPojo.java Sat May  6 20:28:07 2006
@@ -1,19 +1,19 @@
-package org.apache.tuscany.container.java.scopes;
+package org.apache.tuscany.core.mock.component;
 
-import org.osoa.sca.annotations.Scope;
-import org.osoa.sca.annotations.Init;
 import org.osoa.sca.annotations.Destroy;
+import org.osoa.sca.annotations.Init;
+import org.osoa.sca.annotations.Scope;
 
 @Scope("REQUEST")
 public class RequestScopedOrderedInitPojo {
 
-    private static Object lock = new Object();
+    private static final Object lock = new Object();
     private static int numberInstantied;
     private int initOrder;
 
     @Init
     public void init() {
-        synchronized (RequestScopedOrderedInitPojo.lock) {
+        synchronized (lock) {
             ++RequestScopedOrderedInitPojo.numberInstantied;
             initOrder = RequestScopedOrderedInitPojo.numberInstantied;
         }
@@ -21,7 +21,7 @@
 
     @Destroy
     public void destroy() throws OrderException {
-        synchronized (RequestScopedOrderedInitPojo.lock) {
+        synchronized (lock) {
             if (initOrder != RequestScopedOrderedInitPojo.numberInstantied) {
                 throw new OrderException("Instance shutdown done out of order");
             }

Copied: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/SessionScopedOrderedInitPojo.java (from r400327, incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/SessionScopedOrderedInitPojo.java)
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/SessionScopedOrderedInitPojo.java?p2=incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/SessionScopedOrderedInitPojo.java&p1=incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/SessionScopedOrderedInitPojo.java&r1=400327&r2=400402&rev=400402&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/SessionScopedOrderedInitPojo.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/component/SessionScopedOrderedInitPojo.java Sat May  6 20:28:07 2006
@@ -1,19 +1,19 @@
-package org.apache.tuscany.container.java.scopes;
+package org.apache.tuscany.core.mock.component;
 
-import org.osoa.sca.annotations.Scope;
-import org.osoa.sca.annotations.Init;
 import org.osoa.sca.annotations.Destroy;
+import org.osoa.sca.annotations.Init;
+import org.osoa.sca.annotations.Scope;
 
 @Scope("SESSION")
 public class SessionScopedOrderedInitPojo {
 
-    private static Object lock = new Object();
+    private static final Object lock = new Object();
     private static int numberInstantied;
     private int initOrder;
 
     @Init
     public void init() {
-        synchronized (SessionScopedOrderedInitPojo.lock) {
+        synchronized (lock) {
             ++SessionScopedOrderedInitPojo.numberInstantied;
             initOrder = SessionScopedOrderedInitPojo.numberInstantied;
         }
@@ -21,7 +21,7 @@
 
     @Destroy
     public void destroy() throws OrderException {
-        synchronized (SessionScopedOrderedInitPojo.lock) {
+        synchronized (lock) {
             if (initOrder != SessionScopedOrderedInitPojo.numberInstantied) {
                 throw new OrderException("Instance shutdown done out of order");
             }

Added: incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ScopeNotFoundException.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ScopeNotFoundException.java?rev=400402&view=auto
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ScopeNotFoundException.java (added)
+++ incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ScopeNotFoundException.java Sat May  6 20:28:07 2006
@@ -0,0 +1,21 @@
+package org.apache.tuscany.spi.context;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+public class ScopeNotFoundException extends ScopeRuntimeException{
+    public ScopeNotFoundException() {
+    }
+
+    public ScopeNotFoundException(String message) {
+        super(message);
+    }
+
+    public ScopeNotFoundException(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    public ScopeNotFoundException(Throwable cause) {
+        super(cause);
+    }
+}

Modified: incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ScopeRegistry.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ScopeRegistry.java?rev=400402&r1=400401&r2=400402&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ScopeRegistry.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ScopeRegistry.java Sat May  6 20:28:07 2006
@@ -16,14 +16,17 @@
 import java.util.List;
 
 import org.apache.tuscany.common.ObjectFactory;
+import org.apache.tuscany.model.Scope;
 
 /**
  * @version $$Rev$$ $$Date$$
  */
 public interface ScopeRegistry {
 
-    List<ScopeContext> getScopeContexts(CompositeContext module);
+    ScopeContext getScopeContext(Scope scope,CompositeContext remotableContext) throws ScopeNotFoundException;
+
+    void registerFactory(Scope scope, ObjectFactory<ScopeContext> factory);
+
+    void deregisterFactory(Scope scope);
 
-    void registerFactory(ObjectFactory<ScopeContext> factory);
-    
 }