[jboss-cvs] JBossAS SVN: r88127 - in projects/bootstrap/trunk/impl-as: src/main/java/org/jboss/bootstrap/impl/as/config and 3 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sun May 3 18:03:25 EDT 2009


Author: ALRubinger
Date: 2009-05-03 18:03:25 -0400 (Sun, 03 May 2009)
New Revision: 88127

Modified:
   projects/bootstrap/trunk/impl-as/pom.xml
   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/JBossASConfigurationInitializer.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/JBossASServerConfig.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/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
Log:
[JBBOOT-31] Handle configuration of jboss.partition.name, overrides, and tests

Modified: projects/bootstrap/trunk/impl-as/pom.xml
===================================================================
--- projects/bootstrap/trunk/impl-as/pom.xml	2009-05-03 21:12:16 UTC (rev 88126)
+++ projects/bootstrap/trunk/impl-as/pom.xml	2009-05-03 22:03:25 UTC (rev 88127)
@@ -19,6 +19,7 @@
   <!-- Artifact Configuration -->
   <artifactId>jboss-bootstrap-impl-as</artifactId>
   <name>JBoss Bootstrap AS Implementation</name>
+  <version>0.1.2-SNAPSHOT</version>
   <description>Application Server Implementation of JBoss Bootstrap</description>  
 
   <!-- Properties -->

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-03 21:12:16 UTC (rev 88126)
+++ projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/BasicJBossASServerConfig.java	2009-05-03 22:03:25 UTC (rev 88127)
@@ -58,9 +58,10 @@
 
    /**
     * Bind address for the server.  Synchronized on
-    * "this".
+    * "this".  Volatile so we don't have to block
+    * when simply setting the value.
     */
-   private String bindAddress;
+   private volatile String bindAddress;
 
    /**
     * $JBOSS_HOME, root of the AS installation
@@ -145,6 +146,14 @@
     */
    private URL serverTempLocation;
 
+   /**
+    * Partition name this instance uses when taking
+    * part in clustering.  Synchronized on "this".
+    * Volatile so we don't have to block
+    * when simply setting the value.
+    */
+   private volatile String partitionName;
+
    //-------------------------------------------------------------------------------||
    // Constructor ------------------------------------------------------------------||
    //-------------------------------------------------------------------------------||
@@ -184,7 +193,7 @@
    /* (non-Javadoc)
     * @see org.jboss.bootstrap.impl.as.config.JBossASServerConfig#getServerName()
     */
-   public synchronized String getServerName()
+   public String getServerName()
    {
       return this.serverName;
    }
@@ -761,6 +770,29 @@
       return this.covarientReturn();
    }
 
+   /* (non-Javadoc)
+    * @see org.jboss.bootstrap.impl.as.config.JBossASServerConfig#getPartitionName()
+    */
+   public String getPartitionName()
+   {
+      return this.partitionName;
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.bootstrap.impl.as.config.JBossASServerConfig#partitionName(java.lang.String)
+    */
+   public synchronized JBossASServerConfig partitionName(final String partitionName)
+   {
+      // Set
+      this.partitionName = partitionName;
+
+      // Set property
+      this.setPropertyForString(PROP_KEY_JBOSSAS_PARTITION_NAME, partitionName);
+
+      // Return
+      return this.covarientReturn();
+   }
+
    //-------------------------------------------------------------------------------||
    // Internal Helper Methods ------------------------------------------------------||
    //-------------------------------------------------------------------------------||

Modified: projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationInitializer.java
===================================================================
--- projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationInitializer.java	2009-05-03 21:12:16 UTC (rev 88126)
+++ projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationInitializer.java	2009-05-03 22:03:25 UTC (rev 88127)
@@ -106,4 +106,10 @@
     * {@link JBossASServerConfig#PROP_KEY_JBOSSAS_SERVER_TEMP_DIR}.
     */
    String DEFAULT_VALUE_SERVER_TEMP_DIR_SUFFIX = "tmp/";
+
+   /** 
+    * The partition name used as the default value for
+    * {@link JBossASServerConfig#PROP_KEY_JBOSSAS_PARTITION_NAME} 
+    */
+   String DEFAULT_VALUE_PARITION_NAME = "DefaultPartition";
 }

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-03 21:12:16 UTC (rev 88126)
+++ projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationInitializerImpl.java	2009-05-03 22:03:25 UTC (rev 88127)
@@ -213,6 +213,11 @@
       resolvedBootstrapHome = this.adjustToTrailingSlash(resolvedBootstrapHome);
       config.bootstrapHome(resolvedBootstrapHome);
 
+      // ${jboss.partition.name}
+      final String partitionName = this.resolvePropertyValue(JBossASServerConfig.PROP_KEY_JBOSSAS_PARTITION_NAME,
+            config.getPartitionName(), JBossASConfigurationInitializer.DEFAULT_VALUE_PARITION_NAME, configProps);
+      config.partitionName(partitionName);
+
    }
 
    //-------------------------------------------------------------------------------||

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-03 21:12:16 UTC (rev 88126)
+++ projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationValidator.java	2009-05-03 22:03:25 UTC (rev 88127)
@@ -99,6 +99,8 @@
       this.require(config.getServerDataLocation(), JBossASServerConfig.PROP_KEY_JBOSSAS_SERVER_DATA_DIR);
       // jboss.server.tmp.dir
       this.require(config.getServerTempLocation(), JBossASServerConfig.PROP_KEY_JBOSSAS_SERVER_TEMP_DIR);
