[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