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