Author: jmarino
Date: Wed May  3 23:33:15 2006
New Revision: 399569

URL: http://svn.apache.org/viewcvs?rev=399569&view=rev
Log:
more scope context refactors

Added:
    
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/PojoInstanceContext.java
    
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/CompositeScopeContext.java
    
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/StatelessScopeContext.java
    
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/FieldInjector.java
    
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/Injector.java
    
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/MethodInjector.java
    
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/PojoObjectFactory.java
    
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/
    
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemAtomicContext.java
    
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/spi/
    
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/spi/context/
    
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/spi/context/ScopeInitializationException.java
    
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/
    
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/context/
    
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/context/scope/
    
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/context/scope/MockScopeContext.java
    
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/
    
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/context/
    
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/context/SystemAtomicContextTestCase.java
    
incubator/tuscany/sandbox/jboynes/sca/spi/src/test/java/org/apache/tuscany/core/
    
incubator/tuscany/sandbox/jboynes/sca/spi/src/test/java/org/apache/tuscany/core/mock/
    
incubator/tuscany/sandbox/jboynes/sca/spi/src/test/java/org/apache/tuscany/core/mock/beans/
Modified:
    
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/AbstractLifecycle.java
    
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/context/scope/AbstractScopeContext.java
    
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/ModuleScopeContext.java
    
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/AtomicContext.java
    
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/InstanceContext.java
    
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ScopeContext.java

Modified: 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/AbstractLifecycle.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/AbstractLifecycle.java?rev=399569&r1=399568&r2=399569&view=diff
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/AbstractLifecycle.java
 (original)
+++ 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/AbstractLifecycle.java
 Wed May  3 23:33:15 2006
