Modified: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/builder/SystemComponentContextBuilder.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/builder/SystemComponentContextBuilder.java?rev=385747&r1=385746&r2=385747&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/builder/SystemComponentContextBuilder.java
 (original)
+++ 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/builder/SystemComponentContextBuilder.java
 Mon Mar 13 22:12:53 2006
@@ -18,12 +18,13 @@
 import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Set;
 import java.util.Map;
+import java.util.Set;
 
 import org.apache.tuscany.common.monitor.MonitorFactory;
 import org.apache.tuscany.core.builder.BuilderConfigException;
 import org.apache.tuscany.core.builder.BuilderException;
+import org.apache.tuscany.core.builder.ContextResolver;
 import org.apache.tuscany.core.builder.NoAccessorException;
 import org.apache.tuscany.core.builder.ObjectFactory;
 import org.apache.tuscany.core.builder.RuntimeConfigurationBuilder;
@@ -37,13 +38,14 @@
 import org.apache.tuscany.core.context.QualifiedName;
 import org.apache.tuscany.core.context.SystemAggregateContext;
 import org.apache.tuscany.core.context.impl.AggregateContextImpl;
+import org.apache.tuscany.core.injection.ContextObjectFactory;
 import org.apache.tuscany.core.injection.EventInvoker;
 import org.apache.tuscany.core.injection.FactoryInitException;
 import org.apache.tuscany.core.injection.FieldInjector;
 import org.apache.tuscany.core.injection.Injector;
 import org.apache.tuscany.core.injection.MethodEventInvoker;
 import org.apache.tuscany.core.injection.MethodInjector;
-import org.apache.tuscany.core.injection.ReferenceTargetFactory;
+import org.apache.tuscany.core.injection.NonProxiedTargetFactory;
 import org.apache.tuscany.core.injection.SDOObjectFactory;
 import org.apache.tuscany.core.injection.SingletonObjectFactory;
 import org.apache.tuscany.core.runtime.RuntimeContext;
@@ -52,6 +54,7 @@
 import org.apache.tuscany.core.system.assembly.SystemImplementation;
 import 
org.apache.tuscany.core.system.config.SystemComponentRuntimeConfiguration;
 import org.apache.tuscany.core.system.context.SystemAggregateContextImpl;
+import org.apache.tuscany.core.system.injection.AutowireObjectFactory;
 import org.apache.tuscany.model.assembly.AssemblyModelObject;
 import org.apache.tuscany.model.assembly.Component;
 import org.apache.tuscany.model.assembly.ComponentImplementation;
@@ -76,7 +79,7 @@
  * simple and aggregate component types may be injected and autowired.
  * <p>
  * Note that system component references are not proxied.
- *
+ * 
  * @version $Rev$ $Date$
  */
 public class SystemComponentContextBuilder implements 
