Author: jmarino
Date: Sat Apr 15 09:57:29 2006
New Revision: 394333
URL: http://svn.apache.org/viewcvs?rev=394333&view=rev
Log:
change system services to default to module scope and testcase to verify
Modified:
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/builder/SystemContextFactoryBuilder.java
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/system/builder/SystemContextFactoryBuilderTestCase.java
Modified:
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/builder/SystemContextFactoryBuilder.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/builder/SystemContextFactoryBuilder.java?rev=394333&r1=394332&r2=394333&view=diff
==============================================================================
---
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/builder/SystemContextFactoryBuilder.java
(original)
+++
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/builder/SystemContextFactoryBuilder.java
Sat Apr 15 09:57:29 2006
@@ -109,7 +109,7 @@
}
implClass = javaImpl.getImplementationClass();
Scope previous = null;
- scope = Scope.INSTANCE;
+ scope = Scope.MODULE;
List<Service> services =
component.getImplementation().getComponentInfo().getServices();
for (Service service : services) {
// calculate and validate the scope of the component; ensure
that all service scopes are the same unless
@@ -121,7 +121,7 @@
e.setIdentifier(component.getName());
throw e;
}
- if (scope != null && current != Scope.INSTANCE) {
+ if (current != null && current != Scope.MODULE) {
scope = current;
}
}
@@ -219,14 +219,14 @@
e.setIdentifier(field.getType().getName());
throw e;
}
- Injector injector = new FieldInjector(field, new
AutowireObjectFactory(field.getType(), autowire.required(),
+ Injector<?> injector = new FieldInjector(field, new
AutowireObjectFactory(field.getType(), autowire.required(),
contextFactory));
injectors.add(injector);
}
Monitor monitor = field.getAnnotation(Monitor.class);
if (monitor != null) {
Object instance =
monitorFactory.getMonitor(field.getType());
- Injector<?> injector = new FieldInjector(field, new
SingletonObjectFactory(instance));
+ Injector<?> injector = new FieldInjector(field, new
SingletonObjectFactory<Object>(instance));
injectors.add(injector);
}
}
@@ -298,7 +298,7 @@
}
Class<?> paramType = method.getParameterTypes()[0];
Object instance = monitorFactory.getMonitor(paramType);
- Injector<?> injector = new MethodInjector(method, new
SingletonObjectFactory(instance));
+ Injector<?> injector = new MethodInjector(method, new
SingletonObjectFactory<Object>(instance));
injectors.add(injector);
}
}
@@ -321,10 +321,6 @@
throw ce;
}
}
-
- // ----------------------------------
- // Private methods
- // ----------------------------------
/**
* Creates an <code>Injector</code> for component properties
Modified:
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/system/builder/SystemContextFactoryBuilderTestCase.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/system/builder/SystemContextFactoryBuilderTestCase.java?rev=394333&r1=394332&r2=394333&view=diff
==============================================================================
---
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/system/builder/SystemContextFactoryBuilderTestCase.java
(original)
+++
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/system/builder/SystemContextFactoryBuilderTestCase.java
Sat Apr 15 09:57:29 2006
@@ -24,11 +24,15 @@
import org.apache.tuscany.core.context.scope.DefaultScopeStrategy;
import org.apache.tuscany.core.mock.MockConfigContext;
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.model.assembly.Component;
import org.apache.tuscany.model.assembly.ConfiguredProperty;
import org.apache.tuscany.model.assembly.Property;
import org.apache.tuscany.model.assembly.Scope;
+import org.apache.tuscany.model.assembly.Service;
+import org.apache.tuscany.model.assembly.ComponentInfo;
+import org.apache.tuscany.model.types.java.JavaServiceContract;
/**
* Tests to that system components are built properly
@@ -128,9 +132,41 @@
Assert.assertTrue(instance.destroyed());
}
+
+ public void testDefaultScopeIsModuleScope() throws Exception {
+ SystemContextFactoryBuilder builder = new
SystemContextFactoryBuilder(null);
+ Component component = createSystemComponentWithNoScope("test", null,
SystemComponentImpl.class);
+ builder.build(component);
+ ContextFactory<AtomicContext> contextFactory =
(ContextFactory<AtomicContext>) component.getContextFactory();
+ Assert.assertEquals(Scope.MODULE, contextFactory.getScope());
+ }
+
+
+
+
private static CompositeContext createContext() {
return new CompositeContextImpl("test.parent", null, new
DefaultScopeStrategy(), new EventContextImpl(),
new MockConfigContext(null));
}
+
+ private <T> Component createSystemComponentWithNoScope(String name,
Class<T> service, Class<? extends T> impl) {
+ JavaServiceContract jsc = factory.createJavaServiceContract();
+ jsc.setInterface(service);
+ Service s = factory.createService();
+ s.setServiceContract(jsc);
+
+ ComponentInfo componentType = factory.createComponentInfo();
+ componentType.getServices().add(s);
+
+ SystemImplementation sysImpl = factory.createSystemImplementation();
+ sysImpl.setImplementationClass(impl);
+ sysImpl.setComponentInfo(componentType);
+
+ Component sc = factory.createSimpleComponent();
+ sc.setName(name);
+ sc.setImplementation(sysImpl);
+ return sc;
+ }
+
}