Return-Path: X-Original-To: apmail-geronimo-scm-archive@www.apache.org Delivered-To: apmail-geronimo-scm-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 6F4DDD85D for ; Mon, 1 Oct 2012 18:11:12 +0000 (UTC) Received: (qmail 99685 invoked by uid 500); 1 Oct 2012 18:11:12 -0000 Delivered-To: apmail-geronimo-scm-archive@geronimo.apache.org Received: (qmail 99605 invoked by uid 500); 1 Oct 2012 18:11:11 -0000 Mailing-List: contact scm-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@geronimo.apache.org List-Id: Delivered-To: mailing list scm@geronimo.apache.org Received: (qmail 99597 invoked by uid 99); 1 Oct 2012 18:11:11 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 01 Oct 2012 18:11:11 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 01 Oct 2012 18:11:08 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id CB99D23889BB; Mon, 1 Oct 2012 18:10:24 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1392490 - /geronimo/server/branches/3.0/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/Deployer.java Date: Mon, 01 Oct 2012 18:10:24 -0000 To: scm@geronimo.apache.org From: gawor@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121001181024.CB99D23889BB@eris.apache.org> Author: gawor Date: Mon Oct 1 18:10:24 2012 New Revision: 1392490 URL: http://svn.apache.org/viewvc?rev=1392490&view=rev Log: GERONIMO-6392: Copy module to a temporary file only on Windows by default Modified: geronimo/server/branches/3.0/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/Deployer.java Modified: geronimo/server/branches/3.0/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/Deployer.java URL: http://svn.apache.org/viewvc/geronimo/server/branches/3.0/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/Deployer.java?rev=1392490&r1=1392489&r2=1392490&view=diff ============================================================================== --- geronimo/server/branches/3.0/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/Deployer.java (original) +++ geronimo/server/branches/3.0/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/Deployer.java Mon Oct 1 18:10:24 2012 @@ -53,6 +53,7 @@ import org.apache.geronimo.kernel.config import org.apache.geronimo.kernel.config.ConfigurationUtil; import org.apache.geronimo.kernel.config.DeploymentWatcher; import org.apache.geronimo.kernel.config.InvalidConfigException; +import org.apache.geronimo.kernel.config.Os; import org.apache.geronimo.kernel.repository.Artifact; import org.apache.geronimo.kernel.repository.ArtifactResolver; import org.apache.geronimo.kernel.util.FileUtils; @@ -72,8 +73,10 @@ public class Deployer implements GBeanLi private static final Logger log = LoggerFactory.getLogger(Deployer.class); private final int REAPER_INTERVAL = 60 * 1000; + public static final String USE_TEMPORARY_MODULE_FILE_KEY = "org.apache.geronimo.deployer.useTemporaryModuleFile"; + private final boolean USE_TEMPORARY_MODULE_FILE = getUseTemporaryModuleFile(); public static final String CLEAN_UP_ON_START_KEY = "org.apache.geronimo.deployer.cleanupOnStart"; - private final boolean CLEAN_UP_ON_START = System.getProperty(CLEAN_UP_ON_START_KEY) == null ? true : Boolean.getBoolean(CLEAN_UP_ON_START_KEY); + private final boolean CLEAN_UP_ON_START = getCleanUpOnStart(); private DeployerReaper reaper; private final String remoteDeployAddress; private final Collection builders; @@ -113,7 +116,7 @@ public class Deployer implements GBeanLi File originalModuleFile = moduleFile; File tmpDir = null; log.debug("Deployment start: module=" + originalModuleFile + ", plan=" + planFile + ", inPlace=" + inPlace); - if (moduleFile != null && !moduleFile.isDirectory()) { + if (moduleFile != null && moduleFile.isFile() && USE_TEMPORARY_MODULE_FILE) { // todo jar url handling with Sun's VM on Windows leaves a lock on the module file preventing rebuilds // to address this we use a gross hack and copy the file to a temporary directory // the lock on the file will prevent that being deleted properly until the URLJarFile has @@ -135,6 +138,7 @@ public class Deployer implements GBeanLi reaper.delete(tmpDir.getAbsolutePath(), "delete"); } } + log.debug("Using temporary file " + moduleFile + " for deployment of " + originalModuleFile + " module"); } try { @@ -152,6 +156,24 @@ public class Deployer implements GBeanLi } } } + + private static boolean getUseTemporaryModuleFile() { + String property = System.getProperty(USE_TEMPORARY_MODULE_FILE_KEY); + if (property == null) { + return Os.isFamily(Os.FAMILY_WINDOWS); + } else { + return Boolean.valueOf(property); + } + } + + private static boolean getCleanUpOnStart() { + String value = System.getProperty(CLEAN_UP_ON_START_KEY); + if (value == null) { + return true; + } else { + return Boolean.valueOf(value); + } + } /** * Gets a URL that a remote deploy client can use to upload files to the