You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by ch...@apache.org on 2017/05/16 14:55:45 UTC

svn commit: r1795320 - in /jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli: BlobStoreFixtureProvider.java BlobStoreOptions.java

Author: chetanm
Date: Tue May 16 14:55:45 2017
New Revision: 1795320

URL: http://svn.apache.org/viewvc?rev=1795320&view=rev
Log:
OAK-6210 - Provide a consistent and extensible way to handle oak-run options while creating NodeStore

Allow a FileDataStore to be configured via directory path or config file

Modified:
    jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/BlobStoreFixtureProvider.java
    jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/BlobStoreOptions.java

Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/BlobStoreFixtureProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/BlobStoreFixtureProvider.java?rev=1795320&r1=1795319&r2=1795320&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/BlobStoreFixtureProvider.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/BlobStoreFixtureProvider.java Tue May 16 14:55:45 2017
@@ -36,6 +36,7 @@ import org.apache.commons.io.FileUtils;
 import org.apache.felix.cm.file.ConfigurationHandler;
 import org.apache.jackrabbit.core.data.DataStore;
 import org.apache.jackrabbit.core.data.DataStoreException;
+import org.apache.jackrabbit.core.data.FileDataStore;
 import org.apache.jackrabbit.oak.blob.cloud.aws.s3.SharedS3DataStore;
 import org.apache.jackrabbit.oak.blob.cloud.azure.blobstorage.AzureDataStore;
 import org.apache.jackrabbit.oak.console.BlobStoreFixture;
@@ -79,10 +80,15 @@ public class BlobStoreFixtureProvider {
             closer.register(asCloseable(homeDir));
             delegate = azureds;
         } else {
-            delegate = new OakFileDataStore();
-            String cfgPath = bsopts.getFDSConfigPath();
-            Properties props = loadAndTransformProps(cfgPath);
-            populate(delegate, Maps.fromProperties(props), true);
+            FileDataStore fds = new OakFileDataStore();
+            delegate = fds;
+            if (bsopts.getFDSPath() != null) {
+                fds.setPath(bsopts.getFDSPath());
+            } else {
+                String cfgPath = bsopts.getFDSConfigPath();
+                Properties props = loadAndTransformProps(cfgPath);
+                populate(delegate, Maps.fromProperties(props), true);
+            }
             delegate.init(null);
         }
         DataStoreBlobStore blobStore = new DataStoreBlobStore(delegate);

Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/BlobStoreOptions.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/BlobStoreOptions.java?rev=1795320&r1=1795319&r2=1795320&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/BlobStoreOptions.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/BlobStoreOptions.java Tue May 16 14:55:45 2017
@@ -30,10 +30,13 @@ public class BlobStoreOptions implements
     private final OptionSpec<String> fdsOption;
     private final OptionSpec<String> s3Option;
     private final OptionSpec<String> azureOption;
+    private final OptionSpec<String> fdsPathOption;
     private OptionSet options;
 
     public BlobStoreOptions(OptionParser parser){
-        fdsOption = parser.acceptsAll(asList("fds", "fds-path"), "FileDataStore config")
+        fdsOption = parser.acceptsAll(asList("fds"), "FileDataStore config")
+                .withRequiredArg().ofType(String.class);
+        fdsPathOption = parser.acceptsAll(asList("fds-path"), "FileDataStore path")
                 .withRequiredArg().ofType(String.class);
         s3Option = parser.accepts("s3ds", "S3DataStore config")
                 .withRequiredArg().ofType(String.class);
@@ -50,6 +53,10 @@ public class BlobStoreOptions implements
         return fdsOption.value(options);
     }
 
+    public String getFDSPath(){
+        return fdsPathOption.value(options);
+    }
+
     public String getS3ConfigPath(){
         return s3Option.value(options);
     }
@@ -59,7 +66,7 @@ public class BlobStoreOptions implements
     }
 
     public Type getBlobStoreType(){
-        if (options.has(fdsOption)){
+        if (options.has(fdsOption) || options.has(fdsPathOption)){
             return Type.FDS;
         } else if (options.has(s3Option)){
             return Type.S3;