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;
}