You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@crail.apache.org by as...@apache.org on 2019/05/28 14:56:11 UTC

[incubator-crail] branch master updated: Create CrailConfiguration instance by calling one of three new static functions instead of constructor.

This is an automated email from the ASF dual-hosted git repository.

asq pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-crail.git


The following commit(s) were added to refs/heads/master by this push:
     new a6e622f  Create CrailConfiguration instance by calling one of three new static functions instead of constructor.
a6e622f is described below

commit a6e622fc2310ca522aaf9f640ec6d408e2878a78
Author: Adrian Schuepbach <as...@apache.org>
AuthorDate: Wed Mar 6 22:45:13 2019 +0100

    Create CrailConfiguration instance by calling one of three new static functions instead of constructor.
    
    The new three functions allow to either create a configuration based on the
    default configuration file, an explicitely passed configuration file
    or to create an empty configuration. The constructor is niot directly accessible anymore.
    
    These are the new functions:
    
    createEmptyConfiguration();
    createConfigurationFromFile();
    createConfigurationFromFile(String path);
    
    Close #72
    
    Signed-off-by: Adrian Schuepbach <as...@apache.org>
---
 .../org/apache/crail/conf/CrailConfiguration.java  | 33 +++++++++++++++++-----
 .../org/apache/crail/tools/CrailBenchmark.java     |  2 +-
 .../java/org/apache/crail/tools/CrailFsck.java     | 12 ++++----
 .../src/test/java/org/apache/crail/ClientTest.java |  2 +-
 .../apache/crail/hdfs/CrailHadoopFileSystem.java   |  2 +-
 .../java/org/apache/crail/namenode/NameNode.java   |  2 +-
 .../nvmf/client/NvmfStagingBufferCacheTest.java    |  4 +--
 .../org/apache/crail/storage/StorageServer.java    |  2 +-
 8 files changed, 39 insertions(+), 20 deletions(-)

