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 2014/05/21 20:25:33 UTC
svn commit: r1596641 - in /tomee/tomee/trunk/container/openejb-core/src:
main/java/org/apache/openejb/OpenEjbContainer.java
test/java/org/apache/openejb/OpenEjbContainerNoRestartTest.java
Author: rmannibucau
Date: Wed May 21 18:25:32 2014
New Revision: 1596641
URL: http://svn.apache.org/r1596641
Log:
OPENEJB-2095 test for single EJBContainer jvm feature
Added:
tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/OpenEjbContainerNoRestartTest.java
- copied, changed from r1596614, tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/OpenEjbContainerTest.java
Modified:
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java?rev=1596641&r1=1596640&r2=1596641&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java Wed May 21 18:25:32 2014
@@ -153,7 +153,11 @@ public final class OpenEjbContainer exte
return OPENEJB_EJBCONTAINER_CLOSE_SINGLE.equals(SystemInstance.get().getProperty(OPENEJB_EJBCONTAINER_CLOSE, "by-invocation"));
}
- private void doClose() {
+ private synchronized void doClose() {
+ if (instance == null) {
+ return;
+ }
+
if (serviceManager != null) {
serviceManager.stop();
}
@@ -341,7 +345,9 @@ public final class OpenEjbContainer exte
Runtime.getRuntime().addShutdownHook(new Thread() {
@Override
public void run() {
- instance.doClose();
+ if (instance != null) {
+ instance.doClose();
+ }
}
});
}
Copied: tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/OpenEjbContainerNoRestartTest.java (from r1596614, tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/OpenEjbContainerTest.java)
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/OpenEjbContainerNoRestartTest.java?p2=tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/OpenEjbContainerNoRestartTest.java&p1=tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/OpenEjbContainerTest.java&r1=1596614&r2=1596641&rev=1596641&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/OpenEjbContainerTest.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/OpenEjbContainerNoRestartTest.java Wed May 21 18:25:32 2014
@@ -16,79 +16,47 @@
*/
package org.apache.openejb;
-import junit.framework.TestCase;
import org.apache.openejb.jee.EjbJar;
-import org.apache.openejb.jee.SingletonBean;
+import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.util.reflection.Reflections;
+import org.junit.Test;
-import javax.ejb.EJB;
import javax.ejb.embeddable.EJBContainer;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @version $Rev$ $Date$
- */
-public class OpenEjbContainerTest extends TestCase {
-
- @EJB
- private Widget widget;
-
- public void testInject() throws Exception {
-
- Map<String, Object> map = new HashMap<String, Object>();
-
-
- final EjbJar ejbJar = new EjbJar();
- ejbJar.addEnterpriseBean(new SingletonBean(Widget.class));
- map.put(EJBContainer.MODULES, ejbJar);
-
- OpenEjbContainer openEjbContainer = (OpenEjbContainer) EJBContainer.createEJBContainer(map);
-
- Injector.inject(this);
-
- assertNotNull(widget);
-
- widget = null;
-
- openEjbContainer.getContext().bind("inject", this);
-
- openEjbContainer.close();
- }
-
- public void testStartContainerFromInnerClass() throws Exception {
- new SomeInnerClass().startTheContainer();
- }
-
- public static class Widget {
+import java.util.Properties;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotSame;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+
+public class OpenEjbContainerNoRestartTest {
+ @Test
+ public void normalRestart() throws Exception {
+ final EJBContainer container1 = EJBContainer.createEJBContainer(new Properties() {{
+ put(EJBContainer.MODULES, new EjbJar());
+ }});
+ container1.close();
+ final EJBContainer container2 = EJBContainer.createEJBContainer(new Properties() {{
+ put(EJBContainer.MODULES, new EjbJar());
+ }});
+ container2.close();
+ assertNotSame(container1, container2);
}
- public static final class SomeInnerClass {
- @EJB
- private Widget widget;
-
- public void startTheContainer() throws Exception {
- Map<String, Object> map = new HashMap<String, Object>();
-
-
- final EjbJar ejbJar = new EjbJar();
- ejbJar.addEnterpriseBean(new SingletonBean(Widget.class));
- map.put(EJBContainer.MODULES, ejbJar);
-
- OpenEjbContainer openEjbContainer = (OpenEjbContainer) EJBContainer.createEJBContainer(map);
-
- try {
- Injector.inject(this);
-
- assertNotNull(widget);
-
- widget = null;
-
- openEjbContainer.getContext().bind("inject", this);
- } finally {
- openEjbContainer.close();
- }
-
- }
+ @Test
+ public void noRestart() throws Exception {
+ final EJBContainer container1 = EJBContainer.createEJBContainer(new Properties() {{
+ put(EJBContainer.MODULES, new EjbJar());
+ put(OpenEjbContainer.OPENEJB_EJBCONTAINER_CLOSE, OpenEjbContainer.OPENEJB_EJBCONTAINER_CLOSE_SINGLE);
+ }});
+ container1.close();
+ final EJBContainer container2 = EJBContainer.createEJBContainer(new Properties() {{
+ put(EJBContainer.MODULES, new EjbJar());
+ }});
+ container2.close();
+ assertTrue(SystemInstance.isInitialized());
+ assertSame(container1, container2);
+ Reflections.invokeByReflection(container2, "doClose", new Class<?>[0], null);
+ assertFalse(SystemInstance.isInitialized());
}
}