You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by jm...@apache.org on 2006/10/02 08:58:21 UTC

svn commit: r451895 [1/3] - in /incubator/tuscany/java/sca: kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/ kernel/core/src/main/java/org/apache/tuscany/core/builder/ kernel/core/src/main/java/org/apache/tuscany/core/component/ kernel/core...

Author: jmarino
Date: Sun Oct  1 23:58:18 2006
New Revision: 451895

URL: http://svn.apache.org/viewvc?view=rev&rev=451895
Log:
Support system services scoped to a composite as an extension point: split composite child tree into two halves, application components and system services. This involved removal system composite and autowire component specializations. Refactor and add test cases accordingly. Move SystemAtomicComponent to SPI for custom system type extensions

Added:
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/AutowireResolutionTestCase.java   (contents, props changed)
      - copied, changed from r451663, incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/component/AutowireResolutionTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/AutowireTestCase.java   (contents, props changed)
      - copied, changed from r451663, incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/component/AutowireTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplBasicTestCase.java   (contents, props changed)
      - copied, changed from r451885, incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/CompositeComponentExtensionTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplSystemWireTestCase.java   (with props)
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplTestCase.java   (with props)
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentResolutionTestCase.java   (contents, props changed)
      - copied, changed from r451663, incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/component/SystemCompositeComponentResolutionTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeLifecycleTestCase.java   (contents, props changed)
      - copied, changed from r451663, incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/component/SystemCompositeLifecycleTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositePropagationTestCase.java   (contents, props changed)
      - copied, changed from r451663, incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/component/CompositePropagationTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/DuplicateRegistrationTestCase.java   (contents, props changed)
      - copied, changed from r451663, incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/component/DuplicateRegistrationTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/JavaObjectRegistrationTestCase.java   (contents, props changed)
      - copied, changed from r451663, incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/component/SystemObjectRegistrationTestCase.java
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/AutowireResolutionException.java   (contents, props changed)
      - copied, changed from r451663, incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/AutowireResolutionException.java
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ObjectRegistrationException.java   (contents, props changed)
      - copied, changed from r451663, incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/ObjectRegistrationException.java
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/SystemAtomicComponent.java   (contents, props changed)
      - copied, changed from r451663, incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemAtomicComponent.java
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/SystemAtomicComponentExtension.java   (with props)
Removed:
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/AutowireComponent.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/AutowireResolutionException.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/ObjectRegistrationException.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemAtomicComponent.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemCompositeComponent.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemCompositeComponentImpl.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/component/AutowireResolutionTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/component/AutowireTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/component/CompositePropagationTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/component/DuplicateRegistrationTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/component/SystemCompositeComponentResolutionTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/component/SystemCompositeLifecycleTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/component/SystemObjectRegistrationTestCase.java
    incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/CompositeComponentExtensionTestCase.java
Modified:
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/Bootstrapper.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultRuntime.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/BuilderRegistryImpl.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeComponent.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBindlessBuilder.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImpl.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeComponentTypeLoader.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeLoader.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceCallbackTargetInvoker.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceTargetInvoker.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeService.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/Dependency.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/DependencyLoader.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/ImplementationCompositeLoader.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ScopeProcessor.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemBindingBuilder.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemComponentBuilder.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemCompositeBuilder.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemAtomicComponentImpl.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemReferenceImpl.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemServiceImpl.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemSingletonAtomicComponent.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/wire/SystemOutboundAutowire.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/launcher/LauncherImpl.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ConnectorImplTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicHttpSessionScopeTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicModuleScopeTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicRequestScopeTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicStatelessScopeTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeInstanceLifecycleTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeRestartTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ModuleScopeInstanceLifecycleTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ModuleScopeRestartTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/RequestScopeInstanceLifecycleTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/RequestScopeRestartTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/deployer/BootstrapDeployerTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeBuilderTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/ImplementationCompositeLoaderTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilderTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/builder/SystemComponentBuilderTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/wire/AtomicComponentWireInvocationTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/wire/SystemOutboundAutowireTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/java/builder/JavaBuilderPropertyTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/system/builder/SystemBuilderPropertyTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/system/builder/SystemBuilderWireTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/mock/factories/MockFactory.java
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/bootstrap/RuntimeComponent.java
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/AbstractSCAObject.java
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/CompositeComponent.java
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/SCAObject.java
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java
    incubator/tuscany/java/sca/runtime/standalone-host/src/main/java/org/apache/tuscany/runtime/standalone/host/StandaloneRuntimeImpl.java
    incubator/tuscany/java/sca/runtime/webapp-host/src/main/java/org/apache/tuscany/runtime/webapp/WebappRuntimeImpl.java
    incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ReferenceInvocationTestCase.java
    incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/SpringCompositeComponentTestCase.java
    incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/Bootstrapper.java
    incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/SCATestCase.java

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/Bootstrapper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/Bootstrapper.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/Bootstrapper.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/Bootstrapper.java Sun Oct  1 23:58:18 2006
@@ -20,7 +20,6 @@
 
 import org.apache.tuscany.spi.bootstrap.RuntimeComponent;
 import org.apache.tuscany.spi.builder.Connector;
-import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.component.ScopeRegistry;
 import org.apache.tuscany.spi.component.WorkContext;
 import org.apache.tuscany.spi.deployer.Deployer;
@@ -37,7 +36,7 @@
  *
  * @version $Rev$ $Date$
  */
