Author: jmarino
Date: Tue Feb 28 19:11:22 2006
New Revision: 381885

URL: http://svn.apache.org/viewcvs?rev=381885&view=rev
Log:
consolidation and cleanup of mock java factory

Removed:
    
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/TestContextFactory.java
Modified:
    
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/context/BadPojoTestCase.java
    
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/context/PojoLifecycleTestCase.java
    
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/JavaBuilderContextIntegrationTestCase.java
    
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/integration/binding/JavaToExternalServiceTestCase.java
    
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockFactory.java
    
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/scopes/AggregateScopeTestCase.java

Modified: 
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/context/BadPojoTestCase.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/context/BadPojoTestCase.java?rev=381885&r1=381884&r2=381885&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/context/BadPojoTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/context/BadPojoTestCase.java
 Tue Feb 28 19:11:22 2006
@@ -18,7 +18,7 @@
 
 import junit.framework.TestCase;
 
-import org.apache.tuscany.container.java.mock.TestContextFactory;
+import org.apache.tuscany.container.java.mock.MockFactory;
 import org.apache.tuscany.container.java.mock.components.BadContextPojo;
 import org.apache.tuscany.container.java.mock.components.BadNamePojo;
 import org.apache.tuscany.core.context.AggregateContext;
@@ -37,7 +37,7 @@
         AggregateContext mc = new AggregateContextImpl();
         mc.setName("mc");
         try {
-            JavaComponentContext context = 
TestContextFactory.createPojoContext("BadNamePojo", BadNamePojo.class,
+            JavaComponentContext context = 
MockFactory.createPojoContext("BadNamePojo", BadNamePojo.class,
                     Scope.MODULE, mc);
         } catch (NoSuchMethodException e) {
             if (e.getMessage().indexOf("@ComponentName") < 0) {
@@ -57,7 +57,7 @@
         AggregateContext mc = new AggregateContextImpl();
         mc.setName("mc");
         try {
-            JavaComponentContext context = 
TestContextFactory.createPojoContext("BadContextPojo", BadContextPojo.class,
+            JavaComponentContext context = 
MockFactory.createPojoContext("BadContextPojo", BadContextPojo.class,
                     Scope.MODULE, mc);
         } catch (NoSuchMethodException e) {
             if (e.getMessage().indexOf("@Context") < 0) {

Modified: 
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/context/PojoLifecycleTestCase.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/context/PojoLifecycleTestCase.java?rev=381885&r1=381884&r2=381885&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/context/PojoLifecycleTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/context/PojoLifecycleTestCase.java
 Tue Feb 28 19:11:22 2006
@@ -19,7 +19,7 @@
 import junit.framework.Assert;
 import junit.framework.TestCase;
 
-import org.apache.tuscany.container.java.mock.TestContextFactory;
+import org.apache.tuscany.container.java.mock.MockFactory;
 import 
org.apache.tuscany.container.java.mock.components.ModuleScopeInitOnlyComponent;
 import org.apache.tuscany.core.context.AggregateContext;
 import org.apache.tuscany.core.context.impl.AggregateContextImpl;
@@ -35,7 +35,7 @@
     public void testComponentNameSet() throws Exception {
         AggregateContext mc = new AggregateContextImpl();
         mc.setName("mc");
-        JavaComponentContext context = 
TestContextFactory.createPojoContext("TestServiceInit",
+        JavaComponentContext context = 
MockFactory.createPojoContext("TestServiceInit",
                 ModuleScopeInitOnlyComponent.class, Scope.MODULE, mc);
         context.start();
         ModuleScopeInitOnlyComponent instance = (ModuleScopeInitOnlyComponent) 
context.getInstance(null);
@@ -47,7 +47,7 @@
     public void testModuleContextSet() throws Exception {
         AggregateContext mc = new AggregateContextImpl();
         mc.setName("mc");
-        JavaComponentContext context = 
TestContextFactory.createPojoContext("TestServiceInit",
+        JavaComponentContext context = 
MockFactory.createPojoContext("TestServiceInit",
                 ModuleScopeInitOnlyComponent.class, Scope.MODULE, mc);
         context.start();
         ModuleScopeInitOnlyComponent instance = (ModuleScopeInitOnlyComponent) 
context.getInstance(null);
@@ -59,7 +59,7 @@
     public void testInit() throws Exception {
         AggregateContext mc = new AggregateContextImpl();
         mc.setName("mc");
-        JavaComponentContext context = 
TestContextFactory.createPojoContext("TestServiceInit",
+        JavaComponentContext context = 
MockFactory.createPojoContext("TestServiceInit",
                 ModuleScopeInitOnlyComponent.class, Scope.MODULE, mc);
         context.start();
         ModuleScopeInitOnlyComponent instance = (ModuleScopeInitOnlyComponent) 
context.getInstance(null);

Modified: 
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/JavaBuilderContextIntegrationTestCase.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/JavaBuilderContextIntegrationTestCase.java?rev=381885&r1=381884&r2=381885&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/JavaBuilderContextIntegrationTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/JavaBuilderContextIntegrationTestCase.java
 Tue Feb 28 19:11:22 2006
@@ -32,7 +32,6 @@
 import org.apache.tuscany.core.builder.impl.HierarchicalBuilder;
 import org.apache.tuscany.core.context.AggregateContext;
 import org.apache.tuscany.core.context.EventContext;
-import org.apache.tuscany.core.context.impl.AggregateContextImpl;
 import org.apache.tuscany.core.invocation.jdk.JDKProxyFactoryFactory;
 import org.apache.tuscany.core.invocation.spi.ProxyFactoryFactory;
 import org.apache.tuscany.core.message.MessageFactory;
@@ -90,7 +89,7 @@
         runtime.addBuilder(new JavaTargetWireBuilder());
         runtime.start();
         runtime.getRootContext().registerModelObject(
-                MockFactory.createSystemComponent("test.module", 
AggregateContextImpl.class.getName(), Scope.AGGREGATE));
+                MockFactory.createAggregateComponent("test.module", 
Scope.AGGREGATE));
         AggregateContext child = (AggregateContext) 
runtime.getRootContext().getContext("test.module");
         child.registerModelObject(MockFactory.createModule());
         child.fireEvent(EventContext.MODULE_START, null);
@@ -132,8 +131,7 @@
         runtime.addBuilder(new JavaTargetWireBuilder());
         runtime.start();
         runtime.getRootContext().registerModelObject(
-                MockFactory.createSystemComponent("test.module", 
AggregateContextImpl.class.getName(),
-                        Scope.AGGREGATE));
+                MockFactory.createAggregateComponent("test.module", 
Scope.AGGREGATE));
         AggregateContext child = (AggregateContext) 
runtime.getRootContext().getContext("test.module");
         child.registerModelObject(MockFactory.createModule());
         child.fireEvent(EventContext.MODULE_START, null);
@@ -178,8 +176,7 @@
         runtime.addBuilder(new JavaTargetWireBuilder());
         runtime.start();
         runtime.getRootContext().registerModelObject(
-                MockFactory.createSystemComponent("test.module", 
AggregateContextImpl.class.getName(),
-                        Scope.AGGREGATE));
+                MockFactory.createAggregateComponent("test.module", 
Scope.AGGREGATE));
         AggregateContext child = (AggregateContext) 
runtime.getRootContext().getContext("test.module");
         child.registerModelObject(MockFactory.createModule());
         child.fireEvent(EventContext.MODULE_START, null);
@@ -222,8 +219,7 @@
         
         runtime.start();
         runtime.getRootContext().registerModelObject(
-                MockFactory.createSystemComponent("test.module", 
AggregateContextImpl.class.getName(),
-                        Scope.AGGREGATE));
+                MockFactory.createAggregateComponent("test.module", 
Scope.AGGREGATE));
         AggregateContext child = (AggregateContext) 
runtime.getRootContext().getContext("test.module");
         child.registerModelObject(MockFactory.createModule());
         child.fireEvent(EventContext.MODULE_START, null);

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=381885&r1=381884&r2=381885&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 19:11:22 2006
@@ -35,7 +35,6 @@
 import org.apache.tuscany.core.context.AggregateContext;
 import org.apache.tuscany.core.context.EntryPointContext;
 import org.apache.tuscany.core.context.EventContext;
-import org.apache.tuscany.core.context.impl.AggregateContextImpl;
 import org.apache.tuscany.core.invocation.jdk.JDKProxyFactoryFactory;
 import org.apache.tuscany.core.invocation.spi.ProxyFactoryFactory;
 import org.apache.tuscany.core.message.MessageFactory;
@@ -92,7 +91,7 @@
         runtime.addBuilder(new FooBindingWireBuilder());
         runtime.start();
         runtime.getRootContext().registerModelObject(
-                MockFactory.createSystemComponent("test.module", 
AggregateContextImpl.class.getName(), Scope.AGGREGATE));
+                MockFactory.createAggregateComponent("test.module", 
Scope.AGGREGATE));
         AggregateContext child = (AggregateContext) 
runtime.getRootContext().getContext("test.module");
         child.registerModelObject(MockFactory.createModuleWithEntryPoint());
         child.fireEvent(EventContext.MODULE_START, null);

Modified: 
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/JavaToExternalServiceTestCase.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/JavaToExternalServiceTestCase.java?rev=381885&r1=381884&r2=381885&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/JavaToExternalServiceTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/JavaToExternalServiceTestCase.java
 Tue Feb 28 19:11:22 2006
@@ -32,7 +32,6 @@
 import org.apache.tuscany.core.builder.impl.HierarchicalBuilder;
 import org.apache.tuscany.core.context.AggregateContext;
 import org.apache.tuscany.core.context.EventContext;
-import org.apache.tuscany.core.context.impl.AggregateContextImpl;
 import org.apache.tuscany.core.invocation.jdk.JDKProxyFactoryFactory;
 import org.apache.tuscany.core.invocation.spi.ProxyFactoryFactory;
 import org.apache.tuscany.core.message.MessageFactory;
@@ -83,7 +82,7 @@
         runtime.addBuilder(new FooBindingWireBuilder());
         runtime.start();
         runtime.getRootContext().registerModelObject(
-                MockFactory.createSystemComponent("test.module", 
AggregateContextImpl.class.getName(), Scope.AGGREGATE));
+                MockFactory.createAggregateComponent("test.module", 
Scope.AGGREGATE));
         AggregateContext child = (AggregateContext) 
runtime.getRootContext().getContext("test.module");
         
child.registerModelObject(MockFactory.createModuleWithExternalService());
         child.fireEvent(EventContext.MODULE_START, null);

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=381885&r1=381884&r2=381885&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 19:11:22 2006
@@ -16,14 +16,18 @@
  */
 package org.apache.tuscany.container.java.mock;
 
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Set;
 
 import org.apache.tuscany.container.java.assembly.JavaAssemblyFactory;
 import org.apache.tuscany.container.java.assembly.JavaImplementation;
 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.context.JavaComponentContext;
 import org.apache.tuscany.container.java.mock.binding.foo.FooBinding;
 import org.apache.tuscany.container.java.mock.components.GenericComponent;
 import org.apache.tuscany.container.java.mock.components.HelloWorldClient;
@@ -32,6 +36,15 @@
 import org.apache.tuscany.core.builder.RuntimeConfigurationBuilder;
 import org.apache.tuscany.core.config.JavaIntrospectionHelper;
 import org.apache.tuscany.core.context.AggregateContext;
+import org.apache.tuscany.core.context.InstanceContext;
+import org.apache.tuscany.core.context.impl.AggregateContextImpl;
+import org.apache.tuscany.core.injection.EventInvoker;
+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.PojoObjectFactory;
+import org.apache.tuscany.core.injection.SingletonObjectFactory;
 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 +66,10 @@
 import org.apache.tuscany.model.assembly.SimpleComponent;
 import org.apache.tuscany.model.assembly.impl.AssemblyModelContextImpl;
 import org.apache.tuscany.model.types.java.JavaServiceContract;
+import org.osoa.sca.annotations.ComponentName;
+import org.osoa.sca.annotations.Context;
+import org.osoa.sca.annotations.Destroy;
+import org.osoa.sca.annotations.Init;
 
 /**
  * Generates test components, modules, and runtime artifacts
@@ -67,7 +84,14 @@
 
     private static AssemblyModelContext assemblyContext = new 
AssemblyModelContextImpl(null, null, null);
 
-    public static SimpleComponent createComponent(String name, Class type, 
Scope scope) throws NoSuchMethodException {
+    /**
+     * Creates an initialized simple component
+     * 
+     * @param name the component name
+     * @param type the implementation type
+     * @param scope the component scope
+     */
+    public static SimpleComponent createComponent(String name, Class type, 
Scope scope) {
         SimpleComponent sc = factory.createSimpleComponent();
         JavaImplementation impl = factory.createJavaImplementation();
         impl.setComponentType(factory.createComponentType());
@@ -83,17 +107,17 @@
         return sc;
     }
 
-    public static Component createSystemComponent(String name, String type, 
Scope scope) throws NoSuchMethodException,
-            ClassNotFoundException {
-        Class claz = JavaIntrospectionHelper.loadClass(type);
-        Component sc = null;
-        if (AggregateContext.class.isAssignableFrom(claz)) {
-            sc = systemFactory.createModuleComponent();
-        } else {
-            sc = systemFactory.createSimpleComponent();
-        }
+    /**
+     * Creates a system 
+     * @param name
+     * @param scope
+     * @return
+     * @throws ClassNotFoundException
+     */
+    public static Component createAggregateComponent(String name, Scope scope) 
throws ClassNotFoundException {
+        Component sc = sc = systemFactory.createModuleComponent();
         SystemImplementation impl = systemFactory.createSystemImplementation();
-        impl.setImplementationClass(claz);
+        impl.setImplementationClass(AggregateContextImpl.class);
         sc.setComponentImplementation(impl);
         Service s = systemFactory.createService();
         JavaServiceContract ji = systemFactory.createJavaServiceContract();
@@ -144,26 +168,6 @@
     }
 
     /**
-     * Creates a component decorated with an appropriate runtime configuration
-     * 
-     * @param name the name of the component
-     * @param type the component implementation class name
-     * @param scope the scope of the component implementation
-     * @param aggregateContext the containing aggregate context
-     * @throws NoSuchMethodException
-     * @throws ClassNotFoundException 
-     * @see RuntimeConfiguration
-     */
-    public static Component createDecoratedComponent(String name, String type, 
Scope scope,
-            AggregateContext aggregateContext) throws NoSuchMethodException, 
ClassNotFoundException {
-    
-        Component sc = createSystemComponent(name, type, scope);
-        SystemComponentContextBuilder builder = new 
SystemComponentContextBuilder();
-        builder.build(sc, aggregateContext);
-        return sc;
-    }
-
-    /**
      * Creates an entry point wired to the given target (e.g. component, 
external service) using the system binding
      * 
      * @param name the name of the entry point
@@ -174,10 +178,10 @@
     public static EntryPoint createEPSystemBinding(String name, Class 
interfaz, String refName, AggregatePart target) {
         JavaServiceContract contract = 
systemFactory.createJavaServiceContract();
         contract.setInterface(interfaz);
-    
+
         EntryPoint ep = systemFactory.createEntryPoint();
         ep.setName(name);
-    
+
         Reference ref = systemFactory.createReference();
         ref.setName(refName);
         ref.setServiceContract(contract);
@@ -185,24 +189,24 @@
         configuredReference.setReference(ref);
         Service service = systemFactory.createService();
         service.setServiceContract(contract);
-    
+
         ConfiguredService cService = systemFactory.createConfiguredService();
         cService.setService(service);
         cService.initialize(MockFactory.assemblyContext);
-    
+
         configuredReference.getTargetConfiguredServices().add(cService);
         ep.setConfiguredReference(configuredReference);
-    
-        ///
+
+        // /
         Service epService = systemFactory.createService();
         epService.setServiceContract(contract);
-    
+
         ConfiguredService epCService = systemFactory.createConfiguredService();
         epCService.initialize(MockFactory.assemblyContext);
         epCService.setService(epService);
-    
+
         //
-        
+
         ep.setConfiguredService(epCService);
         SystemBinding binding = systemFactory.createSystemBinding();
         ep.getBindings().add(binding);
@@ -235,9 +239,9 @@
     }
 
     public static Module createModule() throws Exception {
-        Component sourceComponent = createComponent("source", 
ModuleScopeComponentImpl.class,Scope.MODULE);
-        Component targetComponent = createComponent("target", 
ModuleScopeComponentImpl.class,Scope.MODULE);
-    
+        Component sourceComponent = createComponent("source", 
ModuleScopeComponentImpl.class, Scope.MODULE);
+        Component targetComponent = createComponent("target", 
ModuleScopeComponentImpl.class, Scope.MODULE);
+
         Service targetService = factory.createService();
         JavaServiceContract targetContract = 
factory.createJavaServiceContract();
         targetContract.setInterface(GenericComponent.class);
@@ -248,7 +252,7 @@
         cTargetService.initialize(assemblyContext);
         targetComponent.getConfiguredServices().add(cTargetService);
         targetComponent.initialize(assemblyContext);
-        
+
         Reference ref = factory.createReference();
         ConfiguredReference cref = factory.createConfiguredReference();
         ref.setName("setGenericComponent");
@@ -260,7 +264,7 @@
         cref.initialize(assemblyContext);
         sourceComponent.getConfiguredReferences().add(cref);
         sourceComponent.initialize(assemblyContext);
-    
+
         Module module = factory.createModule();
         module.setName("test.module");
         module.getComponents().add(sourceComponent);
@@ -270,9 +274,9 @@
     }
 
     public static Module createModuleWithExternalService() throws Exception {
-        Component sourceComponent = createComponent("source", 
HelloWorldClient.class,Scope.MODULE);
-        ExternalService targetES = 
createFooBindingExternalService("target",HelloWorldService.class);
-    
+        Component sourceComponent = createComponent("source", 
HelloWorldClient.class, Scope.MODULE);
+        ExternalService targetES = createFooBindingExternalService("target", 
HelloWorldService.class);
+
         Service targetService = factory.createService();
         JavaServiceContract targetContract = 
factory.createJavaServiceContract();
         targetContract.setInterface(HelloWorldService.class);
@@ -282,7 +286,7 @@
         cTargetService.setService(targetService);
         targetES.setConfiguredService(cTargetService);
         targetES.initialize(assemblyContext);
-        
+
         Reference ref = factory.createReference();
         ConfiguredReference cref = factory.createConfiguredReference();
         ref.setName("setHelloWorldService");
@@ -294,7 +298,7 @@
         cref.initialize(assemblyContext);
         sourceComponent.getConfiguredReferences().add(cref);
         sourceComponent.initialize(assemblyContext);
-    
+
         Module module = factory.createModule();
         module.setName("test.module");
         module.getComponents().add(sourceComponent);
@@ -305,8 +309,8 @@
 
     public static Module createModuleWithEntryPoint() throws Exception {
         EntryPoint sourceEP = createFooBindingEntryPoint("source", 
HelloWorldService.class);
-        Component targetComponent = 
createComponent("target",HelloWorldImpl.class,Scope.MODULE);
-    
+        Component targetComponent = createComponent("target", 
HelloWorldImpl.class, Scope.MODULE);
+
         Service targetService = factory.createService();
         JavaServiceContract targetContract = 
factory.createJavaServiceContract();
         targetContract.setInterface(HelloWorldService.class);
@@ -316,7 +320,7 @@
         cTargetService.setService(targetService);
         targetComponent.getConfiguredServices().add(cTargetService);
         targetComponent.initialize(assemblyContext);
-        
+
         Reference ref = factory.createReference();
         ConfiguredReference cref = factory.createConfiguredReference();
         ref.setName("setHelloWorldService");
@@ -329,8 +333,7 @@
         sourceEP.setConfiguredReference(cref);
         
sourceEP.getConfiguredService().getService().setName("HelloWorldService");
         sourceEP.initialize(assemblyContext);
-        
-    
+
         Module module = factory.createModule();
         module.setName("test.module");
         module.getEntryPoints().add(sourceEP);
@@ -346,6 +349,87 @@
         builders.add(new SystemExternalServiceBuilder());
         return builders;
     }
-    
-    
+
+    /**
+     * Creates an aggregate runtime configuration
+     * 
+     * @param name the name of the component
+     * @param scope the scope of the component implementation
+     * @param aggregateContext the containing aggregate context
+     * @throws NoSuchMethodException
+     * @throws ClassNotFoundException
+     * @see RuntimeConfiguration
+     */
+    public static RuntimeConfiguration<InstanceContext> 
createAggregateConfiguration(String name, Scope scope, AggregateContext 
aggregateContext)
+            throws NoSuchMethodException, ClassNotFoundException {
+
+        Component sc = createAggregateComponent(name, scope);
+        SystemComponentContextBuilder builder = new 
SystemComponentContextBuilder();
+        builder.build(sc, aggregateContext);
+        return (RuntimeConfiguration<InstanceContext>) 
sc.getComponentImplementation().getRuntimeConfiguration();
+    }
+
+    /**
+     * Creates a Java POJO component context
+     * 
+     * @param name the name of the context
+     * @param implType the POJO class
+     * @param scope the component scope
+     * @param moduleComponentContext the containing aggregate context
+     * @throws NoSuchMethodException
+     */
+    public static JavaComponentContext createPojoContext(String name, Class 
implType, Scope scope,
+            AggregateContext moduleComponentContext) throws 
NoSuchMethodException {
+        SimpleComponent component = createComponent(name, implType, scope);
+
+        Set<Field> fields = JavaIntrospectionHelper.getAllFields(implType);
+        Set<Method> methods = 
JavaIntrospectionHelper.getAllUniqueMethods(implType);
+        List<Injector> injectors = new ArrayList();
+        EventInvoker initInvoker = null;
+        boolean eagerInit = false;
+        EventInvoker destroyInvoker = null;
+        for (Field field : fields) {
+            ComponentName compName = field.getAnnotation(ComponentName.class);
+            if (compName != null) {
+                Injector injector = new FieldInjector(field, new 
SingletonObjectFactory(name));
+                injectors.add(injector);
+            }
+            Context context = field.getAnnotation(Context.class);
+            if (context != null) {
+                Injector injector = new FieldInjector(field, new 
SingletonObjectFactory(moduleComponentContext));
+                injectors.add(injector);
+            }
+        }
+        for (Method method : methods) {
+            // FIXME Java5
+            Init init = method.getAnnotation(Init.class);
+            if (init != null && initInvoker == null) {
+                initInvoker = new MethodEventInvoker(method);
+                eagerInit = init.eager();
+                continue;
+            }
+            Destroy destroy = method.getAnnotation(Destroy.class);
+            if (destroy != null && destroyInvoker == null) {
+                destroyInvoker = new MethodEventInvoker(method);
+                continue;
+            }
+            ComponentName compName = method.getAnnotation(ComponentName.class);
+            if (compName != null) {
+                Injector injector = new MethodInjector(method, new 
SingletonObjectFactory(name));
+                injectors.add(injector);
+            }
+            Context context = method.getAnnotation(Context.class);
+            if (context != null) {
+                Injector injector = new MethodInjector(method, new 
SingletonObjectFactory(moduleComponentContext));
+                injectors.add(injector);
+            }
+        }
+
+        boolean stateless = (scope == Scope.INSTANCE);
+        JavaComponentContext context = new JavaComponentContext("foo", new 
PojoObjectFactory(JavaIntrospectionHelper
+                .getDefaultConstructor(implType), null, injectors), eagerInit, 
initInvoker, destroyInvoker, stateless);
+
+        return context;
+    }
+
 }

Modified: 
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/scopes/AggregateScopeTestCase.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/scopes/AggregateScopeTestCase.java?rev=381885&r1=381884&r2=381885&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/scopes/AggregateScopeTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/scopes/AggregateScopeTestCase.java
 Tue Feb 28 19:11:22 2006
@@ -24,17 +24,13 @@
 import org.apache.tuscany.container.java.mock.components.GenericComponent;
 import 
org.apache.tuscany.container.java.mock.components.ModuleScopeComponentImpl;
 import 
org.apache.tuscany.container.java.mock.components.SessionScopeComponentImpl;
-import org.apache.tuscany.core.builder.BuilderConfigException;
 import org.apache.tuscany.core.builder.BuilderException;
-import org.apache.tuscany.core.builder.RuntimeConfiguration;
 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.QualifiedName;
 import org.apache.tuscany.core.context.impl.AggregateContextImpl;
 import org.apache.tuscany.core.context.impl.EventContextImpl;
 import org.apache.tuscany.core.context.scope.AggregateScopeContext;
-import org.apache.tuscany.model.assembly.Component;
 import org.apache.tuscany.model.assembly.Extensible;
 import org.apache.tuscany.model.assembly.Scope;
 import org.apache.tuscany.model.assembly.SimpleComponent;
@@ -55,12 +51,9 @@
         AggregateContext moduleComponentCtx = new AggregateContextImpl();
         moduleComponentCtx.setName("testMC");
         AggregateScopeContext scopeContainer = new AggregateScopeContext(ctx);
-        Component aggregateComponent = 
MockFactory.createDecoratedComponent("AggregateComponent",
-                AggregateContextImpl.class.getName(), Scope.AGGREGATE, 
moduleComponentCtx);
-        
scopeContainer.registerConfiguration((RuntimeConfiguration<InstanceContext>) 
aggregateComponent
-                .getComponentImplementation().getRuntimeConfiguration());
+        
scopeContainer.registerConfiguration(MockFactory.createAggregateConfiguration("AggregateComponent",
 Scope.AGGREGATE,
+                moduleComponentCtx));
         scopeContainer.start();
-
         AggregateContext child = (AggregateContext) 
scopeContainer.getContext("AggregateComponent");
         List<Extensible> models = createAssembly(moduleComponentCtx);
         for (Extensible model : models) {
@@ -71,8 +64,7 @@
         Object session = new Object();
         scopeContainer.onEvent(EventContext.REQUEST_START, null);
         scopeContainer.onEvent(EventContext.SESSION_NOTIFY, session);
-        AggregateContext componentCtx = (AggregateContext) scopeContainer
-                .getContext("AggregateComponent");
+        AggregateContext componentCtx = (AggregateContext) 
scopeContainer.getContext("AggregateComponent");
         GenericComponent testService1 = (GenericComponent) 
componentCtx.locateInstance("TestService1");
         GenericComponent testService2 = (GenericComponent) 
componentCtx.locateInstance("TestService2");
         GenericComponent testService3 = (GenericComponent) 
componentCtx.locateInstance("TestService3");
@@ -112,10 +104,8 @@
         AggregateContext moduleComponentCtx = new AggregateContextImpl();
         moduleComponentCtx.setName("testMC");
         AggregateScopeContext scopeContainer = new AggregateScopeContext(ctx);
-        Component aggregateComponent = 
MockFactory.createDecoratedComponent("AggregateComponent",
-                AggregateContextImpl.class.getName(), Scope.AGGREGATE, 
moduleComponentCtx);
-        
scopeContainer.registerConfiguration((RuntimeConfiguration<InstanceContext>) 
aggregateComponent
-                .getComponentImplementation().getRuntimeConfiguration());
+        
scopeContainer.registerConfiguration(MockFactory.createAggregateConfiguration("AggregateComponent",
 Scope.AGGREGATE,
+                moduleComponentCtx));
         scopeContainer.start();
         AggregateContext child = (AggregateContext) 
scopeContainer.getContext("AggregateComponent");
         List<Extensible> parts = createAssembly(moduleComponentCtx);
@@ -126,8 +116,7 @@
         // aggregate.onEvent(EventContext.SYSTEM_START, null);
         scopeContainer.onEvent(EventContext.MODULE_START, null);
         QualifiedName name = new 
QualifiedName("AggregateComponent/TestService1");
-        AggregateContext componentCtx = (AggregateContext) scopeContainer
-                .getContext("AggregateComponent");
+        AggregateContext componentCtx = (AggregateContext) 
scopeContainer.getContext("AggregateComponent");
     }
 
     /**
@@ -138,16 +127,12 @@
         AggregateContext moduleComponentCtx = new AggregateContextImpl();
         moduleComponentCtx.setName("testMC");
         AggregateScopeContext scopeContainer = new AggregateScopeContext(ctx);
-        Component aggregateComponent = 
MockFactory.createDecoratedComponent("AggregateComponent",
-                AggregateContextImpl.class.getName(), Scope.AGGREGATE, 
moduleComponentCtx);
-        
scopeContainer.registerConfiguration((RuntimeConfiguration<InstanceContext>) 
aggregateComponent
-                .getComponentImplementation().getRuntimeConfiguration());
+        
scopeContainer.registerConfiguration(MockFactory.createAggregateConfiguration("AggregateComponent",
 Scope.AGGREGATE,
+                moduleComponentCtx));
         scopeContainer.start();
-
         scopeContainer.onEvent(EventContext.MODULE_START, null);
         QualifiedName name = new 
QualifiedName("AggregateComponent/TestService1");
-        AggregateContext componentCtx = (AggregateContext) scopeContainer
-                .getContext("AggregateComponent");
+        AggregateContext componentCtx = (AggregateContext) 
scopeContainer.getContext("AggregateComponent");
         scopeContainer.onEvent(EventContext.MODULE_STOP, null);
         scopeContainer.stop();
     }
@@ -160,20 +145,17 @@
         AggregateContext moduleComponentCtx = new AggregateContextImpl();
         moduleComponentCtx.setName("testMC");
         AggregateScopeContext scopeContainer = new AggregateScopeContext(ctx);
-        Component aggregateComponent = 
MockFactory.createDecoratedComponent("AggregateComponent",
-                AggregateContextImpl.class.getName(), Scope.AGGREGATE, 
moduleComponentCtx);
         scopeContainer.start();
 
         scopeContainer.onEvent(EventContext.MODULE_START, null);
-        
scopeContainer.registerConfiguration((RuntimeConfiguration<InstanceContext>) 
aggregateComponent
-                .getComponentImplementation().getRuntimeConfiguration());
+        
scopeContainer.registerConfiguration(MockFactory.createAggregateConfiguration("AggregateComponent",
 Scope.AGGREGATE,
+                moduleComponentCtx));
         QualifiedName name = new 
QualifiedName("AggregateComponent/TestService1");
-        AggregateContext componentCtx = (AggregateContext) scopeContainer
-                .getContext("AggregateComponent");
+        AggregateContext componentCtx = (AggregateContext) 
scopeContainer.getContext("AggregateComponent");
         scopeContainer.onEvent(EventContext.MODULE_STOP, null);
         scopeContainer.stop();
     }
-    
+
     /**
      * Creats an assembly containing a module-scoped component definition, a 
session-scoped component definition, and a
      * request-scoped component definition
@@ -181,25 +163,20 @@
      * @param ctx the parent module context
      */
     private List<Extensible> createAssembly(AggregateContext ctx) throws 
BuilderException {
-        try {
-            JavaComponentContextBuilder builder = new 
JavaComponentContextBuilder();
-            SimpleComponent component = 
MockFactory.createComponent("TestService1", ModuleScopeComponentImpl.class,
-                    Scope.MODULE);
-            SimpleComponent sessionComponent = 
MockFactory.createComponent("TestService2",
-                    SessionScopeComponentImpl.class, Scope.SESSION);
-            SimpleComponent requestComponent = 
MockFactory.createComponent("TestService3",
-                    SessionScopeComponentImpl.class, Scope.REQUEST);
-            builder.build(component, ctx);
-            builder.build(sessionComponent, ctx);
-            builder.build(requestComponent, ctx);
-            List<Extensible> configs = new ArrayList();
-            configs.add(component);
-            configs.add(sessionComponent);
-            configs.add(requestComponent);
-            return configs;
-        } catch (NoSuchMethodException e) {
-            throw new BuilderConfigException(e);
-        }
+        JavaComponentContextBuilder builder = new 
JavaComponentContextBuilder();
+        SimpleComponent component = 
MockFactory.createComponent("TestService1", ModuleScopeComponentImpl.class, 
Scope.MODULE);
+        SimpleComponent sessionComponent = 
MockFactory.createComponent("TestService2", SessionScopeComponentImpl.class,
+                Scope.SESSION);
+        SimpleComponent requestComponent = 
MockFactory.createComponent("TestService3", SessionScopeComponentImpl.class,
+                Scope.REQUEST);
+        builder.build(component, ctx);
+        builder.build(sessionComponent, ctx);
+        builder.build(requestComponent, ctx);
+        List<Extensible> configs = new ArrayList();
+        configs.add(component);
+        configs.add(sessionComponent);
+        configs.add(requestComponent);
+        return configs;
     }
 
 }


Reply via email to