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 am...@apache.org on 2018/09/13 04:00:25 UTC

svn commit: r1840775 - in /jackrabbit/oak/trunk: oak-run-commons/src/main/java/org/apache/jackrabbit/oak/run/cli/ oak-run/src/main/java/org/apache/jackrabbit/oak/run/

Author: amitj
Date: Thu Sep 13 04:00:25 2018
New Revision: 1840775

URL: http://svn.apache.org/viewvc?rev=1840775&view=rev
Log:
OAK-7716: Enable datastore command for Azure segment store

- Support for Azure segment store

Modified:
    jackrabbit/oak/trunk/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/run/cli/Options.java
    jackrabbit/oak/trunk/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/run/cli/SegmentTarFixtureProvider.java
    jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCommand.java

Modified: jackrabbit/oak/trunk/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/run/cli/Options.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/run/cli/Options.java?rev=1840775&r1=1840774&r2=1840775&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/run/cli/Options.java (original)
+++ jackrabbit/oak/trunk/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/run/cli/Options.java Thu Sep 13 04:00:25 2018
@@ -45,6 +45,7 @@ public class Options {
     private String summary;
     private String connectionString;
     private final Whiteboard whiteboard = new DefaultWhiteboard();
+    private String tempDirectory;
 
     public Options(){
         this.oakRunOptions = EnumSet.allOf(OptionBeans.class);
@@ -118,6 +119,15 @@ public class Options {
         return this;
     }
 
+    public Options setTempDirectory(String directory) {
+        this.tempDirectory = directory;
+        return this;
+    }
+
+    public String getTempDirectory() {
+        return tempDirectory;
+    }
+
     public CommonOptions getCommonOpts(){
         return getOptionBean(CommonOptions.class);
     }
@@ -154,4 +164,5 @@ public class Options {
             System.exit(code);
         }
     }
+
 }

Modified: jackrabbit/oak/trunk/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/run/cli/SegmentTarFixtureProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/run/cli/SegmentTarFixtureProvider.java?rev=1840775&r1=1840774&r2=1840775&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/run/cli/SegmentTarFixtureProvider.java (original)
+++ jackrabbit/oak/trunk/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/run/cli/SegmentTarFixtureProvider.java Thu Sep 13 04:00:25 2018
@@ -29,10 +29,12 @@ import java.io.IOException;
 
 import com.google.common.io.Closer;
 import org.apache.jackrabbit.oak.segment.SegmentNodeStoreBuilders;
+import org.apache.jackrabbit.oak.segment.azure.tool.ToolUtils;
 import org.apache.jackrabbit.oak.segment.file.FileStore;
 import org.apache.jackrabbit.oak.segment.file.FileStoreBuilder;
 import org.apache.jackrabbit.oak.segment.file.InvalidFileStoreVersionException;
 import org.apache.jackrabbit.oak.segment.file.ReadOnlyFileStore;
+import org.apache.jackrabbit.oak.segment.spi.persistence.SegmentNodeStorePersistence;
 import org.apache.jackrabbit.oak.spi.blob.BlobStore;
 import org.apache.jackrabbit.oak.spi.state.NodeStore;
 import org.apache.jackrabbit.oak.spi.whiteboard.Whiteboard;
@@ -44,8 +46,17 @@ class SegmentTarFixtureProvider {
             throws IOException, InvalidFileStoreVersionException {
         StatisticsProvider statisticsProvider = checkNotNull(getService(wb, StatisticsProvider.class));
 
-        String path = options.getOptionBean(CommonOptions.class).getStoreArg();
-        FileStoreBuilder builder = fileStoreBuilder(new File(path)).withMaxFileSize(256);
+        String pathOrUri = options.getOptionBean(CommonOptions.class).getStoreArg();
+        ToolUtils.SegmentStoreType segmentStoreType = ToolUtils.storeTypeFromPathOrUri(pathOrUri);
+
+        FileStoreBuilder builder;
+        if (segmentStoreType == ToolUtils.SegmentStoreType.AZURE) {
+            SegmentNodeStorePersistence segmentNodeStorePersistence =
+                ToolUtils.newSegmentNodeStorePersistence(segmentStoreType, pathOrUri);
+            builder = fileStoreBuilder(new File(options.getTempDirectory())).withCustomPersistence(segmentNodeStorePersistence);
+        } else {
+            builder = fileStoreBuilder(new File(pathOrUri)).withMaxFileSize(256);
+        }
 
         FileStoreTarBuilderCustomizer customizer = getService(wb, FileStoreTarBuilderCustomizer.class);
         if (customizer != null) {

Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCommand.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCommand.java?rev=1840775&r1=1840774&r2=1840775&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCommand.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCommand.java Thu Sep 13 04:00:25 2018
@@ -109,6 +109,7 @@ public class DataStoreCommand implements
 
         boolean success = false;
         try (Closer closer = Closer.create()) {
+            opts.setTempDirectory(dataStoreOpts.getWorkDir().getAbsolutePath());
             NodeStoreFixture fixture = NodeStoreFixtureProvider.create(opts);
             closer.register(fixture);