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