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);