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/09/21 08:25:15 UTC
svn commit: r1761695 - in
/jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade:
./ cli/ cli/blob/ cli/container/
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);
+ }
+ }
}