You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by xu...@apache.org on 2010/05/06 10:33:04 UTC
svn commit: r941610 - in /geronimo/server/trunk/framework:
configs/offline-deployer/src/main/plan/
modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/
modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/util/
Author: xuhaihong
Date: Thu May 6 08:33:04 2010
New Revision: 941610
URL: http://svn.apache.org/viewvc?rev=941610&view=rev
Log:
1. Add some cleanup codes, so that those tmp files are removed once the deployment is finished
2. Update the jarURLWrite name , also enable it by default.
Modified:
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/DeploymentContext.java
geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/util/JarUtils.java
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=941610&r1=941609&r2=941610&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 Thu May 6 08:33:04 2010
@@ -33,7 +33,7 @@
<!-- System Properties -->
<gbean name="OfflineDeployerProperties" class="org.apache.geronimo.system.properties.SystemProperties">
<attribute name="systemProperties">
- org.apache.geronimo.deployment.util.DeploymentUtil.jarUrlRewrite=true
+ org.apache.geronimo.kernel.util.JarUtils.jarUrlRewrite=true
</attribute>
<attribute name="sunSystemProperties">
java.security.Provider=SUN
Modified: geronimo/server/trunk/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/DeploymentContext.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/DeploymentContext.java?rev=941610&r1=941609&r2=941610&view=diff
==============================================================================
--- geronimo/server/trunk/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/DeploymentContext.java (original)
+++ geronimo/server/trunk/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/DeploymentContext.java Thu May 6 08:33:04 2010
@@ -59,7 +59,6 @@ import org.apache.geronimo.kernel.config
import org.apache.geronimo.kernel.config.ConfigurationModuleType;
import org.apache.geronimo.kernel.config.Manifest;
import org.apache.geronimo.kernel.config.ManifestException;
-import org.apache.xbean.osgi.bundle.util.BundleUtils;
import org.apache.geronimo.kernel.osgi.ConfigurationActivator;
import org.apache.geronimo.kernel.repository.Artifact;
import org.apache.geronimo.kernel.repository.Dependency;
@@ -72,10 +71,10 @@ import org.apache.geronimo.system.plugin
import org.apache.geronimo.system.plugin.model.PluginArtifactType;
import org.apache.geronimo.system.plugin.model.PluginType;
import org.apache.geronimo.system.plugin.model.PluginXmlUtil;
+import org.apache.xbean.osgi.bundle.util.BundleUtils;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.BundleException;
-import org.osgi.framework.Constants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -102,41 +101,42 @@ public class DeploymentContext {
private final BundleContext bundleContext;
protected Configuration configuration;
private Bundle tempBundle;
+ private File tempBundleFile;
- public DeploymentContext(File baseDir,
- File inPlaceConfigurationDir,
- Environment environment,
- AbstractName moduleName,
- ConfigurationModuleType moduleType,
- Naming naming,
- ConfigurationManager configurationManager,
- Collection<Repository> repositories,
+ public DeploymentContext(File baseDir,
+ File inPlaceConfigurationDir,
+ Environment environment,
+ AbstractName moduleName,
+ ConfigurationModuleType moduleType,
+ Naming naming,
+ ConfigurationManager configurationManager,
+ Collection<Repository> repositories,
BundleContext bundleContext) throws DeploymentException {
- this(baseDir, inPlaceConfigurationDir, environment, moduleName, moduleType, naming,
+ this(baseDir, inPlaceConfigurationDir, environment, moduleName, moduleType, naming,
createConfigurationManager(configurationManager, repositories, bundleContext), bundleContext);
}
-
- public DeploymentContext(File baseDir,
- File inPlaceConfigurationDir,
- Environment environment,
- AbstractName moduleName,
- ConfigurationModuleType moduleType,
- Naming naming,
- ConfigurationManager configurationManager,
- BundleContext bundleContext) throws DeploymentException {
+
+ public DeploymentContext(File baseDir,
+ File inPlaceConfigurationDir,
+ Environment environment,
+ AbstractName moduleName,
+ ConfigurationModuleType moduleType,
+ Naming naming,
+ ConfigurationManager configurationManager,
+ BundleContext bundleContext) throws DeploymentException {
if (environment == null) throw new NullPointerException("environment is null");
if (moduleType == null) throw new NullPointerException("type is null");
- if (configurationManager == null) throw new NullPointerException("configurationManager is null");
- if (baseDir == null) throw new NullPointerException("baseDir is null");
+ if (configurationManager == null) throw new NullPointerException("configurationManager is null");
+ if (baseDir == null) throw new NullPointerException("baseDir is null");
if (!baseDir.exists() && !baseDir.mkdirs()) {
throw new DeploymentException("Could not create directory for deployment context assembly: " + baseDir);
}
if (bundleContext == null) {
throw new NullPointerException("no bundle context");
}
-
- this.baseDir = baseDir;
+
+ this.baseDir = baseDir;
this.inPlaceConfigurationDir = inPlaceConfigurationDir;
this.moduleName = moduleName;
this.naming = naming;
@@ -144,7 +144,7 @@ public class DeploymentContext {
this.environment = environment;
this.configurationManager = configurationManager;
this.bundleContext = bundleContext;
-
+
if (null == inPlaceConfigurationDir) {
this.resourceContext = new CopyResourceContext(this, baseDir);
} else {
@@ -152,20 +152,20 @@ public class DeploymentContext {
}
}
- // For sub-classes only
- protected DeploymentContext(File baseDir,
- File inPlaceConfigurationDir,
- Environment environment,
- AbstractName moduleName,
- ConfigurationModuleType moduleType,
- Naming naming,
- ConfigurationManager configurationManager,
+ // For sub-classes only
+ protected DeploymentContext(File baseDir,
+ File inPlaceConfigurationDir,
+ Environment environment,
+ AbstractName moduleName,
+ ConfigurationModuleType moduleType,
+ Naming naming,
+ ConfigurationManager configurationManager,
ResourceContext resourceContext,
- BundleContext bundleContext) throws DeploymentException {
+ BundleContext bundleContext) throws DeploymentException {
if (bundleContext == null) {
throw new NullPointerException("no bundle context");
}
- this.baseDir = baseDir;
+ this.baseDir = baseDir;
this.inPlaceConfigurationDir = inPlaceConfigurationDir;
this.moduleName = moduleName;
this.naming = naming;
@@ -175,7 +175,7 @@ public class DeploymentContext {
this.resourceContext = resourceContext;
this.bundleContext = bundleContext;
}
-
+
private static ConfigurationManager createConfigurationManager(ConfigurationManager configurationManager, Collection<Repository> repositories, BundleContext bundleContext) {
return new DeploymentConfigurationManager(configurationManager, repositories, bundleContext);
}
@@ -192,7 +192,7 @@ public class DeploymentContext {
LinkedHashSet<Artifact> resolvedParentIds = null;
try {
ConfigurationData configurationData = new ConfigurationData(moduleType, null, childConfigurationDatas, environment, baseDir, inPlaceConfigurationDir, naming);
- File tempBundleFile = FileUtils.createTempFile();
+ tempBundleFile = FileUtils.createTempFile();
createTempManifest();
createPluginMetadata();
JarUtils.jarDirectory(baseDir, tempBundleFile);
@@ -230,19 +230,19 @@ public class DeploymentContext {
}
private void createTempManifest() throws DeploymentException, IOException {
- Environment env = new Environment(environment);
+ Environment env = new Environment(environment);
Artifact id = env.getConfigId();
env.setConfigId(new Artifact(id.getGroupId(), id.getArtifactId() + "-DEPLOYMENT", id.getVersion(), id.getType()));
env.addToBundleClassPath(classPath);
env.setBundleActivator(null);
-
+
Manifest manifest;
try {
manifest = env.getManifest();
} catch (ManifestException e) {
throw new DeploymentException(e);
}
-
+
File metaInf = new File(getConfigurationDir(), "META-INF");
metaInf.mkdirs();
FileWriter fw = new FileWriter(new File(metaInf, "MANIFEST.MF"));
@@ -256,9 +256,9 @@ public class DeploymentContext {
}
private File getConfigurationDir() {
- return (inPlaceConfigurationDir == null) ? baseDir : inPlaceConfigurationDir;
+ return (inPlaceConfigurationDir == null) ? baseDir : inPlaceConfigurationDir;
}
-
+
public ConfigurationManager getConfigurationManager() {
return configurationManager;
}
@@ -451,7 +451,7 @@ public class DeploymentContext {
}
}
-
+
public void addManifestClassPath(JarFile moduleFile, URI moduleBaseUri) throws DeploymentException {
List<DeploymentException> problems = new ArrayList<DeploymentException>();
ClassPathUtils.addManifestClassPath(moduleFile, moduleBaseUri, classPath, new DefaultJarFileFactory(), problems);
@@ -490,7 +490,7 @@ public class DeploymentContext {
public URL getTargetURL(URI targetPath) {
return resourceContext.getTargetURL(targetPath);
}
-
+
public Bundle getDeploymentBundle() throws DeploymentException {
return configuration.getBundle();
}
@@ -521,6 +521,12 @@ public class DeploymentContext {
} catch (BundleException e) {
}
}
+ if (tempBundleFile != null) {
+ try {
+ tempBundleFile.delete();
+ } catch (Exception e) {
+ }
+ }
}
public void addChildConfiguration(String moduleName, ConfigurationData configurationData) {
Modified: geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/util/JarUtils.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/util/JarUtils.java?rev=941610&r1=941609&r2=941610&view=diff
==============================================================================
--- geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/util/JarUtils.java (original)
+++ geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/util/JarUtils.java Thu May 6 08:33:04 2010
@@ -51,8 +51,8 @@ public final class JarUtils {
private static final boolean jarUrlRewrite;
static {
- //TODO Change the property name ?
- jarUrlRewrite = new Boolean(System.getProperty("org.apache.geronimo.deployment.util.DeploymentUtil.jarUrlRewrite", "false"));
+ //Why not always set this with true ? Online deployer also lock the jar files
+ jarUrlRewrite = new Boolean(System.getProperty("org.apache.geronimo.kernel.util.JarUtils.jarUrlRewrite", "true"));
try {
DUMMY_JAR_FILE = FileUtils.createTempFile();
new JarOutputStream(new FileOutputStream(JarUtils.DUMMY_JAR_FILE), new Manifest()).close();
@@ -253,15 +253,15 @@ public final class JarUtils {
JarOutputStream out = null;
try {
out = new JarOutputStream(new FileOutputStream(destinationFile));
- jarDirectory(sourceDirectory, "", destinationFile, out);
+ jarDirectory(sourceDirectory, "", destinationFile, out);
} finally {
IOUtils.close(out);
}
}
- private static void jarDirectory(File baseDirectory,
- String baseName,
- File destinationFile,
+ private static void jarDirectory(File baseDirectory,
+ String baseName,
+ File destinationFile,
JarOutputStream out) throws IOException {
File[] files = baseDirectory.listFiles();
if (null == files) {
@@ -276,7 +276,7 @@ public final class JarUtils {
String name = baseName + file.getName();
if (file.isDirectory()) {
out.putNextEntry(new ZipEntry(name + "/"));
- out.closeEntry();
+ out.closeEntry();
jarDirectory(file, name + "/", destinationFile, out);
} else if (file.isFile()) {
out.putNextEntry(new ZipEntry(name));
@@ -289,11 +289,11 @@ public final class JarUtils {
} finally {
IOUtils.close(in);
out.closeEntry();
- }
+ }
}
}
}
-
+
private static void createDirectory(File dir) throws IOException {
if (dir != null && !dir.exists()) {
boolean success = dir.mkdirs();