You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by rv...@apache.org on 2014/11/10 11:51:43 UTC
[44/50] [abbrv] jena git commit: Integrate new StoreParams into
database creation.
Integrate new StoreParams into database creation.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/0bf29773
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/0bf29773
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/0bf29773
Branch: refs/heads/hadoop-rdf
Commit: 0bf297734e4d61a52460b76c351bafad097ad466
Parents: f53761d
Author: Andy Seaborne <an...@apache.org>
Authored: Sat Nov 8 16:19:10 2014 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Sat Nov 8 16:19:10 2014 +0000
----------------------------------------------------------------------
.../com/hp/hpl/jena/tdb/StoreConnection.java | 2 +-
.../java/com/hp/hpl/jena/tdb/setup/Build.java | 6 +-
.../hpl/jena/tdb/setup/DatasetBuilderStd.java | 107 ++++++--------
.../com/hp/hpl/jena/tdb/setup/StoreParams.java | 11 ++
.../hp/hpl/jena/tdb/setup/StoreParamsCodec.java | 14 +-
.../hp/hpl/jena/tdb/setup/StoreParamsConst.java | 8 +-
.../hp/hpl/jena/tdb/setup/TestStoreParams.java | 22 +--
.../jena/tdb/setup/TestStoreParamsChoose.java | 26 ++--
.../jena/tdb/setup/TestStoreParamsCreate.java | 138 +++++++++++++++----
.../jena/tdb/transaction/TestTransRestart.java | 2 +-
10 files changed, 209 insertions(+), 127 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/0bf29773/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/StoreConnection.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/StoreConnection.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/StoreConnection.java
index 5935a9a..dbf9865 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/StoreConnection.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/StoreConnection.java
@@ -230,7 +230,7 @@ public class StoreConnection
return sConn ;
}
- /** Make a StoreConnection based on any StoreParams at eh location or the system defaults. */
+ /** Make a StoreConnection based on any StoreParams at the location or the system defaults. */
public static StoreConnection make(Location location) {
return make(location, null) ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/0bf29773/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/Build.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/Build.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/Build.java
index 558846a..b23d804 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/Build.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/Build.java
@@ -49,7 +49,7 @@ public class Build
// XXX replace with:
// return DatasetBuilderStd.stdBuilder().makeTupleIndex(location, indexName, primary, indexOrder) ;
// All this to BuilderDB.
- StoreParamsBuilder spb = StoreParamsBuilder.create() ;
+ StoreParamsBuilder spb = StoreParams.builder() ;
spb.blockReadCacheSize(readCacheSize) ;
spb.blockWriteCacheSize(writeCacheSize) ;
RecordFactory recordFactory = new RecordFactory(dftKeyLength, dftValueLength) ;
@@ -78,7 +78,7 @@ public class Build
String indexNode2Id, int node2NodeIdCacheSize,
String indexId2Node, int nodeId2NodeCacheSize,
int sizeNodeMissCacheSize) {
- StoreParamsBuilder spb = StoreParamsBuilder.create() ;
+ StoreParamsBuilder spb = StoreParams.builder() ;
spb.indexNode2Id(indexNode2Id).node2NodeIdCacheSize(node2NodeIdCacheSize) ;
spb.indexId2Node(indexId2Node).nodeId2NodeCacheSize(nodeId2NodeCacheSize) ;
DatasetBuilderStd dbBuild = DatasetBuilderStd.stdBuilder() ;
@@ -125,7 +125,7 @@ public class Build
* @see StoreParams
* @see StoreParamsDynamic
*/
- static StoreParams fixStoreParams(Location location, boolean isNew, StoreParams pApp, StoreParams pLoc, StoreParams pDft) {
+ static StoreParams decideStoreParams(Location location, boolean isNew, StoreParams pApp, StoreParams pLoc, StoreParams pDft) {
StoreParams p = null ;
if ( pLoc != null ) {
// pLoc so use it, modify by pApp.
http://git-wip-us.apache.org/repos/asf/jena/blob/0bf29773/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/DatasetBuilderStd.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/DatasetBuilderStd.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/DatasetBuilderStd.java
index 3dd02e6..7b6e60c 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/DatasetBuilderStd.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/DatasetBuilderStd.java
@@ -19,16 +19,12 @@
package com.hp.hpl.jena.tdb.setup ;
import java.io.File ;
-import java.io.IOException ;
+import java.io.FileFilter ;
import java.util.Collections ;
import java.util.HashMap ;
import java.util.Map ;
-import java.util.Properties ;
-import org.apache.jena.atlas.io.IO ;
import org.apache.jena.atlas.lib.ColumnMap ;
-import org.apache.jena.atlas.lib.FileOps ;
-import org.apache.jena.atlas.lib.PropertyUtils ;
import org.apache.jena.atlas.lib.StrUtils ;
import org.slf4j.Logger ;
@@ -81,34 +77,50 @@ public class DatasetBuilderStd implements DatasetBuilder {
* The parameters for a store have 3 inputs: the parameters provided,
* any parameters
*
- *
- *
- * @param location Where to create the database.
- * @param params Store parameters to use (null means use default).
+ * @param location Where to create the database.
+ * @param appParams Store parameters to use (null means use default). {See {@linkplain StoreParams}).
* @return DatasetGraphTDB
*/
- public static DatasetGraphTDB create(Location location, StoreParams params) {
- StoreParams $params = paramsForLocation(location) ;
- // ---- Experimental
- if ( ! location.isMem() && params != null ) {
- if ( FileOps.existsAnyFiles(location.getDirectoryPath()) )
- $params = StoreParamsBuilder.modify($params, params) ;
- else
- $params = params ;
- params = null ;
- }
-
- // ----
- if ( params != null )
- log.warn("StoreParams != null (experimental)") ;
+ public static DatasetGraphTDB create(Location location, StoreParams appParams) {
+ StoreParams locParams = StoreParamsCodec.read(location) ;
+ StoreParams dftParams = StoreParams.getDftStoreParams() ;
+ // This can write the chosen parameters if necessary (new database, appParams != null, locParams == null)
+ boolean newArea = isNewDatabaseArea(location) ;
+ StoreParams params = Build.decideStoreParams(location, newArea, appParams, locParams, dftParams) ;
DatasetBuilderStd x = new DatasetBuilderStd() ;
x.standardSetup() ;
- DatasetGraphTDB dsg = x.build(location, $params) ;
- // Write params.
- //if ( params != StoreParams.getDftStoreParams() )
-
+ DatasetGraphTDB dsg = x.build(location, params) ;
return dsg ;
}
+
+ /** Look at a directory and see if it is a new area */
+ private static boolean isNewDatabaseArea(Location location) {
+ if ( location.isMem() )
+ return true ;
+ File d = new File(location.getDirectoryPath()) ;
+ if ( !d.exists() )
+ return true ;
+ FileFilter ff = fileFilterNewDB ;
+ File[] entries = d.listFiles(ff) ;
+ return entries.length == 0 ;
+ }
+
+ static FileFilter fileFilterNewDB = new FileFilter() {
+ @Override
+ public boolean accept(File pathname) {
+ String fn = pathname.getName() ;
+ if ( fn.equals(".") || fn.equals("..") )
+ return false ;
+ if ( pathname.isDirectory() )
+ return true ;
+
+ if ( fn.equals(StoreParamsConst.TDB_CONFIG_FILE) )
+ return false ;
+ return true ;
+ }
+ } ;
+
+
public static DatasetGraphTDB create(StoreParams params) {
// Memory version?
@@ -147,38 +159,7 @@ public class DatasetBuilderStd implements DatasetBuilder {
set(nodeTableBuilder, tupleIndexBuilder) ;
}
- private static StoreParams paramsForLocation(Location location) {
- if ( location.exists(DB_CONFIG_FILE) ) {
- log.debug("Existing configuration file found") ;
- Properties properties = new Properties() ;
- try {
- PropertyUtils.loadFromFile(properties, DB_CONFIG_FILE) ;
- } catch (IOException ex) { IO.exception(ex) ; throw new TDBException("Bad configuration file", ex) ; }
- }
- return StoreParams.getDftStoreParams() ;
- }
-
-// private void checkIfConfig(Location location) {
-// }
-
- private void checkIfNew(Location location) {
- if ( location.isMem() ) {
- return ;
- }
-
- if ( FileOps.existsAnyFiles(location.getDirectoryPath()) ) {
-
- }
- if ( location.exists(DB_CONFIG_FILE) ) {
- log.debug("Existing config file") ;
- return ;
- }
-
- }
-
- private void checkConfiguration() { }
-
private static void checkLocation(Location location) {
if ( location.isMem() )
return ;
@@ -200,7 +181,6 @@ public class DatasetBuilderStd implements DatasetBuilder {
BlockMgrBuilder blockMgrBuilder = new BuilderStdIndex.BlockMgrBuilderStd() ;
IndexBuilder indexBuilderNT = new BuilderStdIndex.IndexBuilderStd(blockMgrBuilder, blockMgrBuilder) ;
NodeTableBuilder nodeTableBuilder = new BuilderStdDB.NodeTableBuilderStd(indexBuilderNT, objectFileBuilder) ;
-
set(blockMgrBuilder, nodeTableBuilder) ;
}
@@ -209,7 +189,6 @@ public class DatasetBuilderStd implements DatasetBuilder {
// Ensure that there is global synchronization
synchronized (DatasetBuilderStd.class) {
log.debug("Build database: "+location.getDirectoryPath()) ;
- checkIfNew(location) ;
checkLocation(location) ;
return _build(location, params, true, null) ;
}
@@ -360,10 +339,10 @@ public class DatasetBuilderStd implements DatasetBuilder {
}
protected NodeTable makeNodeTableNoCache(Location location, String indexNode2Id, String indexId2Node, StoreParams params) {
- StoreParamsBuilder spb = StoreParamsBuilder.create(params) ;
- spb.node2NodeIdCacheSize(-1) ;
- spb.nodeId2NodeCacheSize(-1) ;
- spb.nodeMissCacheSize(-1) ;
+ StoreParamsBuilder spb = StoreParams.builder(params)
+ .node2NodeIdCacheSize(-1)
+ .nodeId2NodeCacheSize(-1)
+ .nodeMissCacheSize(-1) ;
return makeNodeTable$(location, indexNode2Id, indexId2Node, spb.build()) ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/0bf29773/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParams.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParams.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParams.java
index 81873dc..105e44c 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParams.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParams.java
@@ -73,6 +73,17 @@ public class StoreParams implements IndexParams, StoreParamsDynamic
/*package*/ final Item<String> prefixNode2Id ;
/*package*/ final Item<String> prefixId2Node ;
+ /** Build StoreParams, starting from system defaults.
+ *
+ * @return StoreParamsBuilder
+ */
+ public static StoreParamsBuilder builder() { return StoreParamsBuilder.create() ; }
+
+ /** Build StoreParams, starting from given default values.
+ *
+ * @return StoreParamsBuilder
+ */
+ public static StoreParamsBuilder builder(StoreParams params) { return StoreParamsBuilder.create(params) ; }
/*package*/ StoreParams(Item<FileMode> fileMode, Item<Integer> blockSize,
Item<Integer> blockReadCacheSize, Item<Integer> blockWriteCacheSize,
http://git-wip-us.apache.org/repos/asf/jena/blob/0bf29773/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsCodec.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsCodec.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsCodec.java
index 49cdd44..dbf6022 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsCodec.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsCodec.java
@@ -43,8 +43,10 @@ import java.io.FileOutputStream ;
import java.io.IOException ;
import java.io.OutputStream ;
+import org.apache.jena.atlas.AtlasException ;
import org.apache.jena.atlas.io.IO ;
import org.apache.jena.atlas.json.JSON ;
+import org.apache.jena.atlas.json.JsonParseException;
import org.apache.jena.atlas.json.JsonArray ;
import org.apache.jena.atlas.json.JsonBuilder ;
import org.apache.jena.atlas.json.JsonObject ;
@@ -78,10 +80,14 @@ public class StoreParamsCodec {
return read(location.getPath(TDB_CONFIG_FILE)) ;
}
- /** Read from a file */
+ /** Read from a file, if possible. */
public static StoreParams read(String filename) {
- JsonObject obj = JSON.read(filename) ;
- return StoreParamsCodec.decode(obj) ;
+ try {
+ JsonObject obj = JSON.read(filename) ;
+ return StoreParamsCodec.decode(obj) ;
+ }
+ catch (JsonParseException ex) { return null ; }
+ catch (AtlasException ex) { return null ; }
}
public static JsonObject encodeToJson(StoreParams params) {
@@ -126,7 +132,7 @@ public class StoreParamsCodec {
}
public static StoreParams decode(JsonObject json) {
- StoreParamsBuilder builder = StoreParamsBuilder.create() ;
+ StoreParamsBuilder builder = StoreParams.builder() ;
for ( String key : json.keys() ) {
String short_key = unkey(key) ;
http://git-wip-us.apache.org/repos/asf/jena/blob/0bf29773/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsConst.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsConst.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsConst.java
index a06f42b..f81dbe8 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsConst.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsConst.java
@@ -92,10 +92,10 @@ public class StoreParamsConst {
// because StoreParamsBuilder uses these constants.
/** The system default parameters for on-disk databases. */
- static StoreParams dftStoreParams = StoreParamsBuilder.create().build() ;
+ static StoreParams dftStoreParams = StoreParams.builder().build() ;
/** The system default parameters for in-memory databases. */
- static StoreParams dftMemStoreParams = StoreParamsBuilder.create()
+ static StoreParams dftMemStoreParams = StoreParams.builder()
.fileMode(FileMode.direct)
// Small block caches, mainly so it behaves like a direct on-disk database.
.blockReadCacheSize(10)
@@ -106,7 +106,7 @@ public class StoreParamsConst {
.build() ;
/** The "small store" parameters. */
- static StoreParams smallStoreParams = StoreParamsBuilder.create()
+ static StoreParams smallStoreParams = StoreParams.builder()
.fileMode(FileMode.direct)
.blockReadCacheSize(100)
.blockWriteCacheSize(100)
@@ -114,7 +114,5 @@ public class StoreParamsConst {
.nodeId2NodeCacheSize(10000)
.nodeMissCacheSize(100)
.build() ;
-
-
}
http://git-wip-us.apache.org/repos/asf/jena/blob/0bf29773/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/setup/TestStoreParams.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/setup/TestStoreParams.java b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/setup/TestStoreParams.java
index 64655a1..4a6164a 100644
--- a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/setup/TestStoreParams.java
+++ b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/setup/TestStoreParams.java
@@ -34,17 +34,17 @@ public class TestStoreParams extends BaseTest {
@Test public void store_params_02() {
StoreParams input = StoreParams.getDftStoreParams() ;
- StoreParams sp = StoreParamsBuilder.create(input).build() ;
+ StoreParams sp = StoreParams.builder(input).build() ;
assertEqualsStoreParams(StoreParams.getDftStoreParams(), sp) ;
}
@Test public void store_params_03() {
- StoreParams sp = StoreParamsBuilder.create().build() ;
+ StoreParams sp = StoreParams.builder().build() ;
assertEqualsStoreParams(StoreParams.getDftStoreParams(), sp) ;
}
@Test public void store_params_04() {
- StoreParams params = StoreParamsBuilder.create().build() ;
+ StoreParams params = StoreParams.builder().build() ;
StoreParams params2 = roundTrip(params) ;
assertEqualsStoreParams(params,params2) ;
}
@@ -52,7 +52,7 @@ public class TestStoreParams extends BaseTest {
// ----
@Test public void store_params_10() {
- StoreParams params = StoreParamsBuilder.create().fileMode(FileMode.direct).blockSize(1024).build() ;
+ StoreParams params = StoreParams.builder().fileMode(FileMode.direct).blockSize(1024).build() ;
StoreParams params2 = roundTrip(params) ;
assertEqualsStoreParams(params,params2) ;
assertEquals(params.getFileMode(), params2.getFileMode()) ;
@@ -62,7 +62,7 @@ public class TestStoreParams extends BaseTest {
@Test public void store_params_11() {
String xs = "{ \"tdb.block_size\": 2048 }" ;
JsonObject x = JSON.parse(xs) ;
- StoreParams paramsExpected = StoreParamsBuilder.create().blockSize(2048).build() ;
+ StoreParams paramsExpected = StoreParams.builder().blockSize(2048).build() ;
StoreParams paramsActual = StoreParamsCodec.decode(x) ;
assertEqualsStoreParams(paramsExpected,paramsActual) ;
}
@@ -70,7 +70,7 @@ public class TestStoreParams extends BaseTest {
@Test public void store_params_12() {
String xs = "{ \"tdb.file_mode\": \"direct\" , \"tdb.block_size\": 2048 }" ;
JsonObject x = JSON.parse(xs) ;
- StoreParams paramsExpected = StoreParamsBuilder.create().blockSize(2048).fileMode(FileMode.direct).build() ;
+ StoreParams paramsExpected = StoreParams.builder().blockSize(2048).fileMode(FileMode.direct).build() ;
StoreParams paramsActual = StoreParamsCodec.decode(x) ;
assertEqualsStoreParams(paramsExpected,paramsActual) ;
}
@@ -95,16 +95,16 @@ public class TestStoreParams extends BaseTest {
// Check that setting gets recorded and propagated.
@Test public void store_params_20() {
- StoreParams params = StoreParamsBuilder.create().blockReadCacheSize(0).build();
+ StoreParams params = StoreParams.builder().blockReadCacheSize(0).build();
assertTrue(params.isSetBlockReadCacheSize()) ;
assertFalse(params.isSetBlockWriteCacheSize()) ;
}
@Test public void store_params_21() {
- StoreParams params1 = StoreParamsBuilder.create().blockReadCacheSize(0).build();
+ StoreParams params1 = StoreParams.builder().blockReadCacheSize(0).build();
assertTrue(params1.isSetBlockReadCacheSize()) ;
assertFalse(params1.isSetBlockWriteCacheSize()) ;
- StoreParams params2 = StoreParamsBuilder.create(params1).blockWriteCacheSize(0).build();
+ StoreParams params2 = StoreParams.builder(params1).blockWriteCacheSize(0).build();
assertTrue(params2.isSetBlockReadCacheSize()) ;
assertTrue(params2.isSetBlockWriteCacheSize()) ;
assertFalse(params2.isSetNodeMissCacheSize()) ;
@@ -112,11 +112,11 @@ public class TestStoreParams extends BaseTest {
// Modify
@Test public void store_params_22() {
- StoreParams params1 = StoreParamsBuilder.create()
+ StoreParams params1 = StoreParams.builder()
.blockReadCacheSize(0)
.blockWriteCacheSize(1)
.build();
- StoreParams params2 = StoreParamsBuilder.create()
+ StoreParams params2 = StoreParams.builder()
.blockReadCacheSize(5)
.build();
StoreParams params3 = StoreParamsBuilder.modify(params1, params2) ;
http://git-wip-us.apache.org/repos/asf/jena/blob/0bf29773/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/setup/TestStoreParamsChoose.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/setup/TestStoreParamsChoose.java b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/setup/TestStoreParamsChoose.java
index fb50f33..8e985ae 100644
--- a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/setup/TestStoreParamsChoose.java
+++ b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/setup/TestStoreParamsChoose.java
@@ -27,38 +27,38 @@ import com.hp.hpl.jena.tdb.base.file.Location ;
//TestParamsCreate
/** This test suite uses on-diskstructures and can be slow */
public class TestStoreParamsChoose extends BaseTest {
- static final StoreParams pApp = StoreParamsBuilder.create()
+ static final StoreParams pApp = StoreParams.builder()
.blockSize(12) // Not dynamic
.nodeMissCacheSize(12) // Dynamic
.build();
- static final StoreParams pLoc = StoreParamsBuilder.create()
+ static final StoreParams pLoc = StoreParams.builder()
.blockSize(0)
.nodeMissCacheSize(0).build();
static final StoreParams pDft = StoreParams.getDftStoreParams() ;
@Test public void params_choose_new_1() {
- StoreParams p = Build.fixStoreParams(Location.mem(), true, null, null, pDft) ;
+ StoreParams p = Build.decideStoreParams(Location.mem(), true, null, null, pDft) ;
// New store, no pLoc, no pApp so pDft.
assertTrue(StoreParams.sameValues(p, pDft)) ;
}
@Test public void params_choose_new_2() {
- StoreParams p = Build.fixStoreParams(Location.mem(), true, pApp, null, pDft) ;
+ StoreParams p = Build.decideStoreParams(Location.mem(), true, pApp, null, pDft) ;
// New store, no pLoc, so pApp is the enire settings.
assertEquals(12, p.getBlockSize().intValue()) ;
assertTrue(StoreParams.sameValues(p, pApp)) ;
}
@Test public void params_choose_new_3() {
- StoreParams p = Build.fixStoreParams(Location.mem(), true, null, pLoc, pDft) ;
+ StoreParams p = Build.decideStoreParams(Location.mem(), true, null, pLoc, pDft) ;
// New store, pLoc, no pApp, so pLoc is the entire settings.
assertEquals(0, p.getBlockSize().intValue()) ;
assertTrue(StoreParams.sameValues(p, pLoc)) ;
}
@Test public void params_choose_new_4() {
- StoreParams p = Build.fixStoreParams(Location.mem(), true, pApp, pLoc, pDft) ;
+ StoreParams p = Build.decideStoreParams(Location.mem(), true, pApp, pLoc, pDft) ;
// New store, pLoc, no pApp, so pLoc is the entire settings.
assertFalse(StoreParams.sameValues(p, pApp)) ;
@@ -70,13 +70,13 @@ public class TestStoreParamsChoose extends BaseTest {
}
@Test public void params_choose_existing_1() {
- StoreParams p = Build.fixStoreParams(Location.mem(), false, null, null, pDft) ;
+ StoreParams p = Build.decideStoreParams(Location.mem(), false, null, null, pDft) ;
// p is pDft.
assertTrue(StoreParams.sameValues(p, pDft)) ;
}
@Test public void params_choose_existing_2() {
- StoreParams p = Build.fixStoreParams(Location.mem(), false, pApp, null, pDft) ;
+ StoreParams p = Build.decideStoreParams(Location.mem(), false, pApp, null, pDft) ;
// p is pLoc modified by pApp
assertFalse(StoreParams.sameValues(p, pApp)) ;
assertFalse(StoreParams.sameValues(p, pDft)) ;
@@ -86,14 +86,14 @@ public class TestStoreParamsChoose extends BaseTest {
}
@Test public void params_choose_existing_3() {
- StoreParams p = Build.fixStoreParams(Location.mem(), false, null, pLoc, pDft) ;
+ StoreParams p = Build.decideStoreParams(Location.mem(), false, null, pLoc, pDft) ;
// p is pLoc
assertTrue(StoreParams.sameValues(p, pLoc)) ;
}
@Test public void params_choose_existing_4() {
- StoreParams p = Build.fixStoreParams(Location.mem(), false, pApp, pLoc, pDft) ;
+ StoreParams p = Build.decideStoreParams(Location.mem(), false, pApp, pLoc, pDft) ;
// p is pLoc modifed by pApp.
assertFalse(StoreParams.sameValues(p, pApp)) ;
assertFalse(StoreParams.sameValues(p, pLoc)) ;
@@ -108,7 +108,7 @@ public class TestStoreParamsChoose extends BaseTest {
Location loc = Location.create("target/test/DB") ;
FileOps.clearAll(loc.getDirectoryPath());
// Clear.
- StoreParams p = Build.fixStoreParams(loc, true, pApp, null, pDft) ;
+ StoreParams p = Build.decideStoreParams(loc, true, pApp, null, pDft) ;
// Check location now has a pLoc.
String fn = loc.getPath(StoreParamsConst.TDB_CONFIG_FILE) ;
assertTrue(FileOps.exists(fn)) ;
@@ -124,7 +124,7 @@ public class TestStoreParamsChoose extends BaseTest {
StoreParamsCodec.write(loc, pLoc);
// Clear.
- StoreParams p = Build.fixStoreParams(loc, true, null, pLoc, pDft) ;
+ StoreParams p = Build.decideStoreParams(loc, true, null, pLoc, pDft) ;
// Check location still has a pLoc.
String fn = loc.getPath(StoreParamsConst.TDB_CONFIG_FILE) ;
assertTrue(FileOps.exists(fn)) ;
@@ -140,7 +140,7 @@ public class TestStoreParamsChoose extends BaseTest {
StoreParamsCodec.write(loc, pLoc);
// Clear.
- StoreParams p = Build.fixStoreParams(loc, true, pApp, pLoc, pDft) ;
+ StoreParams p = Build.decideStoreParams(loc, true, pApp, pLoc, pDft) ;
// Check location still has a pLoc.
String fn = loc.getPath(StoreParamsConst.TDB_CONFIG_FILE) ;
assertTrue(FileOps.exists(fn)) ;
http://git-wip-us.apache.org/repos/asf/jena/blob/0bf29773/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/setup/TestStoreParamsCreate.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/setup/TestStoreParamsCreate.java b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/setup/TestStoreParamsCreate.java
index 55c0d3f..337140b 100644
--- a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/setup/TestStoreParamsCreate.java
+++ b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/setup/TestStoreParamsCreate.java
@@ -20,9 +20,6 @@ package com.hp.hpl.jena.tdb.setup;
import static com.hp.hpl.jena.tdb.setup.StoreParamsConst.TDB_CONFIG_FILE ;
-import java.io.File ;
-import java.io.FileOutputStream ;
-import java.io.IOException ;
import java.nio.file.Files ;
import java.nio.file.Path ;
import java.nio.file.Paths ;
@@ -35,45 +32,136 @@ import org.junit.After ;
import org.junit.Before ;
import org.junit.Test ;
+import com.hp.hpl.jena.tdb.ConfigTest ;
import com.hp.hpl.jena.tdb.StoreConnection ;
import com.hp.hpl.jena.tdb.base.file.Location ;
-import com.hp.hpl.jena.tdb.setup.StoreParams ;
-import com.hp.hpl.jena.tdb.setup.StoreParamsCodec ;
-//TestParamsCreate
-/** This test suite uses on-diskstructures and can be slow */
+/**
+ * This test suite uses on-disk structures, does a lot of clean/create/sync
+ * calls and can be noticably slow.
+ */
public class TestStoreParamsCreate extends BaseTest {
- static String DB_DIR = "target/test/DB" ;
+ private final String DB_DIR = ConfigTest.getCleanDir() ;
+ private final Path db = Paths.get(DB_DIR) ;
+ private final Path cfg = Paths.get(DB_DIR, TDB_CONFIG_FILE) ;
+ private final Location loc = Location.create(DB_DIR) ;
+
+ static final StoreParams pApp = StoreParams.getSmallStoreParams() ;
+ static final StoreParams pDft = StoreParams.getDftStoreParams() ;
+ static final StoreParams pSpecial = StoreParams.builder(pApp)
+ .blockSize(1024)
+ .blockReadCacheSize(4)
+ .build();
- @Before public void clearAnyDatabase() {
- FileOps.clearAll(new File(DB_DIR));
+ @Before public void clearupTest() {
+ // Flush and clean.
+ StoreConnection.expel(loc, true) ;
+ FileOps.clearAll(DB_DIR);
}
- @After public void clearupTest() {}
-
+ @After public void expelDatabase() {
+ StoreConnection.expel(loc, true) ;
+ }
@Test public void params_create_01() {
- Location loc = Location.create(DB_DIR) ;
StoreConnection.make(loc, null) ;
- Path db = Paths.get(DB_DIR) ;
+ // Check. Default setup, no params.
+ assertTrue("DB directory", Files.exists(db)) ;
+ assertFalse("Config file unexpectedly found", Files.exists(cfg)) ;
+ }
+
+ @Test public void params_create_02() {
+ StoreConnection.make(loc, pApp) ;
+ // Check. Custom setup.
assertTrue("DB directory", Files.exists(db)) ;
- Path dbCfg = db.resolve(TDB_CONFIG_FILE) ;
- // Fake it.
- try {
- new FileOutputStream(dbCfg.toFile()).close();
- }
- catch (IOException e) {
- e.printStackTrace();
- }
+ assertTrue("Config file not found", Files.exists(cfg)) ;
+ StoreParams pLoc = StoreParamsCodec.read(loc) ;
+ assertTrue(StoreParams.sameValues(pLoc, pApp)) ;
+ }
+
+ // Defaults
+ @Test public void params_reconnect_01() {
+ // Create.
+ StoreConnection.make(loc, null) ;
+ // Drop.
+ StoreConnection.expel(loc, true) ;
+ // Reconnect
+ StoreConnection.make(loc, null) ;
+ StoreParams pLoc = StoreParamsCodec.read(loc) ;
+ assertNull(pLoc) ;
+ StoreParams pDB = StoreConnection.getExisting(loc).getBaseDataset().getConfig().params ;
+ assertNotNull(pDB) ;
+ // Should be the default setup.
+ assertTrue(StoreParams.sameValues(pDft, pDB)) ;
+ }
+
+ // Defaults, then reconnect with app modified.
+ @Test public void params_reconnect_02() {
+ // Create.
+ StoreConnection.make(loc, null) ;
+ // Drop.
+ StoreConnection.expel(loc, true) ;
+ // Reconnect
+ StoreConnection.make(loc, pSpecial) ;
+ //StoreParams pLoc = StoreParamsCodec.read(loc) ;
+ //assertNotNull(pLoc) ;
- assertTrue("DB config file", Files.exists(dbCfg)) ;
+ StoreParams pDB = StoreConnection.getExisting(loc).getBaseDataset().getConfig().params ;
+ assertNotNull(pDB) ;
+ // Should be the default setup, modified by pApp for cache sizes.
+ assertFalse(StoreParams.sameValues(pDft, pDB)) ;
+ assertFalse(StoreParams.sameValues(pSpecial, pDB)) ;
+
+ // Check it's default-modified-by-special.
+ assertEquals(pSpecial.getBlockReadCacheSize(), pDB.getBlockReadCacheSize()) ;
+ assertNotEquals(pDft.getBlockReadCacheSize(), pDB.getBlockReadCacheSize()) ;
+ assertNotEquals(pSpecial.getBlockSize(), pDB.getBlockSize()) ;
+ assertEquals(pDft.getBlockSize(), pDB.getBlockSize()) ;
}
- // Create store.
- // Test params.
+ // Custom, then reconnect with some special settings.
+ @Test public void params_reconnect_03() {
+ // Create.
+ StoreConnection.make(loc, pApp) ;
+ // Drop.
+ StoreConnection.expel(loc, true) ;
+ // Reconnect
+ StoreConnection.make(loc, pSpecial) ;
+ //StoreParams pLoc = StoreParamsCodec.read(loc) ;
+ //assertNotNull(pLoc) ;
+
+ StoreParams pDB = StoreConnection.getExisting(loc).getBaseDataset().getConfig().params ;
+ assertNotNull(pDB) ;
+ // Should be the default setup, modified by pApp for cache sizes.
+ assertFalse(StoreParams.sameValues(pApp, pDB)) ;
+ assertFalse(StoreParams.sameValues(pSpecial, pDB)) ;
+
+ // Check it's default-modified-by-special.
+ assertEquals(pSpecial.getBlockReadCacheSize(), pDB.getBlockReadCacheSize()) ;
+ assertNotEquals(pApp.getBlockReadCacheSize(), pDB.getBlockReadCacheSize()) ;
+
+ assertNotEquals(pSpecial.getBlockSize(), pDB.getBlockSize()) ;
+ assertEquals(pApp.getBlockSize(), pDB.getBlockSize()) ;
+ }
+
+// // Custom then modified.
+// @Test public void params_reconnect_03() {
+// // Create.
+// StoreConnection.make(loc, pLoc) ;
+// // Drop.
+// StoreConnection.expel(loc, true) ;
+// // Reconnect
+// StoreConnection.make(loc, pApp) ;
+// StoreParams pLoc = StoreParamsCodec.read(loc) ;
+// assertFalse(StoreParams.sameValues(pApp, pLoc)) ;
+// assertFalse(StoreParams.sameValues(pApp, pLoc)) ;
+// }
+
+ // Dataset tests
+
static StoreParams read(Location location) {
String fn = location.getPath(TDB_CONFIG_FILE) ;
JsonObject obj = JSON.read(fn) ;
http://git-wip-us.apache.org/repos/asf/jena/blob/0bf29773/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransRestart.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransRestart.java b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransRestart.java
index 0b0ed5b..c5d770f 100644
--- a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransRestart.java
+++ b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransRestart.java
@@ -71,7 +71,7 @@ public class TestTransRestart extends BaseTest {
cleanup() ;
}
- private static DatasetGraphTDB createPlain(Location location) { return TDBMaker.createDatasetGraphTDB(location) ; }
+ private static DatasetGraphTDB createPlain(Location location) { return TDBMaker.createDatasetGraphTDB(location, null) ; }
private void setupPlain() {
// Make without transactions.