RuntimeConfigurationBuilder<AggregateContext> {
@@ -92,7 +95,7 @@
     // Methods
     // ----------------------------------
 
-    public void build(AssemblyModelObject modelObject, AggregateContext 
parentContext) throws BuilderException {
+    public void build(AssemblyModelObject modelObject) throws BuilderException 
{
         if (!(modelObject instanceof Component)) {
             return;
         }
@@ -100,7 +103,6 @@
 
         Class implClass = null;
         Scope scope = null;
-
         // Get the component implementation
         ComponentImplementation componentImplementation = 
component.getComponentImplementation();
         if (componentImplementation instanceof SystemImplementation && 
componentImplementation.getRuntimeConfiguration() == null) {
@@ -154,11 +156,15 @@
         }
         Set<Field> fields;
         Set<Method> methods;
+        SystemComponentRuntimeConfiguration config = null;
         try {
             fields = JavaIntrospectionHelper.getAllFields(implClass);
             methods = JavaIntrospectionHelper.getAllUniqueMethods(implClass);
             String name = component.getName();
             Constructor ctr = implClass.getConstructor((Class[]) null);
+            config = new SystemComponentRuntimeConfiguration(name, 
JavaIntrospectionHelper.getDefaultConstructor(implClass),
+                    scope);
+            ContextObjectFactory contextFactory = new 
ContextObjectFactory(config);
 
             List<Injector> injectors = new ArrayList();
 
@@ -177,7 +183,7 @@
                 Map<String, ConfiguredReference> configuredReferences = 
component.getConfiguredReferences();
                 if (configuredReferences != null) {
                     for (ConfiguredReference reference : 
configuredReferences.values()) {
-                        Injector injector = createReferenceInjector(reference, 
fields, methods, parentContext);
+                        Injector injector = createReferenceInjector(reference, 
fields, methods, config);
                         injectors.add(injector);
                     }
                 }
@@ -195,27 +201,27 @@
                 }
                 Context context = field.getAnnotation(Context.class);
                 if (context != null) {
-                    Injector injector = new FieldInjector(field, new 
SingletonObjectFactory(parentContext));
+                    Injector injector = new FieldInjector(field, 
contextFactory);
                     injectors.add(injector);
                 }
                 ParentContext parentField = 
field.getAnnotation(ParentContext.class);
                 if (parentField != null) {
-                    if (!(parentContext instanceof AggregateContext)) {
-                        BuilderConfigException e = new 
BuilderConfigException("Component must be a child of");
-                        e.setIdentifier(AggregateContext.class.getName());
-                        throw e;
-                    }
-                    Injector injector = new FieldInjector(field, new 
SingletonObjectFactory((parentContext)));
+//                    if (!(parentContext instanceof AggregateContext)) {
+//                        BuilderConfigException e = new 
BuilderConfigException("Component must be a child of");
+//                        e.setIdentifier(AggregateContext.class.getName());
+//                        throw e;
+//                    }
+                    Injector injector = new FieldInjector(field, 
contextFactory);
                     injectors.add(injector);
                 }
                 Autowire autowire = field.getAnnotation(Autowire.class);
                 if (autowire != null) {
-                    if (!(parentContext instanceof AutowireContext)) {
-                        BuilderConfigException e = new 
BuilderConfigException("Parent context must implement");
-                        e.setIdentifier(AutowireContext.class.getName());
-                        throw e;
-                    }
-                    AutowireContext ctx = (AutowireContext) parentContext;
+//                    if (!(parentContext instanceof AutowireContext)) {
+//                        BuilderConfigException e = new 
BuilderConfigException("Parent context must implement");
+//                        e.setIdentifier(AutowireContext.class.getName());
+//                        throw e;
+//                    }
+//                    AutowireContext ctx = (AutowireContext) parentContext;
                     // for system aggregate context types, only allow autowire 
of certain types, otherwise we have a
                     // chicken-and-egg problem
                     if 
(SystemAggregateContext.class.isAssignableFrom(implClass)
@@ -228,13 +234,13 @@
                         throw e;
                     }
 
-                    Object o = ctx.resolveInstance(field.getType());
-                    if (autowire.required() && o == null) {
-                        BuilderConfigException e = new 
BuilderConfigException("No autowire found for field");
-                        e.setIdentifier(field.getName());
-                        throw e;
-                    }
-                    Injector injector = new FieldInjector(field, new 
SingletonObjectFactory(o));
+//                    Object o = ctx.resolveInstance(field.getType());
+//                    if (autowire.required() && o == null) {
+//                        BuilderConfigException e = new 
BuilderConfigException("No autowire found for field");
+//                        e.setIdentifier(field.getName());
+//                        throw e;
+//                    }
+                    Injector injector = new FieldInjector(field, new 
AutowireObjectFactory(field.getType(),autowire.required(),config));
                     injectors.add(injector);
                 }
             }
@@ -257,32 +263,32 @@
                 }
                 Context context = method.getAnnotation(Context.class);
                 if (context != null) {
-                    Injector injector = new MethodInjector(method, new 
SingletonObjectFactory(parentContext));
+                    Injector injector = new MethodInjector(method, 
contextFactory);
                     injectors.add(injector);
                 }
                 ParentContext parentMethod = 
method.getAnnotation(ParentContext.class);
                 if (parentMethod != null) {
-                    if (!(parentContext instanceof AggregateContext)) {
-                        BuilderConfigException e = new 
BuilderConfigException("Component must be a child of ");
-                        e.setIdentifier(AggregateContext.class.getName());
-                        throw e;
-                    }
-                    Injector injector = new MethodInjector(method, new 
SingletonObjectFactory((parentContext)));
+//                    if (!(parentContext instanceof AggregateContext)) {
+//                        BuilderConfigException e = new 
BuilderConfigException("Component must be a child of ");
+//                        e.setIdentifier(AggregateContext.class.getName());
+//                        throw e;
+//                    }
+                    Injector injector = new MethodInjector(method, 
contextFactory);
                     injectors.add(injector);
                 }
                 Autowire autowire = method.getAnnotation(Autowire.class);
                 if (autowire != null) {
-                    if (!(parentContext instanceof AutowireContext)) {
-                        BuilderConfigException e = new 
BuilderConfigException("Parent context must implement)");
-                        e.setIdentifier(AutowireContext.class.getName());
-                        throw e;
-                    }
+//                    if (!(parentContext instanceof AutowireContext)) {
+//                        BuilderConfigException e = new 
BuilderConfigException("Parent context must implement)");
+//                        e.setIdentifier(AutowireContext.class.getName());
+//                        throw e;
+//                    }
                     if (method.getParameterTypes() == null || 
method.getParameterTypes().length != 1) {
                         BuilderConfigException e = new 
BuilderConfigException("Autowire setter methods must take one parameter");
                         e.setIdentifier(method.getName());
                         throw e;
                     }
-                    AutowireContext ctx = (AutowireContext) parentContext;
+//                    AutowireContext ctx = (AutowireContext) parentContext;
                     Class paramType = method.getParameterTypes()[0];
                     // for system aggregate context types, only allow autowire 
of certain types, otherwise we have a
                     // chicken-and-egg problem
@@ -293,24 +299,30 @@
                         e.setIdentifier(paramType.getName());
                         throw e;
                     }
-                    Object o = ctx.resolveInstance(paramType);
-                    if (autowire.required() && o == null) {
-                        BuilderConfigException e = new 
BuilderConfigException("No autowire found for method ");
-                        e.setIdentifier(method.getName());
-                        throw e;
-                    }
+//                    Object o = ctx.resolveInstance(paramType);
+//                    if (autowire.required() && o == null) {
+//                        BuilderConfigException e = new 
BuilderConfigException("No autowire found for method ");
+//                        e.setIdentifier(method.getName());
+//                        throw e;
+//                    }
 
-                    Injector injector = new MethodInjector(method, new 
SingletonObjectFactory(o));
+                    Injector injector = new MethodInjector(method, new 
AutowireObjectFactory(paramType,autowire.required(), config));
                     injectors.add(injector);
                 }
             }
             // decorate the logical model
