You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2008/09/25 03:34:09 UTC

svn commit: r698792 - /openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/client/LocalInitialContext.java

Author: dblevins
Date: Wed Sep 24 18:34:09 2008
New Revision: 698792

URL: http://svn.apache.org/viewvc?rev=698792&view=rev
Log:
Ability to set the close behavior with a flag

Modified:
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/client/LocalInitialContext.java

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/client/LocalInitialContext.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/client/LocalInitialContext.java?rev=698792&r1=698791&r2=698792&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/client/LocalInitialContext.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/client/LocalInitialContext.java Wed Sep 24 18:34:09 2008
@@ -22,6 +22,7 @@
 import org.apache.openejb.spi.ContainerSystem;
 import org.apache.openejb.util.Logger;
 import org.apache.openejb.util.LogCategory;
+import org.apache.openejb.util.Options;
 import org.apache.openejb.core.ivm.ClientSecurity;
 import org.apache.openejb.core.ivm.naming.ContextWrapper;
 
@@ -48,11 +49,21 @@
     private Object clientIdentity;
     private Object serviceManager;
 
+    private static final String ON_CLOSE = "openejb.embedded.initialcontext.close";
+    private Close onClose;
+
+    public static enum Close {
+        LOGOUT, RESTART, DESTROY;
+    }
+
+
     public LocalInitialContext(Hashtable env, LocalInitialContextFactory factory) throws NamingException {
         super(getContainerSystemEjbContext());
         properties = new Properties();
         properties.putAll(env);
 
+        onClose = Options.getEnum(properties, ON_CLOSE, Close.LOGOUT);
+
         this.factory = factory;
 
         login();
@@ -60,6 +71,7 @@
         startNetworkServices();
 
         Properties properties = new Properties();
+
         // set standard and vendor properties
         createEJBContainer(properties);
     }
@@ -71,10 +83,20 @@
     public void close() throws NamingException {
         logger.debug("LocalIntialContext.close()");
 
-        logout();
+        switch(onClose){
+            case LOGOUT: {
+                logout();
+            } break;
+            case DESTROY: {
+                logout();
+                destroy();
+            } break;
 
-        stopNetworkServices();
+        }
+    }
 
+    private void destroy() throws NamingException {
+        stopNetworkServices();
         tearDownOpenEJB();
     }