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);