Author: rmannibucau
Date: Sun Dec  2 13:20:03 2012
New Revision: 1416172

URL: http://svn.apache.org/viewvc?rev=1416172&view=rev
Log:
using VMID instead of local file to know if deployer is local or not -- to 
rework maybe but filesystem usage is absolutely to avoid for real deployments

Modified:
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/DeployerEjb.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/VmDeploymentManager.java

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/DeployerEjb.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/DeployerEjb.java?rev=1416172&r1=1416171&r2=1416172&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/DeployerEjb.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/DeployerEjb.java
 Sun Dec  2 13:20:03 2012
@@ -16,10 +16,18 @@
  */
 package org.apache.openejb.assembler;
 
-import org.apache.openejb.*;
+import org.apache.openejb.ClassLoaderUtil;
+import org.apache.openejb.NoSuchApplicationException;
+import org.apache.openejb.OpenEJBException;
+import org.apache.openejb.OpenEJBRuntimeException;
+import org.apache.openejb.UndeployException;
 import org.apache.openejb.assembler.classic.AppInfo;
 import org.apache.openejb.assembler.classic.Assembler;
-import org.apache.openejb.config.*;
+import org.apache.openejb.config.AppModule;
+import org.apache.openejb.config.ConfigurationFactory;
+import org.apache.openejb.config.DeploymentLoader;
+import org.apache.openejb.config.DeploymentModule;
+import org.apache.openejb.config.WebModule;
 import org.apache.openejb.config.sys.AdditionalDeployments;
 import org.apache.openejb.config.sys.Deployments;
 import org.apache.openejb.config.sys.JaxbOpenejb;
@@ -36,9 +44,12 @@ import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
-import java.math.BigInteger;
-import java.security.SecureRandom;
-import java.util.*;
+import java.rmi.dgc.VMID;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Properties;
+import java.util.TreeMap;
 
 import static javax.ejb.TransactionManagementType.BEAN;
 import static 
org.apache.openejb.config.ConfigurationFactory.ADDITIONAL_DEPLOYMENTS;
@@ -54,32 +65,12 @@ public class DeployerEjb implements Depl
 
     public static final ThreadLocal<Boolean> AUTO_DEPLOY = new 
ThreadLocal<Boolean>();
 
-    private final static File uniqueFile;
     private final static boolean oldWarDeployer = 
"old".equalsIgnoreCase(SystemInstance.get().getOptions().get("openejb.deployer.war",
 "new"));
 
+    private static final String ID;
+
     static {
-        String uniqueName = "OpenEJB-" + new BigInteger(128, new 
SecureRandom()).toString(Character.MAX_RADIX);
-        String tempDir = System.getProperty("java.io.tmpdir");
-        File unique;
-        try {
-            unique = new File(tempDir, uniqueName).getCanonicalFile();
-            unique.createNewFile();
-        } catch (IOException e) {
-            // same trying in work directory
-            unique = new File(SystemInstance.get().getBase().getDirectory(), 
"work");
-            if (unique.exists()) {
-                try {
-                    unique = new File(unique, uniqueName).getCanonicalFile();
-                    unique.createNewFile();
-                } catch (IOException e1) {
-                    throw new OpenEJBRuntimeException(e);
-                }
-            } else {
-                throw new OpenEJBRuntimeException("can't create unique file, 
please set java.io.tmpdir to a writable folder or create work folder", e);
-            }
-        }
-        uniqueFile = unique;
-        uniqueFile.deleteOnExit();
+        ID = new VMID().toString();
     }
 
     private final DeploymentLoader deploymentLoader;
@@ -92,8 +83,12 @@ public class DeployerEjb implements Depl
         assembler = (Assembler) 
SystemInstance.get().getComponent(org.apache.openejb.spi.Assembler.class);
     }
 
+    public static String id() {
+        return ID;
+    }
+
     public String getUniqueFile() {
-        return uniqueFile.getAbsolutePath();
+        return ID;
     }
 
     public Collection<AppInfo> getDeployedApps() {

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/VmDeploymentManager.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/VmDeploymentManager.java?rev=1416172&r1=1416171&r2=1416172&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/VmDeploymentManager.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/VmDeploymentManager.java
 Sun Dec  2 13:20:03 2012
@@ -21,6 +21,7 @@ import org.apache.openejb.OpenEJBExcepti
 import org.apache.openejb.OpenEJBRuntimeException;
 import org.apache.openejb.UndeployException;
 import org.apache.openejb.assembler.Deployer;
+import org.apache.openejb.assembler.DeployerEjb;
 import org.apache.openejb.assembler.classic.AppInfo;
 import org.apache.openejb.assembler.classic.ClientInfo;
 import org.apache.openejb.assembler.classic.ConnectorInfo;
@@ -124,7 +125,7 @@ public class VmDeploymentManager impleme
 
     private boolean isDeployerLocal() {
         if (deployer == null) {
-            deployerLocal = new File(getDeployer().getUniqueFile()).exists();  
          
+            deployerLocal = 
DeployerEjb.id().equals(getDeployer().getUniqueFile());
         }
         return deployerLocal;
     }


Reply via email to