Author: tomekr
Date: Wed Sep 21 08:25:14 2016
New Revision: 1761695

URL: http://svn.apache.org/viewvc?rev=1761695&view=rev
Log:
OAK-4831: Don't break the upgrade tests if the directory can't be cleaned-up

Modified:
    
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/UpgradeOldSegmentTest.java
    
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/Jcr2ToSegmentTest.java
    
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/SegmentTarToSegmentTest.java
    
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/SegmentToSegmentTarTest.java
    
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/SegmentToSegmentTarWithMissingDestinationDirectoryTest.java
    
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/SegmentToSegmentTest.java
    
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/SegmentToSegmentWithMissingDestinationDirectoryTest.java
    
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/blob/FbsToFbsTest.java
    
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/blob/FbsToFdsTest.java
    
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/blob/FdsToFbsTest.java
    
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/container/SegmentNodeStoreContainer.java
    
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/container/SegmentTarNodeStoreContainer.java

Modified: 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/UpgradeOldSegmentTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/UpgradeOldSegmentTest.java?rev=1761695&r1=1761694&r2=1761695&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/UpgradeOldSegmentTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/UpgradeOldSegmentTest.java
 Wed Sep 21 08:25:14 2016
@@ -18,7 +18,6 @@
  */
 package org.apache.jackrabbit.oak.upgrade;
 
-import static 
org.apache.jackrabbit.oak.segment.file.FileStoreBuilder.fileStoreBuilder;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
@@ -41,10 +40,9 @@ import org.apache.commons.io.FileUtils;
 import org.apache.jackrabbit.api.JackrabbitRepository;
 import org.apache.jackrabbit.commons.cnd.CndImporter;
 import org.apache.jackrabbit.oak.jcr.Jcr;
-import org.apache.jackrabbit.oak.segment.SegmentNodeStoreBuilders;
-import org.apache.jackrabbit.oak.segment.file.FileStore;
 import org.apache.jackrabbit.oak.upgrade.cli.OakUpgrade;
 import org.apache.jackrabbit.oak.upgrade.cli.Util;
