Author: jmarino
Date: Tue Feb 28 23:00:40 2006
New Revision: 381935

URL: http://svn.apache.org/viewcvs?rev=381935&view=rev
Log:
fix bug not autowiring type AutowireContext in system aggregate contexts; mock 
runtime creation

Modified:
    
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/EntryPointToJavaTestCase.java
    
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockFactory.java
    
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/context/SystemAggregateContextImpl.java

Modified: 
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/EntryPointToJavaTestCase.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/EntryPointToJavaTestCase.java?rev=381935&r1=381934&r2=381935&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/EntryPointToJavaTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/EntryPointToJavaTestCase.java
 Tue Feb 28 23:00:40 2006
@@ -15,7 +15,6 @@
 
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Method;
-import java.util.ArrayList;
 import java.util.List;
 
 import junit.framework.Assert;
@@ -41,9 +40,6 @@
 import org.apache.tuscany.core.message.impl.MessageFactoryImpl;
 import org.apache.tuscany.core.runtime.RuntimeContext;
 import org.apache.tuscany.core.runtime.RuntimeContextImpl;
-import org.apache.tuscany.core.system.builder.SystemComponentContextBuilder;
-import org.apache.tuscany.core.system.builder.SystemEntryPointBuilder;
-import org.apache.tuscany.core.system.builder.SystemExternalServiceBuilder;
 
 /**
  * 
@@ -62,10 +58,8 @@
         MessageFactory msgFactory = new MessageFactoryImpl();
         ProxyFactoryFactory proxyFactoryFactory = new JDKProxyFactoryFactory();
 
-        List<RuntimeConfigurationBuilder> builders = new ArrayList();
-        builders.add((new SystemComponentContextBuilder()));
-        builders.add(new SystemEntryPointBuilder());
-        builders.add(new SystemExternalServiceBuilder());
+        List<RuntimeConfigurationBuilder> builders = 
MockFactory.createSystemBuilders();
+
 
         JavaComponentContextBuilder javaBuilder = new 
JavaComponentContextBuilder();
         javaBuilder.setMessageFactory(msgFactory);

Modified: 
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockFactory.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockFactory.java?rev=381935&r1=381934&r2=381935&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockFactory.java
 (original)
+++ 
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockFactory.java
 Tue Feb 28 23:00:40 2006
@@ -27,6 +27,8 @@
 import org.apache.tuscany.container.java.assembly.impl.JavaAssemblyFactoryImpl;
 import org.apache.tuscany.container.java.assembly.mock.HelloWorldImpl;
 import org.apache.tuscany.container.java.assembly.mock.HelloWorldService;
+import org.apache.tuscany.container.java.builder.JavaComponentContextBuilder;
+import org.apache.tuscany.container.java.builder.JavaTargetWireBuilder;
 import org.apache.tuscany.container.java.context.JavaComponentContext;
 import org.apache.tuscany.container.java.mock.binding.foo.FooBinding;
 import org.apache.tuscany.container.java.mock.components.GenericComponent;
@@ -35,9 +37,12 @@
 import org.apache.tuscany.core.builder.BuilderException;
 import org.apache.tuscany.core.builder.RuntimeConfiguration;
 import org.apache.tuscany.core.builder.RuntimeConfigurationBuilder;
+import org.apache.tuscany.core.config.ConfigurationException;
 import org.apache.tuscany.core.config.JavaIntrospectionHelper;
 import org.apache.tuscany.core.context.AggregateContext;
+import org.apache.tuscany.core.context.EventContext;
 import org.apache.tuscany.core.context.InstanceContext;
+import org.apache.tuscany.core.context.SystemAggregateContext;
 import org.apache.tuscany.core.context.impl.AggregateContextImpl;
 import org.apache.tuscany.core.injection.EventInvoker;
 import org.apache.tuscany.core.injection.FieldInjector;
@@ -46,6 +51,8 @@
 import org.apache.tuscany.core.injection.MethodInjector;
 import org.apache.tuscany.core.injection.PojoObjectFactory;
 import org.apache.tuscany.core.injection.SingletonObjectFactory;
+import org.apache.tuscany.core.runtime.RuntimeContext;
+import org.apache.tuscany.core.runtime.RuntimeContextImpl;
 import org.apache.tuscany.core.system.assembly.SystemAssemblyFactory;
 import org.apache.tuscany.core.system.assembly.SystemBinding;
 import org.apache.tuscany.core.system.assembly.SystemImplementation;
@@ -53,6 +60,7 @@
 import org.apache.tuscany.core.system.builder.SystemComponentContextBuilder;
 import org.apache.tuscany.core.system.builder.SystemEntryPointBuilder;
 import org.apache.tuscany.core.system.builder.SystemExternalServiceBuilder;
+import org.apache.tuscany.core.system.context.SystemAggregateContextImpl;
 import org.apache.tuscany.model.assembly.AggregatePart;
 import org.apache.tuscany.model.assembly.AssemblyModelContext;
 import org.apache.tuscany.model.assembly.Component;
@@ -109,6 +117,31 @@
     }
 
     /**
+     * Creates a system component of the given type with the given name and 
scope
+     */
+    public static Component createSystemComponent(String name, Class type, 
Scope scope) {
+
+        Component sc = null;
+        if (AggregateContext.class.isAssignableFrom(type)) {
+            sc = systemFactory.createModuleComponent();
+        } else {
+            sc = systemFactory.createSimpleComponent();
+        }
+        SystemImplementation impl = systemFactory.createSystemImplementation();
+        impl.setImplementationClass(type);
+        sc.setComponentImplementation(impl);
+        Service s = systemFactory.createService();
+        JavaServiceContract ji = systemFactory.createJavaServiceContract();
+        s.setServiceContract(ji);
+        ji.setScope(scope);
+        impl.setComponentType(systemFactory.createComponentType());
+        impl.getComponentType().getServices().add(s);
+        sc.setName(name);
+        sc.setComponentImplementation(impl);
+        return sc;
+    }
+
+    /**
      * Creates an aggregate component with the given name
      */
     public static Component createAggregateComponent(String name) {
@@ -128,6 +161,25 @@
     }
 
     /**
+     * Creates a system aggregate component with the given name
+     */
+    public static Component createSystemAggregateComponent(String name) {
+        Component sc = 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;
+    }
+
+    /**
      * Creates an external service configured with the 'Foo' test binding
      */
     public static ExternalService createFooBindingExternalService(String name, 
Class interfaz) {
@@ -436,4 +488,28 @@
         return context;
     }
 
