You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by jm...@apache.org on 2007/01/05 13:00:32 UTC

svn commit: r493001 - in /incubator/tuscany/java/sca/kernel/core/src: main/java/org/apache/tuscany/core/component/scope/ test/java/org/apache/tuscany/core/component/scope/

Author: jmarino
Date: Fri Jan  5 04:00:31 2007
New Revision: 493001

URL: http://svn.apache.org/viewvc?view=rev&rev=493001
Log:
remove eager initialization for session scope components per SCA spec changes

Modified:
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/HttpSessionScopeContainer.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeInitDestroyErrorTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeInstanceLifecycleTestCase.java

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/HttpSessionScopeContainer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/HttpSessionScopeContainer.java?view=diff&rev=493001&r1=493000&r2=493001
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/HttpSessionScopeContainer.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/HttpSessionScopeContainer.java Fri Jan  5 04:00:31 2007
@@ -24,7 +24,6 @@
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
-import org.apache.tuscany.spi.ObjectCreationException;
 import org.apache.tuscany.spi.component.AtomicComponent;
 import org.apache.tuscany.spi.component.ScopeContainerMonitor;
 import org.apache.tuscany.spi.component.TargetDestructionException;
@@ -34,7 +33,6 @@
 import org.apache.tuscany.spi.model.Scope;
 
 import org.apache.tuscany.core.component.event.HttpSessionEnd;
-import org.apache.tuscany.core.component.event.HttpSessionStart;
 
 /**
  * A scope context which manages atomic component instances keyed on HTTP session
@@ -57,21 +55,7 @@
 
     public void onEvent(Event event) {
         checkInit();
-        if (event instanceof HttpSessionStart) {
-            Object key = ((HttpSessionStart) event).getId();
-            workContext.setIdentifier(Scope.SESSION, key);
-            for (Map.Entry<AtomicComponent, Map<Object, InstanceWrapper>> entry : contexts.entrySet()) {
-                if (entry.getKey().isEagerInit()) {
-                    try {
-                        getInstance(entry.getKey(), key, true);
-                    } catch (ObjectCreationException e) {
-                        monitor.eagerInitializationError(e);
-                    } catch (TargetResolutionException e) {
-                        monitor.eagerInitializationError(e);
-                    }
-                }
-            }
-        } else if (event instanceof HttpSessionEnd) {
+        if (event instanceof HttpSessionEnd) {
             Object key = ((HttpSessionEnd) event).getId();
             shutdownInstances(key);
             workContext.clearIdentifier(key);
@@ -96,11 +80,10 @@
     public void register(AtomicComponent component) {
         contexts.put(component, new ConcurrentHashMap<Object, InstanceWrapper>());
         component.addListener(this);
-
     }
 
-    protected InstanceWrapper getInstanceWrapper(AtomicComponent component, boolean create) throws
-                                                                                            TargetResolutionException {
+    protected InstanceWrapper getInstanceWrapper(AtomicComponent component, boolean create)
+        throws TargetResolutionException {
         Object key = workContext.getIdentifier(Scope.SESSION);
         assert key != null : "HTTP session key not bound in work context";
         return getInstance(component, key, create);

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeInitDestroyErrorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeInitDestroyErrorTestCase.java?view=diff&rev=493001&r1=493000&r2=493001
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeInitDestroyErrorTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeInitDestroyErrorTestCase.java Fri Jan  5 04:00:31 2007
@@ -18,11 +18,12 @@
  */
 package org.apache.tuscany.core.component.scope;
 
-import org.apache.tuscany.spi.ObjectCreationException;
 import org.apache.tuscany.spi.component.AtomicComponent;
 import org.apache.tuscany.spi.component.ScopeContainerMonitor;
 import org.apache.tuscany.spi.component.TargetDestructionException;
+import org.apache.tuscany.spi.component.WorkContext;
 import org.apache.tuscany.spi.event.RuntimeEventListener;
+import org.apache.tuscany.spi.model.Scope;
 
 import junit.framework.TestCase;
 import org.apache.tuscany.core.component.WorkContextImpl;
