Author: jmarino
Date: Sat May 13 22:58:45 2006
New Revision: 406267

URL: http://svn.apache.org/viewcvs?rev=406267&view=rev
Log:
extension api refactors

Added:
    
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/AbstractLifecycle.java
      - copied, changed from r406186, 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/AbstractLifecycle.java
    
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/AbstractContext.java
      - copied, changed from r406186, 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/AbstractContext.java
    
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/InvalidContextTypeException.java
    
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/event/TrueFilter.java
      - copied, changed from r406186, 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/event/filter/TrueFilter.java
    
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentContextExtension.java
    
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeContextExtension.java
Removed:
    
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/AbstractContext.java
    
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/event/filter/
Modified:
    
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/builder/JavaComponentBuilder.java
    
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/invocation/AbstractJavaComponentInvoker.java
    
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/invocation/MediationTestCase.java
    
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/AbstractCompositeContext.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/PojoInstanceWrapper.java
    
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/ReferenceContextImpl.java
    
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/ServiceContextImpl.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/CompositeScopeContext.java
    
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/ModuleScopeContext.java
    
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/AutowireSystemReferenceContext.java
    
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemServiceContextImpl.java
    
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemSingletonAtomicContext.java
    
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/InvokerInterceptor.java
    
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/context/MockCompositeContext.java
    
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/context/MockReferenceContext.java
    
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/wire/mock/MockStaticInvoker.java
    
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/CompositeContext.java
    
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicContextExtension.java
    
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/TargetInvoker.java

Modified: 
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/builder/JavaComponentBuilder.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/builder/JavaComponentBuilder.java?rev=406267&r1=406266&r2=406267&view=diff
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/builder/JavaComponentBuilder.java
 (original)
+++ 
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/builder/JavaComponentBuilder.java
 Sat May 13 22:58:45 2006
@@ -1,8 +1,8 @@
 package org.apache.tuscany.container.java.builder;
 
 import java.lang.reflect.Constructor;
-import java.util.List;
 import java.util.ArrayList;
+import java.util.List;
 
 import org.apache.tuscany.container.java.context.JavaAtomicContext;
 import org.apache.tuscany.container.java.model.JavaImplementation;
@@ -12,8 +12,8 @@
 import org.apache.tuscany.core.model.PojoComponentType;
 import org.apache.tuscany.core.util.JavaIntrospectionHelper;
 import org.apache.tuscany.model.Component;
-import org.apache.tuscany.model.Service;
 import org.apache.tuscany.model.JavaServiceContract;
+import org.apache.tuscany.model.Service;
 import org.apache.tuscany.spi.builder.BuilderConfigException;
 import org.apache.tuscany.spi.builder.ComponentBuilder;
 import org.apache.tuscany.spi.context.CompositeContext;
@@ -53,7 +53,7 @@
         }
         List<Class<?>> serviceInterfaces = new ArrayList<Class<?>>();
         for (Service service : componentType.getServices().values()) {
-            
serviceInterfaces.add(((JavaServiceContract)service.getServiceContract()).getInterfaceClass());
+            serviceInterfaces.add(((JavaServiceContract) 
service.getServiceContract()).getInterfaceClass());
         }
         PojoObjectFactory<?> factory = new PojoObjectFactory(ctr, null, 
componentType.getInjectors());
         return new JavaAtomicContext(name, serviceInterfaces, factory, 
componentType.isEagerInit(), componentType.getInitInvoker(),

Modified: 
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/invocation/AbstractJavaComponentInvoker.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/invocation/AbstractJavaComponentInvoker.java?rev=406267&r1=406266&r2=406267&view=diff
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/invocation/AbstractJavaComponentInvoker.java
 (original)
+++ 
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/invocation/AbstractJavaComponentInvoker.java
 Sat May 13 22:58:45 2006
@@ -21,16 +21,15 @@
 import java.util.Set;
 
 import org.apache.tuscany.core.util.JavaIntrospectionHelper;
+import org.apache.tuscany.spi.context.TargetException;
+import org.apache.tuscany.spi.wire.Interceptor;
 import org.apache.tuscany.spi.wire.InvocationRuntimeException;
-import org.apache.tuscany.spi.wire.Message;
 import org.apache.tuscany.spi.wire.TargetInvoker;
-import org.apache.tuscany.spi.wire.Interceptor;
-import org.apache.tuscany.spi.context.TargetException;
 
 /**
- * Base class for dispatching to a Java based component implementation. 
Subclasses implement a strategy for resolving
- * implementation instances.
- * 
+ * Base class for dispatching to a Java based component implementation. 
Subclasses implement a strategy for
+ * resolving implementation instances.
+ *
  * @version $Rev$ $Date$
  */
 public abstract class AbstractJavaComponentInvoker implements TargetInvoker {
@@ -60,18 +59,6 @@
         } catch (IllegalAccessException e) {
             throw new InvocationRuntimeException(e);
         }
-    }
-
-    public Message invoke(Message msg) {
-        try {
-            Object resp = invokeTarget(msg.getBody());
-            msg.setBody(resp);
-        } catch (InvocationTargetException e) {
-            msg.setBody(e.getCause());
-        } catch (Throwable e) {
-            msg.setBody(e);
-        }
-        return msg;
     }
 
     protected abstract Object getInstance() throws TargetException;

