[jboss-cvs] JBossAS SVN: r87749 - in projects/bootstrap/trunk/impl-as/src: main/java/org/jboss/bootstrap/impl/as/server and 2 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Apr 23 22:12:45 EDT 2009
Author: ALRubinger
Date: 2009-04-23 22:12:44 -0400 (Thu, 23 Apr 2009)
New Revision: 87749
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/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/JBossASConfigurationInitializationTestCase.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] Added support for jboss.server.data.dir
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-04-24 01:34:19 UTC (rev 87748)
+++ projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/BasicJBossASServerConfig.java 2009-04-24 02:12:44 UTC (rev 87749)
@@ -104,6 +104,11 @@
*/
private URL serverLibLocation;
+ /**
+ * Location in which the server persistent data resides
+ */
+ private URL serverDataLocation;
+
//-------------------------------------------------------------------------------||
// Constructor ------------------------------------------------------------------||
//-------------------------------------------------------------------------------||
@@ -583,6 +588,73 @@
return this.covarientReturn();
}
+ /* (non-Javadoc)
+ * @see org.jboss.bootstrap.impl.as.config.JBossASServerConfig#getServerDataLocation()
+ */
+ public URL getServerDataLocation()
+ {
+ return this.serverDataLocation;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.bootstrap.impl.as.config.JBossASServerConfig#serverDataLocation(java.lang.String)
+ */
+ public JBossASServerConfig serverDataLocation(String serverDataLocation) throws IllegalArgumentException
+ {
+ // If null, just pass along
+ if (serverDataLocation == null)
+ {
+ return this.serverDataLocation((URL) null);
+ }
+
+ // Convert this String into a URL via File
+ final File file = new File(serverDataLocation);
+ URL url = null;
+ try
+ {
+ url = file.toURI().toURL();
+ }
+ catch (MalformedURLException e)
+ {
+ throw new IllegalArgumentException("Cannot construct URL given: " + serverDataLocation, e);
+ }
+
+ // Return
+ return this.serverDataLocation(url);
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.bootstrap.impl.as.config.JBossASServerConfig#serverDataLocation(java.net.URL)
+ */
+ public JBossASServerConfig serverDataLocation(URL serverDataLocation)
+ {
+ // Set
+ this.serverDataLocation = serverDataLocation;
+
+ // Get the absolute path
+ String location = null;
+ if (serverDataLocation != null)
+ {
+ URI uri = null;
+ try
+ {
+ uri = serverDataLocation.toURI();
+ }
+ catch (URISyntaxException e)
+ {
+ throw new RuntimeException("Error in format of " + uri, e);
+ }
+ location = new File(uri).getAbsolutePath();
+
+ }
+
+ // Set properties
+ this.setPropertyForString(PROP_KEY_JBOSSAS_SERVER_DATA_DIR, location);
+
+ // 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-04-24 01:34:19 UTC (rev 87748)
+++ projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationInitializer.java 2009-04-24 02:12:44 UTC (rev 87749)
@@ -94,4 +94,10 @@
* {@link JBossASServerConfig#PROP_KEY_JBOSSAS_SERVER_CONF_URL}.
*/
String DEFAULT_VALUE_SERVER_CONFIG_URL_SUFFIX = "conf/";
+
+ /**
+ * The suffix used when generating the default value for
+ * {@link JBossASServerConfig#PROP_KEY_JBOSSAS_SERVER_DATA_DIR}.
+ */
+ String DEFAULT_VALUE_SERVER_DATA_DIR_SUFFIX = "data/";
}
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-04-24 01:34:19 UTC (rev 87748)
+++ projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationInitializerImpl.java 2009-04-24 02:12:44 UTC (rev 87749)
@@ -169,6 +169,17 @@
resolvedServerLibLocation = this.adjustToTrailingSlash(resolvedServerLibLocation);
config.serverLibLocation(resolvedServerLibLocation);
+ // ${jboss.server.Data.dir}
+ final URL serverDataLocation = config.getServerDataLocation();
+ final String serverDataDefault = resolvedServerHomeLocation
+ + JBossASConfigurationInitializer.DEFAULT_VALUE_SERVER_DATA_DIR_SUFFIX;
+ final String currentServerDataLocation = serverDataLocation != null ? serverDataLocation.toExternalForm() : null;
+ String resolvedServerDataLocation = this.resolvePropertyValue(
+ JBossASServerConfig.PROP_KEY_JBOSSAS_SERVER_DATA_DIR, currentServerDataLocation, serverDataDefault,
+ configProps);
+ resolvedServerDataLocation = this.adjustToTrailingSlash(resolvedServerDataLocation);
+ config.serverDataLocation(resolvedServerDataLocation);
+
}
//-------------------------------------------------------------------------------||
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-04-24 01:34:19 UTC (rev 87748)
+++ projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationValidator.java 2009-04-24 02:12:44 UTC (rev 87749)
@@ -89,10 +89,12 @@
this.require(config.getCommonBaseLocation(), JBossASServerConfig.PROP_KEY_JBOSSAS_COMMON_BASE_URL);
// jboss.server.log.dir
this.require(config.getServerLogLocation(), JBossASServerConfig.PROP_KEY_JBOSSAS_SERVER_LOG_DIR);
- // jboss.server.conf.dir
+ // jboss.server.conf.url
this.require(config.getServerConfLocation(), JBossASServerConfig.PROP_KEY_JBOSSAS_SERVER_CONF_URL);
- // jboss.server.lib.dir
+ // jboss.server.lib.url
this.require(config.getServerLibLocation(), JBossASServerConfig.PROP_KEY_JBOSSAS_SERVER_LIBRARY_URL);
+ // jboss.server.data.dir
+ this.require(config.getServerDataLocation(), JBossASServerConfig.PROP_KEY_JBOSSAS_SERVER_DATA_DIR);
// 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-04-24 01:34:19 UTC (rev 87748)
+++ projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/JBossASServerConfig.java 2009-04-24 02:12:44 UTC (rev 87749)
@@ -120,7 +120,7 @@
String PROP_KEY_JBOSSAS_COMMON_BASE_URL = "jboss.common.base.url";
/**
- * Constant that holds the name of the environment property
+ * Constant that holds the name of the system property
* for specifying the server log directory for JBoss.
*/
String PROP_KEY_JBOSSAS_SERVER_LOG_DIR = "jboss.server.log.dir";
@@ -132,12 +132,19 @@
String PROP_KEY_JBOSSAS_SERVER_CONF_URL = "jboss.server.config.url";
/**
- * Constant that holds the name of the environment property
+ * Constant that holds the name of the system property
* for specifying the URL where JBoss will read server specific
* library files from.
*/
String PROP_KEY_JBOSSAS_SERVER_LIBRARY_URL = "jboss.server.lib.url";
+ /**
+ * Constant that holds the name of the system property
+ * for specifying the directory which JBoss will use for
+ * persistent data file storage.
+ */
+ String PROP_KEY_JBOSSAS_SERVER_DATA_DIR = "jboss.server.data.dir";
+
//-------------------------------------------------------------------------------||
// Contracts --------------------------------------------------------------------||
//-------------------------------------------------------------------------------||
@@ -383,4 +390,29 @@
* is non-null and cannot be constructed into a URL
*/
JBossASServerConfig serverLibLocation(String serverLibLocation) throws IllegalArgumentException;
+
+ /**
+ * Obtains the location in which the server persistent data resides
+ *
+ * @return
+ */
+ URL getServerDataLocation();
+
+ /**
+ * Sets the location in which the server persistent data resides
+ *
+ * @param serverDataLocation
+ * @return
+ */
+ JBossASServerConfig serverDataLocation(URL serverDataLocation);
+
+ /**
+ * Sets the location in which the server persistent data resides
+ *
+ * @param serverDataLocation
+ * @return
+ * @throws IllegalArgumentException If the specified argument
+ * is non-null and cannot be constructed into a URL
+ */
+ JBossASServerConfig serverDataLocation(String serverDataLocation) throws IllegalArgumentException;
}
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-04-24 01:34:19 UTC (rev 87748)
+++ projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/JBossASServerConfigLegacy.java 2009-04-24 02:12:44 UTC (rev 87749)
@@ -88,15 +88,6 @@
/**
* Constant that holds the name of the environment property
- * for specifying the directory which JBoss will use for
- * persistent data file storage.
- *
- * <p>Defaults to <tt><em>SERVER_HOME_DIR</em>/data</tt>.
- */
- String PROP_KEY_JBOSSAS_SERVER_DATA_DIR = "jboss.server.data.dir";
-
- /**
- * Constant that holds the name of the environment property
* for specifying a library directory URL that points to libraries
* shared by the various server configurations.
*
@@ -153,11 +144,6 @@
/////////////////////////////////////////////////////////////////////////
/**
- * The suffix used when generating the default value for {@link #PROP_KEY_JBOSSAS_SERVER_DATA_DIR}.
- */
- String DEFAULT_VALUE_SERVER_DATA_DIR_SUFFIX = "data";
-
- /**
* The suffix used when generating the default value for {@link #PROP_KEY_JBOSSAS_SERVER_TEMP_DIR}.
*/
String DEFAULT_VALUE_SERVER_TEMP_DIR_SUFFIX = "tmp";
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-04-24 01:34:19 UTC (rev 87748)
+++ projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/server/JBossASServerInitializer.java 2009-04-24 02:12:44 UTC (rev 87749)
@@ -99,6 +99,7 @@
final String serverLogDir = this.getAbsoluteLocationOfUrl(configuration.getServerLogLocation());
final URL serverConfDir = configuration.getServerConfLocation();
final URL serverLibDir = configuration.getServerLibLocation();
+ final String serverDataDir = this.getAbsoluteLocationOfUrl(configuration.getServerDataLocation());
// Set our system properties
this.setSystemProperty(JBossASServerConfig.PROP_KEY_JBOSSAS_HOME, jbossHomeDir);
@@ -115,6 +116,7 @@
this.setSystemProperty(JBossASServerConfig.PROP_KEY_JBOSSAS_SERVER_LOG_DIR, serverLogDir);
this.setSystemProperty(JBossASServerConfig.PROP_KEY_JBOSSAS_SERVER_CONF_URL, serverConfDir);
this.setSystemProperty(JBossASServerConfig.PROP_KEY_JBOSSAS_SERVER_LIBRARY_URL, serverLibDir);
+ this.setSystemProperty(JBossASServerConfig.PROP_KEY_JBOSSAS_SERVER_DATA_DIR, serverDataDir);
}
//-------------------------------------------------------------------------------||
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-04-24 01:34:19 UTC (rev 87748)
+++ projects/bootstrap/trunk/impl-as/src/test/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationInitializationTestCase.java 2009-04-24 02:12:44 UTC (rev 87749)
@@ -276,7 +276,7 @@
}
/**
- * Ensures that the server log location defaults to $JBOSS_HOME/server/$serverName/conf
+ * Ensures that the server conf location defaults to $JBOSS_HOME/server/$serverName/conf
* @throws Throwable
*/
@Test
@@ -319,6 +319,28 @@
log.info("Got expected: " + expected);
}
+ /**
+ * Ensures that the server data location defaults to $JBOSS_HOME/server/$serverName/data
+ * @throws Throwable
+ */
+ @Test
+ public void testServerDataDefault() throws Throwable
+ {
+ // Log
+ log.info("testServerDataDefault");
+
+ // Get out server base location
+ final String actual = config.getServerDataLocation().toExternalForm();
+
+ // Get expected value
+ final String expected = this.getServerHomeLocation()
+ + JBossASConfigurationInitializer.DEFAULT_VALUE_SERVER_DATA_DIR_SUFFIX;
+
+ // Test
+ TestCase.assertEquals("Server data location 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/JBossASConfigurationValidationTestCase.java
===================================================================
--- projects/bootstrap/trunk/impl-as/src/test/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationValidationTestCase.java 2009-04-24 01:34:19 UTC (rev 87748)
+++ projects/bootstrap/trunk/impl-as/src/test/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationValidationTestCase.java 2009-04-24 02:12:44 UTC (rev 87749)
@@ -349,6 +349,23 @@
this.assertMissingValueFails(config, "server lib location");
}
+ /**
+ * Ensures that an empty/null Server Data location fails
+ */
+ @Test
+ public void testNoServerDataLocationFails()
+ {
+ // Log
+ log.info("testNoServerDataLocationFails");
+
+ // Get config and clear out
+ final JBossASServerConfig config = this.config;
+ config.serverDataLocation((URL) null);
+
+ // Test
+ this.assertMissingValueFails(config, "server data location");
+ }
+
//-------------------------------------------------------------------------------||
// Internal Helper Methods ------------------------------------------------------||
//-------------------------------------------------------------------------------||
@@ -404,12 +421,13 @@
final String serverLog = serverHome + JBossASConfigurationInitializer.DEFAULT_VALUE_LIBRARY_URL_SUFFIX;
final String serverConfig = serverHome + JBossASConfigurationInitializer.DEFAULT_VALUE_SERVER_CONFIG_URL_SUFFIX;
final String serverLib = serverHome + JBossASConfigurationInitializer.DEFAULT_VALUE_LIBRARY_URL_SUFFIX;
+ final String serverData = serverHome + JBossASConfigurationInitializer.DEFAULT_VALUE_SERVER_DATA_DIR_SUFFIX;
// Populate
config.jbossHome(jbossHome).bootstrapHome(bootstrapHome).bootstrapName(bootstrapName).bindAddress(bindAddress)
.serverName(serverName).bootLibraryLocation(bootLib).serverBaseLocation(serverBase).serverHomeLocation(
serverHome).commonBaseLocation(commonBase).serverLogLocation(serverLog).serverConfLocation(
- serverConfig).serverLibLocation(serverLib);
+ serverConfig).serverLibLocation(serverLib).serverDataLocation(serverData);
// 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-04-24 01:34:19 UTC (rev 87748)
+++ projects/bootstrap/trunk/impl-as/src/test/java/org/jboss/bootstrap/impl/as/server/JBossASServerInitializationTestCase.java 2009-04-24 02:12:44 UTC (rev 87749)
@@ -130,6 +130,7 @@
final String serverLogDirPropKey = JBossASServerConfig.PROP_KEY_JBOSSAS_SERVER_LOG_DIR;
final String serverConfUrlPropKey = JBossASServerConfig.PROP_KEY_JBOSSAS_SERVER_CONF_URL;
final String serverLibUrlPropKey = JBossASServerConfig.PROP_KEY_JBOSSAS_SERVER_LIBRARY_URL;
+ final String serverDataDirPropKey = JBossASServerConfig.PROP_KEY_JBOSSAS_SERVER_DATA_DIR;
// Get Properties from Configuration
final Map<String, String> properties = configuration.getProperties();
@@ -147,6 +148,7 @@
final String serverLogDirFromConfProp = properties.get(serverLogDirPropKey);
final String serverConfUrlFromConfProp = properties.get(serverConfUrlPropKey);
final String serverLibUrlFromConfProp = properties.get(serverLibUrlPropKey);
+ final String serverDataDirFromConfProp = properties.get(serverDataDirPropKey);
// Get Properties from System
final String jbossHomeFromSystem = System.getProperty(jbossHomePropKey);
@@ -163,6 +165,7 @@
final String serverLogDirFromSystem = System.getProperty(serverLogDirPropKey);
final String serverConfUrlFromSystem = System.getProperty(serverConfUrlPropKey);
final String serverLibUrlFromSystem = System.getProperty(serverLibUrlPropKey);
+ final String serverDataDirFromSystem = System.getProperty(serverDataDirPropKey);
// Get Expected Values
final URL jbossHomeFromConf = configuration.getJBossHome();
@@ -186,6 +189,9 @@
final String serverLogDirFromConf = serverLogFile.getAbsolutePath();
final String serverConfUrlFromConf = configuration.getServerConfLocation().toExternalForm();
final String serverLibUrlFromConf = configuration.getServerLibLocation().toExternalForm();
+ final URL serverDataFromConf = configuration.getServerDataLocation();
+ final File serverDataFile = new File(serverDataFromConf.toURI());
+ final String serverDataDirFromConf = serverDataFile.getAbsolutePath();
// Ensure all equal
TestCase.assertEquals("JBoss Home in configuration must match the config property", jbossHomeDirFromConf,
@@ -244,6 +250,10 @@
serverLibUrlFromConfProp);
TestCase.assertEquals("Server Lib URL in configuration must match the system property", serverLibUrlFromConf,
serverLibUrlFromSystem);
+ TestCase.assertEquals("Server Data Dir in configuration must match the config property", serverDataDirFromConf,
+ serverDataDirFromConfProp);
+ TestCase.assertEquals("Server Data Dir in configuration must match the system property", serverDataDirFromConf,
+ serverDataDirFromSystem);
// Cleanup
server.shutdown();
@@ -263,6 +273,7 @@
final String serverLogDirFromSystemAfterCleanup = System.getProperty(serverLogDirPropKey);
final String serverConfUrlFromSystemAfterCleanup = System.getProperty(serverConfUrlPropKey);
final String serverLibUrlFromSystemAfterCleanup = System.getProperty(serverLibUrlPropKey);
+ final String serverDataDirFromSystemAfterCleanup = System.getProperty(serverDataDirPropKey);
// Ensure all null
final String failMessage = "System property should be null after cleanup";
@@ -280,5 +291,6 @@
TestCase.assertNull(failMessage, serverLogDirFromSystemAfterCleanup);
TestCase.assertNull(failMessage, serverConfUrlFromSystemAfterCleanup);
TestCase.assertNull(failMessage, serverLibUrlFromSystemAfterCleanup);
+ TestCase.assertNull(failMessage, serverDataDirFromSystemAfterCleanup);
}
}
More information about the jboss-cvs-commits
mailing list