-            SystemComponentRuntimeConfiguration config = new 
SystemComponentRuntimeConfiguration(name, JavaIntrospectionHelper
-                    .getDefaultConstructor(implClass), injectors, eagerInit, 
initInvoker, destroyInvoker, scope);
+            config.setSetters(injectors);
+            config.setEagerInit(eagerInit);
+            config.setInitInvoker(initInvoker);
+            config.setDestroyInvoker(destroyInvoker);
+
+            // SystemComponentRuntimeConfiguration config = new 
SystemComponentRuntimeConfiguration(name,
+            // JavaIntrospectionHelper
+            // .getDefaultConstructor(implClass), injectors, eagerInit, 
initInvoker, destroyInvoker, scope);
             componentImplementation.setRuntimeConfiguration(config);
         } catch (BuilderConfigException e) {
             e.addContextName(component.getName());
-            e.addContextName(parentContext.getName());
+            // e.addContextName(parentContext.getName());
             throw e;
         } catch (NoSuchMethodException e) {
             BuilderConfigException ce = new BuilderConfigException("Class does 
not have a no-arg constructor", e);
@@ -319,7 +331,7 @@
         } catch (FactoryInitException e) {
             BuilderConfigException ce = new BuilderConfigException("Error 
building component", e);
             ce.addContextName(component.getName());
-            ce.addContextName(parentContext.getName());
+            // ce.addContextName(parentContext.getName());
             throw ce;
         }
     }
@@ -377,7 +389,7 @@
      * injecting them into the reference
      */
     private Injector createReferenceInjector(ConfiguredReference reference, 
Set<Field> fields, Set<Method> methods,
-            AggregateContext parentContext) {
+            ContextResolver resolver) {
 
         List<ObjectFactory> objectFactories = new ArrayList();
         String refName = reference.getReference().getName();
@@ -387,7 +399,7 @@
             String targetSerivceName = 
configuredService.getService().getName();
             QualifiedName qName = new QualifiedName(targetCompName + 
QualifiedName.NAME_SEPARATOR + targetSerivceName);
             Class interfaze = 
reference.getReference().getServiceContract().getInterface();
-            objectFactories.add(new ReferenceTargetFactory(configuredService, 
parentContext));
+            objectFactories.add(new NonProxiedTargetFactory(configuredService, 
resolver));
         }
         boolean multiplicity = reference.getReference().getMultiplicity() == 
Multiplicity.ONE_N
                 || reference.getReference().getMultiplicity() == 
Multiplicity.ZERO_N;

Modified: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/builder/SystemEntryPointBuilder.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/builder/SystemEntryPointBuilder.java?rev=385747&r1=385746&r2=385747&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/builder/SystemEntryPointBuilder.java
 (original)
+++ 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/builder/SystemEntryPointBuilder.java
 Mon Mar 13 22:12:53 2006
@@ -14,13 +14,14 @@
 package org.apache.tuscany.core.system.builder;
 
 import org.apache.tuscany.core.builder.BuilderException;
+import org.apache.tuscany.core.builder.BuilderInitException;
 import org.apache.tuscany.core.builder.RuntimeConfigurationBuilder;
 import org.apache.tuscany.core.context.AggregateContext;
 import org.apache.tuscany.core.injection.FactoryInitException;
-import org.apache.tuscany.core.injection.ReferenceTargetFactory;
 import org.apache.tuscany.core.system.assembly.SystemBinding;
 import 
org.apache.tuscany.core.system.config.SystemEntryPointRuntimeConfiguration;
 import org.apache.tuscany.model.assembly.AssemblyModelObject;
+import org.apache.tuscany.model.assembly.ConfiguredService;
 import org.apache.tuscany.model.assembly.EntryPoint;
 
 /**
@@ -41,7 +42,7 @@
     // Methods
     // ----------------------------------
 
-    public void build(AssemblyModelObject modelObject, AggregateContext 
context) throws BuilderException {
+    public void build(AssemblyModelObject modelObject) throws BuilderException 
{
         if (!(modelObject instanceof EntryPoint)) {
             return;
         }
@@ -51,13 +52,25 @@
             return;
         }
         try {
-            Class type = 
entryPoint.getConfiguredReference().getReference().getServiceContract().getInterface();
+            // Class type = 
entryPoint.getConfiguredReference().getReference().getServiceContract().getInterface();
+
+            String targetName = null;
+            ConfiguredService targetService = 
entryPoint.getConfiguredReference().getTargetConfiguredServices().get(0);
+            if (targetService.getAggregatePart() == null) {
+                // FIXME not correct
+                if (targetService.getService() == null) {
+                    BuilderInitException e = new BuilderInitException("No 
target service specified on ");
+                    e.setIdentifier(entryPoint.getName());
+                }
+                targetName = targetService.getService().getName();
+            } else {
+                targetName = targetService.getAggregatePart().getName();
+            }
             SystemEntryPointRuntimeConfiguration config = new 
SystemEntryPointRuntimeConfiguration(entryPoint.getName(),
-                    new 
ReferenceTargetFactory(entryPoint.getConfiguredReference().getTargetConfiguredServices().get(0),
 context));
+                    targetName);
             
entryPoint.getConfiguredReference().setRuntimeConfiguration(config);
         } catch (FactoryInitException e) {
             e.addContextName(entryPoint.getName());
-            e.addContextName(context.getName());
             throw e;
         }
     }

Modified: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/builder/SystemExternalServiceBuilder.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/builder/SystemExternalServiceBuilder.java?rev=385747&r1=385746&r2=385747&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/builder/SystemExternalServiceBuilder.java
 (original)
+++ 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/builder/SystemExternalServiceBuilder.java
 Mon Mar 13 22:12:53 2006
@@ -17,12 +17,10 @@
 import org.apache.tuscany.core.builder.BuilderException;
 import org.apache.tuscany.core.builder.RuntimeConfigurationBuilder;
 import org.apache.tuscany.core.context.AggregateContext;
-import org.apache.tuscany.core.context.AutowireContext;
 import org.apache.tuscany.core.injection.InterAggregateReferenceFactory;
-import org.apache.tuscany.core.injection.ReferenceTargetFactory;
 import org.apache.tuscany.core.system.assembly.SystemBinding;
 import 
org.apache.tuscany.core.system.config.SystemExternalServiceRuntimeConfiguration;
-import org.apache.tuscany.core.system.injection.AutowireFactory;
+import org.apache.tuscany.core.system.injection.AutowireObjectFactory;
 import org.apache.tuscany.model.assembly.AssemblyModelObject;
 import org.apache.tuscany.model.assembly.ExternalService;
 
@@ -43,7 +41,7 @@
     // Methods
     // ----------------------------------
 
-    public void build(AssemblyModelObject modelObject, AggregateContext 
context) throws BuilderException {
+    public void build(AssemblyModelObject modelObject) throws BuilderException 
{
         if (!(modelObject instanceof ExternalService)) {
             return;
         }
@@ -58,7 +56,7 @@
         SystemBinding binding = 
(SystemBinding)externalService.getBindings().get(0);
         if (binding.getTargetName() != null) {
             SystemExternalServiceRuntimeConfiguration config = new 
SystemExternalServiceRuntimeConfiguration(externalService
-                    .getName(), new 
InterAggregateReferenceFactory(binding.getTargetName(), context));
+                    .getName(), new 
InterAggregateReferenceFactory(binding.getTargetName()));
             
externalService.getConfiguredService().setRuntimeConfiguration(config);
         } else if 
(externalService.getConfiguredService().getService().getServiceContract().getInterface()
 != null) {
             // autowire
@@ -67,11 +65,10 @@
                 BuilderException e = new BuilderConfigException("Interface 
type not specified");
                 e.setIdentifier(externalService.getName());
                 e.addContextName(externalService.getName());
-                e.addContextName(context.getName());
                 throw e;
             }
             SystemExternalServiceRuntimeConfiguration config = new 
SystemExternalServiceRuntimeConfiguration(externalService
-                    .getName(), new AutowireFactory(claz, (AutowireContext) 
context));
+                    .getName(), new AutowireObjectFactory(claz)); 
             
externalService.getConfiguredService().setRuntimeConfiguration(config);
         }
     }

Modified: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/config/SystemComponentRuntimeConfiguration.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/config/SystemComponentRuntimeConfiguration.java?rev=385747&r1=385746&r2=385747&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/config/SystemComponentRuntimeConfiguration.java
 (original)
+++ 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/config/SystemComponentRuntimeConfiguration.java
 Mon Mar 13 22:12:53 2006
@@ -5,6 +5,7 @@
 import java.util.Map;
 
 import org.apache.tuscany.core.builder.ContextCreationException;
+import org.apache.tuscany.core.builder.ContextResolver;
 import org.apache.tuscany.core.builder.RuntimeConfiguration;
 import org.apache.tuscany.core.context.AggregateContext;
 import org.apache.tuscany.core.context.InstanceContext;
@@ -20,11 +21,13 @@
  * 
  * @version $Rev$ $Date$
  */
-public class SystemComponentRuntimeConfiguration implements 
RuntimeConfiguration<InstanceContext> {
+public class SystemComponentRuntimeConfiguration implements 
RuntimeConfiguration<InstanceContext>, ContextResolver {
 
     // the component name as configured in the hosting module
     private String name;
 
+    private AggregateContext parentContext;
+    
     // the implementation type constructor
     private Constructor ctr;
 
@@ -83,6 +86,10 @@
         stateless = (scope == Scope.INSTANCE);
     }
 
+    public SystemComponentRuntimeConfiguration(String name, Constructor ctr, 
Scope scope) {
+        this(name, ctr, null, false, null, null, scope);
+    }
+
     // ----------------------------------
     // Methods
     // ----------------------------------
@@ -108,11 +115,6 @@
         }
     }
     
