You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by jm...@apache.org on 2006/05/15 09:10:54 UTC
svn commit: r406563 - in /incubator/tuscany/sandbox/jboynes/sca:
containers/container.java/src/main/java/org/apache/tuscany/container/java/builder/
containers/container.java/src/main/java/org/apache/tuscany/container/java/context/
containers/container....
Author: jmarino
Date: Mon May 15 00:10:36 2006
New Revision: 406563
URL: http://svn.apache.org/viewcvs?rev=406563&view=rev
Log:
start on builder refactors
Added:
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/builder/
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/builder/JavaComponentBuilderTestCase.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockModelFactory.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/HttpSessionScopeObjectFactory.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/ModuleScopeObjectFactory.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/RequestScopeObjectFactory.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/StatelessScopeObjectFactory.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/ScopeRegistryTestCase.java
Removed:
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/builder/support/
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireFactoryInitException.java
Modified:
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/builder/JavaComponentBuilder.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/context/JavaAtomicContext.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/EPtoExternalServiceTestCase.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/EntryPointToJavaTestCase.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/ExternalServiceProxyInvokeTestCase.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/JavaToExternalServiceTestCase.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/invocation/ScopedPojoInvokerTestCase.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockContextFactory.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/AbstractScopeContext.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/HttpSessionScopeContext.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/ModuleScopeContext.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/RequestScopeContext.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/ScopeRegistryImpl.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/StatelessScopeContext.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKSourceWire.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKTargetWire.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/system/WireServiceImpl.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/AtomicContextToReferenceContextTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/MockContextFactory.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKWireFactoryServiceTestCase.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ScopeContext.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ScopeRegistry.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentBuilderExtension.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/loader/StAXLoaderRegistry.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/policy/PolicyBuilderRegistry.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/SourceWire.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/TargetWire.java
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/builder/JavaComponentBuilder.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/builder/JavaComponentBuilder.java?rev=406563&r1=406562&r2=406563&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/builder/JavaComponentBuilder.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/builder/JavaComponentBuilder.java Mon May 15 00:10:36 2006
@@ -29,6 +29,7 @@
protected JavaAtomicContext createContext(CompositeContext parent, Component<JavaImplementation> component)
throws BuilderConfigException {
PojoComponentType componentType = component.getImplementation().getComponentType();
+
List<Class<?>> serviceInterfaces = new ArrayList<Class<?>>();
for (Service service : componentType.getServices().values()) {
serviceInterfaces.add(((JavaServiceContract) service.getServiceContract()).getInterfaceClass());
@@ -58,7 +59,7 @@
}
}
}
- return new JavaAtomicContext(component.getName(), serviceInterfaces, factory,
+ return new JavaAtomicContext(component.getName(), serviceInterfaces, factory, componentType.getLifecycleScope(),
componentType.isEagerInit(), componentType.getInitInvoker(), componentType.getDestroyInvoker(),
injectors, componentType.getReferenceMembers());
}
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/context/JavaAtomicContext.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/context/JavaAtomicContext.java?rev=406563&r1=406562&r2=406563&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/context/JavaAtomicContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/context/JavaAtomicContext.java Mon May 15 00:10:36 2006
@@ -60,9 +60,9 @@
protected EventInvoker<Object> destroyInvoker;
protected ObjectFactory<?> objectFactory;
protected List<Class<?>> serviceInterfaces;
+ protected Scope scope;
-
- public JavaAtomicContext(String name, List<Class<?>> serviceInterfaces, ObjectFactory<?> objectFactory, boolean eagerInit, EventInvoker<Object> initInvoker,
+ public JavaAtomicContext(String name, List<Class<?>> serviceInterfaces, ObjectFactory<?> objectFactory, Scope scope, boolean eagerInit, EventInvoker<Object> initInvoker,
EventInvoker<Object> destroyInvoker, List<Injector> injectors, Map<String, Member> members) {
this.name = name;
this.injectors = injectors != null ? injectors : new ArrayList<Injector>();
@@ -72,6 +72,7 @@
this.initInvoker = initInvoker;
this.destroyInvoker = destroyInvoker;
this.serviceInterfaces = serviceInterfaces;
+ this.scope = scope;
}
public List<Class<?>> getServiceInterfaces() {
@@ -79,10 +80,7 @@
}
public Scope getScope() {
- if (scopeContext == null) {
- return null;
- }
- return scopeContext.getScope();
+ return scope;
}
public boolean isEagerInit() {
Added: incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/builder/JavaComponentBuilderTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/builder/JavaComponentBuilderTestCase.java?rev=406563&view=auto
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/builder/JavaComponentBuilderTestCase.java (added)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/builder/JavaComponentBuilderTestCase.java Mon May 15 00:10:36 2006
@@ -0,0 +1,72 @@
+package org.apache.tuscany.container.java.builder;
+
+import junit.framework.TestCase;
+import org.apache.tuscany.container.java.context.JavaAtomicContext;
+import org.apache.tuscany.container.java.mock.components.Source;
+import org.apache.tuscany.container.java.mock.components.SourceImpl;
+import org.apache.tuscany.container.java.mock.components.Target;
+import org.apache.tuscany.container.java.model.JavaImplementation;
+import org.apache.tuscany.core.context.CompositeContextImpl;
+import org.apache.tuscany.core.context.WorkContextImpl;
+import org.apache.tuscany.core.context.scope.ModuleScopeObjectFactory;
+import org.apache.tuscany.core.context.scope.ScopeRegistryImpl;
+import org.apache.tuscany.core.model.PojoComponentType;
+import org.apache.tuscany.core.wire.jdk.JDKWireFactoryService;
+import org.apache.tuscany.core.wire.system.WireServiceImpl;
+import org.apache.tuscany.model.Component;
+import org.apache.tuscany.model.JavaServiceContract;
+import org.apache.tuscany.model.Scope;
+import org.apache.tuscany.model.Service;
+import org.apache.tuscany.model.ServiceContract;
+import org.apache.tuscany.spi.context.CompositeContext;
+import org.apache.tuscany.spi.context.ScopeRegistry;
+import org.apache.tuscany.spi.context.WorkContext;
+import org.apache.tuscany.spi.wire.WireService;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+public class JavaComponentBuilderTestCase extends TestCase {
+
+ private WireService wireService;
+
+ public void testBuild() throws Exception {
+ CompositeContext parent = new CompositeContextImpl();
+ WorkContext workContext = new WorkContextImpl();
+ workContext.setRemoteContext(parent);
+ ScopeRegistry scopeRegistry = new ScopeRegistryImpl(workContext);
+ scopeRegistry.registerFactory(Scope.MODULE, new ModuleScopeObjectFactory());
+
+ PojoComponentType sourceType = new PojoComponentType();
+ sourceType.setLifecycleScope(Scope.MODULE);
+ sourceType.setReferenceMember("target", SourceImpl.class.getMethod("setTarget", Target.class));
+
+ ServiceContract sourceContract = new JavaServiceContract();
+ sourceContract.setIntefaze(Source.class);
+ Service sourceService = new Service();
+ sourceService.setName("Source");
+ sourceService.setServiceContract(sourceContract);
+
+ sourceType.add(sourceService);
+ JavaImplementation sourceImpl = new JavaImplementation();
+ sourceImpl.setComponentType(sourceType);
+ sourceImpl.setImplementationClass(SourceImpl.class);
+ Component<JavaImplementation> sourceComponent = new Component<JavaImplementation>(sourceImpl);
+
+ JavaComponentBuilder builder = new JavaComponentBuilder();
+ builder.setWireService(wireService);
+ builder.setScopeRegistry(scopeRegistry);
+ JavaAtomicContext<Source> ctx = (JavaAtomicContext<Source>) builder.build(parent, sourceComponent);
+ ctx.start();
+ Source source = ctx.getService();
+ assertNotNull(source);
+ ctx.stop();
+ }
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ wireService = new WireServiceImpl(new JDKWireFactoryService());
+ }
+
+
+}
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/EPtoExternalServiceTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/EPtoExternalServiceTestCase.java?rev=406563&r1=406562&r2=406563&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/EPtoExternalServiceTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/EPtoExternalServiceTestCase.java Mon May 15 00:10:36 2006
@@ -15,11 +15,11 @@
*/
public void testEPtoESInvocation() throws Throwable {
// RuntimeContext runtime = MockContextFactory.registerFooBinding(MockContextFactory.createJavaRuntime());
-// PolicyBuilderRegistry registry = (PolicyBuilderRegistry) ((CompositeContext) runtime.getSystemContext().getContext(MockContextFactory.SYSTEM_CHILD))
+// PolicyBuilderRegistry builderRegistry = (PolicyBuilderRegistry) ((CompositeContext) runtime.getSystemContext().getContext(MockContextFactory.SYSTEM_CHILD))
// .getContext(MockContextFactory.POLICY_BUILDER_REGISTRY).getInstance(null);
// MockSyncInterceptor mockInterceptor = new MockSyncInterceptor();
// MockInterceptorBuilder interceptorBuilder = new MockInterceptorBuilder(mockInterceptor, false);
-// registry.registerTargetBuilder(interceptorBuilder);
+// builderRegistry.registerTargetBuilder(interceptorBuilder);
// runtime.getRootContext().registerModelObject(MockContextFactory.createCompositeComponent("test.module"));
// CompositeContext child = (CompositeContext) runtime.getRootContext().getContext("test.module");
// child.registerModelObject(MockContextFactory.createModuleWithEntryPointToExternalService());
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/EntryPointToJavaTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/EntryPointToJavaTestCase.java?rev=406563&r1=406562&r2=406563&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/EntryPointToJavaTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/EntryPointToJavaTestCase.java Mon May 15 00:10:36 2006
@@ -35,12 +35,12 @@
*/
public void testEPtoJavaModuleScopeInvoke() throws Throwable {
// RuntimeContext runtime = MockContextFactory.registerFooBinding(MockContextFactory.createJavaRuntime());
-// PolicyBuilderRegistry registry = (PolicyBuilderRegistry) ((CompositeContext) runtime.getSystemContext().getContext(MockContextFactory.SYSTEM_CHILD))
+// PolicyBuilderRegistry builderRegistry = (PolicyBuilderRegistry) ((CompositeContext) runtime.getSystemContext().getContext(MockContextFactory.SYSTEM_CHILD))
// .getContext(MockContextFactory.POLICY_BUILDER_REGISTRY).getInstance(null);
//
// MockSyncInterceptor mockInterceptor = new MockSyncInterceptor();
// MockInterceptorBuilder interceptorBuilder = new MockInterceptorBuilder(mockInterceptor, false);
-// registry.registerTargetBuilder(interceptorBuilder);
+// builderRegistry.registerTargetBuilder(interceptorBuilder);
// runtime.getRootContext().registerModelObject(MockContextFactory.createCompositeComponent("test.module"));
// CompositeContext child = (CompositeContext) runtime.getRootContext().getContext("test.module");
// child.registerModelObject(MockContextFactory.createModuleWithEntryPoint(Scope.MODULE));
@@ -80,11 +80,11 @@
*/
public void testEPtoJavaSessionScopeInvoke() throws Throwable {
// RuntimeContext runtime = MockContextFactory.registerFooBinding(MockContextFactory.createJavaRuntime());
-// PolicyBuilderRegistry registry = (PolicyBuilderRegistry) ((CompositeContext) runtime.getSystemContext().getContext(MockContextFactory.SYSTEM_CHILD))
+// PolicyBuilderRegistry builderRegistry = (PolicyBuilderRegistry) ((CompositeContext) runtime.getSystemContext().getContext(MockContextFactory.SYSTEM_CHILD))
// .getContext(MockContextFactory.POLICY_BUILDER_REGISTRY).getInstance(null);
// MockSyncInterceptor mockInterceptor = new MockSyncInterceptor();
// MockInterceptorBuilder interceptorBuilder = new MockInterceptorBuilder(mockInterceptor, false);
-// registry.registerTargetBuilder(interceptorBuilder);
+// builderRegistry.registerTargetBuilder(interceptorBuilder);
// runtime.getRootContext().registerModelObject(MockContextFactory.createCompositeComponent("test.module"));
// CompositeContext child = (CompositeContext) runtime.getRootContext().getContext("test.module");
// child.registerModelObject(MockContextFactory.createModuleWithEntryPoint(Scope.SESSION));
@@ -155,11 +155,11 @@
*/
public void testEPtoJavaStatelessInvoke() throws Throwable {
// RuntimeContext runtime = MockContextFactory.registerFooBinding(MockContextFactory.createJavaRuntime());
-// PolicyBuilderRegistry registry = (PolicyBuilderRegistry) ((CompositeContext) runtime.getSystemContext().getContext(MockContextFactory.SYSTEM_CHILD))
+// PolicyBuilderRegistry builderRegistry = (PolicyBuilderRegistry) ((CompositeContext) runtime.getSystemContext().getContext(MockContextFactory.SYSTEM_CHILD))
// .getContext(MockContextFactory.POLICY_BUILDER_REGISTRY).getInstance(null);
// MockSyncInterceptor mockInterceptor = new MockSyncInterceptor();
// MockInterceptorBuilder interceptorBuilder = new MockInterceptorBuilder(mockInterceptor, false);
-// registry.registerTargetBuilder(interceptorBuilder);
+// builderRegistry.registerTargetBuilder(interceptorBuilder);
// runtime.getRootContext().registerModelObject(MockContextFactory.createCompositeComponent("test.module"));
// CompositeContext child = (CompositeContext) runtime.getRootContext().getContext("test.module");
// child.registerModelObject(MockContextFactory.createModuleWithEntryPoint(Scope.STATELESS));
@@ -195,11 +195,11 @@
public void testEPtoJavaRequestInvoke() throws Throwable {
// RuntimeContext runtime = MockContextFactory.registerFooBinding(MockContextFactory.createJavaRuntime());
-// PolicyBuilderRegistry registry = (PolicyBuilderRegistry) ((CompositeContext) runtime.getSystemContext().getContext(MockContextFactory.SYSTEM_CHILD))
+// PolicyBuilderRegistry builderRegistry = (PolicyBuilderRegistry) ((CompositeContext) runtime.getSystemContext().getContext(MockContextFactory.SYSTEM_CHILD))
// .getContext(MockContextFactory.POLICY_BUILDER_REGISTRY).getInstance(null);
// MockSyncInterceptor mockInterceptor = new MockSyncInterceptor();
// MockInterceptorBuilder interceptorBuilder = new MockInterceptorBuilder(mockInterceptor, false);
-// registry.registerTargetBuilder(interceptorBuilder);
+// builderRegistry.registerTargetBuilder(interceptorBuilder);
// runtime.getRootContext().registerModelObject(MockContextFactory.createCompositeComponent("test.module"));
// CompositeContext child = (CompositeContext) runtime.getRootContext().getContext("test.module");
// child.registerModelObject(MockContextFactory.createModuleWithEntryPoint(Scope.REQUEST));
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/ExternalServiceProxyInvokeTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/ExternalServiceProxyInvokeTestCase.java?rev=406563&r1=406562&r2=406563&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/ExternalServiceProxyInvokeTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/ExternalServiceProxyInvokeTestCase.java Mon May 15 00:10:36 2006
@@ -15,11 +15,11 @@
*/
public void testProxyInvocation() throws Throwable {
// RuntimeContext runtime = MockContextFactory.registerFooBinding(MockContextFactory.createJavaRuntime());
-// PolicyBuilderRegistry registry = (PolicyBuilderRegistry) ((CompositeContext) runtime.getSystemContext().getContext(MockContextFactory.SYSTEM_CHILD))
+// PolicyBuilderRegistry builderRegistry = (PolicyBuilderRegistry) ((CompositeContext) runtime.getSystemContext().getContext(MockContextFactory.SYSTEM_CHILD))
// .getContext(MockContextFactory.POLICY_BUILDER_REGISTRY).getInstance(null);
// MockSyncInterceptor mockInterceptor = new MockSyncInterceptor();
// MockInterceptorBuilder interceptorBuilder = new MockInterceptorBuilder(mockInterceptor, false);
-// registry.registerTargetBuilder(interceptorBuilder);
+// builderRegistry.registerTargetBuilder(interceptorBuilder);
// runtime.getRootContext().registerModelObject(MockContextFactory.createCompositeComponent("test.module"));
// CompositeContext child = (CompositeContext) runtime.getRootContext().getContext("test.module");
// child.registerModelObject(MockContextFactory.createModuleWithEntryPointToExternalService());
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/JavaToExternalServiceTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/JavaToExternalServiceTestCase.java?rev=406563&r1=406562&r2=406563&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/JavaToExternalServiceTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/JavaToExternalServiceTestCase.java Mon May 15 00:10:36 2006
@@ -30,11 +30,11 @@
*/
public void testJavaToESInvoke() throws Exception {
// RuntimeContext runtime = MockContextFactory.registerFooBinding(MockContextFactory.createJavaRuntime());
-// PolicyBuilderRegistry registry = (PolicyBuilderRegistry) ((CompositeContext) runtime.getSystemContext().getContext(
+// PolicyBuilderRegistry builderRegistry = (PolicyBuilderRegistry) ((CompositeContext) runtime.getSystemContext().getContext(
// MockContextFactory.SYSTEM_CHILD)).getContext(MockContextFactory.POLICY_BUILDER_REGISTRY).getInstance(null);
// MockSyncInterceptor mockInterceptor = new MockSyncInterceptor();
// MockInterceptorBuilder interceptorBuilder = new MockInterceptorBuilder(mockInterceptor, false);
-// registry.registerTargetBuilder(interceptorBuilder);
+// builderRegistry.registerTargetBuilder(interceptorBuilder);
// runtime.getRootContext().registerModelObject(MockContextFactory.createCompositeComponent("test.module"));
// CompositeContext child = (CompositeContext) runtime.getRootContext().getContext("test.module");
// child.registerModelObject(MockContextFactory.createModuleWithExternalService());
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/invocation/ScopedPojoInvokerTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/invocation/ScopedPojoInvokerTestCase.java?rev=406563&r1=406562&r2=406563&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/invocation/ScopedPojoInvokerTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/invocation/ScopedPojoInvokerTestCase.java Mon May 15 00:10:36 2006
@@ -29,6 +29,7 @@
import org.apache.tuscany.spi.context.AtomicContext;
import org.apache.tuscany.spi.context.ScopeContext;
import org.apache.tuscany.spi.context.WorkContext;
+import org.apache.tuscany.model.Scope;
public class ScopedPojoInvokerTestCase extends TestCase {
@@ -51,7 +52,7 @@
WorkContext ctx = new WorkContextImpl();
ScopeContext<AtomicContext> scope = new ModuleScopeContext(ctx);
scope.start();
- JavaAtomicContext context = MockContextFactory.createJavaAtomicContext("foo", SimpleTargetImpl.class);
+ JavaAtomicContext context = MockContextFactory.createJavaAtomicContext("foo", SimpleTargetImpl.class, Scope.MODULE);
scope.register(context);
context.setScopeContext(scope);
ScopedJavaComponentInvoker invoker = new ScopedJavaComponentInvoker(echoMethod, context);
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockContextFactory.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockContextFactory.java?rev=406563&r1=406562&r2=406563&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockContextFactory.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockContextFactory.java Mon May 15 00:10:36 2006
@@ -31,23 +31,23 @@
import org.apache.tuscany.spi.wire.TargetInvocationChain;
import org.apache.tuscany.spi.wire.TargetInvoker;
import org.apache.tuscany.spi.wire.TargetWire;
-import org.apache.tuscany.spi.wire.WireFactoryInitException;
+import org.apache.tuscany.model.Scope;
/**
* @version $$Rev$$ $$Date$$
*/
public class MockContextFactory {
- public static JavaAtomicContext createJavaAtomicContext(String name, Class<?> clazz) throws NoSuchMethodException {
- return createJavaAtomicContext(name, clazz, false, null, null, null, null);
+ public static JavaAtomicContext createJavaAtomicContext(String name, Class<?> clazz, Scope scope) throws NoSuchMethodException {
+ return createJavaAtomicContext(name, clazz, scope, false, null, null, null, null);
}
- public static JavaAtomicContext createJavaAtomicContext(String name, Class<?> clazz, boolean eagerInit, EventInvoker<Object> initInvoker,
+ public static JavaAtomicContext createJavaAtomicContext(String name, Class<?> clazz, Scope scope,boolean eagerInit, EventInvoker<Object> initInvoker,
EventInvoker<Object> destroyInvoker, List<Injector> injectors, Map<String, Member> members) throws NoSuchMethodException {
List<Class<?>> serviceInterfaces = new ArrayList<Class<?>>();
serviceInterfaces.add(clazz);
- return new JavaAtomicContext(name, serviceInterfaces, createObjectFactory(clazz), eagerInit, initInvoker, destroyInvoker, injectors, members);
+ return new JavaAtomicContext(name, serviceInterfaces, createObjectFactory(clazz), scope, eagerInit, initInvoker, destroyInvoker, injectors, members);
}
/**
@@ -107,12 +107,12 @@
Interceptor targetHeadInterceptor,
MessageHandler targetRequestHeadHandler,
MessageHandler targetResponseHeadHandler) throws Exception {
- JavaAtomicContext targetContext = createJavaAtomicContext(targetName, targetClass);
+ JavaAtomicContext targetContext = createJavaAtomicContext(targetName, targetClass, targetScope.getScope());
TargetWire targetWire = createTargetWire(targetService.getName().substring(
targetService.getName().lastIndexOf('.') + 1), targetService, targetHeadInterceptor, targetRequestHeadHandler, targetResponseHeadHandler);
targetContext.addTargetWire(targetWire);
- JavaAtomicContext sourceContext = createJavaAtomicContext(sourceName, sourceClass, false, null, null, null, members);
+ JavaAtomicContext sourceContext = createJavaAtomicContext(sourceName, sourceClass, sourceScope.getScope(), false, null, null, null, members);
SourceWire sourceWire = createSourceWire(targetName, sourceReferenceClass, sourceHeadInterceptor,
sourceHeadRequestHandler, sourceHeadResponseHandler);
sourceContext.addSourceWire(sourceWire);
@@ -146,12 +146,12 @@
ScopeContext<AtomicContext> sourceScope,
String targetName, Class<?> targetService, Class<?> targetClass,
Map<String, Member> members, ScopeContext<AtomicContext> targetScope) throws Exception {
- JavaAtomicContext targetContext = createJavaAtomicContext(targetName, targetClass);
+ JavaAtomicContext targetContext = createJavaAtomicContext(targetName, targetClass,targetScope.getScope());
TargetWire targetWire = createTargetWire(targetService.getName().substring(
targetService.getName().lastIndexOf('.') + 1), targetService, null, null, null);
targetContext.addTargetWire(targetWire);
- JavaAtomicContext sourceContext = createJavaAtomicContext(sourceName, sourceClass, false, null, null, null, members);
+ JavaAtomicContext sourceContext = createJavaAtomicContext(sourceName, sourceClass, sourceScope.getScope(), false, null, null, null, members);
SourceWire sourceWire = createSourceWire(targetName, sourceReferenceClass, null, null, null);
List<SourceWire> factories = new ArrayList<SourceWire>();
factories.add(sourceWire);
@@ -170,25 +170,23 @@
public static <T> TargetWire<T> createTargetWire(String serviceName, Class<T> interfaze,
Interceptor headInterceptor,
MessageHandler headRequestHandler,
- MessageHandler headResponseHandler) throws WireFactoryInitException {
+ MessageHandler headResponseHandler) {
TargetWire<T> wire = new JDKTargetWire<T>();
wire.setBusinessInterface(interfaze);
wire.setServiceName(serviceName);
- wire.setInvocationChains(createTargetInvocationChains(interfaze, headInterceptor, headRequestHandler, headResponseHandler));
- wire.initialize();
+ wire.addInvocationChains(createTargetInvocationChains(interfaze, headInterceptor, headRequestHandler, headResponseHandler));
return wire;
}
public static <T> SourceWire<T> createSourceWire(String refName, Class<T> interfaze,
Interceptor headInterceptor,
MessageHandler headRequestHandler,
- MessageHandler headResponseHandler) throws WireFactoryInitException {
+ MessageHandler headResponseHandler) {
SourceWire<T> wire = new JDKSourceWire<T>();
wire.setReferenceName(refName);
- wire.setInvocationChains(createSourceInvocationChains(interfaze, headInterceptor, headRequestHandler, headResponseHandler));
+ wire.addInvocationChains(createSourceInvocationChains(interfaze, headInterceptor, headRequestHandler, headResponseHandler));
wire.setBusinessInterface(interfaze);
- wire.initialize();
return wire;
}
Added: incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockModelFactory.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockModelFactory.java?rev=406563&view=auto
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockModelFactory.java (added)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockModelFactory.java Mon May 15 00:10:36 2006
@@ -0,0 +1,22 @@
+package org.apache.tuscany.container.java.mock;
+
+import org.apache.tuscany.model.Component;
+import org.apache.tuscany.model.Implementation;
+import org.apache.tuscany.container.java.model.JavaImplementation;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+public class MockModelFactory {
+
+ private MockModelFactory() {
+ }
+
+ // static <T extends Component<?>>
+// public <T extends Implementation> Component<T> createComponent(T impl){
+// JavaImplementation impl2 = new JavaImplementation();
+// //impl2.setComponentType();
+//
+// return impl.newComponent();
+// }
+}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/AbstractScopeContext.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/AbstractScopeContext.java?rev=406563&r1=406562&r2=406563&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/AbstractScopeContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/AbstractScopeContext.java Mon May 15 00:10:36 2006
@@ -34,6 +34,10 @@
this.workContext = workContext;
}
+ public void setWorkContext(WorkContext workContext) {
+ this.workContext = workContext;
+ }
+
public void addListener(RuntimeEventListener listener) {
addListener(TRUE_FILTER, listener);
}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/HttpSessionScopeContext.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/HttpSessionScopeContext.java?rev=406563&r1=406562&r2=406563&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/HttpSessionScopeContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/HttpSessionScopeContext.java Mon May 15 00:10:36 2006
@@ -27,6 +27,10 @@
private final Map<AtomicContext, Map<Object, InstanceWrapper>> contexts;
private final Map<Object, List<InstanceWrapper>> destroyQueues;
+ public HttpSessionScopeContext(){
+ this(null);
+ }
+
public HttpSessionScopeContext(WorkContext workContext) {
super("Session Scope", workContext);
contexts = new ConcurrentHashMap<AtomicContext, Map<Object, InstanceWrapper>>();
Added: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/HttpSessionScopeObjectFactory.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/HttpSessionScopeObjectFactory.java?rev=406563&view=auto
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/HttpSessionScopeObjectFactory.java (added)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/HttpSessionScopeObjectFactory.java Mon May 15 00:10:36 2006
@@ -0,0 +1,14 @@
+package org.apache.tuscany.core.context.scope;
+
+import org.apache.tuscany.common.ObjectFactory;
+import org.apache.tuscany.common.ObjectCreationException;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+public class HttpSessionScopeObjectFactory implements ObjectFactory<HttpSessionScopeContext> {
+
+ public HttpSessionScopeContext getInstance() throws ObjectCreationException {
+ return new HttpSessionScopeContext();
+ }
+}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/ModuleScopeContext.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/ModuleScopeContext.java?rev=406563&r1=406562&r2=406563&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/ModuleScopeContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/ModuleScopeContext.java Mon May 15 00:10:36 2006
@@ -29,6 +29,10 @@
private final List<InstanceWrapper> destroyQueue;
private static final InstanceWrapper EMPTY = new EmptyWrapper();
+ public ModuleScopeContext(){
+ this(null);
+ }
+
public ModuleScopeContext(WorkContext workContext) {
super("Module Scope", workContext);
instanceContexts = new ConcurrentHashMap<AtomicContext, InstanceWrapper>();
Added: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/ModuleScopeObjectFactory.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/ModuleScopeObjectFactory.java?rev=406563&view=auto
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/ModuleScopeObjectFactory.java (added)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/ModuleScopeObjectFactory.java Mon May 15 00:10:36 2006
@@ -0,0 +1,14 @@
+package org.apache.tuscany.core.context.scope;
+
+import org.apache.tuscany.common.ObjectCreationException;
+import org.apache.tuscany.common.ObjectFactory;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+public class ModuleScopeObjectFactory implements ObjectFactory<ModuleScopeContext> {
+
+ public ModuleScopeContext getInstance() throws ObjectCreationException {
+ return new ModuleScopeContext();
+ }
+}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/RequestScopeContext.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/RequestScopeContext.java?rev=406563&r1=406562&r2=406563&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/RequestScopeContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/RequestScopeContext.java Mon May 15 00:10:36 2006
@@ -25,6 +25,10 @@
private final Map<AtomicContext, Map<Thread, InstanceWrapper>> contexts;
private final Map<Thread, List<InstanceWrapper>> destroyQueues;
+ public RequestScopeContext(){
+ this(null);
+ }
+
public RequestScopeContext(WorkContext workContext) {
super("Request Scope", workContext);
contexts = new ConcurrentHashMap<AtomicContext, Map<Thread, InstanceWrapper>>();
Added: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/RequestScopeObjectFactory.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/RequestScopeObjectFactory.java?rev=406563&view=auto
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/RequestScopeObjectFactory.java (added)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/RequestScopeObjectFactory.java Mon May 15 00:10:36 2006
@@ -0,0 +1,14 @@
+package org.apache.tuscany.core.context.scope;
+
+import org.apache.tuscany.common.ObjectFactory;
+import org.apache.tuscany.common.ObjectCreationException;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+public class RequestScopeObjectFactory implements ObjectFactory<RequestScopeContext> {
+
+ public RequestScopeContext getInstance() throws ObjectCreationException {
+ return new RequestScopeContext();
+ }
+}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/ScopeRegistryImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/ScopeRegistryImpl.java?rev=406563&r1=406562&r2=406563&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/ScopeRegistryImpl.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/ScopeRegistryImpl.java Mon May 15 00:10:36 2006
@@ -17,58 +17,68 @@
public class ScopeRegistryImpl implements ScopeRegistry {
private final Map<CompositeContext, ScopeContext> moduleScopeCache;
- private final Map<Scope, ObjectFactory<ScopeContext>> factoryCache;
+ private final Map<Scope, ScopeContext> scopeCache;
+ private final Map<Scope, ObjectFactory<? extends ScopeContext>> factoryCache;
private final WorkContext workContext;
public ScopeRegistryImpl(WorkContext workContext) {
assert(workContext != null);
moduleScopeCache = new ConcurrentHashMap<CompositeContext, ScopeContext>();
- factoryCache = new ConcurrentHashMap<Scope, ObjectFactory<ScopeContext>>();
+ scopeCache = new ConcurrentHashMap<Scope, ScopeContext>();
+ factoryCache = new ConcurrentHashMap<Scope, ObjectFactory<? extends ScopeContext>>();
this.workContext = workContext;
}
public ScopeContext getScopeContext(Scope scope) {
- CompositeContext remoteContext = workContext.getRemoteContext();
- assert(remoteContext != null): "Remote composite context next set";
if (Scope.MODULE == scope) {
+ CompositeContext remoteContext = workContext.getRemoteContext();
+ assert(remoteContext != null): "Remote composite context next set";
ScopeContext moduleScope = moduleScopeCache.get(remoteContext);
if (moduleScope == null) {
- ObjectFactory<ScopeContext> factory = factoryCache.get(scope);
+ ObjectFactory<? extends ScopeContext> factory = factoryCache.get(scope);
if (factory == null) {
ScopeNotFoundException e = new ScopeNotFoundException("Scope object factor not registered for scope");
e.setIdentifier("MODULE");
throw e;
}
moduleScope = factory.getInstance();
+ moduleScope.setWorkContext(workContext);
+ moduleScope.start();
moduleScopeCache.put(remoteContext, moduleScope);
}
return moduleScope;
- }
- ObjectFactory<ScopeContext> factory = factoryCache.get(scope);
- if (factory == null) {
- ScopeNotFoundException e = new ScopeNotFoundException("Scope object factor not registered for scope");
- switch (scope) {
- case SESSION:
- e.setIdentifier("SESSION");
- break;
- case REQUEST:
- e.setIdentifier("REQUEST");
- break;
- case STATELESS:
- e.setIdentifier("STATELESS");
- break;
- default:
- e.setIdentifier("UNKNOWN");
- break;
+ } else {
+ ScopeContext context = scopeCache.get(scope);
+ if (context == null) {
+ ObjectFactory<? extends ScopeContext> factory = factoryCache.get(scope);
+ if (factory == null) {
+ ScopeNotFoundException e = new ScopeNotFoundException("Scope object factory not registered for scope");
+ switch (scope) {
+ case SESSION:
+ e.setIdentifier("SESSION");
+ break;
+ case REQUEST:
+ e.setIdentifier("REQUEST");
+ break;
+ case STATELESS:
+ e.setIdentifier("STATELESS");
+ break;
+ default:
+ e.setIdentifier("UNKNOWN");
+ break;
+ }
+ throw e;
+ }
+ context = factory.getInstance();
+ context.setWorkContext(workContext);
+ context.start();
+ scopeCache.put(scope,context);
}
- throw e;
-
+ return context;
}
-
- return null;
}
- public void registerFactory(Scope scope, ObjectFactory<ScopeContext> factory) {
+ public <T extends ScopeContext> void registerFactory(Scope scope, ObjectFactory<T> factory) {
factoryCache.put(scope, factory);
}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/StatelessScopeContext.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/StatelessScopeContext.java?rev=406563&r1=406562&r2=406563&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/StatelessScopeContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/StatelessScopeContext.java Mon May 15 00:10:36 2006
@@ -27,6 +27,10 @@
*/
public class StatelessScopeContext extends AbstractScopeContext<AtomicContext> {
+ public StatelessScopeContext(){
+ this(null);
+ }
+
public StatelessScopeContext(WorkContext workContext) {
super("Stateless scope", workContext);
assert(workContext != null): "Work context was null";
Added: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/StatelessScopeObjectFactory.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/StatelessScopeObjectFactory.java?rev=406563&view=auto
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/StatelessScopeObjectFactory.java (added)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/StatelessScopeObjectFactory.java Mon May 15 00:10:36 2006
@@ -0,0 +1,14 @@
+package org.apache.tuscany.core.context.scope;
+
+import org.apache.tuscany.common.ObjectFactory;
+import org.apache.tuscany.common.ObjectCreationException;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+public class StatelessScopeObjectFactory implements ObjectFactory<StatelessScopeContext> {
+
+ public StatelessScopeContext getInstance() throws ObjectCreationException {
+ return new StatelessScopeContext();
+ }
+}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKSourceWire.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKSourceWire.java?rev=406563&r1=406562&r2=406563&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKSourceWire.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKSourceWire.java Mon May 15 00:10:36 2006
@@ -20,7 +20,6 @@
import org.apache.tuscany.core.util.MethodHashMap;
import org.apache.tuscany.spi.wire.SourceInvocationChain;
import org.apache.tuscany.spi.wire.SourceWire;
-import org.apache.tuscany.spi.wire.WireFactoryInitException;
import org.apache.tuscany.spi.wire.WireInvocationHandler;
/**
@@ -31,33 +30,23 @@
*/
public class JDKSourceWire<T> implements SourceWire<T> {
- private static final int UNINITIALIZED = 0;
-
- private static final int INITIALIZED = 1;
-
- private int state = UNINITIALIZED;
-
- private Class<T>[] businessInterfaceArray;
-
- private Map<Method, SourceInvocationChain> methodToInvocationConfig;
+ private Class<T>[] businessInterfaces;
+ private Map<Method, SourceInvocationChain> invocationChains = new MethodHashMap<SourceInvocationChain>();
@SuppressWarnings("unchecked")
public T createProxy() {
- if (state != INITIALIZED) {
- throw new IllegalStateException("Proxy factory not INITIALIZED [" + state + "]");
- }
WireInvocationHandler handler = new JDKInvocationHandler();
- handler.setConfiguration(methodToInvocationConfig);
- return (T) Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(), businessInterfaceArray, handler);
+ handler.setConfiguration(invocationChains);
+ return (T) Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(), businessInterfaces, handler);
}
@SuppressWarnings("unchecked")
public void setBusinessInterface(Class<T> interfaze) {
- businessInterfaceArray = new Class[]{interfaze};
+ businessInterfaces = new Class[]{interfaze};
}
public Class<T> getBusinessInterface() {
- return businessInterfaceArray[0];
+ return businessInterfaces[0];
}
public void addInterface(Class<?> claz) {
@@ -65,31 +54,19 @@
}
public Class[] getImplementatedInterfaces() {
- return businessInterfaceArray;
+ return businessInterfaces;
}
- public void initialize() throws WireFactoryInitException {
- if (state != UNINITIALIZED) {
- throw new IllegalStateException("Proxy factory in wrong state [" + state + "]");
- }
- if (invocationChains != null) {
- methodToInvocationConfig = new MethodHashMap<SourceInvocationChain>(invocationChains.size());
- for (Map.Entry<Method, SourceInvocationChain> entry : invocationChains.entrySet()) {
- Method method = entry.getKey();
- methodToInvocationConfig.put(method, entry.getValue());
- }
- }
- state = INITIALIZED;
- }
-
- private Map<Method, SourceInvocationChain> invocationChains;
-
public Map<Method, SourceInvocationChain> getInvocationChains() {
return invocationChains;
}
- public void setInvocationChains(Map<Method, SourceInvocationChain> chains) {
- invocationChains = chains;
+ public void addInvocationChains(Map<Method, SourceInvocationChain> chains) {
+ invocationChains.putAll(chains);
+ }
+
+ public void addInvocationChain(Method method, SourceInvocationChain chain) {
+ invocationChains.put(method, chain);
}
public String getReferenceName() {
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKTargetWire.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKTargetWire.java?rev=406563&r1=406562&r2=406563&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKTargetWire.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKTargetWire.java Mon May 15 00:10:36 2006
@@ -7,7 +7,6 @@
import org.apache.tuscany.core.util.MethodHashMap;
import org.apache.tuscany.spi.wire.TargetInvocationChain;
import org.apache.tuscany.spi.wire.TargetWire;
-import org.apache.tuscany.spi.wire.WireFactoryInitException;
import org.apache.tuscany.spi.wire.WireInvocationHandler;
/**
@@ -19,49 +18,24 @@
*/
public class JDKTargetWire<T> implements TargetWire<T> {
- private static final int UNINITIALIZED = 0;
-
- private static final int INITIALIZED = 1;
-
- private int state = UNINITIALIZED;
-
- private Class[] businessInterfaceArray;
-
- private Map<Method, TargetInvocationChain> methodToInvocationConfig;
-
- //private WireTargetConfiguration configuration;
-
- public void initialize() throws WireFactoryInitException {
- if (state != UNINITIALIZED) {
- throw new IllegalStateException("Wire factory in wrong state [" + state + "]");
- }
- if (invocationChains != null) {
- methodToInvocationConfig = new MethodHashMap<TargetInvocationChain>(invocationChains.size());
- for (Map.Entry<Method, TargetInvocationChain> entry : invocationChains.entrySet()) {
- Method method = entry.getKey();
- methodToInvocationConfig.put(method, entry.getValue());
- }
- }
- state = INITIALIZED;
- }
+ private Class[] businessInterfaces;
+ private Map<Method, TargetInvocationChain> invocationChains = new MethodHashMap<TargetInvocationChain>();
+ private String serviceName;
@SuppressWarnings("unchecked")
public T createProxy() {
- if (state != INITIALIZED) {
- throw new IllegalStateException("Proxy factory not INITIALIZED [" + state + "]");
- }
WireInvocationHandler handler = new JDKInvocationHandler();
- handler.setConfiguration(methodToInvocationConfig);
- return (T) Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(), businessInterfaceArray, handler);
+ handler.setConfiguration(invocationChains);
+ return (T) Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(), businessInterfaces, handler);
}
public void setBusinessInterface(Class interfaze) {
- businessInterfaceArray = new Class[]{interfaze};
+ businessInterfaces = new Class[]{interfaze};
}
@SuppressWarnings("unchecked")
public Class<T> getBusinessInterface() {
- return businessInterfaceArray[0];
+ return businessInterfaces[0];
}
public void addInterface(Class claz) {
@@ -69,11 +43,9 @@
}
public Class[] getImplementedInterfaces() {
- return businessInterfaceArray;
+ return businessInterfaces;
}
- private String serviceName;
-
public String getServiceName() {
return serviceName;
}
@@ -82,14 +54,16 @@
this.serviceName = serviceName;
}
- private Map<Method, TargetInvocationChain> invocationChains;
-
public Map<Method, TargetInvocationChain> getInvocationChains() {
return invocationChains;
}
- public void setInvocationChains(Map<Method, TargetInvocationChain> chains) {
- this.invocationChains = chains;
+ public void addInvocationChains(Map<Method, TargetInvocationChain> chains) {
+ invocationChains.putAll(chains);
+ }
+
+ public void addInvocationChain(Method method, TargetInvocationChain chain) {
+ invocationChains.put(method, chain);
}
}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/system/WireServiceImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/system/WireServiceImpl.java?rev=406563&r1=406562&r2=406563&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/system/WireServiceImpl.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/system/WireServiceImpl.java Mon May 15 00:10:36 2006
@@ -1,8 +1,6 @@
package org.apache.tuscany.core.wire.system;
import java.lang.reflect.Method;
-import java.util.HashMap;
-import java.util.Map;
import java.util.Set;
import org.apache.tuscany.core.util.JavaIntrospectionHelper;
@@ -15,9 +13,9 @@
import org.apache.tuscany.spi.policy.PolicyBuilderRegistry;
import org.apache.tuscany.spi.wire.SourceInvocationChain;
import org.apache.tuscany.spi.wire.SourceWire;
+import org.apache.tuscany.spi.wire.TargetInvocationChain;
import org.apache.tuscany.spi.wire.TargetWire;
import org.apache.tuscany.spi.wire.WireFactoryService;
-import org.apache.tuscany.spi.wire.TargetInvocationChain;
import org.apache.tuscany.spi.wire.WireService;
import org.osoa.sca.annotations.Init;
import org.osoa.sca.annotations.Scope;
@@ -39,6 +37,10 @@
}
+ public WireServiceImpl(WireFactoryService wireFactoryService) {
+ this.wireFactoryService = wireFactoryService;
+ }
+
public WireServiceImpl(WireFactoryService wireFactoryService, PolicyBuilderRegistry registry) {
this.wireFactoryService = wireFactoryService;
this.policyRegistry = registry;
@@ -66,13 +68,11 @@
wire.setBusinessInterface(interfaze);
wire.setReferenceName(name);
- Map<Method, SourceInvocationChain> chains = new HashMap<Method, SourceInvocationChain>();
Set<Method> javaMethods = JavaIntrospectionHelper.getAllUniqueMethods(interfaze);
for (Method method : javaMethods) {
SourceInvocationChain chain = new SourceInvocationChainImpl(method);
- chains.put(method, chain);
+ wire.addInvocationChain(method, chain);
}
- wire.setInvocationChains(chains);
if (policyRegistry != null) {
// invoke policy builders
policyRegistry.buildSource(reference, wire);
@@ -87,13 +87,11 @@
wire.setBusinessInterface(interfaze);
wire.setServiceName(name);
- Map<Method, TargetInvocationChain> chains = new HashMap<Method, TargetInvocationChain>();
Set<Method> javaMethods = JavaIntrospectionHelper.getAllUniqueMethods(interfaze);
for (Method method : javaMethods) {
TargetInvocationChain chain = new TargetInvocationChainImpl(method);
- chains.put(method, chain);
+ wire.addInvocationChain(method, chain);
}
- wire.setInvocationChains(chains);
if (policyRegistry != null) {
// invoke policy builders
policyRegistry.buildTarget(service, wire);
Added: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/ScopeRegistryTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/ScopeRegistryTestCase.java?rev=406563&view=auto
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/ScopeRegistryTestCase.java (added)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/ScopeRegistryTestCase.java Mon May 15 00:10:36 2006
@@ -0,0 +1,47 @@
+package org.apache.tuscany.core.context.scope;
+
+import junit.framework.TestCase;
+import org.apache.tuscany.core.context.CompositeContextImpl;
+import org.apache.tuscany.core.context.WorkContextImpl;
+import org.apache.tuscany.model.Scope;
+import org.apache.tuscany.spi.context.CompositeContext;
+import org.apache.tuscany.spi.context.ScopeRegistry;
+import org.apache.tuscany.spi.context.WorkContext;
+import org.apache.tuscany.spi.context.ScopeContext;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+public class ScopeRegistryTestCase extends TestCase {
+
+ public void testRemotableIsolation() throws Exception {
+ CompositeContext context1 = new CompositeContextImpl();
+ CompositeContext context2 = new CompositeContextImpl();
+ WorkContext workContext = new WorkContextImpl();
+ ScopeRegistry scopeRegistry = new ScopeRegistryImpl(workContext);
+ scopeRegistry.registerFactory(Scope.MODULE, new ModuleScopeObjectFactory());
+ workContext.setRemoteContext(context1);
+ ScopeContext scope1 = scopeRegistry.getScopeContext(Scope.MODULE);
+ workContext.setRemoteContext(context2);
+ ScopeContext scope2 = scopeRegistry.getScopeContext(Scope.MODULE);
+ assertNotSame(scope1,scope2);
+ workContext.setRemoteContext(context1);
+ assertSame(scope1,scopeRegistry.getScopeContext(Scope.MODULE));
+ workContext.setRemoteContext(context2);
+ assertSame(scope2,scopeRegistry.getScopeContext(Scope.MODULE));
+ }
+
+ public void testScopeContextCreation() throws Exception {
+ WorkContext workContext = new WorkContextImpl();
+ ScopeRegistry scopeRegistry = new ScopeRegistryImpl(workContext);
+ scopeRegistry.registerFactory(Scope.REQUEST, new RequestScopeObjectFactory());
+ scopeRegistry.registerFactory(Scope.SESSION, new HttpSessionScopeObjectFactory());
+ ScopeContext request = scopeRegistry.getScopeContext(Scope.REQUEST);
+ assertTrue(request instanceof RequestScopeContext);
+ assertSame(request,scopeRegistry.getScopeContext(Scope.REQUEST));
+ ScopeContext session = scopeRegistry.getScopeContext(Scope.SESSION);
+ assertTrue(session instanceof HttpSessionScopeContext);
+ assertSame(session,scopeRegistry.getScopeContext(Scope.SESSION));
+ assertNotSame(request,session);
+ }
+}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/AtomicContextToReferenceContextTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/AtomicContextToReferenceContextTestCase.java?rev=406563&r1=406562&r2=406563&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/AtomicContextToReferenceContextTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/AtomicContextToReferenceContextTestCase.java Mon May 15 00:10:36 2006
@@ -20,14 +20,13 @@
import org.apache.tuscany.core.system.context.SystemCompositeContextImpl;
import org.apache.tuscany.spi.context.ReferenceContext;
import org.apache.tuscany.spi.context.WorkContext;
-import org.apache.tuscany.spi.wire.WireFactoryInitException;
/**
* @version $$Rev$$ $$Date$$
*/
public class AtomicContextToReferenceContextTestCase extends TestCase {
- public void testWireResolution() throws NoSuchMethodException, WireFactoryInitException {
+ public void testWireResolution() throws NoSuchMethodException{
WorkContext ctx = new WorkContextImpl();
ModuleScopeContext scope = new ModuleScopeContext(ctx);
SystemCompositeContext context = new SystemCompositeContextImpl();
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/MockContextFactory.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/MockContextFactory.java?rev=406563&r1=406562&r2=406563&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/MockContextFactory.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/MockContextFactory.java Mon May 15 00:10:36 2006
@@ -24,7 +24,6 @@
import org.apache.tuscany.spi.context.ScopeContext;
import org.apache.tuscany.spi.wire.TargetInvocationChain;
import org.apache.tuscany.spi.wire.TargetWire;
-import org.apache.tuscany.spi.wire.WireFactoryInitException;
import org.osoa.sca.annotations.Destroy;
import org.osoa.sca.annotations.Init;
@@ -126,12 +125,11 @@
return new SystemAtomicContextImpl(name, serviceInterfaces, createObjectFactory(clazz), eagerInit, initInvoker, destroyInvoker, injectors);
}
- public static <T> TargetWire<T> createTargetWireFactory(String serviceName, Class<T> interfaze) throws WireFactoryInitException {
+ public static <T> TargetWire<T> createTargetWireFactory(String serviceName, Class<T> interfaze) {
TargetWire<T> wire = new JDKTargetWire<T>();
wire.setServiceName(serviceName);
wire.setBusinessInterface(interfaze);
- wire.setInvocationChains(createTargetInvocationConfigurations(interfaze));
- wire.initialize();
+ wire.addInvocationChains(createTargetInvocationConfigurations(interfaze));
return wire;
}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKWireFactoryServiceTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKWireFactoryServiceTestCase.java?rev=406563&r1=406562&r2=406563&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKWireFactoryServiceTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKWireFactoryServiceTestCase.java Mon May 15 00:10:36 2006
@@ -14,10 +14,8 @@
package org.apache.tuscany.core.wire.jdk;
import java.lang.reflect.Method;
-import java.util.Map;
import junit.framework.TestCase;
-import org.apache.tuscany.core.util.MethodHashMap;
import org.apache.tuscany.core.wire.InvokerInterceptor;
import org.apache.tuscany.core.wire.SourceInvocationChainImpl;
import org.apache.tuscany.core.wire.TargetInvocationChainImpl;
@@ -25,8 +23,6 @@
import org.apache.tuscany.core.wire.mock.MockSyncInterceptor;
import org.apache.tuscany.core.wire.mock.SimpleTarget;
import org.apache.tuscany.core.wire.mock.SimpleTargetImpl;
-import org.apache.tuscany.spi.wire.SourceInvocationChain;
-import org.apache.tuscany.spi.wire.TargetInvocationChain;
public class JDKWireFactoryServiceTestCase extends TestCase {
@@ -47,13 +43,10 @@
source.setTargetInterceptor(new InvokerInterceptor());
source.setTargetInvoker(new MockStaticInvoker(hello, new SimpleTargetImpl()));
source.build();
- Map<Method, SourceInvocationChain> configs = new MethodHashMap<SourceInvocationChain>();
- configs.put(hello, source);
JDKSourceWire<SimpleTarget> factory = new JDKSourceWire<SimpleTarget>();
factory.setReferenceName("foo");
- factory.setInvocationChains(configs);
+ factory.addInvocationChain(hello, source);
factory.setBusinessInterface(SimpleTarget.class);
- factory.initialize();
SimpleTarget instance = factory.createProxy();
assertEquals("foo", instance.hello("foo"));
}
@@ -65,12 +58,9 @@
source.addInterceptor(new InvokerInterceptor());
source.setTargetInvoker(new MockStaticInvoker(hello, new SimpleTargetImpl()));
source.build();
- Map<Method, TargetInvocationChain> configs = new MethodHashMap<TargetInvocationChain>();
- configs.put(hello, source);
JDKTargetWire<SimpleTarget> factory = new JDKTargetWire<SimpleTarget>();
- factory.setInvocationChains(configs);
+ factory.addInvocationChain(hello, source);
factory.setBusinessInterface(SimpleTarget.class);
- factory.initialize();
SimpleTarget instance = factory.createProxy();
assertEquals("foo", instance.hello("foo"));
}
Modified: incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ScopeContext.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ScopeContext.java?rev=406563&r1=406562&r2=406563&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ScopeContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ScopeContext.java Mon May 15 00:10:36 2006
@@ -29,22 +29,35 @@
*/
public interface ScopeContext<T extends Context> extends Lifecycle, RuntimeEventListener {
- public Scope getScope();
+ /**
+ * Returns the scope value representing the scope context
+ */
+ Scope getScope();
+
+ /**
+ * Sets the work context used by the scope container
+ */
+ void setWorkContext(WorkContext workContext);
- public void register(T context);
+ /**
+ * Registers a context with the scope context
+ */
+ void register(T context);
/**
* Returns an instance associated with the current context
*
* @throws TargetException
*/
- public Object getInstance(T context) throws TargetException;
+ Object getInstance(T context) throws TargetException;
/**
+ * Returns the instance wrapper associated with the current context
+ *
* @throws TargetException
*/
- public InstanceWrapper getInstanceContext(T context) throws TargetException;
+ InstanceWrapper getInstanceContext(T context) throws TargetException;
}
Modified: incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ScopeRegistry.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ScopeRegistry.java?rev=406563&r1=406562&r2=406563&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ScopeRegistry.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ScopeRegistry.java Mon May 15 00:10:36 2006
@@ -23,7 +23,7 @@
ScopeContext getScopeContext(Scope scope) throws ScopeNotFoundException;
- void registerFactory(Scope scope, ObjectFactory<ScopeContext> factory);
+ <T extends ScopeContext> void registerFactory(Scope scope, ObjectFactory<T> factory);
void deregisterFactory(Scope scope);
Modified: incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentBuilderExtension.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentBuilderExtension.java?rev=406563&r1=406562&r2=406563&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentBuilderExtension.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentBuilderExtension.java Mon May 15 00:10:36 2006
@@ -1,42 +1,57 @@
package org.apache.tuscany.spi.extension;
-import org.apache.tuscany.spi.builder.ComponentBuilder;
+import org.apache.tuscany.model.Component;
+import org.apache.tuscany.model.ComponentType;
+import org.apache.tuscany.model.Implementation;
+import org.apache.tuscany.model.Reference;
+import org.apache.tuscany.model.Scope;
+import org.apache.tuscany.model.Service;
+import org.apache.tuscany.spi.annotation.Autowire;
import org.apache.tuscany.spi.builder.BuilderConfigException;
import org.apache.tuscany.spi.builder.BuilderRegistry;
-import org.apache.tuscany.spi.context.Context;
-import org.apache.tuscany.spi.context.CompositeContext;
+import org.apache.tuscany.spi.builder.ComponentBuilder;
+import org.apache.tuscany.spi.context.AtomicContext;
import org.apache.tuscany.spi.context.ComponentContext;
-import org.apache.tuscany.spi.annotation.Autowire;
-import org.apache.tuscany.spi.wire.WireService;
-import org.apache.tuscany.spi.wire.TargetWire;
+import org.apache.tuscany.spi.context.CompositeContext;
+import org.apache.tuscany.spi.context.Context;
+import org.apache.tuscany.spi.context.ScopeRegistry;
+import org.apache.tuscany.spi.context.ScopeContext;
import org.apache.tuscany.spi.wire.SourceWire;
-import org.apache.tuscany.model.Implementation;
-import org.apache.tuscany.model.Component;
-import org.apache.tuscany.model.Service;
-import org.apache.tuscany.model.ComponentType;
-import org.apache.tuscany.model.Reference;
-import org.osoa.sca.annotations.Scope;
+import org.apache.tuscany.spi.wire.TargetWire;
+import org.apache.tuscany.spi.wire.WireService;
import org.osoa.sca.annotations.Init;
/**
* @version $$Rev$$ $$Date$$
*/
-@Scope("MODULE")
+@org.osoa.sca.annotations.Scope("MODULE")
public abstract class ComponentBuilderExtension<I extends Implementation<?>> implements ComponentBuilder<I> {
- protected BuilderRegistry registry;
+ protected BuilderRegistry builderRegistry;
protected WireService wireService;
+ protected ScopeRegistry scopeRegistry;
@Autowire
- public void setRegistry(BuilderRegistry registry) {
- this.registry = registry;
+ public void setBuilderRegistry(BuilderRegistry registry) {
+ this.builderRegistry = registry;
+ }
+
+ @Autowire
+ public void setWireService(WireService wireService) {
+ this.wireService = wireService;
+ }
+
+ @Autowire
+ public void setScopeRegistry(ScopeRegistry scopeRegistry) {
+ this.scopeRegistry = scopeRegistry;
}
@Init(eager = true)
- public void init(){
- registry.register(this);
+ public void init() {
+ builderRegistry.register(this);
}
+ @SuppressWarnings("unchecked")
public Context build(CompositeContext parent, Component<I> component) throws BuilderConfigException {
ComponentType componentType = component.getImplementation().getComponentType();
ComponentContext context = createContext(parent, component);
@@ -49,6 +64,21 @@
for (Reference reference : componentType.getReferences().values()) {
SourceWire wire = wireService.createSourceWire(reference);
context.addSourceWire(wire);
+ }
+ //TODO this could be moved up to the runtime
+ if (context instanceof AtomicContext) {
+ AtomicContext ctx = (AtomicContext) context;
+ Scope scope = ctx.getScope();
+ if (scope == null) {
+ scope = Scope.STATELESS;
+ }
+ ScopeContext scopeContext = scopeRegistry.getScopeContext(scope);
+ if (scopeContext == null){
+ throw new BuilderConfigException("Scope context not registered for scope "+ scope);
+ }
+ ctx.setScopeContext(scopeContext);
+ scopeContext.register(ctx);
+
}
return context;
}
Modified: incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/loader/StAXLoaderRegistry.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/loader/StAXLoaderRegistry.java?rev=406563&r1=406562&r2=406563&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/loader/StAXLoaderRegistry.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/loader/StAXLoaderRegistry.java Mon May 15 00:10:36 2006
@@ -28,11 +28,11 @@
* Loaders will typically be contributed to the system by any extension that needs to
* handle extension specific information contained in some XML configuration file.
* The loader can be contributed as a system component with an autowire reference
- * to this registry which is used during initialization to actually register.
+ * to this builderRegistry which is used during initialization to actually register.
* </p>
- * This registry can also be used to parse an input stream, dispatching to the
+ * This builderRegistry can also be used to parse an input stream, dispatching to the
* appropriate loader for each element accepted. Loaders can call back to the
- * registry to load sub-elements that they are not able to handle directly.
+ * builderRegistry to load sub-elements that they are not able to handle directly.
*
* @version $Rev$ $Date$
*/
Modified: incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/policy/PolicyBuilderRegistry.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/policy/PolicyBuilderRegistry.java?rev=406563&r1=406562&r2=406563&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/policy/PolicyBuilderRegistry.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/policy/PolicyBuilderRegistry.java Mon May 15 00:10:36 2006
@@ -9,7 +9,7 @@
import org.apache.tuscany.spi.wire.TargetWire;
/**
- * A System registry for policy builders.
+ * A System builderRegistry for policy builders.
* <p/>
* Policy builders operate on either a source- or target-side wire and typically are registered by runtime
* extensions through {@link #registerTargetBuilder} or {@link #registerSourceBuilder}
Modified: incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/SourceWire.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/SourceWire.java?rev=406563&r1=406562&r2=406563&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/SourceWire.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/SourceWire.java Mon May 15 00:10:36 2006
@@ -24,36 +24,40 @@
public interface SourceWire<T> {
/**
- * Prepares the factory. This will typically be called at buildSource time, after bridging source- and target-side invocation chains.
- *
- * @throws WireFactoryInitException if an error is encountered during initialization
+ * Returns the name of the source reference
*/
- public void initialize() throws WireFactoryInitException;
+ String getReferenceName();
+
+ /**
+ * Sets the name of the source reference
+ */
+ void setReferenceName(String name);
+
/**
* Returns a proxy for a service specified by a reference or target
*/
- public T createProxy() throws ProxyCreationException;
+ T createProxy() throws ProxyCreationException;
/**
* Sets the primary interface type generated proxies implement
*/
- public void setBusinessInterface(Class<T> interfaze);
+ void setBusinessInterface(Class<T> interfaze);
/**
* Returns the primary interface type implemented by generated proxies
*/
- public Class<T> getBusinessInterface();
+ Class<T> getBusinessInterface();
/**
* Adds an interface type generated proxies implement
*/
- public void addInterface(Class<?> claz);
+ void addInterface(Class<?> claz);
/**
* Returns an array of all interfaces implemented by generated proxies
*/
- public Class[] getImplementatedInterfaces();
+ Class[] getImplementatedInterfaces();
/**
* Returns the invocation configuration for each operation on a service specified by a reference or a
@@ -61,13 +65,8 @@
*/
Map<Method, SourceInvocationChain> getInvocationChains();
- void setInvocationChains(Map<Method, SourceInvocationChain> chains);
+ void addInvocationChains(Map<Method, SourceInvocationChain> chains);
- /**
- * Returns the name of the source reference
- */
- String getReferenceName();
-
- void setReferenceName(String name);
+ void addInvocationChain(Method method, SourceInvocationChain chains);
}
Modified: incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/TargetWire.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/TargetWire.java?rev=406563&r1=406562&r2=406563&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/TargetWire.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/TargetWire.java Mon May 15 00:10:36 2006
@@ -24,11 +24,15 @@
public interface TargetWire<T> {
/**
- * Prepares the factory. This will typically be called at buildSource time, after bridging source- and target-side invocation chains.
- *
- * @throws WireFactoryInitException if an error is encountered during initialization
+ * Returns the name of the target service of the wire
*/
- void initialize() throws WireFactoryInitException;
+ String getServiceName();
+
+ /**
+ * Sets the name of the target service of the wire
+ */
+ void setServiceName(String name);
+
/**
* Returns a proxy for a service specified by a reference or target
@@ -56,18 +60,13 @@
Class[] getImplementedInterfaces();
/**
- * Returns the name of the target service specified by the wire
- */
- String getServiceName();
-
- void setServiceName(String name);
-
- /**
* Returns the invocation configuration for each operation on a service specified by a reference or a
* target service.
*/
Map<Method, TargetInvocationChain> getInvocationChains();
- void setInvocationChains(Map<Method, TargetInvocationChain> chains);
+ void addInvocationChains(Map<Method, TargetInvocationChain> chains);
+
+ void addInvocationChain(Method method, TargetInvocationChain chain);
}