[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