-    // -- Proxy
-
-    public void prepare() {
-    }
-
     public void addTargetProxyFactory(String serviceName, ProxyFactory 
factory) {
         throw new UnsupportedOperationException();
     }
@@ -131,6 +133,30 @@
 
     public List<ProxyFactory> getSourceProxyFactories() {
         return null;
+    }
+
+    public void setSetters(List<Injector> setters) {
+        this.setters = setters;
+    }
+
+    public void setEagerInit(boolean val) {
+        eagerInit = val;
+    }
+
+    public void setInitInvoker(EventInvoker invoker) {
+        init = invoker;
+    }
+
+    public void setDestroyInvoker(EventInvoker invoker) {
+        destroy = invoker;
+    }
+
+    public void prepare(AggregateContext parent) {
+        parentContext = parent;
+    }
+
+    public AggregateContext getCurrentContext() {
+        return parentContext;
     }
 
 }

Modified: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/config/SystemEntryPointRuntimeConfiguration.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/config/SystemEntryPointRuntimeConfiguration.java?rev=385747&r1=385746&r2=385747&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/config/SystemEntryPointRuntimeConfiguration.java
 (original)
+++ 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/config/SystemEntryPointRuntimeConfiguration.java
 Mon Mar 13 22:12:53 2006
@@ -17,8 +17,9 @@
 import java.util.Map;
 
 import org.apache.tuscany.core.builder.ContextCreationException;
-import org.apache.tuscany.core.builder.ObjectFactory;
+import org.apache.tuscany.core.builder.ContextResolver;
 import org.apache.tuscany.core.builder.RuntimeConfiguration;
+import org.apache.tuscany.core.context.AggregateContext;
 import org.apache.tuscany.core.context.EntryPointContext;
 import org.apache.tuscany.core.invocation.spi.ProxyFactory;
 import org.apache.tuscany.core.system.context.SystemEntryPointContext;
@@ -29,21 +30,22 @@
  * 
  * @version $Rev$ $Date$
  */
