[jboss-cvs] JBossAS SVN: r88133 - in projects/bootstrap/trunk/impl-as/src: main/java/org/jboss/bootstrap/impl/as/server and 4 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon May 4 01:08:53 EDT 2009


Author: ALRubinger
Date: 2009-05-04 01:08:53 -0400 (Mon, 04 May 2009)
New Revision: 88133

Added:
   projects/bootstrap/trunk/impl-as/src/test/resources/jbossas/server/default/tmp/native/
   projects/bootstrap/trunk/impl-as/src/test/resources/jbossas/server/default/tmp/native/EMPTY
Removed:
   projects/bootstrap/trunk/impl-as/src/test/resources/jbossas/server/default/tmp/EMPTY
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/JBossASServerImpl.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
Log:
[JBBOOT-31] Configuration, overrides, and tests for "jboss.native.lib"

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-04 03:58:54 UTC (rev 88132)
+++ projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/BasicJBossASServerConfig.java	2009-05-04 05:08:53 UTC (rev 88133)
@@ -184,6 +184,14 @@
     */
    private volatile Boolean loadNative;
 
+   /**
+    * The AS Native Library Location (where
+    * native libs are unpacked).
+    * Synchronized on "this".   Must
+    * not be exported (so copy on return).
+    */
+   private URL nativeLibraryLocation;
+
    //-------------------------------------------------------------------------------||
    // Constructor ------------------------------------------------------------------||
    //-------------------------------------------------------------------------------||
@@ -887,12 +895,74 @@
       this.loadNative = loadNative;
 
       // Set property
-      this.setPropertyForString(PROP_KEY_JBOSSAS_NATIVE_LOAD_PROPERTY, loadNative);
+      this.setPropertyForString(PROP_KEY_JBOSSAS_NATIVE_LOAD, loadNative);
 
       // Return
       return this.covarientReturn();
    }
 
