You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2012/02/07 22:32:52 UTC

svn commit: r1241640 - in /openejb/trunk/openejb/container/openejb-core/src: main/java/org/apache/openejb/junit/ApplicationComposer.java test/java/org/apache/openejb/core/stateful/StatefulStatefulTimeoutTest.java

Author: rmannibucau
Date: Tue Feb  7 21:32:51 2012
New Revision: 1241640

URL: http://svn.apache.org/viewvc?rev=1241640&view=rev
Log:
adding a test to work on stateful timeout

Added:
    openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/core/stateful/StatefulStatefulTimeoutTest.java
Modified:
    openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java

Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java?rev=1241640&r1=1241639&r2=1241640&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java Tue Feb  7 21:32:51 2012
@@ -66,6 +66,7 @@ import static org.apache.openejb.config.
  */
 public class ApplicationComposer extends BlockJUnit4ClassRunner {
 
+    public static final String OPENEJB_APPLICATION_COMPOSER_CONTEXT = "openejb.application.composer.context";
     private final TestClass testClass;
 
     public ApplicationComposer(Class<?> klass) throws InitializationError {
@@ -315,6 +316,8 @@ public class ApplicationComposer extends
 
                     System.setProperty(javax.naming.Context.INITIAL_CONTEXT_FACTORY, InitContextFactory.class.getName());
 
+                    System.getProperties().put(OPENEJB_APPLICATION_COMPOSER_CONTEXT, appContext.getGlobalJndiContext());
+
                     final ThreadContext previous = ThreadContext.enter(new ThreadContext(context, null, Operation.BUSINESS));
                     try {
                         next.evaluate();

Added: openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/core/stateful/StatefulStatefulTimeoutTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/core/stateful/StatefulStatefulTimeoutTest.java?rev=1241640&view=auto
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/core/stateful/StatefulStatefulTimeoutTest.java (added)
+++ openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/core/stateful/StatefulStatefulTimeoutTest.java Tue Feb  7 21:32:51 2012
@@ -0,0 +1,53 @@
+package org.apache.openejb.core.stateful;
+
+import org.apache.openejb.jee.EnterpriseBean;
+import org.apache.openejb.jee.StatefulBean;
+import org.apache.openejb.junit.ApplicationComposer;
+import org.apache.openejb.junit.Module;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import javax.ejb.Stateful;
+import javax.ejb.StatefulTimeout;
+import javax.naming.Context;
+import java.util.concurrent.TimeUnit;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
+
+@RunWith(ApplicationComposer.class)
+public class StatefulStatefulTimeoutTest {
+    private Context context;
+
+    @Before
+    public void initContext() {
+        context = (Context) System.getProperties().get(ApplicationComposer.OPENEJB_APPLICATION_COMPOSER_CONTEXT);
+    }
+
+    @Stateful
+    @StatefulTimeout(value = 4, unit = TimeUnit.SECONDS)
+    public static class TimedOutStateful {
+        public void foo() {}
+    }
+
+    @Module
+    public EnterpriseBean stateful() {
+        return new StatefulBean("TimedOutStateful", TimedOutStateful.class);
+    }
+
+    @Test @Ignore
+    public void checkBeanIsCleaned() throws Exception {
+        assertNotNull(context);
+        TimedOutStateful stateful = (TimedOutStateful) context.lookup("global/StatefulStatefulTimeoutTest/stateful/TimedOutStateful");
+        stateful.foo();
+        Thread.sleep(8000);
+        try {
+            stateful.foo();
+            fail();
+        } catch (Exception e) {
+            System.out.println("got " + e.getClass());
+        }
+    }
+}