Modified: 
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/invocation/MediationTestCase.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/invocation/MediationTestCase.java?rev=406267&r1=406266&r2=406267&view=diff
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/invocation/MediationTestCase.java
 (original)
+++ 
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/invocation/MediationTestCase.java
 Sat May 13 22:58:45 2006
@@ -17,14 +17,11 @@
 
 import junit.framework.Assert;
 import junit.framework.TestCase;
-
 import org.apache.tuscany.container.java.invocation.mock.SimpleTargetImpl;
-import org.apache.tuscany.core.wire.MessageImpl;
-import org.apache.tuscany.spi.wire.Message;
 
 /**
  * Tests invoking on a different interface from the one actually implemented 
by the target
- * 
+ *
  * @version $Rev$ $Date$
  */
 public class MediationTestCase extends TestCase {
@@ -37,9 +34,7 @@
 
     public void testMediation() throws Exception {
         StaticJavaComponentTargetInvoker invoker = new 
StaticJavaComponentTargetInvoker(hello, new SimpleTargetImpl());
-        Message msg = new MessageImpl();
-        msg.setBody("foo");
-        Assert.assertEquals("foo", invoker.invoke(msg).getBody());
+        Assert.assertEquals("foo", invoker.invokeTarget("foo"));
     }
 
     public interface Hello {

Modified: 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/AbstractCompositeContext.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/AbstractCompositeContext.java?rev=406267&r1=406266&r2=406267&view=diff
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/AbstractCompositeContext.java
 (original)
+++ 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/AbstractCompositeContext.java
 Sat May 13 22:58:45 2006
@@ -11,6 +11,7 @@
 
 import org.apache.tuscany.core.system.context.SystemServiceContext;
 import org.apache.tuscany.spi.CoreRuntimeException;
+import org.apache.tuscany.spi.context.AbstractContext;
 import org.apache.tuscany.spi.annotation.Autowire;
 import org.apache.tuscany.spi.context.AtomicContext;
 import org.apache.tuscany.spi.context.CompositeContext;
@@ -126,6 +127,22 @@
         return (ServiceContext) ctx;
     }
 
+    public Object getService(String name) throws TargetException {
+        Context context = children.get(name);
+        if (context == null) {
+            TargetNotFoundException e = new TargetNotFoundException(name);
+            e.addContextName(getName());
+            throw e;
+        } else if (context instanceof ServiceContext) {
+            return context.getService();
+        } else {
+            IllegalTargetException e = new IllegalTargetException("Target must 
be a service");
+            e.setIdentifier(name);
+            e.addContextName(getName());
+            throw e;
+        }
+    }
+
     public List<ReferenceContext> getReferenceContexts() {
         return Collections.unmodifiableList(references);
     }
@@ -218,22 +235,6 @@
             }
         } else {
             return null;
-        }
-    }
-
-    public Object getService(String name) throws TargetException {
-        Context context = children.get(name);
-        if (context == null) {
-            TargetNotFoundException e = new TargetNotFoundException(name);
-            e.addContextName(getName());
-            throw e;
-        } else if (context instanceof ServiceContext) {
-            return context.getService();
-        } else {
-            IllegalTargetException e = new IllegalTargetException("Target must 
be a service");
-            e.setIdentifier(name);
-            e.addContextName(getName());
-            throw e;
         }
     }
 

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=406267&r1=406266&r2=406267&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
 Sat May 13 22:58:45 2006
@@ -11,6 +11,7 @@
 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 [EMAIL PROTECTED] AtomicContext} whose 
implementation type is a Java class

Modified: 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/PojoInstanceWrapper.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/PojoInstanceWrapper.java?rev=406267&r1=406266&r2=406267&view=diff
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/PojoInstanceWrapper.java
 (original)
