You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by va...@apache.org on 2008/02/01 22:29:32 UTC
svn commit: r617659 - in /geronimo/server:
branches/2.0/configs/offline-deployer/src/plan/
branches/2.0/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/util/
trunk/framework/configs/offline-deployer/src/main/plan/ trunk/framewo...
Author: vamsic007
Date: Fri Feb 1 13:29:25 2008
New Revision: 617659
URL: http://svn.apache.org/viewvc?rev=617659&view=rev
Log:
GERONIMO-3764 DeployerReaper fails to cleanup the temp directories left behind by deployer
o Offline deployer leaves temporary files behind since using URLs with "jar" protocol locks the jar file and prevents deletion. This is prevented by creating a temporary file when the protocol is "jar".
o This behaviour is controlled using a system property "org.apache.geronimo.deployment.util.DeploymentUtil.jarUrlRewrite" which is false by default, meaning no change from existing behavior for online-deployer.
o Offline deployer sets the system property to true.
o See http://www.mail-archive.com/dev@geronimo.apache.org/msg55811.html
Modified:
geronimo/server/branches/2.0/configs/offline-deployer/src/plan/plan.xml
geronimo/server/branches/2.0/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/util/DeploymentUtil.java
geronimo/server/trunk/framework/configs/offline-deployer/src/main/plan/plan.xml
geronimo/server/trunk/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/util/DeploymentUtil.java
Modified: geronimo/server/branches/2.0/configs/offline-deployer/src/plan/plan.xml
URL: http://svn.apache.org/viewvc/geronimo/server/branches/2.0/configs/offline-deployer/src/plan/plan.xml?rev=617659&r1=617658&r2=617659&view=diff
==============================================================================
--- geronimo/server/branches/2.0/configs/offline-deployer/src/plan/plan.xml (original)
+++ geronimo/server/branches/2.0/configs/offline-deployer/src/plan/plan.xml Fri Feb 1 13:29:25 2008
@@ -28,4 +28,10 @@
<attribute name="configFile">var/config/offline-deployer-config.xml</attribute>
</gbean>
+ <!-- System Properties -->
+ <gbean name="OfflineDeployerProperties" class="org.apache.geronimo.system.properties.SystemProperties">
+ <attribute name="systemProperties">
+ org.apache.geronimo.deployment.util.DeploymentUtil.jarUrlRewrite=true
+ </attribute>
+ </gbean>
</module>
Modified: geronimo/server/branches/2.0/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/util/DeploymentUtil.java
URL: http://svn.apache.org/viewvc/geronimo/server/branches/2.0/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/util/DeploymentUtil.java?rev=617659&r1=617658&r2=617659&view=diff
==============================================================================
--- geronimo/server/branches/2.0/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/util/DeploymentUtil.java (original)
+++ geronimo/server/branches/2.0/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/util/DeploymentUtil.java Fri Feb 1 13:29:25 2008
@@ -48,7 +48,9 @@
}
public static final File DUMMY_JAR_FILE;
+ private static final boolean jarUrlRewrite;
static {
+ jarUrlRewrite = new Boolean(System.getProperty("org.apache.geronimo.deployment.util.DeploymentUtil.jarUrlRewrite", "false"));
try {
DUMMY_JAR_FILE = DeploymentUtil.createTempFile();
new JarOutputStream(new FileOutputStream(DeploymentUtil.DUMMY_JAR_FILE), new Manifest()).close();
@@ -222,7 +224,25 @@
return new File(baseDir, path).toURL();
} else {
String urlString = "jar:" + new File(jarFile.getName()).toURL() + "!/" + path;
- return new URL(urlString);
+ if(jarUrlRewrite) {
+ // To prevent the lockout of archive, instead of returning a jar url, write the content to a
+ // temp file and return the url of that file.
+ File tempFile = null;
+ try {
+ tempFile = toTempFile(new URL(urlString));
+ } catch (IOException e) {
+ // The JarEntry does not exist!
+ // Return url of a file that does not exist.
+ try {
+ tempFile = createTempFile();
+ tempFile.delete();
+ } catch (IOException ignored) {
+ }
+ }
+ return tempFile.toURL();
+ } else {
+ return new URL(urlString);
+ }
}
}
Modified: geronimo/server/trunk/framework/configs/offline-deployer/src/main/plan/plan.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/configs/offline-deployer/src/main/plan/plan.xml?rev=617659&r1=617658&r2=617659&view=diff
==============================================================================
--- geronimo/server/trunk/framework/configs/offline-deployer/src/main/plan/plan.xml (original)
+++ geronimo/server/trunk/framework/configs/offline-deployer/src/main/plan/plan.xml Fri Feb 1 13:29:25 2008
@@ -28,4 +28,10 @@
<attribute name="configFile">var/config/offline-deployer-config.xml</attribute>
</gbean>
+ <!-- System Properties -->
+ <gbean name="OfflineDeployerProperties" class="org.apache.geronimo.system.properties.SystemProperties">
+ <attribute name="systemProperties">
+ org.apache.geronimo.deployment.util.DeploymentUtil.jarUrlRewrite=true
+ </attribute>
+ </gbean>
</module>
Modified: geronimo/server/trunk/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/util/DeploymentUtil.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/util/DeploymentUtil.java?rev=617659&r1=617658&r2=617659&view=diff
==============================================================================
--- geronimo/server/trunk/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/util/DeploymentUtil.java (original)
+++ geronimo/server/trunk/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/util/DeploymentUtil.java Fri Feb 1 13:29:25 2008
@@ -48,7 +48,9 @@
}
public static final File DUMMY_JAR_FILE;
+ private static final boolean jarUrlRewrite;
static {
+ jarUrlRewrite = new Boolean(System.getProperty("org.apache.geronimo.deployment.util.DeploymentUtil.jarUrlRewrite", "false"));
try {
DUMMY_JAR_FILE = DeploymentUtil.createTempFile();
new JarOutputStream(new FileOutputStream(DeploymentUtil.DUMMY_JAR_FILE), new Manifest()).close();
@@ -223,7 +225,25 @@
return new File(baseDir, path).toURL();
} else {
String urlString = "jar:" + new File(jarFile.getName()).toURL() + "!/" + path;
- return new URL(urlString);
+ if(jarUrlRewrite) {
+ // To prevent the lockout of archive, instead of returning a jar url, write the content to a
+ // temp file and return the url of that file.
+ File tempFile = null;
+ try {
+ tempFile = toTempFile(new URL(urlString));
+ } catch (IOException e) {
+ // The JarEntry does not exist!
+ // Return url of a file that does not exist.
+ try {
+ tempFile = createTempFile();
+ tempFile.delete();
+ } catch (IOException ignored) {
+ }
+ }
+ return tempFile.toURL();
+ } else {
+ return new URL(urlString);
+ }
}
}