+      // jboss.partition.name
+      this.require(config.getPartitionName(), JBossASServerConfig.PROP_KEY_JBOSSAS_PARTITION_NAME);
 
       // Log
       log.debug("Configuration is valid: " + config);

Modified: projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/JBossASServerConfig.java
===================================================================
--- projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/JBossASServerConfig.java	2009-05-03 21:12:16 UTC (rev 88126)
+++ projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/JBossASServerConfig.java	2009-05-03 22:03:25 UTC (rev 88127)
@@ -159,6 +159,12 @@
     */
    String PROP_KEY_JBOSSAS_SERVER_TEMP_DIR = "jboss.server.temp.dir";
 
+   /** 
+    * Constant that holds the name of the system property
+    * for specifying the partition name for this instance in clustering
+    */
+   String PROP_KEY_JBOSSAS_PARTITION_NAME = "jboss.partition.name";
+
    //-------------------------------------------------------------------------------||
    // Contracts --------------------------------------------------------------------||
    //-------------------------------------------------------------------------------||
@@ -479,4 +485,20 @@
     *    is non-null and cannot be constructed into a URL
     */
    JBossASServerConfig serverTempLocation(String serverTempLocation) throws IllegalArgumentException;
+
+   /**
+    * Obtains the partition name for this instance in clustering
+    * 
+    * @return
+    */
+   String getPartitionName();
+
+   /**
+    * Sets the partition name for this instance in clustering
+    * 
+    * @param bindAddress
+    * @return
+    */
+   JBossASServerConfig partitionName(String partitionName);
+
 }

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-03 21:12:16 UTC (rev 88126)
+++ projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/JBossASServerConfigLegacy.java	2009-05-03 22:03:25 UTC (rev 88127)
@@ -46,13 +46,7 @@
    /*
     * STUFF BELOW HERE has not been addressed/documented/reintegrated
     */
-
-   /** The default partition name */
-   String DEFAULT_VALUE_PARITION_NAME = "DefaultPartition";
-
-   /** The partition name property */
-   String PROP_KEY_JBOSSAS_PARTITION_NAME_PROPERTY = "jboss.partition.name";
-
+  
    /** The udp address property */
    String PROP_KEY_JBOSSAS_PARTITION_UDP_PROPERTY = "jboss.partition.udpGroup";
 

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-03 21:12:16 UTC (rev 88126)
+++ projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/server/JBossASServerInitializer.java	2009-05-03 22:03:25 UTC (rev 88127)
@@ -102,6 +102,7 @@
       final URL serverLibDir = configuration.getServerLibLocation();
       final String serverDataDir = this.getAbsoluteLocationOfUrl(configuration.getServerDataLocation());
       final String serverTempDir = this.getAbsoluteLocationOfUrl(configuration.getServerTempLocation());