+    /**
+     * Returns a collection of bootstrap and Java runtime configuration 
builders
+     */
+    public static List<RuntimeConfigurationBuilder> 
createJavaAndSystemBuilders() {
+        List<RuntimeConfigurationBuilder> builders = createSystemBuilders();
+
+        return builders;
+    }
+
+    /**
+     * Creates a default [EMAIL PROTECTED] RuntimeContext} configured with 
support for Java component implementations
+     * 
+     * @throws ConfigurationException
+     */
+    public static RuntimeContext createJavaRuntime() throws 
ConfigurationException {
+        RuntimeContext runtime = new RuntimeContextImpl(null, null, 
MockFactory.createSystemBuilders(), null);
+        runtime.start();
+        
runtime.getSystemContext().registerModelObject(createSystemAggregateComponent("tuscany.system.child"));
+        SystemAggregateContext ctx = (SystemAggregateContext) 
runtime.getSystemContext().getContext("tuscany.system.child");
+        ctx.registerModelObject(createSystemComponent("java.runtime.builder", 
JavaComponentContextBuilder.class, Scope.MODULE));
+        ctx.registerModelObject(createSystemComponent("java.wire.builder", 
JavaTargetWireBuilder.class, Scope.MODULE));
+        ctx.fireEvent(EventContext.MODULE_START,null);
+        return runtime;
+    }
 }

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=381935&r1=381934&r2=381935&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
 Tue Feb 28 23:00:40 2006
@@ -147,7 +147,7 @@
     public SystemAggregateContextImpl() {
         super();
         scopeIndex = new ConcurrentHashMap();
-        //FIXME the assembly factory should be injected here
+        // FIXME the assembly factory should be injected here
         module = new AssemblyFactoryImpl().createModule();
         eventContext = new EventContextImpl();
         scopeStrategy = new SystemScopeStrategy();
@@ -163,7 +163,7 @@
         this.configurationContext = configCtx;
         this.monitorFactory = factory;
         scopeIndex = new ConcurrentHashMap();
-        //FIXME the assembly factory should be injected here
+        // FIXME the assembly factory should be injected here
         module = new AssemblyFactoryImpl().createModule();
     }
 
@@ -373,7 +373,8 @@
                 throw e;
             }
             if (configuration == null) {
-                ConfigurationException e = new ConfigurationException("Runtime 
configuration not set");
+                ConfigurationException e = new ConfigurationException(
+                        "Runtime configuration not set. Ensure a runtime 
configuration builder is registered for the component implementation type");
                 if (model instanceof AggregatePart) {
                     e.setIdentifier(((AggregatePart) model).getName());
                 }
@@ -438,7 +439,7 @@
         return scope.getContext(componentName);
 
     }
-    
+
     /**
      * @see org.apache.tuscany.core.context.AggregateContext#getAggregate()
      */
@@ -536,10 +537,11 @@
     // ----------------------------------
     // AutowireContext methods
     // ----------------------------------
-    
-    //FIXME These should be removed and configured
-    private static final MessageFactory messageFactory=new 
MessageFactoryImpl();
-    private static final ProxyFactoryFactory proxyFactoryFactory=new 
JDKProxyFactoryFactory(); 
+
+    // FIXME These should be removed and configured
+    private static final MessageFactory messageFactory = new 
MessageFactoryImpl();
+
+    private static final ProxyFactoryFactory proxyFactoryFactory = new 
JDKProxyFactoryFactory();
 
     public <T> T resolveInstance(Class<T> instanceInterface) throws 
AutowireResolutionException {
         if (RuntimeContext.class.equals(instanceInterface)) {
@@ -549,6 +551,8 @@
         } else if (ConfigurationContext.class.equals(instanceInterface)) {
             return instanceInterface.cast(this);
         } else if (AggregateContext.class.equals(instanceInterface)) {
+            return instanceInterface.cast(this);
+        } else if (AutowireContext.class.equals(instanceInterface)) {
             return instanceInterface.cast(this);
         } else if (MessageFactory.class.equals(instanceInterface)) {
             return instanceInterface.cast(messageFactory);


Reply via email to