@@ -35,30 +36,13 @@
  */
 public class HttpSessionScopeInitDestroyErrorTestCase extends TestCase {
 
-    public void testInitializeErrorMonitor() throws Exception {
-        ScopeContainerMonitor monitor;
-        monitor = EasyMock.createMock(ScopeContainerMonitor.class);
-        monitor.eagerInitializationError(EasyMock.isA(ObjectCreationException.class));
-        EasyMock.replay(monitor);
-        HttpSessionScopeContainer scope = new HttpSessionScopeContainer(new WorkContextImpl(), monitor);
-        scope.start();
-        AtomicComponent component = EasyMock.createMock(AtomicComponent.class);
-        component.addListener(EasyMock.isA(RuntimeEventListener.class));
-        EasyMock.expect(component.getName()).andReturn("foo").atLeastOnce();
-        EasyMock.expect(component.createInstance()).andThrow(new ObjectCreationException(""));
-        EasyMock.expect(component.isEagerInit()).andReturn(true);
-        EasyMock.replay(component);
-        scope.register(component);
-        scope.onEvent(new HttpSessionStart(this, new Object()));
-        EasyMock.verify(monitor);
-    }
-
     public void testDestroyErrorMonitor() throws Exception {
         ScopeContainerMonitor monitor;
         monitor = EasyMock.createMock(ScopeContainerMonitor.class);
         monitor.destructionError(EasyMock.isA(TargetDestructionException.class));
         EasyMock.replay(monitor);
-        HttpSessionScopeContainer scope = new HttpSessionScopeContainer(new WorkContextImpl(), monitor);
+        WorkContext workContext = new WorkContextImpl();
+        HttpSessionScopeContainer scope = new HttpSessionScopeContainer(workContext, monitor);
         scope.start();
         AtomicComponent component = EasyMock.createMock(AtomicComponent.class);
         component.addListener(EasyMock.isA(RuntimeEventListener.class));
@@ -72,6 +56,8 @@
         scope.register(component);
         Object id = new Object();
         scope.onEvent(new HttpSessionStart(this, id));
+        workContext.setIdentifier(Scope.SESSION, id);
+        scope.getInstance(component);
         scope.onEvent(new HttpSessionEnd(this, id));
         EasyMock.verify(monitor);
     }

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeInstanceLifecycleTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeInstanceLifecycleTestCase.java?view=diff&rev=493001&r1=493000&r2=493001
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeInstanceLifecycleTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeInstanceLifecycleTestCase.java Fri Jan  5 04:00:31 2007
@@ -47,7 +47,6 @@
         Foo comp = new Foo();
         AtomicComponent component = EasyMock.createMock(AtomicComponent.class);
         EasyMock.expect(component.createInstance()).andReturn(comp);
-        EasyMock.expect(component.isEagerInit()).andReturn(true).atLeastOnce();
         component.addListener(EasyMock.isA(RuntimeEventListener.class));
         component.init(EasyMock.eq(comp));
         component.destroy(EasyMock.eq(comp));
@@ -69,11 +68,11 @@
         HttpSessionScopeContainer scope = new HttpSessionScopeContainer(ctx, null);
         scope.start();
 
-        AtomicComponent oneComponent = createComponent(false);
+        AtomicComponent oneComponent = createComponent();
         scope.register(oneComponent);
-        AtomicComponent twoComponent = createComponent(false);
+        AtomicComponent twoComponent = createComponent();
         scope.register(twoComponent);
-        AtomicComponent threeComponent = createComponent(false);
+        AtomicComponent threeComponent = createComponent();
         scope.register(threeComponent);
 
         Object session = new Object();
@@ -102,37 +101,14 @@
         EasyMock.verify(threeComponent);
     }
 
-    public void testEagerInitDestroyOrder() throws Exception {
-        WorkContext ctx = new WorkContextImpl();
-        HttpSessionScopeContainer scope = new HttpSessionScopeContainer(ctx, null);
-        scope.start();
-
-        AtomicComponent oneComponent = createComponent(true);
-        scope.register(oneComponent);
-        AtomicComponent twoComponent = createComponent(true);
-        scope.register(twoComponent);
-        AtomicComponent threeComponent = createComponent(true);
-        scope.register(threeComponent);
-
-        Object session = new Object();
-        ctx.setIdentifier(Scope.SESSION, session);
-        scope.onEvent(new HttpSessionStart(this, session));
-        scope.onEvent(new HttpSessionEnd(this, session));
-        scope.stop();
-        EasyMock.verify(oneComponent);
-        EasyMock.verify(twoComponent);
-        EasyMock.verify(threeComponent);
-    }
-
     @SuppressWarnings("unchecked")
-    private AtomicComponent createComponent(boolean init) throws TargetException {
+    private AtomicComponent createComponent() throws TargetException {
         AtomicComponent component = EasyMock.createMock(AtomicComponent.class);
         EasyMock.expect(component.createInstance()).andStubAnswer(new IAnswer() {
             public Object answer() throws Throwable {
                 return new OrderedInitPojoImpl();
             }
         });
-        EasyMock.expect(component.isEagerInit()).andReturn(init).atLeastOnce();
         component.addListener(EasyMock.isA(RuntimeEventListener.class));
         component.init(EasyMock.isA(OrderedInitPojoImpl.class));
         EasyMock.expectLastCall().andAnswer(new IAnswer() {



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org