+   /* (non-Javadoc)
+    * @see org.jboss.bootstrap.impl.as.config.JBossASServerConfig#getNativeLibraryLocation()
+    */
+   public URL getNativeLibraryLocation()
+   {
+      URL url = null;
+      synchronized (this)
+      {
+         url = this.nativeLibraryLocation;
+      }
+      return this.copyURL(url);
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.bootstrap.impl.as.config.JBossASServerConfig#nativeLibraryLocation(java.lang.String)
+    */
+   public JBossASServerConfig nativeLibraryLocation(final String nativeLibraryLocation) throws IllegalArgumentException
+   {
+      // If null, just pass along
+      if (nativeLibraryLocation == null)
+      {
+         return this.nativeLibraryLocation((URL) null);
+      }
+
+      // Convert this String into a URL via File
+      final URL url = this.getUrlFromString(nativeLibraryLocation);
+
+      // Return
+      return this.nativeLibraryLocation(url);
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.bootstrap.impl.as.config.JBossASServerConfig#nativeLibraryLocation(java.net.URL)
+    */
+   public synchronized JBossASServerConfig nativeLibraryLocation(final URL nativeLibraryLocation)
+   {
+      // Set
+      this.nativeLibraryLocation = nativeLibraryLocation;
+
+      // Get the absolute path
+      String location = null;
+      if (nativeLibraryLocation != null)
+      {
+         URI uri = null;
+         try
+         {
+            uri = nativeLibraryLocation.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_NATIVE_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-05-04 03:58:54 UTC (rev 88132)
+++ projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationInitializer.java	2009-05-04 05:08:53 UTC (rev 88133)
@@ -115,7 +115,14 @@
 
    /**
     * The default value for
-    * {@link JBossASServerConfig#PROP_KEY_JBOSSAS_NATIVE_LOAD_PROPERTY}
+    * {@link JBossASServerConfig#PROP_KEY_JBOSSAS_NATIVE_LOAD}
     */
    Boolean DEFAULT_VALUE_NATIVE_LOAD = true;
+
+   /**
+    * The default suffix used to construct native libaray
+    * locations, relative to the Server Temp Home
+    * (eg. $JBOSS_HOME/server/[serverName]/tmp/native/)
+    */
+   String DEFAULT_VALUE_NATIVE_DIR_SUFFIX = "native/";
 }

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-04 03:58:54 UTC (rev 88132)
+++ projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationInitializerImpl.java	2009-05-04 05:08:53 UTC (rev 88133)
@@ -244,15 +244,24 @@
       // ${jboss.native.load}
       final Boolean loadNative = config.isLoadNative();
       final String loadNativeString = loadNative != null ? loadNative.toString() : null;
-      final String loadNativeResolved = this.resolvePropertyValue(
-            JBossASServerConfig.PROP_KEY_JBOSSAS_NATIVE_LOAD_PROPERTY, loadNativeString,
-            JBossASConfigurationInitializer.DEFAULT_VALUE_NATIVE_LOAD.toString(), configProps);
+      final String loadNativeResolved = this.resolvePropertyValue(JBossASServerConfig.PROP_KEY_JBOSSAS_NATIVE_LOAD,
+            loadNativeString, JBossASConfigurationInitializer.DEFAULT_VALUE_NATIVE_LOAD.toString(), configProps);
       if (loadNativeResolved != null)
       {
          final boolean loadNativeOverride = Boolean.parseBoolean(loadNativeResolved);
          config.loadNative(loadNativeOverride);
       }
 
+      // ${jboss.native.dir}
+      final URL nativeLibLocation = config.getNativeLibraryLocation();
+      final String nativeLibDefault = resolvedServerTempLocation
+            + JBossASConfigurationInitializer.DEFAULT_VALUE_NATIVE_DIR_SUFFIX;
+      final String currentNativeLibLocation = nativeLibLocation != null ? nativeLibLocation.toExternalForm() : null;
+      String resolvedNativeLibLocation = this.resolvePropertyValue(JBossASServerConfig.PROP_KEY_JBOSSAS_NATIVE_DIR,
+            currentNativeLibLocation, nativeLibDefault, configProps);
+      resolvedNativeLibLocation = this.adjustToTrailingSlash(resolvedNativeLibLocation);
+      config.nativeLibraryLocation(resolvedNativeLibLocation);
+
    }
 
    //-------------------------------------------------------------------------------||

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-04 03:58:54 UTC (rev 88132)
+++ projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationValidator.java	2009-05-04 05:08:53 UTC (rev 88133)
@@ -102,7 +102,9 @@
       // jboss.partition.name
       this.require(config.getPartitionName(), JBossASServerConfig.PROP_KEY_JBOSSAS_PARTITION_NAME);
       // jboss.native.load
-      this.require(config.isLoadNative(), JBossASServerConfig.PROP_KEY_JBOSSAS_NATIVE_LOAD_PROPERTY);
+      this.require(config.isLoadNative(), JBossASServerConfig.PROP_KEY_JBOSSAS_NATIVE_LOAD);
+      // jboss.native.load
+      this.require(config.getNativeLibraryLocation(), JBossASServerConfig.PROP_KEY_JBOSSAS_NATIVE_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-05-04 03:58:54 UTC (rev 88132)
+++ projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/JBossASServerConfig.java	2009-05-04 05:08:53 UTC (rev 88133)
@@ -181,8 +181,13 @@
     * Constant that holds the name of the system property
     * designating whether to load native libraries
     */
-   String PROP_KEY_JBOSSAS_NATIVE_LOAD_PROPERTY = "jboss.native.load";
+   String PROP_KEY_JBOSSAS_NATIVE_LOAD = "jboss.native.load";
 
+   /** 
+    * Constant that holds the location of native libraries 
+    */
+   String PROP_KEY_JBOSSAS_NATIVE_DIR = "jboss.native.dir";
+
    //-------------------------------------------------------------------------------||
    // Contracts --------------------------------------------------------------------||
    //-------------------------------------------------------------------------------||
@@ -566,4 +571,32 @@
     */
    JBossASServerConfig loadNative(Boolean loadNative);
 
+   /**
+    * Obtains the location of the JBossAS
+    * Native Libraries
+    * 
+    * @return
+    */
+   URL getNativeLibraryLocation();
+
+   /**
+    * Sets the location of the JBossAS
+    * Native Libraries
+    * 
+    * @param nativeLibraryLocation
+    * @return
+    */
+   JBossASServerConfig nativeLibraryLocation(URL nativeLibraryLocation);
+
+   /**
+    * Sets the location of the JBossAS
+    * Native Libraries
+    * 
+    * @param nativeLibraryLocation
+    * @return
+    * @throws IllegalArgumentException If the specified argument 
+    *    is non-null and cannot be constructed into a URL
+    */
+   JBossASServerConfig nativeLibraryLocation(String nativeLibraryLocation) 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-05-04 03:58:54 UTC (rev 88132)
+++ projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/config/JBossASServerConfigLegacy.java	2009-05-04 05:08:53 UTC (rev 88133)
@@ -47,9 +47,6 @@
     * STUFF BELOW HERE has not been addressed/documented/reintegrated
     */
 
-   /** The location of native libraries property */
-   String PROP_KEY_JBOSSAS_NATIVE_DIR_PROPERTY = "jboss.native.dir";
-
    /**
     * Constant that holds the name of the environment property
     * for specifying the URL where JBoss will read patch library files

Modified: projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/server/JBossASServerImpl.java
===================================================================
--- projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/server/JBossASServerImpl.java	2009-05-04 03:58:54 UTC (rev 88132)
+++ projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/server/JBossASServerImpl.java	2009-05-04 05:08:53 UTC (rev 88133)
@@ -89,9 +89,10 @@
    private final Version version = Version.getInstance();
 
    /**
-    * The date in which the server was started
+    * The date in which the server was started.  Synchronized on "this", 
+    * volatile as it's exported and we don't want to block on it.
     */
-   private Date startDate;
+   private volatile Date startDate;
 
    //-------------------------------------------------------------------------------||
    // Constructors -----------------------------------------------------------------||
@@ -233,29 +234,14 @@
    //-------------------------------------------------------------------------------||
    // Overridden Implementations ---------------------------------------------------||
    //-------------------------------------------------------------------------------||
+
    /*
     * 
+    * EVERYTHING BELOW THIS LINE IS TODO to either be approved
+    * as-is or needs some more work.
     * 
+    * Likely we'll need some more @ManagementProperty annotations?
     * 
-    * 
-    * 
-    * 
-    * 
-    * 
-    * 
-    * 
-    * EVERYTHING BELOW THIS LINE IS TODO
-    * 
-    * 
-    * 
-    * 
-    * 
-    * 
-    * 
-    * 
-    * 
-    * 
-    * 
     */
 
    /* (non-Javadoc)
@@ -289,13 +275,6 @@
    {
       // Call Super
       super.start();
-
-      //TODO
-      //      // Send a notification that the startup is complete
-      //      KernelEventManager eventMgr = this.getKernel().getEventManager();
-      //      KernelEvent startEvent = new AbstractEvent(eventMgr, START_NOTIFICATION_TYPE, 0, System.currentTimeMillis(),
-      //            new Long(watch.getLapTime()));
-      //      eventMgr.fireKernelEvent(startEvent);
    }
 
 }

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-04 03:58:54 UTC (rev 88132)
+++ projects/bootstrap/trunk/impl-as/src/main/java/org/jboss/bootstrap/impl/as/server/JBossASServerInitializer.java	2009-05-04 05:08:53 UTC (rev 88133)
@@ -106,6 +106,7 @@
       final String udpGroup = configuration.getUdpGroup();
       final Integer udpPort = configuration.getUdpPort();
       final Boolean loadNative = configuration.isLoadNative();
+      final String nativeLibLocation = this.getAbsoluteLocationOfUrl(configuration.getNativeLibraryLocation());
 
       // Set our system properties
       this.setSystemProperty(JBossASServerConfig.PROP_KEY_JBOSSAS_HOME, jbossHomeDir);
@@ -128,7 +129,8 @@
       this.setSystemProperty(JBossASServerConfig.PROP_KEY_JBOSSAS_PARTITION_NAME, partitionName);
       this.setSystemProperty(JBossASServerConfig.PROP_KEY_JBOSSAS_PARTITION_UDP_GROUP, udpGroup);
       this.setSystemProperty(JBossASServerConfig.PROP_KEY_JBOSSAS_PARTITION_UDP_PORT, udpPort);
-      this.setSystemProperty(JBossASServerConfig.PROP_KEY_JBOSSAS_NATIVE_LOAD_PROPERTY, loadNative);
+      this.setSystemProperty(JBossASServerConfig.PROP_KEY_JBOSSAS_NATIVE_LOAD, loadNative);
+      this.setSystemProperty(JBossASServerConfig.PROP_KEY_JBOSSAS_NATIVE_DIR, nativeLibLocation);
    }
 
    //-------------------------------------------------------------------------------||

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-04 03:58:54 UTC (rev 88132)
+++ projects/bootstrap/trunk/impl-as/src/test/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationInitializationTestCase.java	2009-05-04 05:08:53 UTC (rev 88133)
@@ -478,6 +478,30 @@
       log.info("Got expected: " + expected);
    }
 
+   /**
+    * Ensures that the default Native Library location is set to:
+    * $JBOSS_HOME/server/$serverName/tmp/native
+    * 
+    * @throws Throwable
+    */
+   @Test
+   public void testNativeLibLocationDefault() throws Throwable
+   {
+      // Log
+      log.info("testNativeLibLocationDefault");
+
+      // Get out the URL
+      final String actual = config.getNativeLibraryLocation().toExternalForm();
+
+      // Get expected value
+      final String expected = this.getServerTempLocation()
+            + JBossASConfigurationInitializer.DEFAULT_VALUE_NATIVE_DIR_SUFFIX;
+
+      // Test 
+      TestCase.assertEquals("Native Lib URL for AS was not defaulted as expected", expected, actual);
+      log.info("Got expected: " + expected);
+   }
+
    //-------------------------------------------------------------------------------||
    // Internal Helper Methods ------------------------------------------------------||
    //-------------------------------------------------------------------------------||
@@ -491,6 +515,19 @@
             + JBossASConfigurationInitializer.DEFAULT_VALUE_SERVER_NAME + TRAILING_SLASH;
    }
 
+   /**
+    * Obtains the server temp location
+    * @return
+    */
+   private String getServerTempLocation()
+   {
+      return this.getServerHomeLocation() + JBossASConfigurationInitializer.DEFAULT_VALUE_SERVER_TEMP_DIR_SUFFIX;
+   }
+
+   /**
+    * Obtains the bootstrap home location
+    * @return
+    */
    private String getBootstrapHome()
    {
       return this.getServerHomeLocation() + JBossASConfigurationInitializer.DEFAULT_VALUE_SERVER_CONFIG_URL_SUFFIX;

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-04 03:58:54 UTC (rev 88132)
+++ projects/bootstrap/trunk/impl-as/src/test/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationPropertyOverrideTestCase.java	2009-05-04 05:08:53 UTC (rev 88133)
@@ -621,7 +621,7 @@
 
       // Set override property
       final String override = BOOLEAN_OVERRIDE.toString();
-      config.property(JBossASServerConfig.PROP_KEY_JBOSSAS_NATIVE_LOAD_PROPERTY, override);
+      config.property(JBossASServerConfig.PROP_KEY_JBOSSAS_NATIVE_LOAD, override);
 
       // Initialize
       initializer.initialize(config);
@@ -631,4 +631,31 @@
       log.info("Got expected: " + override);
    }
 
+   /**
+    * Ensures that the Native Library Location may be overridden from
+    * the corresponding property
+    */
+   @Test
+   public void testNativeLibLocationPropOverride() throws Throwable
+   {
+      // Log
+      log.info("testNativeLibLocationPropOverride");
+
+      // Get the config
+      final JBossASServerConfig config = this.config;
+
+      // Explicitly set
+      config.serverConfLocation(URL_EXPLICIT_SETTING);
+
+      // Set override property
+      config.property(JBossASServerConfig.PROP_KEY_JBOSSAS_NATIVE_DIR, URL_OVERRIDE);
+
+      // Initialize
+      initializer.initialize(config);
+
+      // Test
+      TestCase.assertEquals(FAIL_MESSAGE, URL_OVERRIDE, config.getNativeLibraryLocation().toExternalForm());
+      log.info("Got expected: " + URL_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-04 03:58:54 UTC (rev 88132)
+++ projects/bootstrap/trunk/impl-as/src/test/java/org/jboss/bootstrap/impl/as/config/JBossASConfigurationValidationTestCase.java	2009-05-04 05:08:53 UTC (rev 88133)
@@ -433,6 +433,23 @@
       this.assertMissingValueFails(config, "load native");
    }
 
+   /**
+    * Ensures that an empty/null Native Library Location fails
+    */
+   @Test
+   public void testNoNativeLibLocationFails()
+   {
+      // Log
+      log.info("testNoNativeLibLocationFails");
+
+      // Get config and clear out
+      final JBossASServerConfig config = this.config;
+      config.nativeLibraryLocation((URL) null);
+
+      // Test
+      this.assertMissingValueFails(config, "native library location");
+   }
+
    //-------------------------------------------------------------------------------||
    // Internal Helper Methods ------------------------------------------------------||
    //-------------------------------------------------------------------------------||
@@ -494,13 +511,15 @@
       final String serverTemp = serverHome + JBossASConfigurationInitializer.DEFAULT_VALUE_SERVER_TEMP_DIR_SUFFIX;
       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;
 
       // 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).partitionName(partitionName).loadNative(nativeLoad);
+            .serverTempLocation(serverTemp).partitionName(partitionName).loadNative(nativeLoad).nativeLibraryLocation(
+                  nativeLibLocation);
 
       // 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-04 03:58:54 UTC (rev 88132)
+++ projects/bootstrap/trunk/impl-as/src/test/java/org/jboss/bootstrap/impl/as/server/JBossASServerInitializationTestCase.java	2009-05-04 05:08:53 UTC (rev 88133)
@@ -144,7 +144,8 @@
       final String partitionNamePropKey = JBossASServerConfig.PROP_KEY_JBOSSAS_PARTITION_NAME;
       final String udpGroupPropKey = JBossASServerConfig.PROP_KEY_JBOSSAS_PARTITION_UDP_GROUP;
       final String udpPortPropKey = JBossASServerConfig.PROP_KEY_JBOSSAS_PARTITION_UDP_PORT;
-      final String nativeLoadPropKey = JBossASServerConfig.PROP_KEY_JBOSSAS_NATIVE_LOAD_PROPERTY;
+      final String nativeLoadPropKey = JBossASServerConfig.PROP_KEY_JBOSSAS_NATIVE_LOAD;
+      final String nativeLibLocationPropKey = JBossASServerConfig.PROP_KEY_JBOSSAS_NATIVE_DIR;
 
       // Get Properties from Configuration
       final Map<String, String> properties = configuration.getProperties();
@@ -169,6 +170,7 @@
       final String udpGroupFromConfProp = properties.get(udpGroupPropKey);
       final String udpPortFromConfProp = properties.get(udpPortPropKey);
       final String nativeLoadFromConfProp = properties.get(nativeLoadPropKey);
+      final String nativeLibLocationFromConfProp = properties.get(nativeLibLocationPropKey);
 
       // Get Properties from System
       final String jbossHomeFromSystem = System.getProperty(jbossHomePropKey);
@@ -192,6 +194,7 @@
       final String udpGroupFromSystem = System.getProperty(udpGroupPropKey);
       final String udpPortFromSystem = System.getProperty(udpPortPropKey);
       final String nativeLoadFromSystem = System.getProperty(nativeLoadPropKey);
+      final String nativeLibLocationFromSystem = System.getProperty(nativeLibLocationPropKey);
 
       // Get Expected Values
       final URL jbossHomeFromConf = configuration.getJBossHome();
@@ -226,6 +229,9 @@
       final String udpGroupFromConf = configuration.getUdpGroup();
       final String udpPortFromConf = configuration.getUdpPort().toString();
       final String nativeLoadFromConf = configuration.isLoadNative().toString();
+      final URL nativeLibFromConf = configuration.getNativeLibraryLocation();
+      final File nativeLibFile = new File(nativeLibFromConf.toURI());
+      final String nativeLibDirFromConf = nativeLibFile.getAbsolutePath();
 
       // Ensure all equal
       TestCase.assertEquals("JBoss Home in configuration must match the config property", jbossHomeDirFromConf,
@@ -312,6 +318,10 @@
             nativeLoadFromConfProp);
       TestCase.assertEquals("Native Load in configuration must match the system property", nativeLoadFromConf,
             nativeLoadFromSystem);
+      TestCase.assertEquals("Native Lib Dir in configuration must match the config property", nativeLibDirFromConf,
+            nativeLibLocationFromConfProp);
+      TestCase.assertEquals("Native Lib Dir in configuration must match the system property", nativeLibDirFromConf,
+            nativeLibLocationFromSystem);
 
       // Push through lifecycle start/stop
       server.start();
@@ -339,6 +349,7 @@
       final String udpGroupFromSystemAfterCleanup = System.getProperty(udpGroupPropKey);
       final String udpPortFromSystemAfterCleanup = System.getProperty(udpPortPropKey);
       final String nativeLoadFromSystemAfterCleanup = System.getProperty(nativeLoadPropKey);
+      final String nativeLibFromSystemAfterCleanup = System.getProperty(nativeLibLocationPropKey);
 
       // Ensure all null
       final String failMessage = "System property should be null after cleanup";
@@ -363,5 +374,6 @@
       TestCase.assertNull(failMessage, udpGroupFromSystemAfterCleanup);
       TestCase.assertNull(failMessage, udpPortFromSystemAfterCleanup);
       TestCase.assertNull(failMessage, nativeLoadFromSystemAfterCleanup);
+      TestCase.assertNull(failMessage, nativeLibFromSystemAfterCleanup);
    }
 }

Deleted: projects/bootstrap/trunk/impl-as/src/test/resources/jbossas/server/default/tmp/EMPTY
===================================================================

Copied: projects/bootstrap/trunk/impl-as/src/test/resources/jbossas/server/default/tmp/native/EMPTY (from rev 88131, projects/bootstrap/trunk/impl-as/src/test/resources/jbossas/server/default/tmp/EMPTY)
===================================================================


Property changes on: projects/bootstrap/trunk/impl-as/src/test/resources/jbossas/server/default/tmp/native/EMPTY
___________________________________________________________________
Name: svn:mergeinfo
   + 




More information about the jboss-cvs-commits mailing list