You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commonsrdf.apache.org by st...@apache.org on 2016/10/06 14:47:29 UTC
incubator-commonsrdf git commit: Ensure tests use try autoclose with
graph.stream()
Repository: incubator-commonsrdf
Updated Branches:
refs/heads/rdf4j d058f6672 -> 95cda336c
Ensure tests use try autoclose with graph.stream()
otherwise rdf4j shutdown will take 20 seconds per test!
NativeStoreGraphTest now tests with brand new repository
Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/95cda336
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/95cda336
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/95cda336
Branch: refs/heads/rdf4j
Commit: 95cda336cffa92809408a6a02ac99a8e6f8a53cb
Parents: d058f66
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Tue Oct 4 18:55:17 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Tue Oct 4 18:57:01 2016 +0100
----------------------------------------------------------------------
.../commons/rdf/api/AbstractGraphTest.java | 38 ++++++---
.../commons/rdf/rdf4j/NativeStoreGraphTest.java | 85 ++++++++++----------
2 files changed, 69 insertions(+), 54 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/95cda336/api/src/test/java/org/apache/commons/rdf/api/AbstractGraphTest.java
----------------------------------------------------------------------
diff --git a/api/src/test/java/org/apache/commons/rdf/api/AbstractGraphTest.java b/api/src/test/java/org/apache/commons/rdf/api/AbstractGraphTest.java
index 4dba5cb..cb78c05 100644
--- a/api/src/test/java/org/apache/commons/rdf/api/AbstractGraphTest.java
+++ b/api/src/test/java/org/apache/commons/rdf/api/AbstractGraphTest.java
@@ -30,6 +30,7 @@ import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.ConcurrentHashMap;
+import java.util.stream.Stream;
import org.junit.Assume;
import org.junit.Before;
@@ -184,11 +185,13 @@ public abstract class AbstractGraphTest {
assertTrue(graph.contains(alice, knows, bob));
- Optional<? extends Triple> first = graph.stream().skip(4)
- .findFirst();
- Assume.assumeTrue(first.isPresent());
- Triple existingTriple = first.get();
- assertTrue(graph.contains(existingTriple));
+ try (Stream<? extends Triple> stream = graph.stream()) {
+ Optional<? extends Triple> first = stream.skip(4)
+ .findFirst();
+ Assume.assumeTrue(first.isPresent());
+ Triple existingTriple = first.get();
+ assertTrue(graph.contains(existingTriple));
+ }
Triple nonExistingTriple = factory.createTriple(bob, knows, alice);
assertFalse(graph.contains(nonExistingTriple));
@@ -225,10 +228,13 @@ public abstract class AbstractGraphTest {
graph.remove(alice, knows, bob);
assertEquals(shrunkSize, graph.size());
- Optional<? extends Triple> anyTriple = graph.stream().findAny();
- Assume.assumeTrue(anyTriple.isPresent());
+ Triple otherTriple;
+ try (Stream<? extends Triple> stream = graph.stream()) {
+ Optional<? extends Triple> anyTriple = stream.findAny();
+ Assume.assumeTrue(anyTriple.isPresent());
+ otherTriple = anyTriple.get();
+ }
- Triple otherTriple = anyTriple.get();
graph.remove(otherTriple);
assertEquals(shrunkSize - 1, graph.size());
graph.remove(otherTriple);
@@ -252,9 +258,16 @@ public abstract class AbstractGraphTest {
@Test
public void getTriples() throws Exception {
- long tripleCount = graph.stream().count();
+ long tripleCount;
+ try (Stream<? extends Triple> stream = graph.stream()) {
+ tripleCount = stream.count();
+ }
assertTrue(tripleCount > 0);
- assertTrue(graph.stream().allMatch(t -> graph.contains(t)));
+
+ try (Stream<? extends Triple> stream = graph.stream()) {
+ assertTrue(stream.allMatch(t -> graph.contains(t)));
+ }
+
// Check exact count
Assume.assumeNotNull(bnode1, bnode2, aliceName, bobName, secretClubName,
companyName, bobNameTriple);
@@ -365,7 +378,10 @@ public abstract class AbstractGraphTest {
// unordered() as we don't need to preserve triple order
// sequential() as we don't (currently) require target Graph to be thread-safe
- source.stream().unordered().sequential().forEach(t -> target.add(t));
+
+ try (Stream<? extends Triple> stream = source.stream()) {
+ stream.unordered().sequential().forEach(t -> target.add(t));
+ }
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/95cda336/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java
index bac936f..392d63d 100644
--- a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java
+++ b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java
@@ -18,13 +18,7 @@
package org.apache.commons.rdf.rdf4j;
import java.io.IOException;
-import java.nio.file.FileVisitResult;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.SimpleFileVisitor;
-import java.nio.file.attribute.BasicFileAttributes;
-import java.util.Collections;
-import java.util.Set;
+import java.io.UncheckedIOException;
import org.apache.commons.rdf.api.AbstractGraphTest;
import org.apache.commons.rdf.api.BlankNodeOrIRI;
@@ -37,8 +31,9 @@ import org.eclipse.rdf4j.repository.RepositoryResult;
import org.eclipse.rdf4j.repository.sail.SailRepository;
import org.eclipse.rdf4j.sail.Sail;
import org.eclipse.rdf4j.sail.nativerdf.NativeStore;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
+import org.junit.After;
+import org.junit.Rule;
+import org.junit.rules.TemporaryFolder;
/**
@@ -57,13 +52,11 @@ public class NativeStoreGraphTest extends AbstractGraphTest {
public final class NativeStoreFactory implements RDFTermFactory {
- RDF4JTermFactory rdf4jFactory = new RDF4JTermFactory(repository.getValueFactory());
+ RDF4JTermFactory rdf4jFactory = new RDF4JTermFactory(getRepository().getValueFactory());
@Override
public RDF4JGraph createGraph() {
- // We re-use the repository connection, but use a different context every time
- Set<RDF4JBlankNode> context = Collections.singleton(rdf4jFactory.createBlankNode());
- return rdf4jFactory.asRDFTermGraph(repository, context);
+ return rdf4jFactory.asRDFTermGraph(getRepository());
}
// Delegate methods
@@ -90,49 +83,55 @@ public class NativeStoreGraphTest extends AbstractGraphTest {
}
}
- private static SailRepository repository;
- private static Path tempDir;
+
+ @Rule
+ public TemporaryFolder tempDir = new TemporaryFolder();
+
+ private SailRepository repository;
- @BeforeClass
- public static void createRepository() {
- try {
- tempDir = Files.createTempDirectory("test-commonsrdf-rdf4j");
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- Sail sail = new NativeStore(tempDir.toFile());
+ public void createRepository() throws IOException {
+ System.out.println("Oh");
+ Sail sail = new NativeStore(tempDir.newFolder());
repository = new SailRepository(sail);
repository.initialize();
}
- @AfterClass
- public static void shutdownAndDelete() throws IOException {
+ public synchronized SailRepository getRepository() {
+ if (repository == null) {
+ try {
+ createRepository();
+ } catch (IOException e) {
+ throw new UncheckedIOException(e);
+ }
+ }
+ return repository;
+ }
+
+ @After
+ public void shutdownAndDelete() throws IOException {
// must shutdown before we delete
if (repository != null) {
System.out.println("Shutting down rdf4j repository " + repository);
repository.shutDown();
System.out.println("rdf4j repository shut down.");
}
- if (tempDir != null) {
- deleteAll(tempDir);
- }
}
- private static void deleteAll(Path dir) throws IOException {
- Files.walkFileTree(dir, 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 {
- FileVisitResult r = super.postVisitDirectory(dir, exc);
- Files.delete(dir);
- return r;
- }
- });
- }
+// private static void deleteAll(Path dir) throws IOException {
+// Files.walkFileTree(dir, 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 {
+// FileVisitResult r = super.postVisitDirectory(dir, exc);
+// Files.delete(dir);
+// return r;
+// }
+// });
+// }
@Override
public RDFTermFactory createFactory() {