Author: raffaeleguidi
Date: Wed Aug  8 20:22:15 2012
New Revision: 1370945

URL: http://svn.apache.org/viewvc?rev=1370945&view=rev
Log:
fixed and refactored yaml configuration and added properties file
implementation

Added:
    
incubator/directmemory/trunk/directmemory-common/src/main/java/org/apache/directmemory/conf/ConfigurationService.java
    
incubator/directmemory/trunk/directmemory-common/src/main/java/org/apache/directmemory/conf/DefaultConfiguration.java
    
incubator/directmemory/trunk/directmemory-common/src/main/java/org/apache/directmemory/conf/SimplePropertiesConfiguration.java
    
incubator/directmemory/trunk/directmemory-common/src/main/java/org/apache/directmemory/conf/YamlConfiguration.java
    incubator/directmemory/trunk/directmemory-common/src/test/resources/
    
incubator/directmemory/trunk/directmemory-common/src/test/resources/directmemory.properties
    
incubator/directmemory/trunk/directmemory-common/src/test/resources/directmemory.yaml
Modified:
    incubator/directmemory/trunk/directmemory-common/pom.xml
    
incubator/directmemory/trunk/directmemory-common/src/main/java/org/apache/directmemory/conf/Configuration.java
    
incubator/directmemory/trunk/directmemory-common/src/test/java/org/apache/directmemory/conf/ConfigurationTest.java

Modified: incubator/directmemory/trunk/directmemory-common/pom.xml
URL: 
http://svn.apache.org/viewvc/incubator/directmemory/trunk/directmemory-common/pom.xml?rev=1370945&r1=1370944&r2=1370945&view=diff
==============================================================================
--- incubator/directmemory/trunk/directmemory-common/pom.xml (original)
+++ incubator/directmemory/trunk/directmemory-common/pom.xml Wed Aug  8 
20:22:15 2012
@@ -35,27 +35,6 @@ under the License.
   </description>
 
   <build>
-    <!--<plugins>
-      <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>aspectj-maven-plugin</artifactId>
-        <version>1.4</version>
-        <configuration>
-          <source>${maven.compile.source}</source>
-          <target>${maven.compile.target}</target>
-          <complianceLevel>${java.version}</complianceLevel>
-        </configuration>
-        <executions>
-          <execution>
-            <goals>
-              <goal>compile</goal>
-              <goal>test-compile</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>-->
-
     <pluginManagement>
       <plugins>
         <!--This plugin's configuration is used to store Eclipse m2e settings 
only. It has no influence on the Maven build itself.-->

Modified: 
incubator/directmemory/trunk/directmemory-common/src/main/java/org/apache/directmemory/conf/Configuration.java
URL: 
http://svn.apache.org/viewvc/incubator/directmemory/trunk/directmemory-common/src/main/java/org/apache/directmemory/conf/Configuration.java?rev=1370945&r1=1370944&r2=1370945&view=diff
==============================================================================
--- 
incubator/directmemory/trunk/directmemory-common/src/main/java/org/apache/directmemory/conf/Configuration.java
 (original)
+++ 
incubator/directmemory/trunk/directmemory-common/src/main/java/org/apache/directmemory/conf/Configuration.java
 Wed Aug  8 20:22:15 2012
@@ -1,10 +1,5 @@
 package org.apache.directmemory.conf;
 
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.yaml.snakeyaml.Yaml;
@@ -38,92 +33,49 @@ public final class Configuration
 
     public static int getNumberOfBuffers()
     {
-        return yamlShadow.numberOfBuffers;
+        return configurationService.getNumberOfBuffers();
     }
 
     public static int getInitialCapacity()
     {
-        return yamlShadow.initialCapacity;
+        return configurationService.getInitialCapacity();
     }
 
     public static int getRamMegaBytes()
     {
-        return yamlShadow.ramMegaBytes;
+        return configurationService.getRamMegaBytes();
     }
 
     public static long getDisposalTime()
     {
-        return yamlShadow.disposalTime;
+        return configurationService.getDisposalTime();
     }
 
     public static int getConcurrencyLevel()
     {
-        return yamlShadow.concurrencyLevel;
+        return configurationService.getConcurrencyLevel();
     }
