[jboss-cvs] JBossAS SVN: r96327 - projects/embedded/trunk/core/src/main/java/org/jboss/embedded/core/server.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Nov 13 03:29:51 EST 2009


Author: ALRubinger
Date: 2009-11-13 03:29:51 -0500 (Fri, 13 Nov 2009)
New Revision: 96327

Modified:
   projects/embedded/trunk/core/src/main/java/org/jboss/embedded/core/server/JBossASEmbeddedServerImpl.java
   projects/embedded/trunk/core/src/main/java/org/jboss/embedded/core/server/SecurityActions.java
Log:
[EMB-63] Obey a manually-specified JBOSS_HOME

Modified: projects/embedded/trunk/core/src/main/java/org/jboss/embedded/core/server/JBossASEmbeddedServerImpl.java
===================================================================
--- projects/embedded/trunk/core/src/main/java/org/jboss/embedded/core/server/JBossASEmbeddedServerImpl.java	2009-11-13 06:49:33 UTC (rev 96326)
+++ projects/embedded/trunk/core/src/main/java/org/jboss/embedded/core/server/JBossASEmbeddedServerImpl.java	2009-11-13 08:29:51 UTC (rev 96327)
@@ -124,35 +124,29 @@
    {
       // Call Super
       super(JBossASEmbeddedServer.class);
-
-      // Get JBOSS_HOME
-      String jbossHome = SecurityActions.getSystemProperty(SYS_PROP_JBOSS_HOME);
-      if (jbossHome == null)
-      {
-         jbossHome = SecurityActions.getEnvironmentVariable(ENV_VAR_JBOSS_HOME);
-         log.info("Using " + ENV_VAR_JBOSS_HOME + " Environment Variable: " + jbossHome);
-      }
-      else
-      {
-         log.info("Using " + SYS_PROP_JBOSS_HOME + " System Property: " + jbossHome);
-      }
-      if (jbossHome == null)
-      {
-         throw new IllegalStateException("JBOSS_HOME must be specified, either via environment variable \""
-               + ENV_VAR_JBOSS_HOME + "\" or system property \"" + SYS_PROP_JBOSS_HOME + "\".");
-      }
    }
 
    /**
     * Constructor
     * 
+    * Creates a new instance, manually specifying JBOSS_HOME
+    * 
     * @param Absolute location of JBOSS_HOME on the filesystem
     * @throws IllegalArgumentException If jbossHome is not specified
     */
-   public JBossASEmbeddedServerImpl(final String jbossHome) throws IllegalArgumentException
+   public JBossASEmbeddedServerImpl(String jbossHome) throws IllegalArgumentException
    {
       // Call super
       super(JBossASEmbeddedServer.class);
+
+      // Precondition check
+      if (jbossHome == null || jbossHome.length() == 0)
+      {
+         throw new IllegalArgumentException("JBOSS_HOME must be specified");
+      }
+
+      // Override JBOSS_HOME by setting the system property
+      SecurityActions.setJBossHomeSystemProperty(jbossHome);
    }
 
    //-------------------------------------------------------------------------------------||

Modified: projects/embedded/trunk/core/src/main/java/org/jboss/embedded/core/server/SecurityActions.java
===================================================================
--- projects/embedded/trunk/core/src/main/java/org/jboss/embedded/core/server/SecurityActions.java	2009-11-13 06:49:33 UTC (rev 96326)
+++ projects/embedded/trunk/core/src/main/java/org/jboss/embedded/core/server/SecurityActions.java	2009-11-13 08:29:51 UTC (rev 96327)
@@ -3,6 +3,8 @@
 import java.security.AccessController;
 import java.security.PrivilegedAction;
 
+import org.jboss.bootstrap.api.as.config.JBossASBasedServerConfig;
+
 /**
  * SecurityActions
  * 
@@ -80,4 +82,27 @@
          }
       });
    }
+
+   /**
+    * Sets the system property "jboss.home" to the specified value
+    * @param jbossHome
+    */
+   static void setJBossHomeSystemProperty(final String jbossHome)
+   {
+      // Precondition check
+      assert jbossHome != null && jbossHome.length() > 0 : "JBOSS_HOME must be specified";
+
+      // Set sysprop
+      AccessController.doPrivileged(new PrivilegedAction<Void>()
+      {
+
+         @Override
+         public Void run()
+         {
+            System.setProperty(JBossASBasedServerConfig.PROP_KEY_JBOSSAS_HOME, jbossHome);
+            return null;
+         }
+
+      });
+   }
 }




More information about the jboss-cvs-commits mailing list