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