[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