You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by am...@apache.org on 2005/10/31 02:47:54 UTC
svn commit: r329700 - in /geronimo/trunk/modules: assembly/maven.xml
deploy-tool/src/java/org/apache/geronimo/deployment/cli/DeployTool.java
Author: ammulder
Date: Sun Oct 30 17:47:50 2005
New Revision: 329700
URL: http://svn.apache.org/viewcvs?rev=329700&view=rev
Log:
Back door to speed up assembly module
Modified:
geronimo/trunk/modules/assembly/maven.xml
geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/DeployTool.java
Modified: geronimo/trunk/modules/assembly/maven.xml
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/assembly/maven.xml?rev=329700&r1=329699&r2=329700&view=diff
==============================================================================
--- geronimo/trunk/modules/assembly/maven.xml (original)
+++ geronimo/trunk/modules/assembly/maven.xml Sun Oct 30 17:47:50 2005
@@ -358,122 +358,55 @@
/>
<!-- build the system configuration and server.jar -->
- <ant:echo>Building server.jar</ant:echo>
- <ant:mkdir dir="${geronimo.assembly.dir}/bin"/>
- <ant:java fork="true" jar="${geronimo.assembly.dir}/bin/deployer.jar" failonerror="true">
- <ant:jvmarg value="-ea"/>
-<!--
- <ant:jvmarg value="-Xdebug"/>
- <ant:jvmarg value="-Xnoagent"/>
- <ant:jvmarg value="-Djava.compiler=NONE"/>
- <ant:jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"/>
--->
- <ant:arg value="--offline"/>
- <ant:arg value="package"/>
- <ant:arg value="--classPath"/>
- <ant:arg value="${server.classpath}"/>
- <ant:arg value="--mainClass"/>
- <ant:arg value="org.apache.geronimo.system.main.Daemon"/>
- <ant:arg value="--endorsedDirs"/>
- <ant:arg value="lib/endorsed"/>
- <ant:arg value="--extensionDirs"/>
- <ant:arg value="lib/ext"/>
- <ant:arg value="--install"/>
- <ant:arg value="target/plan/system-plan.xml"/>
- <ant:arg value="${geronimo.assembly.dir}/bin/server.jar"/>
- </ant:java>
-
- <!-- to debug one of these deployer calls, include these jvmargs right after the -ea arg
- <ant:jvmarg value="-Xdebug"/>
- <ant:jvmarg value="-Xnoagent"/>
- <ant:jvmarg value="-Djava.compiler=NONE"/>
- <ant:jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"/>
- -->
-
+ <ant:echo file="${basedir}/target/deploy-commands">package --classPath "${server.classpath}" --mainClass org.apache.geronimo.system.main.Daemon --endorsedDirs lib/endorsed --extensionDirs lib/ext --install target/plan/system-plan.xml ${geronimo.assembly.dir}/bin/server.jar${line.separator}</ant:echo>
+
<!-- build the RMINaming configuration -->
- <ant:echo>Building RMI Naming configuration</ant:echo>
- <ant:java fork="true" jar="${geronimo.assembly.dir}/bin/deployer.jar" failonerror="true">
- <ant:jvmarg value="-ea"/>
- <ant:arg value="--offline"/>
- <ant:arg value="distribute"/>
- <ant:arg value="target/plan/naming-server-plan.xml"/>
- </ant:java>
+ <ant:echo file="${basedir}/target/deploy-commands" append="true"
+ message="distribute target/plan/naming-server-plan.xml${line.separator}" />
<!-- build the J2EEServer configuration -->
- <ant:echo>Building server configuration</ant:echo>
- <ant:java fork="true" jar="${geronimo.assembly.dir}/bin/deployer.jar" failonerror="true">
- <ant:jvmarg value="-ea"/>
- <ant:arg value="--offline"/>
- <ant:arg value="distribute"/>
- <ant:arg value="target/plan/j2ee-server-plan.xml"/>
- </ant:java>
+ <ant:echo file="${basedir}/target/deploy-commands" append="true"
+ message="distribute target/plan/j2ee-server-plan.xml${line.separator}" />
- <ant:echo>Building security configuration</ant:echo>
- <ant:java fork="true" jar="${geronimo.assembly.dir}/bin/deployer.jar" failonerror="true">
- <ant:jvmarg value="-ea"/>
- <ant:arg value="--offline"/>
- <ant:arg value="distribute"/>
- <ant:arg value="target/plan/j2ee-security-plan.xml"/>
- </ant:java>
+ <ant:echo file="${basedir}/target/deploy-commands" append="true"
+ message="distribute target/plan/j2ee-security-plan.xml${line.separator}" />
- <ant:java fork="true" jar="${geronimo.assembly.dir}/bin/deployer.jar" failonerror="true">
- <ant:jvmarg value="-ea"/>
- <ant:arg value="--offline"/>
- <ant:arg value="distribute"/>
- <ant:arg value="target/plan/j2ee-jetty-plan.xml"/>
- </ant:java>
- <ant:java fork="true" jar="${geronimo.assembly.dir}/bin/deployer.jar" failonerror="true">
- <ant:jvmarg value="-ea"/>
- <ant:arg value="--offline"/>
- <ant:arg value="distribute"/>
- <ant:arg value="target/plan/j2ee-tomcat-plan.xml"/>
- </ant:java>
- <!-- build the runtime deployer configuration -->
- <ant:echo>Building runtime deployer configuration</ant:echo>
- <ant:java fork="true" jar="${geronimo.assembly.dir}/bin/deployer.jar" failonerror="true">
- <ant:jvmarg value="-ea"/>
- <ant:arg value="--offline"/>
- <ant:arg value="distribute"/>
- <ant:arg value="target/plan/j2ee-runtime-deployer-plan.xml"/>
- </ant:java>
- <ant:java fork="true" jar="${geronimo.assembly.dir}/bin/deployer.jar" failonerror="true">
- <ant:jvmarg value="-ea"/>
- <ant:arg value="--offline"/>
- <ant:arg value="distribute"/>
- <ant:arg value="${basedir}/target/plan/j2ee-jetty-runtime-deployer-plan.xml"/>
- </ant:java>
- <ant:java fork="true" jar="${geronimo.assembly.dir}/bin/deployer.jar" failonerror="true">
- <ant:jvmarg value="-ea"/>
- <ant:arg value="--offline"/>
- <ant:arg value="distribute"/>
- <ant:arg value="${basedir}/target/plan/j2ee-tomcat-runtime-deployer-plan.xml"/>
- </ant:java>
+ <ant:echo file="${basedir}/target/deploy-commands" append="true"
+ message="distribute target/plan/j2ee-jetty-plan.xml${line.separator}" />
+ <ant:echo file="${basedir}/target/deploy-commands" append="true"
+ message="distribute target/plan/j2ee-tomcat-plan.xml${line.separator}" />
+
+ <ant:echo file="${basedir}/target/deploy-commands" append="true"
+ message="distribute target/plan/j2ee-runtime-deployer-plan.xml${line.separator}" />
+
+ <ant:echo file="${basedir}/target/deploy-commands" append="true"
+ message="distribute ${basedir}/target/plan/j2ee-jetty-runtime-deployer-plan.xml${line.separator}" />
+
+ <ant:echo file="${basedir}/target/deploy-commands" append="true"
+ message="distribute ${basedir}/target/plan/j2ee-tomcat-runtime-deployer-plan.xml${line.separator}" />
<!-- build the system configuration and client.jar -->
- <ant:echo>Building client.jar</ant:echo>
- <ant:mkdir dir="${geronimo.assembly.dir}/bin"/>
- <ant:java fork="true" jar="${geronimo.assembly.dir}/bin/deployer.jar" failonerror="true">
- <ant:jvmarg value="-ea"/>
- <ant:arg value="--offline"/>
- <ant:arg value="package"/>
- <ant:arg value="--mainClass"/>
- <ant:arg value="org.apache.geronimo.system.main.ClientCommandLine"/>
- <ant:arg value="--classPath"/>
- <ant:arg value="${client.classpath}"/>
- <ant:arg value="--endorsedDirs"/>
- <ant:arg value="${libDir}/endorsed"/>
- <ant:arg value="--install"/>
- <ant:arg value="target/plan/client-system-plan.xml"/>
- <ant:arg value="${geronimo.assembly.dir}/bin/client.jar"/>
- </ant:java>
+ <ant:echo file="${basedir}/target/deploy-commands" append="true">package --mainClass org.apache.geronimo.system.main.ClientCommandLine --classPath "${client.classpath}" --endorsedDirs ${libDir}/endorsed --install target/plan/client-system-plan.xml ${geronimo.assembly.dir}/bin/client.jar${line.separator}</ant:echo>
+ <ant:echo file="${basedir}/target/deploy-commands" append="true"
+ message="distribute target/plan/j2ee-client-plan.xml${line.separator}" />
+
+ <!-- to debug this deployer call, include these jvmargs right after the -ea arg
+ <ant:jvmarg value="-Xdebug"/>
+ <ant:jvmarg value="-Xnoagent"/>
+ <ant:jvmarg value="-Djava.compiler=NONE"/>
+ <ant:jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"/>
+ -->
+
+ <!-- Run all the commands we just queued up -->
<ant:java fork="true" jar="${geronimo.assembly.dir}/bin/deployer.jar" failonerror="true">
<ant:jvmarg value="-ea"/>
<ant:arg value="--offline"/>
- <ant:arg value="distribute"/>
- <ant:arg value="target/plan/j2ee-client-plan.xml"/>
+ <ant:arg value="command-file"/>
+ <ant:arg value="${basedir}/target/deploy-commands"/>
</ant:java>
+
<!-- ============================================== -->
<!-- Deploy all configurations to live server -->
<!-- ============================================== -->
Modified: geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/DeployTool.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/DeployTool.java?rev=329700&r1=329699&r2=329700&view=diff
==============================================================================
--- geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/DeployTool.java (original)
+++ geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/DeployTool.java Sun Oct 30 17:47:50 2005
@@ -20,10 +20,7 @@
import org.apache.geronimo.common.DeploymentException;
import java.util.*;
-import java.io.PrintWriter;
-import java.io.OutputStreamWriter;
-import java.io.InputStreamReader;
-import java.io.BufferedReader;
+import java.io.*;
/**
* The main class for the CLI deployer. Handles chunking the input arguments
@@ -76,12 +73,14 @@
}
private boolean failed = false;
+ String[] generalArgs = new String[0];
+ ServerConnection con = null;
+ private boolean multipleCommands = false;
public boolean execute(String args[]) {
PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out), true);
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String command;
- String[] generalArgs = new String[0];
String[] commandArgs = new String[0];
if(args.length == 0) {
command = "help";
@@ -91,14 +90,53 @@
command = "help";
} else {
command = temp[temp.length-1];
- generalArgs = new String[temp.length-1];
- System.arraycopy(temp, 0, generalArgs, 0, temp.length-1);
+ if(generalArgs.length == 0 && temp.length > 1) {
+ generalArgs = new String[temp.length-1];
+ System.arraycopy(temp, 0, generalArgs, 0, temp.length-1);
+ }
commandArgs = new String[args.length - temp.length];
System.arraycopy(args, temp.length, commandArgs, 0, commandArgs.length);
}
}
if(command.equals("help")) {
showHelp(out, commandArgs);
+ } else if(command.equals("command-file")) {
+ multipleCommands = true;
+ if(commandArgs.length != 1) {
+ processException(out, new DeploymentSyntaxException("Must provide a command file to read from and no other arguments"));
+ } else {
+ String arg = commandArgs[0];
+ File source = new File(arg);
+ if(!source.exists() || !source.canRead() || source.isDirectory()) {
+ processException(out, new DeploymentSyntaxException("Cannot read command file "+source.getAbsolutePath()));
+ } else {
+ try {
+ BufferedReader commands = new BufferedReader(new FileReader(source));
+ String line;
+ boolean oneFailed = false;
+ while((line = commands.readLine()) != null) {
+ line = line.trim();
+ if(!line.equals("")) {
+ String[] lineArgs = splitCommand(line);
+ if(failed) {
+ oneFailed = true;
+ }
+ failed = false;
+ execute(lineArgs);
+ }
+ }
+ failed = oneFailed;
+ } catch (IOException e) {
+ processException(out, new DeploymentException("Unable to read command file", e));
+ } finally {
+ try {
+ con.close();
+ } catch (DeploymentException e) {
+ processException(out, e);
+ }
+ }
+ }
+ }
} else {
DeployCommand dc = getCommand(command);
if(dc == null) {
@@ -106,9 +144,10 @@
processException(out, new DeploymentSyntaxException("No such command: '"+command+"'"));
showHelp(out, new String[0]);
} else {
- ServerConnection con = null;
try {
- con = new ServerConnection(generalArgs, dc.isLocalOnly(), out, in);
+ if(con == null) {
+ con = new ServerConnection(generalArgs, dc.isLocalOnly(), out, in);
+ }
try {
dc.execute(out, con, commandArgs);
} catch (DeploymentSyntaxException e) {
@@ -116,10 +155,12 @@
} catch (DeploymentException e) {
processException(out, e);
} finally {
- try {
- con.close();
- } catch(DeploymentException e) {
- processException(out, e);
+ if(!multipleCommands) {
+ try {
+ con.close();
+ } catch(DeploymentException e) {
+ processException(out, e);
+ }
}
}
} catch(DeploymentException e) {
@@ -130,6 +171,26 @@
out.flush();
System.out.flush();
return !failed;
+ }
+
+ public static String[] splitCommand(String line) {
+ String[] chunks = line.split("\"");
+ List list = new LinkedList();
+ for (int i = 0; i < chunks.length; i++) {
+ String chunk = chunks[i];
+ if(i % 2 == 1) { // it's in quotes
+ list.add(chunk);
+ } else { // it's not in quotes
+ list.addAll(Arrays.asList(chunk.split("\\s")));
+ }
+ }
+ for (Iterator it = list.iterator(); it.hasNext();) {
+ String test = (String) it.next();
+ if(test.trim().equals("")) {
+ it.remove();
+ }
+ }
+ return (String[]) list.toArray(new String[list.size()]);
}
private void processException(PrintWriter out, Exception e) {