-
-    private static void wireConfiguration()
+    
+    private static ConfigurationService configurationService;
+    
+    static
     {
-        boolean success = false;
-        InputStream inputStream = null;
-        String yamlLocation = null;
-        try
-        {
-            yamlLocation =
-                new File( System.getProperty( "user.dir" ) + 
"/../conf/directmemory.yaml" ).getCanonicalPath();
-            inputStream = new FileInputStream( new File( yamlLocation ) );
-            Yaml yaml = new Yaml( new Constructor( YamlShadow.class ) );
-            yamlShadow = (YamlShadow) yaml.load( inputStream );
-            success = true;
-        }
-        catch ( Exception exception )
-        {
-            logger.error( "Problem trying to load DirectMemory configuration, 
now exiting.", exception );
-        }
-        finally
-        {
-            if ( inputStream != null )
-            {
-                try
-                {
-                    inputStream.close();
-                }
-                catch ( IOException ioException )
-                { // no-op
-                }
-            }
-            if ( success )
-            {
-                logger.info( "Loading DirectMemory configuration from " + 
yamlLocation );
-            }
+        if (configurationService == null) {
+            // if not otherwise specified with another mechanism it uses the 
default implementation
+            logger.info( "using default configuration implementation" );
+            configurationService = new SimplePropertiesConfiguration();
         }
     }
 
-    public static class YamlShadow
-    {
-        public int numberOfBuffers = 1;
-
-        public int initialCapacity = 100000;
-
-        public int ramMegaBytes = 1;
-
-        public int concurrencyLevel = 4;
-
-        public long disposalTime = 10L;
-
-        public YamlShadow()
-        {
-        }
-    }
-
-    private static YamlShadow yamlShadow;
-    static
+    // Prevent instance escape
+    private Configuration()
     {
-        wireConfiguration();
     }
 
-    // Prevent instance escape
-    private Configuration()
+    public static void configureFromYaml()
     {
+        logger.info( "using yaml configuration implementation" );
+        configurationService = YamlConfiguration.load();
     }
 
 }

Added: 
incubator/directmemory/trunk/directmemory-common/src/main/java/org/apache/directmemory/conf/ConfigurationService.java
URL: 
http://svn.apache.org/viewvc/incubator/directmemory/trunk/directmemory-common/src/main/java/org/apache/directmemory/conf/ConfigurationService.java?rev=1370945&view=auto
==============================================================================
--- 
incubator/directmemory/trunk/directmemory-common/src/main/java/org/apache/directmemory/conf/ConfigurationService.java
 (added)
+++ 
incubator/directmemory/trunk/directmemory-common/src/main/java/org/apache/directmemory/conf/ConfigurationService.java
 Wed Aug  8 20:22:15 2012
@@ -0,0 +1,25 @@
+package org.apache.directmemory.conf;
+
+public interface ConfigurationService
+{
+    public int getNumberOfBuffers();
+
+    public int getInitialCapacity();
+
+    public int getRamMegaBytes();
+
+    public int getConcurrencyLevel();
+
+    public long getDisposalTime();
+
+    public void setNumberOfBuffers(int numberOfBuffers);
+
+    public void setInitialCapacity(int initialCapacity);
+
+    public void setRamMegaBytes(int ramMegaBytes);
+
+    public void setConcurrencyLevel(int concurrencyLevel);
+
+    public void setDisposalTime(long disposalTime);
+
+}
\ No newline at end of file

Added: 
incubator/directmemory/trunk/directmemory-common/src/main/java/org/apache/directmemory/conf/DefaultConfiguration.java
URL: 
http://svn.apache.org/viewvc/incubator/directmemory/trunk/directmemory-common/src/main/java/org/apache/directmemory/conf/DefaultConfiguration.java?rev=1370945&view=auto
==============================================================================
--- 
incubator/directmemory/trunk/directmemory-common/src/main/java/org/apache/directmemory/conf/DefaultConfiguration.java
 (added)
+++ 
incubator/directmemory/trunk/directmemory-common/src/main/java/org/apache/directmemory/conf/DefaultConfiguration.java
 Wed Aug  8 20:22:15 2012
@@ -0,0 +1,75 @@
+package org.apache.directmemory.conf;
+
+public abstract class DefaultConfiguration implements ConfigurationService
+{
+    private int numberOfBuffers = 1;
+
+    private int initialCapacity = 100000;
+
+    private int ramMegaBytes = 1;
+
+    private int concurrencyLevel = 4;
+
+    private long disposalTime = 10L;
+
+    @Override
+    public int getNumberOfBuffers()
+    {
+        return numberOfBuffers;
+    }
+
+    @Override
+    public int getInitialCapacity()
+    {
+        return initialCapacity;
+    }
+
+    @Override
+    public int getRamMegaBytes()
+    {
+        return ramMegaBytes;
+    }
+
+    @Override
+    public int getConcurrencyLevel()
+    {
+        return concurrencyLevel;
+    }
+
+    @Override
+    public long getDisposalTime()
+    {
+        return disposalTime;
+    }
+    
+    @Override
+    public void setNumberOfBuffers( int numberOfBuffers )
+    {
+        this.numberOfBuffers = numberOfBuffers;
+    }
+
+    @Override
+    public void setInitialCapacity( int initialCapacity )
+    {
+        this.initialCapacity = initialCapacity;
+    }
+
+    @Override
+    public void setRamMegaBytes( int ramMegaBytes )
+    {
+        this.ramMegaBytes = ramMegaBytes;
+    }
+
+    @Override
+    public void setConcurrencyLevel( int concurrencyLevel )
+    {
+        this.concurrencyLevel = concurrencyLevel;
+    }
+
+    @Override
+    public void setDisposalTime( long disposalTime )
+    {
+        this.disposalTime = disposalTime;
+    }
+
+}

Added: 
incubator/directmemory/trunk/directmemory-common/src/main/java/org/apache/directmemory/conf/SimplePropertiesConfiguration.java
URL: 
http://svn.apache.org/viewvc/incubator/directmemory/trunk/directmemory-common/src/main/java/org/apache/directmemory/conf/SimplePropertiesConfiguration.java?rev=1370945&view=auto
==============================================================================
--- 
incubator/directmemory/trunk/directmemory-common/src/main/java/org/apache/directmemory/conf/SimplePropertiesConfiguration.java
 (added)
+++ 
incubator/directmemory/trunk/directmemory-common/src/main/java/org/apache/directmemory/conf/SimplePropertiesConfiguration.java
 Wed Aug  8 20:22:15 2012
@@ -0,0 +1,31 @@
+package org.apache.directmemory.conf;
+
+import java.util.Properties;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class SimplePropertiesConfiguration extends DefaultConfiguration 
implements ConfigurationService
+{
+    private static final Logger logger = LoggerFactory.getLogger( 
SimplePropertiesConfiguration.class );
+
+    public SimplePropertiesConfiguration()
+    {
+        Properties properties = new Properties();
+        try
+        {
+            properties.load( 
this.getClass().getClassLoader().getResourceAsStream( "directmemory.properties" 
) );
+            this.setNumberOfBuffers(new Integer(properties.getProperty( 
"numberOfBuffers" )));
+            this.setInitialCapacity(new Integer(properties.getProperty( 
"initialCapacity" )));
+            this.setRamMegaBytes(new Integer(properties.getProperty( 
"ramMegaBytes" )));
+            this.setConcurrencyLevel(new Integer(properties.getProperty( 
"concurrencyLevel" )));
+            this.setDisposalTime(new Long(properties.getProperty( 
"disposalTime" )));
+        }
+        catch ( Exception e )
+        {
+            // nothing - keep the defaults and warn the world about it
+            logger.warn( "no properties file found or invalid file - using 
defaults" );
+        }
+    }
+ 
+}

Added: 
incubator/directmemory/trunk/directmemory-common/src/main/java/org/apache/directmemory/conf/YamlConfiguration.java
URL: 
http://svn.apache.org/viewvc/incubator/directmemory/trunk/directmemory-common/src/main/java/org/apache/directmemory/conf/YamlConfiguration.java?rev=1370945&view=auto
==============================================================================
--- 
incubator/directmemory/trunk/directmemory-common/src/main/java/org/apache/directmemory/conf/YamlConfiguration.java
 (added)
+++ 
incubator/directmemory/trunk/directmemory-common/src/main/java/org/apache/directmemory/conf/YamlConfiguration.java
 Wed Aug  8 20:22:15 2012
@@ -0,0 +1,15 @@
+package org.apache.directmemory.conf;
+
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.constructor.Constructor;
+
+public class YamlConfiguration extends DefaultConfiguration
+{
+
+    public static ConfigurationService load()
+    {
+        Yaml yaml = new Yaml( new Constructor( YamlConfiguration.class ) );
+        return (YamlConfiguration) yaml.load( 
Configuration.class.getClassLoader().getResourceAsStream( "directmemory.yaml" ) 
);
+    }
+
+}

Modified: 
incubator/directmemory/trunk/directmemory-common/src/test/java/org/apache/directmemory/conf/ConfigurationTest.java
URL: 
http://svn.apache.org/viewvc/incubator/directmemory/trunk/directmemory-common/src/test/java/org/apache/directmemory/conf/ConfigurationTest.java?rev=1370945&r1=1370944&r2=1370945&view=diff
==============================================================================
--- 
incubator/directmemory/trunk/directmemory-common/src/test/java/org/apache/directmemory/conf/ConfigurationTest.java
 (original)
+++ 
incubator/directmemory/trunk/directmemory-common/src/test/java/org/apache/directmemory/conf/ConfigurationTest.java
 Wed Aug  8 20:22:15 2012
@@ -15,4 +15,15 @@ public class ConfigurationTest
         assertTrue( Configuration.getConcurrencyLevel() > 0 );
         assertTrue( Configuration.getDisposalTime() > 0L );
     }
+    
+    @Test
+    public void testYamlConfiguration()
+    {
+        Configuration.configureFromYaml();
+        assertTrue( Configuration.getNumberOfBuffers() > 0 );
+        assertTrue( Configuration.getInitialCapacity() > 0 );
+        assertTrue( Configuration.getRamMegaBytes() > 0 );
+        assertTrue( Configuration.getConcurrencyLevel() > 0 );
+        assertTrue( Configuration.getDisposalTime() > 0L );
+    }
 }