+++ 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/PojoInstanceWrapper.java
 Sat May 13 22:58:45 2006
@@ -13,7 +13,7 @@
  */
 package org.apache.tuscany.core.context;
 
-import org.apache.tuscany.core.AbstractLifecycle;
+import org.apache.tuscany.spi.AbstractLifecycle;
 import org.apache.tuscany.spi.CoreRuntimeException;
 import org.apache.tuscany.spi.context.AtomicContext;
 import org.apache.tuscany.spi.context.InstanceWrapper;

Modified: 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/ReferenceContextImpl.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/ReferenceContextImpl.java?rev=406267&r1=406266&r2=406267&view=diff
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/ReferenceContextImpl.java
 (original)
+++ 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/ReferenceContextImpl.java
 Sat May 13 22:58:45 2006
@@ -20,6 +20,7 @@
 import org.apache.tuscany.core.wire.jdk.JDKInvocationHandler;
 import org.apache.tuscany.spi.context.ReferenceContext;
 import org.apache.tuscany.spi.context.TargetException;
+import org.apache.tuscany.spi.context.AbstractContext;
 import org.apache.tuscany.spi.wire.ProxyCreationException;
 import org.apache.tuscany.spi.wire.TargetInvocationChain;
 import org.apache.tuscany.spi.wire.TargetWire;

Modified: 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/ServiceContextImpl.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/ServiceContextImpl.java?rev=406267&r1=406266&r2=406267&view=diff
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/ServiceContextImpl.java
 (original)
+++ 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/ServiceContextImpl.java
 Sat May 13 22:58:45 2006
@@ -5,6 +5,7 @@
 
 import org.apache.tuscany.core.wire.jdk.JDKInvocationHandler;
 import org.apache.tuscany.spi.CoreRuntimeException;
+import org.apache.tuscany.spi.context.AbstractContext;
 import org.apache.tuscany.spi.context.ServiceContext;
 import org.apache.tuscany.spi.context.TargetException;
 import org.apache.tuscany.spi.wire.ProxyCreationException;

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=406267&r1=406266&r2=406267&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
 Sat May 13 22:58:45 2006
@@ -6,8 +6,8 @@
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.CopyOnWriteArrayList;
 
-import org.apache.tuscany.core.AbstractLifecycle;
-import org.apache.tuscany.core.context.event.filter.TrueFilter;
+import org.apache.tuscany.spi.AbstractLifecycle;
+import org.apache.tuscany.spi.event.TrueFilter;
 import org.apache.tuscany.spi.context.Context;
 import org.apache.tuscany.spi.context.InstanceWrapper;
 import org.apache.tuscany.spi.context.ScopeContext;

Modified: 
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=406267&r1=406266&r2=406267&view=diff
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/CompositeScopeContext.java
 (original)
+++ 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/CompositeScopeContext.java
 Sat May 13 22:58:45 2006
@@ -16,7 +16,7 @@
 import java.util.List;
 import java.util.concurrent.CopyOnWriteArrayList;
 
-import org.apache.tuscany.core.AbstractLifecycle;
+import org.apache.tuscany.spi.AbstractLifecycle;
 import org.apache.tuscany.model.Scope;
 import org.apache.tuscany.spi.Lifecycle;
 import org.apache.tuscany.spi.context.CompositeContext;

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=406267&r1=406266&r2=406267&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
 Sat May 13 22:58:45 2006
@@ -6,7 +6,7 @@
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
-import org.apache.tuscany.core.AbstractLifecycle;
+import org.apache.tuscany.spi.AbstractLifecycle;
 import org.apache.tuscany.core.context.event.ModuleStart;
 import org.apache.tuscany.core.context.event.ModuleStop;
 import org.apache.tuscany.model.Scope;

Modified: 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/AutowireSystemReferenceContext.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/AutowireSystemReferenceContext.java?rev=406267&r1=406266&r2=406267&view=diff
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/AutowireSystemReferenceContext.java
 (original)
+++ 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/AutowireSystemReferenceContext.java
 Sat May 13 22:58:45 2006
@@ -3,7 +3,7 @@
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Method;
 
-import org.apache.tuscany.core.context.AbstractContext;
+import org.apache.tuscany.spi.context.AbstractContext;
 import org.apache.tuscany.core.context.AutowireContext;
 import org.apache.tuscany.spi.context.CompositeContext;
 import org.apache.tuscany.spi.context.ReferenceContext;

