diff options
Diffstat (limited to 'tags/java-M1-20060522/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes')
15 files changed, 0 insertions, 1831 deletions
diff --git a/tags/java-M1-20060522/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/BasicModuleScopeTestCase.java b/tags/java-M1-20060522/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-20060522/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-20060522/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/BasicRequestScopeTestCase.java b/tags/java-M1-20060522/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-20060522/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-20060522/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/BasicSessionScopeTestCase.java b/tags/java-M1-20060522/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-20060522/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-20060522/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/BasicStatelessScopeTestCase.java b/tags/java-M1-20060522/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-20060522/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-20060522/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/CompositeScopeTestCase.java b/tags/java-M1-20060522/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-20060522/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-20060522/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/DependencyLifecycleTestCase.java b/tags/java-M1-20060522/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-20060522/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-20060522/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/ModuleScopeLifecycleTestCase.java b/tags/java-M1-20060522/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-20060522/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-20060522/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/OrderException.java b/tags/java-M1-20060522/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-20060522/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-20060522/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/OrderedDependentPojo.java b/tags/java-M1-20060522/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-20060522/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-20060522/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/OrderedEagerInitPojo.java b/tags/java-M1-20060522/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-20060522/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-20060522/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/OrderedInitPojo.java b/tags/java-M1-20060522/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-20060522/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-20060522/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/RequestScopeLifecycleTestCase.java b/tags/java-M1-20060522/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-20060522/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-20060522/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/RequestScopedOrderedInitPojo.java b/tags/java-M1-20060522/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-20060522/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-20060522/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/SessionScopeLifecycleTestCase.java b/tags/java-M1-20060522/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-20060522/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-20060522/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/scopes/SessionScopedOrderedInitPojo.java b/tags/java-M1-20060522/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-20060522/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; - } - -} |