dain 2004/04/22 20:08:28
Modified: modules/assembly maven.xml
modules/assembly/src/plan system-plan.xml
modules/connector/src/java/org/apache/geronimo/connector/deployment
AbstractRARConfigBuilder.java
modules/connector/src/test/org/apache/geronimo/connector/deployment
RAR_1_0ConfigBuilderTest.java
RAR_1_5ConfigBuilderTest.java
modules/deployment/src/java/org/apache/geronimo/deployment
Bootstrap.java ConfigurationBuilder.java
Deployer.java
modules/deployment/src/java/org/apache/geronimo/deployment/plugin/local
DistributeCommand.java
modules/deployment/src/java/org/apache/geronimo/deployment/service
ServiceConfigBuilder.java
modules/deployment/src/schema geronimo-common.xsd
geronimo-config.xsd
modules/jetty/src/java/org/apache/geronimo/jetty/deployment
WARConfigBuilder.java
Log:
Changed deployer to take the main class and class path used for the manifest.
Changed deployers to take the manifest in addtion to the file name.
Removed the old executable tags.
Revision Changes Path
1.9 +5 -1 incubator-geronimo/modules/assembly/maven.xml
Index: maven.xml
===================================================================
RCS file: /home/cvs/incubator-geronimo/modules/assembly/maven.xml,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- maven.xml 16 Apr 2004 05:57:21 -0000 1.8
+++ maven.xml 23 Apr 2004 03:08:28 -0000 1.9
@@ -155,6 +155,10 @@
<ant:arg value="src/plan/system-plan.xml"/>
<ant:arg value="--outfile"/>
<ant:arg value="${distDir}/bin/server.jar"/>
+ <ant:arg value="--mainClass"/>
+ <ant:arg value="org.apache.geronimo.system.main.Daemon"/>
+ <ant:arg value="--classPath"/>
+ <ant:arg value="${server.classpath}"/>
</ant:java>
<!-- build the J2EEServer configuration -->
1.6 +0 -2
incubator-geronimo/modules/assembly/src/plan/system-plan.xml
Index: system-plan.xml
===================================================================
RCS file:
/home/cvs/incubator-geronimo/modules/assembly/src/plan/system-plan.xml,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- system-plan.xml 22 Apr 2004 21:39:56 -0000 1.5
+++ system-plan.xml 23 Apr 2004 03:08:28 -0000 1.6
@@ -31,8 +31,6 @@
configId="org/apache/geronimo/System"
>
- <executable mainClass="org.apache.geronimo.system.main.Daemon"
classPath="../lib/geronimo-kernel-DEV.jar ../lib/geronimo-system-DEV.jar
../lib/cglib-full-2.0.jar ../lib/commons-cli-1.0.jar
../lib/commons-logging-1.0.3.jar ../lib/log4j-1.2.8.jar ../lib/mx4j-2.0.1.jar
../lib/xercesImpl-2.6.0.jar ../lib/xmlParserAPIs-2.2.1.jar"/>
-
<!-- ServerInfo service -->
<gbean name="geronimo.system:role=ServerInfo"
class="org.apache.geronimo.system.serverinfo.ServerInfo"/>
1.15 +5 -4
incubator-geronimo/modules/connector/src/java/org/apache/geronimo/connector/deployment/AbstractRARConfigBuilder.java
Index: AbstractRARConfigBuilder.java
===================================================================
RCS file:
/home/cvs/incubator-geronimo/modules/connector/src/java/org/apache/geronimo/connector/deployment/AbstractRARConfigBuilder.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- AbstractRARConfigBuilder.java 17 Apr 2004 20:34:24 -0000 1.14
+++ AbstractRARConfigBuilder.java 23 Apr 2004 03:08:28 -0000 1.15
@@ -31,6 +31,7 @@
import java.util.jar.JarEntry;
import java.util.jar.JarInputStream;
import java.util.jar.JarOutputStream;
+import java.util.jar.Manifest;
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
@@ -132,13 +133,13 @@
}
}
- public void buildConfiguration(File outfile, File module, XmlObject
plan) throws IOException, DeploymentException {
+ public void buildConfiguration(File outfile, Manifest manifest, File
module, XmlObject plan) throws IOException, DeploymentException {
if (module.isDirectory()) {
throw new DeploymentException("Cannot deploy an unpacked RAR");
}
FileInputStream is = new FileInputStream(module);
try {
- buildConfiguration(outfile, is, plan);
+ buildConfiguration(outfile, manifest, is, plan);
} finally {
try {
is.close();
@@ -148,7 +149,7 @@
}
}
- public void buildConfiguration(File outfile, InputStream in, XmlObject
plan) throws IOException, DeploymentException {
+ public void buildConfiguration(File outfile, Manifest manifest,
InputStream in, XmlObject plan) throws IOException, DeploymentException {
GerConnectorType geronimoConnector = ((GerConnectorDocument)
plan).getConnector();
URI configID;
try {
1.7 +2 -2
incubator-geronimo/modules/connector/src/test/org/apache/geronimo/connector/deployment/RAR_1_0ConfigBuilderTest.java
Index: RAR_1_0ConfigBuilderTest.java
===================================================================
RCS file:
/home/cvs/incubator-geronimo/modules/connector/src/test/org/apache/geronimo/connector/deployment/RAR_1_0ConfigBuilderTest.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- RAR_1_0ConfigBuilderTest.java 3 Apr 2004 22:37:57 -0000 1.6
+++ RAR_1_0ConfigBuilderTest.java 23 Apr 2004 03:08:28 -0000 1.7
@@ -118,7 +118,7 @@
kernel.boot();
try {
RAR_1_0ConfigBuilder configBuilder = new
RAR_1_0ConfigBuilder(kernel, null, new
ObjectName("geronimo.connector:service=ConnectionTracker"));
- configBuilder.buildConfiguration(outfile, getRARInputStream(),
geronimoConnectorDocument);
+ configBuilder.buildConfiguration(outfile, null,
getRARInputStream(), geronimoConnectorDocument);
} finally {
kernel.shutdown();
outfile.delete();
1.9 +2 -2
incubator-geronimo/modules/connector/src/test/org/apache/geronimo/connector/deployment/RAR_1_5ConfigBuilderTest.java
Index: RAR_1_5ConfigBuilderTest.java
===================================================================
RCS file:
/home/cvs/incubator-geronimo/modules/connector/src/test/org/apache/geronimo/connector/deployment/RAR_1_5ConfigBuilderTest.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- RAR_1_5ConfigBuilderTest.java 3 Apr 2004 22:37:57 -0000 1.8
+++ RAR_1_5ConfigBuilderTest.java 23 Apr 2004 03:08:28 -0000 1.9
@@ -118,7 +118,7 @@
kernel.boot();
try {
RAR_1_5ConfigBuilder configBuilder = new
RAR_1_5ConfigBuilder(kernel, null, new
ObjectName("geronimo.connector:service=ConnectionTracker"));
- configBuilder.buildConfiguration(outfile, getRARInputStream(),
geronimoConnectorDocument);
+ configBuilder.buildConfiguration(outfile, null,
getRARInputStream(), geronimoConnectorDocument);
} finally {
kernel.shutdown();
outfile.delete();
1.15 +2 -2
incubator-geronimo/modules/deployment/src/java/org/apache/geronimo/deployment/Bootstrap.java
Index: Bootstrap.java
===================================================================
RCS file:
/home/cvs/incubator-geronimo/modules/deployment/src/java/org/apache/geronimo/deployment/Bootstrap.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- Bootstrap.java 5 Apr 2004 05:54:11 -0000 1.14
+++ Bootstrap.java 23 Apr 2004 03:08:28 -0000 1.15
@@ -148,7 +148,7 @@
// build and install the j2ee-deployer configuration
File tempFile = File.createTempFile("j2ee-deployer", ".car");
try {
- builder.buildConfiguration(tempFile, (InputStream)null,
j2eeDeployerXML);
+ builder.buildConfiguration(tempFile, manifest,
(InputStream)null, j2eeDeployerXML);
configStore.install(tempFile.toURL());
} finally {
tempFile.delete();
1.9 +5 -7
incubator-geronimo/modules/deployment/src/java/org/apache/geronimo/deployment/ConfigurationBuilder.java
Index: ConfigurationBuilder.java
===================================================================
RCS file:
/home/cvs/incubator-geronimo/modules/deployment/src/java/org/apache/geronimo/deployment/ConfigurationBuilder.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- ConfigurationBuilder.java 17 Apr 2004 20:34:24 -0000 1.8
+++ ConfigurationBuilder.java 23 Apr 2004 03:08:28 -0000 1.9
@@ -17,16 +17,14 @@
package org.apache.geronimo.deployment;
-import java.io.IOException;
import java.io.File;
+import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
-import java.util.jar.JarInputStream;
-import java.util.List;
-import org.apache.xmlbeans.XmlObject;
import org.apache.xmlbeans.SchemaTypeLoader;
import org.apache.xmlbeans.XmlException;
+import org.apache.xmlbeans.XmlObject;
/**
*
@@ -59,7 +57,7 @@
* @throws IOException if there was a problem reading or writing the
files
* @throws DeploymentException if there was a problem with the
configuration
*/
- void buildConfiguration(File outfile, File module, XmlObject plan)
throws IOException, DeploymentException;
+ void buildConfiguration(File outfile, java.util.jar.Manifest manifest,
File module, XmlObject plan) throws IOException, DeploymentException;
/**
* Build a configuration from an arbitrary input stream
@@ -69,5 +67,5 @@
* @throws IOException if there was a problem reading or writing the
files
* @throws DeploymentException if there was a problem with the
configuration
*/
- void buildConfiguration(File outfile, InputStream module, XmlObject
plan) throws IOException, DeploymentException;
+ void buildConfiguration(File outfile, java.util.jar.Manifest manifest,
InputStream module, XmlObject plan) throws IOException, DeploymentException;
}
1.18 +23 -4
incubator-geronimo/modules/deployment/src/java/org/apache/geronimo/deployment/Deployer.java
Index: Deployer.java
===================================================================
RCS file:
/home/cvs/incubator-geronimo/modules/deployment/src/java/org/apache/geronimo/deployment/Deployer.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- Deployer.java 3 Apr 2004 22:37:57 -0000 1.17
+++ Deployer.java 23 Apr 2004 03:08:28 -0000 1.18
@@ -29,6 +29,8 @@
import java.util.Iterator;
import java.util.List;
import java.util.Properties;
+import java.util.jar.Manifest;
+import java.util.jar.Attributes;
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
@@ -111,18 +113,29 @@
saveOutput = true;
}
+ Manifest manifest = new Manifest();
+ Attributes mainAttributes = manifest.getMainAttributes();
+ mainAttributes.putValue(Attributes.Name.MANIFEST_VERSION.toString(),
"1.0");
+ if(cmd.mainClass != null) {
+ mainAttributes.putValue(Attributes.Name.MAIN_CLASS.toString(),
cmd.mainClass);
+ }
+ if(cmd.classPath != null) {
+ mainAttributes.putValue(Attributes.Name.CLASS_PATH.toString(),
cmd.classPath);
+ }
+
+
try {
if (cmd.module == null) {
- builder.buildConfiguration(cmd.carfile, (InputStream) null,
plan);
+ builder.buildConfiguration(cmd.carfile, manifest,
(InputStream) null, plan);
} else if ("file".equals(cmd.module.getProtocol())) {
File module = new File(new URI(cmd.module.toString()));
- builder.buildConfiguration(cmd.carfile, module, plan);
+ builder.buildConfiguration(cmd.carfile, manifest, module,
plan);
} else if (cmd.module.toString().endsWith("/")) {
throw new DeploymentException("Unpacked modules must be
files");
} else {
InputStream moduleStream = cmd.module.openStream();
try {
- builder.buildConfiguration(cmd.carfile, moduleStream,
plan);
+ builder.buildConfiguration(cmd.carfile, manifest,
moduleStream, plan);
} finally {
try {
moduleStream.close();
@@ -175,6 +188,8 @@
options.addOption("o", "outfile", true, "output file to generate");
options.addOption("m", "module", true, "module to deploy");
options.addOption("p", "plan", true, "deployment plan");
+ options.addOption(null, "mainClass", true, "deployment plan");
+ options.addOption(null, "classPath", true, "deployment plan");
CommandLine cmd = new PosixParser().parse(options, args);
if (cmd.hasOption("h")) {
@@ -201,6 +216,8 @@
System.err.println("No plan or module specified");
return null;
}
+ command.mainClass = cmd.hasOption("mainClass") ?
cmd.getOptionValue("mainClass") : null;
+ command.classPath = cmd.hasOption("classPath") ?
cmd.getOptionValue("classPath") : null;
return command;
}
@@ -222,6 +239,8 @@
private File carfile;
private URL module;
private URL plan;
+ private String mainClass;
+ private String classPath;
}
public static final GBeanInfo GBEAN_INFO;
1.10 +2 -2
incubator-geronimo/modules/deployment/src/java/org/apache/geronimo/deployment/plugin/local/DistributeCommand.java
Index: DistributeCommand.java
===================================================================
RCS file:
/home/cvs/incubator-geronimo/modules/deployment/src/java/org/apache/geronimo/deployment/plugin/local/DistributeCommand.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- DistributeCommand.java 3 Apr 2004 22:37:58 -0000 1.9
+++ DistributeCommand.java 23 Apr 2004 03:08:28 -0000 1.10
@@ -49,7 +49,7 @@
try {
// create some working space
configFile = File.createTempFile("deploy", ".car");
- builder.buildConfiguration(configFile, in, plan);
+ builder.buildConfiguration(configFile, null, in, plan);
// install in our local server
store.install(configFile.toURL());
1.13 +5 -21
incubator-geronimo/modules/deployment/src/java/org/apache/geronimo/deployment/service/ServiceConfigBuilder.java
Index: ServiceConfigBuilder.java
===================================================================
RCS file:
/home/cvs/incubator-geronimo/modules/deployment/src/java/org/apache/geronimo/deployment/service/ServiceConfigBuilder.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- ServiceConfigBuilder.java 3 Apr 2004 22:37:58 -0000 1.12
+++ ServiceConfigBuilder.java 23 Apr 2004 03:08:28 -0000 1.13
@@ -39,7 +39,6 @@
import org.apache.geronimo.deployment.xbeans.ConfigurationDocument;
import org.apache.geronimo.deployment.xbeans.ConfigurationType;
import org.apache.geronimo.deployment.xbeans.DependencyType;
-import org.apache.geronimo.deployment.xbeans.ExecutableType;
import org.apache.geronimo.deployment.xbeans.GbeanType;
import org.apache.geronimo.deployment.xbeans.ServiceDocument;
import org.apache.geronimo.gbean.GBeanInfo;
@@ -82,32 +81,17 @@
return null;
}
- public void buildConfiguration(File outfile, File module, XmlObject
plan) throws IOException, DeploymentException {
- buildConfiguration(outfile, (InputStream)null, plan);
+ public void buildConfiguration(File outfile, Manifest manifest, File
module, XmlObject plan) throws IOException, DeploymentException {
+ buildConfiguration(outfile, manifest, (InputStream)null, plan);
}
- public void buildConfiguration(File outfile, InputStream ignored,
XmlObject plan) throws IOException, DeploymentException {
- // create the manifext
- Manifest manifest = new Manifest();
- Attributes mainAttributes = manifest.getMainAttributes();
- mainAttributes.putValue(Attributes.Name.MANIFEST_VERSION.toString(),
"1.0");
-
- // add the manifest entries to make the archive executable
- ConfigurationType configType = ((ConfigurationDocument)
plan).getConfiguration();
- ExecutableType executable = configType.getExecutable();
- if(executable != null) {
- mainAttributes.putValue(Attributes.Name.MAIN_CLASS.toString(),
executable.getMainClass());
- if(executable.getClassPath() != null) {
-
mainAttributes.putValue(Attributes.Name.CLASS_PATH.toString(),
executable.getClassPath());
- }
- }
-
+ public void buildConfiguration(File outfile, Manifest manifest,
InputStream ignored, XmlObject plan) throws IOException, DeploymentException {
FileOutputStream fos = new FileOutputStream(outfile);
try {
JarOutputStream os = new JarOutputStream(new
BufferedOutputStream(fos), manifest);
// if this is an executable jar add the startup jar finder file
- if(executable != null) {
+ if
(manifest.getMainAttributes().containsKey(Attributes.Name.MAIN_CLASS)) {
os.putNextEntry(new ZipEntry("META-INF/startup-jar"));
os.closeEntry();
}
1.5 +0 -5
incubator-geronimo/modules/deployment/src/schema/geronimo-common.xsd
Index: geronimo-common.xsd
===================================================================
RCS file:
/home/cvs/incubator-geronimo/modules/deployment/src/schema/geronimo-common.xsd,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- geronimo-common.xsd 10 Mar 2004 09:58:50 -0000 1.4
+++ geronimo-common.xsd 23 Apr 2004 03:08:28 -0000 1.5
@@ -32,11 +32,6 @@
</xs:documentation>
</xs:annotation>
- <xs:complexType name="executableType">
- <xs:attribute name="mainClass" type="xs:string" use="required"/>
- <xs:attribute name="classPath" type="xs:string" use="optional"/>
- </xs:complexType>
-
<xs:complexType name="dependencyType">
<xs:choice>
<xs:sequence>
1.5 +0 -1
incubator-geronimo/modules/deployment/src/schema/geronimo-config.xsd
Index: geronimo-config.xsd
===================================================================
RCS file:
/home/cvs/incubator-geronimo/modules/deployment/src/schema/geronimo-config.xsd,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- geronimo-config.xsd 10 Mar 2004 09:58:50 -0000 1.4
+++ geronimo-config.xsd 23 Apr 2004 03:08:28 -0000 1.5
@@ -38,7 +38,6 @@
<xs:complexType name="configurationType">
<xs:sequence>
- <xs:element name="executable" type="executableType"
minOccurs="0" maxOccurs="1"/>
<xs:element name="include" type="dependencyType" minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="dependency" type="dependencyType"
minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="gbean" type="gbeanType" minOccurs="1"
maxOccurs="unbounded"/>
1.19 +5 -4
incubator-geronimo/modules/jetty/src/java/org/apache/geronimo/jetty/deployment/WARConfigBuilder.java
Index: WARConfigBuilder.java
===================================================================
RCS file:
/home/cvs/incubator-geronimo/modules/jetty/src/java/org/apache/geronimo/jetty/deployment/WARConfigBuilder.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- WARConfigBuilder.java 17 Apr 2004 20:34:24 -0000 1.18
+++ WARConfigBuilder.java 23 Apr 2004 03:08:28 -0000 1.19
@@ -36,6 +36,7 @@
import java.util.Properties;
import java.util.jar.JarInputStream;
import java.util.jar.JarOutputStream;
+import java.util.jar.Manifest;
import java.util.zip.ZipEntry;
import javax.management.MalformedObjectNameException;
@@ -120,11 +121,11 @@
}
- public void buildConfiguration(File outfile, File module, XmlObject
plan) throws IOException, DeploymentException {
+ public void buildConfiguration(File outfile, Manifest manifest, File
module, XmlObject plan) throws IOException, DeploymentException {
if (!module.isDirectory()) {
FileInputStream in = new FileInputStream(module);
try {
- buildConfiguration(outfile, in, plan);
+ buildConfiguration(outfile, manifest, in, plan);
return;
} finally {
try {
@@ -180,7 +181,7 @@
}
}
- public void buildConfiguration(File outfile, InputStream in, XmlObject
plan) throws IOException, DeploymentException {
+ public void buildConfiguration(File outfile, Manifest manifest,
InputStream in, XmlObject plan) throws IOException, DeploymentException {
WebAppType webApp = null;
JettyWebAppType jettyWebApp = ((JettyWebAppDocument)
plan).getWebApp();
URI configID = getConfigID(jettyWebApp);