[jboss-cvs] JBossAS SVN: r87750 - 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:27:04 EDT 2009


Author: ALRubinger
Date: 2009-04-23 22:27:04 -0400 (Thu, 23 Apr 2009)
New Revision: 87750

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.tmp.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 02:12:44 UTC (rev 87749)
+++ projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/BasicJBossASServerConfig.java	2009-04-24 02:27:04 UTC (rev 87750)
@@ -109,6 +109,11 @@
     */
    private URL serverDataLocation;
 
+   /**
+    * Location in which the server temp data resides
+    */
+   private URL serverTempLocation;
+
    //-------------------------------------------------------------------------------||
    // Constructor ------------------------------------------------------------------||
    //-------------------------------------------------------------------------------||
@@ -655,6 +660,73 @@
       return this.covarientReturn();
    }
 
+   /* (non-Javadoc)
+    * @see org.jboss.bootstrap.impl.as.config.JBossASServerConfig#getServerTempLocation()
+    */
+   public URL getServerTempLocation()
+   {
+      return this.serverTempLocation;
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.bootstrap.impl.as.config.JBossASServerConfig#serverTempLocation(java.lang.String)
+    */
+   public JBossASServerConfig serverTempLocation(String serverTempLocation) throws IllegalArgumentException
+   {
+      // If null, just pass along
+      if (serverTempLocation == null)
+      {
+         return this.serverTempLocation((URL) null);
+      }
+
+      // Convert this String into a URL via File
+      final File file = new File(serverTempLocation);
+      URL url = null;
+      try
+      {
+         url = file.toURI().toURL();
+      }
+      catch (MalformedURLException e)
+      {
+         throw new IllegalArgumentException("Cannot construct URL given: " + serverTempLocation, e);
+      }
+
+      // Return
+      return this.serverTempLocation(url);
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.bootstrap.impl.as.config.JBossASServerConfig#serverTempLocation(java.net.URL)
+    */
+   public JBossASServerConfig serverTempLocation(URL serverTempLocation)
+   {
+      // Set
+      this.serverTempLocation = serverTempLocation;
+
+      // Get the absolute path
+      String location = null;
+      if (serverTempLocation != null)
+      {
+         URI uri = null;
+         try
+         {
+            uri = serverTempLocation.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_TEMP_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 02:12:44 UTC (rev 87749)
+++ projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationInitializer.java	2009-04-24 02:27:04 UTC (rev 87750)
@@ -100,4 +100,10 @@
     * {@link JBossASServerConfig#PROP_KEY_JBOSSAS_SERVER_DATA_DIR}.
     */
    String DEFAULT_VALUE_SERVER_DATA_DIR_SUFFIX = "data/";
+
+   /**
+    * The suffix used when generating the default value for 
+    * {@link JBossASServerConfig#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/config/JBossASConfigurationInitializerImpl.java
===================================================================
--- 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)
+++ projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationInitializerImpl.java	2009-04-24 02:27:04 UTC (rev 87750)
@@ -169,7 +169,7 @@
       resolvedServerLibLocation = this.adjustToTrailingSlash(resolvedServerLibLocation);
       config.serverLibLocation(resolvedServerLibLocation);
 
-      // ${jboss.server.Data.dir}
+      // ${jboss.server.data.dir}
       final URL serverDataLocation = config.getServerDataLocation();
       final String serverDataDefault = resolvedServerHomeLocation
             + JBossASConfigurationInitializer.DEFAULT_VALUE_SERVER_DATA_DIR_SUFFIX;
@@ -180,6 +180,17 @@
       resolvedServerDataLocation = this.adjustToTrailingSlash(resolvedServerDataLocation);
       config.serverDataLocation(resolvedServerDataLocation);
 
+      // ${jboss.server.tmp.dir}
+      final URL serverTempLocation = config.getServerTempLocation();
+      final String serverTempDefault = resolvedServerHomeLocation
+            + JBossASConfigurationInitializer.DEFAULT_VALUE_SERVER_TEMP_DIR_SUFFIX;
+      final String currentServerTempLocation = serverTempLocation != null ? serverTempLocation.toExternalForm() : null;
+      String resolvedServerTempLocation = this.resolvePropertyValue(
+            JBossASServerConfig.PROP_KEY_JBOSSAS_SERVER_TEMP_DIR, currentServerTempLocation, serverTempDefault,
+            configProps);
+      resolvedServerTempLocation = this.adjustToTrailingSlash(resolvedServerTempLocation);
+      config.serverTempLocation(resolvedServerTempLocation);
+
    }
 
    //-------------------------------------------------------------------------------||

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 02:12:44 UTC (rev 87749)
+++ projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationValidator.java	2009-04-24 02:27:04 UTC (rev 87750)
@@ -95,6 +95,8 @@
       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);
+      // jboss.server.tmp.dir
+      this.require(config.getServerTempLocation(), JBossASServerConfig.PROP_KEY_JBOSSAS_SERVER_TEMP_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 02:12:44 UTC (rev 87749)
+++ projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/JBossASServerConfig.java	2009-04-24 02:27:04 UTC (rev 87750)
@@ -145,6 +145,13 @@
     */
    String PROP_KEY_JBOSSAS_SERVER_DATA_DIR = "jboss.server.data.dir";
 
+   /**
+    * Constant that holds the name of the system property
+    * for specifying the directory which JBoss will use for
+    * temporary file storage.
+    */
+   String PROP_KEY_JBOSSAS_SERVER_TEMP_DIR = "jboss.server.temp.dir";
+
    //-------------------------------------------------------------------------------||
    // Contracts --------------------------------------------------------------------||
    //-------------------------------------------------------------------------------||
@@ -415,4 +422,29 @@
     *    is non-null and cannot be constructed into a URL
     */
    JBossASServerConfig serverDataLocation(String serverDataLocation) throws IllegalArgumentException;
+
+   /**
+    * Obtains the location in which the server temp data resides
+    * 
+    * @return
+    */
+   URL getServerTempLocation();
+
+   /**
+    * Sets the location in which the server temp data resides
+    * 
+    * @param serverTempLocation
+    * @return
+    */
+   JBossASServerConfig serverTempLocation(URL serverTempLocation);
+
+   /**
+    * Sets the location in which the server temp data resides
+    * 
+    * @param serverTempLocation
+    * @return
+    * @throws IllegalArgumentException If the specified argument 
+    *    is non-null and cannot be constructed into a URL
+    */
+   JBossASServerConfig serverTempLocation(String serverTempLocation) 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 02:12:44 UTC (rev 87749)
+++ projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/JBossASServerConfigLegacy.java	2009-04-24 02:27:04 UTC (rev 87750)
@@ -79,15 +79,6 @@
 
    /**
     * Constant that holds the name of the environment property
-    * for specifying the directory which JBoss will use for
-    * temporary file storage.
-    *
-    * <p>Defaults to <tt><em>SERVER_HOME_DIR</em>/tmp</tt> .
-    */
-   String PROP_KEY_JBOSSAS_SERVER_TEMP_DIR = "jboss.server.temp.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.
     * 
@@ -139,13 +130,4 @@
     */
    String PLATFORM_MBEANSERVER = "jboss.platform.mbeanserver";
 
-   /////////////////////////////////////////////////////////////////////////
-   //                            Path Suffixes                            //
-   /////////////////////////////////////////////////////////////////////////
-
-   /**
-    * 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 02:12:44 UTC (rev 87749)
+++ projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/server/JBossASServerInitializer.java	2009-04-24 02:27:04 UTC (rev 87750)
@@ -100,6 +100,7 @@
       final URL serverConfDir = configuration.getServerConfLocation();
       final URL serverLibDir = configuration.getServerLibLocation();
       final String serverDataDir = this.getAbsoluteLocationOfUrl(configuration.getServerDataLocation());
+      final String serverTempDir = this.getAbsoluteLocationOfUrl(configuration.getServerTempLocation());
 
       // Set our system properties
       this.setSystemProperty(JBossASServerConfig.PROP_KEY_JBOSSAS_HOME, jbossHomeDir);
@@ -117,6 +118,7 @@
       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);
+      this.setSystemProperty(JBossASServerConfig.PROP_KEY_JBOSSAS_SERVER_TEMP_DIR, serverTempDir);
    }
 
    //-------------------------------------------------------------------------------||

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 02:12:44 UTC (rev 87749)
+++ projects/bootstrap/trunk/impl-as/src/test/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationInitializationTestCase.java	2009-04-24 02:27:04 UTC (rev 87750)
@@ -341,6 +341,28 @@
       log.info("Got expected: " + expected);
    }
 
+   /**
+    * Ensures that the server temp location defaults to $JBOSS_HOME/server/$serverName/tmp
+    * @throws Throwable
+    */
+   @Test
+   public void testServerTempDefault() throws Throwable
+   {
+      // Log
+      log.info("testServerTempDefault");
+
+      // Get out server base location
+      final String actual = config.getServerTempLocation().toExternalForm();
+
+      // Get expected value
+      final String expected = this.getServerHomeLocation()
+            + JBossASConfigurationInitializer.DEFAULT_VALUE_SERVER_TEMP_DIR_SUFFIX;
+
+      // Test
+      TestCase.assertEquals("Server temp 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 02:12:44 UTC (rev 87749)
+++ projects/bootstrap/trunk/impl-as/src/test/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationValidationTestCase.java	2009-04-24 02:27:04 UTC (rev 87750)
@@ -366,6 +366,23 @@
       this.assertMissingValueFails(config, "server data location");
    }
 
+   /**
+    * Ensures that an empty/null Server Temp location fails
+    */
+   @Test
+   public void testNoServerTempLocationFails()
+   {
+      // Log
+      log.info("testNoServerTempLocationFails");
+
+      // Get config and clear out
+      final JBossASServerConfig config = this.config;
+      config.serverTempLocation((URL) null);
+
+      // Test
+      this.assertMissingValueFails(config, "server temp location");
+   }
+
    //-------------------------------------------------------------------------------||
    // Internal Helper Methods ------------------------------------------------------||
    //-------------------------------------------------------------------------------||
@@ -422,12 +439,14 @@
       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;
+      final String serverTemp = serverHome + JBossASConfigurationInitializer.DEFAULT_VALUE_SERVER_TEMP_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).serverDataLocation(serverData);
+                  serverConfig).serverLibLocation(serverLib).serverDataLocation(serverData).serverTempLocation(
+                  serverTemp);
 
       // 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 02:12:44 UTC (rev 87749)
+++ projects/bootstrap/trunk/impl-as/src/test/java/org/jboss/bootstrap/impl/as/server/JBossASServerInitializationTestCase.java	2009-04-24 02:27:04 UTC (rev 87750)
@@ -131,6 +131,7 @@
       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;
+      final String serverTempDirPropKey = JBossASServerConfig.PROP_KEY_JBOSSAS_SERVER_TEMP_DIR;
 
       // Get Properties from Configuration
       final Map<String, String> properties = configuration.getProperties();
@@ -149,6 +150,7 @@
       final String serverConfUrlFromConfProp = properties.get(serverConfUrlPropKey);
       final String serverLibUrlFromConfProp = properties.get(serverLibUrlPropKey);
       final String serverDataDirFromConfProp = properties.get(serverDataDirPropKey);
+      final String serverTempDirFromConfProp = properties.get(serverTempDirPropKey);
 
       // Get Properties from System
       final String jbossHomeFromSystem = System.getProperty(jbossHomePropKey);
@@ -166,6 +168,7 @@
       final String serverConfUrlFromSystem = System.getProperty(serverConfUrlPropKey);
       final String serverLibUrlFromSystem = System.getProperty(serverLibUrlPropKey);
       final String serverDataDirFromSystem = System.getProperty(serverDataDirPropKey);
+      final String serverTempDirFromSystem = System.getProperty(serverTempDirPropKey);
 
       // Get Expected Values
       final URL jbossHomeFromConf = configuration.getJBossHome();
@@ -192,6 +195,9 @@
       final URL serverDataFromConf = configuration.getServerDataLocation();
       final File serverDataFile = new File(serverDataFromConf.toURI());
       final String serverDataDirFromConf = serverDataFile.getAbsolutePath();
+      final URL serverTempFromConf = configuration.getServerTempLocation();
+      final File serverTempFile = new File(serverTempFromConf.toURI());
+      final String serverTempDirFromConf = serverTempFile.getAbsolutePath();
 
       // Ensure all equal
       TestCase.assertEquals("JBoss Home in configuration must match the config property", jbossHomeDirFromConf,
@@ -254,6 +260,10 @@
             serverDataDirFromConfProp);
       TestCase.assertEquals("Server Data Dir in configuration must match the system property", serverDataDirFromConf,
             serverDataDirFromSystem);
+      TestCase.assertEquals("Server Temp Dir in configuration must match the config property", serverTempDirFromConf,
+            serverTempDirFromConfProp);
+      TestCase.assertEquals("Server Temp Dir in configuration must match the system property", serverTempDirFromConf,
+            serverTempDirFromSystem);
 
       // Cleanup
       server.shutdown();
@@ -274,6 +284,7 @@
       final String serverConfUrlFromSystemAfterCleanup = System.getProperty(serverConfUrlPropKey);
       final String serverLibUrlFromSystemAfterCleanup = System.getProperty(serverLibUrlPropKey);
       final String serverDataDirFromSystemAfterCleanup = System.getProperty(serverDataDirPropKey);
+      final String serverTempDirFromSystemAfterCleanup = System.getProperty(serverTempDirPropKey);
 
       // Ensure all null
       final String failMessage = "System property should be null after cleanup";
@@ -292,5 +303,6 @@
       TestCase.assertNull(failMessage, serverConfUrlFromSystemAfterCleanup);
       TestCase.assertNull(failMessage, serverLibUrlFromSystemAfterCleanup);
       TestCase.assertNull(failMessage, serverDataDirFromSystemAfterCleanup);
+      TestCase.assertNull(failMessage, serverTempDirFromSystemAfterCleanup);
    }
 }




More information about the jboss-cvs-commits mailing list