-public interface Bootstrapper<T extends CompositeComponent> {
+public interface Bootstrapper {
     /**
      * Return the MonitorFactory being used by the implementation to provide monitor interfaces for the primordial
      * components.
@@ -48,13 +47,13 @@
 
     /**
      * Create the RuntimeComponent that forms the fundamental root of the component assembly. This component has two
-     * children: a {@link org.apache.tuscany.core.implementation.system.component.SystemCompositeComponent} that is the
-     * root for all system components, and a {@link org.apache.tuscany.spi.component.CompositeComponent} that is the
-     * root for all application components.
+     * children: a {@link org.apache.tuscany.spi.component.CompositeComponent} that is the root for all system
+     * components, and a {@link org.apache.tuscany.spi.component.CompositeComponent} that is the root for all
+     * application components.
      *
      * @return a new RuntimeComponent; basically a new Tuscany instance
      */
-    RuntimeComponent<T> createRuntime();
+    RuntimeComponent createRuntime();
 
     /**
      * Create a Deployer that can be used to deploy the system definition. This will most likely only support a small

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java Sun Oct  1 23:58:18 2006
@@ -60,8 +60,6 @@
 import org.apache.tuscany.core.implementation.system.builder.SystemBindingBuilder;
 import org.apache.tuscany.core.implementation.system.builder.SystemComponentBuilder;
 import org.apache.tuscany.core.implementation.system.builder.SystemCompositeBuilder;
-import org.apache.tuscany.core.implementation.system.component.SystemCompositeComponent;
-import org.apache.tuscany.core.implementation.system.component.SystemCompositeComponentImpl;
 import org.apache.tuscany.core.implementation.system.loader.SystemBindingLoader;
 import org.apache.tuscany.core.implementation.system.loader.SystemComponentTypeLoader;
 import org.apache.tuscany.core.implementation.system.loader.SystemCompositeComponentTypeLoader;
@@ -85,7 +83,7 @@
  *
  * @version $Rev$ $Date$
  */
-public class DefaultBootstrapper implements Bootstrapper<SystemCompositeComponent> {
+public class DefaultBootstrapper implements Bootstrapper {
     private final MonitorFactory monitorFactory;
     private final XMLInputFactory xmlFactory;
 
@@ -115,13 +113,13 @@
      *
      * @return a newly created root for the component tree
      */
-    public RuntimeComponent<SystemCompositeComponent> createRuntime() {
+    public RuntimeComponent createRuntime() {
         DefaultRuntime runtime = new DefaultRuntime();
-        SystemCompositeComponentImpl systemComponent =
-            new SystemCompositeComponentImpl(ComponentNames.TUSCANY_SYSTEM, runtime, runtime, null, null);
+        CompositeComponent systemComponent =
+            new CompositeComponentImpl(ComponentNames.TUSCANY_SYSTEM, runtime, null, null);
         runtime.setSystemComponent(systemComponent);
         CompositeComponent rootComponent =
-            new CompositeComponentImpl(ComponentNames.TUSCANY_ROOT, runtime, runtime, null, null);
+            new CompositeComponentImpl(ComponentNames.TUSCANY_ROOT, runtime, null, null);
         runtime.setRootComponent(rootComponent);
         return runtime;
     }

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultRuntime.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultRuntime.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultRuntime.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultRuntime.java Sun Oct  1 23:58:18 2006
@@ -23,23 +23,21 @@
 
 import org.w3c.dom.Document;
 
-import org.apache.tuscany.core.implementation.system.component.SystemCompositeComponent;
-import org.apache.tuscany.core.implementation.system.component.SystemCompositeComponentImpl;
 import org.apache.tuscany.spi.bootstrap.ComponentNames;
 import org.apache.tuscany.spi.bootstrap.RuntimeComponent;
 import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.deployer.Deployer;
 
+import org.apache.tuscany.core.implementation.composite.CompositeComponentImpl;
+
 /**
  * The default implementation of the Tuscany runtime component
  *
  * @version $Rev$ $Date$
  */
-public class DefaultRuntime
-        extends SystemCompositeComponentImpl
-        implements RuntimeComponent<SystemCompositeComponent> {
+public class DefaultRuntime extends CompositeComponentImpl implements RuntimeComponent {
     private CompositeComponent rootComponent;
-    private SystemCompositeComponent systemComponent;
+    private CompositeComponent systemComponent;
 
     /**
      * Initialize a default runtime with an empty set of Property values.
@@ -50,17 +48,18 @@
 
     /**
      * Initialize a runtime with the a set of properties
+     *
      * @param runtimeProperties Property values for the runtime itself
      */
     public DefaultRuntime(Map<String, Document> runtimeProperties) {
-        super(ComponentNames.TUSCANY_RUNTIME, null, null, null, runtimeProperties);
+        super(ComponentNames.TUSCANY_RUNTIME, null, null, runtimeProperties);
     }
 
     protected void setRootComponent(CompositeComponent rootComponent) {
         this.rootComponent = rootComponent;
     }
 
-    protected void setSystemComponent(SystemCompositeComponent systemComponent) {
+    protected void setSystemComponent(CompositeComponent systemComponent) {
         this.systemComponent = systemComponent;
     }
 
@@ -68,7 +67,7 @@
         return rootComponent;
     }
 
-    public SystemCompositeComponent getSystemComponent() {
+    public CompositeComponent getSystemComponent() {
         return systemComponent;
     }
 

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/BuilderRegistryImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/BuilderRegistryImpl.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/BuilderRegistryImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/BuilderRegistryImpl.java Sun Oct  1 23:58:18 2006
@@ -38,6 +38,7 @@
 import org.apache.tuscany.spi.component.SCAObject;
 import org.apache.tuscany.spi.component.ScopeRegistry;
 import org.apache.tuscany.spi.component.Service;
+import org.apache.tuscany.spi.component.SystemAtomicComponent;
 import org.apache.tuscany.spi.deployer.DeploymentContext;
 import org.apache.tuscany.spi.model.Binding;
 import org.apache.tuscany.spi.model.BindlessServiceDefinition;
@@ -50,8 +51,6 @@
 import org.apache.tuscany.spi.model.ServiceContract;
 import org.apache.tuscany.spi.wire.WireService;
 
-import org.apache.tuscany.core.implementation.system.component.SystemAtomicComponent;
-
 /**
  * The default builder registry in the runtime
  *
@@ -148,7 +147,7 @@
     public void register(BindlessBuilder builder) {
         bindlessBuilder = builder;
     }
-    
+
     @SuppressWarnings("unchecked")
     public <B extends Binding> SCAObject build(CompositeComponent parent,
                                                BoundServiceDefinition<B> boundServiceDefinition,

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java Sun Oct  1 23:58:18 2006
@@ -91,7 +91,19 @@
                         continue;
                     }
                     try {
-                        connect(sourceComponent, outboundWire);
+                        // For a composite reference only, since its outbound wire comes from its parent composite,
+                        // the corresponding target would not lie in its parent but rather in its parent's parent
+                        if (source instanceof CompositeReference) {
+                            parent = parent.getParent();
+                            assert parent != null : "Parent of parent was null";
+                        }
+                        SCAObject target;
+                        if (sourceComponent.isSystem()) {
+                            target = parent.getSystemChild(outboundWire.getTargetName().getPartName());
+                        } else {
+                            target = parent.getChild(outboundWire.getTargetName().getPartName());
+                        }
+                        connect(sourceComponent, outboundWire, target);
                     } catch (BuilderConfigException e) {
                         e.addContextName(source.getName());
                         e.addContextName(parent.getName());
@@ -129,8 +141,20 @@
             Service service = (Service) source;
             InboundWire inboundWire = service.getInboundWire();
             OutboundWire outboundWire = service.getOutboundWire();
+            // For a composite reference only, since its outbound wire comes from its parent composite,
+            // the corresponding target would not lie in its parent but rather in its parent's parent
+            if (source instanceof CompositeReference) {
+                parent = parent.getParent();
+                assert parent != null : "Parent of parent was null";
+            }
+            SCAObject target;
+            if (service.isSystem()) {
+                target = parent.getSystemChild(outboundWire.getTargetName().getPartName());
+            } else {
+                target = parent.getChild(outboundWire.getTargetName().getPartName());
+            }
             // connect the outbound service wire to the target
-            connect(service, outboundWire);
+            connect(service, outboundWire, target);
             // NB: this connect must be done after the outbound service chain is connected to its target above
             if (!(source instanceof CompositeService)) {
                 //REVIEW JFM: do we need this to be special for composites?
@@ -318,31 +342,16 @@
         sourceChain.addInterceptor(new SynchronousBridgingInterceptor(targetChain.getHeadInterceptor()));
     }
 
-    /**
+       /**
      * Connects an component's outbound wire to its target in a composite.  Valid targets are either
      * <code>AtomicComponent</code>s contained in the composite, or <code>References</code> of the composite.
      *
      * @param sourceWire
      * @throws BuilderConfigException
      */
-    private void connect(SCAObject source, OutboundWire sourceWire) throws BuilderConfigException {
+    private void connect(SCAObject source, OutboundWire sourceWire, SCAObject target) throws BuilderConfigException {
         assert sourceWire.getTargetName() != null : "Wire target name was null";
         QualifiedName targetName = sourceWire.getTargetName();
-        CompositeComponent parent = source.getParent();
-        assert parent != null : "Parent was null";
-        // For a composite reference only, since its outbound wire comes from its parent composite,
-        // the corresponding target would not lie in its parent but rather in its parent's parent
-        if (source instanceof CompositeReference) {
-            parent = parent.getParent();
-            assert parent != null : "Parent of parent was null";
-        }
-        SCAObject target = parent.getChild(targetName.getPartName());
-        if (target == null) {
-            String refName = sourceWire.getReferenceName();
-            BuilderConfigException e = new BuilderConfigException("Target not found for reference " + refName);
-            e.setIdentifier(targetName.getQualifiedName());
-            throw e;
-        }
 
         if (target instanceof AtomicComponent) {
             AtomicComponent targetComponent = (AtomicComponent) target;
@@ -365,18 +374,36 @@
         } else if (target instanceof CompositeComponent) {
             CompositeComponent composite = (CompositeComponent) target;
             InboundWire targetWire = null;
-            for (Object child : composite.getChildren()) {
-                if (child instanceof CompositeService) {
-                    CompositeService compServ = (CompositeService) child;
-                    targetWire = compServ.getInboundWire();
-                    assert targetWire != null;
-                    Class<?> sourceInterface = sourceWire.getServiceContract().getInterfaceClass();
-                    Class<?> targetInterface = targetWire.getServiceContract().getInterfaceClass();
-                    if (sourceInterface.isAssignableFrom(targetInterface)) {
-                        target = compServ;
-                        break;
-                    } else {
-                        targetWire = null;
+            if (source.isSystem()) {
+                for (Object child : composite.getSystemChildren()) {
+                    if (child instanceof CompositeService) {
+                        CompositeService compServ = (CompositeService) child;
+                        targetWire = compServ.getInboundWire();
+                        assert targetWire != null;
+                        Class<?> sourceInterface = sourceWire.getServiceContract().getInterfaceClass();
+                        Class<?> targetInterface = targetWire.getServiceContract().getInterfaceClass();
+                        if (sourceInterface.isAssignableFrom(targetInterface)) {
+                            target = compServ;
+                            break;
+                        } else {
+                            targetWire = null;
+                        }
+                    }
+                }
+            } else {
+                for (Object child : composite.getChildren()) {
+                    if (child instanceof CompositeService) {
+                        CompositeService compServ = (CompositeService) child;
+                        targetWire = compServ.getInboundWire();
+                        assert targetWire != null;
+                        Class<?> sourceInterface = sourceWire.getServiceContract().getInterfaceClass();
+                        Class<?> targetInterface = targetWire.getServiceContract().getInterfaceClass();
+                        if (sourceInterface.isAssignableFrom(targetInterface)) {
+                            target = compServ;
+                            break;
+                        } else {
+                            targetWire = null;
+                        }
                     }
                 }
             }

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeComponent.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeComponent.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeComponent.java Sun Oct  1 23:58:18 2006
@@ -18,46 +18,34 @@
  */
 package org.apache.tuscany.core.implementation.composite;
 
-import java.util.ArrayList;
-import java.util.List;
 import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
 import org.w3c.dom.Document;
 
-import org.apache.tuscany.spi.CoreRuntimeException;
 import org.apache.tuscany.spi.builder.Connector;
-import org.apache.tuscany.spi.component.AtomicComponent;
-import org.apache.tuscany.spi.component.Component;
 import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.component.DuplicateNameException;
-import org.apache.tuscany.spi.component.IllegalTargetException;
-import org.apache.tuscany.spi.component.Reference;
+import org.apache.tuscany.spi.component.ObjectRegistrationException;
 import org.apache.tuscany.spi.component.SCAObject;
 import org.apache.tuscany.spi.component.ScopeContainer;
-import org.apache.tuscany.spi.component.Service;
-import org.apache.tuscany.spi.component.TargetException;
 import org.apache.tuscany.spi.event.Event;
 import org.apache.tuscany.spi.extension.CompositeComponentExtension;
 import org.apache.tuscany.spi.model.Operation;
 import org.apache.tuscany.spi.wire.InboundWire;
 import org.apache.tuscany.spi.wire.TargetInvoker;
 
-import org.apache.tuscany.core.component.AutowireComponent;
-import org.apache.tuscany.core.component.AutowireResolutionException;
 import org.apache.tuscany.core.component.ComponentInitException;
 import org.apache.tuscany.core.component.event.CompositeStart;
 import org.apache.tuscany.core.component.event.CompositeStop;
-import org.apache.tuscany.core.implementation.system.component.SystemService;
+import org.apache.tuscany.core.implementation.system.component.SystemSingletonAtomicComponent;
 
 /**
  * The base implementation of a composite context
  *
  * @version $Rev$ $Date$
  */
-public abstract class AbstractCompositeComponent extends CompositeComponentExtension implements AutowireComponent {
+public abstract class AbstractCompositeComponent extends CompositeComponentExtension {
 
     public static final int DEFAULT_WAIT = 1000 * 60;
 
@@ -69,28 +57,20 @@
     // Indicates whether the module context has been initialized
     protected boolean initialized;
 
-    // a mapping of service type to component name
-    protected final Map<Class, SCAObject> autowireInternal = new ConcurrentHashMap<Class, SCAObject>();
-    protected final Map<Class, SystemService> autowireExternal = new ConcurrentHashMap<Class, SystemService>();
-
-    protected AutowireComponent autowireContext;
-
     protected ScopeContainer scopeContainer;
 
+
     /**
-     * @param name            the name of the SCA composite
-     * @param parent          the SCA composite parent
-     * @param autowireContext the component that should be to resolve autowires
+     * @param name           the name of the SCA composite
+     * @param parent         the SCA composite parent
      * @param connector
-     * @param propertyValues  the values of this composite's Properties
+     * @param propertyValues the values of this composite's Properties
      */
     public AbstractCompositeComponent(String name,
                                       CompositeComponent parent,
-                                      AutowireComponent autowireContext,
                                       Connector connector,
                                       Map<String, Document> propertyValues) {
         super(name, parent, connector, propertyValues);
-        this.autowireContext = autowireContext;
     }
 
     public void setScopeContainer(ScopeContainer scopeContainer) {
@@ -99,6 +79,11 @@
         addListener(scopeContainer);
     }
 
+    public <S, I extends S> void registerJavaObject(String name, Class<S> service, I instance)
+        throws ObjectRegistrationException {
+        register(new SystemSingletonAtomicComponent<S, I>(name, this, service, instance));
+    }
+
     public void start() {
         synchronized (lock) {
             if (lifecycleState != UNINITIALIZED && lifecycleState != STOPPED) {
@@ -108,6 +93,9 @@
             if (scopeContainer != null) {
                 scopeContainer.start();
             }
+            for (SCAObject child : systemChildren.values()) {
+                child.start();
+            }
             for (SCAObject child : children.values()) {
                 child.start();
             }
@@ -127,6 +115,9 @@
         for (SCAObject child : children.values()) {
             child.stop();
         }
+        for (SCAObject child : systemChildren.values()) {
+            child.stop();
+        }
         if (scopeContainer != null) {
             scopeContainer.stop();
         }
@@ -140,93 +131,11 @@
         lifecycleState = STOPPED;
     }
 
-    public void register(SCAObject child) {
-        if (children.get(child.getName()) != null) {
-            DuplicateNameException e = new DuplicateNameException("A context is already registered with name");
-            e.setIdentifier(child.getName());
-            e.addContextName(getName());
-            throw e;
-        }
-        children.put(child.getName(), child);
-        if (child instanceof Service) {
-            Service service = (Service) child;
-            synchronized (services) {
-                services.add(service);
-            }
-            registerAutowire(service);
-        } else if (child instanceof Reference) {
-            Reference context = (Reference) child;
-            synchronized (references) {
-                references.add(context);
-            }
-            registerAutowire(context);
-        } else if (child instanceof AtomicComponent) {
-            AtomicComponent atomic = (AtomicComponent) child;
-            registerAutowire(atomic);
-        } else if (child instanceof CompositeComponent) {
-            CompositeComponent component = (CompositeComponent) child;
-            if (lifecycleState == RUNNING && component.getLifecycleState() == UNINITIALIZED) {
-                component.start();
-            }
-            registerAutowire(component);
-            addListener(component);
-        }
-
-    }
-
     public void publish(Event event) {
         checkInit();
         super.publish(event);
     }
 
-    public <T> T resolveInstance(Class<T> instanceInterface) throws AutowireResolutionException {
-        if (AutowireComponent.class.equals(instanceInterface)) {
-            return instanceInterface.cast(this);
-        }
-        SCAObject context = autowireInternal.get(instanceInterface);
-        if (context != null) {
-            try {
-                if (context instanceof AtomicComponent || context instanceof Reference
-                    || context instanceof SystemService) {
-                    return instanceInterface.cast(context.getServiceInstance());
-                } else {
-                    IllegalTargetException e = new IllegalTargetException("Autowire target must be a system "
-                        + "service, atomic component, or reference");
-                    e.setIdentifier(instanceInterface.getName());
-                    e.addContextName(getName());
-                    throw e;
-                }
-            } catch (CoreRuntimeException e) {
-                e.addContextName(getName());
-                throw e;
-            }
-        } else if (autowireContext != null) {
-            try {
-                // resolve to parent
-                return autowireContext.resolveInstance(instanceInterface);
-            } catch (AutowireResolutionException e) {
-                e.addContextName(getName());
-                throw e;
-            }
-        } else {
-            return null;
-        }
-    }
-
-    public <T> T resolveExternalInstance(Class<T> instanceInterface) throws AutowireResolutionException {
-        SystemService service = autowireExternal.get(instanceInterface);
-        if (service != null) {
-            try {
-                return instanceInterface.cast(service.getServiceInstance());
-            } catch (CoreRuntimeException e) {
-                e.addContextName(getName());
-                throw e;
-            }
-        } else {
-            return null;
-        }
-    }
-
     public TargetInvoker createTargetInvoker(String targetName, Operation operation) {
         return null;
     }
@@ -235,76 +144,6 @@
         return null;
     }
 
-    public void prepare() {
-        // Connect services and references first so that their wires are linked first
-        List<SCAObject> childList = new ArrayList<SCAObject>();
-        for (SCAObject child : children.values()) {
-            if(child instanceof Component) {
-                childList.add(child);
-            } else {
-                childList.add(0, child);
-            }
-        }
-        for (SCAObject child : childList) {
-            // connect all children
-            // TODO for composite wires, should delegate down
-            connector.connect(child);
-            child.prepare();
-        }
-    }
-
-    public Object getServiceInstance() throws TargetException {
-        Service service = services.get(0);
-        if (service == null) {
-            throw new TargetException("Component has no services");
-        }
-        return service.getServiceInstance();
-    }
-
-    protected void registerAutowireExternal(Class<?> interfaze, SystemService context) {
-        assert interfaze != null;
-        if (autowireExternal.containsKey(interfaze)) {
-            return;
-        }
-        autowireExternal.put(interfaze, context);
-    }
-
-    protected void registerAutowireInternal(Class<?> interfaze, SCAObject context) {
-        // assert interfaze != null : "Interface was null";
-        if (interfaze == null) {
-            // The ServiceContract is not from Java
-            return;
-        }
-        if (autowireInternal.containsKey(interfaze)) {
-            return;
-        }
-        autowireInternal.put(interfaze, context);
-    }
-
-    protected void registerAutowire(CompositeComponent component) {
-        List<Service> services = component.getServices();
-        for (Service service : services) {
-            registerAutowireInternal(service.getInterface(), service);
-        }
-    }
-
-    protected void registerAutowire(AtomicComponent component) {
-        List<Class<?>> services = component.getServiceInterfaces();
-        for (Class<?> service : services) {
-            registerAutowireInternal(service, component);
-        }
-    }
-
-    protected void registerAutowire(Reference context) {
-        registerAutowireInternal(context.getInterface(), context);
-    }
-
-    protected void registerAutowire(Service context) {
-        if (context instanceof SystemService) {
-            SystemService systemContext = (SystemService) context;
-            registerAutowireExternal(systemContext.getInterface(), systemContext);
-        }
-    }
 
     /**
      * Blocks until the module context has been initialized
@@ -323,4 +162,6 @@
         }
 
     }
+
+
 }

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBindlessBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBindlessBuilder.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBindlessBuilder.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBindlessBuilder.java Sun Oct  1 23:58:18 2006
@@ -59,8 +59,8 @@
     }
 
     public Service build(CompositeComponent parent,
-                            BindlessServiceDefinition definition,
-                            DeploymentContext deploymentContext) {
+                         BindlessServiceDefinition definition,
+                         DeploymentContext deploymentContext) {
         return new CompositeService(definition.getName(),
             definition.getServiceContract().getInterfaceClass(),
             parent,
@@ -69,8 +69,8 @@
     }
 
     public Reference build(CompositeComponent parent,
-                              ReferenceDefinition definition,
-                              DeploymentContext deploymentContext) {
+                           ReferenceDefinition definition,
+                           DeploymentContext deploymentContext) {
         return new CompositeReference(definition.getName(),
             parent,
             wireService,

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java Sun Oct  1 23:58:18 2006
@@ -82,7 +82,7 @@
         }
 
         String name = componentDefinition.getName();
-        CompositeComponentImpl component = new CompositeComponentImpl(name, parent, null, connector, null);
+        CompositeComponentImpl component = new CompositeComponentImpl(name, parent, connector, null);
         for (BoundReferenceDefinition<? extends Binding> referenceDefinition : allBoundReferences) {
             component.register(builderRegistry.build(component, referenceDefinition, deploymentContext));
         }

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImpl.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImpl.java Sun Oct  1 23:58:18 2006
@@ -25,8 +25,6 @@
 import org.apache.tuscany.spi.builder.Connector;
 import org.apache.tuscany.spi.component.CompositeComponent;
 
-import org.apache.tuscany.core.component.AutowireComponent;
-
 /**
  * The standard implementation of a composite component. Autowiring is performed by delegating to the parent composite.
  *
@@ -37,33 +35,31 @@
 
     public CompositeComponentImpl(String name,
                                   CompositeComponent parent,
-                                  AutowireComponent autowireContext,
                                   Connector connector,
                                   Map<String, Document> propertyValues) {
-        this(name, null, parent, autowireContext, connector, propertyValues);
+        this(name, null, parent, connector, propertyValues);
     }
 
     /**
      * Constructor specifying name and URI.
      *
-     * @param name              the name of this Component
-     * @param uri               the unique identifier for this component
-     * @param parent            this component's parent
-     * @param autowireComponent the component that should be used to resolve autowired references
+     * @param name           the name of this Component
+     * @param uri            the unique identifier for this component
+     * @param parent         this component's parent
      * @param connector
-     * @param propertyValues    this composite's Property values
+     * @param propertyValues this composite's Property values
      */
     public CompositeComponentImpl(String name,
                                   String uri,
                                   CompositeComponent parent,
-                                  AutowireComponent autowireComponent,
                                   Connector connector,
                                   Map<String, Document> propertyValues) {
-        super(name, parent, autowireComponent, connector, propertyValues);
+        super(name, parent, connector, propertyValues);
         this.uri = uri;
     }
 
     public String getURI() {
         return uri;
     }
+
 }

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeComponentTypeLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeComponentTypeLoader.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeComponentTypeLoader.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeComponentTypeLoader.java Sun Oct  1 23:58:18 2006
@@ -20,15 +20,16 @@
 
 import java.net.URL;
 
-import org.apache.tuscany.core.deployer.ChildDeploymentContext;
 import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.deployer.DeploymentContext;
 import org.apache.tuscany.spi.deployer.CompositeClassLoader;
+import org.apache.tuscany.spi.deployer.DeploymentContext;
 import org.apache.tuscany.spi.extension.ComponentTypeLoaderExtension;
 import org.apache.tuscany.spi.loader.LoaderException;
 import org.apache.tuscany.spi.loader.LoaderRegistry;
 import org.apache.tuscany.spi.model.CompositeComponentType;
 import org.apache.tuscany.spi.model.CompositeImplementation;
+
+import org.apache.tuscany.core.deployer.ChildDeploymentContext;
 
 /**
  * Loads a composite component type

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeLoader.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeLoader.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeLoader.java Sun Oct  1 23:58:18 2006
@@ -28,8 +28,8 @@
 
 import org.apache.tuscany.spi.annotation.Autowire;
 import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.deployer.DeploymentContext;
 import org.apache.tuscany.spi.deployer.CompositeClassLoader;
+import org.apache.tuscany.spi.deployer.DeploymentContext;
 import org.apache.tuscany.spi.extension.LoaderExtension;
 import org.apache.tuscany.spi.loader.LoaderException;
 import org.apache.tuscany.spi.loader.LoaderRegistry;
@@ -105,7 +105,7 @@
                         // HACK: [rfeng] Add as an unknown model extension
                         if (o != null) {
                             composite.getExtensions().put(o.getClass(), o);
-                        }    
+                        }
                     }
                     reader.next();
                     break;

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceCallbackTargetInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceCallbackTargetInvoker.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceCallbackTargetInvoker.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceCallbackTargetInvoker.java Sun Oct  1 23:58:18 2006
@@ -18,7 +18,6 @@
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 
-import org.apache.tuscany.core.wire.PojoTargetInvoker;
 import org.apache.tuscany.spi.component.TargetException;
 import org.apache.tuscany.spi.component.WorkContext;
 import org.apache.tuscany.spi.model.ServiceContract;
@@ -27,6 +26,8 @@
 import org.apache.tuscany.spi.wire.Message;
 import org.apache.tuscany.spi.wire.WireService;
 
+import org.apache.tuscany.core.wire.PojoTargetInvoker;
+
 public class CompositeReferenceCallbackTargetInvoker extends PojoTargetInvoker {
 
     private ServiceContract<?> contract;
@@ -34,12 +35,12 @@
     private WireService wireService;
     private WorkContext workContext;
 
-    
+
     public CompositeReferenceCallbackTargetInvoker(Method operation,
-            ServiceContract contract,
-            InboundWire inboundWire,
-            WireService wireService,
-            WorkContext workContext) {
+                                                   ServiceContract contract,
+                                                   InboundWire inboundWire,
+                                                   WireService wireService,
+                                                   WorkContext workContext) {
         super(operation);
         this.contract = contract;
         this.inboundWire = inboundWire;

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceTargetInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceTargetInvoker.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceTargetInvoker.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceTargetInvoker.java Sun Oct  1 23:58:18 2006
@@ -18,24 +18,25 @@
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 
-import org.apache.tuscany.core.injection.WireObjectFactory;
-import org.apache.tuscany.core.wire.PojoTargetInvoker;
 import org.apache.tuscany.spi.component.TargetException;
 import org.apache.tuscany.spi.component.WorkContext;
 import org.apache.tuscany.spi.wire.InboundWire;
 import org.apache.tuscany.spi.wire.InvocationRuntimeException;
 import org.apache.tuscany.spi.wire.Message;
 
+import org.apache.tuscany.core.injection.WireObjectFactory;
+import org.apache.tuscany.core.wire.PojoTargetInvoker;
+
 public class CompositeReferenceTargetInvoker extends PojoTargetInvoker {
 
     private InboundWire wire;
     private WireObjectFactory wireFactory;
     private WorkContext workContext;
 
-    
+
     public CompositeReferenceTargetInvoker(Method operation,
-            InboundWire wire,
-            WireObjectFactory wireFactory, WorkContext workContext) {
+                                           InboundWire wire,
+                                           WireObjectFactory wireFactory, WorkContext workContext) {
         super(operation);
         this.wire = wire;
         this.wireFactory = wireFactory;

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeService.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeService.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeService.java Sun Oct  1 23:58:18 2006
@@ -15,7 +15,6 @@
 
 import java.lang.reflect.Method;
 
-import org.apache.tuscany.core.injection.WireObjectFactory;
 import org.apache.tuscany.spi.CoreRuntimeException;
 import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.component.TargetException;
@@ -27,26 +26,25 @@
 import org.apache.tuscany.spi.wire.TargetInvoker;
 import org.apache.tuscany.spi.wire.WireService;
 
+import org.apache.tuscany.core.injection.WireObjectFactory;
+
 public class CompositeService extends ServiceExtension {
-    
+
     private WorkContext workContext;
 
     public CompositeService(String name,
-                       Class<?> interfaze,
-                       CompositeComponent parent,
-                       WireService wireService,
-                       WorkContext workContext) throws CoreRuntimeException {
+                            Class<?> interfaze,
+                            CompositeComponent parent,
+                            WireService wireService,
+                            WorkContext workContext) throws CoreRuntimeException {
         super(name, interfaze, parent, wireService);
         this.workContext = workContext;
     }
-    
+
     /**
-     * A service for a remote binding does not need a target invoker, but a
-     * bindless service does because it gets wired localy from a reference (or from
-     * a parent service?!)
-     * We just reuse CompositeReferenceTargetInvoker for now since it seems the target
-     * invoker we need does the same thing, if this is confirmed we should give it
-     * a common name
+     * A service for a remote binding does not need a target invoker, but a bindless service does because it gets wired
+     * localy from a reference (or from a parent service?!) We just reuse CompositeReferenceTargetInvoker for now since
+     * it seems the target invoker we need does the same thing, if this is confirmed we should give it a common name
      * FIXME !!! Notice that this method is not defined in the SPI !!!
      */
     public TargetInvoker createTargetInvoker(ServiceContract contract, Operation operation) {
@@ -54,14 +52,14 @@
         Method method = JavaIDLUtils.findMethod(operation, contract.getInterfaceClass().getMethods());
         return new CompositeReferenceTargetInvoker(method, inboundWire, wireFactory, workContext);
     }
-    
+
     /**
      */
     public TargetInvoker createCallbackTargetInvoker(ServiceContract contract, Operation operation) {
         Method method = JavaIDLUtils.findMethod(operation, contract.getCallbackClass().getMethods());
         return new CompositeReferenceCallbackTargetInvoker(method, contract, inboundWire, wireService, workContext);
     }
-    
+
     public Object getServiceInstance() throws TargetException {
         return interfaze.cast(wireService.createProxy(outboundWire));
     }

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/Dependency.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/Dependency.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/Dependency.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/Dependency.java Sun Oct  1 23:58:18 2006
@@ -18,8 +18,8 @@
  */
 package org.apache.tuscany.core.implementation.composite;
 
-import org.apache.tuscany.spi.services.artifact.Artifact;
 import org.apache.tuscany.spi.model.ModelObject;
+import org.apache.tuscany.spi.services.artifact.Artifact;
 
 /**
  * A model object that represents a dependency on an external artifact.

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/DependencyLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/DependencyLoader.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/DependencyLoader.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/DependencyLoader.java Sun Oct  1 23:58:18 2006
@@ -19,17 +19,17 @@
 package org.apache.tuscany.core.implementation.composite;
 
 import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamConstants;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
-import javax.xml.stream.XMLStreamConstants;
 
+import org.apache.tuscany.spi.annotation.Autowire;
 import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.deployer.DeploymentContext;
 import org.apache.tuscany.spi.extension.LoaderExtension;
 import org.apache.tuscany.spi.loader.LoaderException;
 import org.apache.tuscany.spi.loader.LoaderRegistry;
 import org.apache.tuscany.spi.services.artifact.Artifact;
-import org.apache.tuscany.spi.annotation.Autowire;
 
 /**
  * Loader for handling <dependency> elements.

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/ImplementationCompositeLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/ImplementationCompositeLoader.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/ImplementationCompositeLoader.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/ImplementationCompositeLoader.java Sun Oct  1 23:58:18 2006
@@ -18,8 +18,8 @@
  */
 package org.apache.tuscany.core.implementation.composite;
 
-import java.net.URL;
 import java.net.MalformedURLException;
+import java.net.URL;
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
@@ -31,10 +31,10 @@
 import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.deployer.DeploymentContext;
 import org.apache.tuscany.spi.extension.LoaderExtension;
+import org.apache.tuscany.spi.loader.InvalidValueException;
 import org.apache.tuscany.spi.loader.LoaderException;
 import org.apache.tuscany.spi.loader.LoaderRegistry;
 import org.apache.tuscany.spi.loader.LoaderUtil;
-import org.apache.tuscany.spi.loader.InvalidValueException;
 import org.apache.tuscany.spi.model.CompositeImplementation;
 
 /**

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ScopeProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ScopeProcessor.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ScopeProcessor.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ScopeProcessor.java Sun Oct  1 23:58:18 2006
@@ -28,8 +28,6 @@
 import org.apache.tuscany.spi.implementation.java.ProcessingException;
 import org.apache.tuscany.spi.model.Scope;
 
-import org.apache.tuscany.core.implementation.system.component.SystemCompositeComponent;
-
 /**
  * Processes the {@link Scope} annotation and updates the component type with the corresponding implmentation scope
  *
@@ -38,17 +36,12 @@
 public class ScopeProcessor extends ImplementationProcessorExtension {
 
     public <T> void visitClass(CompositeComponent parent, Class<T> clazz,
-                           PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type,
-                           DeploymentContext context)
+                               PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type,
+                               DeploymentContext context)
         throws ProcessingException {
         org.osoa.sca.annotations.Scope annotation = clazz.getAnnotation(org.osoa.sca.annotations.Scope.class);
         if (annotation == null) {
-            // TODO do this with a specialization of a system POJO
-            if (SystemCompositeComponent.class.isAssignableFrom(parent.getClass())) {
-                type.setImplementationScope(Scope.MODULE);
-            } else {
-                type.setImplementationScope(Scope.STATELESS);
-            }
+            type.setImplementationScope(Scope.STATELESS);
             return;
         }
         //FIXME deal with eager init

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemBindingBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemBindingBuilder.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemBindingBuilder.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemBindingBuilder.java Sun Oct  1 23:58:18 2006
@@ -28,7 +28,6 @@
 import org.apache.tuscany.spi.model.BoundServiceDefinition;
 import org.apache.tuscany.spi.wire.InboundWire;
 
-import org.apache.tuscany.core.component.AutowireComponent;
 import org.apache.tuscany.core.implementation.system.component.SystemReference;
 import org.apache.tuscany.core.implementation.system.component.SystemReferenceImpl;
 import org.apache.tuscany.core.implementation.system.component.SystemService;
@@ -53,7 +52,7 @@
                                DeploymentContext deploymentContext) {
         Class<?> interfaze = boundServiceDefinition.getServiceContract().getInterfaceClass();
         QualifiedName targetName = new QualifiedName(boundServiceDefinition.getTarget().getPath());
-        Component target = (Component) parent.getChild(targetName.getPartName());
+        Component target = (Component) parent.getSystemChild(targetName.getPartName());
         if (target == null) {
             throw new BuilderConfigException("Target not found: [" + targetName + ']');
         }
@@ -71,9 +70,7 @@
     public SystemReference build(CompositeComponent parent,
                                  BoundReferenceDefinition<SystemBinding> boundReferenceDefinition,
                                  DeploymentContext deploymentContext) {
-        assert parent.getParent() instanceof AutowireComponent
-            : "Grandparent not an instance of " + AutowireComponent.class.getName();
-        AutowireComponent autowireComponent = (AutowireComponent) parent.getParent();
+        CompositeComponent autowireComponent = parent.getParent();
         Class<?> interfaze = boundReferenceDefinition.getServiceContract().getInterfaceClass();
         String name = boundReferenceDefinition.getName();
         SystemReferenceImpl reference = new SystemReferenceImpl(name, interfaze, parent);

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemComponentBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemComponentBuilder.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemComponentBuilder.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemComponentBuilder.java Sun Oct  1 23:58:18 2006
@@ -42,7 +42,6 @@
 import org.apache.tuscany.spi.model.ServiceDefinition;
 import org.apache.tuscany.spi.wire.OutboundWire;
 
-import org.apache.tuscany.core.component.AutowireComponent;
 import org.apache.tuscany.core.implementation.PojoConfiguration;
 import org.apache.tuscany.core.implementation.system.component.SystemAtomicComponentImpl;
 import org.apache.tuscany.core.implementation.system.model.SystemImplementation;
@@ -68,8 +67,6 @@
     public AtomicComponent build(CompositeComponent parent,
                                     ComponentDefinition<SystemImplementation> definition,
                                     DeploymentContext deploymentContext) throws BuilderConfigException {
-        assert parent instanceof AutowireComponent : "Parent must implement " + AutowireComponent.class.getName();
-        AutowireComponent autowireContext = (AutowireComponent) parent;
         PojoComponentType<ServiceDefinition, JavaMappedReference, JavaMappedProperty<?>> componentType =
             definition.getImplementation().getComponentType();
 
@@ -122,13 +119,13 @@
             component.addInboundWire(wire);
         }
         // handle references
-        processReferences(definition, componentType.getReferences(), autowireContext, component);
+        processReferences(definition, componentType.getReferences(), parent, component);
         // FIXME we need a way to build configuration references from autowires in the loader to eliminate this eval
         for (ReferenceDefinition reference : componentType.getReferences().values()) {
             if (reference.isAutowire()) {
                 Class interfaze = reference.getServiceContract().getInterfaceClass();
                 OutboundWire wire =
-                    new SystemOutboundAutowire(reference.getName(), interfaze, autowireContext, reference.isRequired());
+                    new SystemOutboundAutowire(reference.getName(), interfaze, parent, reference.isRequired());
                 component.addOutboundWire(wire);
             }
         }
@@ -137,7 +134,7 @@
 
     private void processReferences(ComponentDefinition<SystemImplementation> definition,
                                    Map<String, JavaMappedReference> references,
-                                   AutowireComponent autowireContext,
+                                   CompositeComponent parent,
                                    SystemAtomicComponentImpl component) {
         // no proxies needed for system components
         for (ReferenceTarget target : definition.getReferenceTargets().values()) {
@@ -147,7 +144,7 @@
             OutboundWire wire;
             if (referenceDefiniton.isAutowire()) {
                 boolean required = referenceDefiniton.isRequired();
-                wire = new SystemOutboundAutowire(referenceName, interfaze, autowireContext, required);
+                wire = new SystemOutboundAutowire(referenceName, interfaze, parent, required);
             } else {
                 //FIXME support multiplicity!
                 assert target.getTargets().size() == 1 : "Multiplicity not yet implemented";

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemCompositeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemCompositeBuilder.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemCompositeBuilder.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemCompositeBuilder.java Sun Oct  1 23:58:18 2006
@@ -35,9 +35,7 @@
 import org.apache.tuscany.spi.model.Implementation;
 import org.apache.tuscany.spi.model.ServiceDefinition;
 
-import org.apache.tuscany.core.component.AutowireComponent;
-import org.apache.tuscany.core.implementation.system.component.SystemCompositeComponent;
-import org.apache.tuscany.core.implementation.system.component.SystemCompositeComponentImpl;
+import org.apache.tuscany.core.implementation.composite.CompositeComponentImpl;
 import org.apache.tuscany.core.implementation.system.model.SystemCompositeImplementation;
 
 /**
@@ -96,9 +94,7 @@
 
         // create the composite component
         String name = componentDefinition.getName();
-        AutowireComponent autowireContext = getAutowireComponent(parent);
-        SystemCompositeComponent component =
-            new SystemCompositeComponentImpl(name, parent, autowireContext, connector, null);
+        CompositeComponent component = new CompositeComponentImpl(name, parent, connector, null);
         for (ComponentDefinition<? extends Implementation> childComponentDefinition : allComponents) {
             component.register(builderRegistry.build(component, childComponentDefinition, deploymentContext));
         }
@@ -109,17 +105,4 @@
         return component;
     }
 
-    /**
-     * Return the autowire component for the supplied parent
-     *
-     * @param parent the parent for a new context
-     * @return the autowire context for the parent or null if it does not support autowire
-     */
-    protected AutowireComponent getAutowireComponent(CompositeComponent parent) {
-        if (parent instanceof AutowireComponent) {
-            return (AutowireComponent) parent;
-        } else {
-            return null;
-        }
-    }
 }

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemAtomicComponentImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemAtomicComponentImpl.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemAtomicComponentImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemAtomicComponentImpl.java Sun Oct  1 23:58:18 2006
@@ -20,6 +20,7 @@
 
 import org.apache.tuscany.spi.ObjectFactory;
 import org.apache.tuscany.spi.component.TargetException;
+import org.apache.tuscany.spi.component.SystemAtomicComponent;
 import org.apache.tuscany.spi.model.Operation;
 import org.apache.tuscany.spi.model.Scope;
 import org.apache.tuscany.spi.wire.RuntimeWire;
@@ -51,6 +52,10 @@
 
     public TargetInvoker createTargetInvoker(String targetName, Operation operation) {
         return null;
+    }
+
+    public boolean isSystem() {
+        return true;
     }
 
     protected ObjectFactory<?> createWireFactory(RuntimeWire wire) {

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemReferenceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemReferenceImpl.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemReferenceImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemReferenceImpl.java Sun Oct  1 23:58:18 2006
@@ -108,4 +108,8 @@
     public void setBindingServiceContract(ServiceContract<?> serviceContract) {
         throw new UnsupportedOperationException();
     }
+
+    public boolean isSystem() {
+        return true;
+    }
 }

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemServiceImpl.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemServiceImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemServiceImpl.java Sun Oct  1 23:58:18 2006
@@ -87,12 +87,16 @@
     public TargetInvoker createCallbackTargetInvoker(ServiceContract contract, Operation operation) {
         throw new UnsupportedOperationException();
     }
-    
+
     public ServiceContract<?> getBindingServiceContract() {
         throw new UnsupportedOperationException();
     }
 
     public void setBindingServiceContract(ServiceContract<?> serviceContract) {
         throw new UnsupportedOperationException();
-    }    
+    }
+
+    public boolean isSystem() {
+        return true;
+    }
 }

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemSingletonAtomicComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemSingletonAtomicComponent.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemSingletonAtomicComponent.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemSingletonAtomicComponent.java Sun Oct  1 23:58:18 2006
@@ -27,6 +27,7 @@
 import org.apache.tuscany.spi.component.AbstractSCAObject;
 import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.component.TargetException;
+import org.apache.tuscany.spi.component.SystemAtomicComponent;
 import org.apache.tuscany.spi.model.Operation;
 import org.apache.tuscany.spi.model.Scope;
 import org.apache.tuscany.spi.wire.InboundWire;
@@ -122,5 +123,9 @@
 
     public TargetInvoker createAsyncTargetInvoker(InboundWire wire, Operation operation) {
         return null;
+    }
+
+    public boolean isSystem() {
+        return true;
     }
 }

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/wire/SystemOutboundAutowire.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/wire/SystemOutboundAutowire.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/wire/SystemOutboundAutowire.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/wire/SystemOutboundAutowire.java Sun Oct  1 23:58:18 2006
@@ -22,6 +22,7 @@
 import java.util.Map;
 
 import org.apache.tuscany.spi.QualifiedName;
+import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.component.SCAObject;
 import org.apache.tuscany.spi.component.TargetException;
 import org.apache.tuscany.spi.component.TargetNotFoundException;
@@ -32,7 +33,6 @@
 import org.apache.tuscany.spi.wire.InboundWire;
 import org.apache.tuscany.spi.wire.OutboundInvocationChain;
 
-import org.apache.tuscany.core.component.AutowireComponent;
 import org.apache.tuscany.core.wire.OutboundAutowire;
 
 /**
@@ -43,11 +43,11 @@
 public class SystemOutboundAutowire implements OutboundAutowire, SystemOutboundWire {
     private String referenceName;
     private ServiceContract serviceContract;
-    private AutowireComponent component;
+    private CompositeComponent component;
     private final boolean required;
     private SCAObject container;
 
-    public SystemOutboundAutowire(String referenceName, Class<?> interfaze, AutowireComponent component,
+    public SystemOutboundAutowire(String referenceName, Class<?> interfaze, CompositeComponent component,
                                   boolean required) {
 
         this.referenceName = referenceName;
@@ -81,7 +81,7 @@
 
     public Object getTargetService() throws TargetException {
         Class<?> interfaze = serviceContract.getInterfaceClass();
-        Object service = component.resolveInstance(interfaze);
+        Object service = component.resolveSystemInstance(interfaze);
         if (service == null && required) {
             TargetNotFoundException e = new TargetNotFoundException("Autowire target not found");
             e.setIdentifier(interfaze.getName());
@@ -145,7 +145,7 @@
     public SCAObject getContainer() {
         return container;
     }
-    
+
     public void setContainer(SCAObject container) {
         this.container = container;
     }

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/launcher/LauncherImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/launcher/LauncherImpl.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/launcher/LauncherImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/launcher/LauncherImpl.java Sun Oct  1 23:58:18 2006
@@ -24,10 +24,6 @@
 
 import org.osoa.sca.CompositeContext;
 
-import org.apache.tuscany.core.bootstrap.Bootstrapper;
-import org.apache.tuscany.core.bootstrap.DefaultBootstrapper;
-import org.apache.tuscany.core.implementation.system.component.SystemCompositeComponent;
-import org.apache.tuscany.core.implementation.system.model.SystemCompositeImplementation;
 import org.apache.tuscany.spi.bootstrap.ComponentNames;
 import org.apache.tuscany.spi.bootstrap.RuntimeComponent;
 import org.apache.tuscany.spi.component.CompositeComponent;
@@ -35,10 +31,14 @@
 import org.apache.tuscany.spi.loader.LoaderException;
 import org.apache.tuscany.spi.model.ComponentDefinition;
 import org.apache.tuscany.spi.model.CompositeImplementation;
-import org.apache.tuscany.host.MonitorFactory;
+
+import org.apache.tuscany.api.TuscanyException;
+import org.apache.tuscany.core.bootstrap.Bootstrapper;
+import org.apache.tuscany.core.bootstrap.DefaultBootstrapper;
+import org.apache.tuscany.core.implementation.system.model.SystemCompositeImplementation;
 import org.apache.tuscany.host.Launcher;
+import org.apache.tuscany.host.MonitorFactory;
 import org.apache.tuscany.host.RuntimeInfo;
-import org.apache.tuscany.api.TuscanyException;
 
 /**
  * Basic launcher implementation.
@@ -81,7 +81,7 @@
         runtime.start(); // REVIEW: is this redundant w/ the composite.start() call below?
 
         // initialize the runtime info
-        SystemCompositeComponent parent = (SystemCompositeComponent) runtime.getSystemComponent();
+        CompositeComponent parent = runtime.getSystemComponent();
         RuntimeInfo runtimeInfo = new LauncherRuntimeInfo(getInstallDirectory(), getApplicationRootDirectory());
         parent.registerJavaObject("RuntimeInfo", RuntimeInfo.class, runtimeInfo);
 
@@ -102,7 +102,7 @@
         // start the system
         composite.start();
 
-        deployer = (Deployer) composite.getChild("deployer").getServiceInstance();
+        deployer = (Deployer) composite.getSystemChild("deployer").getServiceInstance();
     }
 
     /**
@@ -201,7 +201,7 @@
         if (property != null) {
             return new File(property);
         }
-        
+
         // TODO: TUSCANY-648, should this throw an exception if it not running from a jar?
 
         URL url = getClass().getResource("LauncherImpl.class");

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java Sun Oct  1 23:58:18 2006
@@ -20,18 +20,18 @@
 
 import java.net.URL;
 
-import org.apache.tuscany.core.implementation.system.component.SystemCompositeComponent;
-import org.apache.tuscany.core.implementation.system.model.SystemCompositeImplementation;
-import org.apache.tuscany.core.monitor.NullMonitorFactory;
-import org.apache.tuscany.host.RuntimeInfo;
-import org.apache.tuscany.host.MonitorFactory;
-import org.apache.tuscany.host.runtime.TuscanyRuntime;
 import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.deployer.Deployer;
 import org.apache.tuscany.spi.loader.LoaderException;
 import org.apache.tuscany.spi.model.ComponentDefinition;
 import org.apache.tuscany.spi.model.CompositeImplementation;
 
+import org.apache.tuscany.core.implementation.system.model.SystemCompositeImplementation;
+import org.apache.tuscany.core.monitor.NullMonitorFactory;
+import org.apache.tuscany.host.MonitorFactory;
+import org.apache.tuscany.host.RuntimeInfo;
+import org.apache.tuscany.host.runtime.TuscanyRuntime;
+
 /**
  * @version $Rev$ $Date$
  */
@@ -104,11 +104,11 @@
         return new NullMonitorFactory();
     }
 
-    protected SystemCompositeComponent deploySystemScdl(Deployer deployer,
-                                                        SystemCompositeComponent parent,
-                                                        String name,
-                                                        URL systemScdl,
-                                                        ClassLoader systemClassLoader)
+    protected CompositeComponent deploySystemScdl(Deployer deployer,
+                                                  CompositeComponent parent,
+                                                  String name,
+                                                  URL systemScdl,
+                                                  ClassLoader systemClassLoader)
         throws LoaderException {
 
         SystemCompositeImplementation impl = new SystemCompositeImplementation();
@@ -117,7 +117,7 @@
         ComponentDefinition<SystemCompositeImplementation> definition =
             new ComponentDefinition<SystemCompositeImplementation>(name, impl);
 
-        return (SystemCompositeComponent) deployer.deploy(parent, definition);
+        return (CompositeComponent) deployer.deploy(parent, definition);
     }
 
     protected CompositeComponent deployApplicationScdl(Deployer deployer,



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org