You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by da...@apache.org on 2004/02/24 08:36:20 UTC
cvs commit: incubator-geronimo/modules/deployment/src/java/org/apache/geronimo/deployment Bootstrap.java
dain 2004/02/23 23:36:20
Modified: modules/assembly maven.xml
modules/deployment/src/java/org/apache/geronimo/deployment
Bootstrap.java
Log:
Changed maven integration with bootstrap code to use a jellybean tag,
which creates a much cleaner integration (including unwrapped exception)
Revision Changes Path
1.4 +33 -13 incubator-geronimo/modules/assembly/maven.xml
Index: maven.xml
===================================================================
RCS file: /home/cvs/incubator-geronimo/modules/assembly/maven.xml,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- maven.xml 24 Feb 2004 06:05:36 -0000 1.3
+++ maven.xml 24 Feb 2004 07:36:20 -0000 1.4
@@ -3,7 +3,9 @@
<project default="default"
xmlns:j="jelly:core"
- xmlns:ant="jelly:ant">
+ xmlns:ant="jelly:ant"
+ xmlns:define="jelly:define"
+ xmlns:bootstrap="geronimo:bootstrap">
<!-- ================= -->
<!-- Global Properties -->
@@ -18,7 +20,6 @@
<!-- Load the global properties -->
<ant:property file="${project.root}/etc/global.properties"/>
-
<!-- ==================== -->
<!-- Default Global Goals -->
<!-- ==================== -->
@@ -106,16 +107,35 @@
<ant:echo>Bootstrapping service deployer</ant:echo>
<ant:mkdir dir="${distDir}/bin"/>
<ant:mkdir dir="${distDir}/config-store"/>
- <j:invokeStatic className="org.apache.geronimo.deployment.Bootstrap" method="bootstrap">
- <j:arg type="java.lang.String" value="${distDir}/bin/deployer.jar"/>
- <j:arg type="java.lang.String" value="${distDir}"/>
- <j:arg type="java.lang.String" value="config-store"/>
- <j:arg type="java.lang.String" value="${basedir}/src/plan/deployer-config.xml"/>
- <j:arg type="java.lang.String" value="${deploy.classpath}"/>
- <j:arg type="java.lang.String" value="geronimo.deployment:role=Deployer,config=org/apache/geronimo/J2EEDeployer"/>
- <j:arg type="java.lang.String" value="deploy"/>
- <j:arg type="java.lang.String" value="org/apache/geronimo/J2EEDeployer"/>
- </j:invokeStatic>
+
+ <define:taglib uri="geronimo:bootstrap">
+ <define:jellybean
+ name="bootstrap"
+ className="org.apache.geronimo.deployment.Bootstrap"
+ method="bootstrap"/>
+ </define:taglib>
+
+ <bootstrap:bootstrap
+ outputFile="${distDir}/bin/deployer.jar"
+ baseDir="${distDir}"
+ store="config-store"
+ deploymentPlan="${basedir}/src/plan/deployer-config.xml"
+ classPath="${deploy.classpath}"
+ mainGBean="geronimo.deployment:role=Deployer,config=org/apache/geronimo/J2EEDeployer"
+ mainMethod="deploy"
+ configurations="org/apache/geronimo/J2EEDeployer"
+ />
+
+ <!-- <j:invokeStatic className="org.apache.geronimo.deployment.Bootstrap" method="bootstrap">-->
+ <!-- <j:arg type="java.lang.String" value="${distDir}/bin/deployer.jar"/>-->
+ <!-- <j:arg type="java.lang.String" value="${distDir}"/>-->
+ <!-- <j:arg type="java.lang.String" value="config-store"/>-->
+ <!-- <j:arg type="java.lang.String" value="${basedir}/src/plan/deployer-config.xml"/>-->
+ <!-- <j:arg type="java.lang.String" value="${deploy.classpath}"/>-->
+ <!-- <j:arg type="java.lang.String" value="geronimo.deployment:role=Deployer,config=org/apache/geronimo/J2EEDeployer"/>-->
+ <!-- <j:arg type="java.lang.String" value="deploy"/>-->
+ <!-- <j:arg type="java.lang.String" value="org/apache/geronimo/J2EEDeployer"/>-->
+ <!-- </j:invokeStatic>-->
<!-- build the system configuration and server.jar -->
<ant:echo>Building system configuration</ant:echo>
1.9 +83 -12 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.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- Bootstrap.java 24 Feb 2004 06:05:36 -0000 1.8
+++ Bootstrap.java 24 Feb 2004 07:36:20 -0000 1.9
@@ -84,6 +84,8 @@
import org.apache.geronimo.system.serverinfo.ServerInfo;
import org.apache.xmlbeans.XmlBeans;
import org.apache.xmlbeans.XmlObject;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
/**
* Helper class to bootstrap the Geronimo deployer.
@@ -95,12 +97,81 @@
private static final ObjectName REPOSITORY_NAME = JMXUtil.getObjectName("geronimo.deployer:role=Repository,root=repository");
private static final ObjectName SERVICE_BUILDER_NAME = JMXUtil.getObjectName("geronimo.deployer:role=Builder,type=Service,id=" + CONFIG_ID.toString());
- /**
- * Invoked from maven.xml during the build to create the first Deployment Configuration
- * @param car the configuration file to generate
- */
- public static void bootstrap(String car, String baseDir, String store, String planPath, String classPath, String mainGBean, String mainMethod, String configurations) {
- File carfile = new File(car);
+ private String outputFile;
+ private String baseDir;
+ private String store;
+ private String deploymentPlan;
+ private String classPath;
+ private String mainGBean;
+ private String mainMethod;
+ private String configurations;
+
+ public String getOutputFile() {
+ return outputFile;
+ }
+
+ public void setOutputFile(String outputFile) {
+ this.outputFile = outputFile;
+ }
+
+ public String getBaseDir() {
+ return baseDir;
+ }
+
+ public void setBaseDir(String baseDir) {
+ this.baseDir = baseDir;
+ }
+
+ public String getStore() {
+ return store;
+ }
+
+ public void setStore(String store) {
+ this.store = store;
+ }
+
+ public String getDeploymentPlan() {
+ return deploymentPlan;
+ }
+
+ public void setDeploymentPlan(String deploymentPlan) {
+ this.deploymentPlan = deploymentPlan;
+ }
+
+ public String getClassPath() {
+ return classPath;
+ }
+
+ public void setClassPath(String classPath) {
+ this.classPath = classPath;
+ }
+
+ public String getMainGBean() {
+ return mainGBean;
+ }
+
+ public void setMainGBean(String mainGBean) {
+ this.mainGBean = mainGBean;
+ }
+
+ public String getMainMethod() {
+ return mainMethod;
+ }
+
+ public void setMainMethod(String mainMethod) {
+ this.mainMethod = mainMethod;
+ }
+
+ public String getConfigurations() {
+ return configurations;
+ }
+
+ public void setConfigurations(String configurations) {
+ this.configurations = configurations;
+ }
+
+ public void bootstrap() {
+ File file = new File(outputFile);
File storeDir = new File(baseDir, store);
ClassLoader oldCL = Thread.currentThread().getContextClassLoader();
@@ -119,7 +190,7 @@
mainAttributes.putValue(CommandLine.CONFIGURATIONS.toString(), configurations);
// write the deployer system out to a jar
- JarOutputStream jos = new JarOutputStream(new BufferedOutputStream(new FileOutputStream(carfile)), manifest);
+ JarOutputStream jos = new JarOutputStream(new BufferedOutputStream(new FileOutputStream(file)), manifest);
try {
// add the startup jar entry which allows us to locat the startup directory
jos.putNextEntry(new ZipEntry("META-INF/startup-jar"));
@@ -137,24 +208,24 @@
// install the deployer systen in to the config store
LocalConfigStore configStore = new LocalConfigStore(storeDir);
- configStore.install(carfile.toURL());
+ configStore.install(file.toURL());
System.setProperty("geronimo.base.dir", baseDir);
Kernel kernel = new Kernel("geronimo.bootstrap");
kernel.boot();
ConfigurationManager configurationManager = kernel.getConfigurationManager();
- ObjectName deploymentSystemName = configurationManager.load(deploymentSystemConfig, carfile.toURL());
+ ObjectName deploymentSystemName = configurationManager.load(deploymentSystemConfig, file.toURL());
kernel.startRecursiveGBean(deploymentSystemName);
GBeanMBean serviceDeployerConfig = getServiceDeployerConfig();
serviceDeployerConfig.setReferencePatterns("Parent", Collections.singleton(deploymentSystemName));
- ObjectName serviceDeployerName = configurationManager.load(serviceDeployerConfig, carfile.toURL());
+ ObjectName serviceDeployerName = configurationManager.load(serviceDeployerConfig, file.toURL());
kernel.startRecursiveGBean(serviceDeployerName);
File tempFile = File.createTempFile("deployer", ".car");
try {
- URL planURL = new File(planPath).toURL();
+ URL planURL = new File(deploymentPlan).toURL();
XmlObject plan = XmlBeans.getContextTypeLoader().parse(planURL, null, null);
kernel.getMBeanServer().invoke(
SERVICE_BUILDER_NAME,