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 to...@apache.org on 2016/08/01 09:34:33 UTC
svn commit: r1754715 - in /jackrabbit/oak/trunk/oak-upgrade/src:
main/java/org/apache/jackrabbit/oak/upgrade/cli/blob/
main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/ main/resources/
test/java/org/apache/jackrabbit/oak/upgrade/ test/java/org/ap...
Author: tomekr
Date: Mon Aug 1 09:34:33 2016
New Revision: 1754715
URL: http://svn.apache.org/viewvc?rev=1754715&view=rev
Log:
OAK-4624: Optionally ignore missing blobs during sidegrade
Added:
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/blob/SafeDataStoreBlobStore.java
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/IgnoreMissingBinariesTest.java
Modified:
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/blob/FileDataStoreFactory.java
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/blob/S3DataStoreFactory.java
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/MigrationOptions.java
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/OptionParserFactory.java
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/StoreArguments.java
jackrabbit/oak/trunk/oak-upgrade/src/main/resources/upgrade_usage.txt
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/AbstractOak2OakTest.java
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/container/FileDataStoreContainer.java
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/container/S3DataStoreContainer.java
Modified: jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/blob/FileDataStoreFactory.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/blob/FileDataStoreFactory.java?rev=1754715&r1=1754714&r2=1754715&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/blob/FileDataStoreFactory.java (original)
+++ jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/blob/FileDataStoreFactory.java Mon Aug 1 09:34:33 2016
@@ -30,8 +30,11 @@ public class FileDataStoreFactory implem
private final String directory;
- public FileDataStoreFactory(String directory) {
+ private final boolean ignoreMissingBlobs;
+
+ public FileDataStoreFactory(String directory, boolean ignoreMissingBlobs) {
this.directory = directory;
+ this.ignoreMissingBlobs = ignoreMissingBlobs;
}
@Override
@@ -40,7 +43,12 @@ public class FileDataStoreFactory implem
delegate.setPath(directory);
delegate.init(null);
closer.register(asCloseable(delegate));
- return new DataStoreBlobStore(delegate);
+
+ if (ignoreMissingBlobs) {
+ return new SafeDataStoreBlobStore(delegate);
+ } else {
+ return new DataStoreBlobStore(delegate);
+ }
}
private static Closeable asCloseable(final FileDataStore store) {
Modified: jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/blob/S3DataStoreFactory.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/blob/S3DataStoreFactory.java?rev=1754715&r1=1754714&r2=1754715&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/blob/S3DataStoreFactory.java (original)
+++ jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/blob/S3DataStoreFactory.java Mon Aug 1 09:34:33 2016
@@ -52,7 +52,9 @@ public class S3DataStoreFactory implemen
private final File tempHomeDir;
- public S3DataStoreFactory(String configuration, String directory) throws IOException {
+ private final boolean ignoreMissingBlobs;
+
+ public S3DataStoreFactory(String configuration, String directory, boolean ignoreMissingBlobs) throws IOException {
this.props = new Properties();
FileReader reader = new FileReader(new File(configuration));
try {
@@ -68,6 +70,7 @@ public class S3DataStoreFactory implemen
this.directory = directory;
this.tempHomeDir = Files.createTempDir();
+ this.ignoreMissingBlobs = ignoreMissingBlobs;
}
@Override
@@ -81,7 +84,11 @@ public class S3DataStoreFactory implemen
throw new IOException(e);
}
closer.register(asCloseable(delegate, tempHomeDir));
- return new DataStoreBlobStore(delegate);
+ if (ignoreMissingBlobs) {
+ return new SafeDataStoreBlobStore(delegate);
+ } else {
+ return new DataStoreBlobStore(delegate);
+ }
}
private static Closeable asCloseable(final CachingDataStore store, final File tempHomeDir) {
Added: jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/blob/SafeDataStoreBlobStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/blob/SafeDataStoreBlobStore.java?rev=1754715&view=auto
==============================================================================
--- jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/blob/SafeDataStoreBlobStore.java (added)
+++ jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/blob/SafeDataStoreBlobStore.java Mon Aug 1 09:34:33 2016
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.oak.upgrade.cli.blob;
+
+import org.apache.jackrabbit.core.data.DataStore;
+import org.apache.jackrabbit.oak.plugins.blob.datastore.DataStoreBlobStore;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+public class SafeDataStoreBlobStore extends DataStoreBlobStore {
+
+ private static final Logger log = LoggerFactory.getLogger(SafeDataStoreBlobStore.class);
+
+ public SafeDataStoreBlobStore(DataStore delegate) {
+ super(delegate);
+ }
+
+ @Override
+ public InputStream getInputStream(final String encodedBlobId) {
+ try {
+ return super.getInputStream(encodedBlobId);
+ } catch(IOException e) {
+ log.warn("Missing blob: {}", encodedBlobId);
+ return new ByteArrayInputStream(new byte[0]);
+ }
+ }
+}
\ No newline at end of file
Modified: jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/MigrationOptions.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/MigrationOptions.java?rev=1754715&r1=1754714&r2=1754715&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/MigrationOptions.java (original)
+++ jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/MigrationOptions.java Mon Aug 1 09:34:33 2016
@@ -56,6 +56,8 @@ public class MigrationOptions {
private final boolean skipNameCheck;
+ private final boolean ignoreMissingBinaries;
+
public MigrationOptions(MigrationCliArguments args) {
this.copyBinariesByReference = !args.hasOption(OptionParserFactory.COPY_BINARIES);
this.mmap = args.hasOption(OptionParserFactory.MMAP);
@@ -85,6 +87,7 @@ public class MigrationOptions {
this.earlyShutdown = args.hasOption(OptionParserFactory.EARLY_SHUTDOWN);
this.skipInitialization = args.hasOption(OptionParserFactory.SKIP_INIT);
this.skipNameCheck = args.hasOption(OptionParserFactory.SKIP_NAME_CHECK);
+ this.ignoreMissingBinaries = args.hasOption(OptionParserFactory.IGNORE_MISSING_BINARIES);
logOptions();
}
@@ -140,6 +143,10 @@ public class MigrationOptions {
return includeIndex;
}
+ public boolean isIgnoreMissingBinaries() {
+ return ignoreMissingBinaries;
+ }
+
private void logOptions() {
if (copyBinariesByReference) {
log.info("DataStore needs to be shared with new repository");
@@ -191,6 +198,10 @@ public class MigrationOptions {
log.info("Index data for the paths {} will be copied", (Object) includePaths);
}
+ if (ignoreMissingBinaries) {
+ log.info("Missing binaries won't break the migration");
+ }
+
log.info("Cache size: {} MB", cacheSizeInMB);
}
Modified: jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/OptionParserFactory.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/OptionParserFactory.java?rev=1754715&r1=1754714&r2=1754715&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/OptionParserFactory.java (original)
+++ jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/OptionParserFactory.java Mon Aug 1 09:34:33 2016
@@ -28,6 +28,8 @@ public class OptionParserFactory {
public static final String FAIL_ON_ERROR = "fail-on-error";
+ public static final String IGNORE_MISSING_BINARIES = "ignore-missing-binaries";
+
public static final String EARLY_SHUTDOWN = "early-shutdown";
public static final String CACHE_SIZE = "cache";
@@ -108,6 +110,7 @@ public class OptionParserFactory {
op.accepts(DST_S3_CONFIG, "Configuration file for the target S3DataStore").withRequiredArg()
.ofType(String.class);
op.accepts(MISSING_BLOBSTORE, "Try to upgrade the NodeStore without access to the external Datastore");
+ op.accepts(IGNORE_MISSING_BINARIES, "Don't break the migration if some binaries are missing");
}
private static void addRdbOptions(OptionParser op) {
Modified: jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/StoreArguments.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/StoreArguments.java?rev=1754715&r1=1754714&r2=1754715&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/StoreArguments.java (original)
+++ jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/StoreArguments.java Mon Aug 1 09:34:33 2016
@@ -33,6 +33,7 @@ import org.apache.jackrabbit.oak.upgrade
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import static org.apache.jackrabbit.oak.upgrade.cli.parser.OptionParserFactory.IGNORE_MISSING_BINARIES;
import static org.apache.jackrabbit.oak.upgrade.cli.parser.OptionParserFactory.SRC_FBS;
import static org.apache.jackrabbit.oak.upgrade.cli.parser.OptionParserFactory.SRC_FDS;
import static org.apache.jackrabbit.oak.upgrade.cli.parser.OptionParserFactory.SRC_S3;
@@ -84,7 +85,7 @@ public class StoreArguments {
}
if (parser.hasOption(MISSING_BLOBSTORE) && !nodeStoresSupportMissingBlobStore()) {
- throw new CliArgumentException("This combination of nodestores is not supported by the --" + MISSING_BLOBSTORE, 1);
+ throw new CliArgumentException("This combination of node stores is not supported by the --" + MISSING_BLOBSTORE, 1);
}
}
@@ -106,12 +107,13 @@ public class StoreArguments {
public BlobStoreFactory getSrcBlobStore() throws IOException {
BlobStoreFactory factory;
+ boolean ignoreMissingBinaries = parser.hasOption(IGNORE_MISSING_BINARIES);
if (parser.hasOption(SRC_FBS)) {
factory = new FileBlobStoreFactory(parser.getOption(SRC_FBS));
} else if (parser.hasOption(SRC_S3_CONFIG) && parser.hasOption(SRC_S3)) {
- factory = new S3DataStoreFactory(parser.getOption(SRC_S3_CONFIG), parser.getOption(SRC_S3));
+ factory = new S3DataStoreFactory(parser.getOption(SRC_S3_CONFIG), parser.getOption(SRC_S3), ignoreMissingBinaries);
} else if (parser.hasOption(SRC_FDS)) {
- factory = new FileDataStoreFactory(parser.getOption(SRC_FDS));
+ factory = new FileDataStoreFactory(parser.getOption(SRC_FDS), ignoreMissingBinaries);
} else if (parser.hasOption(MISSING_BLOBSTORE)) {
factory = new MissingBlobStoreFactory();
} else {
@@ -126,9 +128,9 @@ public class StoreArguments {
if (parser.hasOption(DST_FBS)) {
factory = new FileBlobStoreFactory(parser.getOption(DST_FBS));
} else if (parser.hasOption(DST_S3_CONFIG) && parser.hasOption(DST_S3)) {
- factory = new S3DataStoreFactory(parser.getOption(DST_S3_CONFIG), parser.getOption(DST_S3));
+ factory = new S3DataStoreFactory(parser.getOption(DST_S3_CONFIG), parser.getOption(DST_S3), false);
} else if (parser.hasOption(DST_FDS)) {
- factory = new FileDataStoreFactory(parser.getOption(DST_FDS));
+ factory = new FileDataStoreFactory(parser.getOption(DST_FDS), false);
} else if (parser.hasOption(MISSING_BLOBSTORE)) {
factory = new MissingBlobStoreFactory();
} else {
Modified: jackrabbit/oak/trunk/oak-upgrade/src/main/resources/upgrade_usage.txt
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/main/resources/upgrade_usage.txt?rev=1754715&r1=1754714&r2=1754715&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-upgrade/src/main/resources/upgrade_usage.txt (original)
+++ jackrabbit/oak/trunk/oak-upgrade/src/main/resources/upgrade_usage.txt Mon Aug 1 09:34:33 2016
@@ -57,6 +57,8 @@ An descriptor of the Oak node store. Pos
copied and before the commit hooks are applied
--fail-on-error Fail completely if nodes can't be read from the
source repo
+--ignore-missing-binaries Proceed with the migration even if the binaries
+ are missing
# version store options
Added: jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/IgnoreMissingBinariesTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/IgnoreMissingBinariesTest.java?rev=1754715&view=auto
==============================================================================
--- jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/IgnoreMissingBinariesTest.java (added)
+++ jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/IgnoreMissingBinariesTest.java Mon Aug 1 09:34:33 2016
@@ -0,0 +1,95 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.jackrabbit.oak.upgrade;
+
+import com.google.common.base.Joiner;
+import org.apache.jackrabbit.oak.spi.state.NodeStore;
+import org.apache.jackrabbit.oak.upgrade.cli.AbstractOak2OakTest;
+import org.apache.jackrabbit.oak.upgrade.cli.OakUpgrade;
+import org.apache.jackrabbit.oak.upgrade.cli.container.FileDataStoreContainer;
+import org.apache.jackrabbit.oak.upgrade.cli.container.NodeStoreContainer;
+import org.apache.jackrabbit.oak.upgrade.cli.container.SegmentNodeStoreContainer;
+import org.junit.Before;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.jcr.RepositoryException;
+import java.io.File;
+import java.io.IOException;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+public class IgnoreMissingBinariesTest extends AbstractOak2OakTest {
+
+ private static final Logger log = LoggerFactory.getLogger(IgnoreMissingBinariesTest.class);
+
+ private final FileDataStoreContainer blob;
+
+ private final NodeStoreContainer source;
+
+ private final NodeStoreContainer destination;
+
+ @Before
+ public void prepare() throws Exception {
+ NodeStore source = getSourceContainer().open();
+ try {
+ initContent(source);
+ } finally {
+ getSourceContainer().close();
+ }
+
+ assertTrue(new File(blob.getDirectory(), "c2/b2/b5/c2b2b532305bf4b7c73ea4f2747a788bb668cedc").delete());
+
+ String[] args = getArgs();
+ log.info("oak2oak {}", Joiner.on(' ').join(args));
+ OakUpgrade.main(args);
+
+ createSession();
+ }
+
+ public IgnoreMissingBinariesTest() throws IOException {
+ blob = new FileDataStoreContainer();
+ source = new SegmentNodeStoreContainer(blob);
+ destination = new SegmentNodeStoreContainer(blob);
+ }
+
+ @Override
+ protected NodeStoreContainer getSourceContainer() {
+ return source;
+ }
+
+ @Override
+ protected NodeStoreContainer getDestinationContainer() {
+ return destination;
+ }
+
+ @Override
+ protected String[] getArgs() {
+ return new String[]{"--ignore-missing-binaries", "--src-datastore", blob.getDescription(), source.getDescription(), destination.getDescription()};
+ }
+
+ @Test
+ public void validateMigration() throws RepositoryException, IOException {
+ verifyContent(session);
+ verifyBlob(session);
+ assertEquals(0, session.getNode("/libs/sling/xss/config.xml/jcr:content").getProperty("jcr:data").getLength());
+ }
+}
\ No newline at end of file
Modified: jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/AbstractOak2OakTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/AbstractOak2OakTest.java?rev=1754715&r1=1754714&r2=1754715&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/AbstractOak2OakTest.java (original)
+++ jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/AbstractOak2OakTest.java Mon Aug 1 09:34:33 2016
@@ -64,7 +64,7 @@ public abstract class AbstractOak2OakTes
private NodeStore destination;
- private Session session;
+ protected Session session;
private RepositoryImpl repository;
@@ -97,7 +97,10 @@ public abstract class AbstractOak2OakTes
String[] args = getArgs();
log.info("oak2oak {}", Joiner.on(' ').join(args));
OakUpgrade.main(args);
+ createSession();
+ }
+ protected void createSession() throws RepositoryException, IOException {
destination = getDestinationContainer().open();
repository = (RepositoryImpl) new Jcr(destination).with("oak.sling").with(new ReferenceIndexProvider()).createRepository();
session = repository.login(new SimpleCredentials("admin", "admin".toCharArray()));
@@ -145,7 +148,7 @@ public abstract class AbstractOak2OakTes
}
}
- static void verifyContent(Session session) throws RepositoryException {
+ public static void verifyContent(Session session) throws RepositoryException {
Node root = session.getRootNode();
assertEquals("rep:root", root.getPrimaryNodeType().getName());
assertEquals(1, root.getMixinNodeTypes().length);
@@ -162,7 +165,7 @@ public abstract class AbstractOak2OakTes
assertEquals("false", nodeType.getProperty("jcr:isAbstract").getString());
}
- static void verifyBlob(Session session) throws IOException, RepositoryException {
+ public static void verifyBlob(Session session) throws IOException, RepositoryException {
Property p = session.getProperty("/sling-logo.png/jcr:content/jcr:data");
InputStream is = p.getValue().getBinary().getStream();
String expectedMD5 = "35504d8c59455ab12a31f3d06f139a05";
Modified: jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/container/FileDataStoreContainer.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/container/FileDataStoreContainer.java?rev=1754715&r1=1754714&r2=1754715&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/container/FileDataStoreContainer.java (original)
+++ jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/container/FileDataStoreContainer.java Mon Aug 1 09:34:33 2016
@@ -39,7 +39,7 @@ public class FileDataStoreContainer impl
@Override
public BlobStore open() throws IOException {
- return new FileDataStoreFactory(directory.getPath()).create(closer);
+ return new FileDataStoreFactory(directory.getPath(), false).create(closer);
}
@Override
@@ -57,4 +57,8 @@ public class FileDataStoreContainer impl
return directory.getPath();
}
+ public File getDirectory() {
+ return directory;
+ }
+
}
Modified: jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/container/S3DataStoreContainer.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/container/S3DataStoreContainer.java?rev=1754715&r1=1754714&r2=1754715&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/container/S3DataStoreContainer.java (original)
+++ jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/container/S3DataStoreContainer.java Mon Aug 1 09:34:33 2016
@@ -40,7 +40,7 @@ public class S3DataStoreContainer implem
public S3DataStoreContainer(String configFile) throws IOException {
this.directory = Files.createTempDir();
- this.factory = new S3DataStoreFactory(configFile, directory.getPath());
+ this.factory = new S3DataStoreFactory(configFile, directory.getPath(), false);
this.closer = Closer.create();
}