[jboss-cvs] JBossAS SVN: r88176 - in projects/bootstrap/trunk: impl-as/src/main/java/org/jboss/bootstrap/impl/as/server and 3 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon May 4 20:34:27 EDT 2009
Author: ALRubinger
Date: 2009-05-04 20:34:26 -0400 (Mon, 04 May 2009)
New Revision: 88176
Modified:
projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/BasicJBossASServerConfig.java
projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationInitializerImpl.java
projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationValidator.java
projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/JBossASServerConfigLegacy.java
projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/server/JBossASServerInitializer.java
projects/bootstrap/trunk/impl-as/src/test/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationInitializationTestCase.java
projects/bootstrap/trunk/impl-as/src/test/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationPropertyOverrideTestCase.java
projects/bootstrap/trunk/impl-as/src/test/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationValidationTestCase.java
projects/bootstrap/trunk/impl-as/src/test/java/org/jboss/bootstrap/impl/as/server/JBossASServerInitializationTestCase.java
projects/bootstrap/trunk/spi-as/src/main/java/org/jboss/bootstrap/spi/as/config/JBossASConfigurationInitializer.java
projects/bootstrap/trunk/spi-as/src/main/java/org/jboss/bootstrap/spi/as/config/JBossASServerConfig.java
Log:
[JBBOOT-31] Add config support for usePlatformMBeanServer
Modified: projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/BasicJBossASServerConfig.java
===================================================================
--- projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/BasicJBossASServerConfig.java 2009-05-05 00:07:22 UTC (rev 88175)
+++ projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/BasicJBossASServerConfig.java 2009-05-05 00:34:26 UTC (rev 88176)
@@ -193,6 +193,15 @@
*/
private URL nativeLibraryLocation;
+ /**
+ * Whether or not to use the platform MBean Server
+ * on JDK 1.5+.
+ * Synchronized on "this".
+ * Volatile so we don't have to block
+ * when simply setting the value.
+ */
+ private volatile Boolean usePlatformMBeanServer;
+
//-------------------------------------------------------------------------------||
// Constructor ------------------------------------------------------------------||
//-------------------------------------------------------------------------------||
@@ -964,6 +973,29 @@
return this.covarientReturn();
}
+ /* (non-Javadoc)
+ * @see org.jboss.bootstrap.spi.as.config.JBossASServerConfig#isUsePlatformMBeanServer()
+ */
+ public Boolean isUsePlatformMBeanServer()
+ {
+ return this.usePlatformMBeanServer;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.bootstrap.spi.as.config.JBossASServerConfig#usePlatformMBeanServer(java.lang.Boolean)
+ */
+ public synchronized JBossASServerConfig usePlatformMBeanServer(final Boolean usePlatformMBeanServer)
+ {
+ // Set
+ this.usePlatformMBeanServer = usePlatformMBeanServer;
+
+ // Set property
+ this.setPropertyForString(PROP_KEY_JBOSSAS_PLATFORM_MBEANSERVER, usePlatformMBeanServer);
+
+ // Return
+ return this.covarientReturn();
+ }
+
//-------------------------------------------------------------------------------||
// Internal Helper Methods ------------------------------------------------------||
//-------------------------------------------------------------------------------||
Modified: projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationInitializerImpl.java
===================================================================
--- projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationInitializerImpl.java 2009-05-05 00:07:22 UTC (rev 88175)
+++ projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationInitializerImpl.java 2009-05-05 00:34:26 UTC (rev 88176)
@@ -264,6 +264,18 @@
resolvedNativeLibLocation = this.adjustToTrailingSlash(resolvedNativeLibLocation);
config.nativeLibraryLocation(resolvedNativeLibLocation);
+ // ${jboss.platform.mbeanserver}
+ final Boolean platformMBeanServer = config.isUsePlatformMBeanServer();
+ final String platformMBeanServerString = platformMBeanServer != null ? platformMBeanServer.toString() : null;
+ final String platformMBeanServerResolved = this.resolvePropertyValue(
+ JBossASServerConfig.PROP_KEY_JBOSSAS_PLATFORM_MBEANSERVER, platformMBeanServerString,
+ JBossASConfigurationInitializer.DEFAULT_VALUE_PLATFORM_MBEAN_SERVER.toString(), configProps);
+ if (platformMBeanServerResolved != null)
+ {
+ final boolean platformMbeanServerOverride = Boolean.parseBoolean(platformMBeanServerResolved);
+ config.usePlatformMBeanServer(platformMbeanServerOverride);
+ }
+
}
//-------------------------------------------------------------------------------||
Modified: projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationValidator.java
===================================================================
--- projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationValidator.java 2009-05-05 00:07:22 UTC (rev 88175)
+++ projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationValidator.java 2009-05-05 00:34:26 UTC (rev 88176)
@@ -106,6 +106,8 @@
this.require(config.isLoadNative(), JBossASServerConfig.PROP_KEY_JBOSSAS_NATIVE_LOAD);
// jboss.native.load
this.require(config.getNativeLibraryLocation(), JBossASServerConfig.PROP_KEY_JBOSSAS_NATIVE_DIR);
+ // jboss.platform.mbeanserver
+ this.require(config.isUsePlatformMBeanServer(), JBossASServerConfig.PROP_KEY_JBOSSAS_PLATFORM_MBEANSERVER);
// Log
log.debug("Configuration is valid: " + config);
Modified: projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/JBossASServerConfigLegacy.java
===================================================================
--- projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/JBossASServerConfigLegacy.java 2009-05-05 00:07:22 UTC (rev 88175)
+++ projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/JBossASServerConfigLegacy.java 2009-05-05 00:34:26 UTC (rev 88176)
@@ -99,13 +99,4 @@
*/
String REQUIRE_JBOSS_URL_STREAM_HANDLER_FACTORY = "jboss.server.requirejbossurlstreamhandlerfactory";
- /**
- * Constant that holds the name of the environment property for specifying
- * whether or not to use as the main jboss server the MBeanServer returned
- * from ManagementFactory.getPlatformMBeanServer(), when running under jdk1.5+
- *
- * <p>If not set then jboss will instantiate its own MBeanServer
- */
- String PLATFORM_MBEANSERVER = "jboss.platform.mbeanserver";
-
}
Modified: projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/server/JBossASServerInitializer.java
===================================================================
--- projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/server/JBossASServerInitializer.java 2009-05-05 00:07:22 UTC (rev 88175)
+++ projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/server/JBossASServerInitializer.java 2009-05-05 00:34:26 UTC (rev 88176)
@@ -108,6 +108,7 @@
final Integer udpPort = configuration.getUdpPort();
final Boolean loadNative = configuration.isLoadNative();
final String nativeLibLocation = this.getAbsoluteLocationOfUrl(configuration.getNativeLibraryLocation());
+ final Boolean usePlatformMBeanServer = configuration.isUsePlatformMBeanServer();
// Set our system properties
this.setSystemProperty(JBossASServerConfig.PROP_KEY_JBOSSAS_HOME, jbossHomeDir);
@@ -132,6 +133,7 @@
this.setSystemProperty(JBossASServerConfig.PROP_KEY_JBOSSAS_PARTITION_UDP_PORT, udpPort);
this.setSystemProperty(JBossASServerConfig.PROP_KEY_JBOSSAS_NATIVE_LOAD, loadNative);
this.setSystemProperty(JBossASServerConfig.PROP_KEY_JBOSSAS_NATIVE_DIR, nativeLibLocation);
+ this.setSystemProperty(JBossASServerConfig.PROP_KEY_JBOSSAS_PLATFORM_MBEANSERVER, usePlatformMBeanServer);
}
//-------------------------------------------------------------------------------||
Modified: projects/bootstrap/trunk/impl-as/src/test/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationInitializationTestCase.java
===================================================================
--- projects/bootstrap/trunk/impl-as/src/test/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationInitializationTestCase.java 2009-05-05 00:07:22 UTC (rev 88175)
+++ projects/bootstrap/trunk/impl-as/src/test/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationInitializationTestCase.java 2009-05-05 00:34:26 UTC (rev 88176)
@@ -504,6 +504,28 @@
log.info("Got expected: " + expected);
}
+ /**
+ * Ensures that the default Platform MBean Server property is set correctly
+ *
+ * @throws Throwable
+ */
+ @Test
+ public void testPlatformMBeanServerDefault() throws Throwable
+ {
+ // Log
+ log.info("testPlatformMBeanServerDefault");
+
+ // Get out the bootstrap URL
+ final Boolean actual = config.isUsePlatformMBeanServer();
+
+ // Get expected value
+ final Boolean expected = JBossASConfigurationInitializer.DEFAULT_VALUE_PLATFORM_MBEAN_SERVER;
+
+ // Test
+ TestCase.assertEquals("Using Platform MBean Server for AS was not defaulted as expected", expected, actual);
+ log.info("Got expected: " + expected);
+ }
+
//-------------------------------------------------------------------------------||
// Internal Helper Methods ------------------------------------------------------||
//-------------------------------------------------------------------------------||
Modified: projects/bootstrap/trunk/impl-as/src/test/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationPropertyOverrideTestCase.java
===================================================================
--- projects/bootstrap/trunk/impl-as/src/test/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationPropertyOverrideTestCase.java 2009-05-05 00:07:22 UTC (rev 88175)
+++ projects/bootstrap/trunk/impl-as/src/test/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationPropertyOverrideTestCase.java 2009-05-05 00:34:26 UTC (rev 88176)
@@ -660,4 +660,32 @@
log.info("Got expected: " + URL_OVERRIDE);
}
+ /**
+ * Ensures that the Platform MBean Server may be overridden from
+ * the corresponding property
+ */
+ @Test
+ public void testPlatformMBeanServerPropOverride() throws Throwable
+ {
+ // Log
+ log.info("testPlatformMBeanServerPropOverride");
+
+ // Get the config
+ final JBossASServerConfig config = this.config;
+
+ // Explicitly set
+ config.usePlatformMBeanServer(BOOLEAN_EXPLICIT_SETTING);
+
+ // Set override property
+ final String override = BOOLEAN_OVERRIDE.toString();
+ config.property(JBossASServerConfig.PROP_KEY_JBOSSAS_PLATFORM_MBEANSERVER, override);
+
+ // Initialize
+ initializer.initialize(config);
+
+ // Test
+ TestCase.assertEquals(FAIL_MESSAGE, override, config.isUsePlatformMBeanServer().toString());
+ log.info("Got expected: " + override);
+ }
+
}
Modified: projects/bootstrap/trunk/impl-as/src/test/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationValidationTestCase.java
===================================================================
--- projects/bootstrap/trunk/impl-as/src/test/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationValidationTestCase.java 2009-05-05 00:07:22 UTC (rev 88175)
+++ projects/bootstrap/trunk/impl-as/src/test/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationValidationTestCase.java 2009-05-05 00:34:26 UTC (rev 88176)
@@ -452,6 +452,23 @@
this.assertMissingValueFails(config, "native library location");
}
+ /**
+ * Ensures that an empty/null Platform MBean Server property fails
+ */
+ @Test
+ public void testNoPlatformMBeanServerFails()
+ {
+ // Log
+ log.info("testNoPlatformMBeanServerFails");
+
+ // Get config and clear out
+ final JBossASServerConfig config = this.config;
+ config.usePlatformMBeanServer(null);
+
+ // Test
+ this.assertMissingValueFails(config, "use platform MBean Server");
+ }
+
//-------------------------------------------------------------------------------||
// Internal Helper Methods ------------------------------------------------------||
//-------------------------------------------------------------------------------||
@@ -514,6 +531,7 @@
final String partitionName = JBossASConfigurationInitializer.DEFAULT_VALUE_PARITION_NAME;
final Boolean nativeLoad = JBossASConfigurationInitializer.DEFAULT_VALUE_NATIVE_LOAD;
final String nativeLibLocation = serverTemp + JBossASConfigurationInitializer.DEFAULT_VALUE_NATIVE_DIR_SUFFIX;
+ final Boolean usePlatformMBeanServer = JBossASConfigurationInitializer.DEFAULT_VALUE_PLATFORM_MBEAN_SERVER;
// Populate
config.jbossHome(jbossHome).bootstrapHome(bootstrapHome).bootstrapName(bootstrapName).bindAddress(bindAddress)
@@ -521,7 +539,7 @@
serverHome).commonBaseLocation(commonBase).commonLibLocation(commonLib).serverLogLocation(serverLog)
.serverConfLocation(serverConfig).serverLibLocation(serverLib).serverDataLocation(serverData)
.serverTempLocation(serverTemp).partitionName(partitionName).loadNative(nativeLoad).nativeLibraryLocation(
- nativeLibLocation);
+ nativeLibLocation).usePlatformMBeanServer(usePlatformMBeanServer);
// Return
return config;
Modified: projects/bootstrap/trunk/impl-as/src/test/java/org/jboss/bootstrap/impl/as/server/JBossASServerInitializationTestCase.java
===================================================================
--- projects/bootstrap/trunk/impl-as/src/test/java/org/jboss/bootstrap/impl/as/server/JBossASServerInitializationTestCase.java 2009-05-05 00:07:22 UTC (rev 88175)
+++ projects/bootstrap/trunk/impl-as/src/test/java/org/jboss/bootstrap/impl/as/server/JBossASServerInitializationTestCase.java 2009-05-05 00:34:26 UTC (rev 88176)
@@ -147,6 +147,7 @@
final String udpPortPropKey = JBossASServerConfig.PROP_KEY_JBOSSAS_PARTITION_UDP_PORT;
final String nativeLoadPropKey = JBossASServerConfig.PROP_KEY_JBOSSAS_NATIVE_LOAD;
final String nativeLibLocationPropKey = JBossASServerConfig.PROP_KEY_JBOSSAS_NATIVE_DIR;
+ final String platformMBeanServerPropKey = JBossASServerConfig.PROP_KEY_JBOSSAS_PLATFORM_MBEANSERVER;
// Get Properties from Configuration
final Map<String, String> properties = configuration.getProperties();
@@ -172,6 +173,7 @@
final String udpPortFromConfProp = properties.get(udpPortPropKey);
final String nativeLoadFromConfProp = properties.get(nativeLoadPropKey);
final String nativeLibLocationFromConfProp = properties.get(nativeLibLocationPropKey);
+ final String platformMBeanServerFromConfProp = properties.get(platformMBeanServerPropKey);
// Get Properties from System
final String jbossHomeFromSystem = System.getProperty(jbossHomePropKey);
@@ -196,6 +198,7 @@
final String udpPortFromSystem = System.getProperty(udpPortPropKey);
final String nativeLoadFromSystem = System.getProperty(nativeLoadPropKey);
final String nativeLibLocationFromSystem = System.getProperty(nativeLibLocationPropKey);
+ final String platformMBeanServerFromSystem = System.getProperty(platformMBeanServerPropKey);
// Get Expected Values
final URL jbossHomeFromConf = configuration.getJBossHome();
@@ -233,6 +236,7 @@
final URL nativeLibFromConf = configuration.getNativeLibraryLocation();
final File nativeLibFile = new File(nativeLibFromConf.toURI());
final String nativeLibDirFromConf = nativeLibFile.getAbsolutePath();
+ final String platformMBeanServerFromConf = configuration.isUsePlatformMBeanServer().toString();
// Ensure all equal
TestCase.assertEquals("JBoss Home in configuration must match the config property", jbossHomeDirFromConf,
@@ -323,6 +327,10 @@
nativeLibLocationFromConfProp);
TestCase.assertEquals("Native Lib Dir in configuration must match the system property", nativeLibDirFromConf,
nativeLibLocationFromSystem);
+ TestCase.assertEquals("Platform MBean Server in configuration must match the config property",
+ platformMBeanServerFromConf, platformMBeanServerFromConfProp);
+ TestCase.assertEquals("Platform MBean Server in configuration must match the system property",
+ platformMBeanServerFromConf, platformMBeanServerFromSystem);
// Push through lifecycle start/stop
server.start();
@@ -351,6 +359,7 @@
final String udpPortFromSystemAfterCleanup = System.getProperty(udpPortPropKey);
final String nativeLoadFromSystemAfterCleanup = System.getProperty(nativeLoadPropKey);
final String nativeLibFromSystemAfterCleanup = System.getProperty(nativeLibLocationPropKey);
+ final String platformMBeanServerFromSystemAfterCleanup = System.getProperty(platformMBeanServerPropKey);
// Ensure all null
final String failMessage = "System property should be null after cleanup";
@@ -376,5 +385,6 @@
TestCase.assertNull(failMessage, udpPortFromSystemAfterCleanup);
TestCase.assertNull(failMessage, nativeLoadFromSystemAfterCleanup);
TestCase.assertNull(failMessage, nativeLibFromSystemAfterCleanup);
+ TestCase.assertNull(failMessage, platformMBeanServerFromSystemAfterCleanup);
}
}
Modified: projects/bootstrap/trunk/spi-as/src/main/java/org/jboss/bootstrap/spi/as/config/JBossASConfigurationInitializer.java
===================================================================
--- projects/bootstrap/trunk/spi-as/src/main/java/org/jboss/bootstrap/spi/as/config/JBossASConfigurationInitializer.java 2009-05-05 00:07:22 UTC (rev 88175)
+++ projects/bootstrap/trunk/spi-as/src/main/java/org/jboss/bootstrap/spi/as/config/JBossASConfigurationInitializer.java 2009-05-05 00:34:26 UTC (rev 88176)
@@ -125,4 +125,10 @@
* (eg. $JBOSS_HOME/server/[serverName]/tmp/native/)
*/
String DEFAULT_VALUE_NATIVE_DIR_SUFFIX = "native/";
+
+ /**
+ * The default value used in determining whether or not
+ * to use the Platform MBean Server under JDK 1.5+
+ */
+ Boolean DEFAULT_VALUE_PLATFORM_MBEAN_SERVER = true;
}
Modified: projects/bootstrap/trunk/spi-as/src/main/java/org/jboss/bootstrap/spi/as/config/JBossASServerConfig.java
===================================================================
--- projects/bootstrap/trunk/spi-as/src/main/java/org/jboss/bootstrap/spi/as/config/JBossASServerConfig.java 2009-05-05 00:07:22 UTC (rev 88175)
+++ projects/bootstrap/trunk/spi-as/src/main/java/org/jboss/bootstrap/spi/as/config/JBossASServerConfig.java 2009-05-05 00:34:26 UTC (rev 88176)
@@ -188,6 +188,15 @@
*/
String PROP_KEY_JBOSSAS_NATIVE_DIR = "jboss.native.dir";
+ /**
+ * Constant that holds the name of the system property for specifying
+ * whether or not to use as the main jboss server the MBeanServer returned
+ * from ManagementFactory.getPlatformMBeanServer(), when running under jdk1.5+
+ *
+ * <p>If not set then jboss will instantiate its own MBeanServer
+ */
+ String PROP_KEY_JBOSSAS_PLATFORM_MBEANSERVER = "jboss.platform.mbeanserver";
+
//-------------------------------------------------------------------------------||
// Contracts --------------------------------------------------------------------||
//-------------------------------------------------------------------------------||
@@ -599,4 +608,21 @@
*/
JBossASServerConfig nativeLibraryLocation(String nativeLibraryLocation) throws IllegalArgumentException;
+ /**
+ * Determines whether or not to use as the main jboss server the MBeanServer returned
+ * from ManagementFactory.getPlatformMBeanServer(), when running under jdk1.5+
+ *
+ * @return
+ */
+ Boolean isUsePlatformMBeanServer();
+
+ /**
+ * Sets whether or not to use as the main jboss server the MBeanServer returned
+ * from ManagementFactory.getPlatformMBeanServer(), when running under jdk1.5+
+ *
+ * @param usePlatformMBeanServer
+ * @return
+ */
+ JBossASServerConfig usePlatformMBeanServer(Boolean usePlatformMBeanServer);
+
}
More information about the jboss-cvs-commits
mailing list