summaryrefslogtreecommitdiffstats
path: root/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes
diff options
context:
space:
mode:
Diffstat (limited to 'tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes')
-rw-r--r--tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/BasicModuleScopeTestCase.java139
-rw-r--r--tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/BasicRequestScopeTestCase.java158
-rw-r--r--tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/BasicSessionScopeTestCase.java238
-rw-r--r--tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/BasicStatelessScopeTestCase.java129
-rw-r--r--tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/CompositeScopeTestCase.java188
-rw-r--r--tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/DependencyLifecycleTestCase.java93
-rw-r--r--tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/ModuleScopeLifecycleTestCase.java248
-rw-r--r--tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/OrderException.java38
-rw-r--r--tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/OrderedDependentPojo.java34
-rw-r--r--tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/OrderedEagerInitPojo.java56
-rw-r--r--tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/OrderedInitPojo.java56
-rw-r--r--tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/RequestScopeLifecycleTestCase.java166
-rw-r--r--tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/RequestScopedOrderedInitPojo.java56
-rw-r--r--tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/SessionScopeLifecycleTestCase.java176
-rw-r--r--tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/SessionScopedOrderedInitPojo.java56
15 files changed, 0 insertions, 1831 deletions
diff --git a/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/BasicModuleScopeTestCase.java b/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/BasicModuleScopeTestCase.java
deleted file mode 100644
index 557f306ad2..0000000000
--- a/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/BasicModuleScopeTestCase.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.tuscany.container.java.scopes;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-import org.apache.tuscany.container.java.builder.JavaContextFactoryBuilder;
-import org.apache.tuscany.container.java.mock.MockFactory;
-import org.apache.tuscany.container.java.mock.components.ModuleScopeComponentImpl;
-import org.apache.tuscany.container.java.mock.components.ModuleScopeInitDestroyComponent;
-import org.apache.tuscany.core.builder.BuilderException;
-import org.apache.tuscany.core.builder.ContextFactory;
-import org.apache.tuscany.core.builder.system.DefaultPolicyBuilderRegistry;
-import org.apache.tuscany.core.builder.system.PolicyBuilderRegistry;
-import org.apache.tuscany.core.config.ComponentTypeIntrospector;
-import org.apache.tuscany.core.config.ConfigurationLoadException;
-import org.apache.tuscany.core.context.Context;
-import org.apache.tuscany.core.context.EventContext;
-import org.apache.tuscany.core.context.event.ModuleStart;
-import org.apache.tuscany.core.context.event.ModuleStop;
-import org.apache.tuscany.core.context.impl.EventContextImpl;
-import org.apache.tuscany.core.context.scope.ModuleScopeContext;
-import org.apache.tuscany.core.message.impl.MessageFactoryImpl;
-import org.apache.tuscany.core.wire.jdk.JDKWireFactoryFactory;
-import org.apache.tuscany.core.wire.service.DefaultWireFactoryService;
-import org.apache.tuscany.core.wire.service.WireFactoryService;
-import org.apache.tuscany.model.assembly.AtomicComponent;
-import org.apache.tuscany.model.assembly.ComponentType;
-import org.apache.tuscany.model.assembly.Scope;
-
-/**
- * Unit tests for the module scope container
- *
- * @version $Rev$ $Date$
- */
-public class BasicModuleScopeTestCase extends TestCase {
-
- /**
- * Tests instance identity is properly maintained
- */
- public void testInstanceManagement() throws Exception {
- EventContext ctx = new EventContextImpl();
- ModuleScopeContext scope = new ModuleScopeContext(ctx);
- scope.registerFactories(createConfigurations());
- scope.start();
- // first request
- scope.onEvent(new ModuleStart(this));
- ModuleScopeComponentImpl comp1 = (ModuleScopeComponentImpl) scope.getContext("TestService1").getInstance(null);
- Assert.assertNotNull(comp1);
- // second request
- ModuleScopeComponentImpl comp2 = (ModuleScopeComponentImpl) scope.getContext("TestService1").getInstance(null);
- Assert.assertNotNull(comp2);
- Assert.assertSame(comp1, comp2);
- scope.onEvent(new ModuleStop(this));
- scope.stop();
- }
-
- public void testSetNullComponents() throws Exception {
- EventContext ctx = new EventContextImpl();
- ModuleScopeContext scope = new ModuleScopeContext(ctx);
- scope.registerFactories(createConfigurations());
- scope.start();
- scope.onEvent(new ModuleStart(this));
- scope.onEvent(new ModuleStop(this));
- scope.stop();
- }
-
- public void testRegisterContextBeforeStart() throws Exception {
- EventContext ctx = new EventContextImpl();
- ModuleScopeContext scope = new ModuleScopeContext(ctx);
- scope.registerFactories(createConfigurations());
- scope.start();
- scope.registerFactory(createConfiguration("NewTestService"));
- scope.onEvent(new ModuleStart(this));
- ModuleScopeInitDestroyComponent comp2 = (ModuleScopeInitDestroyComponent) scope.getContext("NewTestService").getInstance(null);
- Assert.assertNotNull(comp2);
- Assert.assertTrue(comp2.isInitialized());
- scope.onEvent(new ModuleStop(this));
- Assert.assertTrue(comp2.isDestroyed());
- scope.stop();
- }
-
- public void testRegisterContextAfterStart() throws Exception {
- EventContext ctx = new EventContextImpl();
- ModuleScopeContext scope = new ModuleScopeContext(ctx);
- scope.start();
- scope.registerFactory(createConfiguration("NewTestService"));
- scope.onEvent(new ModuleStart(this));
- scope.registerFactories(createConfigurations());
- ModuleScopeInitDestroyComponent comp2 = (ModuleScopeInitDestroyComponent) scope.getContext("NewTestService").getInstance(null);
- Assert.assertNotNull(comp2);
- Assert.assertTrue(comp2.isInitialized());
- scope.onEvent(new ModuleStop(this));
- Assert.assertTrue(comp2.isDestroyed());
- scope.stop();
- }
-
-
- private List<ContextFactory<Context>> createConfigurations() throws BuilderException, ConfigurationLoadException {
- PolicyBuilderRegistry policyRegistry = new DefaultPolicyBuilderRegistry();
- WireFactoryService wireService = new DefaultWireFactoryService(new MessageFactoryImpl(), new JDKWireFactoryFactory(), policyRegistry);
- JavaContextFactoryBuilder builder = new JavaContextFactoryBuilder(wireService);
- AtomicComponent component = MockFactory.createComponent("TestService1", ModuleScopeComponentImpl.class, Scope.MODULE);
- builder.build(component);
- List<ContextFactory<Context>> configs = new ArrayList<ContextFactory<Context>>();
- configs.add((ContextFactory<Context>) component.getContextFactory());
- return configs;
- }
-
- private ContextFactory<Context> createConfiguration(String name) throws BuilderException, ConfigurationLoadException {
- PolicyBuilderRegistry policyRegistry = new DefaultPolicyBuilderRegistry();
- WireFactoryService wireService = new DefaultWireFactoryService(new MessageFactoryImpl(), new JDKWireFactoryFactory(), policyRegistry);
- JavaContextFactoryBuilder builder = new JavaContextFactoryBuilder(wireService);
- AtomicComponent component = MockFactory.createComponent(name, ModuleScopeInitDestroyComponent.class,
- Scope.MODULE);
- ComponentTypeIntrospector introspector = MockFactory.getIntrospector();
- ComponentType type = introspector.introspect(ModuleScopeInitDestroyComponent.class);
- component.getImplementation().setComponentType(type);
- builder.build(component);
- return (ContextFactory<Context>) component.getContextFactory();
- }
-}
diff --git a/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/BasicRequestScopeTestCase.java b/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/BasicRequestScopeTestCase.java
deleted file mode 100644
index e53b9fc9ac..0000000000
--- a/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/BasicRequestScopeTestCase.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.tuscany.container.java.scopes;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-import org.apache.tuscany.container.java.builder.JavaContextFactoryBuilder;
-import org.apache.tuscany.container.java.mock.MockFactory;
-import org.apache.tuscany.container.java.mock.components.RequestScopeComponent;
-import org.apache.tuscany.container.java.mock.components.RequestScopeComponentImpl;
-import org.apache.tuscany.core.builder.BuilderException;
-import org.apache.tuscany.core.builder.ContextFactory;
-import org.apache.tuscany.core.builder.system.DefaultPolicyBuilderRegistry;
-import org.apache.tuscany.core.context.EventContext;
-import org.apache.tuscany.core.context.Context;
-import org.apache.tuscany.core.context.event.RequestEnd;
-import org.apache.tuscany.core.context.impl.EventContextImpl;
-import org.apache.tuscany.core.context.scope.RequestScopeContext;
-import org.apache.tuscany.core.wire.service.WireFactoryService;
-import org.apache.tuscany.core.wire.service.DefaultWireFactoryService;
-import org.apache.tuscany.core.wire.jdk.JDKWireFactoryFactory;
-import org.apache.tuscany.core.message.impl.MessageFactoryImpl;
-import org.apache.tuscany.core.config.ConfigurationLoadException;
-import org.apache.tuscany.model.assembly.Scope;
-import org.apache.tuscany.model.assembly.AtomicComponent;
-
-/**
- * Unit tests for the request scope container
- *
- * @version $Rev$ $Date$
- */
-public class BasicRequestScopeTestCase extends TestCase {
-
- /**
- * Tests instance identity is properly maintained
- */
- public void testInstanceManagement() throws Exception {
- EventContext ctx = new EventContextImpl();
- RequestScopeContext scope = new RequestScopeContext(ctx);
- scope.registerFactories(createConfigurations());
- scope.start();
-
- // first request
- RequestScopeComponentImpl comp1 = (RequestScopeComponentImpl) scope.getContext("TestService1").getInstance(null);
- Assert.assertNotNull(comp1);
- Object id = new Object();
- scope.onEvent(new RequestEnd(this,id));
-
- // second request
- RequestScopeComponentImpl comp2 = (RequestScopeComponentImpl) scope.getContext("TestService1").getInstance(null);
- Assert.assertNotNull(comp2);
- Assert.assertNotSame(comp1, comp2);
- Object id2 = new Object();
- scope.onEvent(new RequestEnd(this,id2));
-
- scope.stop();
- }
-
- public void testRegisterContextBeforeRequest() throws Exception {
- EventContext ctx = new EventContextImpl();
- RequestScopeContext scope = new RequestScopeContext(ctx);
- scope.registerFactories(createConfigurations());
- scope.registerFactory(createConfiguration("NewTestService"));
- scope.start();
- RequestScopeComponent comp1 = (RequestScopeComponent) scope.getContext("TestService1").getInstance(null);
- Assert.assertNotNull(comp1);
- RequestScopeComponent comp2 = (RequestScopeComponent) scope.getContext("NewTestService").getInstance(null);
- Assert.assertNotNull(comp2);
- Object id = new Object();
- scope.onEvent(new RequestEnd(this,id));
- scope.stop();
- }
-
- public void testRegisterContextAfterRequest() throws Exception {
- EventContext ctx = new EventContextImpl();
- RequestScopeContext scope = new RequestScopeContext(ctx);
- scope.registerFactories(createConfigurations());
- scope.start();
- RequestScopeComponent comp1 = (RequestScopeComponent) scope.getContext("TestService1").getInstance(null);
- Assert.assertNotNull(comp1);
- scope.registerFactory(createConfiguration("NewTestService"));
- RequestScopeComponent comp2 = (RequestScopeComponent) scope.getContext("NewTestService").getInstance(null);
- Assert.assertNotNull(comp2);
- Object id = new Object();
- scope.onEvent(new RequestEnd(this,id));
- scope.stop();
- }
-
- /**
- * Tests setting no components in the scope
- */
- public void testSetNullComponents() throws Exception {
- EventContext ctx = new EventContextImpl();
- RequestScopeContext scope = new RequestScopeContext(ctx);
- scope.registerFactories(createConfigurations());
- scope.start();
- scope.stop();
- }
-
- public void testGetComponentByKey() throws Exception {
- EventContext ctx = new EventContextImpl();
- RequestScopeContext scope = new RequestScopeContext(ctx);
- scope.registerFactories(createConfigurations());
- scope.start();
-
- RequestScopeComponentImpl comp1 = (RequestScopeComponentImpl) scope.getContext("TestService1").getInstance(null);
- Assert.assertNotNull(comp1);
- Object id = new Object();
- scope.onEvent(new RequestEnd(this,id));
-
- // second request
- // should be null since the other context (thread) expired w/ onEvent(..)
- Assert.assertNull(scope.getContextByKey("TestService1", Thread.currentThread()));
- // Note should test better using concurrent threads to pull the instance
-
- scope.stop();
- }
-
-
- private List<ContextFactory<Context>> createConfigurations() throws BuilderException, ConfigurationLoadException {
- AtomicComponent component = MockFactory.createComponent("TestService1", RequestScopeComponentImpl.class,
- Scope.REQUEST);
- WireFactoryService wireService = new DefaultWireFactoryService(new MessageFactoryImpl(), new JDKWireFactoryFactory(), new DefaultPolicyBuilderRegistry());
- JavaContextFactoryBuilder builder = new JavaContextFactoryBuilder(wireService);
- builder.build(component);
- List<ContextFactory<Context>> configs = new ArrayList<ContextFactory<Context>>();
- configs.add((ContextFactory<Context>) component.getContextFactory());
- return configs;
- }
-
- private ContextFactory<Context> createConfiguration(String name) throws BuilderException, ConfigurationLoadException {
- AtomicComponent component = MockFactory.createComponent(name, RequestScopeComponentImpl.class,
- Scope.REQUEST);
- WireFactoryService wireService = new DefaultWireFactoryService(new MessageFactoryImpl(), new JDKWireFactoryFactory(), new DefaultPolicyBuilderRegistry());
- JavaContextFactoryBuilder builder = new JavaContextFactoryBuilder(wireService);
- builder.build(component);
- return (ContextFactory<Context>) component.getContextFactory();
- }
-
-}
diff --git a/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/BasicSessionScopeTestCase.java b/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/BasicSessionScopeTestCase.java
deleted file mode 100644
index 8bee9a9741..0000000000
--- a/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/BasicSessionScopeTestCase.java
+++ /dev/null
@@ -1,238 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.tuscany.container.java.scopes;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-import org.apache.tuscany.container.java.builder.JavaContextFactoryBuilder;
-import org.apache.tuscany.container.java.mock.MockFactory;
-import org.apache.tuscany.container.java.mock.components.SessionScopeComponent;
-import org.apache.tuscany.container.java.mock.components.SessionScopeComponentImpl;
-import org.apache.tuscany.container.java.mock.components.SessionScopeInitDestroyComponent;
-import org.apache.tuscany.core.builder.BuilderException;
-import org.apache.tuscany.core.builder.ContextFactory;
-import org.apache.tuscany.core.builder.system.DefaultPolicyBuilderRegistry;
-import org.apache.tuscany.core.config.ComponentTypeIntrospector;
-import org.apache.tuscany.core.config.ConfigurationLoadException;
-import org.apache.tuscany.core.context.Context;
-import org.apache.tuscany.core.context.EventContext;
-import org.apache.tuscany.core.context.event.HttpSessionEnd;
-import org.apache.tuscany.core.context.event.HttpSessionEvent;
-import org.apache.tuscany.core.context.event.RequestEnd;
-import org.apache.tuscany.core.context.impl.EventContextImpl;
-import org.apache.tuscany.core.context.scope.SessionScopeContext;
-import org.apache.tuscany.core.message.impl.MessageFactoryImpl;
-import org.apache.tuscany.core.wire.jdk.JDKWireFactoryFactory;
-import org.apache.tuscany.core.wire.service.DefaultWireFactoryService;
-import org.apache.tuscany.core.wire.service.WireFactoryService;
-import org.apache.tuscany.model.assembly.AtomicComponent;
-import org.apache.tuscany.model.assembly.ComponentType;
-import org.apache.tuscany.model.assembly.Scope;
-
-/**
- * Unit tests for the Http session scope container
- *
- * @version $Rev$ $Date$
- */
-public class BasicSessionScopeTestCase extends TestCase {
-
- /**
- * Tests instance identity is properly maintained
- */
- public void testInstanceManagement() throws Exception {
- EventContext ctx = new EventContextImpl();
- SessionScopeContext scope = new SessionScopeContext(ctx);
- scope.registerFactories(createConfigurations());
- scope.start();
- Object session = new Object();
- Object session2 = new Object();
- // first request
- ctx.setIdentifier(HttpSessionEvent.HTTP_IDENTIFIER, session);
- SessionScopeComponent comp1 = (SessionScopeComponent) scope.getContext("TestService1").getInstance(null);
- Assert.assertNotNull(comp1);
- ctx.clearIdentifier(HttpSessionEvent.HTTP_IDENTIFIER);
-
- // second request
- ctx.setIdentifier(HttpSessionEvent.HTTP_IDENTIFIER, session);
- SessionScopeComponent comp2 = (SessionScopeComponent) scope.getContext("TestService1").getInstance(null);
- Assert.assertNotNull(comp2);
- Assert.assertSame(comp1, comp2);
- ctx.clearIdentifier(HttpSessionEvent.HTTP_IDENTIFIER);
-
- // third request, different session
- ctx.setIdentifier(HttpSessionEvent.HTTP_IDENTIFIER, session2);
- SessionScopeComponent comp3 = (SessionScopeComponent) scope.getContext("TestService1").getInstance(null);
- Assert.assertNotNull(comp3);
- Assert.assertNotSame(comp1, comp3); // should be different instances
- ctx.clearIdentifier(HttpSessionEvent.HTTP_IDENTIFIER);
-
- scope.onEvent(new HttpSessionEnd(this, session));
- scope.onEvent(new HttpSessionEnd(this, session2));
- scope.stop();
- }
-
- /**
- * Tests setting no components in the scope
- */
- public void testSetNullComponents() throws Exception {
- EventContext ctx = new EventContextImpl();
- SessionScopeContext scope = new SessionScopeContext(ctx);
- scope.registerFactories(new ArrayList<ContextFactory<Context>>());
- scope.start();
- scope.stop();
- }
-
- public void testGetContextByKey() throws Exception {
- EventContext ctx = new EventContextImpl();
- SessionScopeContext scope = new SessionScopeContext(ctx);
- scope.registerFactories(createConfigurations());
- scope.start();
- Object session = new Object();
- Object session2 = new Object();
-
- // first request
- ctx.setIdentifier(HttpSessionEvent.HTTP_IDENTIFIER, session);
- SessionScopeComponent comp1 = (SessionScopeComponent) scope.getContext("TestService1").getInstance(null);
- Assert.assertNotNull(comp1);
- ctx.clearIdentifier(HttpSessionEvent.HTTP_IDENTIFIER);
-
- // second request, different session
- ctx.setIdentifier(HttpSessionEvent.HTTP_IDENTIFIER, session2);
- SessionScopeComponent comp2 = (SessionScopeComponent) scope.getContextByKey("TestService1", session)
- .getInstance(null);
- SessionScopeComponent comp3 = (SessionScopeComponent) scope.getContextByKey("TestService1", session)
- .getInstance(null);
- Assert.assertNotNull(comp2);
- Object id = new Object();
- scope.onEvent(new RequestEnd(this, id));
- Assert.assertSame(comp1, comp2); // should be same instances
- Assert.assertSame(comp2, comp3); // should not be same instances
- ctx.clearIdentifier(HttpSessionEvent.HTTP_IDENTIFIER);
-
- // shutdown sessions
- scope.onEvent(new HttpSessionEnd(this, session));
- scope.onEvent(new HttpSessionEnd(this, session2));
-
- scope.stop();
- }
-
- public void testRegisterContextBeforeSession() throws Exception {
- EventContext ctx = new EventContextImpl();
- SessionScopeContext scope = new SessionScopeContext(ctx);
- scope.registerFactories(createConfigurations());
- scope.start();
- Object session = new Object();
- scope.registerFactory(createConfiguration("NewTestService"));
-
- // first request
- ctx.setIdentifier(HttpSessionEvent.HTTP_IDENTIFIER, session);
-
- SessionScopeInitDestroyComponent comp2 = (SessionScopeInitDestroyComponent) scope.getContext("NewTestService")
- .getInstance(null);
- Assert.assertNotNull(comp2);
- Assert.assertTrue(comp2.isInitialized());
- ctx.clearIdentifier(HttpSessionEvent.HTTP_IDENTIFIER);
-
- // second request different session
- Object session2 = new Object();
- ctx.setIdentifier(HttpSessionEvent.HTTP_IDENTIFIER, session2);
- SessionScopeInitDestroyComponent comp3 = (SessionScopeInitDestroyComponent) scope.getContext("NewTestService")
- .getInstance(null);
- Assert.assertNotNull(comp3);
- Assert.assertNotSame(comp2, comp3);
- Assert.assertTrue(comp3.isInitialized());
- ctx.clearIdentifier(HttpSessionEvent.HTTP_IDENTIFIER);
-
- scope.onEvent(new HttpSessionEnd(this, session));
- Assert.assertTrue(comp2.isDestroyed());
-
- scope.onEvent(new HttpSessionEnd(this, session2));
- Assert.assertTrue(comp3.isDestroyed());
- scope.stop();
- }
-
- /**
- * Tests runtime context registration
- */
- public void testRegisterContextAfterSession() throws Exception {
- EventContext ctx = new EventContextImpl();
- SessionScopeContext scope = new SessionScopeContext(ctx);
- scope.registerFactories(createConfigurations());
- scope.start();
- Object session = new Object();
-
- // first request
- ctx.setIdentifier(HttpSessionEvent.HTTP_IDENTIFIER, session);
- SessionScopeComponent comp1 = (SessionScopeComponent) scope.getContext("TestService1").getInstance(null);
- Assert.assertNotNull(comp1);
- ctx.clearIdentifier(HttpSessionEvent.HTTP_IDENTIFIER);
-
- scope.registerFactory(createConfiguration("NewTestService"));
-
- // second request
- ctx.setIdentifier(HttpSessionEvent.HTTP_IDENTIFIER, session);
- SessionScopeInitDestroyComponent comp2 = (SessionScopeInitDestroyComponent) scope.getContext("NewTestService")
- .getInstance(null);
- Assert.assertNotNull(comp2);
- Assert.assertTrue(comp2.isInitialized());
- ctx.clearIdentifier(HttpSessionEvent.HTTP_IDENTIFIER);
-
- // third request different session
- Object session2 = new Object();
- ctx.setIdentifier(HttpSessionEvent.HTTP_IDENTIFIER, session2);
- SessionScopeInitDestroyComponent comp3 = (SessionScopeInitDestroyComponent) scope.getContext("NewTestService")
- .getInstance(null);
- Assert.assertNotNull(comp3);
- Assert.assertNotSame(comp2, comp3);
- Assert.assertTrue(comp3.isInitialized());
- ctx.clearIdentifier(HttpSessionEvent.HTTP_IDENTIFIER);
-
- scope.onEvent(new HttpSessionEnd(this, session));
- Assert.assertTrue(comp2.isDestroyed());
-
- scope.onEvent(new HttpSessionEnd(this, session2));
- Assert.assertTrue(comp3.isDestroyed());
- scope.stop();
- }
-
- private List<ContextFactory<Context>> createConfigurations() throws BuilderException, ConfigurationLoadException {
- WireFactoryService wireService = new DefaultWireFactoryService(new MessageFactoryImpl(), new JDKWireFactoryFactory(), new DefaultPolicyBuilderRegistry());
- JavaContextFactoryBuilder builder = new JavaContextFactoryBuilder(wireService);
- AtomicComponent component = MockFactory.createComponent("TestService1", SessionScopeComponentImpl.class, Scope.SESSION);
- ComponentTypeIntrospector introspector = MockFactory.getIntrospector();
- ComponentType type = introspector.introspect(SessionScopeComponentImpl.class);
- component.getImplementation().setComponentType(type);
- builder.build(component);
- List<ContextFactory<Context>> configs = new ArrayList<ContextFactory<Context>>();
- configs.add((ContextFactory<Context>) component.getContextFactory());
- return configs;
- }
-
- private ContextFactory<Context> createConfiguration(String name) throws BuilderException, ConfigurationLoadException {
- WireFactoryService wireService = new DefaultWireFactoryService(new MessageFactoryImpl(), new JDKWireFactoryFactory(), new DefaultPolicyBuilderRegistry());
- JavaContextFactoryBuilder builder = new JavaContextFactoryBuilder(wireService);
- AtomicComponent component = MockFactory.createComponent(name, SessionScopeInitDestroyComponent.class, Scope.SESSION);
- ComponentTypeIntrospector introspector = MockFactory.getIntrospector();
- ComponentType type = introspector.introspect(SessionScopeInitDestroyComponent.class);
- component.getImplementation().setComponentType(type);
- builder.build(component);
- return (ContextFactory<Context>) component.getContextFactory();
- }
-}
diff --git a/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/BasicStatelessScopeTestCase.java b/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/BasicStatelessScopeTestCase.java
deleted file mode 100644
index 3765c8bf27..0000000000
--- a/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/BasicStatelessScopeTestCase.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.tuscany.container.java.scopes;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-import org.apache.tuscany.container.java.builder.JavaContextFactoryBuilder;
-import org.apache.tuscany.container.java.mock.MockFactory;
-import org.apache.tuscany.container.java.mock.components.StatelessComponent;
-import org.apache.tuscany.container.java.mock.components.StatelessComponentImpl;
-import org.apache.tuscany.core.builder.BuilderException;
-import org.apache.tuscany.core.builder.ContextFactory;
-import org.apache.tuscany.core.builder.system.DefaultPolicyBuilderRegistry;
-import org.apache.tuscany.core.context.EventContext;
-import org.apache.tuscany.core.context.Context;
-import org.apache.tuscany.core.context.impl.EventContextImpl;
-import org.apache.tuscany.core.context.scope.StatelessScopeContext;
-import org.apache.tuscany.core.wire.service.WireFactoryService;
-import org.apache.tuscany.core.wire.service.DefaultWireFactoryService;
-import org.apache.tuscany.core.wire.jdk.JDKWireFactoryFactory;
-import org.apache.tuscany.core.message.impl.MessageFactoryImpl;
-import org.apache.tuscany.core.config.ConfigurationLoadException;
-import org.apache.tuscany.model.assembly.Scope;
-import org.apache.tuscany.model.assembly.AtomicComponent;
-
-/**
- * Unit tests for the module scope container
- *
- * @version $Rev$ $Date$
- */
-public class BasicStatelessScopeTestCase extends TestCase {
-
- /**
- * Tests instance identity is properly maintained
- */
- public void testInstanceManagement() throws Exception {
- EventContext ctx = new EventContextImpl();
- StatelessScopeContext scope = new StatelessScopeContext(ctx);
- scope.registerFactories(createConfigurations());
- scope.start();
- // first request
- StatelessComponentImpl comp1 = (StatelessComponentImpl) scope.getContext("TestService1").getInstance(null);
- Assert.assertNotNull(comp1);
- // second request
- StatelessComponentImpl comp2 = (StatelessComponentImpl) scope.getContext("TestService1").getInstance(null);
- Assert.assertNotNull(comp2);
- Assert.assertNotSame(comp1, comp2);
- scope.stop();
- }
-
- public void testRegisterContextBeforeRequest() throws Exception {
- EventContext ctx = new EventContextImpl();
- StatelessScopeContext scope = new StatelessScopeContext(ctx);
- scope.registerFactories(createConfigurations());
- scope.registerFactory(createConfiguration("NewTestService"));
- scope.start();
- StatelessComponent comp1 = (StatelessComponent) scope.getContext("TestService1").getInstance(null);
- Assert.assertNotNull(comp1);
- StatelessComponent comp2 = (StatelessComponent) scope.getContext("NewTestService").getInstance(null);
- Assert.assertNotNull(comp2);
- scope.stop();
- }
-
- public void testRegisterContextAfterRequest() throws Exception {
- EventContext ctx = new EventContextImpl();
- StatelessScopeContext scope = new StatelessScopeContext(ctx);
- scope.registerFactories(createConfigurations());
- scope.start();
- StatelessComponent comp1 = (StatelessComponent) scope.getContext("TestService1").getInstance(null);
- Assert.assertNotNull(comp1);
- scope.registerFactory(createConfiguration("NewTestService"));
- StatelessComponent comp2 = (StatelessComponent) scope.getContext("NewTestService").getInstance(null);
- Assert.assertNotNull(comp2);
- scope.stop();
- }
-
-
- /**
- * Tests setting no components in the scope
- */
- public void testSetNullComponents() throws Exception {
- EventContext ctx = new EventContextImpl();
- StatelessScopeContext scope = new StatelessScopeContext(ctx);
- scope.registerFactories(createConfigurations());
- scope.start();
- scope.stop();
- }
-
- private List<ContextFactory<Context>> createConfigurations()
- throws NoSuchMethodException, BuilderException, ConfigurationLoadException {
- AtomicComponent component = MockFactory.createComponent("TestService1", StatelessComponentImpl.class,
- Scope.INSTANCE);
- WireFactoryService wireService = new DefaultWireFactoryService(new MessageFactoryImpl(), new JDKWireFactoryFactory(), new DefaultPolicyBuilderRegistry());
- JavaContextFactoryBuilder builder = new JavaContextFactoryBuilder(wireService);
- builder.build(component);
- List<ContextFactory<Context>> configs = new ArrayList();
- configs.add((ContextFactory<Context>) component.getContextFactory());
- return configs;
- }
-
- private ContextFactory<Context> createConfiguration(String name)
- throws NoSuchMethodException, BuilderException, ConfigurationLoadException {
- AtomicComponent component = MockFactory.createComponent(name, StatelessComponentImpl.class,
- Scope.INSTANCE);
- WireFactoryService wireService = new DefaultWireFactoryService(new MessageFactoryImpl(), new JDKWireFactoryFactory(),new DefaultPolicyBuilderRegistry());
- JavaContextFactoryBuilder builder = new JavaContextFactoryBuilder(wireService);
- builder.build(component);
- return (ContextFactory<Context>) component.getContextFactory();
- }
-
-}
diff --git a/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/CompositeScopeTestCase.java b/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/CompositeScopeTestCase.java
deleted file mode 100644
index d5b5a29e9c..0000000000
--- a/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/CompositeScopeTestCase.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the
- * License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS"
- * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
- */
-package org.apache.tuscany.container.java.scopes;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-import org.apache.tuscany.container.java.builder.JavaContextFactoryBuilder;
-import org.apache.tuscany.container.java.mock.MockFactory;
-import org.apache.tuscany.container.java.mock.components.GenericComponent;
-import org.apache.tuscany.container.java.mock.components.ModuleScopeComponentImpl;
-import org.apache.tuscany.container.java.mock.components.SessionScopeComponentImpl;
-import org.apache.tuscany.core.builder.BuilderException;
-import org.apache.tuscany.core.builder.system.DefaultPolicyBuilderRegistry;
-import org.apache.tuscany.core.context.CompositeContext;
-import org.apache.tuscany.core.context.EventContext;
-import org.apache.tuscany.core.context.event.ModuleStart;
-import org.apache.tuscany.core.context.event.RequestStart;
-import org.apache.tuscany.core.context.event.HttpSessionBound;
-import org.apache.tuscany.core.context.event.RequestEnd;
-import org.apache.tuscany.core.context.event.HttpSessionEnd;
-import org.apache.tuscany.core.context.event.ModuleStop;
-import org.apache.tuscany.core.context.impl.CompositeContextImpl;
-import org.apache.tuscany.core.context.impl.EventContextImpl;
-import org.apache.tuscany.core.context.scope.CompositeScopeContext;
-import org.apache.tuscany.core.wire.service.WireFactoryService;
-import org.apache.tuscany.core.wire.service.DefaultWireFactoryService;
-import org.apache.tuscany.core.wire.jdk.JDKWireFactoryFactory;
-import org.apache.tuscany.core.message.impl.MessageFactoryImpl;
-import org.apache.tuscany.core.config.ConfigurationLoadException;
-import org.apache.tuscany.model.assembly.Extensible;
-import org.apache.tuscany.model.assembly.Scope;
-import org.apache.tuscany.model.assembly.AtomicComponent;
-
-/**
- * Tests component nesting. This test needs to be in the container.java progject since it relies on Java POJOs for scope
- * testing.
- *
- * @version $Rev$ $Date$
- */
-public class CompositeScopeTestCase extends TestCase {
-
- /**
- * Ensures scope events are propagated in an composite scope
- */
- public void testCompositeScopePropagation() throws Exception {
- EventContext ctx = new EventContextImpl();
- CompositeContext moduleComponentCtx = new CompositeContextImpl();
- moduleComponentCtx.setName("testMC");
- moduleComponentCtx.start();
- CompositeScopeContext scopeContainer = new CompositeScopeContext(ctx);
- scopeContainer.registerFactory(MockFactory.createCompositeConfiguration("CompositeComponent"));
- scopeContainer.start();
- CompositeContext child = (CompositeContext) scopeContainer.getContext("CompositeComponent");
- List<Extensible> models = createAssembly();
- for (Extensible model : models) {
- child.registerModelObject(model);
- }
-
- scopeContainer.onEvent(new ModuleStart(this));
- Object session = new Object();
- Object id = new Object();
- //ctx.setIdentifier(EventContext.SESSION,session);
- scopeContainer.onEvent(new RequestStart(this,id));
- scopeContainer.onEvent(new HttpSessionBound(this,session));
- CompositeContext componentCtx = (CompositeContext) scopeContainer.getContext("CompositeComponent");
- GenericComponent testService1 = (GenericComponent) componentCtx.getContext("TestService1").getInstance(null);
- GenericComponent testService2 = (GenericComponent) componentCtx.getContext("TestService2").getInstance(null);
- GenericComponent testService3 = (GenericComponent) componentCtx.getContext("TestService3").getInstance(null);
- Assert.assertNotNull(testService1);
- Assert.assertNotNull(testService2);
- Assert.assertNotNull(testService3);
- scopeContainer.onEvent(new RequestEnd(this,id));
- scopeContainer.onEvent(new RequestStart(this,id));
- scopeContainer.onEvent(new HttpSessionBound(this,session));
-
- GenericComponent testService2a = (GenericComponent) componentCtx.getContext("TestService2").getInstance(null);
- Assert.assertNotNull(testService2a);
- GenericComponent testService3a = (GenericComponent) componentCtx.getContext("TestService3").getInstance(null);
- Assert.assertNotNull(testService3a);
- Assert.assertEquals(testService2, testService2a);
- Assert.assertNotSame(testService3, testService3a);
- scopeContainer.onEvent(new RequestEnd(this,id));
- scopeContainer.onEvent(new HttpSessionEnd(this,session));
-
- Object session2 = new Object();
- Object id2 = new Object();
- scopeContainer.onEvent(new RequestStart(this,id2));
- scopeContainer.onEvent(new HttpSessionBound(this,session2));
- GenericComponent testService2b = (GenericComponent) componentCtx.getContext("TestService2").getInstance(null);
- Assert.assertNotNull(testService2b);
- Assert.assertNotSame(testService2, testService2b);
-
- scopeContainer.onEvent(new RequestEnd(this,id2));
- scopeContainer.onEvent(new HttpSessionEnd(this,session2));
-
- }
-
- /**
- * Ensures only child entry points (and not components) are accessible from parents
- */
- public void testCompositeNoEntryPoint() throws Exception {
- EventContext ctx = new EventContextImpl();
- CompositeContext moduleComponentCtx = new CompositeContextImpl();
- moduleComponentCtx.setName("testMC");
- CompositeScopeContext scopeContainer = new CompositeScopeContext(ctx);
- scopeContainer.registerFactory(MockFactory.createCompositeConfiguration("CompositeComponent"));
- scopeContainer.start();
- CompositeContext child = (CompositeContext) scopeContainer.getContext("CompositeComponent");
- List<Extensible> parts = createAssembly();
- for (Extensible part : parts) {
- child.registerModelObject(part);
- }
- scopeContainer.onEvent(new ModuleStart(this));
- scopeContainer.getContext("CompositeComponent");
- }
-
- /**
- * Tests adding a context before its parent has been started
- */
- public void testRegisterContextBeforeStart() throws Exception {
- EventContext ctx = new EventContextImpl();
- CompositeContext moduleComponentCtx = new CompositeContextImpl();
- moduleComponentCtx.setName("testMC");
- CompositeScopeContext scopeContainer = new CompositeScopeContext(ctx);
- scopeContainer.registerFactory(MockFactory.createCompositeConfiguration("CompositeComponent"));
- scopeContainer.start();
- scopeContainer.onEvent(new ModuleStart(this));
- scopeContainer.getContext("CompositeComponent");
- scopeContainer.onEvent(new ModuleStop(this));
- scopeContainer.stop();
- }
-
- /**
- * Tests adding a context after its parent has been started
- */
- public void testRegisterContextAfterStart() throws Exception {
- EventContext ctx = new EventContextImpl();
- CompositeContext moduleComponentCtx = new CompositeContextImpl();
- moduleComponentCtx.setName("testMC");
- CompositeScopeContext scopeContainer = new CompositeScopeContext(ctx);
- scopeContainer.start();
-
- scopeContainer.onEvent(new ModuleStart(this));
- scopeContainer.registerFactory(MockFactory.createCompositeConfiguration("CompositeComponent"));
- scopeContainer.getContext("CompositeComponent");
- scopeContainer.onEvent(new ModuleStop(this));
- scopeContainer.stop();
- }
-
- /**
- * Creats an assembly containing a module-scoped component definition, a session-scoped component definition, and a
- * request-scoped component definition
- *
- */
- private List<Extensible> createAssembly() throws BuilderException, ConfigurationLoadException {
- WireFactoryService wireService = new DefaultWireFactoryService(new MessageFactoryImpl(), new JDKWireFactoryFactory(), new DefaultPolicyBuilderRegistry());
- JavaContextFactoryBuilder builder = new JavaContextFactoryBuilder(wireService);
- AtomicComponent component = MockFactory.createComponent("TestService1", ModuleScopeComponentImpl.class, Scope.MODULE);
- AtomicComponent sessionComponent = MockFactory.createComponent("TestService2", SessionScopeComponentImpl.class,
- Scope.SESSION);
- AtomicComponent requestComponent = MockFactory.createComponent("TestService3", SessionScopeComponentImpl.class,
- Scope.REQUEST);
- builder.build(component);
- builder.build(sessionComponent);
- builder.build(requestComponent);
- List<Extensible> configs = new ArrayList<Extensible>();
- configs.add(component);
- configs.add(sessionComponent);
- configs.add(requestComponent);
- return configs;
- }
-
-}
diff --git a/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/DependencyLifecycleTestCase.java b/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/DependencyLifecycleTestCase.java
deleted file mode 100644
index dc3fe3efcb..0000000000
--- a/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/DependencyLifecycleTestCase.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.tuscany.container.java.scopes;
-
-import junit.framework.TestCase;
-import org.apache.tuscany.container.java.mock.MockContextFactory;
-import org.apache.tuscany.core.context.EventContext;
-import org.apache.tuscany.core.context.event.ModuleStart;
-import org.apache.tuscany.core.context.event.ModuleStop;
-import org.apache.tuscany.core.context.event.HttpSessionBound;
-import org.apache.tuscany.core.context.event.HttpSessionEvent;
-import org.apache.tuscany.core.context.event.HttpSessionEnd;
-import org.apache.tuscany.core.context.event.RequestStart;
-import org.apache.tuscany.core.context.event.RequestEnd;
-import org.apache.tuscany.core.context.impl.EventContextImpl;
-import org.apache.tuscany.core.context.scope.ModuleScopeContext;
-import org.apache.tuscany.core.context.scope.SessionScopeContext;
-import org.apache.tuscany.core.context.scope.RequestScopeContext;
-import org.apache.tuscany.model.assembly.Scope;
-
-/**
- * Tests that dependencies are initalized and destroyed in the proper order (i.e. LIFO)
- *
- * @version $Rev: 393992 $ $Date: 2006-04-13 18:01:05 -0700 (Thu, 13 Apr 2006) $
- */
-public class DependencyLifecycleTestCase extends TestCase {
-
-
-
- public void testInitDestroyOrderModuleScope() throws Exception {
- EventContext ctx = new EventContextImpl();
- ModuleScopeContext scope = new ModuleScopeContext(ctx);
- scope.registerFactories(MockContextFactory.createWiredContexts(Scope.MODULE,scope));
- scope.start();
- scope.onEvent(new ModuleStart(this));
- OrderedDependentPojo source = (OrderedDependentPojo) scope.getContext("source").getInstance(null);
- assertNotNull(source.getPojo());
- // expire module
- assertEquals(2,source.getNumberInstantiated());
- scope.onEvent(new ModuleStop(this));
- assertEquals(0,source.getNumberInstantiated());
- scope.stop();
- }
-
- public void testInitDestroyOrderSessionScope() throws Exception {
- EventContext ctx = new EventContextImpl();
- SessionScopeContext scope = new SessionScopeContext(ctx);
- scope.registerFactories(MockContextFactory.createWiredContexts(Scope.SESSION,scope));
- scope.start();
- Object session = new Object();
- ctx.setIdentifier(HttpSessionEvent.HTTP_IDENTIFIER,session);
- scope.onEvent(new HttpSessionBound(this,session));
- OrderedDependentPojo source = (OrderedDependentPojo) scope.getContext("source").getInstance(null);
- assertNotNull(source.getPojo());
- // expire module
- assertEquals(2,source.getNumberInstantiated());
- scope.onEvent(new HttpSessionEnd(this,session));
- assertEquals(0,source.getNumberInstantiated());
- scope.stop();
- }
-
-
- public void testInitDestroyOrderRequestScope() throws Exception {
- EventContext ctx = new EventContextImpl();
- RequestScopeContext scope = new RequestScopeContext(ctx);
- scope.registerFactories(MockContextFactory.createWiredContexts(Scope.REQUEST,scope));
- scope.start();
- Object request = new Object();
- scope.onEvent(new RequestStart(this,request));
- OrderedDependentPojo source = (OrderedDependentPojo) scope.getContext("source").getInstance(null);
- assertNotNull(source.getPojo());
- // expire module
- assertEquals(2,source.getNumberInstantiated());
- scope.onEvent(new RequestEnd(this,request));
- assertEquals(0,source.getNumberInstantiated());
- scope.stop();
- }
-
-}
diff --git a/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/ModuleScopeLifecycleTestCase.java b/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/ModuleScopeLifecycleTestCase.java
deleted file mode 100644
index 904e218c08..0000000000
--- a/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/ModuleScopeLifecycleTestCase.java
+++ /dev/null
@@ -1,248 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.tuscany.container.java.scopes;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-import org.apache.tuscany.container.java.builder.JavaContextFactoryBuilder;
-import org.apache.tuscany.container.java.mock.MockFactory;
-import org.apache.tuscany.container.java.mock.components.ModuleScopeDestroyOnlyComponent;
-import org.apache.tuscany.container.java.mock.components.ModuleScopeEagerInitComponent;
-import org.apache.tuscany.container.java.mock.components.ModuleScopeEagerInitDestroyComponent;
-import org.apache.tuscany.container.java.mock.components.ModuleScopeInitDestroyComponent;
-import org.apache.tuscany.container.java.mock.components.ModuleScopeInitOnlyComponent;
-import org.apache.tuscany.core.builder.BuilderException;
-import org.apache.tuscany.core.builder.ContextFactory;
-import org.apache.tuscany.core.builder.system.DefaultPolicyBuilderRegistry;
-import org.apache.tuscany.core.config.ComponentTypeIntrospector;
-import org.apache.tuscany.core.config.ConfigurationLoadException;
-import org.apache.tuscany.core.context.Context;
-import org.apache.tuscany.core.context.EventContext;
-import org.apache.tuscany.core.context.event.ModuleStart;
-import org.apache.tuscany.core.context.event.ModuleStop;
-import org.apache.tuscany.core.context.impl.EventContextImpl;
-import org.apache.tuscany.core.context.scope.ModuleScopeContext;
-import org.apache.tuscany.core.message.impl.MessageFactoryImpl;
-import org.apache.tuscany.core.wire.jdk.JDKWireFactoryFactory;
-import org.apache.tuscany.core.wire.service.DefaultWireFactoryService;
-import org.apache.tuscany.core.wire.service.WireFactoryService;
-import org.apache.tuscany.model.assembly.AtomicComponent;
-import org.apache.tuscany.model.assembly.ComponentType;
-import org.apache.tuscany.model.assembly.Scope;
-
-/**
- * Lifecycle unit tests for the module scope container
- *
- * @version $Rev$ $Date$
- */
-public class ModuleScopeLifecycleTestCase extends TestCase {
-
- JavaContextFactoryBuilder builder;
-
- public void testInitDestroy() throws Exception {
- EventContext ctx = new EventContextImpl();
- ModuleScopeContext scope = new ModuleScopeContext(ctx);
- scope.registerFactories(createComponents());
- scope.start();
- scope.onEvent(new ModuleStart(this));
- ModuleScopeInitDestroyComponent initDestroy = (ModuleScopeInitDestroyComponent) scope.getContext(
- "TestServiceInitDestroy").getInstance(null);
- Assert.assertNotNull(initDestroy);
- ModuleScopeInitOnlyComponent initOnly = (ModuleScopeInitOnlyComponent) scope.getContext("TestServiceInitOnly")
- .getInstance(null);
- Assert.assertNotNull(initOnly);
- ModuleScopeDestroyOnlyComponent destroyOnly = (ModuleScopeDestroyOnlyComponent) scope.getContext(
- "TestServiceDestroyOnly").getInstance(null);
- Assert.assertNotNull(destroyOnly);
-
- Assert.assertTrue(initDestroy.isInitialized());
- Assert.assertTrue(initOnly.isInitialized());
- Assert.assertFalse(initDestroy.isDestroyed());
- Assert.assertFalse(destroyOnly.isDestroyed());
-
- // expire module
- scope.onEvent(new ModuleStop(this));
-
- Assert.assertTrue(initDestroy.isDestroyed());
- Assert.assertTrue(destroyOnly.isDestroyed());
-
- scope.stop();
- }
-
- public void testEagerInit() throws Exception {
- EventContext ctx = new EventContextImpl();
- ModuleScopeContext scope = new ModuleScopeContext(ctx);
- scope.registerFactories(createEagerInitComponents());
- scope.start();
- scope.onEvent(new ModuleStart(this));
- ModuleScopeEagerInitDestroyComponent initDestroy = (ModuleScopeEagerInitDestroyComponent) scope.getContext(
- "TestServiceEagerInitDestroy").getInstance(null);
- Assert.assertNotNull(initDestroy);
- ModuleScopeEagerInitComponent initOnly = (ModuleScopeEagerInitComponent) scope
- .getContext("TestServiceEagerInit").getInstance(null);
- Assert.assertNotNull(initOnly);
-
- Assert.assertTrue(initDestroy.isInitialized());
- Assert.assertTrue(initOnly.isInitialized());
- Assert.assertFalse(initDestroy.isDestroyed());
-
- // expire module
- scope.onEvent(new ModuleStop(this));
-
- Assert.assertTrue(initDestroy.isDestroyed());
-
- scope.stop();
-
- }
-
- public void testDestroyOrder() throws Exception {
- EventContext ctx = new EventContextImpl();
- ModuleScopeContext scope = new ModuleScopeContext(ctx);
- scope.registerFactories(createOrderedInitComponents());
- scope.start();
- scope.onEvent(new ModuleStart(this));
- OrderedInitPojo one = (OrderedInitPojo) scope.getContext("one").getInstance(null);
- Assert.assertNotNull(one);
- Assert.assertEquals(1, one.getNumberInstantiated());
- Assert.assertEquals(1, one.getInitOrder());
-
- OrderedInitPojo two = (OrderedInitPojo) scope.getContext("two").getInstance(null);
- Assert.assertNotNull(two);
- Assert.assertEquals(2, two.getNumberInstantiated());
- Assert.assertEquals(2, two.getInitOrder());
-
- OrderedInitPojo three = (OrderedInitPojo) scope.getContext("three").getInstance(null);
- Assert.assertNotNull(three);
- Assert.assertEquals(3, three.getNumberInstantiated());
- Assert.assertEquals(3, three.getInitOrder());
-
- // expire module
- scope.onEvent(new ModuleStop(this));
- Assert.assertEquals(0, one.getNumberInstantiated());
- scope.stop();
- }
-
- public void testEagerInitDestroyOrder() throws Exception {
- EventContext ctx = new EventContextImpl();
- ModuleScopeContext scope = new ModuleScopeContext(ctx);
- scope.registerFactories(createOrderedEagerInitComponents());
- scope.start();
- scope.onEvent(new ModuleStart(this));
- OrderedEagerInitPojo one = (OrderedEagerInitPojo) scope.getContext("one").getInstance(null);
- Assert.assertNotNull(one);
-
- OrderedEagerInitPojo two = (OrderedEagerInitPojo) scope.getContext("two").getInstance(null);
- Assert.assertNotNull(two);
-
- OrderedEagerInitPojo three = (OrderedEagerInitPojo) scope.getContext("three").getInstance(null);
- Assert.assertNotNull(three);
-
- // expire module
- scope.onEvent(new ModuleStop(this));
- Assert.assertEquals(0, one.getNumberInstantiated());
- scope.stop();
- }
-
-
- private List<ContextFactory<Context>> createComponents() throws BuilderException, ConfigurationLoadException {
- AtomicComponent[] ca = new AtomicComponent[3];
- ca[0] = MockFactory.createComponent("TestServiceInitDestroy", ModuleScopeInitDestroyComponent.class,
- Scope.MODULE);
- ca[1] = MockFactory.createComponent("TestServiceInitOnly", ModuleScopeInitOnlyComponent.class,
- Scope.MODULE);
- ca[2] = MockFactory.createComponent("TestServiceDestroyOnly", ModuleScopeDestroyOnlyComponent.class,
- Scope.MODULE);
- List<ContextFactory<Context>> configs = new ArrayList<ContextFactory<Context>>();
- ComponentTypeIntrospector introspector = MockFactory.getIntrospector();
- ca[0].getImplementation().setComponentType(introspector.introspect(ModuleScopeInitDestroyComponent.class));
- ca[1].getImplementation().setComponentType(introspector.introspect(ModuleScopeInitOnlyComponent.class));
- ca[2].getImplementation().setComponentType(introspector.introspect(ModuleScopeDestroyOnlyComponent.class));
- for (AtomicComponent aCa : ca) {
- builder.build(aCa);
- configs.add((ContextFactory<Context>) aCa.getContextFactory());
-
- }
- return configs;
- }
-
- private List<ContextFactory<Context>> createEagerInitComponents() throws
- BuilderException, ConfigurationLoadException {
- AtomicComponent[] ca = new AtomicComponent[2];
- ca[0] = MockFactory.createComponent("TestServiceEagerInitDestroy", ModuleScopeEagerInitDestroyComponent.class,
- Scope.MODULE);
- ca[1] = MockFactory.createComponent("TestServiceEagerInit", ModuleScopeEagerInitComponent.class,
- Scope.MODULE);
- List<ContextFactory<Context>> configs = new ArrayList<ContextFactory<Context>>();
- ComponentTypeIntrospector introspector = MockFactory.getIntrospector();
- ComponentType type = introspector.introspect(OrderedInitPojo.class);
- ca[0].getImplementation().setComponentType(introspector.introspect(ModuleScopeEagerInitDestroyComponent.class));
- ca[1].getImplementation().setComponentType(introspector.introspect(ModuleScopeEagerInitComponent.class));
- for (AtomicComponent aCa : ca) {
- builder.build(aCa);
- configs.add((ContextFactory<Context>) aCa.getContextFactory());
- }
- return configs;
- }
-
- private List<ContextFactory<Context>> createOrderedInitComponents() throws
- BuilderException, ConfigurationLoadException {
- AtomicComponent[] ca = new AtomicComponent[3];
- ca[0] = MockFactory.createComponent("one", OrderedInitPojo.class, Scope.MODULE);
- ca[1] = MockFactory.createComponent("two", OrderedInitPojo.class, Scope.MODULE);
- ca[2] = MockFactory.createComponent("three", OrderedInitPojo.class, Scope.MODULE);
- List<ContextFactory<Context>> configs = new ArrayList<ContextFactory<Context>>();
- ComponentTypeIntrospector introspector = MockFactory.getIntrospector();
- ComponentType type = introspector.introspect(OrderedInitPojo.class);
- ca[0].getImplementation().setComponentType(type);
- ca[1].getImplementation().setComponentType(type);
- ca[2].getImplementation().setComponentType(type);
- for (AtomicComponent aCa : ca) {
- builder.build(aCa);
- configs.add((ContextFactory<Context>) aCa.getContextFactory());
- }
- return configs;
- }
-
- private List<ContextFactory<Context>> createOrderedEagerInitComponents() throws
- BuilderException, ConfigurationLoadException {
- AtomicComponent[] ca = new AtomicComponent[3];
- ca[0] = MockFactory.createComponent("one", OrderedEagerInitPojo.class, Scope.MODULE);
- ca[1] = MockFactory.createComponent("two", OrderedEagerInitPojo.class, Scope.MODULE);
- ca[2] = MockFactory.createComponent("three", OrderedEagerInitPojo.class, Scope.MODULE);
- ComponentTypeIntrospector introspector = MockFactory.getIntrospector();
- ComponentType type = introspector.introspect(OrderedEagerInitPojo.class);
- ca[0].getImplementation().setComponentType(type);
- ca[1].getImplementation().setComponentType(type);
- ca[2].getImplementation().setComponentType(type);
- List<ContextFactory<Context>> configs = new ArrayList<ContextFactory<Context>>();
- for (AtomicComponent aCa : ca) {
- builder.build(aCa);
- configs.add((ContextFactory<Context>) aCa.getContextFactory());
-
- }
- return configs;
- }
-
- protected void setUp() throws Exception {
- super.setUp();
- WireFactoryService wireService = new DefaultWireFactoryService(new MessageFactoryImpl(), new JDKWireFactoryFactory(), new DefaultPolicyBuilderRegistry());
- builder = new JavaContextFactoryBuilder(wireService);
- }
-}
diff --git a/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/OrderException.java b/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/OrderException.java
deleted file mode 100644
index fc5f7c8c58..0000000000
--- a/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/OrderException.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.tuscany.container.java.scopes;
-
-public class OrderException extends Exception {
-
- public OrderException() {
- super();
- }
-
- public OrderException(String message) {
- super(message);
- }
-
- public OrderException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public OrderException(Throwable cause) {
- super(cause);
- }
-
-}
-
diff --git a/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/OrderedDependentPojo.java b/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/OrderedDependentPojo.java
deleted file mode 100644
index f8fe2af7be..0000000000
--- a/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/OrderedDependentPojo.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.tuscany.container.java.scopes;
-
-/**
- * @version $$Rev$$ $$Date$$
- */
-public class OrderedDependentPojo extends OrderedInitPojo {
-
- private OrderedDependentPojo pojo;
-
- public OrderedDependentPojo getPojo() {
- return pojo;
- }
-
- public void setPojo(OrderedDependentPojo pojo) {
- this.pojo = pojo;
- }
-
-}
diff --git a/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/OrderedEagerInitPojo.java b/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/OrderedEagerInitPojo.java
deleted file mode 100644
index f9aeefccbe..0000000000
--- a/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/OrderedEagerInitPojo.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.tuscany.container.java.scopes;
-
-import org.osoa.sca.annotations.Destroy;
-import org.osoa.sca.annotations.Init;
-import org.osoa.sca.annotations.Scope;
-
-@Scope("MODULE")
-public class OrderedEagerInitPojo {
-
- private static Object lock = new Object();
- private static int numberInstantied;
- private int initOrder;
-
- @Init(eager = true)
- public void init() {
- synchronized (lock) {
- ++numberInstantied;
- initOrder = numberInstantied;
- }
- }
-
- @Destroy
- public void destroy() throws OrderException {
- synchronized (lock) {
- if (initOrder != numberInstantied) {
- throw new OrderException("Instance shutdown done out of order");
- }
- --numberInstantied;
- }
- }
-
- public int getNumberInstantiated() {
- return numberInstantied;
- }
-
- public int getInitOrder() {
- return initOrder;
- }
-
-}
diff --git a/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/OrderedInitPojo.java b/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/OrderedInitPojo.java
deleted file mode 100644
index b4d4eb03ba..0000000000
--- a/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/OrderedInitPojo.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.tuscany.container.java.scopes;
-
-import org.osoa.sca.annotations.Destroy;
-import org.osoa.sca.annotations.Init;
-import org.osoa.sca.annotations.Scope;
-
-@Scope("MODULE")
-public class OrderedInitPojo {
-
- private static Object lock = new Object();
- private static int numberInstantied;
- private int initOrder;
-
- @Init
- public void init() {
- synchronized (lock) {
- ++numberInstantied;
- initOrder = numberInstantied;
- }
- }
-
- @Destroy
- public void destroy() throws OrderException {
- synchronized (lock) {
- if (initOrder != numberInstantied) {
- throw new OrderException("Instance shutdown done out of order");
- }
- --numberInstantied;
- }
- }
-
- public int getNumberInstantiated() {
- return numberInstantied;
- }
-
- public int getInitOrder() {
- return initOrder;
- }
-
-}
diff --git a/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/RequestScopeLifecycleTestCase.java b/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/RequestScopeLifecycleTestCase.java
deleted file mode 100644
index bca1e57cbc..0000000000
--- a/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/RequestScopeLifecycleTestCase.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.tuscany.container.java.scopes;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-import org.apache.tuscany.container.java.builder.JavaContextFactoryBuilder;
-import org.apache.tuscany.container.java.mock.MockFactory;
-import org.apache.tuscany.container.java.mock.components.RequestScopeDestroyOnlyComponent;
-import org.apache.tuscany.container.java.mock.components.RequestScopeInitDestroyComponent;
-import org.apache.tuscany.container.java.mock.components.RequestScopeInitOnlyComponent;
-import org.apache.tuscany.core.builder.BuilderException;
-import org.apache.tuscany.core.builder.ContextFactory;
-import org.apache.tuscany.core.builder.system.DefaultPolicyBuilderRegistry;
-import org.apache.tuscany.core.config.ComponentTypeIntrospector;
-import org.apache.tuscany.core.config.ConfigurationLoadException;
-import org.apache.tuscany.core.context.Context;
-import org.apache.tuscany.core.context.EventContext;
-import org.apache.tuscany.core.context.event.RequestEnd;
-import org.apache.tuscany.core.context.impl.EventContextImpl;
-import org.apache.tuscany.core.context.scope.RequestScopeContext;
-import org.apache.tuscany.core.message.impl.MessageFactoryImpl;
-import org.apache.tuscany.core.wire.jdk.JDKWireFactoryFactory;
-import org.apache.tuscany.core.wire.service.DefaultWireFactoryService;
-import org.apache.tuscany.core.wire.service.WireFactoryService;
-import org.apache.tuscany.model.assembly.AtomicComponent;
-import org.apache.tuscany.model.assembly.ComponentType;
-import org.apache.tuscany.model.assembly.Scope;
-
-/**
- * Lifecycle unit tests for the Http session scope container
- *
- * @version $Rev$ $Date$
- */
-public class RequestScopeLifecycleTestCase extends TestCase {
-
- /**
- * Tests instance identity is properly maintained
- */
- public void testInitDestroy() throws Exception {
- EventContext ctx = new EventContextImpl();
- RequestScopeContext scope = new RequestScopeContext(ctx);
- scope.registerFactories(createComponents());
- scope.start();
- RequestScopeInitDestroyComponent initDestroy = (RequestScopeInitDestroyComponent) scope.getContext(
- "TestServiceInitDestroy").getInstance(null);
- Assert.assertNotNull(initDestroy);
- RequestScopeInitOnlyComponent initOnly = (RequestScopeInitOnlyComponent) scope.getContext("TestServiceInitOnly")
- .getInstance(null);
- Assert.assertNotNull(initOnly);
- RequestScopeDestroyOnlyComponent destroyOnly = (RequestScopeDestroyOnlyComponent) scope.getContext(
- "TestServiceDestroyOnly").getInstance(null);
- Assert.assertNotNull(destroyOnly);
-
- Assert.assertTrue(initDestroy.isInitialized());
- Assert.assertTrue(initOnly.isInitialized());
- Assert.assertFalse(initDestroy.isDestroyed());
- Assert.assertFalse(destroyOnly.isDestroyed());
-
- // end request
- scope.onEvent(new RequestEnd(this, new Object()));
- Assert.assertTrue(initDestroy.isDestroyed());
- Assert.assertTrue(destroyOnly.isDestroyed());
-
- scope.stop();
- }
-
- /**
- * Test instances destroyed in proper (i.e. reverse) order
- */
- public void testDestroyOrder() throws Exception {
- EventContext ctx = new EventContextImpl();
- RequestScopeContext scope = new RequestScopeContext(ctx);
- scope.registerFactories(createOrderedInitComponents());
- scope.start();
- // request start
- RequestScopedOrderedInitPojo one = (RequestScopedOrderedInitPojo) scope.getContext("one").getInstance(null);
- Assert.assertNotNull(one);
- Assert.assertEquals(1, one.getNumberInstantiated());
- Assert.assertEquals(1, one.getInitOrder());
-
- RequestScopedOrderedInitPojo two = (RequestScopedOrderedInitPojo) scope.getContext("two").getInstance(null);
- Assert.assertNotNull(two);
- Assert.assertEquals(2, two.getNumberInstantiated());
- Assert.assertEquals(2, two.getInitOrder());
-
- RequestScopedOrderedInitPojo three = (RequestScopedOrderedInitPojo) scope.getContext("three").getInstance(null);
- Assert.assertNotNull(three);
- Assert.assertEquals(3, three.getNumberInstantiated());
- Assert.assertEquals(3, three.getInitOrder());
-
- // end request
- scope.onEvent(new RequestEnd(this, new Object()));
-
- Assert.assertEquals(0, one.getNumberInstantiated());
- scope.stop();
- }
-
-
- JavaContextFactoryBuilder builder;
-
- private List<ContextFactory<Context>> createComponents() throws BuilderException, ConfigurationLoadException {
- AtomicComponent[] ca = new AtomicComponent[3];
- ca[0] = MockFactory.createComponent("TestServiceInitDestroy", RequestScopeInitDestroyComponent.class,
- Scope.REQUEST);
- ca[1] = MockFactory.createComponent("TestServiceInitOnly", RequestScopeInitOnlyComponent.class,
- Scope.REQUEST);
- ca[2] = MockFactory.createComponent("TestServiceDestroyOnly", RequestScopeDestroyOnlyComponent.class,
- Scope.REQUEST);
- ComponentTypeIntrospector introspector = MockFactory.getIntrospector();
- ca[0].getImplementation().setComponentType(introspector.introspect(RequestScopeInitDestroyComponent.class));
- ca[1].getImplementation().setComponentType(introspector.introspect(RequestScopeInitOnlyComponent.class));
- ca[2].getImplementation().setComponentType(introspector.introspect(RequestScopeDestroyOnlyComponent.class));
- List<ContextFactory<Context>> configs = new ArrayList<ContextFactory<Context>>();
- for (AtomicComponent aCa : ca) {
- builder.build(aCa);
- configs.add((ContextFactory<Context>) aCa.getContextFactory());
-
- }
- return configs;
- }
-
- private List<ContextFactory<Context>> createOrderedInitComponents() throws
- BuilderException, ConfigurationLoadException {
- AtomicComponent[] ca = new AtomicComponent[3];
- ca[0] = MockFactory.createComponent("one", RequestScopedOrderedInitPojo.class, Scope.REQUEST);
- ca[1] = MockFactory.createComponent("two", RequestScopedOrderedInitPojo.class, Scope.REQUEST);
- ca[2] = MockFactory.createComponent("three", RequestScopedOrderedInitPojo.class, Scope.REQUEST);
- ComponentTypeIntrospector introspector = MockFactory.getIntrospector();
- ComponentType type = introspector.introspect(RequestScopedOrderedInitPojo.class);
- ca[0].getImplementation().setComponentType(type);
- ca[1].getImplementation().setComponentType(type);
- ca[2].getImplementation().setComponentType(type);
- List<ContextFactory<Context>> configs = new ArrayList<ContextFactory<Context>>();
- for (AtomicComponent aCa : ca) {
- builder.build(aCa);
- configs.add((ContextFactory<Context>) aCa.getContextFactory());
-
- }
- return configs;
- }
-
- protected void setUp() throws Exception {
- super.setUp();
- WireFactoryService wireService = new DefaultWireFactoryService(new MessageFactoryImpl(), new JDKWireFactoryFactory(), new DefaultPolicyBuilderRegistry());
- builder = new JavaContextFactoryBuilder(wireService);
- }
-
-}
diff --git a/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/RequestScopedOrderedInitPojo.java b/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/RequestScopedOrderedInitPojo.java
deleted file mode 100644
index 717c7008c9..0000000000
--- a/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/RequestScopedOrderedInitPojo.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.tuscany.container.java.scopes;
-
-import org.osoa.sca.annotations.Scope;
-import org.osoa.sca.annotations.Init;
-import org.osoa.sca.annotations.Destroy;
-
-@Scope("REQUEST")
-public class RequestScopedOrderedInitPojo {
-
- private static Object lock = new Object();
- private static int numberInstantied;
- private int initOrder;
-
- @Init
- public void init() {
- synchronized (RequestScopedOrderedInitPojo.lock) {
- ++RequestScopedOrderedInitPojo.numberInstantied;
- initOrder = RequestScopedOrderedInitPojo.numberInstantied;
- }
- }
-
- @Destroy
- public void destroy() throws OrderException {
- synchronized (RequestScopedOrderedInitPojo.lock) {
- if (initOrder != RequestScopedOrderedInitPojo.numberInstantied) {
- throw new OrderException("Instance shutdown done out of order");
- }
- --RequestScopedOrderedInitPojo.numberInstantied;
- }
- }
-
- public int getNumberInstantiated() {
- return RequestScopedOrderedInitPojo.numberInstantied;
- }
-
- public int getInitOrder() {
- return initOrder;
- }
-
-}
diff --git a/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/SessionScopeLifecycleTestCase.java b/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/SessionScopeLifecycleTestCase.java
deleted file mode 100644
index 80d8cb71cb..0000000000
--- a/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/SessionScopeLifecycleTestCase.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.tuscany.container.java.scopes;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-import org.apache.tuscany.container.java.builder.JavaContextFactoryBuilder;
-import org.apache.tuscany.container.java.mock.MockFactory;
-import org.apache.tuscany.container.java.mock.components.SessionScopeDestroyOnlyComponent;
-import org.apache.tuscany.container.java.mock.components.SessionScopeInitDestroyComponent;
-import org.apache.tuscany.container.java.mock.components.SessionScopeInitOnlyComponent;
-import org.apache.tuscany.core.builder.BuilderException;
-import org.apache.tuscany.core.builder.ContextFactory;
-import org.apache.tuscany.core.builder.system.DefaultPolicyBuilderRegistry;
-import org.apache.tuscany.core.context.EventContext;
-import org.apache.tuscany.core.context.Context;
-import org.apache.tuscany.core.context.event.HttpSessionEnd;
-import org.apache.tuscany.core.context.event.HttpSessionEvent;
-import org.apache.tuscany.core.context.impl.EventContextImpl;
-import org.apache.tuscany.core.context.scope.SessionScopeContext;
-import org.apache.tuscany.core.wire.service.WireFactoryService;
-import org.apache.tuscany.core.wire.service.DefaultWireFactoryService;
-import org.apache.tuscany.core.wire.jdk.JDKWireFactoryFactory;
-import org.apache.tuscany.core.message.impl.MessageFactoryImpl;
-import org.apache.tuscany.core.config.ComponentTypeIntrospector;
-import org.apache.tuscany.core.config.ConfigurationLoadException;
-import org.apache.tuscany.model.assembly.Scope;
-import org.apache.tuscany.model.assembly.AtomicComponent;
-import org.apache.tuscany.model.assembly.ComponentType;
-
-/**
- * Lifecycle unit tests for the Http session scope container
- *
- * @version $Rev$ $Date$
- */
-public class SessionScopeLifecycleTestCase extends TestCase {
-
- /**
- * Tests instance identity is properly maintained
- */
- public void testInitDestroy() throws Exception {
- EventContext ctx = new EventContextImpl();
- SessionScopeContext scope = new SessionScopeContext(ctx);
- scope.registerFactories(createComponents());
- scope.start();
- Object session = new Object();
- // first request, no need to notify scope container since sessions are
- // evaluated lazily
- ctx.setIdentifier(HttpSessionEvent.HTTP_IDENTIFIER,session);
- SessionScopeInitDestroyComponent initDestroy = (SessionScopeInitDestroyComponent) scope.getContext(
- "TestServiceInitDestroy").getInstance(null);
- Assert.assertNotNull(initDestroy);
- SessionScopeInitOnlyComponent initOnly = (SessionScopeInitOnlyComponent) scope.getContext("TestServiceInitOnly")
- .getInstance(null);
- Assert.assertNotNull(initOnly);
- SessionScopeDestroyOnlyComponent destroyOnly = (SessionScopeDestroyOnlyComponent) scope.getContext(
- "TestServiceDestroyOnly").getInstance(null);
- Assert.assertNotNull(destroyOnly);
-
- Assert.assertTrue(initDestroy.isInitialized());
- Assert.assertTrue(initOnly.isInitialized());
- Assert.assertFalse(initDestroy.isDestroyed());
- Assert.assertFalse(destroyOnly.isDestroyed());
- // end request
- ctx.clearIdentifier(HttpSessionEvent.HTTP_IDENTIFIER);
- // expire session
- scope.onEvent(new HttpSessionEnd(this,session));
- Assert.assertTrue(initDestroy.isDestroyed());
- Assert.assertTrue(destroyOnly.isDestroyed());
-
- scope.stop();
- }
-
- /**
- * Test instances destroyed in proper (i.e. reverse) order
- */
- public void testDestroyOrder() throws Exception {
- EventContext ctx = new EventContextImpl();
- SessionScopeContext scope = new SessionScopeContext(ctx);
- scope.registerFactories(createOrderedInitComponents());
- scope.start();
- Object session = new Object();
- // request start
- ctx.setIdentifier(HttpSessionEvent.HTTP_IDENTIFIER,session);
-
- SessionScopedOrderedInitPojo one = (SessionScopedOrderedInitPojo) scope.getContext("one").getInstance(null);
- Assert.assertNotNull(one);
- Assert.assertEquals(1, one.getNumberInstantiated());
- Assert.assertEquals(1, one.getInitOrder());
-
- SessionScopedOrderedInitPojo two = (SessionScopedOrderedInitPojo) scope.getContext("two").getInstance(null);
- Assert.assertNotNull(two);
- Assert.assertEquals(2, two.getNumberInstantiated());
- Assert.assertEquals(2, two.getInitOrder());
-
- SessionScopedOrderedInitPojo three = (SessionScopedOrderedInitPojo) scope.getContext("three").getInstance(null);
- Assert.assertNotNull(three);
- Assert.assertEquals(3, three.getNumberInstantiated());
- Assert.assertEquals(3, three.getInitOrder());
-
- // end request
- ctx.clearIdentifier(HttpSessionEvent.HTTP_IDENTIFIER);
-
- // expire session
- scope.onEvent(new HttpSessionEnd(this, session));
- Assert.assertEquals(0, one.getNumberInstantiated());
- scope.stop();
- }
-
- JavaContextFactoryBuilder builder;
-
- private List<ContextFactory<Context>> createComponents() throws BuilderException, ConfigurationLoadException {
- AtomicComponent[] ca = new AtomicComponent[3];
- ca[0] = MockFactory.createComponent("TestServiceInitDestroy", SessionScopeInitDestroyComponent.class,
- Scope.SESSION);
- ca[1] = MockFactory.createComponent("TestServiceInitOnly", SessionScopeInitOnlyComponent.class, Scope.SESSION);
- ca[2] = MockFactory.createComponent("TestServiceDestroyOnly", SessionScopeDestroyOnlyComponent.class,
- Scope.SESSION);
- ComponentTypeIntrospector introspector = MockFactory.getIntrospector();
- ca[0].getImplementation().setComponentType(introspector.introspect(SessionScopeInitDestroyComponent.class));
- ca[1].getImplementation().setComponentType(introspector.introspect(SessionScopeInitOnlyComponent.class));
- ca[2].getImplementation().setComponentType(introspector.introspect(SessionScopeDestroyOnlyComponent.class));
- List<ContextFactory<Context>> configs = new ArrayList<ContextFactory<Context>>();
- for (AtomicComponent aCa : ca) {
- builder.build(aCa);
- configs.add((ContextFactory<Context>) aCa.getContextFactory());
-
- }
- return configs;
- }
-
- private List<ContextFactory<Context>> createOrderedInitComponents() throws
- BuilderException, ConfigurationLoadException {
- AtomicComponent[] ca = new AtomicComponent[3];
- ca[0] = MockFactory.createComponent("one", SessionScopedOrderedInitPojo.class, Scope.SESSION);
- ca[1] = MockFactory.createComponent("two", SessionScopedOrderedInitPojo.class, Scope.SESSION);
- ca[2] = MockFactory.createComponent("three", SessionScopedOrderedInitPojo.class, Scope.SESSION);
- ComponentTypeIntrospector introspector = MockFactory.getIntrospector();
- ComponentType type = introspector.introspect(SessionScopedOrderedInitPojo.class);
- ca[0].getImplementation().setComponentType(type);
- ca[1].getImplementation().setComponentType(type);
- ca[2].getImplementation().setComponentType(type);
- List<ContextFactory<Context>> configs = new ArrayList<ContextFactory<Context>>();
- for (AtomicComponent aCa : ca) {
- builder.build(aCa);
- configs.add((ContextFactory<Context>) aCa.getContextFactory());
-
- }
- return configs;
- }
-
- protected void setUp() throws Exception {
- super.setUp();
- WireFactoryService wireService = new DefaultWireFactoryService(new MessageFactoryImpl(), new JDKWireFactoryFactory(),new DefaultPolicyBuilderRegistry());
- builder = new JavaContextFactoryBuilder(wireService);
- }
-
-}
diff --git a/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/SessionScopedOrderedInitPojo.java b/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/SessionScopedOrderedInitPojo.java
deleted file mode 100644
index 683247a5c8..0000000000
--- a/tags/java-M1-20060518/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/SessionScopedOrderedInitPojo.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.tuscany.container.java.scopes;
-
-import org.osoa.sca.annotations.Scope;
-import org.osoa.sca.annotations.Init;
-import org.osoa.sca.annotations.Destroy;
-
-@Scope("SESSION")
-public class SessionScopedOrderedInitPojo {
-
- private static Object lock = new Object();
- private static int numberInstantied;
- private int initOrder;
-
- @Init
- public void init() {
- synchronized (SessionScopedOrderedInitPojo.lock) {
- ++SessionScopedOrderedInitPojo.numberInstantied;
- initOrder = SessionScopedOrderedInitPojo.numberInstantied;
- }
- }
-
- @Destroy
- public void destroy() throws OrderException {
- synchronized (SessionScopedOrderedInitPojo.lock) {
- if (initOrder != SessionScopedOrderedInitPojo.numberInstantied) {
- throw new OrderException("Instance shutdown done out of order");
- }
- --SessionScopedOrderedInitPojo.numberInstantied;
- }
- }
-
- public int getNumberInstantiated() {
- return SessionScopedOrderedInitPojo.numberInstantied;
- }
-
- public int getInitOrder() {
- return initOrder;
- }
-
-}