+import 
org.apache.jackrabbit.oak.upgrade.cli.container.SegmentTarNodeStoreContainer;
 import org.junit.Test;
 
 public class UpgradeOldSegmentTest {
@@ -54,16 +52,15 @@ public class UpgradeOldSegmentTest {
         File testFolder = new File(new File("target"), 
UpgradeOldSegmentTest.class.getSimpleName());
         FileUtils.deleteDirectory(testFolder);
         File oldRepo = new File(testFolder, "test-repo-1.0");
-        File newRepo = new File(testFolder, "test-repo-new");
         oldRepo.mkdirs();
         try (InputStream in = 
UpgradeOldSegmentTest.class.getResourceAsStream("/test-repo-1.0.zip")) {
             Util.unzip(in, oldRepo);
         }
 
-        OakUpgrade.main("segment-old:" + oldRepo.getPath(), newRepo.getPath());
+        SegmentTarNodeStoreContainer newRepoContainer = new 
SegmentTarNodeStoreContainer();
+        OakUpgrade.main("segment-old:" + oldRepo.getPath(), 
newRepoContainer.getDescription());
 
-        FileStore store = fileStoreBuilder(new File(newRepo, 
"segmentstore")).build();
-        Repository repo = new 
Jcr(SegmentNodeStoreBuilders.builder(store).build()).createRepository();
+        Repository repo = new Jcr(newRepoContainer.open()).createRepository();
         Session s = repo.login(new SimpleCredentials("admin", 
"admin".toCharArray()));
 
         Node myType = s.getNode("/jcr:system/jcr:nodeTypes/test:MyType");
@@ -114,8 +111,8 @@ public class UpgradeOldSegmentTest {
         if (repo instanceof JackrabbitRepository) {
             ((JackrabbitRepository) repo).shutdown();
         }
-        store.close();
-
+        newRepoContainer.close();
+        newRepoContainer.clean();
         FileUtils.deleteDirectory(testFolder);
     }
 }

Modified: 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/Jcr2ToSegmentTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/Jcr2ToSegmentTest.java?rev=1761695&r1=1761694&r2=1761695&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/Jcr2ToSegmentTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/Jcr2ToSegmentTest.java
 Wed Sep 21 08:25:14 2016
@@ -43,6 +43,9 @@ public class Jcr2ToSegmentTest {
 
     private Session session;
 
+    public Jcr2ToSegmentTest() throws IOException {
+    }
+
     @Before
     public void prepare() throws Exception {
         File tempDir = new File("target", "test-jcr2");

Modified: 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/SegmentTarToSegmentTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/SegmentTarToSegmentTest.java?rev=1761695&r1=1761694&r2=1761695&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/SegmentTarToSegmentTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/SegmentTarToSegmentTest.java
 Wed Sep 21 08:25:14 2016
@@ -20,13 +20,15 @@ import org.apache.jackrabbit.oak.upgrade
 import 
org.apache.jackrabbit.oak.upgrade.cli.container.SegmentNodeStoreContainer;
 import 
org.apache.jackrabbit.oak.upgrade.cli.container.SegmentTarNodeStoreContainer;
 
+import java.io.IOException;
+
 public class SegmentTarToSegmentTest extends AbstractOak2OakTest {
 
     private final NodeStoreContainer source;
 
     private final NodeStoreContainer destination;
 
-    public SegmentTarToSegmentTest() {
+    public SegmentTarToSegmentTest() throws IOException {
         source = new SegmentTarNodeStoreContainer();
         destination = new SegmentNodeStoreContainer();
     }

Modified: 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/SegmentToSegmentTarTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/SegmentToSegmentTarTest.java?rev=1761695&r1=1761694&r2=1761695&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/SegmentToSegmentTarTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/SegmentToSegmentTarTest.java
 Wed Sep 21 08:25:14 2016
@@ -20,13 +20,15 @@ import org.apache.jackrabbit.oak.upgrade
 import 
org.apache.jackrabbit.oak.upgrade.cli.container.SegmentTarNodeStoreContainer;
 import 
org.apache.jackrabbit.oak.upgrade.cli.container.SegmentNodeStoreContainer;
 
+import java.io.IOException;
+
 public class SegmentToSegmentTarTest extends AbstractOak2OakTest {
 
     private final NodeStoreContainer source;
 
     private final NodeStoreContainer destination;
 
-    public SegmentToSegmentTarTest() {
+    public SegmentToSegmentTarTest() throws IOException {
         source = new SegmentNodeStoreContainer();
         destination = new SegmentTarNodeStoreContainer();
     }

Modified: 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/SegmentToSegmentTarWithMissingDestinationDirectoryTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/SegmentToSegmentTarWithMissingDestinationDirectoryTest.java?rev=1761695&r1=1761694&r2=1761695&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/SegmentToSegmentTarWithMissingDestinationDirectoryTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/SegmentToSegmentTarWithMissingDestinationDirectoryTest.java
 Wed Sep 21 08:25:14 2016
@@ -20,18 +20,20 @@ import org.apache.jackrabbit.oak.upgrade
 import 
org.apache.jackrabbit.oak.upgrade.cli.container.SegmentNodeStoreContainer;
 import 
org.apache.jackrabbit.oak.upgrade.cli.container.SegmentTarNodeStoreContainer;
 
+import java.io.IOException;
+
 public class SegmentToSegmentTarWithMissingDestinationDirectoryTest  extends 
AbstractOak2OakTest {
 
     private final NodeStoreContainer source;
 
     private final NodeStoreContainer destination;
 
-    public SegmentToSegmentTarWithMissingDestinationDirectoryTest() {
+    public SegmentToSegmentTarWithMissingDestinationDirectoryTest() throws 
IOException {
         source = new SegmentNodeStoreContainer();
         destination = getSegmentTarNodeStoreContainerWithMissingDirectory();
     }
 
-    private SegmentTarNodeStoreContainer 
getSegmentTarNodeStoreContainerWithMissingDirectory() {
+    private SegmentTarNodeStoreContainer 
getSegmentTarNodeStoreContainerWithMissingDirectory() throws IOException {
         SegmentTarNodeStoreContainer segmentTarNodeStoreContainer = new 
SegmentTarNodeStoreContainer();
         segmentTarNodeStoreContainer.getDirectory().delete();
         return segmentTarNodeStoreContainer;

Modified: 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/SegmentToSegmentTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/SegmentToSegmentTest.java?rev=1761695&r1=1761694&r2=1761695&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/SegmentToSegmentTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/SegmentToSegmentTest.java
 Wed Sep 21 08:25:14 2016
@@ -19,13 +19,15 @@ package org.apache.jackrabbit.oak.upgrad
 import org.apache.jackrabbit.oak.upgrade.cli.container.NodeStoreContainer;
 import 
org.apache.jackrabbit.oak.upgrade.cli.container.SegmentNodeStoreContainer;
 
+import java.io.IOException;
+
 public class SegmentToSegmentTest extends AbstractOak2OakTest {
 
     private final NodeStoreContainer source;
 
     private final NodeStoreContainer destination;
 
-    public SegmentToSegmentTest() {
+    public SegmentToSegmentTest() throws IOException {
         source = new SegmentNodeStoreContainer();
         destination = new SegmentNodeStoreContainer();
     }

Modified: 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/SegmentToSegmentWithMissingDestinationDirectoryTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/SegmentToSegmentWithMissingDestinationDirectoryTest.java?rev=1761695&r1=1761694&r2=1761695&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/SegmentToSegmentWithMissingDestinationDirectoryTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/SegmentToSegmentWithMissingDestinationDirectoryTest.java
 Wed Sep 21 08:25:14 2016
@@ -19,17 +19,19 @@ package org.apache.jackrabbit.oak.upgrad
 import org.apache.jackrabbit.oak.upgrade.cli.container.NodeStoreContainer;
 import 
org.apache.jackrabbit.oak.upgrade.cli.container.SegmentNodeStoreContainer;
 
+import java.io.IOException;
+
 public class SegmentToSegmentWithMissingDestinationDirectoryTest extends 
AbstractOak2OakTest {
     private final NodeStoreContainer source;
 
     private final NodeStoreContainer destination;
 
-    public SegmentToSegmentWithMissingDestinationDirectoryTest() {
+    public SegmentToSegmentWithMissingDestinationDirectoryTest() throws 
IOException {
         source = new SegmentNodeStoreContainer();
         destination = getSegmentNodeStoreContainerWithMissingDirectory();
     }
 
-    private SegmentNodeStoreContainer 
getSegmentNodeStoreContainerWithMissingDirectory() {
+    private SegmentNodeStoreContainer 
getSegmentNodeStoreContainerWithMissingDirectory() throws IOException {
         SegmentNodeStoreContainer segmentNodeStoreContainer = new 
SegmentNodeStoreContainer();
         segmentNodeStoreContainer.getDirectory().delete();
         return segmentNodeStoreContainer;

Modified: 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/blob/FbsToFbsTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/blob/FbsToFbsTest.java?rev=1761695&r1=1761694&r2=1761695&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/blob/FbsToFbsTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/blob/FbsToFbsTest.java
 Wed Sep 21 08:25:14 2016
@@ -22,6 +22,8 @@ import org.apache.jackrabbit.oak.upgrade
 import org.apache.jackrabbit.oak.upgrade.cli.container.NodeStoreContainer;
 import 
org.apache.jackrabbit.oak.upgrade.cli.container.SegmentTarNodeStoreContainer;
 
+import java.io.IOException;
+
 public class FbsToFbsTest extends AbstractOak2OakTest {
 
     private final BlobStoreContainer sourceBlob;
@@ -32,7 +34,7 @@ public class FbsToFbsTest extends Abstra
 
     private final NodeStoreContainer destination;
 
-    public FbsToFbsTest() {
+    public FbsToFbsTest() throws IOException {
         sourceBlob = new FileBlobStoreContainer();
         destinationBlob = new FileBlobStoreContainer();
         source = new SegmentTarNodeStoreContainer(sourceBlob);

Modified: 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/blob/FbsToFdsTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/blob/FbsToFdsTest.java?rev=1761695&r1=1761694&r2=1761695&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/blob/FbsToFdsTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/blob/FbsToFdsTest.java
 Wed Sep 21 08:25:14 2016
@@ -23,6 +23,8 @@ import org.apache.jackrabbit.oak.upgrade
 import org.apache.jackrabbit.oak.upgrade.cli.container.NodeStoreContainer;
 import 
org.apache.jackrabbit.oak.upgrade.cli.container.SegmentTarNodeStoreContainer;
 
+import java.io.IOException;
+
 public class FbsToFdsTest extends AbstractOak2OakTest {
 
     private final BlobStoreContainer sourceBlob;
@@ -33,7 +35,7 @@ public class FbsToFdsTest extends Abstra
 
     private final NodeStoreContainer destination;
 
-    public FbsToFdsTest() {
+    public FbsToFdsTest() throws IOException {
         sourceBlob = new FileBlobStoreContainer();
         destinationBlob = new FileDataStoreContainer();
         source = new SegmentTarNodeStoreContainer(sourceBlob);

Modified: 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/blob/FdsToFbsTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/blob/FdsToFbsTest.java?rev=1761695&r1=1761694&r2=1761695&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/blob/FdsToFbsTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/blob/FdsToFbsTest.java
 Wed Sep 21 08:25:14 2016
@@ -23,6 +23,8 @@ import org.apache.jackrabbit.oak.upgrade
 import org.apache.jackrabbit.oak.upgrade.cli.container.NodeStoreContainer;
 import 
org.apache.jackrabbit.oak.upgrade.cli.container.SegmentTarNodeStoreContainer;
 
+import java.io.IOException;
+
 public class FdsToFbsTest extends AbstractOak2OakTest {
 
     private final BlobStoreContainer sourceBlob;
@@ -33,7 +35,7 @@ public class FdsToFbsTest extends Abstra
 
     private final NodeStoreContainer destination;
 
-    public FdsToFbsTest() {
+    public FdsToFbsTest() throws IOException {
         sourceBlob = new FileDataStoreContainer();
         destinationBlob = new FileBlobStoreContainer();
         source = new SegmentTarNodeStoreContainer(sourceBlob);

Modified: 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/container/SegmentNodeStoreContainer.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/container/SegmentNodeStoreContainer.java?rev=1761695&r1=1761694&r2=1761695&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/container/SegmentNodeStoreContainer.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/container/SegmentNodeStoreContainer.java
 Wed Sep 21 08:25:14 2016
@@ -18,15 +18,14 @@ package org.apache.jackrabbit.oak.upgrad
 
 import java.io.File;
 import java.io.IOException;
+import java.nio.file.Paths;
 
-import org.apache.commons.io.FileUtils;
 import org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStore;
 import org.apache.jackrabbit.oak.plugins.segment.file.FileStore;
 import 
org.apache.jackrabbit.oak.plugins.segment.file.InvalidFileStoreVersionException;
 import org.apache.jackrabbit.oak.spi.state.NodeStore;
 
-import com.google.common.io.Files;
-
+import static 
org.apache.jackrabbit.oak.upgrade.cli.container.SegmentTarNodeStoreContainer.deleteRecursive;
 import static 
org.apache.jackrabbit.oak.upgrade.cli.parser.StoreArguments.SEGMENT_OLD_PREFIX;
 
 public class SegmentNodeStoreContainer implements NodeStoreContainer {
@@ -37,20 +36,22 @@ public class SegmentNodeStoreContainer i
 
     private FileStore fs;
 
-    public SegmentNodeStoreContainer() {
-        this(Files.createTempDir());
+    public SegmentNodeStoreContainer() throws IOException {
+        this(null, null);
     }
 
-    public SegmentNodeStoreContainer(File directory) {
-        this.blob = null;
-        this.directory = directory;
+    public SegmentNodeStoreContainer(File directory) throws IOException {
+        this(null, directory);
     }
 
-    public SegmentNodeStoreContainer(BlobStoreContainer blob) {
-        this.blob = blob;
-        this.directory = Files.createTempDir();
+    public SegmentNodeStoreContainer(BlobStoreContainer blob) throws 
IOException {
+        this(blob, null);
     }
 
+    private SegmentNodeStoreContainer(BlobStoreContainer blob, File directory) 
throws IOException {
+        this.blob = blob;
+        this.directory = directory == null ? 
java.nio.file.Files.createTempDirectory(Paths.get("target"), 
"segment").toFile() : directory;
+    }
     @Override
     public NodeStore open() throws IOException {
         directory.mkdirs();
@@ -75,7 +76,7 @@ public class SegmentNodeStoreContainer i
 
     @Override
     public void clean() throws IOException {
-        FileUtils.deleteDirectory(directory);
+        deleteRecursive(directory);
         if (blob != null) {
             blob.clean();
         }

Modified: 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/container/SegmentTarNodeStoreContainer.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/container/SegmentTarNodeStoreContainer.java?rev=1761695&r1=1761694&r2=1761695&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/container/SegmentTarNodeStoreContainer.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/container/SegmentTarNodeStoreContainer.java
 Wed Sep 21 08:25:14 2016
@@ -20,35 +20,46 @@ import static org.apache.jackrabbit.oak.
 
 import java.io.File;
 import java.io.IOException;
+import java.nio.file.FileVisitResult;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.nio.file.SimpleFileVisitor;
+import java.nio.file.attribute.BasicFileAttributes;
 
-import com.google.common.io.Files;
-import org.apache.commons.io.FileUtils;
 import org.apache.jackrabbit.oak.segment.SegmentNodeStoreBuilders;
 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.spi.state.NodeStore;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class SegmentTarNodeStoreContainer implements NodeStoreContainer {
 
+    private static final Logger LOG = 
LoggerFactory.getLogger(SegmentTarNodeStoreContainer.class);
+
     private final File directory;
 
     private final BlobStoreContainer blob;
 
     private FileStore fs;
 
-    public SegmentTarNodeStoreContainer() {
-        this(Files.createTempDir());
+    public SegmentTarNodeStoreContainer() throws IOException {
+        this(null, null);
+    }
+
+    public SegmentTarNodeStoreContainer(File directory) throws IOException {
+        this(null, directory);
     }
 
-    public SegmentTarNodeStoreContainer(File directory) {
-        this.blob = null;
-        this.directory = directory;
+    public SegmentTarNodeStoreContainer(BlobStoreContainer blob) throws 
IOException {
+        this(blob, null);
     }
 
-    public SegmentTarNodeStoreContainer(BlobStoreContainer blob) {
+    private SegmentTarNodeStoreContainer(BlobStoreContainer blob, File 
directory) throws IOException {
         this.blob = blob;
-        this.directory = Files.createTempDir();
+        this.directory = directory == null ? 
Files.createTempDirectory(Paths.get("target"), "segment-tar").toFile() : 
directory;
     }
 
     @Override
@@ -76,7 +87,7 @@ public class SegmentTarNodeStoreContaine
 
     @Override
     public void clean() throws IOException {
-        FileUtils.deleteDirectory(directory);
+        deleteRecursive(directory);
         if (blob != null) {
             blob.clean();
         }
@@ -91,4 +102,23 @@ public class SegmentTarNodeStoreContaine
         return directory;
     }
 
+    static void deleteRecursive(File directory) {
+        try {
+            Files.walkFileTree(directory.toPath(), new 
SimpleFileVisitor<Path>() {
+                @Override
+                public FileVisitResult visitFile(Path file, 
BasicFileAttributes attrs) throws IOException {
+                    Files.delete(file);
+                    return FileVisitResult.CONTINUE;
+                }
+
+                @Override
+                public FileVisitResult postVisitDirectory(Path dir, 
IOException exc) throws IOException {
+                    Files.delete(dir);
+                    return FileVisitResult.CONTINUE;
+                }
+            });
+        } catch(IOException e) {
+            LOG.error("Can't remove directory " + directory, e);
+        }
+    }
 }


Reply via email to