-public class SystemEntryPointRuntimeConfiguration implements 
RuntimeConfiguration<EntryPointContext> {
+public class SystemEntryPointRuntimeConfiguration implements 
RuntimeConfiguration<EntryPointContext>, ContextResolver {
 
     // the name of the entry point
     private String name;
 
-    // the factory for returning a reference to the implementation instance of 
the component exposed by the entry point
-    private ObjectFactory factory;
+    private AggregateContext parentContext;
+
+    private String targetName;
 
     // ----------------------------------
     // Constructors
     // ----------------------------------
 
-    public SystemEntryPointRuntimeConfiguration(String name, ObjectFactory 
factory) {
+    public SystemEntryPointRuntimeConfiguration(String name, String 
targetName) {
         this.name = name;
-        this.factory = factory;
+        this.targetName = targetName;
     }
 
     // ----------------------------------
@@ -51,7 +53,7 @@
     // ----------------------------------
 
     public EntryPointContext createInstanceContext() throws 
ContextCreationException {
-        return new SystemEntryPointContext(name, factory);
+        return new SystemEntryPointContext(name, targetName, this);
     }
 
     public Scope getScope() {
@@ -62,10 +64,6 @@
         return name;
     }
 
-    // -- Proxy
-    public void prepare() {
-    }
-
     public void addTargetProxyFactory(String serviceName, ProxyFactory 
pFactory) {
         throw new UnsupportedOperationException();
     }
@@ -84,6 +82,14 @@
 
     public List<ProxyFactory> getSourceProxyFactories() {
         return null;
+    }
+
+    public void prepare(AggregateContext parent) {
+        this.parentContext = parent;
+    }
+
+    public AggregateContext getCurrentContext() {
+        return parentContext;
     }
 
 }

Modified: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/config/SystemExternalServiceRuntimeConfiguration.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/config/SystemExternalServiceRuntimeConfiguration.java?rev=385747&r1=385746&r2=385747&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/config/SystemExternalServiceRuntimeConfiguration.java
 (original)
+++ 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/config/SystemExternalServiceRuntimeConfiguration.java
 Mon Mar 13 22:12:53 2006
@@ -17,11 +17,16 @@
 import java.util.Map;
 
 import org.apache.tuscany.core.builder.ContextCreationException;
+import org.apache.tuscany.core.builder.ContextResolver;
 import org.apache.tuscany.core.builder.ObjectFactory;
 import org.apache.tuscany.core.builder.RuntimeConfiguration;
+import org.apache.tuscany.core.context.AggregateContext;
 import org.apache.tuscany.core.context.ExternalServiceContext;
+import org.apache.tuscany.core.injection.InterAggregateReferenceFactory;
 import org.apache.tuscany.core.invocation.spi.ProxyFactory;
 import org.apache.tuscany.core.system.context.SystemExternalServiceContext;
+import org.apache.tuscany.core.system.injection.AutowireFactory;
+import org.apache.tuscany.core.system.injection.AutowireObjectFactory;
 import org.apache.tuscany.model.assembly.Scope;
 
 /**
@@ -32,14 +37,17 @@
  * 
  * @version $Rev$ $Date$
  */
-public class SystemExternalServiceRuntimeConfiguration implements 
RuntimeConfiguration<ExternalServiceContext> {
+public class SystemExternalServiceRuntimeConfiguration implements 
RuntimeConfiguration<ExternalServiceContext>, ContextResolver {
 
     // the name of the external service
     private String name;
 
-    // the factory for returning a reference to the implementation instance of 
the component represented by the external service
+    // the factory for returning a reference to the implementation instance of 
the component represented by the external
+    // service
     private ObjectFactory factory;
 
+    private AggregateContext parentContext;
+
     // ----------------------------------
     // Constructors
     // ----------------------------------
@@ -67,10 +75,6 @@
         return new SystemExternalServiceContext(name, factory);
     }
 
-    // -- Proxy
-    public void prepare() {
-    }
-
     public void addTargetProxyFactory(String serviceName, ProxyFactory 
pFactory) {
         throw new UnsupportedOperationException();
     }
@@ -93,6 +97,19 @@
 
     public List<ProxyFactory> getSourceProxyFactories() {
         return null;
+    }
+
+    public void prepare(AggregateContext parent) {
+        parentContext = parent;
+        if (factory instanceof InterAggregateReferenceFactory){
+            ((InterAggregateReferenceFactory)factory).setContextResolver(this);
+        }else if (factory instanceof AutowireObjectFactory){
+            ((AutowireObjectFactory)factory).setContextResolver(this);
+        }
+    }
+
+    public AggregateContext getCurrentContext() {
+        return parentContext;
     }
 
 }

Modified: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/config/SystemObjectRuntimeConfiguration.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/config/SystemObjectRuntimeConfiguration.java?rev=385747&r1=385746&r2=385747&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/config/SystemObjectRuntimeConfiguration.java
 (original)
+++ 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/config/SystemObjectRuntimeConfiguration.java
 Mon Mar 13 22:12:53 2006
@@ -23,6 +23,7 @@
 import org.apache.tuscany.core.builder.ContextCreationException;
 import org.apache.tuscany.core.builder.ObjectFactory;
 import org.apache.tuscany.core.builder.RuntimeConfiguration;
+import org.apache.tuscany.core.context.AggregateContext;
 import org.apache.tuscany.core.context.Context;
 import org.apache.tuscany.core.injection.SingletonObjectFactory;
 import org.apache.tuscany.core.invocation.spi.ProxyFactory;
@@ -63,10 +64,6 @@
         return name;
     }
 
-    public void prepare() {
-        throw new UnsupportedOperationException();
-    }
-
     public void addTargetProxyFactory(String serviceName, ProxyFactory 
factory) {
         throw new UnsupportedOperationException();
     }
@@ -89,5 +86,8 @@
 
     public List<ProxyFactory> getSourceProxyFactories() {
         throw new UnsupportedOperationException();
+    }
+
+    public void prepare(AggregateContext parent) {
     }
 }

Modified: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/context/SystemAggregateContextImpl.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/context/SystemAggregateContextImpl.java?rev=385747&r1=385746&r2=385747&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/context/SystemAggregateContextImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/context/SystemAggregateContextImpl.java
 Mon Mar 13 22:12:53 2006
@@ -59,15 +59,15 @@
 import org.apache.tuscany.core.invocation.jdk.JDKProxyFactoryFactory;
 import org.apache.tuscany.core.invocation.spi.ProxyFactory;
 import org.apache.tuscany.core.invocation.spi.ProxyFactoryFactory;
+import org.apache.tuscany.core.loader.StAXLoaderRegistry;
 import org.apache.tuscany.core.message.MessageFactory;
 import org.apache.tuscany.core.message.impl.MessageFactoryImpl;
 import org.apache.tuscany.core.runtime.RuntimeContext;
 import org.apache.tuscany.core.system.annotation.Autowire;
 import org.apache.tuscany.core.system.annotation.ParentContext;
-import org.apache.tuscany.core.system.assembly.SystemBinding;
 import org.apache.tuscany.core.system.assembly.SystemAssemblyFactory;
+import org.apache.tuscany.core.system.assembly.SystemBinding;
 import org.apache.tuscany.core.system.config.SystemObjectRuntimeConfiguration;
-import org.apache.tuscany.core.loader.StAXLoaderRegistry;
 import org.apache.tuscany.model.assembly.Aggregate;
 import org.apache.tuscany.model.assembly.AggregatePart;
 import org.apache.tuscany.model.assembly.Component;
@@ -85,7 +85,7 @@
  * according to their exposed interface. A system context may contain child 
aggregate contexts but an entry point in a
  * child context will only be outwardly accessible if there is an entry point 
that exposes it configured in the
  * top-level system context.
- *
+ * 
  * @version $Rev$ $Date$
  */
 public class SystemAggregateContextImpl extends AbstractContext implements 
SystemAggregateContext {
@@ -161,15 +161,8 @@
         this.assemblyFactory = null;
     }
 
