[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