[jboss-cvs] JBossAS SVN: r68961 - projects/ejb3/trunk/ejb3-installer/src/main/java/org/jboss/ejb3/installer.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Jan 14 22:10:20 EST 2008
Author: ALRubinger
Date: 2008-01-14 22:10:20 -0500 (Mon, 14 Jan 2008)
New Revision: 68961
Modified:
projects/ejb3/trunk/ejb3-installer/src/main/java/org/jboss/ejb3/installer/Installer.java
Log:
Introduced hack for launching Ant process in Windows. Eff Windows.
Modified: projects/ejb3/trunk/ejb3-installer/src/main/java/org/jboss/ejb3/installer/Installer.java
===================================================================
--- projects/ejb3/trunk/ejb3-installer/src/main/java/org/jboss/ejb3/installer/Installer.java 2008-01-15 01:25:56 UTC (rev 68960)
+++ projects/ejb3/trunk/ejb3-installer/src/main/java/org/jboss/ejb3/installer/Installer.java 2008-01-15 03:10:20 UTC (rev 68961)
@@ -55,19 +55,25 @@
private static final String SYSTEM_PROPERTY_TMP_DIRECTORY = "java.io.tmpdir";
/*
- * System-independent path separator
- */
- private static final String SYSTEM_PROPERTY_FILE_SEPARATOR = "file.separator";
-
- /*
* Current Classpath
*/
private static final String SYSTEM_PROPERTY_CLASS_PATH = "java.class.path";
/*
+ * System Property Key for OS
+ */
+ private static final String SYSTEM_PROPERTY_OS = "os.name";
+
+ /*
* Environment Property key for JBOSS_HOME
*/
private static final String ENV_PROPERTY_JBOSS_HOME = "JBOSS_HOME";
+
+
+ /*
+ * Environment Property key for ANT_HOME
+ */
+ private static final String SYSTEM_PROPERTY_ANT_HOME = "ANT_HOME";
/*
* Namespace of the installer
@@ -83,6 +89,11 @@
* Apache Ant executable
*/
private static final String COMMAND_ANT = "ant";
+
+ /*
+ * Extension to append to Windows-based systems
+ */
+ private static final String COMMAND_EXTENSION_WINDOWS = ".bat";
/*
* Switch to set buildfile for Ant
@@ -277,21 +288,39 @@
{
// Initialize
Process antProcess = null;
- String buildfile = this.getInstallationDirectory() + System.getProperty(Installer.SYSTEM_PROPERTY_FILE_SEPARATOR)
+ String buildfile = this.getInstallationDirectory() + File.separator
+ Installer.FILENAME_BUILDFILE;
+ // Obtain ANT_HOME and ensure specified
+ String antHome = System.getenv(Installer.SYSTEM_PROPERTY_ANT_HOME);
+ if(antHome==null || "".equals(antHome))
+ {
+ throw new RuntimeException("Environment Variable '" + Installer.SYSTEM_PROPERTY_ANT_HOME +
+ "' must be specified.");
+ }
+ System.out.println("Using ANT_HOME: " + antHome);
+
+ // Construct "ant" command
+ String antCommand = antHome + File.separator + "bin" + File.separator + Installer.COMMAND_ANT;
+
+ // Windows Hack
+ if(System.getProperty(Installer.SYSTEM_PROPERTY_OS).trim().toLowerCase().contains("windows"))
+ {
+ antCommand = antCommand + Installer.COMMAND_EXTENSION_WINDOWS;
+ }
+
// Construct the Process
- ProcessBuilder antProcessBuilder = new ProcessBuilder(Installer.COMMAND_ANT, Installer.SWITCH_ANT_BUILDFILE,
+ ProcessBuilder antProcessBuilder = new ProcessBuilder(antCommand, Installer.SWITCH_ANT_BUILDFILE,
buildfile);
antProcessBuilder.redirectErrorStream(true);
antProcessBuilder.environment().put(Installer.ENV_PROPERTY_JBOSS_HOME,
this.getJbossAsInstallationDirectory().getAbsolutePath());
-
+
try
{
// Start the Process
- System.out.println("Starting Ant> " + Installer.COMMAND_ANT + " " + Installer.SWITCH_ANT_BUILDFILE + " "
- + buildfile);
+ System.out.println("Starting Ant> " + antCommand + " "
+ + Installer.SWITCH_ANT_BUILDFILE + " " + buildfile);
antProcess = antProcessBuilder.start();
// Capture the output
@@ -314,7 +343,7 @@
// The command could not be found
if (antProcess == null)
{
- throw new RuntimeException("Ensure Apache Ant is properly installed and available on your system's PATH",
+ throw new RuntimeException("Ensure Apache Ant is properly installed and Environment Variable ANT_HOME is set",
ioe);
}
More information about the jboss-cvs-commits
mailing list