Modified: 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemServiceContextImpl.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemServiceContextImpl.java?rev=406267&r1=406266&r2=406267&view=diff
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemServiceContextImpl.java
 (original)
+++ 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemServiceContextImpl.java
 Sat May 13 22:58:45 2006
@@ -3,7 +3,7 @@
 import java.lang.reflect.Method;
 import java.lang.reflect.InvocationHandler;
 
-import org.apache.tuscany.core.context.AbstractContext;
+import org.apache.tuscany.spi.context.AbstractContext;
 import org.apache.tuscany.spi.CoreRuntimeException;
 import org.apache.tuscany.spi.QualifiedName;
 import org.apache.tuscany.spi.wire.TargetInvoker;

Modified: 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemSingletonAtomicContext.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemSingletonAtomicContext.java?rev=406267&r1=406266&r2=406267&view=diff
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemSingletonAtomicContext.java
 (original)
+++ 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemSingletonAtomicContext.java
 Sat May 13 22:58:45 2006
@@ -6,7 +6,7 @@
 import java.lang.reflect.Method;
 
 import org.apache.tuscany.common.ObjectCreationException;
-import org.apache.tuscany.core.context.AbstractContext;
+import org.apache.tuscany.spi.context.AbstractContext;
 import org.apache.tuscany.model.Scope;
 import org.apache.tuscany.spi.context.AtomicContext;
 import org.apache.tuscany.spi.context.InstanceWrapper;

Modified: 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/InvokerInterceptor.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/InvokerInterceptor.java?rev=406267&r1=406266&r2=406267&view=diff
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/InvokerInterceptor.java
 (original)
+++ 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/InvokerInterceptor.java
 Sat May 13 22:58:45 2006
@@ -13,6 +13,8 @@
  */
 package org.apache.tuscany.core.wire;
 
+import java.lang.reflect.InvocationTargetException;
+
 import org.apache.tuscany.spi.wire.Interceptor;
 import org.apache.tuscany.spi.wire.Message;
 import org.apache.tuscany.spi.wire.InvocationRuntimeException;