@@ -56,6 +56,7 @@
     }
 
     public String toString() {
+        if (name != null){
         switch (lifecycleState) {
             case (Lifecycle.CONFIG_ERROR):
                 return new StringBuilder().append("[").append(name).append("] 
in state [CONFIG_ERROR]").toString();
@@ -75,6 +76,28 @@
                 return new StringBuilder().append("[").append(name).append("] 
in state [UNINITIALIZED]").toString();
             default:
                 return new StringBuilder().append("[").append(name).append("] 
in state [UNKNOWN]").toString();
+            }
+        }else{
+            switch (lifecycleState) {
+            case (Lifecycle.CONFIG_ERROR):
+                return new StringBuilder().append("state 
[CONFIG_ERROR]").toString();
+            case (Lifecycle.ERROR):
+                return new StringBuilder().append("state [ERROR]").toString();
+            case (Lifecycle.INITIALIZING):
+                return new StringBuilder().append("state 
[INITIALIZING]").toString();
+            case (Lifecycle.INITIALIZED):
+                return new StringBuilder().append("state 
[INITIALIZED]").toString();
+            case (Lifecycle.RUNNING):
+                return new StringBuilder().append("state 
[RUNNING]").toString();
+            case (Lifecycle.STOPPING):
+                return new StringBuilder().append("state 
[STOPPING]").toString();
+            case (Lifecycle.STOPPED):
+                return new StringBuilder().append("state 
[STOPPED]").toString();
+            case (Lifecycle.UNINITIALIZED):
+                return new StringBuilder().append("state 
[UNINITIALIZED]").toString();
+            default:
+                return new StringBuilder().append("state 
[UNKNOWN]").toString();
+            }
         }
     }
 }

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=399569&r1=399568&r2=399569&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
 Wed May  3 23:33:15 2006
@@ -1,28 +1,21 @@
 package org.apache.tuscany.core.context;
 
-import java.util.List;
-import java.util.Map;
-
-import org.apache.tuscany.core.injection.EventInvoker;
+import org.apache.tuscany.common.ObjectCreationException;
+import org.apache.tuscany.common.ObjectFactory;
 import org.apache.tuscany.core.context.event.InstanceCreated;
+import org.apache.tuscany.core.injection.EventInvoker;
 import org.apache.tuscany.model.Scope;
-import org.apache.tuscany.spi.QualifiedName;
 import org.apache.tuscany.spi.context.AtomicContext;
-import org.apache.tuscany.spi.context.CompositeContext;
 import org.apache.tuscany.spi.context.InstanceContext;
 import org.apache.tuscany.spi.context.ScopeContext;
 import org.apache.tuscany.spi.context.TargetException;
-import org.apache.tuscany.spi.wire.SourceWireFactory;
-import org.apache.tuscany.spi.wire.TargetWireFactory;
-import org.apache.tuscany.common.ObjectFactory;
-import org.apache.tuscany.common.ObjectCreationException;
 
 /**
  * @version $$Rev$$ $$Date$$
  */
-public class PojoAtomicContext extends AbstractContext implements 
AtomicContext {
+public abstract class PojoAtomicContext extends AbstractContext implements 
AtomicContext {
 
-    private ScopeContext scopeContext;
+    private ScopeContext<AtomicContext> scopeContext;
 
     private boolean eagerInit;
 
@@ -31,9 +24,9 @@
     private EventInvoker<Object> destroyInvoker;
 
 
-    private ObjectFactory<InstanceContext> objectFactory;
+    private ObjectFactory<?> objectFactory;
 
-    public PojoAtomicContext(String name, ScopeContext scopeContext, 
ObjectFactory<InstanceContext> objectFactory, boolean eagerInit, 
EventInvoker<Object> initInvoker,
+    public PojoAtomicContext(String name, ScopeContext<AtomicContext> 
scopeContext, ObjectFactory<?> objectFactory, boolean eagerInit, 
EventInvoker<Object> initInvoker,
                              EventInvoker<Object> destroyInvoker) {
         super(name);
         assert (scopeContext != null) : "Scope context was null";
@@ -80,45 +73,12 @@
 
     }
 
-    public void addTargetWireFactory(String serviceName, TargetWireFactory 
factory) {
-
-    }
-
-    public TargetWireFactory getTargetWireFactory(String serviceName) {
-        return null;
-    }
-
-    public Map<String, TargetWireFactory> getTargetWireFactories() {
-        return null;
-    }
-
-    public void addSourceWireFactory(String referenceName, SourceWireFactory 
factory) {
-
-    }
-
-    public void addSourceWireFactories(String referenceName, Class 
referenceInterface, List<SourceWireFactory> factory, boolean multiplicity) {
-
-    }
-
-    public List<SourceWireFactory> getSourceWireFactories() {
-        return null;
-    }
-
-    public void prepare(CompositeContext parent) {
-
-    }
-
     public InstanceContext createInstance() throws ObjectCreationException {
-        InstanceContext ctx = objectFactory.getInstance();
-        publish(new InstanceCreated(this,ctx));
+        InstanceContext ctx = new 
PojoInstanceContext(objectFactory.getInstance());
+        ctx.start();
+        publish(new InstanceCreated(this, ctx));
         return ctx;
     }
-
-
-    public Object getInstance(QualifiedName qName) throws TargetException {
-        return scopeContext.getInstance(this);
-    }
-
 
 
 }

Added: 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/PojoInstanceContext.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/PojoInstanceContext.java?rev=399569&view=auto
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/PojoInstanceContext.java
 (added)
+++ 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/PojoInstanceContext.java
 Wed May  3 23:33:15 2006
@@ -0,0 +1,33 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as 
applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 
express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package org.apache.tuscany.core.context;
+
+import org.apache.tuscany.spi.context.InstanceContext;
+import org.apache.tuscany.core.AbstractLifecycle;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+public class PojoInstanceContext extends AbstractLifecycle implements 
InstanceContext {
+
+    private Object instance;
+
+    public PojoInstanceContext(Object instance){
+        this.instance = instance;
+    }
+
+    public Object getInstance() {
+        return instance;
+    }
+}

Modified: 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/AbstractScopeContext.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/AbstractScopeContext.java?rev=399569&r1=399568&r2=399569&view=diff
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/AbstractScopeContext.java
 (original)
+++ 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/AbstractScopeContext.java
 Wed May  3 23:33:15 2006
@@ -20,15 +20,15 @@
  *
  * @version $Rev: 399161 $ $Date: 2006-05-02 23:09:37 -0700 (Tue, 02 May 2006) 
$
  */
-public abstract class AbstractScopeContext<S, T extends Context> extends 
AbstractLifecycle implements ScopeContext<S, T> {
+public abstract class AbstractScopeContext<T extends Context> extends 
AbstractLifecycle implements ScopeContext<T> {
 
     // The event context the scope container is associated with
     protected WorkContext workContext;
     private Map<EventFilter, List<RuntimeEventListener>> listeners;
     private static final EventFilter TRUE_FILTER = new TrueFilter();
- 
-    public AbstractScopeContext(WorkContext workContext) {
-        assert (workContext != null) : "Event context was null";
+
+    public AbstractScopeContext(String name, WorkContext workContext) {
+        super(name);
         this.workContext = workContext;
     }
 

Added: 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/CompositeScopeContext.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/CompositeScopeContext.java?rev=399569&view=auto
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/CompositeScopeContext.java
 (added)
+++ 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/CompositeScopeContext.java
 Wed May  3 23:33:15 2006
@@ -0,0 +1,94 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as 
applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 
express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package org.apache.tuscany.core.context.scope;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+import org.apache.tuscany.core.AbstractLifecycle;
+import org.apache.tuscany.model.Scope;
+import org.apache.tuscany.spi.Lifecycle;
+import org.apache.tuscany.spi.context.CompositeContext;
+import org.apache.tuscany.spi.context.InstanceContext;
+import org.apache.tuscany.spi.context.ScopeContext;
+import org.apache.tuscany.spi.context.ScopeInitializationException;
+import org.apache.tuscany.spi.context.ScopeRuntimeException;
+import org.apache.tuscany.spi.context.TargetException;
+import org.apache.tuscany.spi.context.WorkContext;
+import org.apache.tuscany.spi.event.Event;
+
+/**
+ * Manages the lifecycle of composite component contexts, i.e. contexts which 
contain child contexts
+ *
+ * @version $Rev: 399161 $ $Date: 2006-05-02 23:09:37 -0700 (Tue, 02 May 2006) 
$
+ * @see org.apache.tuscany.spi.context.CompositeContext
+ */
+public class CompositeScopeContext extends AbstractLifecycle implements 
ScopeContext<CompositeContext> {
+
+    // Composite component contexts in this scope keyed by parent
+    private Map<CompositeContext, List<CompositeContext>> contexts = new 
ConcurrentHashMap<CompositeContext, List<CompositeContext>>();
+    private WorkContext workContext;
+
+    public CompositeScopeContext(WorkContext workContext) {
+        setName("Composite Scope");
+        assert(workContext != null): "Work context was null";
+        this.workContext = workContext;
+    }
+
+    public Scope getScope() {
+        return Scope.AGGREGATE;
+    }
+
+    public void start() throws ScopeInitializationException {
+        lifecycleState = Lifecycle.RUNNING;
+    }
+
+    public void stop() throws ScopeRuntimeException {
+    }
+
+    public void onEvent(Event event) {
+    }
+
+    public void register(CompositeContext context) {
+        checkInit();
+        CompositeContext module = workContext.getCurrentModule();
+        List<CompositeContext> ctxs = contexts.get(module);
+        if (ctxs == null) {
+            ctxs = new ArrayList<CompositeContext>();
+        }
+        synchronized (ctxs) {
+            ctxs.add(context);
+        }
+        contexts.put(module, ctxs);
+    }
+
+    public Object getInstance(CompositeContext context) throws TargetException 
{
+        checkInit();
+        return context; // return the context since it is the instance
+    }
+
+    public InstanceContext getInstanceContext(CompositeContext context) throws 
TargetException {
+        throw new UnsupportedOperationException();
+    }
+
+    private void checkInit() {
+        if (getLifecycleState() != Lifecycle.RUNNING) {
+            throw new IllegalStateException("Scope not running [" + 
getLifecycleState() + "]");
+        }
+    }
+
+
+}

Modified: 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/ModuleScopeContext.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/ModuleScopeContext.java?rev=399569&r1=399568&r2=399569&view=diff
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/ModuleScopeContext.java
 (original)
+++ 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/ModuleScopeContext.java
 Wed May  3 23:33:15 2006
@@ -30,7 +30,7 @@
  *
  * @version $Rev: 399161 $ $Date: 2006-05-02 23:09:37 -0700 (Tue, 02 May 2006) 
$
  */
-public class ModuleScopeContext extends AbstractScopeContext<CompositeContext, 
AtomicContext> {
+public class ModuleScopeContext extends AbstractScopeContext<AtomicContext> {
 
     private Map<Context, InstanceContext> instanceContexts;
 
@@ -41,8 +41,7 @@
     private Map<CompositeContext, List<InstanceContext>> destroyQueues;
 
     public ModuleScopeContext(WorkContext workContext) {
-        super(workContext);
-        setName("Module Scope");
+        super("Module Scope",workContext);
         instanceContexts = new ConcurrentHashMap<Context, InstanceContext>();
         registeredContexts = new ConcurrentHashMap<CompositeContext, 
List<AtomicContext>>();
         destroyQueues = new ConcurrentHashMap<CompositeContext, 
List<InstanceContext>>();
@@ -54,11 +53,12 @@
 
 
     public void onEvent(Event event) {
+        checkInit();
         if (event instanceof ModuleStart) {
             lifecycleState = RUNNING;
-            initComponentContexts();
+            initComponentContexts(((ModuleStart)event).getContext());
         } else if (event instanceof ModuleStop) {
-            shutdownContexts();
+            shutdownContexts(((ModuleStop)event).getContext());
         } else if (event instanceof InstanceCreated) {
             checkInit();
             // Queue the context to have its implementation instance released 
if destroyable
@@ -77,17 +77,17 @@
         if (lifecycleState != RUNNING) {
             throw new IllegalStateException("Scope in wrong state [" + 
lifecycleState + "]");
         }
-//        instanceContexts = null;
-//        destroyQueue = null;
         lifecycleState = STOPPED;
+        //TODO implement stop semantics
     }
 
 
     /**
      * Notifies instanceContexts of a shutdown in reverse order to which they 
were started
      */
-    private void shutdownContexts() {
-        List<InstanceContext> destroyQueue = 
destroyQueues.remove(workContext.getCurrentModule());
+    private void shutdownContexts(CompositeContext ctx) {
+        checkInit();
+        List<InstanceContext> destroyQueue = destroyQueues.remove(ctx);
         if (destroyQueue == null || destroyQueue.size() == 0) {
             return;
         }
@@ -103,8 +103,8 @@
         }
     }
 
-    private void initComponentContexts() throws CoreRuntimeException {
-        CompositeContext module = workContext.getCurrentModule();
+    private void initComponentContexts(CompositeContext module) throws 
CoreRuntimeException {
+        checkInit();
         assert(module != null): "Current module not set in work context";
         List<AtomicContext> contexts = registeredContexts.get(module);
         synchronized (contexts) {
@@ -141,14 +141,16 @@
 //        }
     }
 
-    public void register(CompositeContext key, AtomicContext context) {
-        List<AtomicContext> atomicContexts = registeredContexts.get(key);
-        List<InstanceContext> destroyQueue = destroyQueues.get(key);
+    public void register(AtomicContext context) {
+        checkInit();
+        CompositeContext module = workContext.getCurrentModule();
+        List<AtomicContext> atomicContexts = registeredContexts.get(module);
+        List<InstanceContext> destroyQueue = destroyQueues.get(module);
         if (atomicContexts == null) {
-            atomicContexts = registeredContexts.put(key, new 
ArrayList<AtomicContext>());
+            atomicContexts = registeredContexts.put(module, new 
ArrayList<AtomicContext>());
         }
         if (destroyQueue == null) {
-            destroyQueues.put(key, new ArrayList<InstanceContext>());
+            destroyQueues.put(module, new ArrayList<InstanceContext>());
         }
         synchronized (atomicContexts) {
             atomicContexts.add(context);
@@ -159,6 +161,7 @@
 
 
     public Object getInstance(AtomicContext context) throws TargetException {
+        checkInit();
         InstanceContext ctx = instanceContexts.get(context);
         if (ctx != null) {
             if (ctx.getLifecycleState() != RUNNING) {
@@ -174,6 +177,7 @@
     }
 
     public InstanceContext getInstanceContext(AtomicContext context) throws 
TargetException {
+        checkInit();
         return instanceContexts.get(context);
     }
 

Added: 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/StatelessScopeContext.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/StatelessScopeContext.java?rev=399569&view=auto
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/StatelessScopeContext.java
 (added)
+++ 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/StatelessScopeContext.java
 Wed May  3 23:33:15 2006
@@ -0,0 +1,94 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as 
applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 
express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package org.apache.tuscany.core.context.scope;
+
+import java.util.Map;
+import java.util.List;
+import java.util.ArrayList;
+
+import org.apache.tuscany.model.Scope;
+import org.apache.tuscany.spi.context.AtomicContext;
+import org.apache.tuscany.spi.context.InstanceContext;
+import org.apache.tuscany.spi.context.TargetException;
+import org.apache.tuscany.spi.context.WorkContext;
+import org.apache.tuscany.spi.context.CompositeContext;
+import org.apache.tuscany.spi.event.Event;
+
+/**
+ * A container that manages stateless components.
+ *
+ * @version $Rev: 399161 $ $Date: 2006-05-02 23:09:37 -0700 (Tue, 02 May 2006) 
$
+ */
+public class StatelessScopeContext extends AbstractScopeContext<AtomicContext> 
{
+
+    private Map<CompositeContext, List<AtomicContext>> contexts;
+    private WorkContext workContext;
+
+    public StatelessScopeContext(WorkContext workContext) {
+        super("Stateless scope", workContext);
+        assert(workContext != null): "Work context was null";
+        this.workContext = workContext;
+    }
+
+    public Scope getScope() {
+        return Scope.INSTANCE;
+    }
+
+    public synchronized void start() {
+        if (lifecycleState != UNINITIALIZED) {
+            throw new IllegalStateException("Scope must be in UNINITIALIZED 
state [" + lifecycleState + "]");
+        }
+        lifecycleState = RUNNING;
+    }
+
+    public synchronized void stop() {
+        if (lifecycleState != RUNNING) {
+            throw new IllegalStateException("Scope in wrong state [" + 
lifecycleState + "]");
+        }
+        contexts = null;
+        lifecycleState = STOPPED;
+        //TODO stop all contexts
+    }
+
+    public void onEvent(Event event) {
+        List<AtomicContext> ctxs = 
contexts.get(workContext.getCurrentModule());
+        if(ctxs != null){
+            for (AtomicContext atomicContext : ctxs) {
+                atomicContext.stop();
+            }
+        }
+    }
+
+    public void register(AtomicContext context) {
+        checkInit();
+        CompositeContext module = workContext.getCurrentModule();
+        List<AtomicContext> ctxs = contexts.get(module);
+        if (ctxs == null) {
+            ctxs = new ArrayList<AtomicContext>();
+        }
+        synchronized (ctxs) {
+            ctxs.add(context);
+        }
+        contexts.put(module, ctxs);
+    }
+
+    public Object getInstance(AtomicContext context) throws TargetException {
+        return context.createInstance();
+    }
+
+    public InstanceContext getInstanceContext(AtomicContext context) throws 
TargetException {
+       throw new UnsupportedOperationException();
+    }
+
+}

Added: 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/FieldInjector.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/FieldInjector.java?rev=399569&view=auto
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/FieldInjector.java
 (added)
+++ 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/FieldInjector.java
 Wed May  3 23:33:15 2006
@@ -0,0 +1,38 @@
+package org.apache.tuscany.core.injection;
+
+import java.lang.reflect.Field;
+
+import org.apache.tuscany.common.ObjectFactory;
+import org.apache.tuscany.common.ObjectCreationException;
+
+/**
+ * Injects a value created by an [EMAIL PROTECTED] 
org.apache.tuscany.common.ObjectFactory} on a given field
+ *
+ * @version $Rev: 399488 $ $Date: 2006-05-03 16:20:27 -0700 (Wed, 03 May 2006) 
$
+ */
+public class FieldInjector<T> implements Injector<T> {
+
+    private final Field field;
+
+    private final ObjectFactory<?> objectFactory;
+
+    /**
+     * Create an injector and have it use the given <code>ObjectFactory</code>
+     * to inject a value on the instance using the reflected <code>Field</code>
+     */
+    public FieldInjector(Field field, ObjectFactory<?> objectFactory) {
+        this.field = field;
+        this.objectFactory = objectFactory;
+    }
+
+    /**
+     * Inject a new value on the given isntance
+     */
+    public void inject(T instance) throws ObjectCreationException {
+        try {
+            field.set(instance, objectFactory.getInstance());
+        } catch (IllegalAccessException e) {
+            throw new AssertionError("Field is not accessible [" + field + 
"]");
+        }
+    }
+}

Added: 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/Injector.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/Injector.java?rev=399569&view=auto
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/Injector.java
 (added)
+++ 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/Injector.java
 Wed May  3 23:33:15 2006
@@ -0,0 +1,32 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as 
applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 
express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package org.apache.tuscany.core.injection;
+
+import org.apache.tuscany.common.ObjectCreationException;
+
+/**
+ * Implementations inject a pre-configured value on an instance
+ *
+ * @version $Rev: 399488 $ $Date: 2006-05-03 16:20:27 -0700 (Wed, 03 May 2006) 
$
+ * @see MethodInjector
+ * @see FieldInjector
+ */
+public interface Injector<T> {
+
+    /**
+     * Inject a value on the given instance
+     */
+    void inject(T instance) throws ObjectCreationException;
+
+}

Added: 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/MethodInjector.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/MethodInjector.java?rev=399569&view=auto
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/MethodInjector.java
 (added)
+++ 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/MethodInjector.java
 Wed May  3 23:33:15 2006
@@ -0,0 +1,33 @@
+package org.apache.tuscany.core.injection;
+
+import java.lang.reflect.Method;
+import java.lang.reflect.InvocationTargetException;
+
+import org.apache.tuscany.common.ObjectCreationException;
+import org.apache.tuscany.common.ObjectFactory;
+
+/**
+ * Injects a value created by an [EMAIL PROTECTED] 
org.apache.tuscany.common.ObjectFactory} using a given method
+ * @version $Rev: 399488 $ $Date: 2006-05-03 16:20:27 -0700 (Wed, 03 May 2006) 
$
+ */
+public class MethodInjector<T> implements Injector<T> {
+    private final Method method;
+    private final ObjectFactory<?> objectFactory;
+
+    public MethodInjector(Method method, ObjectFactory<?> objectFactory) {
+        this.method = method;
+        this.objectFactory = objectFactory;
+    }
+
+    public void inject(T instance) throws ObjectCreationException {
+        try {
+            method.invoke(instance, objectFactory.getInstance());
+        } catch (IllegalAccessException e) {
+            throw new AssertionError("Method is not accessible [" + method + 
"]");
+        } catch (InvocationTargetException e) {
+            ObjectCreationException oce= new 
ObjectCreationException("Exception thrown by setter", e);
+            oce.setIdentifier(method.getName());
+            throw oce;
+        }
+    }
+}

Added: 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/PojoObjectFactory.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/PojoObjectFactory.java?rev=399569&view=auto
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/PojoObjectFactory.java
 (added)
+++ 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/PojoObjectFactory.java
 Wed May  3 23:33:15 2006
@@ -0,0 +1,74 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as 
applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 
express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package org.apache.tuscany.core.injection;
+
+import java.util.List;
+import java.util.Collections;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+
+import org.apache.tuscany.common.ObjectFactory;
+import org.apache.tuscany.common.ObjectCreationException;
+
+/**
+ * Creates new instances of a Java class, calling a given set of injectors to 
configure the instance
+ *
+ * @version $Rev: 399488 $ $Date: 2006-05-03 16:20:27 -0700 (Wed, 03 May 2006) 
$
+ * @see Injector
+ */
+public class PojoObjectFactory<T> implements ObjectFactory<T> {
+
+    private static final ObjectFactory[] NO_INIT_PARAM = {};
+
+    private static final List<Injector> NO_SETTER_PARAM = 
Collections.emptyList();
+
+    private final Constructor<T> ctr;
+
+    private final ObjectFactory<?>[] initParamsArray;
+
+    private final List<Injector> setters;
+
+    public PojoObjectFactory(Constructor<T> ctr, List<ObjectFactory> 
initParams, List<Injector> setters) {
+        this.ctr = ctr;
+        if (initParams != null && initParams.size() > 0) {
+            initParamsArray = initParams.toArray(new 
ObjectFactory[initParams.size()]);
+        } else {
+            initParamsArray = NO_INIT_PARAM;
+        }
+        this.setters = setters != null ? setters : NO_SETTER_PARAM;
+    }
+
+    public T getInstance() throws ObjectCreationException {
+        Object[] initargs = new Object[initParamsArray.length];
+        // create the constructor arg array
+        for (int i = 0; i < initParamsArray.length; i++) {
+            ObjectFactory<?> objectFactory = initParamsArray[i];
+            initargs[i] = objectFactory.getInstance();
+        }
+        try {
+            T instance = ctr.newInstance(initargs);
+            // interate through the injectors and inject the instance
+            for (Injector<T> setter : setters) {
+                setter.inject(instance);
+            }
+            return instance;
+        } catch (InstantiationException e) {
+            throw new AssertionError("Class is not instantiable [" + 
ctr.getDeclaringClass().getName() + "]");
+        } catch (IllegalAccessException e) {
+            throw new AssertionError("Constructor is not accessible [" + ctr + 
"]");
+        } catch (InvocationTargetException e) {
+            throw new ObjectCreationException("Exception thrown by constructor 
[" + ctr + "]", e);
+        }
+    }
+}

Added: 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemAtomicContext.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemAtomicContext.java?rev=399569&view=auto
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemAtomicContext.java
 (added)
+++ 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemAtomicContext.java
 Wed May  3 23:33:15 2006
@@ -0,0 +1,115 @@
+package org.apache.tuscany.core.system.context;
+
+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.context.PojoAtomicContext;
+import org.apache.tuscany.core.context.PojoInstanceContext;
+import org.apache.tuscany.core.context.event.InstanceCreated;
+import org.apache.tuscany.core.injection.EventInvoker;
+import org.apache.tuscany.model.Scope;
+import org.apache.tuscany.spi.QualifiedName;
+import org.apache.tuscany.spi.context.AtomicContext;
+import org.apache.tuscany.spi.context.InstanceContext;
+import org.apache.tuscany.spi.context.ScopeContext;
+import org.apache.tuscany.spi.context.TargetException;
+import org.apache.tuscany.spi.wire.SourceWireFactory;
+import org.apache.tuscany.spi.wire.TargetWireFactory;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+public class SystemAtomicContext extends PojoAtomicContext {
+
+    private ScopeContext<AtomicContext> scopeContext;
+
+    private ObjectFactory<?> objectFactory;
+    private boolean eagerInit;
+    private EventInvoker<Object> initInvoker;
+    private EventInvoker<Object> destroyInvoker;
+
+    public SystemAtomicContext(String name, ScopeContext<AtomicContext> 
scopeContext, ObjectFactory<?> objectFactory, boolean eagerInit, 
EventInvoker<Object> initInvoker,
+                               EventInvoker<Object> destroyInvoker) {
+        super(name, scopeContext, objectFactory, eagerInit, initInvoker, 
destroyInvoker);
+        assert (scopeContext != null) : "Scope context was null";
+        assert (objectFactory != null) : "Object factory was null";
+        if (eagerInit && initInvoker == null) {
+            throw new AssertionError("No intialization method found for eager 
init implementation");
+        }
+        this.scopeContext = scopeContext;
+        this.objectFactory = objectFactory;
+        this.eagerInit = eagerInit;
+        this.initInvoker = initInvoker;
+        this.destroyInvoker = destroyInvoker;
+    }
+
+    public Scope getScope() {
+        return scopeContext.getScope();
+    }
+
+    public boolean isEagerInit() {
+        return eagerInit;
+    }
+
+    public void init(Object instance) throws TargetException {
+        if (initInvoker != null) {
+            initInvoker.invokeEvent(instance);
+        }
+    }
+
+    public void destroy(Object instance) throws TargetException {
+        if (destroyInvoker != null) {
+            destroyInvoker.invokeEvent(instance);
+        }
+    }
+
+    public boolean isDestroyable() {
+        return (destroyInvoker != null);
+    }
+
+    public Object getTargetInstance() throws TargetException {
+        return scopeContext.getInstance(this);
+    }
+
+    public InstanceContext createInstance() throws ObjectCreationException {
+        InstanceContext ctx = new 
PojoInstanceContext(objectFactory.getInstance());
+        ctx.start();
+        publish(new InstanceCreated(this, ctx));
+        return ctx;
+    }
+
+    public void prepare() {
+    }
+
+    public Object getInstance(QualifiedName qName) throws TargetException {
+        return scopeContext.getInstance(this);
+    }
+
+    public void addTargetWireFactory(String serviceName, TargetWireFactory 
factory) {
+        throw new UnsupportedOperationException();
+    }
+
+    public TargetWireFactory getTargetWireFactory(String serviceName) {
+        throw new UnsupportedOperationException();
+    }
+
+    public Map<String, TargetWireFactory> getTargetWireFactories() {
+        throw new UnsupportedOperationException();
+    }
+
+    public void addSourceWireFactory(String referenceName, SourceWireFactory 
factory) {
+        throw new UnsupportedOperationException();
+    }
+
+    public void addSourceWireFactories(String referenceName, Class 
referenceInterface, List<SourceWireFactory> factory, boolean multiplicity) {
+        throw new UnsupportedOperationException();
+    }
+
+    public List<SourceWireFactory> getSourceWireFactories() {
+        throw new UnsupportedOperationException();
+    }
+
+
+}

Added: 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/spi/context/ScopeInitializationException.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/spi/context/ScopeInitializationException.java?rev=399569&view=auto
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/spi/context/ScopeInitializationException.java
 (added)
+++ 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/spi/context/ScopeInitializationException.java
 Wed May  3 23:33:15 2006
@@ -0,0 +1,39 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as 
applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 
express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package org.apache.tuscany.spi.context;
+
+/**
+ * Denotes an initialization exception thrown by a scope container
+ *
+ * @version $Rev: 368822 $ $Date: 2006-01-13 10:54:38 -0800 (Fri, 13 Jan 2006) 
$
+ */
+public class ScopeInitializationException extends ScopeRuntimeException {
+
+    public ScopeInitializationException() {
+        super();
+    }
+
+    public ScopeInitializationException(String message) {
+        super(message);
+    }
+
+    public ScopeInitializationException(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    public ScopeInitializationException(Throwable cause) {
+        super(cause);
+    }
+
+}

Added: 
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/context/scope/MockScopeContext.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/context/scope/MockScopeContext.java?rev=399569&view=auto
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/context/scope/MockScopeContext.java
 (added)
+++ 
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/context/scope/MockScopeContext.java
 Wed May  3 23:33:15 2006
@@ -0,0 +1,59 @@
+package org.apache.tuscany.core.mock.context.scope;
+
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+import org.apache.tuscany.core.context.scope.AbstractScopeContext;
+import org.apache.tuscany.model.Scope;
+import org.apache.tuscany.spi.context.AtomicContext;
+import org.apache.tuscany.spi.context.Context;
+import org.apache.tuscany.spi.context.InstanceContext;
+import org.apache.tuscany.spi.context.TargetException;
+import org.apache.tuscany.spi.event.Event;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+public class MockScopeContext extends AbstractScopeContext<AtomicContext> {
+
+    private Map<Context, InstanceContext> instanceContexts;
+    private Scope scope;
+
+    public MockScopeContext() {
+        this(null);
+    }
+
+    public MockScopeContext(Scope scope) {
+        super("Module Scope", null);
+        instanceContexts = new ConcurrentHashMap<Context, InstanceContext>();
+        this.scope = scope;
+    }
+
+    public Scope getScope() {
+        return scope;
+    }
+
+    public Object getInstance(AtomicContext context) throws TargetException {
+        InstanceContext ctx = instanceContexts.get(context);
+        if (ctx == null) {
+            ctx = context.createInstance();
+            context.init(ctx.getInstance());
+            instanceContexts.put(context, ctx);
+        }
+        return ctx.getInstance();
+    }
+
+    public InstanceContext getInstanceContext(AtomicContext context) throws 
TargetException {
+        return instanceContexts.get(context);
+    }
+
+    public void onEvent(Event event) {
+
+    }
+
+    public void register(AtomicContext context) {
+
+    }
+
+
+}

Added: 
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=399569&view=auto
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/context/SystemAtomicContextTestCase.java
 (added)
+++ 
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/context/SystemAtomicContextTestCase.java
 Wed May  3 23:33:15 2006
@@ -0,0 +1,44 @@
+package org.apache.tuscany.core.system.context;
+
+import junit.framework.TestCase;
+import org.apache.tuscany.common.ObjectFactory;
+import org.apache.tuscany.core.injection.EventInvoker;
+import org.apache.tuscany.core.injection.MethodEventInvoker;
+import org.apache.tuscany.core.injection.PojoObjectFactory;
+import org.apache.tuscany.core.mock.context.scope.MockScopeContext;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+public class SystemAtomicContextTestCase extends TestCase {
+
+    EventInvoker<Object> initInvoker;
+
+    public void testContextCreationAndInit() throws Exception {
+        ObjectFactory<Foo> factory = new 
PojoObjectFactory<Foo>(Foo.class.getConstructor((Class[]) null), null, null);
+        SystemAtomicContext context = new SystemAtomicContext("foo", new 
MockScopeContext(), factory, false, initInvoker, null);
+        Foo instance = (Foo) context.getInstance(null);
+        assertNotNull(instance);
+        assertTrue(instance.initialized);
+    }
+
+    protected void setUp() throws Exception {
+        super.setUp();
+        initInvoker = new 
MethodEventInvoker<Object>(Foo.class.getMethod("init"));
+    }
+
+    protected void tearDown() throws Exception {
+        super.tearDown();
+    }
+
+    public static class Foo {
+
+        private boolean initialized;
+
+        public void init() {
+            initialized = true;
+        }
+
+    }
+
+}

Modified: 
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/AtomicContext.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/AtomicContext.java?rev=399569&r1=399568&r2=399569&view=diff
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/AtomicContext.java
 (original)
+++ 
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/AtomicContext.java
 Wed May  3 23:33:15 2006
@@ -126,9 +126,7 @@
     /**
      * Called to signal to the configuration that its parent context has been 
activated and that it shoud
      * perform any required initialization steps
-     *
-     * @param parent the parent context
      */
-    public void prepare(CompositeContext parent);
+    public void prepare();
 
 }

Modified: 
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/InstanceContext.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/InstanceContext.java?rev=399569&r1=399568&r2=399569&view=diff
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/InstanceContext.java
 (original)
+++ 
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/InstanceContext.java
 Wed May  3 23:33:15 2006
@@ -22,7 +22,7 @@
  * @version $Rev$ $Date$
  */
 public interface InstanceContext extends Lifecycle {
-
+    
     Object getInstance();
 
 }

Modified: 
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ScopeContext.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ScopeContext.java?rev=399569&r1=399568&r2=399569&view=diff
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ScopeContext.java
 (original)
+++ 
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ScopeContext.java
 Wed May  3 23:33:15 2006
@@ -16,10 +16,9 @@
  */
 package org.apache.tuscany.spi.context;
 
+import org.apache.tuscany.model.Scope;
 import org.apache.tuscany.spi.Lifecycle;
 import org.apache.tuscany.spi.event.RuntimeEventListener;
-import org.apache.tuscany.model.Scope;
-import sun.security.jca.GetInstance;
 
 
 /**
@@ -28,11 +27,11 @@
  * @version $Rev: 399161 $ $Date: 2006-05-02 23:09:37 -0700 (Tue, 02 May 2006) 
$
  * @see Context
  */
-public interface ScopeContext<S, T extends Context> extends Lifecycle, 
RuntimeEventListener {
+public interface ScopeContext<T extends Context> extends Lifecycle, 
RuntimeEventListener {
 
     public Scope getScope();
 
-    public void register(S key, T context);
+    public void register(T context);
 
     /**
      * Returns an instance associated with the current context
@@ -43,7 +42,6 @@
 
 
     /**
-     *
      * @throws TargetException
      */
     public InstanceContext getInstanceContext(T context) throws 
TargetException;


Reply via email to