-    public SystemAggregateContextImpl(
-            String name,
-            AggregateContext parent,
-            AutowireContext autowire,
-            ScopeStrategy strategy,
-            EventContext ctx,
-            ConfigurationContext configCtx,
-            MonitorFactory factory,
-            StAXLoaderRegistry loaderRegistry,
+    public SystemAggregateContextImpl(String name, AggregateContext parent, 
AutowireContext autowire, ScopeStrategy strategy,
+            EventContext ctx, ConfigurationContext configCtx, MonitorFactory 
factory, StAXLoaderRegistry loaderRegistry,
             SystemAssemblyFactory assemblyFactory) {
         super(name);
         this.parentContext = parent;
@@ -425,6 +418,7 @@
     }
 
     protected void registerConfiguration(RuntimeConfiguration<InstanceContext> 
configuration) throws ConfigurationException {
+        configuration.prepare(this);
         if (lifecycleState == RUNNING) {
             if (scopeIndex.get(configuration.getName()) != null) {
                 throw new DuplicateNameException(configuration.getName());
@@ -591,7 +585,11 @@
         } else if (ProxyFactoryFactory.class.equals(instanceInterface)) {
             return instanceInterface.cast(proxyFactoryFactory);
         } else if (StAXLoaderRegistry.class.equals(instanceInterface)) {
-            return instanceInterface.cast(loaderRegistry);
+            if (loaderRegistry != null) {
+                return instanceInterface.cast(loaderRegistry);
+            } else {
+                return 
instanceInterface.cast(autowireContext.resolveInstance(StAXLoaderRegistry.class));
+            }
         } else if 
(instanceInterface.isAssignableFrom(SystemAssemblyFactory.class)) {
             return instanceInterface.cast(assemblyFactory);
         }

Modified: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/context/SystemEntryPointContext.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/context/SystemEntryPointContext.java?rev=385747&r1=385746&r2=385747&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/context/SystemEntryPointContext.java
 (original)
+++ 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/context/SystemEntryPointContext.java
 Mon Mar 13 22:12:53 2006
@@ -13,11 +13,12 @@
  */
 package org.apache.tuscany.core.system.context;
 
-import org.apache.tuscany.core.builder.ObjectFactory;
+import org.apache.tuscany.core.builder.ContextResolver;
 import org.apache.tuscany.core.context.AbstractContext;
-import org.apache.tuscany.core.context.QualifiedName;
 import org.apache.tuscany.core.context.CoreRuntimeException;
 import org.apache.tuscany.core.context.EntryPointContext;
+import org.apache.tuscany.core.context.InstanceContext;
+import org.apache.tuscany.core.context.QualifiedName;
 import org.apache.tuscany.core.context.TargetException;
 
 /**
@@ -28,20 +29,23 @@
  */
 public class SystemEntryPointContext extends AbstractContext implements 
EntryPointContext {
 
-    // responsible for resolving the component implementation instance exposed 
by the entry point
-    private ObjectFactory factory;
-
     // a reference to the component's implementation instance exposed by the 
entry point
     private Object cachedInstance;
 
+    private ContextResolver resolver;
+    
+    private QualifiedName targetName;
+    
     // ----------------------------------
     // Constructors
     // ----------------------------------
 
-    public SystemEntryPointContext(String name, ObjectFactory factory) {
+    public SystemEntryPointContext(String name, String targetName, 
ContextResolver resolver) {
         super(name);
-        assert (factory != null) : "Object factory was null";
-        this.factory = factory;
+        assert (resolver != null) : "Context resolver was null";
+        assert (targetName != null) : "Target name was null";
+        this.resolver = resolver;
+        this.targetName = new QualifiedName(targetName);
     }
 
     // ----------------------------------
@@ -55,7 +59,11 @@
     public Object getInstance(QualifiedName qName, boolean notify) throws 
TargetException {
         try {
             if (cachedInstance == null) {
-                cachedInstance = factory.getInstance();
+                InstanceContext ctx = 
resolver.getCurrentContext().getContext(targetName.getPartName());
+                if (ctx == null){
+                    return null;
+                }
+                cachedInstance = ctx.getInstance(targetName);
             }
             return cachedInstance;
         } catch (TargetException e) {
@@ -72,11 +80,11 @@
         lifecycleState = STOPPED;
     }
 
-    public Object getImplementationInstance() throws TargetException{
+    public Object getImplementationInstance() throws TargetException {
         return getInstance(null);
     }
 
-    public Object getImplementationInstance(boolean notify) throws 
TargetException{
-        return getInstance(null,notify);
+    public Object getImplementationInstance(boolean notify) throws 
TargetException {
+        return getInstance(null, notify);
     }
 }

Modified: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/injection/AutowireFactory.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/injection/AutowireFactory.java?rev=385747&r1=385746&r2=385747&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/injection/AutowireFactory.java
 (original)
+++ 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/injection/AutowireFactory.java
 Mon Mar 13 22:12:53 2006
@@ -13,18 +13,20 @@
  */
 package org.apache.tuscany.core.system.injection;
 
+import org.apache.tuscany.core.builder.ContextResolver;
 import org.apache.tuscany.core.builder.ObjectFactory;
 import org.apache.tuscany.core.context.AutowireContext;
 import org.apache.tuscany.core.injection.ObjectCreationException;
 
 /**
  * Implementation of ObjectFactory that returns an instance by resolving 
against an AutowireContext.
- *
+ * @deprecated
  * @version $Rev$ $Date$
+ * 
  */
 public class AutowireFactory<T> implements ObjectFactory<T> {
 
-    private AutowireContext autoWireContext;
+    private ContextResolver resolver;
 
     private Class<T> implementationType;
 
@@ -34,15 +36,17 @@
      * @param implementationType the type of service required
      * @param autoWireContext    the context to wire against
      */
-    public AutowireFactory(Class<T> implementationType, AutowireContext 
autoWireContext) {
+    public AutowireFactory(Class<T> implementationType) {
         assert (implementationType != null) : "Implementation type was null";
-        assert (autoWireContext != null) : "Autowire context was null";
         this.implementationType = implementationType;
-        this.autoWireContext = autoWireContext;
     }
 
+    public void setContextResolver(ContextResolver resolver){
+        this.resolver = resolver;
+    }
+    
     public T getInstance() throws ObjectCreationException {
         // todo what about required? should this just return null?
-        return autoWireContext.resolveInstance(implementationType);
+        return 
((AutowireContext)resolver.getCurrentContext()).resolveInstance(implementationType);
     }
 }

Added: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/injection/AutowireObjectFactory.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/injection/AutowireObjectFactory.java?rev=385747&view=auto
==============================================================================
--- 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/injection/AutowireObjectFactory.java
 (added)
+++ 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/injection/AutowireObjectFactory.java
 Mon Mar 13 22:12:53 2006
@@ -0,0 +1,85 @@
+/**
+ * 
+ * Copyright 2005 The Apache Software Foundation or its licensors, as 
applicable.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the
+ * License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on an "AS IS"
+ * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 
implied. See the License for the specific language
+ * governing permissions and limitations under the License.
+ */
+package org.apache.tuscany.core.system.injection;
+
+import org.apache.tuscany.core.builder.ContextResolver;
+import org.apache.tuscany.core.builder.ObjectFactory;
+import org.apache.tuscany.core.context.AggregateContext;
+import org.apache.tuscany.core.context.AutowireContext;
+import org.apache.tuscany.core.context.AutowireResolutionException;
+import org.apache.tuscany.core.injection.FactoryInitException;
+import org.apache.tuscany.core.injection.ObjectCreationException;
+
+/**
+ * Implementation of ObjectFactory that returns an instance by resolving 
against an AutowireContext.
+ * 
+ * @version $Rev: 385139 $ $Date: 2006-03-11 11:03:11 -0800 (Sat, 11 Mar 2006) 
$
+ */
+public class AutowireObjectFactory<T> implements ObjectFactory<T> {
+
+    private ContextResolver resolver;
+
+    private Class interfaze;
+
+    private boolean required;
+
+    /**
+     * 
+     * @throws FactoryInitException
+     */
+    public AutowireObjectFactory(Class<T> implementationType, boolean 
required, ContextResolver resolver)
+            throws FactoryInitException {
+        assert (implementationType != null) : "Target interface was null";
+        assert (resolver != null) : "Context resolver was null";
+        this.resolver = resolver;
+        this.required = required;
+        interfaze = implementationType;
+    }
+
+    /**
+     * Creates a new factory that resolves against the cuurent context using 
the given implementation type
+     * 
+     * @throws FactoryInitException
+     */
+    public AutowireObjectFactory(Class<T> implementationType) throws 
FactoryInitException {
+        this(implementationType, true, null);
+    }
+
+    public T getInstance() throws ObjectCreationException {
+        AggregateContext parent = resolver.getCurrentContext();
+        if (parent == null) {
+            return null;// FIXME semantic here means required is not followed
+        }
+        if (parent != null && !(parent instanceof AutowireContext)) {
+            ObjectCreationException e = new ObjectCreationException("Parent 
does not implement "
+                    + AutowireContext.class.getName());
+            e.setIdentifier(parent.getName());
+            throw e;
+        }
+        AutowireContext ctx = (AutowireContext) parent;
+        if (ctx == null && required) {
+            AutowireResolutionException e = new 
AutowireResolutionException("Required autowire not found");
+            e.setIdentifier(interfaze.getName());
+            throw e;
+        } else if (ctx == null) {
+            return null;
+        }
+        return (T) ctx.resolveInstance(interfaze);
+    }
+
+    public void setContextResolver(ContextResolver resolver) {
+        this.resolver = resolver;
+    }
+
+}

Modified: 
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/integration/IntraAggregateWireIntegrationTestCase.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/integration/IntraAggregateWireIntegrationTestCase.java?rev=385747&r1=385746&r2=385747&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/integration/IntraAggregateWireIntegrationTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/integration/IntraAggregateWireIntegrationTestCase.java
 Mon Mar 13 22:12:53 2006
@@ -22,8 +22,17 @@
 import org.apache.tuscany.core.mock.component.Source;
 import org.apache.tuscany.core.mock.component.Target;
 import org.apache.tuscany.core.runtime.RuntimeContext;
+import org.apache.tuscany.core.system.assembly.SystemAssemblyFactory;
+import org.apache.tuscany.core.system.assembly.SystemImplementation;
+import org.apache.tuscany.core.system.assembly.impl.SystemAssemblyFactoryImpl;
+import org.apache.tuscany.core.system.context.SystemAggregateContextImpl;
 import org.apache.tuscany.core.config.ConfigurationException;
+import org.apache.tuscany.model.assembly.Component;
+import org.apache.tuscany.model.assembly.Module;
+import org.apache.tuscany.model.assembly.ModuleComponent;
 import org.apache.tuscany.model.assembly.Scope;
+import org.apache.tuscany.model.assembly.Service;
+import org.apache.tuscany.model.types.java.JavaServiceContract;
 
 /**
  * Tests intra-aggregate system wires are properly constructed in the runtime
@@ -32,6 +41,50 @@
  */
 public class IntraAggregateWireIntegrationTestCase extends TestCase {
 
+  
+    public void testWireConstruction2() throws Exception {
+        RuntimeContext runtime = MockFactory.createCoreRuntime();
+        ModuleComponent moduleComponent = 
createSystemAggregateComponent("test.system");
+        Module module = 
MockFactory.createSystemModuleWithWiredComponents(Scope.MODULE, Scope.MODULE);
+        moduleComponent.setModuleImplementation(module);
+        runtime.getSystemContext().registerModelObject(moduleComponent);
+        AggregateContext context = (AggregateContext) 
runtime.getSystemContext().getContext("test.system").getImplementationInstance();
+        context.fireEvent(EventContext.MODULE_START, null);
+        context.registerModelObject(module);
+        Source source = (Source) 
context.getContext("source").getImplementationInstance();
+        Assert.assertNotNull(source);
+        Target targetRef = source.getTarget();
+        Assert.assertNotNull(targetRef);
+        Target target = (Target) 
context.getContext("target").getImplementationInstance();
+        Assert.assertSame(target, targetRef);
+        Source source2 = (Source) 
context.getContext("source").getImplementationInstance();
+        Assert.assertSame(target, source2.getTarget());
+        context.fireEvent(EventContext.MODULE_STOP, null);
+        context.stop();
+    }
+
+    private static SystemAssemblyFactory systemFactory = new 
SystemAssemblyFactoryImpl();
+
+    /**
+     * Creates an aggregate component with the given name
+     */
+    public static ModuleComponent createSystemAggregateComponent(String name) {
+        ModuleComponent sc = systemFactory.createModuleComponent();
+        SystemImplementation impl = systemFactory.createSystemImplementation();
+        impl.setImplementationClass(SystemAggregateContextImpl.class);
+        sc.setComponentImplementation(impl);
+        Service s = systemFactory.createService();
+        JavaServiceContract ji = systemFactory.createJavaServiceContract();
+        s.setServiceContract(ji);
+        ji.setScope(Scope.AGGREGATE);
+        impl.setComponentType(systemFactory.createComponentType());
+        impl.getComponentType().getServices().add(s);
+        sc.setName(name);
+        sc.setComponentImplementation(impl);
+        return sc;
+    }
+    
+    
     public void testWireConstruction() throws ConfigurationException {
         RuntimeContext runtime = MockFactory.createCoreRuntime();
         
runtime.getSystemContext().registerModelObject(MockFactory.createSystemAggregateComponent("test.system"));

Modified: 
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/mock/MockConfigContext.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/mock/MockConfigContext.java?rev=385747&r1=385746&r2=385747&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/mock/MockConfigContext.java
 (original)
+++ 
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/mock/MockConfigContext.java
 Mon Mar 13 22:12:53 2006
@@ -27,7 +27,7 @@
 import org.apache.tuscany.model.assembly.Extensible;
 
 /**
- *  A mock configuration context
+ * A mock configuration context
  * 
  * @version $Rev$ $Date$
  */
@@ -36,18 +36,19 @@
     private List<RuntimeConfigurationBuilder> builders = new ArrayList();
 
     public MockConfigContext(List<RuntimeConfigurationBuilder> builders) {
-        this.builders=builders;
+        this.builders = builders;
     }
 
     public void configure(Extensible model) throws ConfigurationException {
     }
 
     public void build(AggregateContext parent, Extensible model) throws 
BuilderConfigException {
-        AssemblyVisitor visitor = new AssemblyVisitor(parent, builders);
+        AssemblyVisitor visitor = new AssemblyVisitor(builders);
         visitor.start(model);
     }
 
-    public void wire(ProxyFactory sourceFactory, ProxyFactory targetFactory, 
Class targetType, boolean downScope, ScopeContext targetScopeContext) throws 
BuilderConfigException {
+    public void wire(ProxyFactory sourceFactory, ProxyFactory targetFactory, 
Class targetType, boolean downScope,
+            ScopeContext targetScopeContext) throws BuilderConfigException {
     }
 
     public void wire(ProxyFactory targetFactory, Class targetType, 
ScopeContext targetScopeContext) throws BuilderConfigException {

Modified: 
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/system/builder/SystemComponentContextBuilderTestCase.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/system/builder/SystemComponentContextBuilderTestCase.java?rev=385747&r1=385746&r2=385747&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/system/builder/SystemComponentContextBuilderTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/system/builder/SystemComponentContextBuilderTestCase.java
 Mon Mar 13 22:12:53 2006
@@ -24,7 +24,6 @@
 import org.apache.tuscany.core.context.impl.EventContextImpl;
 import org.apache.tuscany.core.context.scope.DefaultScopeStrategy;
 import org.apache.tuscany.core.mock.MockConfigContext;
-import org.apache.tuscany.core.mock.MockFactory;
 import org.apache.tuscany.core.system.assembly.SystemAssemblyFactory;
 import org.apache.tuscany.core.system.assembly.impl.SystemAssemblyFactoryImpl;
 import org.apache.tuscany.model.assembly.Component;
@@ -101,9 +100,10 @@
         cProp.setProperty(prop);
         component.getConfiguredProperties().add(cProp);
 
-        builder.build(component, createContext());
+        builder.build(component);
         RuntimeConfiguration config = (RuntimeConfiguration) 
component.getComponentImplementation().getRuntimeConfiguration();
         Assert.assertNotNull(config);
+        config.prepare(createContext());
         InstanceContext ctx = (InstanceContext) config.createInstanceContext();
 
         ctx.start();

Modified: 
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/system/builder/impl/AssemblyVisitorTestCase.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/system/builder/impl/AssemblyVisitorTestCase.java?rev=385747&r1=385746&r2=385747&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/system/builder/impl/AssemblyVisitorTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/system/builder/impl/AssemblyVisitorTestCase.java
 Mon Mar 13 22:12:53 2006
@@ -22,7 +22,6 @@
 import org.apache.tuscany.core.builder.BuilderException;
 import org.apache.tuscany.core.builder.RuntimeConfigurationBuilder;
 import org.apache.tuscany.core.builder.impl.AssemblyVisitor;
-import org.apache.tuscany.core.context.Context;
 import org.apache.tuscany.core.mock.component.ModuleScopeSystemComponent;
 import org.apache.tuscany.core.system.assembly.SystemAssemblyFactory;
 import org.apache.tuscany.core.system.assembly.SystemBinding;
@@ -31,6 +30,7 @@
 import org.apache.tuscany.model.assembly.AssemblyModelContext;
 import org.apache.tuscany.model.assembly.AssemblyModelObject;
 import org.apache.tuscany.model.assembly.Component;
+import org.apache.tuscany.model.assembly.ComponentType;
 import org.apache.tuscany.model.assembly.ConfiguredPort;
 import org.apache.tuscany.model.assembly.ConfiguredReference;
 import org.apache.tuscany.model.assembly.ConfiguredService;
@@ -39,7 +39,6 @@
 import org.apache.tuscany.model.assembly.Reference;
 import org.apache.tuscany.model.assembly.RuntimeConfigurationHolder;
 import org.apache.tuscany.model.assembly.Service;
-import org.apache.tuscany.model.assembly.ComponentType;
 import org.apache.tuscany.model.assembly.impl.AssemblyModelContextImpl;
 import org.apache.tuscany.model.types.java.JavaServiceContract;
 
@@ -111,7 +110,7 @@
 
         List<RuntimeConfigurationBuilder> builders = new ArrayList();
         builders.add(new TestBuilder());
-        AssemblyVisitor visitor = new AssemblyVisitor(null, builders);
+        AssemblyVisitor visitor = new AssemblyVisitor(builders);
         module.initialize(assemblyContext);
         visitor.start(module);
 
@@ -126,7 +125,7 @@
     }
 
     private static class TestBuilder implements RuntimeConfigurationBuilder {
-        public void build(AssemblyModelObject model, Context context) throws 
BuilderException {
+        public void build(AssemblyModelObject model) throws BuilderException {
             if (model instanceof ConfiguredPort) {
                 ((ConfiguredPort) model).setProxyFactory(MARKER);
             }

Modified: 
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/system/context/TestBuilder.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/system/context/TestBuilder.java?rev=385747&r1=385746&r2=385747&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/system/context/TestBuilder.java
 (original)
+++ 
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/system/context/TestBuilder.java
 Mon Mar 13 22:12:53 2006
@@ -3,8 +3,8 @@
 import org.apache.tuscany.core.builder.BuilderException;
 import org.apache.tuscany.core.builder.RuntimeConfigurationBuilder;
 import org.apache.tuscany.core.context.AggregateContext;
-import org.apache.tuscany.core.system.annotation.Autowire;
 import org.apache.tuscany.core.runtime.RuntimeContext;
+import org.apache.tuscany.core.system.annotation.Autowire;
 import org.apache.tuscany.model.assembly.AssemblyModelObject;
 import org.osoa.sca.annotations.Init;
 import org.osoa.sca.annotations.Scope;
@@ -26,7 +26,7 @@
         runtime.addBuilder(this);
     }
 
-    public void build(AssemblyModelObject object, AggregateContext context) 
throws BuilderException {
+    public void build(AssemblyModelObject object) throws BuilderException {
         invoked = true;
     }
 


Reply via email to