@@ -36,7 +38,15 @@
         if (invoker == null) {
             throw new InvocationRuntimeException("No target invoker specified 
on message");
         }
-        return invoker.invoke(msg);
+        try {
+            Object resp = invoker.invokeTarget(msg.getBody());
+            msg.setBody(resp);
+        } catch (InvocationTargetException e) {
+            msg.setBody(e.getCause());
+        } catch (Throwable e) {
+            msg.setBody(e);
+        }
+        return msg;
     }
 
     public void setNext(Interceptor next) {

Modified: 
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/context/MockCompositeContext.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/context/MockCompositeContext.java?rev=406267&r1=406266&r2=406267&view=diff
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/context/MockCompositeContext.java
 (original)
+++ 
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/context/MockCompositeContext.java
 Sat May 13 22:58:45 2006
@@ -5,7 +5,7 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.tuscany.core.context.AbstractContext;
+import org.apache.tuscany.spi.context.AbstractContext;
 import org.apache.tuscany.spi.QualifiedName;
 import org.apache.tuscany.spi.context.CompositeContext;
 import org.apache.tuscany.spi.context.Context;

Modified: 
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/context/MockReferenceContext.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/context/MockReferenceContext.java?rev=406267&r1=406266&r2=406267&view=diff
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/context/MockReferenceContext.java
 (original)
+++ 
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/context/MockReferenceContext.java
 Sat May 13 22:58:45 2006
@@ -3,7 +3,7 @@
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Method;
 
-import org.apache.tuscany.core.context.AbstractContext;
+import org.apache.tuscany.spi.context.AbstractContext;
 import org.apache.tuscany.spi.context.ReferenceContext;
 import org.apache.tuscany.spi.context.TargetException;
 import org.apache.tuscany.spi.wire.TargetInvoker;

Modified: 
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=406267&r1=406266&r2=406267&view=diff
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/context/scope/MockScopeContext.java
 (original)
+++ 
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/context/scope/MockScopeContext.java
 Sat May 13 22:58:45 2006
@@ -3,7 +3,7 @@
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
-import org.apache.tuscany.core.AbstractLifecycle;
+import org.apache.tuscany.spi.AbstractLifecycle;
 import org.apache.tuscany.core.context.scope.AbstractScopeContext;
 import org.apache.tuscany.model.Scope;
 import org.apache.tuscany.spi.context.AtomicContext;

Modified: 
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/mock/MockStaticInvoker.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/mock/MockStaticInvoker.java?rev=406267&r1=406266&r2=406267&view=diff
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/mock/MockStaticInvoker.java
 (original)
+++ 
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/mock/MockStaticInvoker.java
 Sat May 13 22:58:45 2006
@@ -1,17 +1,16 @@
 package org.apache.tuscany.core.wire.mock;
 
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
 import org.apache.tuscany.spi.wire.Interceptor;
 import org.apache.tuscany.spi.wire.InvocationRuntimeException;
 import org.apache.tuscany.spi.wire.TargetInvoker;
-import org.apache.tuscany.spi.wire.Message;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
 
 /**
- * Caches component instances that do not need to be resolved for every wire, 
e.g. an wire originating from
- * a lesser scope intended for a target with a wider scope
- * 
+ * Caches component instances that do not need to be resolved for every wire, 
e.g. an wire originating from a
+ * lesser scope intended for a target with a wider scope
+ *
  * @version $Rev: 377006 $ $Date: 2006-02-11 09:41:59 -0800 (Sat, 11 Feb 2006) 
$
  */
 public class MockStaticInvoker implements TargetInvoker {
@@ -31,7 +30,7 @@
     }
 
     public void setCacheable(boolean cacheable) {
-       this.cacheable = cacheable;
+        this.cacheable = cacheable;
     }
 
     public Object invokeTarget(Object payload) throws 
InvocationTargetException {
@@ -44,18 +43,6 @@
         } catch (IllegalAccessException e) {
             throw new InvocationRuntimeException(e);
         }
-    }
-
-    public Message invoke(Message msg) {
-        try {
-            Object resp = invokeTarget(msg.getBody());
-            msg.setBody(resp);
-        } catch (InvocationTargetException e) {
-            msg.setBody(e.getCause());
-        } catch (Throwable e) {
-            msg.setBody(e);
-        }
-        return msg;
     }
 
     public void setNext(Interceptor next) {

Copied: 
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/AbstractLifecycle.java
 (from r406186, 
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/spi/src/main/java/org/apache/tuscany/spi/AbstractLifecycle.java?p2=incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/AbstractLifecycle.java&p1=incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/AbstractLifecycle.java&r1=406186&r2=406267&rev=406267&view=diff
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/AbstractLifecycle.java
 (original)
+++ 
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/AbstractLifecycle.java
 Sat May 13 22:58:45 2006
@@ -11,10 +11,7 @@
  * 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;
-
-import org.apache.tuscany.spi.CoreRuntimeException;
-import org.apache.tuscany.spi.Lifecycle;
+package org.apache.tuscany.spi;
 
 /**
  * @version $Rev$ $Date$
@@ -56,47 +53,47 @@
     }
 
     public String toString() {
-        if (name != null){
-        switch (lifecycleState) {
-            case (Lifecycle.CONFIG_ERROR):
-                return new StringBuilder().append("[").append(name).append("] 
in state [CONFIG_ERROR]").toString();
-            case (Lifecycle.ERROR):
-                return new StringBuilder().append("[").append(name).append("] 
in state [ERROR]").toString();
-            case (Lifecycle.INITIALIZING):
-                return new StringBuilder().append("[").append(name).append("] 
in state [INITIALIZING]").toString();
-            case (Lifecycle.INITIALIZED):
-                return new StringBuilder().append("[").append(name).append("] 
in state [INITIALIZED]").toString();
-            case (Lifecycle.RUNNING):
-                return new StringBuilder().append("[").append(name).append("] 
in state [RUNNING]").toString();
-            case (Lifecycle.STOPPING):
-                return new StringBuilder().append("[").append(name).append("] 
in state [STOPPING]").toString();
-            case (Lifecycle.STOPPED):
-                return new StringBuilder().append("[").append(name).append("] 
in state [STOPPED]").toString();
-            case (Lifecycle.UNINITIALIZED):
-                return new StringBuilder().append("[").append(name).append("] 
in state [UNINITIALIZED]").toString();
-            default:
-                return new StringBuilder().append("[").append(name).append("] 
in state [UNKNOWN]").toString();
+        if (name != null) {
+            switch (lifecycleState) {
+                case (Lifecycle.CONFIG_ERROR):
+                    return new 
StringBuilder().append("[").append(name).append("] in state 
[CONFIG_ERROR]").toString();
+                case (Lifecycle.ERROR):
+                    return new 
StringBuilder().append("[").append(name).append("] in state 
[ERROR]").toString();
+                case (Lifecycle.INITIALIZING):
+                    return new 
StringBuilder().append("[").append(name).append("] in state 
[INITIALIZING]").toString();
+                case (Lifecycle.INITIALIZED):
+                    return new 
StringBuilder().append("[").append(name).append("] in state 
[INITIALIZED]").toString();
+                case (Lifecycle.RUNNING):
+                    return new 
StringBuilder().append("[").append(name).append("] in state 
[RUNNING]").toString();
+                case (Lifecycle.STOPPING):
+                    return new 
StringBuilder().append("[").append(name).append("] in state 
[STOPPING]").toString();
+                case (Lifecycle.STOPPED):
+                    return new 
StringBuilder().append("[").append(name).append("] in state 
[STOPPED]").toString();
+                case (Lifecycle.UNINITIALIZED):
+                    return new 
StringBuilder().append("[").append(name).append("] in state 
[UNINITIALIZED]").toString();
+                default:
+                    return new 
StringBuilder().append("[").append(name).append("] in state 
[UNKNOWN]").toString();
             }
-        }else{
+        } 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();
+                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();
             }
         }
     }

Copied: 
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/AbstractContext.java
 (from r406186, 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/AbstractContext.java)
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/AbstractContext.java?p2=incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/AbstractContext.java&p1=incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/AbstractContext.java&r1=406186&r2=406267&rev=406267&view=diff
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/AbstractContext.java
 (original)
+++ 
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/AbstractContext.java
 Sat May 13 22:58:45 2006
@@ -11,20 +11,18 @@
  * 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;
+package org.apache.tuscany.spi.context;
 
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.CopyOnWriteArrayList;
 
-import org.apache.tuscany.core.AbstractLifecycle;
-import org.apache.tuscany.core.context.event.filter.TrueFilter;
-import org.apache.tuscany.spi.context.CompositeContext;
-import org.apache.tuscany.spi.context.Context;
+import org.apache.tuscany.spi.event.TrueFilter;
 import org.apache.tuscany.spi.event.Event;
 import org.apache.tuscany.spi.event.EventFilter;
 import org.apache.tuscany.spi.event.RuntimeEventListener;
+import org.apache.tuscany.spi.AbstractLifecycle;
 
 /**
  * Functionality common to all <code>Context<code> implementations

Modified: 
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/CompositeContext.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/CompositeContext.java?rev=406267&r1=406266&r2=406267&view=diff
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/CompositeContext.java
 (original)
+++ 
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/CompositeContext.java
 Sat May 13 22:58:45 2006
@@ -30,8 +30,9 @@
      * Register a Context as a child of this composite.
      *
      * @param context the context to add as a child
+     * @throws InvalidContextTypeException
      */
-    void registerContext(Context context);
+    void registerContext(Context context) throws InvalidContextTypeException;
 
     /**
      * Returns the child context associated with a given name

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

Copied: 
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/event/TrueFilter.java
 (from r406186, 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/event/filter/TrueFilter.java)
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/event/TrueFilter.java?p2=incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/event/TrueFilter.java&p1=incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/event/filter/TrueFilter.java&r1=406186&r2=406267&rev=406267&view=diff
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/event/filter/TrueFilter.java
 (original)
+++ 
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/event/TrueFilter.java
 Sat May 13 22:58:45 2006
@@ -1,7 +1,4 @@
-package org.apache.tuscany.core.context.event.filter;
-
-import org.apache.tuscany.spi.event.Event;
-import org.apache.tuscany.spi.event.EventFilter;
+package org.apache.tuscany.spi.event;
 
 /**
  * An event filter that always returns a true condition

Modified: 
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicContextExtension.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicContextExtension.java?rev=406267&r1=406266&r2=406267&view=diff
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicContextExtension.java
 (original)
+++ 
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicContextExtension.java
 Sat May 13 22:58:45 2006
@@ -1,37 +1,15 @@
 package org.apache.tuscany.spi.extension;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
 import org.apache.tuscany.model.Scope;
-import org.apache.tuscany.spi.CoreRuntimeException;
 import org.apache.tuscany.spi.context.AtomicContext;
-import org.apache.tuscany.spi.context.CompositeContext;
 import org.apache.tuscany.spi.context.ScopeContext;
-import org.apache.tuscany.spi.context.TargetException;
-import org.apache.tuscany.spi.event.Event;
-import org.apache.tuscany.spi.event.EventFilter;
-import org.apache.tuscany.spi.event.RuntimeEventListener;
-import org.apache.tuscany.spi.wire.SourceWire;
-import org.apache.tuscany.spi.wire.TargetWire;
 
 /**
  * @version $$Rev$$ $$Date$$
  */
-public abstract class AtomicContextExtension implements AtomicContext {
+public abstract class AtomicContextExtension<T> extends 
ComponentContextExtension<T> implements AtomicContext<T> {
 
     protected ScopeContext scopeContext;
-    protected String name;
-    protected CompositeContext parent;
-    protected int lifecycleState = UNINITIALIZED;
-    protected Map<String, TargetWire> targetWires = new HashMap<String, 
TargetWire>();
-    protected List<SourceWire> sourceWires = new ArrayList<SourceWire>();
-
-    public List getServiceInterfaces() {
-        return null;
-    }
 
     public Scope getScope() {
         if (scopeContext != null) {
@@ -44,82 +22,5 @@
     public void setScopeContext(ScopeContext context) {
         scopeContext = context;
     }
-
-    public Object getService() throws TargetException {
-        return null;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public CompositeContext getParent() {
-        return parent;
-    }
-
-    public void setParent(CompositeContext parent) {
-        this.parent = parent;
-    }
-
-    public void publish(Event object) {
-
-    }
-
-    public void addListener(RuntimeEventListener listener) {
-
-    }
-
-    public void addListener(EventFilter filter, RuntimeEventListener listener) 
{
-
-    }
-
-    public void removeListener(RuntimeEventListener listener) {
-
-    }
-
-    public int getLifecycleState() {
-        return lifecycleState;
-    }
-
-    public void start() throws CoreRuntimeException {
-        lifecycleState = RUNNING;
-    }
-
-    public void stop() throws CoreRuntimeException {
-        lifecycleState = STOPPED;
-    }
-
-    public void addTargetWire(TargetWire wire) {
-        targetWires.put(wire.getServiceName(), wire);
-    }
-
-    public TargetWire getTargetWire(String serviceName) {
-        return targetWires.get(serviceName);
-    }
-
-    public Map<String, TargetWire> getTargetWires() {
-        return targetWires;
-    }
-
-    public void addSourceWire(SourceWire wire) {
-        sourceWires.add(wire);
-    }
-
-    public List<SourceWire> getSourceWires() {
-        return sourceWires;
-    }
-
-    public void prepare() {
-
-    }
-
-    public void addSourceWires(Class multiplicityClass, List wires) {
-        // TODO implement
-    }
-
 
 }

Added: 
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentContextExtension.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentContextExtension.java?rev=406267&view=auto
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentContextExtension.java
 (added)
+++ 
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentContextExtension.java
 Sat May 13 22:58:45 2006
@@ -0,0 +1,51 @@
+package org.apache.tuscany.spi.extension;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.tuscany.spi.context.AbstractContext;
+import org.apache.tuscany.spi.context.ComponentContext;
+import org.apache.tuscany.spi.wire.SourceWire;
+import org.apache.tuscany.spi.wire.TargetWire;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+public abstract class ComponentContextExtension<T> extends AbstractContext<T> 
implements ComponentContext<T> {
+
+    protected Map<String, TargetWire> targetWires = new HashMap<String, 
TargetWire>();
+    protected List<SourceWire> sourceWires = new ArrayList<SourceWire>();
+
+    public void addTargetWire(TargetWire wire) {
+        targetWires.put(wire.getServiceName(), wire);
+    }
+
+    public TargetWire getTargetWire(String serviceName) {
+        return targetWires.get(serviceName);
+    }
+
+    public Map<String, TargetWire> getTargetWires() {
+        return targetWires;
+    }
+
+    public void addSourceWire(SourceWire wire) {
+        sourceWires.add(wire);
+    }
+
+    public List<SourceWire> getSourceWires() {
+        return sourceWires;
+    }
+
+    public void addSourceWires(Class multiplicityClass, List wires) {
+        // TODO implement
+    }
+
+
+    public void prepare() {
+
+    }
+    
+
+}

Added: 
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeContextExtension.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeContextExtension.java?rev=406267&view=auto
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeContextExtension.java
 (added)
+++ 
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeContextExtension.java
 Sat May 13 22:58:45 2006
@@ -0,0 +1,104 @@
+package org.apache.tuscany.spi.extension;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+import org.apache.tuscany.spi.context.CompositeContext;
+import org.apache.tuscany.spi.context.Context;
+import org.apache.tuscany.spi.context.ContextNotFoundException;
+import org.apache.tuscany.spi.context.IllegalTargetException;
+import org.apache.tuscany.spi.context.InvalidContextTypeException;
+import org.apache.tuscany.spi.context.ReferenceContext;
+import org.apache.tuscany.spi.context.ServiceContext;
+import org.apache.tuscany.spi.context.TargetException;
+import org.apache.tuscany.spi.context.TargetNotFoundException;
+import org.apache.tuscany.spi.event.Event;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+public abstract class CompositeContextExtension<T> extends 
ComponentContextExtension implements CompositeContext {
+
+    protected Map<String, Context> children = new ConcurrentHashMap<String, 
Context>();
+    protected final List<ServiceContext> services = new 
ArrayList<ServiceContext>();
+    protected List<ReferenceContext> references = new 
ArrayList<ReferenceContext>();
+
+    public void registerContext(Context context) {
+        assert(context != null): "Context was null";
+        if (context instanceof ServiceContext) {
+        } else if (context instanceof ReferenceContext) {
+        } else {
+            InvalidContextTypeException e = new 
InvalidContextTypeException(context.getClass().getName());
+            e.setIdentifier(context.getName());
+            e.addContextName(getName());
+            throw e;
+        }
+    }
+
+    public Context getContext(String name) {
+        return children.get(name);
+    }
+
+    public List<ServiceContext> getServiceContexts() {
+        return Collections.unmodifiableList(services);
+    }
+
+    public ServiceContext getServiceContext(String name) {
+        Context ctx = children.get(name);
+        if (ctx == null) {
+            ContextNotFoundException e = new ContextNotFoundException("Service 
context not found");
+            e.setIdentifier(name);
+            e.addContextName(getName());
+            throw e;
+        } else if (!(ctx instanceof ServiceContext)) {
+            ContextNotFoundException e = new ContextNotFoundException("Context 
not a service context");
+            e.setIdentifier(name);
+            e.addContextName(getName());
+            throw e;
+        }
+        return (ServiceContext) ctx;
+    }
+
+    public List<ReferenceContext> getReferenceContexts() {
+        return Collections.unmodifiableList(references);
+    }
+
+    public T getService() throws TargetException {
+        return null;  //TODO implement
+    }
+
+    public Object getService(String name) throws TargetException {
+        Context context = children.get(name);
+        if (context == null) {
+            TargetNotFoundException e = new TargetNotFoundException(name);
+            e.addContextName(getName());
+            throw e;
+        } else if (context instanceof ServiceContext) {
+            return context.getService();
+        } else {
+            IllegalTargetException e = new IllegalTargetException("Target must 
be a service");
+            e.setIdentifier(name);
+            e.addContextName(getName());
+            throw e;
+        }
+    }
+
+    public List getServiceInterfaces() {
+        List<Class<?>> serviceInterfaces = new 
ArrayList<Class<?>>(services.size());
+        synchronized (services) {
+            for (ServiceContext serviceContext : services) {
+                serviceInterfaces.add(serviceContext.getInterface());
+            }
+        }
+        return serviceInterfaces;
+    }
+
+    public void onEvent(Event event) {
+
+    }
+
+
+}
\ No newline at end of file

Modified: 
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/TargetInvoker.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/TargetInvoker.java?rev=406267&r1=406266&r2=406267&view=diff
==============================================================================
--- 
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/TargetInvoker.java
 (original)
+++ 
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/TargetInvoker.java
 Sat May 13 22:58:45 2006
@@ -19,19 +19,15 @@
 import java.lang.reflect.InvocationTargetException;
 
 /**
- * Implementations are responsible for resolving a target and performing the 
actual invocation on it, for example, a
- * service component implementation instance or an external service client.
- * 
+ * Implementations are responsible for resolving a target and performing the 
actual invocation on it, for
+ * example, a service component implementation instance or an external service 
client.
+ *
  * @version $Rev: 395162 $ $Date: 2006-04-19 01:07:36 -0700 (Wed, 19 Apr 2006) 
$
  */
-public interface TargetInvoker extends Interceptor, Cloneable{
+public interface TargetInvoker extends Cloneable {
 
     /**
-     * Responsible for invoking an operation on a target with the given payload
-     * 
-     * @param payload the parameters of the target operation or null
-     * @throws InvocationTargetException if the target operation itself throws 
an exception. The root cause will be set
-     *         to that exception
+     * Responsible for invoking an operation on a target with the given message
      */
     public Object invokeTarget(Object payload) throws 
InvocationTargetException;
 


Reply via email to