You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2015/08/10 12:34:45 UTC

[1/2] jena git commit: JENA-988 : Test for whether a disk location is in use or not.

Repository: jena
Updated Branches:
  refs/heads/master 4a2c5d29c -> 7169c67c8


JENA-988 : Test for whether a disk location is in use or not.


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/8c315984
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/8c315984
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/8c315984

Branch: refs/heads/master
Commit: 8c315984418b12ffb348ca8bd087922f66d6e386
Parents: b328842
Author: Andy Seaborne <an...@apache.org>
Authored: Mon Aug 10 11:30:12 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Mon Aug 10 11:34:09 2015 +0100

----------------------------------------------------------------------
 .../java/org/apache/jena/tdb/TDBFactory.java    | 32 +++++++++++--
 .../org/apache/jena/tdb/TestTDBFactory.java     | 47 ++++++++++++++++++++
 2 files changed, 76 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/8c315984/jena-tdb/src/main/java/org/apache/jena/tdb/TDBFactory.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/TDBFactory.java b/jena-tdb/src/main/java/org/apache/jena/tdb/TDBFactory.java
index cf2f94a..26ea8c1 100644
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/TDBFactory.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/TDBFactory.java
@@ -18,6 +18,9 @@
 
 package org.apache.jena.tdb;
 
+import java.io.File ;
+
+import org.apache.jena.atlas.lib.FileOps ;
 import org.apache.jena.query.Dataset ;
 import org.apache.jena.query.DatasetFactory ;
 import org.apache.jena.sparql.core.DatasetGraph ;
@@ -125,9 +128,32 @@ public class TDBFactory
         return null ;
     }
     
-    /** test whether a location has a TDB database (pragmatic test). */ 
-    private static boolean freshLocation(Location location) {
-        return TDBInternal.isNewDatabaseArea(location) ;
+    /** Test whether a location already has a TDB database or whether a call to TDBFactory 
+     * will cause a new, fresh TDB database to be created (pragmatic tests).
+     * The directory may be empty, or not exist.
+     * Existing databases return "true".  
+     */
+    public static boolean inUseLocation(String directory) {
+        return inUseLocation(Location.create(directory)) ;
+    }
+
+    /** Test whether a location already has a TDB database or whether a call to TDBFactory 
+     * will cause a new, fresh TDB database to be created (pragmatic tests).
+     * The directory may be empty, or not exist.
+     * Existing databases return "true".  
+     */
+    public static boolean inUseLocation(Location location) {
+        if ( location.isMemUnique() )
+            return false ;
+        if ( location.isMem() )
+            return StoreConnection.getExisting(location) != null ;
+        String dirname = location.getDirectoryPath() ;
+        File d = new File(dirname) ;
+        
+        if ( ! d.exists() )
+            // TDB autocreates directories one level.
+            return ! FileOps.exists(d.getParent()) ;
+        return ! TDBInternal.isNewDatabaseArea(location) ;
     }
 
     /** Set the {@link StoreParams} for specific Location.

http://git-wip-us.apache.org/repos/asf/jena/blob/8c315984/jena-tdb/src/test/java/org/apache/jena/tdb/TestTDBFactory.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/test/java/org/apache/jena/tdb/TestTDBFactory.java b/jena-tdb/src/test/java/org/apache/jena/tdb/TestTDBFactory.java
index 31af20a..1672c5e 100644
--- a/jena-tdb/src/test/java/org/apache/jena/tdb/TestTDBFactory.java
+++ b/jena-tdb/src/test/java/org/apache/jena/tdb/TestTDBFactory.java
@@ -40,6 +40,7 @@ public class TestTDBFactory extends BaseTest
     
     @Before public void before()
     {
+        StoreConnection.reset() ;
         FileOps.clearDirectory(DIR) ; 
     }
     
@@ -104,5 +105,51 @@ public class TestTDBFactory extends BaseTest
         
         assertNotSame(dgBase1, dgBase2) ;
     }
+    
+    @Test public void testTDBFresh01() {
+        boolean b = TDBFactory.inUseLocation(DIR) ;
+        assertFalse("Expect false before any creation attempted", b) ;
+    }
+    
+    @Test public void testTDBFresh02() {
+        boolean b = TDBFactory.inUseLocation(DIR) ;
+        assertFalse("Expect false before any creation attempted", b) ;
+        TDBFactory.createDataset(DIR) ;
+        b = TDBFactory.inUseLocation(DIR) ;
+        assertTrue("Expected true after creation attempted", b) ;
+        StoreConnection.expel(Location.create(DIR), true); 
+    }
+    
+    @Test public void testTDBFresh03() {
+        boolean b = TDBFactory.inUseLocation(DIR) ;
+        assertFalse("Expect true before any creation attempted", b) ;
+        TDBFactory.createDataset(DIR) ;
+        b = TDBFactory.inUseLocation(DIR) ;
+        assertTrue("Expected true after creation attempted", b) ;
+        StoreConnection.expel(Location.create(DIR), true);
+        b = TDBFactory.inUseLocation(DIR) ;
+        assertTrue("Expected true even after StoreConenction reset", b) ;
+    }
 
+    @Test public void testTDBFresh11() {
+        Location loc = Location.mem() ;
+        boolean b = TDBFactory.inUseLocation(loc) ;
+        assertFalse("Expect false before any creation attempted", b) ;
+    }
+    
+    @Test public void testTDBFresh22() {
+        Location loc = Location.mem() ;
+        boolean b = TDBFactory.inUseLocation(loc) ;
+        TDBFactory.createDataset(loc) ;
+        b = TDBFactory.inUseLocation(loc) ;
+        assertFalse("Expected false for a unique memory location", b) ;
+    }
+    
+    @Test public void testTDBFresh23() {
+        Location loc = Location.mem("FOO") ;
+        boolean b = TDBFactory.inUseLocation(loc) ;
+        TDBFactory.createDataset(loc) ;
+        b = TDBFactory.inUseLocation(loc) ;
+        assertTrue("Expected true for a named memory location", b) ;
+    }
 }


[2/2] jena git commit: Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/jena

Posted by an...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/jena


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/7169c67c
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/7169c67c
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/7169c67c

Branch: refs/heads/master
Commit: 7169c67c89a3abd5ed818efad6d3fdbfd51f41fd
Parents: 8c31598 4a2c5d2
Author: Andy Seaborne <an...@apache.org>
Authored: Mon Aug 10 11:34:26 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Mon Aug 10 11:34:26 2015 +0100

----------------------------------------------------------------------
 .../permissions/example/ExampleEvaluator.java   | 40 ++++++++++++--------
 .../jena/security/example/fuseki/config.ttl     | 26 ++++++-------
 2 files changed, 38 insertions(+), 28 deletions(-)
----------------------------------------------------------------------