Added: 
incubator/directmemory/trunk/directmemory-common/src/test/resources/directmemory.properties
URL: 
http://svn.apache.org/viewvc/incubator/directmemory/trunk/directmemory-common/src/test/resources/directmemory.properties?rev=1370945&view=auto
==============================================================================
--- 
incubator/directmemory/trunk/directmemory-common/src/test/resources/directmemory.properties
 (added)
+++ 
incubator/directmemory/trunk/directmemory-common/src/test/resources/directmemory.properties
 Wed Aug  8 20:22:15 2012
@@ -0,0 +1,5 @@
+numberOfBuffers=1
+initialCapacity=100000
+ramMegaBytes=1
+concurrencyLevel=4
+disposalTime=10

Added: 
incubator/directmemory/trunk/directmemory-common/src/test/resources/directmemory.yaml
URL: 
http://svn.apache.org/viewvc/incubator/directmemory/trunk/directmemory-common/src/test/resources/directmemory.yaml?rev=1370945&view=auto
==============================================================================
--- 
incubator/directmemory/trunk/directmemory-common/src/test/resources/directmemory.yaml
 (added)
+++ 
incubator/directmemory/trunk/directmemory-common/src/test/resources/directmemory.yaml
 Wed Aug  8 20:22:15 2012
@@ -0,0 +1,14 @@
+# Number of buffers
+numberOfBuffers: 1
+
+# Initial capacity
+initialCapacity: 100000
+
+# RAM allocation in MB
+ramMegaBytes: 1
+
+# Concurrency level
+concurrencyLevel: 4
+
+# Disposal time in seconds
+disposalTime: 10


Reply via email to