+      final String partitionName = configuration.getPartitionName();
 
       // Set our system properties
       this.setSystemProperty(JBossASServerConfig.PROP_KEY_JBOSSAS_HOME, jbossHomeDir);
@@ -121,6 +122,7 @@
       this.setSystemProperty(JBossASServerConfig.PROP_KEY_JBOSSAS_SERVER_LIBRARY_URL, serverLibDir);
       this.setSystemProperty(JBossASServerConfig.PROP_KEY_JBOSSAS_SERVER_DATA_DIR, serverDataDir);
       this.setSystemProperty(JBossASServerConfig.PROP_KEY_JBOSSAS_SERVER_TEMP_DIR, serverTempDir);
+      this.setSystemProperty(JBossASServerConfig.PROP_KEY_JBOSSAS_PARTITION_NAME, partitionName);
    }
 
    //-------------------------------------------------------------------------------||

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-03 21:12:16 UTC (rev 88126)
+++ projects/bootstrap/trunk/impl-as/src/test/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationPropertyOverrideTestCase.java	2009-05-03 22:03:25 UTC (rev 88127)
@@ -501,4 +501,31 @@
       log.info("Got expected: " + STRING_OVERRIDE);
    }
 
+   /**
+    * Ensures that the Partition Name may be overridden from
+    * the corresponding property
+    */
+   @Test
+   public void testPartitionNamePropOverride() throws Throwable
+   {
+      // Log
+      log.info("testPartitionNamePropOverride");
+
+      // Get the config
+      final JBossASServerConfig config = this.config;
+
+      // Explicitly set
+      config.partitionName(STRING_EXPLICIT_SETTING);
+
+      // Set override property
+      config.property(JBossASServerConfig.PROP_KEY_JBOSSAS_PARTITION_NAME, STRING_OVERRIDE);
+
+      // Initialize
+      initializer.initialize(config);
+
+      // Test
+      TestCase.assertEquals(FAIL_MESSAGE, STRING_OVERRIDE, config.getPartitionName());
+      log.info("Got expected: " + STRING_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-03 21:12:16 UTC (rev 88126)
+++ projects/bootstrap/trunk/impl-as/src/test/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationValidationTestCase.java	2009-05-03 22:03:25 UTC (rev 88127)
@@ -131,7 +131,6 @@
       try
       {
          validator.validate(config);
-
       }
       catch (InvalidConfigurationException ice)
       {
@@ -400,6 +399,23 @@
       this.assertMissingValueFails(config, "server temp location");
    }
 
+   /**
+    * Ensures that an empty/null JBoss Partition Name fails
+    */
+   @Test
+   public void testNoPartitionNameFails()
+   {
+      // Log
+      log.info("testNoPartitionNameFails");
+
+      // Get config and clear out
+      final JBossASServerConfig config = this.config;
+      config.partitionName(null);
+
+      // Test
+      this.assertMissingValueFails(config, "partition name");
+   }
+
    //-------------------------------------------------------------------------------||
    // Internal Helper Methods ------------------------------------------------------||
    //-------------------------------------------------------------------------------||
@@ -459,13 +475,14 @@
       final String serverLib = serverHome + JBossASConfigurationInitializer.DEFAULT_VALUE_LIBRARY_URL_SUFFIX;
       final String serverData = serverHome + JBossASConfigurationInitializer.DEFAULT_VALUE_SERVER_DATA_DIR_SUFFIX;
       final String serverTemp = serverHome + JBossASConfigurationInitializer.DEFAULT_VALUE_SERVER_TEMP_DIR_SUFFIX;
+      final String partitionName = JBossASConfigurationInitializer.DEFAULT_VALUE_PARITION_NAME;
 
       // Populate
       config.jbossHome(jbossHome).bootstrapHome(bootstrapHome).bootstrapName(bootstrapName).bindAddress(bindAddress)
             .serverName(serverName).bootLibraryLocation(bootLib).serverBaseLocation(serverBase).serverHomeLocation(
                   serverHome).commonBaseLocation(commonBase).commonLibLocation(commonLib).serverLogLocation(serverLog)
             .serverConfLocation(serverConfig).serverLibLocation(serverLib).serverDataLocation(serverData)
-            .serverTempLocation(serverTemp);
+            .serverTempLocation(serverTemp).partitionName(partitionName);
 
       // 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-03 21:12:16 UTC (rev 88126)
+++ projects/bootstrap/trunk/impl-as/src/test/java/org/jboss/bootstrap/impl/as/server/JBossASServerInitializationTestCase.java	2009-05-03 22:03:25 UTC (rev 88127)
@@ -133,6 +133,7 @@
       final String serverLibUrlPropKey = JBossASServerConfig.PROP_KEY_JBOSSAS_SERVER_LIBRARY_URL;
       final String serverDataDirPropKey = JBossASServerConfig.PROP_KEY_JBOSSAS_SERVER_DATA_DIR;
       final String serverTempDirPropKey = JBossASServerConfig.PROP_KEY_JBOSSAS_SERVER_TEMP_DIR;
+      final String partitionNamePropKey = JBossASServerConfig.PROP_KEY_JBOSSAS_PARTITION_NAME;
 
       // Get Properties from Configuration
       final Map<String, String> properties = configuration.getProperties();
@@ -153,6 +154,7 @@
       final String serverLibUrlFromConfProp = properties.get(serverLibUrlPropKey);
       final String serverDataDirFromConfProp = properties.get(serverDataDirPropKey);
       final String serverTempDirFromConfProp = properties.get(serverTempDirPropKey);
+      final String partitionNameFromConfProp = properties.get(partitionNamePropKey);
 
       // Get Properties from System
       final String jbossHomeFromSystem = System.getProperty(jbossHomePropKey);
@@ -172,6 +174,7 @@
       final String serverLibUrlFromSystem = System.getProperty(serverLibUrlPropKey);
       final String serverDataDirFromSystem = System.getProperty(serverDataDirPropKey);
       final String serverTempDirFromSystem = System.getProperty(serverTempDirPropKey);
+      final String partitionNameFromSystem = System.getProperty(partitionNamePropKey);
 
       // Get Expected Values
       final URL jbossHomeFromConf = configuration.getJBossHome();
@@ -202,6 +205,7 @@
       final URL serverTempFromConf = configuration.getServerTempLocation();
       final File serverTempFile = new File(serverTempFromConf.toURI());
       final String serverTempDirFromConf = serverTempFile.getAbsolutePath();
+      final String partitionNameFromConf = configuration.getPartitionName();
 
       // Ensure all equal
       TestCase.assertEquals("JBoss Home in configuration must match the config property", jbossHomeDirFromConf,
@@ -272,6 +276,10 @@
             serverTempDirFromConfProp);
       TestCase.assertEquals("Server Temp Dir in configuration must match the system property", serverTempDirFromConf,
             serverTempDirFromSystem);
+      TestCase.assertEquals("Partition Name in configuration must match the config property", partitionNameFromConf,
+            partitionNameFromConfProp);
+      TestCase.assertEquals("Partition Name in configuration must match the system property", partitionNameFromConf,
+            partitionNameFromSystem);
 
       // Cleanup
       server.shutdown();
@@ -294,6 +302,7 @@
       final String serverLibUrlFromSystemAfterCleanup = System.getProperty(serverLibUrlPropKey);
       final String serverDataDirFromSystemAfterCleanup = System.getProperty(serverDataDirPropKey);
       final String serverTempDirFromSystemAfterCleanup = System.getProperty(serverTempDirPropKey);
+      final String partitionNameFromSystemAfterCleanup = System.getProperty(partitionNamePropKey);
 
       // Ensure all null
       final String failMessage = "System property should be null after cleanup";
@@ -314,5 +323,6 @@
       TestCase.assertNull(failMessage, serverLibUrlFromSystemAfterCleanup);
       TestCase.assertNull(failMessage, serverDataDirFromSystemAfterCleanup);
       TestCase.assertNull(failMessage, serverTempDirFromSystemAfterCleanup);
+      TestCase.assertNull(failMessage, partitionNameFromSystemAfterCleanup);
    }
 }




More information about the jboss-cvs-commits mailing list