diff --git a/client/src/main/java/org/apache/crail/conf/CrailConfiguration.java b/client/src/main/java/org/apache/crail/conf/CrailConfiguration.java
index 579c587..3c44e9a 100644
--- a/client/src/main/java/org/apache/crail/conf/CrailConfiguration.java
+++ b/client/src/main/java/org/apache/crail/conf/CrailConfiguration.java
@@ -33,9 +33,32 @@ public class CrailConfiguration {
 	private static final Logger LOG = CrailUtils.getLogger();
 	private ConcurrentHashMap<String, String> conf;
 
-	public CrailConfiguration() throws IOException {
+	private CrailConfiguration() {
 		conf = new ConcurrentHashMap<>();
-		Properties properties = loadProperties("crail-site.conf");
+	}
+
+	public static CrailConfiguration createEmptyConfiguration() {
+		return new CrailConfiguration();
+	}
+
+	public static CrailConfiguration createConfigurationFromFile() throws IOException {
+		CrailConfiguration cconf = createEmptyConfiguration();
+		String base = System.getenv("CRAIL_HOME");
+		if (base == null || base.isEmpty()) {
+			throw new IllegalArgumentException("CRAIL_HOME environment variable is not set or empty");
+		}
+		cconf.loadConfigurationFromFile(base + File.separator + "conf" + File.separator + "crail-site.conf");
+		return (cconf);
+	}
+
+	public static CrailConfiguration createConfigurationFromFile(String path) throws IOException {
+		CrailConfiguration cconf = createEmptyConfiguration();
+		cconf.loadConfigurationFromFile(path);
+		return (cconf);
+	}
+
+	private void loadConfigurationFromFile(String path) throws IOException {
+		Properties properties = loadProperties(path);
 		mergeProperties(properties);
 	}
 
@@ -67,11 +90,7 @@ public class CrailConfiguration {
 	private static Properties loadProperties(String resourceName) throws IOException {
 		Properties properties = new Properties();
 
-		String base = System.getenv("CRAIL_HOME");
-		if (base == null || base.isEmpty()) {
-			throw new IllegalArgumentException("CRAIL_HOME environment variable is not set or empty");
-		}
-		FileInputStream inputStream = new FileInputStream(new File(base + "/conf/" + resourceName));
+		FileInputStream inputStream = new FileInputStream(new File(resourceName));
 
 		try {
 			properties.load(inputStream);
diff --git a/client/src/main/java/org/apache/crail/tools/CrailBenchmark.java b/client/src/main/java/org/apache/crail/tools/CrailBenchmark.java
index 76ebc7a..269f9c9 100644
--- a/client/src/main/java/org/apache/crail/tools/CrailBenchmark.java
+++ b/client/src/main/java/org/apache/crail/tools/CrailBenchmark.java
@@ -60,7 +60,7 @@ public class CrailBenchmark {
 	
 	public CrailBenchmark(int warmup) throws Exception {
 		this.warmup = warmup;
-		this.conf = new CrailConfiguration();
+		this.conf = CrailConfiguration.createConfigurationFromFile();
 		this.fs = null;
 	}
 	
diff --git a/client/src/main/java/org/apache/crail/tools/CrailFsck.java b/client/src/main/java/org/apache/crail/tools/CrailFsck.java
index 0b5da83..71436dd 100644
--- a/client/src/main/java/org/apache/crail/tools/CrailFsck.java
+++ b/client/src/main/java/org/apache/crail/tools/CrailFsck.java
@@ -54,7 +54,7 @@ public class CrailFsck {
 	
 	public void getLocations(String filename, long offset, long length) throws Exception {
 		System.out.println("getLocations, filename " + filename + ", offset " + offset + ", len " + length);
-		CrailConfiguration conf = new CrailConfiguration();
+		CrailConfiguration conf = CrailConfiguration.createConfigurationFromFile();
 		CrailStore fs = CrailStore.newInstance(conf);
 		
 		CrailBlockLocation locations[] = fs.lookup(filename).get().getBlockLocations(offset, length);
@@ -66,7 +66,7 @@ public class CrailFsck {
 	
 	public void blockStatistics(String filename) throws Exception {
 		HashMap<String, AtomicInteger> stats = new HashMap<String, AtomicInteger>();
-		CrailConfiguration conf = new CrailConfiguration();
+		CrailConfiguration conf = CrailConfiguration.createConfigurationFromFile();
 		CrailStore fs = CrailStore.newInstance(conf);
 		CrailNode node = fs.lookup(filename).get();
 		
@@ -96,14 +96,14 @@ public class CrailFsck {
 	}
 
 	public void namenodeDump()  throws Exception {
-		CrailConfiguration conf = new CrailConfiguration();
+		CrailConfiguration conf = CrailConfiguration.createConfigurationFromFile();
 		CoreDataStore fs = new CoreDataStore(conf);
 		fs.dumpNameNode();
 		fs.close();
 	}
 
 	public void directoryDump(String filename, boolean randomize) throws Exception {
-		CrailConfiguration conf = new CrailConfiguration();
+		CrailConfiguration conf = CrailConfiguration.createConfigurationFromFile();
 		CrailConstants.updateConstants(conf);
 		CoreDataStore fs = new CoreDataStore(conf);		
 		DirectoryInputStream iter = fs._listEntries(filename, randomize);
@@ -121,7 +121,7 @@ public class CrailFsck {
 	}
 	
 	public void ping() throws Exception {
-		CrailConfiguration conf = new CrailConfiguration();
+		CrailConfiguration conf = CrailConfiguration.createConfigurationFromFile();
 		CrailConstants.updateConstants(conf);
 		CoreDataStore fs = new CoreDataStore(conf);
 		fs.ping();
@@ -130,7 +130,7 @@ public class CrailFsck {
 	
 	public void createDirectory(String filename, int storageClass, int locationClass) throws Exception {
 		System.out.println("createDirectory, filename " + filename + ", storageClass " + storageClass + ", locationClass " + locationClass);
-		CrailConfiguration conf = new CrailConfiguration();
+		CrailConfiguration conf = CrailConfiguration.createConfigurationFromFile();
 		CrailStore fs = CrailStore.newInstance(conf);
 		fs.create(filename, CrailNodeType.DIRECTORY, CrailStorageClass.get(storageClass), CrailLocationClass.get(locationClass), true).get().syncDir();
 		fs.close();
diff --git a/client/src/test/java/org/apache/crail/ClientTest.java b/client/src/test/java/org/apache/crail/ClientTest.java
index 2e02a5e..d132192 100644
--- a/client/src/test/java/org/apache/crail/ClientTest.java
+++ b/client/src/test/java/org/apache/crail/ClientTest.java
@@ -38,7 +38,7 @@ public class ClientTest {
 
 	@Before
 	public void init() throws Exception {
-		CrailConfiguration conf = new CrailConfiguration();
+		CrailConfiguration conf = CrailConfiguration.createConfigurationFromFile();
 		fs = CrailStore.newInstance(conf);
 		fs.create(basePath, CrailNodeType.DIRECTORY, CrailStorageClass.DEFAULT, CrailLocationClass.DEFAULT, true).get();
 	}
diff --git a/hdfs/src/main/java/org/apache/crail/hdfs/CrailHadoopFileSystem.java b/hdfs/src/main/java/org/apache/crail/hdfs/CrailHadoopFileSystem.java
index 404d845..668bb95 100644
--- a/hdfs/src/main/java/org/apache/crail/hdfs/CrailHadoopFileSystem.java
+++ b/hdfs/src/main/java/org/apache/crail/hdfs/CrailHadoopFileSystem.java
@@ -67,7 +67,7 @@ public class CrailHadoopFileSystem extends FileSystem {
 		setConf(conf);
 		
 		try {
-			CrailConfiguration crailConf = new CrailConfiguration();
+			CrailConfiguration crailConf = CrailConfiguration.createConfigurationFromFile();
 			this.dfs = CrailStore.newInstance(crailConf);
 			Path _workingDir = new Path("/user/" + CrailConstants.USER);
 			this.workingDir = new Path("/user/" + CrailConstants.USER).makeQualified(uri, _workingDir);	
diff --git a/namenode/src/main/java/org/apache/crail/namenode/NameNode.java b/namenode/src/main/java/org/apache/crail/namenode/NameNode.java
index 3ec6db8..ace6384 100644
--- a/namenode/src/main/java/org/apache/crail/namenode/NameNode.java
+++ b/namenode/src/main/java/org/apache/crail/namenode/NameNode.java
@@ -41,7 +41,7 @@ public class NameNode {
 	
 	public static void main(String args[]) throws Exception {
 		LOG.info("initalizing namenode ");		
-		CrailConfiguration conf = new CrailConfiguration();
+		CrailConfiguration conf = CrailConfiguration.createConfigurationFromFile();
 		CrailConstants.updateConstants(conf);
 		
 		URI uri = CrailUtils.getPrimaryNameNode();
diff --git a/storage-nvmf/src/test/java/org/apache/crail/storage/nvmf/client/NvmfStagingBufferCacheTest.java b/storage-nvmf/src/test/java/org/apache/crail/storage/nvmf/client/NvmfStagingBufferCacheTest.java
index 5d8a995..bf6a880 100644
--- a/storage-nvmf/src/test/java/org/apache/crail/storage/nvmf/client/NvmfStagingBufferCacheTest.java
+++ b/storage-nvmf/src/test/java/org/apache/crail/storage/nvmf/client/NvmfStagingBufferCacheTest.java
@@ -36,7 +36,7 @@ public class NvmfStagingBufferCacheTest {
 
 	@BeforeClass
 	public static void init() throws IOException {
-		CrailConstants.updateConstants(new CrailConfiguration());
+		CrailConstants.updateConstants(CrailConfiguration.createConfigurationFromFile());
 	}
 
 	private static CrailBufferCache bufferCache;
@@ -86,4 +86,4 @@ public class NvmfStagingBufferCacheTest {
 			assertTrue(buffers.remove(bufferCacheEntry[i].getBuffer()));
 		}
 	}
-}
\ No newline at end of file
+}
diff --git a/storage/src/main/java/org/apache/crail/storage/StorageServer.java b/storage/src/main/java/org/apache/crail/storage/StorageServer.java
index 9dce8b2..8345f44 100644
--- a/storage/src/main/java/org/apache/crail/storage/StorageServer.java
+++ b/storage/src/main/java/org/apache/crail/storage/StorageServer.java
@@ -49,7 +49,7 @@ public interface StorageServer extends Configurable, Runnable {
 	
 	public static void main(String[] args) throws Exception {
 		Logger LOG = CrailUtils.getLogger();
-		CrailConfiguration conf = new CrailConfiguration();
+		CrailConfiguration conf = CrailConfiguration.createConfigurationFromFile();
 		CrailConstants.updateConstants(conf);
 		CrailConstants.printConf();
 		CrailConstants.verify();