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 2014/11/08 17:34:44 UTC
[01/13] jena git commit: StoreParams enabled in DatasetBuilderStd
Repository: jena
Updated Branches:
refs/heads/master d910ff4ab -> 4a45e3617
StoreParams enabled in DatasetBuilderStd
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/74b75f38
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/74b75f38
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/74b75f38
Branch: refs/heads/master
Commit: 74b75f380f82f5e0078246711a8a41401413af8a
Parents: aae3f23
Author: Andy Seaborne <an...@apache.org>
Authored: Wed Nov 5 14:38:39 2014 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Wed Nov 5 15:06:44 2014 +0000
----------------------------------------------------------------------
.../java/com/hp/hpl/jena/tdb/setup/Build.java | 4 +--
.../hpl/jena/tdb/setup/DatasetBuilderStd.java | 16 +++++++++--
.../com/hp/hpl/jena/tdb/setup/StoreParams.java | 2 +-
.../hpl/jena/tdb/setup/StoreParamsBuilder.java | 30 +++++++++++++-------
.../hpl/jena/tdb/setup/StoreParamsDynamic.java | 3 ++
.../hp/hpl/jena/tdb/setup/TestStoreParams.java | 18 ++++++++----
6 files changed, 51 insertions(+), 22 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/74b75f38/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 4bd2157..ddb98d2 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
@@ -48,7 +48,7 @@ public class Build
// XXX replace with:
// return DatasetBuilderStd.stdBuilder().makeTupleIndex(location, indexName, primary, indexOrder) ;
// All this to BuilderDB.
- StoreParamsBuilder spb = new StoreParamsBuilder() ;
+ StoreParamsBuilder spb = StoreParamsBuilder.create() ;
spb.blockReadCacheSize(readCacheSize) ;
spb.blockWriteCacheSize(writeCacheSize) ;
RecordFactory recordFactory = new RecordFactory(dftKeyLength, dftValueLength) ;
@@ -77,7 +77,7 @@ public class Build
String indexNode2Id, int node2NodeIdCacheSize,
String indexId2Node, int nodeId2NodeCacheSize,
int sizeNodeMissCacheSize) {
- StoreParamsBuilder spb = new StoreParamsBuilder() ;
+ StoreParamsBuilder spb = StoreParamsBuilder.create() ;
spb.indexNode2Id(indexNode2Id).node2NodeIdCacheSize(node2NodeIdCacheSize) ;
spb.indexId2Node(indexId2Node).nodeId2NodeCacheSize(nodeId2NodeCacheSize) ;
DatasetBuilderStd dbBuild = DatasetBuilderStd.stdBuilder() ;
http://git-wip-us.apache.org/repos/asf/jena/blob/74b75f38/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 ae903ca..38173b5 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
@@ -73,9 +73,19 @@ public class DatasetBuilderStd implements DatasetBuilder {
}
public static DatasetGraphTDB create(Location location, StoreParams $params) {
- if ( $params != null )
- log.warn("StoreParams != null (ignored)") ;
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)") ;
DatasetBuilderStd x = new DatasetBuilderStd() ;
x.standardSetup() ;
return x.build(location, params) ;
@@ -331,7 +341,7 @@ public class DatasetBuilderStd implements DatasetBuilder {
}
protected NodeTable makeNodeTableNoCache(Location location, String indexNode2Id, String indexId2Node, StoreParams params) {
- StoreParamsBuilder spb = new StoreParamsBuilder(params) ;
+ StoreParamsBuilder spb = StoreParamsBuilder.create(params) ;
spb.node2NodeIdCacheSize(-1) ;
spb.nodeId2NodeCacheSize(-1) ;
spb.nodeMissCacheSize(-1) ;
http://git-wip-us.apache.org/repos/asf/jena/blob/74b75f38/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 7d06f82..8790c9b 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
@@ -30,7 +30,7 @@ public class StoreParams implements IndexParams, StoreParamsDynamic
{
// SystemParams are built with a SystemParamsBuilder
- private static StoreParams dftStoreParams = new StoreParamsBuilder().build() ;
+ private static StoreParams dftStoreParams = StoreParamsBuilder.create().build() ;
/* These are items you can change JVM to JVM */
http://git-wip-us.apache.org/repos/asf/jena/blob/74b75f38/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsBuilder.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsBuilder.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsBuilder.java
index 0fa5d42..e0ceda7 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsBuilder.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsBuilder.java
@@ -63,7 +63,13 @@ public class StoreParamsBuilder {
private String prefixId2Node = StoreParamsConst.prefixId2Node ;
- public static StoreParamsBuilder create() { return new StoreParamsBuilder() ; }
+ public static StoreParamsBuilder create() {
+ return new StoreParamsBuilder() ;
+ }
+
+ public static StoreParamsBuilder create(StoreParams params) {
+ return new StoreParamsBuilder(params) ;
+ }
/** Using a base set of {@linkplain StoreParams}, and update with dynamic parameters.
*
@@ -75,6 +81,7 @@ public class StoreParamsBuilder {
public static StoreParams modify(StoreParams baseParams, StoreParamsDynamic additionalParams) {
return new StoreParamsBuilder(baseParams)
.fileMode(additionalParams.getFileMode())
+ .blockSize(additionalParams.getBlockSize())
.blockReadCacheSize(additionalParams.getBlockReadCacheSize())
.blockWriteCacheSize(additionalParams.getBlockWriteCacheSize())
.node2NodeIdCacheSize(additionalParams.getNode2NodeIdCacheSize())
@@ -83,8 +90,8 @@ public class StoreParamsBuilder {
.build();
}
- public StoreParamsBuilder() {}
- public StoreParamsBuilder(StoreParams other) {
+ private StoreParamsBuilder() {}
+ private StoreParamsBuilder(StoreParams other) {
this.fileMode = other.getFileMode() ;
this.blockSize = other.getBlockSize() ;
this.blockReadCacheSize = other.getBlockReadCacheSize() ;
@@ -95,16 +102,19 @@ public class StoreParamsBuilder {
this.indexNode2Id = other.getIndexNode2Id() ;
this.indexId2Node = other.getIndexId2Node() ;
- this.primaryIndexTriples = other.getPrimaryIndexPrefix() ;
- this.tripleIndexes = other.getQuadIndexes() ;
- this.primaryIndexQuads = other.getPrimaryIndexPrefix() ;
- this.quadIndexes = other.getPrefixIndexes() ;
- this.primaryIndexPrefix = other.getIndexPrefix() ;
+
+ this.primaryIndexTriples = other.getPrimaryIndexTriples() ;
+ this.tripleIndexes = other.getTripleIndexes() ;
+
+ this.primaryIndexQuads = other.getPrimaryIndexQuads() ;
+ this.quadIndexes = other.getQuadIndexes() ;
+
+ this.primaryIndexPrefix = other.getPrimaryIndexPrefix() ;
this.prefixIndexes = other.getPrefixIndexes() ;
this.indexPrefix = other.getIndexPrefix() ;
- this.prefixNode2Id = other.getIndexNode2Id() ;
- this.prefixId2Node = other.getIndexId2Node() ;
+ this.prefixNode2Id = other.getPrefixNode2Id() ;
+ this.prefixId2Node = other.getPrefixId2Node() ;
}
public StoreParams build() {
http://git-wip-us.apache.org/repos/asf/jena/blob/74b75f38/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsDynamic.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsDynamic.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsDynamic.java
index 1063bf2..ca6290a 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsDynamic.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsDynamic.java
@@ -30,6 +30,9 @@ public interface StoreParamsDynamic {
/** Store-wide file access mode */
public FileMode getFileMode() ;
+ /** Block size - must agree with the original creation of the database */
+ public int getBlockSize() ;
+
/** Block read cache (note: mapped files do not have a block cache) */
public int getBlockReadCacheSize() ;
http://git-wip-us.apache.org/repos/asf/jena/blob/74b75f38/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 6612be9..1762518 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
@@ -36,11 +36,17 @@ public class TestStoreParams extends BaseTest {
}
@Test public void store_params_02() {
- StoreParams sp = StoreParamsBuilder.create().build() ;
+ StoreParams input = StoreParams.getDftStoreParams() ;
+ StoreParams sp = StoreParamsBuilder.create(input).build() ;
assertEqualsStoreParams(StoreParams.getDftStoreParams(), sp) ;
}
@Test public void store_params_03() {
+ StoreParams sp = StoreParamsBuilder.create().build() ;
+ assertEqualsStoreParams(StoreParams.getDftStoreParams(), sp) ;
+ }
+
+ @Test public void store_params_04() {
StoreParams params = StoreParamsBuilder.create().build() ;
StoreParams params2 = roundTrip(params) ;
assertEqualsStoreParams(params,params2) ;
@@ -48,7 +54,7 @@ public class TestStoreParams extends BaseTest {
// ----
- @Test public void store_params_04() {
+ @Test public void store_params_10() {
StoreParams params = StoreParamsBuilder.create().fileMode(FileMode.direct).blockSize(1024).build() ;
StoreParams params2 = roundTrip(params) ;
assertEqualsStoreParams(params,params2) ;
@@ -56,7 +62,7 @@ public class TestStoreParams extends BaseTest {
assertEquals(params.getBlockSize(), params2.getBlockSize()) ;
}
- @Test public void store_params_05() {
+ @Test public void store_params_11() {
String xs = "{ \"tdb.block_size\": 2048 }" ;
JsonObject x = JSON.parse(xs) ;
StoreParams paramsExpected = StoreParamsBuilder.create().blockSize(2048).build() ;
@@ -64,7 +70,7 @@ public class TestStoreParams extends BaseTest {
assertEqualsStoreParams(paramsExpected,paramsActual) ;
}
- @Test public void store_params_06() {
+ @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() ;
@@ -72,7 +78,7 @@ public class TestStoreParams extends BaseTest {
assertEqualsStoreParams(paramsExpected,paramsActual) ;
}
- @Test public void store_params_07() {
+ @Test public void store_params_13() {
String xs = "{ \"tdb.triple_indexes\" : [ \"POS\" , \"PSO\"] } " ;
JsonObject x = JSON.parse(xs) ;
StoreParams params = StoreParamsCodec.decode(x) ;
@@ -81,7 +87,7 @@ public class TestStoreParams extends BaseTest {
}
@Test(expected=TDBException.class)
- public void store_params_08() {
+ public void store_params_14() {
String xs = "{ \"tdb.triples_indexes\" : [ \"POS\" , \"PSO\"] } " ; // Misspelt.
JsonObject x = JSON.parse(xs) ;
StoreParams params = StoreParamsCodec.decode(x) ;
[10/13] jena git commit: Better exceptions from JSON parsing.
Posted by an...@apache.org.
Better exceptions from JSON parsing.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/f53761da
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/f53761da
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/f53761da
Branch: refs/heads/master
Commit: f53761daa5bf8bd1228cdd55d3ea2e144c7b739e
Parents: ac8a7d9
Author: Andy Seaborne <an...@apache.org>
Authored: Sat Nov 8 16:16:50 2014 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Sat Nov 8 16:16:50 2014 +0000
----------------------------------------------------------------------
.../main/java/org/apache/jena/atlas/io/IO.java | 3 ++-
.../java/org/apache/jena/atlas/json/JSON.java | 19 +++++++------------
2 files changed, 9 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/f53761da/jena-arq/src/main/java/org/apache/jena/atlas/io/IO.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/io/IO.java b/jena-arq/src/main/java/org/apache/jena/atlas/io/IO.java
index f49e0f6..4d52fe2 100644
--- a/jena-arq/src/main/java/org/apache/jena/atlas/io/IO.java
+++ b/jena-arq/src/main/java/org/apache/jena/atlas/io/IO.java
@@ -64,8 +64,9 @@ public class IO
* If the filename ends in .gz, wrap in GZIPInputStream
* @param filename
* @throws FileNotFoundException
+ * @throws IOException
*/
- static public InputStream openFileEx(String filename) throws IOException {
+ static public InputStream openFileEx(String filename) throws IOException, FileNotFoundException {
if ( filename == null || filename.equals("-") )
return System.in ;
if ( filename.startsWith("file:") )
http://git-wip-us.apache.org/repos/asf/jena/blob/f53761da/jena-arq/src/main/java/org/apache/jena/atlas/json/JSON.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/json/JSON.java b/jena-arq/src/main/java/org/apache/jena/atlas/json/JSON.java
index 63b680e..df3727f 100644
--- a/jena-arq/src/main/java/org/apache/jena/atlas/json/JSON.java
+++ b/jena-arq/src/main/java/org/apache/jena/atlas/json/JSON.java
@@ -61,20 +61,15 @@ public class JSON
/** Read a JSON object from a file */
public static JsonObject read(String filename)
{
- try
- {
- try (InputStream in = IO.openFileEx( filename ))
- {
- return JSON.parse( in );
- }
+ try (InputStream in = IO.openFileEx(filename)) {
+ return JSON.parse(in) ;
}
- catch (FileNotFoundException ex)
- {
- throw new RuntimeException("File not found: "+filename, ex) ;
+ catch (FileNotFoundException ex) {
+ IO.exception("File not found: " + filename, ex) ;
+ return null ;
}
- catch (IOException ex)
- {
- IO.exception("IOException: "+filename, ex);
+ catch (IOException ex) {
+ IO.exception("IOException: " + filename, ex) ;
return null ;
}
}
[12/13] jena git commit: Sync with Location changes in TDB.
Posted by an...@apache.org.
Sync with Location changes in TDB.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/15a93172
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/15a93172
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/15a93172
Branch: refs/heads/master
Commit: 15a93172063b7a7b2f1ba041d2263b314179d81a
Parents: 0bf2977
Author: Andy Seaborne <an...@apache.org>
Authored: Sat Nov 8 16:32:30 2014 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Sat Nov 8 16:32:30 2014 +0000
----------------------------------------------------------------------
.../src/main/java/org/apache/jena/fuseki/server/SystemState.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/15a93172/jena-fuseki2/src/main/java/org/apache/jena/fuseki/server/SystemState.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/src/main/java/org/apache/jena/fuseki/server/SystemState.java b/jena-fuseki2/src/main/java/org/apache/jena/fuseki/server/SystemState.java
index 8351400..ff5775d 100644
--- a/jena-fuseki2/src/main/java/org/apache/jena/fuseki/server/SystemState.java
+++ b/jena-fuseki2/src/main/java/org/apache/jena/fuseki/server/SystemState.java
@@ -56,7 +56,7 @@ public class SystemState {
initialized = true ;
if ( location == null )
- location = new Location(FusekiServer.dirSystemDatabase.toString()) ;
+ location = Location.create(FusekiServer.dirSystemDatabase.toString()) ;
if ( ! location.isMem() )
FileOps.ensureDir(location.getDirectoryPath()) ;
[03/13] jena git commit: Switch to "Location.create" from "new
Location" for directory locations.
Posted by an...@apache.org.
Switch to "Location.create" from "new Location" for directory locations.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/140a0889
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/140a0889
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/140a0889
Branch: refs/heads/master
Commit: 140a08890804a758cf37858a332a32f857920446
Parents: a9c7671
Author: Andy Seaborne <an...@apache.org>
Authored: Wed Nov 5 13:40:36 2014 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Wed Nov 5 15:06:44 2014 +0000
----------------------------------------------------------------------
.../jena/tdb/assembler/DatasetAssemblerTDB.java | 2 +-
.../jena/tdb/assembler/NodeTableAssembler.java | 4 +--
.../jena/tdb/assembler/TDBGraphAssembler.java | 2 +-
.../com/hp/hpl/jena/tdb/base/file/FileSet.java | 4 +--
.../com/hp/hpl/jena/tdb/base/file/Location.java | 10 ++++--
.../tdb/store/bulkloader2/CmdIndexBuild.java | 2 +-
.../tdb/store/bulkloader2/CmdIndexCopy.java | 4 +--
.../store/bulkloader2/CmdNodeTableBuilder.java | 2 +-
.../java/com/hp/hpl/jena/tdb/sys/DebugTDB.java | 2 +-
.../java/com/hp/hpl/jena/tdb/sys/TDBMaker.java | 32 +++++++++++++-------
jena-tdb/src/main/java/tdb/CmdRewriteIndex.java | 4 +--
.../src/main/java/tdb/cmdline/ModLocation.java | 2 +-
.../main/java/tdb/cmdline/ModTDBDataset.java | 2 +-
.../src/main/java/tdb/tools/dumpnodetable.java | 2 +-
.../src/main/java/tdb/tools/tdbgenindex.java | 4 +--
.../jena/tdb/base/file/TestLocationLock.java | 12 ++++----
.../tdb/base/objectfile/TestStringFileDisk.java | 2 +-
.../hpl/jena/tdb/extra/T_QuadsObjectIsNull.java | 2 +-
.../jena/tdb/extra/T_TDBWriteTransaction.java | 2 +-
.../hp/hpl/jena/tdb/extra/T_TransSystem.java | 6 ++--
.../tdb/extra/T_TransSystemMultiDatasets.java | 4 +--
.../jena/tdb/graph/TestPrefixMappingTDB.java | 6 ++--
.../jena/tdb/store/TestDatasetTDBPersist.java | 2 +-
.../com/hp/hpl/jena/tdb/store/TestGraphTDB.java | 2 +-
.../tdb/transaction/TestNodeTableTransDisk.java | 2 +-
.../transaction/TestObjectFileTransStorage.java | 4 +--
.../jena/tdb/transaction/TestTransRestart.java | 2 +-
.../tdb/transaction/TestTransactionTDB.java | 2 +-
28 files changed, 71 insertions(+), 55 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/140a0889/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/assembler/DatasetAssemblerTDB.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/assembler/DatasetAssemblerTDB.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/assembler/DatasetAssemblerTDB.java
index 45634d5..b415c5c 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/assembler/DatasetAssemblerTDB.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/assembler/DatasetAssemblerTDB.java
@@ -54,7 +54,7 @@ public class DatasetAssemblerTDB extends DatasetAssembler
throw new AssemblerException(root, "No location given") ;
String dir = getStringValue(root, pLocation) ;
- Location loc = new Location(dir) ;
+ Location loc = Location.create(dir) ;
DatasetGraph dsg = TDBFactory.createDatasetGraph(loc) ;
if ( root.hasProperty(pUnionDefaultGraph) ) {
http://git-wip-us.apache.org/repos/asf/jena/blob/140a0889/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/assembler/NodeTableAssembler.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/assembler/NodeTableAssembler.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/assembler/NodeTableAssembler.java
index da9b869..cc83a99 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/assembler/NodeTableAssembler.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/assembler/NodeTableAssembler.java
@@ -42,7 +42,7 @@ public class NodeTableAssembler extends AssemblerBase //implements Assembler
//private Location location = null ;
- //public NodeTableAssembler() { this.location = new Location(".") ; }
+ //public NodeTableAssembler() { this.location = Location.create(".") ; }
//public NodeTableAssembler(Location location) { this.location = location ; }
public NodeTableAssembler() { }
@@ -52,7 +52,7 @@ public class NodeTableAssembler extends AssemblerBase //implements Assembler
{
String location = getAsStringValue(root, pNodeIndex) ;
// if ( location != null )
-// return NodeTableFactory.create(IndexBuilder.get(), new Location(location)) ;
+// return NodeTableFactory.create(IndexBuilder.get(), Location.create(location)) ;
//
// String nodeIndex = getAsStringValue(root, pNodeIndex) ;
// String nodeData = getAsStringValue(root, pNodeData) ;
http://git-wip-us.apache.org/repos/asf/jena/blob/140a0889/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/assembler/TDBGraphAssembler.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/assembler/TDBGraphAssembler.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/assembler/TDBGraphAssembler.java
index 5cf11a7..3801e30 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/assembler/TDBGraphAssembler.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/assembler/TDBGraphAssembler.java
@@ -79,7 +79,7 @@ public class TDBGraphAssembler extends AssemblerBase implements Assembler
if ( locationDir != null )
{
- Location location = new Location(locationDir) ;
+ Location location = Location.create(locationDir) ;
ds = TDBFactory.createDataset(location) ;
}
else
http://git-wip-us.apache.org/repos/asf/jena/blob/140a0889/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/FileSet.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/FileSet.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/FileSet.java
index fd5924a..55a2376 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/FileSet.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/FileSet.java
@@ -50,7 +50,7 @@ public class FileSet
/** Create a FileSet given Location (directory) and name within the directory */
public FileSet(String directory, String basename)
{
- initFileSet(new Location(directory), basename) ;
+ initFileSet(Location.create(directory), basename) ;
}
/** Create a FileSet given Location (directory) and name within the directory */
@@ -61,7 +61,7 @@ public class FileSet
String fn = t.get(1) ;
if ( dir == null )
dir = "." ;
- initFileSet(new Location(dir), fn) ;
+ initFileSet(Location.create(dir), fn) ;
}
/** Create a FileSet given Location (directory) and name within the directory */
http://git-wip-us.apache.org/repos/asf/jena/blob/140a0889/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/Location.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/Location.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/Location.java
index 46ae71c..0d18d51 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/Location.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/Location.java
@@ -53,11 +53,17 @@ public class Location {
/** Return a memory location with a name */
static public Location mem(String name) {
- Location loc = new Location() ;
+ Location loc = Location.mem() ;
memInit(loc, name) ;
return loc ;
}
+ /** Return a location for a directory on disk */
+ static public Location create(String directoryName) {
+ Location loc = Location.create(directoryName) ;
+ return loc ;
+ }
+
private Location() {}
private static void memInit(Location location, String name) {
@@ -142,7 +148,7 @@ public class Location {
public Location getSubLocation(String dirname) {
String newName = pathname + dirname ;
ensure(newName) ;
- return new Location(newName) ;
+ return Location.create(newName) ;
}
private void ensure(String dirname) {
http://git-wip-us.apache.org/repos/asf/jena/blob/140a0889/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/bulkloader2/CmdIndexBuild.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/bulkloader2/CmdIndexBuild.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/bulkloader2/CmdIndexBuild.java
index 24c28d4..d64d108 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/bulkloader2/CmdIndexBuild.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/bulkloader2/CmdIndexBuild.java
@@ -69,7 +69,7 @@ public class CmdIndexBuild
// Argument processing
- Location location = new Location(locationStr) ;
+ Location location = Location.create(locationStr) ;
//InputStream input = System.in ;
InputStream input = IO.openFile(dataFile) ;
http://git-wip-us.apache.org/repos/asf/jena/blob/140a0889/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/bulkloader2/CmdIndexCopy.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/bulkloader2/CmdIndexCopy.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/bulkloader2/CmdIndexCopy.java
index 0c83268..fdf04cc 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/bulkloader2/CmdIndexCopy.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/bulkloader2/CmdIndexCopy.java
@@ -70,8 +70,8 @@ public class CmdIndexCopy
// Argument processing
- Location location1 = new Location(locationStr1) ;
- Location location2 = new Location(locationStr2) ;
+ Location location1 = Location.create(locationStr1) ;
+ Location location2 = Location.create(locationStr2) ;
int keyLength = SystemTDB.SizeOfNodeId * indexName1.length() ;
int valueLength = 0 ;
http://git-wip-us.apache.org/repos/asf/jena/blob/140a0889/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/bulkloader2/CmdNodeTableBuilder.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/bulkloader2/CmdNodeTableBuilder.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/bulkloader2/CmdNodeTableBuilder.java
index d436eac..1782de6 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/bulkloader2/CmdNodeTableBuilder.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/bulkloader2/CmdNodeTableBuilder.java
@@ -96,7 +96,7 @@ public class CmdNodeTableBuilder extends CmdGeneral
// if ( !super.contains(argQuadsOut) ) throw new CmdException("Required: --quads FILE") ;
locationString = super.getValue(argLocation) ;
- location = new Location(locationString) ;
+ location = Location.create(locationString) ;
dataFileTriples = super.getValue(argTriplesOut) ;
if ( dataFileTriples == null )
http://git-wip-us.apache.org/repos/asf/jena/blob/140a0889/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/sys/DebugTDB.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/sys/DebugTDB.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/sys/DebugTDB.java
index 4ab8be5..a721a7f 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/sys/DebugTDB.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/sys/DebugTDB.java
@@ -77,7 +77,7 @@ public class DebugTDB
public static void dumpNodeIndex(String dir)
{
- Location location = new Location(dir) ;
+ Location location = Location.create(dir) ;
Index nodeToId = SetupTDB.makeIndex(location, Names.indexNode2Id, SystemTDB.BlockSize, SystemTDB.LenNodeHash, SystemTDB.SizeOfNodeId, -1 ,-1) ;
for ( Record aNodeToId : nodeToId )
{
http://git-wip-us.apache.org/repos/asf/jena/blob/140a0889/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/sys/TDBMaker.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/sys/TDBMaker.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/sys/TDBMaker.java
index 45620e2..e966252 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/sys/TDBMaker.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/sys/TDBMaker.java
@@ -23,6 +23,7 @@ import com.hp.hpl.jena.tdb.StoreConnection ;
import com.hp.hpl.jena.tdb.TDBFactory ;
import com.hp.hpl.jena.tdb.base.file.Location ;
import com.hp.hpl.jena.tdb.setup.DatasetBuilderStd ;
+import com.hp.hpl.jena.tdb.setup.StoreParams ;
import com.hp.hpl.jena.tdb.store.DatasetGraphTDB ;
import com.hp.hpl.jena.tdb.transaction.DatasetGraphTransaction ;
@@ -36,7 +37,7 @@ public class TDBMaker
/** Create a DatasetGraph that supports transactions */
public static DatasetGraphTransaction createDatasetGraphTransaction(String location)
{
- return createDatasetGraphTransaction(new Location(location)) ;
+ return createDatasetGraphTransaction(Location.create(location)) ;
}
/** Create a Dataset that supports transactions */
@@ -72,35 +73,44 @@ public class TDBMaker
/* The one we are using */
private static DatasetGraphMakerTDB builder = new BuilderStd() ;
- public static DatasetGraphTDB createDatasetGraphTDB(Location loc)
- { return builder.createDatasetGraph(loc) ; }
+
+ public static DatasetGraphTDB createDatasetGraphTDB(Location loc, StoreParams params)
+ { return builder.createDatasetGraph(loc, params) ; }
+
+ @Deprecated
+ public static DatasetGraphTDB createDatasetGraphTDB(Location loc) {
+ return createDatasetGraphTDB(loc, null) ;
+ }
+
// -- Different ways of doing it.
/** Interface to maker of the actual implementations of TDB datasets */
private interface DatasetGraphMakerTDB
{
/** Create a TDB-backed dataset at a given location */
- public DatasetGraphTDB createDatasetGraph(Location location) ;
+ public DatasetGraphTDB createDatasetGraph(Location location, StoreParams params) ;
}
/** Make directly the base DatasetGraphTDB */
private static class BuilderStd implements DatasetGraphMakerTDB
{
@Override
- public DatasetGraphTDB createDatasetGraph(Location location)
+ public DatasetGraphTDB createDatasetGraph(Location location, StoreParams params)
{
- return DatasetBuilderStd.create(location) ;
+ return DatasetBuilderStd.create(location, params) ;
}
}
/** Make by creating the normal, transactional one and finding the base */
- private static class BuilderBase implements DatasetGraphMakerTDB
+ private static class _BuilderBase implements DatasetGraphMakerTDB
{
@Override
- public DatasetGraphTDB createDatasetGraph(Location location)
+ public DatasetGraphTDB createDatasetGraph(Location location, StoreParams params)
{
- DatasetGraph dsg = TDBFactory.createDatasetGraph(location) ;
+ if ( params != null )
+ System.err.println("StoreParams != null : ignored at the moment") ;
+ DatasetGraph dsg = TDBFactory.createDatasetGraph(location) ; // , params) ;
return TDBInternal.getBaseDatasetGraphTDB(dsg) ;
}
}
@@ -109,9 +119,9 @@ public class TDBMaker
private static class BuilderStoreConnectionBase implements DatasetGraphMakerTDB
{
@Override
- public DatasetGraphTDB createDatasetGraph(Location location)
+ public DatasetGraphTDB createDatasetGraph(Location location, StoreParams params)
{
- return StoreConnection.make(location).getBaseDataset() ;
+ return StoreConnection.make(location, params).getBaseDataset() ;
}
}
http://git-wip-us.apache.org/repos/asf/jena/blob/140a0889/jena-tdb/src/main/java/tdb/CmdRewriteIndex.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/tdb/CmdRewriteIndex.java b/jena-tdb/src/main/java/tdb/CmdRewriteIndex.java
index a7341f0..a8353bf 100644
--- a/jena-tdb/src/main/java/tdb/CmdRewriteIndex.java
+++ b/jena-tdb/src/main/java/tdb/CmdRewriteIndex.java
@@ -49,8 +49,8 @@ public class CmdRewriteIndex
System.exit(1) ;
}
- Location srcLoc = new Location(argv[0]) ;
- Location dstLoc = new Location(argv[1]) ;
+ Location srcLoc = Location.create(argv[0]) ;
+ Location dstLoc = Location.create(argv[1]) ;
String indexName = argv[2] ;
if ( ! FileOps.exists(argv[1]) )
http://git-wip-us.apache.org/repos/asf/jena/blob/140a0889/jena-tdb/src/main/java/tdb/cmdline/ModLocation.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/tdb/cmdline/ModLocation.java b/jena-tdb/src/main/java/tdb/cmdline/ModLocation.java
index 8b5dc25..fba78bf 100644
--- a/jena-tdb/src/main/java/tdb/cmdline/ModLocation.java
+++ b/jena-tdb/src/main/java/tdb/cmdline/ModLocation.java
@@ -49,7 +49,7 @@ public class ModLocation implements ArgModuleGeneral
if ( cmdLine.contains(locationDecl) )
{
String dir = cmdLine.getValue(locationDecl) ;
- location = new Location(dir) ;
+ location = Location.create(dir) ;
}
}
http://git-wip-us.apache.org/repos/asf/jena/blob/140a0889/jena-tdb/src/main/java/tdb/cmdline/ModTDBDataset.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/tdb/cmdline/ModTDBDataset.java b/jena-tdb/src/main/java/tdb/cmdline/ModTDBDataset.java
index ee87b42..0740e75 100644
--- a/jena-tdb/src/main/java/tdb/cmdline/ModTDBDataset.java
+++ b/jena-tdb/src/main/java/tdb/cmdline/ModTDBDataset.java
@@ -108,7 +108,7 @@ public class ModTDBDataset extends ModDataset
List<String> x = locations() ;
if ( x.size() == 0 )
return null ;
- return new Location(x.get(0)) ;
+ return Location.create(x.get(0)) ;
}
public List<String> locations()
http://git-wip-us.apache.org/repos/asf/jena/blob/140a0889/jena-tdb/src/main/java/tdb/tools/dumpnodetable.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/tdb/tools/dumpnodetable.java b/jena-tdb/src/main/java/tdb/tools/dumpnodetable.java
index 6e13787..fcd2666 100644
--- a/jena-tdb/src/main/java/tdb/tools/dumpnodetable.java
+++ b/jena-tdb/src/main/java/tdb/tools/dumpnodetable.java
@@ -89,7 +89,7 @@ public class dumpnodetable extends CmdGeneral
int sizeNodeMissCacheSize)
{
- NodeTable nodeTable = Build.makeNodeTable(new Location(location),
+ NodeTable nodeTable = Build.makeNodeTable(Location.create(location),
indexNode2Id, node2NodeIdCacheSize,
indexId2Node, nodeId2NodeCacheSize,
sizeNodeMissCacheSize) ;
http://git-wip-us.apache.org/repos/asf/jena/blob/140a0889/jena-tdb/src/main/java/tdb/tools/tdbgenindex.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/tdb/tools/tdbgenindex.java b/jena-tdb/src/main/java/tdb/tools/tdbgenindex.java
index 9faf239..723a964 100644
--- a/jena-tdb/src/main/java/tdb/tools/tdbgenindex.java
+++ b/jena-tdb/src/main/java/tdb/tools/tdbgenindex.java
@@ -42,10 +42,10 @@ public class tdbgenindex
System.exit(1) ;
}
- Location srcLoc = new Location(argv[0]) ;
+ Location srcLoc = Location.create(argv[0]) ;
String srcIndexName = argv[1] ;
- Location dstLoc = new Location(argv[2]) ;
+ Location dstLoc = Location.create(argv[2]) ;
String dstIndexName = argv[3] ;
int readCacheSize = 0 ;
http://git-wip-us.apache.org/repos/asf/jena/blob/140a0889/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/base/file/TestLocationLock.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/base/file/TestLocationLock.java b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/base/file/TestLocationLock.java
index 90a6cfb..1ad2a6f 100644
--- a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/base/file/TestLocationLock.java
+++ b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/base/file/TestLocationLock.java
@@ -60,7 +60,7 @@ public class TestLocationLock {
@Test
public void location_lock_dir_01() {
- Location dir = new Location(tempDir.getRoot().getAbsolutePath());
+ Location dir = Location.create(tempDir.getRoot().getAbsolutePath());
LocationLock lock = dir.getLock();
Assert.assertTrue(lock.canLock());
Assert.assertFalse(lock.isLocked());
@@ -82,7 +82,7 @@ public class TestLocationLock {
public void location_lock_dir_02() throws IOException {
Assume.assumeTrue(negativePidsTreatedAsAlive);
- Location dir = new Location(tempDir.getRoot().getAbsolutePath());
+ Location dir = Location.create(tempDir.getRoot().getAbsolutePath());
LocationLock lock = dir.getLock();
Assert.assertTrue(lock.canLock());
Assert.assertFalse(lock.isLocked());
@@ -100,7 +100,7 @@ public class TestLocationLock {
@Test
public void location_lock_dir_03() {
- Location dir = new Location(tempDir.getRoot().getAbsolutePath());
+ Location dir = Location.create(tempDir.getRoot().getAbsolutePath());
LocationLock lock = dir.getLock();
Assert.assertTrue(lock.canLock());
Assert.assertFalse(lock.isLocked());
@@ -124,7 +124,7 @@ public class TestLocationLock {
public void location_lock_dir_error_01() throws IOException {
Assume.assumeTrue(negativePidsTreatedAsAlive);
- Location dir = new Location(tempDir.getRoot().getAbsolutePath());
+ Location dir = Location.create(tempDir.getRoot().getAbsolutePath());
LocationLock lock = dir.getLock();
Assert.assertTrue(lock.canLock());
Assert.assertFalse(lock.isLocked());
@@ -148,7 +148,7 @@ public class TestLocationLock {
public void location_lock_dir_error_02() throws IOException {
Assume.assumeTrue(negativePidsTreatedAsAlive);
- Location dir = new Location(tempDir.getRoot().getAbsolutePath());
+ Location dir = Location.create(tempDir.getRoot().getAbsolutePath());
LocationLock lock = dir.getLock();
Assert.assertTrue(lock.canLock());
Assert.assertFalse(lock.isLocked());
@@ -173,7 +173,7 @@ public class TestLocationLock {
public void location_lock_dir_error_03() throws IOException {
Assume.assumeTrue(negativePidsTreatedAsAlive);
- Location dir = new Location(tempDir.getRoot().getAbsolutePath());
+ Location dir = Location.create(tempDir.getRoot().getAbsolutePath());
LocationLock lock = dir.getLock();
Assert.assertTrue(lock.canLock());
Assert.assertFalse(lock.isLocked());
http://git-wip-us.apache.org/repos/asf/jena/blob/140a0889/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/base/objectfile/TestStringFileDisk.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/base/objectfile/TestStringFileDisk.java b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/base/objectfile/TestStringFileDisk.java
index 9a984d1..cf9c1f7 100644
--- a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/base/objectfile/TestStringFileDisk.java
+++ b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/base/objectfile/TestStringFileDisk.java
@@ -35,7 +35,7 @@ public class TestStringFileDisk extends AbstractTestStringFile
{
String dir = ConfigTest.getTestingDir() ;
clearDirectory(dir) ;
- Location loc = new Location(dir) ;
+ Location loc = Location.create(dir) ;
fn = loc.getPath("xyz", "node") ;
FileOps.delete(fn) ;
return FileFactory.createStringFileDisk(fn) ;
http://git-wip-us.apache.org/repos/asf/jena/blob/140a0889/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/extra/T_QuadsObjectIsNull.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/extra/T_QuadsObjectIsNull.java b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/extra/T_QuadsObjectIsNull.java
index d6d90d0..333caf1 100644
--- a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/extra/T_QuadsObjectIsNull.java
+++ b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/extra/T_QuadsObjectIsNull.java
@@ -41,7 +41,7 @@ public class T_QuadsObjectIsNull {
// }
static String DIR = "DBX" ;
- static Location location = new Location(DIR) ;
+ static Location location = Location.create(DIR) ;
public static void main(String[] args) {
http://git-wip-us.apache.org/repos/asf/jena/blob/140a0889/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/extra/T_TDBWriteTransaction.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/extra/T_TDBWriteTransaction.java b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/extra/T_TDBWriteTransaction.java
index c50127b..7a12e20 100644
--- a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/extra/T_TDBWriteTransaction.java
+++ b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/extra/T_TDBWriteTransaction.java
@@ -85,7 +85,7 @@ public class T_TDBWriteTransaction {
{
if ( false )
{
- Journal journal = Journal.create(new Location(location)) ;
+ Journal journal = Journal.create(Location.create(location)) ;
JournalControl.print(journal) ;
journal.close() ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/140a0889/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/extra/T_TransSystem.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/extra/T_TransSystem.java b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/extra/T_TransSystem.java
index c7aefe0..1b459db 100644
--- a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/extra/T_TransSystem.java
+++ b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/extra/T_TransSystem.java
@@ -70,7 +70,7 @@ public class T_TransSystem
static boolean MEM = true ;
static String location = true ? "/mnt/ssd1/tmp/DB163" : ConfigTest.getTestingDirDB() ; // Using an SSD here is very helpful
//static String location = ConfigTest.getTestingDirDB() ; // Using an SSD here is very helpful
- static final Location LOC = MEM ? Location.mem() : new Location(location) ;
+ static final Location LOC = MEM ? Location.mem() : Location.create(location) ;
static {
//SystemTDB.isWindows
@@ -416,7 +416,7 @@ public class T_TransSystem
{
FileOps.clearDirectory(LOC.getDirectoryPath()) ;
// Clean because it's new.
- //LOC = new Location(ConfigTest.getTestingDirUnique()) ;
+ //LOC = Location.create(ConfigTest.getTestingDirUnique()) ;
}
}
@@ -669,7 +669,7 @@ public class T_TransSystem
private static int initCount = -1 ;
- //static final Location LOC = new Location(ConfigTest.getTestingDirDB()) ;
+ //static final Location LOC = Location.create(ConfigTest.getTestingDirDB()) ;
static final AtomicInteger gen = new AtomicInteger() ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/140a0889/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/extra/T_TransSystemMultiDatasets.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/extra/T_TransSystemMultiDatasets.java b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/extra/T_TransSystemMultiDatasets.java
index 90da56c..1acfc68 100644
--- a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/extra/T_TransSystemMultiDatasets.java
+++ b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/extra/T_TransSystemMultiDatasets.java
@@ -77,7 +77,7 @@ public class T_TransSystemMultiDatasets
private static int count_datasets = 0 ;
static Location createLocation() {
- return MEM ? Location.mem() : new Location(ConfigTest.getTestingDirDB() + File.separator + "DB-" + ++count_datasets) ;
+ return MEM ? Location.mem() : Location.create(ConfigTest.getTestingDirDB() + File.separator + "DB-" + ++count_datasets) ;
}
static final int Iterations = MEM ? 1000 : 100 ;
@@ -548,7 +548,7 @@ public class T_TransSystemMultiDatasets
private static int initCount = -1 ;
- //static final Location LOC = new Location(ConfigTest.getTestingDirDB()) ;
+ //static final Location LOC = Location.create(ConfigTest.getTestingDirDB()) ;
static final AtomicInteger gen = new AtomicInteger() ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/140a0889/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/graph/TestPrefixMappingTDB.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/graph/TestPrefixMappingTDB.java b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/graph/TestPrefixMappingTDB.java
index 0665f83..49302e2 100644
--- a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/graph/TestPrefixMappingTDB.java
+++ b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/graph/TestPrefixMappingTDB.java
@@ -91,7 +91,7 @@ public class TestPrefixMappingTDB extends AbstractTestPrefixMapping2
String dir = ConfigTest.getTestingDir() ;
FileOps.clearDirectory(dir) ;
- DatasetPrefixesTDB prefixes = createTesting(new Location(dir), new DatasetControlMRSW()) ;
+ DatasetPrefixesTDB prefixes = createTesting(Location.create(dir), new DatasetControlMRSW()) ;
PrefixMapping pmap1 = prefixes.getPrefixMapping() ;
String x = pmap1.getNsPrefixURI("x") ;
@@ -105,13 +105,13 @@ public class TestPrefixMappingTDB extends AbstractTestPrefixMapping2
String dir = ConfigTest.getTestingDir() ;
FileOps.clearDirectory(dir) ;
- DatasetPrefixesTDB prefixes = createTesting(new Location(dir), new DatasetControlMRSW()) ;
+ DatasetPrefixesTDB prefixes = createTesting(Location.create(dir), new DatasetControlMRSW()) ;
PrefixMapping pmap1 = prefixes.getPrefixMapping() ;
pmap1.setNsPrefix("x", "http://foo/") ;
prefixes.close() ;
- prefixes = createTesting(new Location(dir), new DatasetControlMRSW()) ;
+ prefixes = createTesting(Location.create(dir), new DatasetControlMRSW()) ;
assertEquals("http://foo/", pmap1.getNsPrefixURI("x")) ;
prefixes.close() ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/140a0889/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/store/TestDatasetTDBPersist.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/store/TestDatasetTDBPersist.java b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/store/TestDatasetTDBPersist.java
index 54a2e20..ef2a3e8 100644
--- a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/store/TestDatasetTDBPersist.java
+++ b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/store/TestDatasetTDBPersist.java
@@ -56,7 +56,7 @@ public class TestDatasetTDBPersist extends BaseTest
{
String dirname = ConfigTest.getCleanDir() ;
StoreConnection.reset() ;
- graphLocation = new GraphLocation(new Location(dirname)) ;
+ graphLocation = new GraphLocation(Location.create(dirname)) ;
graphLocation.createDataset() ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/140a0889/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/store/TestGraphTDB.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/store/TestGraphTDB.java b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/store/TestGraphTDB.java
index 8576d7f..5acba6f 100644
--- a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/store/TestGraphTDB.java
+++ b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/store/TestGraphTDB.java
@@ -39,7 +39,7 @@ public class TestGraphTDB extends AbstractTestGraph2
@BeforeClass public static void beforeClass()
{
StoreConnection.reset() ;
- graphLocation = new GraphLocation(new Location(ConfigTest.getCleanDir())) ;
+ graphLocation = new GraphLocation(Location.create(ConfigTest.getCleanDir())) ;
graphLocation.release() ;
graphLocation.clearDirectory() ;
graphLocation.createGraph() ;
http://git-wip-us.apache.org/repos/asf/jena/blob/140a0889/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/transaction/TestNodeTableTransDisk.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/transaction/TestNodeTableTransDisk.java b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/transaction/TestNodeTableTransDisk.java
index 6d450bd..5eadac8 100644
--- a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/transaction/TestNodeTableTransDisk.java
+++ b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/transaction/TestNodeTableTransDisk.java
@@ -34,7 +34,7 @@ public class TestNodeTableTransDisk extends AbstractTestNodeTableTrans
@Before public void before()
{
String dir = ConfigTest.getCleanDir() ;
- loc = new Location(dir) ;
+ loc = Location.create(dir) ;
}
@Override
http://git-wip-us.apache.org/repos/asf/jena/blob/140a0889/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/transaction/TestObjectFileTransStorage.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/transaction/TestObjectFileTransStorage.java b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/transaction/TestObjectFileTransStorage.java
index caaedbd..fee0eaf 100644
--- a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/transaction/TestObjectFileTransStorage.java
+++ b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/transaction/TestObjectFileTransStorage.java
@@ -29,7 +29,7 @@ public class TestObjectFileTransStorage extends AbstractTestObjectFileTrans
ObjectFile createFile(String basename)
{
// String dir = ConfigTest.getTestingDir() ;
-// Location loc = new Location(dir) ;
+// Location loc = Location.create(dir) ;
// String fn = loc.getPath(basename) ;
// FileOps.deleteSilent(fn) ;
// BufferChannel chan = new BufferChannelFile(fn) ;
@@ -46,7 +46,7 @@ public class TestObjectFileTransStorage extends AbstractTestObjectFileTrans
void deleteFile(String basename)
{
// String dir = ConfigTest.getTestingDir() ;
-// Location loc = new Location(dir) ;
+// Location loc = Location.create(dir) ;
// String fn = loc.getPath(basename) ;
// FileOps.delete(fn) ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/140a0889/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 0bab155..0b0ed5b 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
@@ -59,7 +59,7 @@ public class TestTransRestart extends BaseTest {
@Before public void setup() {
path = ConfigTest.getCleanDir() ;
- location = new Location (path) ;
+ location = Location.create (path) ;
if ( useTransactionsSetup )
setupTxn() ;
else
http://git-wip-us.apache.org/repos/asf/jena/blob/140a0889/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransactionTDB.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransactionTDB.java b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransactionTDB.java
index 6966dca..5c1193c 100644
--- a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransactionTDB.java
+++ b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransactionTDB.java
@@ -45,7 +45,7 @@ public class TestTransactionTDB extends AbstractTestTransaction
@Before public void before()
{
DIR = ConfigTest.getCleanDir() ;
- StoreConnection.release(new Location(DIR)) ;
+ StoreConnection.release(Location.create(DIR)) ;
}
@After public void after()
[04/13] jena git commit: Fix mistaken recursion.
Posted by an...@apache.org.
Fix mistaken recursion.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/aae3f238
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/aae3f238
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/aae3f238
Branch: refs/heads/master
Commit: aae3f2389716d8cace12a9672b022879f42fd585
Parents: 463de5f
Author: Andy Seaborne <an...@apache.org>
Authored: Wed Nov 5 13:48:12 2014 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Wed Nov 5 15:06:44 2014 +0000
----------------------------------------------------------------------
jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/Location.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/aae3f238/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/Location.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/Location.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/Location.java
index 0d18d51..26152b7 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/Location.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/Location.java
@@ -60,7 +60,7 @@ public class Location {
/** Return a location for a directory on disk */
static public Location create(String directoryName) {
- Location loc = Location.create(directoryName) ;
+ Location loc = new Location(directoryName) ;
return loc ;
}
[05/13] jena git commit: Put in default StoreParams calls
Posted by an...@apache.org.
Put in default StoreParams calls
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/906be05b
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/906be05b
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/906be05b
Branch: refs/heads/master
Commit: 906be05b1f491c96eadba008c494b8faa72cdf81
Parents: 74b75f3
Author: Andy Seaborne <an...@apache.org>
Authored: Wed Nov 5 16:36:12 2014 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Wed Nov 5 16:36:12 2014 +0000
----------------------------------------------------------------------
.../com/hp/hpl/jena/tdb/StoreConnection.java | 4 +-
.../hpl/jena/tdb/setup/DatasetBuilderStd.java | 37 +++++++++++++-----
.../com/hp/hpl/jena/tdb/setup/StoreParams.java | 41 +++++++++++++++++---
.../hp/hpl/jena/tdb/setup/StoreParamsConst.java | 27 +++++++++++++
.../store/bulkloader2/CmdNodeTableBuilder.java | 2 +-
.../com/hp/hpl/jena/tdb/store/TestLoader.java | 2 +-
6 files changed, 94 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/906be05b/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 91b333e..5935a9a 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,12 +230,12 @@ public class StoreConnection
return sConn ;
}
- @Deprecated
+ /** Make a StoreConnection based on any StoreParams at eh location or the system defaults. */
public static StoreConnection make(Location location) {
return make(location, null) ;
}
- /**
+ /**
* Return the StoreConnection if one already exists for this location, else
* return null
*/
http://git-wip-us.apache.org/repos/asf/jena/blob/906be05b/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 38173b5..3dd02e6 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
@@ -67,28 +67,47 @@ public class DatasetBuilderStd implements DatasetBuilder {
private TupleIndexBuilder tupleIndexBuilder ;
private Recorder recorder = null ;
- @Deprecated
+ /**
+ *
+ * @param location
+ * @return DatasetGraphTDB
+ */
public static DatasetGraphTDB create(Location location) {
return create(location, null) ;
}
- public static DatasetGraphTDB create(Location location, StoreParams $params) {
- StoreParams params = paramsForLocation(location) ;
+ /**
+ * Create a {@linkplain DatasetGraphTDB} with a set of {@linkplain StoreParams}.
+ * 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).
+ * @return DatasetGraphTDB
+ */
+ public static DatasetGraphTDB create(Location location, StoreParams params) {
+ StoreParams $params = paramsForLocation(location) ;
// ---- Experimental
- if ( ! location.isMem() && $params != null ) {
+ if ( ! location.isMem() && params != null ) {
if ( FileOps.existsAnyFiles(location.getDirectoryPath()) )
- params = StoreParamsBuilder.modify(params, $params) ;
+ $params = StoreParamsBuilder.modify($params, params) ;
else
- params = $params ;
- $params = null ;
+ $params = params ;
+ params = null ;
}
// ----
- if ( $params != null )
+ if ( params != null )
log.warn("StoreParams != null (experimental)") ;
DatasetBuilderStd x = new DatasetBuilderStd() ;
x.standardSetup() ;
- return x.build(location, params) ;
+ DatasetGraphTDB dsg = x.build(location, $params) ;
+ // Write params.
+ //if ( params != StoreParams.getDftStoreParams() )
+
+ return dsg ;
}
public static DatasetGraphTDB create(StoreParams params) {
http://git-wip-us.apache.org/repos/asf/jena/blob/906be05b/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 8790c9b..ee71b01 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
@@ -25,12 +25,25 @@ import org.apache.jena.atlas.lib.StrUtils ;
import com.hp.hpl.jena.tdb.base.block.FileMode ;
import com.hp.hpl.jena.tdb.index.IndexParams ;
-/** System parameters for a TDB database instance. */
+/** System parameters for a TDB database instance.
+ * <p>
+ * Some parameters can be changed from run to run
+ * and some parameters can only be changed at the point the database is
+ * created.
+ * <p>
+ * Getting paramters settings wrong can destroy a databse.
+ * Alternating the block size is not encouraged and should only be
+ * done if necessary. It can silently destroy a database if set
+ * to a different value than thatused to create the database. The
+ * default value of 8Kbytes is good for almo
+ *
+ *
+ *
+ * @see StoreParamsBuilder for constructing StoreParams
+ * @see StoreParamsConst for default values.
+ */
public class StoreParams implements IndexParams, StoreParamsDynamic
{
- // SystemParams are built with a SystemParamsBuilder
-
- private static StoreParams dftStoreParams = StoreParamsBuilder.create().build() ;
/* These are items you can change JVM to JVM */
@@ -89,9 +102,25 @@ public class StoreParams implements IndexParams, StoreParamsDynamic
this.prefixNode2Id = prefixNode2Id ;
this.prefixId2Node = prefixId2Node ;
}
-
+
+ /** The system default settings. This is the normal set to use.
+ * It is the set of values used when no StoreParams is provided,
+ * which is the normal usage.
+ */
public static StoreParams getDftStoreParams() {
- return dftStoreParams ;
+ return StoreParamsConst.dftStoreParams ;
+ }
+
+ /** A {@code StoreParams} that provides a smaller
+ * in-JVM foot print. This is compatible with
+ * any database but it it is wise to use this consistently,
+ * that is, use when created and when opened later.
+ * It reduces cache sizes and runs the database in "direct"
+ * file mode so as not to use memory mapped files
+ * in addition to the JVM space.
+ */
+ public static StoreParams getSmallStoreParams() {
+ return StoreParamsConst.smallStoreParams ;
}
@Override
http://git-wip-us.apache.org/repos/asf/jena/blob/906be05b/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 7f10450..70e6b6a 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
@@ -23,6 +23,33 @@ import com.hp.hpl.jena.tdb.sys.Names ;
import com.hp.hpl.jena.tdb.sys.SystemTDB ;
public class StoreParamsConst {
+
+ // SystemParams are built with a SystemParamsBuilder
+
+ /** The system default parameters for on-disk databases. */
+ static StoreParams dftStoreParams = StoreParamsBuilder.create().build() ;
+
+ /** The system default parameters for in-memory databases. */
+ static StoreParams dftMemStoreParams = StoreParamsBuilder.create()
+ .fileMode(FileMode.direct)
+ // Small block caches, mainly so it behaves like a direct on-disk database.
+ .blockReadCacheSize(10)
+ .blockWriteCacheSize(10)
+ .node2NodeIdCacheSize(10000)
+ .nodeId2NodeCacheSize(10000)
+ .nodeMissCacheSize(100)
+ .build() ;
+
+ /** The "small store" parameters. */
+ static StoreParams smallStoreParams = StoreParamsBuilder.create()
+ .fileMode(FileMode.direct)
+ .blockReadCacheSize(100)
+ .blockWriteCacheSize(100)
+ .node2NodeIdCacheSize(10000)
+ .nodeId2NodeCacheSize(10000)
+ .nodeMissCacheSize(100)
+ .build() ;
+
// Initial values are the system defaults.
/** Database and query configuration */
http://git-wip-us.apache.org/repos/asf/jena/blob/906be05b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/bulkloader2/CmdNodeTableBuilder.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/bulkloader2/CmdNodeTableBuilder.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/bulkloader2/CmdNodeTableBuilder.java
index 1782de6..f6eabc5 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/bulkloader2/CmdNodeTableBuilder.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/bulkloader2/CmdNodeTableBuilder.java
@@ -142,7 +142,7 @@ public class CmdNodeTableBuilder extends CmdGeneral
// Later - attach prefix table to parser.
dsg.getPrefixes().close() ;
- ProgressLogger monitor = new ProgressLogger(cmdLog, "Data", BulkLoader.DataTickPoint,BulkLoader.superTick) ;
+ ProgressLogger monitor = new ProgressLogger(cmdLog, "Data", BulkLoader.DataTickPoint, BulkLoader.superTick) ;
OutputStream outputTriples = null ;
OutputStream outputQuads = null ;
http://git-wip-us.apache.org/repos/asf/jena/blob/906be05b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/store/TestLoader.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/store/TestLoader.java b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/store/TestLoader.java
index 60ed84f..4284dde 100644
--- a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/store/TestLoader.java
+++ b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/store/TestLoader.java
@@ -61,7 +61,7 @@ public class TestLoader extends BaseTest {
}
static DatasetGraphTDB fresh() {
- return TDBMaker.createDatasetGraphTDB(Location.mem()) ;
+ return TDBMaker.createDatasetGraphTDB(Location.mem(), null) ;
}
@Test
[07/13] jena git commit: Make constructor public, but deprecated,
for compatibility.
Posted by an...@apache.org.
Make constructor public, but deprecated, for compatibility.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/8f3a7ceb
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/8f3a7ceb
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/8f3a7ceb
Branch: refs/heads/master
Commit: 8f3a7ceb042da05dea403443ce07225c4058b703
Parents: 879742c
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Nov 7 12:24:28 2014 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Nov 7 12:24:28 2014 +0000
----------------------------------------------------------------------
jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/Location.java | 2 ++
1 file changed, 2 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/8f3a7ceb/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/Location.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/Location.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/Location.java
index 26152b7..e8d010a 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/Location.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/Location.java
@@ -80,6 +80,8 @@ public class Location {
location.lock = new LocationLock(location);
}
+ /** @deprecated Use{@linkplain Location#create(String)} */
+ @Deprecated
public Location(String rootname) {
super() ;
if ( rootname.equals(Names.memName) ) {
[08/13] jena git commit: Building, getting, persisting,
choosing StoreParams.
Posted by an...@apache.org.
Building, getting, persisting, choosing StoreParams.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/25d16cbb
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/25d16cbb
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/25d16cbb
Branch: refs/heads/master
Commit: 25d16cbb8f315152a1a79952cbf819fdc2f5123f
Parents: 8f3a7ce
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Nov 7 20:44:07 2014 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Nov 7 20:44:07 2014 +0000
----------------------------------------------------------------------
.../hp/hpl/jena/tdb/base/block/BlockParams.java | 6 +-
.../com/hp/hpl/jena/tdb/base/file/Location.java | 2 +-
.../com/hp/hpl/jena/tdb/index/IndexParams.java | 6 +-
.../java/com/hp/hpl/jena/tdb/setup/Build.java | 68 ++++
.../com/hp/hpl/jena/tdb/setup/StoreParams.java | 322 +++++++++++++------
.../hpl/jena/tdb/setup/StoreParamsBuilder.java | 242 ++++++++------
.../hp/hpl/jena/tdb/setup/StoreParamsCodec.java | 57 +++-
.../hp/hpl/jena/tdb/setup/StoreParamsConst.java | 54 ++--
.../hpl/jena/tdb/setup/StoreParamsDynamic.java | 21 +-
.../com/hp/hpl/jena/tdb/setup/TS_TDBSetup.java | 2 +
.../hp/hpl/jena/tdb/setup/TestStoreParams.java | 64 ++--
.../jena/tdb/setup/TestStoreParamsChoose.java | 155 +++++++++
.../jena/tdb/setup/TestStoreParamsCreate.java | 83 +++++
13 files changed, 812 insertions(+), 270 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/25d16cbb/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/block/BlockParams.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/block/BlockParams.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/block/BlockParams.java
index ef0d511..e3113e5 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/block/BlockParams.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/block/BlockParams.java
@@ -20,8 +20,8 @@ package com.hp.hpl.jena.tdb.base.block;
public interface BlockParams {
public FileMode getFileMode() ;
- public int getBlockSize() ;
- public int getBlockReadCacheSize() ;
- public int getBlockWriteCacheSize() ;
+ public Integer getBlockSize() ;
+ public Integer getBlockReadCacheSize() ;
+ public Integer getBlockWriteCacheSize() ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/25d16cbb/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/Location.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/Location.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/Location.java
index e8d010a..641ab3b 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/Location.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/Location.java
@@ -53,7 +53,7 @@ public class Location {
/** Return a memory location with a name */
static public Location mem(String name) {
- Location loc = Location.mem() ;
+ Location loc = new Location() ;
memInit(loc, name) ;
return loc ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/25d16cbb/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/index/IndexParams.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/index/IndexParams.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/index/IndexParams.java
index cdfbe9f..2358d99 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/index/IndexParams.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/index/IndexParams.java
@@ -28,11 +28,11 @@ public interface IndexParams extends BlockParams {
/** Block size - this is only configurable when the on-disk are created.
* After that, the same value as at creation must be used each time.
*/
- @Override public int getBlockSize() ;
+ @Override public Integer getBlockSize() ;
/** Block read cache size (mmap'ed files do not have a block cache)*/
- @Override public int getBlockReadCacheSize() ;
+ @Override public Integer getBlockReadCacheSize() ;
/** Block write cache size (mmap'ed files do not have a block cache)*/
- @Override public int getBlockWriteCacheSize() ;
+ @Override public Integer getBlockWriteCacheSize() ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/25d16cbb/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 ddb98d2..558846a 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
@@ -22,6 +22,7 @@ import org.apache.jena.atlas.lib.ColumnMap ;
import org.slf4j.Logger ;
import org.slf4j.LoggerFactory ;
+import com.hp.hpl.jena.tdb.TDBFactory ;
import com.hp.hpl.jena.tdb.base.file.FileSet ;
import com.hp.hpl.jena.tdb.base.file.Location ;
import com.hp.hpl.jena.tdb.base.record.RecordFactory ;
@@ -83,4 +84,71 @@ public class Build
DatasetBuilderStd dbBuild = DatasetBuilderStd.stdBuilder() ;
return makeNodeTable(location, spb.build()) ;
}
+
+ /** Choose the StoreParams. This is the policy applied when creating or reattaching to a database.
+ * (extracted and put here to keep the size of DatasetBuildStd
+ * <p>
+ * If the location has parameters in a <tt>tdb.cfg</tt> file, use them, as modified by any
+ * application-supplied internal parameters.
+ * <p>
+ * Otherwise, if this is a new database, use the application provided
+ * parameters or if there are no application provided
+ * parameters, use the system default parameters.
+ * Write the parameters used to the location in <tt>tdb.cfg</tt>
+ * <p>If this is an existing database and there are no location recorded parameters,
+ * use system default parameters, modified by application parameters.
+ * <p>
+ * Notes:
+ * <ul>
+ * <li><i>Modification</i> involves setting any of the parameters than can vary from run to run.
+ * These are the cache sizes and the file mode.
+ * <li><i>Block size</i>: it is critical that this set correctly. Silent corruption
+ * of a database may occur if this is changed. At the moment, it is not possible to provide
+ * a complete check of block size.
+ * <ul>
+ * <p>
+ * Do not edit store parameters recorded at a location after the database has been created.
+ * Only the dynamic parameters cna be safely changed. That is better done though the application
+ * providing some parameters in the {@linkplain TDBFactory} call.
+ * <p>
+ * This includes changing filenames, indexing choices and block size.
+ * Otherwise, the database may be permanetly and irrecovably corrupted.
+ * You have been warned.
+ *
+ * @param location The place where the database is or will be.
+ * @param isNew Whether the database is being created or whether there is an existing database.
+ * @param pApp Application-provide store parameters.
+ * @param pLoc Store parameters foud at the location.
+ * @param pDft System default store parameters.
+ * @return StoreParams
+ *
+ * @see StoreParams
+ * @see StoreParamsDynamic
+ */
+ static StoreParams fixStoreParams(Location location, boolean isNew, StoreParams pApp, StoreParams pLoc, StoreParams pDft) {
+ StoreParams p = null ;
+ if ( pLoc != null ) {
+ // pLoc so use it, modify by pApp.
+ // Covers new and reconnect cases.
+ p = pLoc ;
+ if ( pApp != null )
+ p = StoreParamsBuilder.modify(pLoc, pApp) ;
+ return p ;
+ }
+ // No pLoc.
+ // Use pApp if available. Write to location if new.
+ if ( pApp != null ) {
+ if ( isNew ) {
+ if ( ! location.isMem() ) {
+ String filename = location.getPath(StoreParamsConst.TDB_CONFIG_FILE) ;
+ StoreParamsCodec.write(filename, pApp) ;
+ }
+ return pApp ;
+ }
+ // Not new : pLoc is implicitly pDft.
+ return StoreParamsBuilder.modify(pDft, pApp) ;
+ }
+ // no pLoc, no pApp
+ return pDft ;
+ }
}
http://git-wip-us.apache.org/repos/asf/jena/blob/25d16cbb/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 ee71b01..81873dc 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
@@ -18,12 +18,13 @@
package com.hp.hpl.jena.tdb.setup;
-import java.util.Arrays ;
+import java.util.Objects ;
import org.apache.jena.atlas.lib.StrUtils ;
import com.hp.hpl.jena.tdb.base.block.FileMode ;
import com.hp.hpl.jena.tdb.index.IndexParams ;
+import com.hp.hpl.jena.tdb.setup.StoreParamsBuilder.Item ;
/** System parameters for a TDB database instance.
* <p>
@@ -35,9 +36,7 @@ import com.hp.hpl.jena.tdb.index.IndexParams ;
* Alternating the block size is not encouraged and should only be
* done if necessary. It can silently destroy a database if set
* to a different value than thatused to create the database. The
- * default value of 8Kbytes is good for almo
- *
- *
+ * default value of 8Kbytes is good for almost use.
*
* @see StoreParamsBuilder for constructing StoreParams
* @see StoreParamsConst for default values.
@@ -47,12 +46,12 @@ public class StoreParams implements IndexParams, StoreParamsDynamic
/* These are items you can change JVM to JVM */
- private final FileMode fileMode ;
- private final int blockReadCacheSize ;
- private final int blockWriteCacheSize ;
- private final int Node2NodeIdCacheSize ;
- private final int NodeId2NodeCacheSize ;
- private final int NodeMissCacheSize ;
+ /*package*/ final Item<FileMode> fileMode ;
+ /*package*/ final Item<Integer> blockReadCacheSize ;
+ /*package*/ final Item<Integer> blockWriteCacheSize ;
+ /*package*/ final Item<Integer> Node2NodeIdCacheSize ;
+ /*package*/ final Item<Integer> NodeId2NodeCacheSize ;
+ /*package*/ final Item<Integer> NodeMissCacheSize ;
/* These are items affect database layout and
* only can be applied when a database is created.
@@ -60,27 +59,30 @@ public class StoreParams implements IndexParams, StoreParamsDynamic
* If you want to, say, change the index structure,
* you'll need to use the index tools.
*/
- private final int blockSize ;
- private final String indexNode2Id ;
- private final String indexId2Node ;
- private final String primaryIndexTriples ;
- private final String[] tripleIndexes ;
- private final String primaryIndexQuads ;
- private final String[] quadIndexes ;
- private final String primaryIndexPrefix ;
- private final String[] prefixIndexes ;
- private final String indexPrefix ;
-
- private final String prefixNode2Id ;
- private final String prefixId2Node ;
- public StoreParams(FileMode fileMode, int blockSize, int blockReadCacheSize, int blockWriteCacheSize,
- int node2NodeIdCacheSize, int nodeId2NodeCacheSize, int nodeMissCacheSize,
- String indexNode2Id, String indexId2Node,
- String primaryIndexTriples, String[] tripleIndexes,
- String primaryIndexQuads, String[] quadIndexes,
- String primaryIndexPrefix, String[] prefixIndexes, String indexPrefix,
- String prefixNode2Id, String prefixId2Node) {
+ /*package*/ final Item<Integer> blockSize ;
+ /*package*/ final Item<String> indexNode2Id ;
+ /*package*/ final Item<String> indexId2Node ;
+ /*package*/ final Item<String> primaryIndexTriples ;
+ /*package*/ final Item<String[]> tripleIndexes ;
+ /*package*/ final Item<String> primaryIndexQuads ;
+ /*package*/ final Item<String[]> quadIndexes ;
+ /*package*/ final Item<String> primaryIndexPrefix ;
+ /*package*/ final Item<String[]> prefixIndexes ;
+ /*package*/ final Item<String> indexPrefix ;
+ /*package*/ final Item<String> prefixNode2Id ;
+ /*package*/ final Item<String> prefixId2Node ;
+
+
+ /*package*/ StoreParams(Item<FileMode> fileMode, Item<Integer> blockSize,
+ Item<Integer> blockReadCacheSize, Item<Integer> blockWriteCacheSize,
+ Item<Integer> node2NodeIdCacheSize, Item<Integer> nodeId2NodeCacheSize,
+ Item<Integer> nodeMissCacheSize,
+ Item<String> indexNode2Id, Item<String> indexId2Node,
+ Item<String> primaryIndexTriples, Item<String[]> tripleIndexes,
+ Item<String> primaryIndexQuads, Item<String[]> quadIndexes,
+ Item<String> primaryIndexPrefix, Item<String[]> prefixIndexes,
+ Item<String> indexPrefix, Item<String> prefixNode2Id, Item<String> prefixId2Node) {
this.fileMode = fileMode ;
this.blockSize = blockSize ;
this.blockReadCacheSize = blockReadCacheSize ;
@@ -125,146 +127,236 @@ public class StoreParams implements IndexParams, StoreParamsDynamic
@Override
public FileMode getFileMode() {
- return fileMode ;
+ return fileMode.value ;
}
-
+
+ @Override
+ public boolean isSetFileMode() {
+ return fileMode.isSet ;
+ }
+
+ @Override
+ public Integer getBlockSize() {
+ return blockSize.value ;
+ }
+
+ @Override
+ public Integer getBlockReadCacheSize() {
+ return blockReadCacheSize.value ;
+ }
+
@Override
- public int getBlockSize() {
- return blockSize ;
+ public boolean isSetBlockReadCacheSize() {
+ return blockReadCacheSize.isSet ;
}
@Override
- public int getBlockReadCacheSize() {
- return blockReadCacheSize ;
+ public Integer getBlockWriteCacheSize() {
+ return blockWriteCacheSize.value ;
}
@Override
- public int getBlockWriteCacheSize() {
- return blockWriteCacheSize ;
+ public boolean isSetBlockWriteCacheSize() {
+ return blockWriteCacheSize.isSet ;
}
@Override
- public int getNode2NodeIdCacheSize() {
- return Node2NodeIdCacheSize ;
+ public Integer getNode2NodeIdCacheSize() {
+ return Node2NodeIdCacheSize.value ;
}
@Override
- public int getNodeId2NodeCacheSize() {
- return NodeId2NodeCacheSize ;
+ public boolean isSetNodeId2NodeCacheSize() {
+ return NodeId2NodeCacheSize.isSet ;
}
@Override
- public int getNodeMissCacheSize() {
- return NodeMissCacheSize ;
+ public boolean isSetNode2NodeIdCacheSize() {
+ return Node2NodeIdCacheSize.isSet ;
+ }
+
+ @Override
+ public Integer getNodeId2NodeCacheSize() {
+ return NodeId2NodeCacheSize.value ;
+ }
+
+ @Override
+ public Integer getNodeMissCacheSize() {
+ return NodeMissCacheSize.value ;
+ }
+
+ @Override
+ public boolean isSetNodeMissCacheSize() {
+ return NodeMissCacheSize.isSet ;
}
public String getIndexNode2Id() {
- return indexNode2Id ;
+ return indexNode2Id.value ;
}
public String getIndexId2Node() {
- return indexId2Node ;
+ return indexId2Node.value ;
}
public String getPrimaryIndexTriples() {
- return primaryIndexTriples ;
+ return primaryIndexTriples.value ;
}
public String[] getTripleIndexes() {
- return tripleIndexes ;
+ return tripleIndexes.value ;
}
public String getPrimaryIndexQuads() {
- return primaryIndexQuads ;
+ return primaryIndexQuads.value ;
}
public String[] getQuadIndexes() {
- return quadIndexes ;
+ return quadIndexes.value ;
}
public String getPrimaryIndexPrefix() {
- return primaryIndexPrefix ;
+ return primaryIndexPrefix.value ;
}
public String[] getPrefixIndexes() {
- return prefixIndexes ;
+ return prefixIndexes.value ;
}
public String getIndexPrefix() {
- return indexPrefix ;
+ return indexPrefix.value ;
}
public String getPrefixNode2Id() {
- return prefixNode2Id ;
+ return prefixNode2Id.value ;
}
public String getPrefixId2Node() {
- return prefixId2Node ;
+ return prefixId2Node.value ;
}
@Override
public String toString() {
StringBuilder buff = new StringBuilder() ;
- fmt(buff, "fileMode", getFileMode().toString()) ;
- fmt(buff, "blockSize", getBlockSize()) ;
- fmt(buff, "readCacheSize", getBlockReadCacheSize()) ;
- fmt(buff, "writeCacheSize", getBlockWriteCacheSize()) ;
- fmt(buff, "Node2NodeIdCacheSize", getNode2NodeIdCacheSize()) ;
- fmt(buff, "NodeId2NodeCacheSize", getNodeId2NodeCacheSize()) ;
- fmt(buff, "NodeMissCacheSize", getNodeMissCacheSize()) ;
-
- fmt(buff, "indexNode2Id", getIndexNode2Id()) ;
- fmt(buff, "indexId2Node", getIndexId2Node()) ;
- fmt(buff, "primaryIndexTriples", getPrimaryIndexTriples()) ;
- fmt(buff, "tripleIndexes", getTripleIndexes()) ;
- fmt(buff, "primaryIndexQuads", getPrimaryIndexQuads()) ;
- fmt(buff, "quadIndexes", getQuadIndexes()) ;
- fmt(buff, "primaryIndexPrefix", getPrimaryIndexPrefix()) ;
- fmt(buff, "prefixIndexes", getPrefixIndexes()) ;
- fmt(buff, "indexPrefix", getIndexPrefix()) ;
-
- fmt(buff, "prefixNode2Id", getPrefixNode2Id()) ;
- fmt(buff, "prefixId2Node", getPrefixId2Node()) ;
+ fmt(buff, "fileMode", getFileMode().toString(), fileMode.isSet) ;
+ fmt(buff, "blockSize", getBlockSize(), blockSize.isSet) ;
+ fmt(buff, "readCacheSize", getBlockReadCacheSize(), blockReadCacheSize.isSet) ;
+ fmt(buff, "writeCacheSize", getBlockWriteCacheSize(), blockWriteCacheSize.isSet) ;
+ fmt(buff, "Node2NodeIdCacheSize", getNode2NodeIdCacheSize(), Node2NodeIdCacheSize.isSet) ;
+ fmt(buff, "NodeId2NodeCacheSize", getNodeId2NodeCacheSize(), NodeId2NodeCacheSize.isSet) ;
+ fmt(buff, "NodeMissCacheSize", getNodeMissCacheSize(), NodeMissCacheSize.isSet) ;
+
+ fmt(buff, "indexNode2Id", getIndexNode2Id(), indexNode2Id.isSet) ;
+ fmt(buff, "indexId2Node", getIndexId2Node(), indexId2Node.isSet) ;
+ fmt(buff, "primaryIndexTriples", getPrimaryIndexTriples(), primaryIndexTriples.isSet) ;
+ fmt(buff, "tripleIndexes", getTripleIndexes(), tripleIndexes.isSet) ;
+ fmt(buff, "primaryIndexQuads", getPrimaryIndexQuads(), primaryIndexQuads.isSet) ;
+ fmt(buff, "quadIndexes", getQuadIndexes(), quadIndexes.isSet) ;
+ fmt(buff, "primaryIndexPrefix", getPrimaryIndexPrefix(), primaryIndexPrefix.isSet) ;
+ fmt(buff, "prefixIndexes", getPrefixIndexes(), prefixIndexes.isSet) ;
+ fmt(buff, "indexPrefix", getIndexPrefix(), indexPrefix.isSet) ;
+
+ fmt(buff, "prefixNode2Id", getPrefixNode2Id(), prefixNode2Id.isSet) ;
+ fmt(buff, "prefixId2Node", getPrefixId2Node(), prefixId2Node.isSet) ;
return buff.toString() ;
}
- private void fmt(StringBuilder buff, String name, String[] strings) {
- buff.append(String.format("%-20s [%s]\n", name, StrUtils.strjoin(", ", strings))) ;
+ private void fmt(StringBuilder buff, String name, String[] strings, boolean isSet) {
+ String dftStr = "" ;
+ if ( ! isSet )
+ dftStr = "dft:" ;
+ buff.append(String.format("%-20s %s[%s]\n", name, dftStr, StrUtils.strjoin(", ", strings))) ;
}
- private void fmt(StringBuilder buff, String name, String value) {
- buff.append(String.format("%-20s %s\n", name, value)) ;
+ private void fmt(StringBuilder buff, String name, String value, boolean isSet) {
+ String dftStr = "" ;
+ if ( ! isSet )
+ dftStr = "dft:" ;
+ buff.append(String.format("%-20s %s%s\n", name, dftStr, value)) ;
}
- private void fmt(StringBuilder buff, String name, int value) {
- buff.append(String.format("%-20s %s\n", name, value)) ;
+ private void fmt(StringBuilder buff, String name, int value, boolean isSet) {
+ String dftStr = "" ;
+ if ( ! isSet )
+ dftStr = "dft:" ;
+ buff.append(String.format("%-20s %s%s\n", name, dftStr, value)) ;
}
@Override
public int hashCode() {
final int prime = 31 ;
int result = 1 ;
- result = prime * result + Node2NodeIdCacheSize ;
- result = prime * result + NodeId2NodeCacheSize ;
- result = prime * result + NodeMissCacheSize ;
- result = prime * result + blockReadCacheSize ;
- result = prime * result + blockSize ;
- result = prime * result + blockWriteCacheSize ;
+ result = prime * result + ((Node2NodeIdCacheSize == null) ? 0 : Node2NodeIdCacheSize.hashCode()) ;
+ result = prime * result + ((NodeId2NodeCacheSize == null) ? 0 : NodeId2NodeCacheSize.hashCode()) ;
+ result = prime * result + ((NodeMissCacheSize == null) ? 0 : NodeMissCacheSize.hashCode()) ;
+ result = prime * result + ((blockReadCacheSize == null) ? 0 : blockReadCacheSize.hashCode()) ;
+ result = prime * result + ((blockSize == null) ? 0 : blockSize.hashCode()) ;
+ result = prime * result + ((blockWriteCacheSize == null) ? 0 : blockWriteCacheSize.hashCode()) ;
result = prime * result + ((fileMode == null) ? 0 : fileMode.hashCode()) ;
result = prime * result + ((indexId2Node == null) ? 0 : indexId2Node.hashCode()) ;
result = prime * result + ((indexNode2Id == null) ? 0 : indexNode2Id.hashCode()) ;
result = prime * result + ((indexPrefix == null) ? 0 : indexPrefix.hashCode()) ;
result = prime * result + ((prefixId2Node == null) ? 0 : prefixId2Node.hashCode()) ;
- result = prime * result + Arrays.hashCode(prefixIndexes) ;
+ result = prime * result + ((prefixIndexes == null) ? 0 : prefixIndexes.hashCode()) ;
result = prime * result + ((prefixNode2Id == null) ? 0 : prefixNode2Id.hashCode()) ;
result = prime * result + ((primaryIndexPrefix == null) ? 0 : primaryIndexPrefix.hashCode()) ;
result = prime * result + ((primaryIndexQuads == null) ? 0 : primaryIndexQuads.hashCode()) ;
result = prime * result + ((primaryIndexTriples == null) ? 0 : primaryIndexTriples.hashCode()) ;
- result = prime * result + Arrays.hashCode(quadIndexes) ;
- result = prime * result + Arrays.hashCode(tripleIndexes) ;
+ result = prime * result + ((quadIndexes == null) ? 0 : quadIndexes.hashCode()) ;
+ result = prime * result + ((tripleIndexes == null) ? 0 : tripleIndexes.hashCode()) ;
return result ;
}
+
+ /** Equality but ignore "isSet" */
+ public static boolean sameValues(StoreParams params1, StoreParams params2) {
+ if ( params1 == null && params2 == null )
+ return true ;
+ if ( params1 == null )
+ return false ;
+ if ( params2 == null )
+ return false ;
+ if ( !sameValues(params1.fileMode, params2.fileMode) )
+ return false ;
+ if ( !sameValues(params1.blockReadCacheSize, params2.blockReadCacheSize) )
+ return false ;
+ if ( !sameValues(params1.blockWriteCacheSize, params2.blockWriteCacheSize) )
+ return false ;
+ if ( !sameValues(params1.Node2NodeIdCacheSize, params2.Node2NodeIdCacheSize) )
+ return false ;
+ if ( !sameValues(params1.NodeId2NodeCacheSize, params2.NodeId2NodeCacheSize) )
+ return false ;
+ if ( !sameValues(params1.NodeMissCacheSize, params2.NodeMissCacheSize) )
+ return false ;
+ if ( !sameValues(params1.blockSize, params2.blockSize) )
+ return false ;
+ if ( !sameValues(params1.indexNode2Id, params2.indexNode2Id) )
+ return false ;
+ if ( !sameValues(params1.indexId2Node, params2.indexId2Node) )
+ return false ;
+ if ( !sameValues(params1.primaryIndexTriples, params2.primaryIndexTriples) )
+ return false ;
+ if ( !sameValues(params1.tripleIndexes, params2.tripleIndexes) )
+ return false ;
+ if ( !sameValues(params1.primaryIndexQuads, params2.primaryIndexQuads) )
+ return false ;
+ if ( !sameValues(params1.quadIndexes, params2.quadIndexes) )
+ return false ;
+ if ( !sameValues(params1.primaryIndexPrefix, params2.primaryIndexPrefix) )
+ return false ;
+ if ( !sameValues(params1.prefixIndexes, params2.prefixIndexes) )
+ return false ;
+ if ( !sameValues(params1.indexPrefix, params2.indexPrefix) )
+ return false ;
+ if ( !sameValues(params1.prefixNode2Id, params2.prefixNode2Id) )
+ return false ;
+ if ( !sameValues(params1.prefixId2Node, params2.prefixId2Node) )
+ return false ;
+ return true ;
+ }
+
+ private static <X> boolean sameValues(Item<X> item1, Item<X> item2) {
+ return Objects.deepEquals(item1.value, item2.value) ;
+ }
@Override
public boolean equals(Object obj) {
@@ -275,19 +367,40 @@ public class StoreParams implements IndexParams, StoreParamsDynamic
if ( getClass() != obj.getClass() )
return false ;
StoreParams other = (StoreParams)obj ;
- if ( Node2NodeIdCacheSize != other.Node2NodeIdCacheSize )
+ if ( Node2NodeIdCacheSize == null ) {
+ if ( other.Node2NodeIdCacheSize != null )
+ return false ;
+ } else if ( !Node2NodeIdCacheSize.equals(other.Node2NodeIdCacheSize) )
return false ;
- if ( NodeId2NodeCacheSize != other.NodeId2NodeCacheSize )
+ if ( NodeId2NodeCacheSize == null ) {
+ if ( other.NodeId2NodeCacheSize != null )
+ return false ;
+ } else if ( !NodeId2NodeCacheSize.equals(other.NodeId2NodeCacheSize) )
return false ;
- if ( NodeMissCacheSize != other.NodeMissCacheSize )
+ if ( NodeMissCacheSize == null ) {
+ if ( other.NodeMissCacheSize != null )
+ return false ;
+ } else if ( !NodeMissCacheSize.equals(other.NodeMissCacheSize) )
return false ;
- if ( blockReadCacheSize != other.blockReadCacheSize )
+ if ( blockReadCacheSize == null ) {
+ if ( other.blockReadCacheSize != null )
+ return false ;
+ } else if ( !blockReadCacheSize.equals(other.blockReadCacheSize) )
return false ;
- if ( blockSize != other.blockSize )
+ if ( blockSize == null ) {
+ if ( other.blockSize != null )
+ return false ;
+ } else if ( !blockSize.equals(other.blockSize) )
return false ;
- if ( blockWriteCacheSize != other.blockWriteCacheSize )
+ if ( blockWriteCacheSize == null ) {
+ if ( other.blockWriteCacheSize != null )
+ return false ;
+ } else if ( !blockWriteCacheSize.equals(other.blockWriteCacheSize) )
return false ;
- if ( fileMode != other.fileMode )
+ if ( fileMode == null ) {
+ if ( other.fileMode != null )
+ return false ;
+ } else if ( !fileMode.equals(other.fileMode) )
return false ;
if ( indexId2Node == null ) {
if ( other.indexId2Node != null )
@@ -309,7 +422,10 @@ public class StoreParams implements IndexParams, StoreParamsDynamic
return false ;
} else if ( !prefixId2Node.equals(other.prefixId2Node) )
return false ;
- if ( !Arrays.equals(prefixIndexes, other.prefixIndexes) )
+ if ( prefixIndexes == null ) {
+ if ( other.prefixIndexes != null )
+ return false ;
+ } else if ( !prefixIndexes.equals(other.prefixIndexes) )
return false ;
if ( prefixNode2Id == null ) {
if ( other.prefixNode2Id != null )
@@ -331,9 +447,15 @@ public class StoreParams implements IndexParams, StoreParamsDynamic
return false ;
} else if ( !primaryIndexTriples.equals(other.primaryIndexTriples) )
return false ;
- if ( !Arrays.equals(quadIndexes, other.quadIndexes) )
+ if ( quadIndexes == null ) {
+ if ( other.quadIndexes != null )
+ return false ;
+ } else if ( !quadIndexes.equals(other.quadIndexes) )
return false ;
- if ( !Arrays.equals(tripleIndexes, other.tripleIndexes) )
+ if ( tripleIndexes == null ) {
+ if ( other.tripleIndexes != null )
+ return false ;
+ } else if ( !tripleIndexes.equals(other.tripleIndexes) )
return false ;
return true ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/25d16cbb/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsBuilder.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsBuilder.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsBuilder.java
index e0ceda7..352f7c5 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsBuilder.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsBuilder.java
@@ -21,48 +21,85 @@ package com.hp.hpl.jena.tdb.setup;
import com.hp.hpl.jena.tdb.base.block.FileMode ;
public class StoreParamsBuilder {
+ // Immuatable.
+ static class Item<X> {
+ final X value ;
+ final boolean isSet ;
+
+ Item(X value, boolean isSet) {
+ this.value = value ;
+ this.isSet = isSet ;
+ }
+ @Override
+ public int hashCode() {
+ final int prime = 31 ;
+ int result = 1 ;
+ result = prime * result + (isSet ? 1231 : 1237) ;
+ result = prime * result + ((value == null) ? 0 : value.hashCode()) ;
+ return result ;
+ }
+ @Override
+ public boolean equals(Object obj) {
+ if ( this == obj )
+ return true ;
+ if ( obj == null )
+ return false ;
+ if ( getClass() != obj.getClass() )
+ return false ;
+ Item<?> other = (Item<?>)obj ;
+ if ( isSet != other.isSet )
+ return false ;
+ if ( value == null ) {
+ if ( other.value != null )
+ return false ;
+ } else if ( !value.equals(other.value) )
+ return false ;
+ return true ;
+ }
+ }
+
// See also StoreParamsConst.
/** Database and query configuration */
// Key names are the base name - encode/decode may add a prefix.
- private FileMode fileMode = StoreParamsConst.fileMode ;
+ private Item<FileMode> fileMode = new Item<>(StoreParamsConst.fileMode, false) ;
- private int blockReadCacheSize = StoreParamsConst.blockReadCacheSize ;
+ private Item<Integer> blockReadCacheSize = new Item<>(StoreParamsConst.blockReadCacheSize, false) ;
- private int blockWriteCacheSize = StoreParamsConst.blockWriteCacheSize ;
+ private Item<Integer> blockWriteCacheSize = new Item<>(StoreParamsConst.blockWriteCacheSize, false) ;
- private int Node2NodeIdCacheSize = StoreParamsConst.Node2NodeIdCacheSize ;
+ private Item<Integer> Node2NodeIdCacheSize = new Item<>(StoreParamsConst.Node2NodeIdCacheSize, false) ;
- private int NodeId2NodeCacheSize = StoreParamsConst.NodeId2NodeCacheSize ;
+ private Item<Integer> NodeId2NodeCacheSize = new Item<>(StoreParamsConst.NodeId2NodeCacheSize, false) ;
- private int NodeMissCacheSize = StoreParamsConst.NodeMissCacheSize ;
+ private Item<Integer> NodeMissCacheSize = new Item<>(StoreParamsConst.NodeMissCacheSize, false) ;
/** Database layout - ignored after a database is created */
- private int blockSize = StoreParamsConst.blockSize ;
-
- private String indexNode2Id = StoreParamsConst.indexNode2Id ;
+ private Item<Integer> blockSize = new Item<>(StoreParamsConst.blockSize, false) ;
- private String indexId2Node = StoreParamsConst.indexId2Node ;
+ private Item<String> indexNode2Id = new Item<>(StoreParamsConst.indexNode2Id, false) ;
- private String primaryIndexTriples = StoreParamsConst.primaryIndexTriples ;
+ private Item<String> indexId2Node = new Item<>(StoreParamsConst.indexId2Node, false) ;
- private String[] tripleIndexes = StoreParamsConst.tripleIndexes ;
+ private Item<String> primaryIndexTriples = new Item<>(StoreParamsConst.primaryIndexTriples, false) ;
- private String primaryIndexQuads = StoreParamsConst.primaryIndexQuads ;
+ private Item<String[]> tripleIndexes = new Item<>(StoreParamsConst.tripleIndexes, false) ;
- private String[] quadIndexes = StoreParamsConst.quadIndexes ;
+ private Item<String> primaryIndexQuads = new Item<>(StoreParamsConst.primaryIndexQuads, false) ;
- private String primaryIndexPrefix = StoreParamsConst.primaryIndexPrefix ;
+ private Item<String[]> quadIndexes = new Item<>(StoreParamsConst.quadIndexes, false) ;
- private String[] prefixIndexes = StoreParamsConst.prefixIndexes ;
+ private Item<String> primaryIndexPrefix = new Item<>(StoreParamsConst.primaryIndexPrefix, false) ;
- private String indexPrefix = StoreParamsConst.indexPrefix ;
+ private Item<String[]> prefixIndexes = new Item<>(StoreParamsConst.prefixIndexes, false) ;
- private String prefixNode2Id = StoreParamsConst.prefixNode2Id ;
+ private Item<String> indexPrefix = new Item<>(StoreParamsConst.indexPrefix, false) ;
- private String prefixId2Node = StoreParamsConst.prefixId2Node ;
+ private Item<String> prefixNode2Id = new Item<>(StoreParamsConst.prefixNode2Id, false) ;
+ private Item<String> prefixId2Node = new Item<>(StoreParamsConst.prefixId2Node, false) ;
+
public static StoreParamsBuilder create() {
return new StoreParamsBuilder() ;
}
@@ -79,42 +116,57 @@ public class StoreParamsBuilder {
*/
public static StoreParams modify(StoreParams baseParams, StoreParamsDynamic additionalParams) {
- return new StoreParamsBuilder(baseParams)
- .fileMode(additionalParams.getFileMode())
- .blockSize(additionalParams.getBlockSize())
- .blockReadCacheSize(additionalParams.getBlockReadCacheSize())
- .blockWriteCacheSize(additionalParams.getBlockWriteCacheSize())
- .node2NodeIdCacheSize(additionalParams.getNode2NodeIdCacheSize())
- .nodeId2NodeCacheSize(additionalParams.getNodeId2NodeCacheSize())
- .nodeMissCacheSize(additionalParams.getNodeMissCacheSize())
- .build();
+ StoreParamsBuilder b = new StoreParamsBuilder(baseParams) ;
+ // Merge explicitly set params
+ if ( additionalParams.isSetFileMode() )
+ b.fileMode(additionalParams.getFileMode()) ;
+
+ if ( additionalParams.isSetBlockReadCacheSize() )
+ b.blockReadCacheSize(additionalParams.getBlockReadCacheSize()) ;
+
+ if ( additionalParams.isSetBlockWriteCacheSize() )
+ b.blockWriteCacheSize(additionalParams.getBlockWriteCacheSize()) ;
+
+ if ( additionalParams.isSetNode2NodeIdCacheSize() )
+ b.node2NodeIdCacheSize(additionalParams.getNode2NodeIdCacheSize()) ;
+
+ if ( additionalParams.isSetNodeId2NodeCacheSize() )
+ b.nodeId2NodeCacheSize(additionalParams.getNodeId2NodeCacheSize()) ;
+
+ if ( additionalParams.isSetNodeMissCacheSize() )
+ b.nodeMissCacheSize(additionalParams.getNodeMissCacheSize()) ;
+
+ return b.build();
}
+
private StoreParamsBuilder() {}
+
+ /** Initial with a StoreParams as default values */
private StoreParamsBuilder(StoreParams other) {
- this.fileMode = other.getFileMode() ;
- this.blockSize = other.getBlockSize() ;
- this.blockReadCacheSize = other.getBlockReadCacheSize() ;
- this.blockWriteCacheSize = other.getBlockWriteCacheSize() ;
- this.Node2NodeIdCacheSize = other.getNode2NodeIdCacheSize() ;
- this.NodeId2NodeCacheSize = other.getNodeId2NodeCacheSize() ;
- this.NodeMissCacheSize = other.getNodeMissCacheSize() ;
-
- this.indexNode2Id = other.getIndexNode2Id() ;
- this.indexId2Node = other.getIndexId2Node() ;
+ this.fileMode = other.fileMode ;
+ this.blockSize = other.blockSize ;
+ this.blockReadCacheSize = other.blockReadCacheSize ;
+ this.blockWriteCacheSize = other.blockWriteCacheSize ;
+ this.Node2NodeIdCacheSize = other.Node2NodeIdCacheSize ;
+ this.NodeId2NodeCacheSize = other.NodeId2NodeCacheSize ;
+ this.NodeMissCacheSize = other.NodeMissCacheSize ;
+
+ this.indexNode2Id = other.indexNode2Id ;
+ this.indexId2Node = other.indexId2Node ;
- this.primaryIndexTriples = other.getPrimaryIndexTriples() ;
- this.tripleIndexes = other.getTripleIndexes() ;
+ this.primaryIndexTriples = other.primaryIndexTriples ;
+ this.tripleIndexes = other.tripleIndexes ;
- this.primaryIndexQuads = other.getPrimaryIndexQuads() ;
- this.quadIndexes = other.getQuadIndexes() ;
-
- this.primaryIndexPrefix = other.getPrimaryIndexPrefix() ;
- this.prefixIndexes = other.getPrefixIndexes() ;
- this.indexPrefix = other.getIndexPrefix() ;
+ this.primaryIndexQuads = other.primaryIndexQuads ;
+ this.quadIndexes = other.quadIndexes ;
+
+ this.primaryIndexPrefix = other.primaryIndexPrefix ;
+ this.prefixIndexes = other.prefixIndexes ;
+ this.indexPrefix = other.indexPrefix ;
- this.prefixNode2Id = other.getPrefixNode2Id() ;
- this.prefixId2Node = other.getPrefixId2Node() ;
+ this.prefixNode2Id = other.prefixNode2Id ;
+ this.prefixId2Node = other.prefixId2Node ;
}
public StoreParams build() {
@@ -127,185 +179,165 @@ public class StoreParamsBuilder {
prefixNode2Id, prefixId2Node) ;
}
-// public SystemParams build(String filename) {
-// JsonObject obj = JSON.read(filename) ;
-// return null ;
-// }
-
public FileMode getFileMode() {
- return fileMode ;
+ return fileMode.value ;
}
public StoreParamsBuilder fileMode(FileMode fileMode) {
- this.fileMode = fileMode ;
+ this.fileMode = new Item<>(fileMode, true) ;
return this ;
}
public int getBlockSize() {
- return blockSize ;
+ return blockSize.value ;
}
public StoreParamsBuilder blockSize(int blockSize) {
- this.blockSize = blockSize ;
+ this.blockSize = new Item<>(blockSize, true) ;
return this ;
}
public int getBlockReadCacheSize() {
- return blockReadCacheSize ;
+ return blockReadCacheSize.value ;
}
public StoreParamsBuilder blockReadCacheSize(int blockReadCacheSize) {
- this.blockReadCacheSize = blockReadCacheSize ;
+ this.blockReadCacheSize = new Item<>(blockReadCacheSize, true) ;
return this ;
}
public int getBlockWriteCacheSize() {
- return blockWriteCacheSize ;
+ return blockWriteCacheSize.value ;
}
public StoreParamsBuilder blockWriteCacheSize(int blockWriteCacheSize) {
- this.blockWriteCacheSize = blockWriteCacheSize ;
+ this.blockWriteCacheSize = new Item<>(blockWriteCacheSize, true) ;
return this ;
}
public int getNode2NodeIdCacheSize() {
- return Node2NodeIdCacheSize ;
+ return Node2NodeIdCacheSize.value ;
}
public StoreParamsBuilder node2NodeIdCacheSize(int node2NodeIdCacheSize) {
- Node2NodeIdCacheSize = node2NodeIdCacheSize ;
+ Node2NodeIdCacheSize = new Item<>(node2NodeIdCacheSize, true) ;
return this ;
}
public int getNodeId2NodeCacheSize() {
- return NodeId2NodeCacheSize ;
+ return NodeId2NodeCacheSize.value ;
}
public StoreParamsBuilder nodeId2NodeCacheSize(int nodeId2NodeCacheSize) {
- NodeId2NodeCacheSize = nodeId2NodeCacheSize ;
+ NodeId2NodeCacheSize = new Item<>(nodeId2NodeCacheSize, true) ;
return this ;
}
public int getNodeMissCacheSize() {
- return NodeMissCacheSize ;
+ return NodeMissCacheSize.value ;
}
public StoreParamsBuilder nodeMissCacheSize(int nodeMissCacheSize) {
- NodeMissCacheSize = nodeMissCacheSize ;
+ NodeMissCacheSize = new Item<>(nodeMissCacheSize, true) ;
return this ;
}
public String getIndexNode2Id() {
- return indexNode2Id ;
+ return indexNode2Id.value ;
}
public StoreParamsBuilder indexNode2Id(String indexNode2Id) {
- this.indexNode2Id = indexNode2Id ;
+ this.indexNode2Id = new Item<>(indexNode2Id, true) ;
return this ;
}
public String getIndexId2Node() {
- return indexId2Node ;
+ return indexId2Node.value ;
}
public StoreParamsBuilder indexId2Node(String indexId2Node) {
- this.indexId2Node = indexId2Node ;
+ this.indexId2Node = new Item<>(indexId2Node, true) ;
return this ;
}
public String getPrimaryIndexTriples() {
- return primaryIndexTriples ;
+ return primaryIndexTriples.value ;
}
public StoreParamsBuilder primaryIndexTriples(String primaryIndexTriples) {
- this.primaryIndexTriples = primaryIndexTriples ;
+ this.primaryIndexTriples = new Item<>(primaryIndexTriples, true) ;
return this ;
}
public String[] getTripleIndexes() {
- return tripleIndexes ;
+ return tripleIndexes.value ;
}
public StoreParamsBuilder tripleIndexes(String[] tripleIndexes) {
- this.tripleIndexes = tripleIndexes ;
+ this.tripleIndexes = new Item<>(tripleIndexes, true) ;
return this ;
}
- public StoreParamsBuilder tripleIndexes(int idx, String tripleIndex) {
- this.tripleIndexes[idx] = tripleIndex ;
- return this ;
+ public String getPrimaryIndexQuads() {
+ return primaryIndexQuads.value ;
}
- public String getPrimaryIndexQuads() {
- return primaryIndexQuads ;
- }
-
public StoreParamsBuilder primaryIndexQuads(String primaryIndexQuads) {
- this.primaryIndexQuads = primaryIndexQuads ;
+ this.primaryIndexQuads = new Item<>(primaryIndexQuads, true) ;
return this ;
}
public String[] getQuadIndexes() {
- return quadIndexes ;
+ return quadIndexes.value ;
}
- public StoreParamsBuilder quadIndexes(int idx, String quadIndex) {
- this.quadIndexes[idx] = quadIndex ;
- return this ;
- }
-
public StoreParamsBuilder quadIndexes(String[] quadIndexes) {
- this.quadIndexes = quadIndexes ;
+ this.quadIndexes = new Item<>(quadIndexes, true) ;
return this ;
}
public String getPrimaryIndexPrefix() {
- return primaryIndexPrefix ;
+ return primaryIndexPrefix.value ;
}
public StoreParamsBuilder primaryIndexPrefix(String primaryIndexPrefix) {
- this.primaryIndexPrefix = primaryIndexPrefix ;
+ this.primaryIndexPrefix = new Item<>(primaryIndexPrefix, true) ;
return this ;
}
public String[] getPrefixIndexes() {
- return prefixIndexes ;
+ return prefixIndexes.value ;
}
public StoreParamsBuilder prefixIndexes(String[] prefixIndexes) {
- this.prefixIndexes = prefixIndexes ;
- return this ;
- }
-
- public StoreParamsBuilder prefixIndexes(int idx, String prefixIndex) {
- this.prefixIndexes[idx] = prefixIndex ;
+ this.prefixIndexes = new Item<>(prefixIndexes, true) ;
return this ;
}
public String getIndexPrefix() {
- return indexPrefix ;
+ return indexPrefix.value ;
}
public StoreParamsBuilder indexPrefix(String indexPrefix) {
- this.indexPrefix = indexPrefix ;
+ this.indexPrefix = new Item<>(indexPrefix, true) ;
return this ;
}
public String getPrefixNode2Id() {
- return prefixNode2Id ;
+ return prefixNode2Id.value ;
}
public StoreParamsBuilder prefixNode2Id(String prefixNode2Id) {
- this.prefixNode2Id = prefixNode2Id ;
+ this.prefixNode2Id = new Item<>(prefixNode2Id, true) ;
return this ;
}
public String getPrefixId2Node() {
- return prefixId2Node ;
+ return prefixId2Node.value ;
}
public StoreParamsBuilder prefixId2Node(String prefixId2Node) {
- this.prefixId2Node = prefixId2Node ;
+ this.prefixId2Node = new Item<>(prefixId2Node, true) ;
return this ;
}
}
http://git-wip-us.apache.org/repos/asf/jena/blob/25d16cbb/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 93a8ea2..49cdd44 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
@@ -18,6 +18,33 @@
package com.hp.hpl.jena.tdb.setup;
+import static com.hp.hpl.jena.tdb.setup.StoreParamsConst.TDB_CONFIG_FILE ;
+import static com.hp.hpl.jena.tdb.setup.StoreParamsConst.fBlockReadCacheSize ;
+import static com.hp.hpl.jena.tdb.setup.StoreParamsConst.fBlockSize ;
+import static com.hp.hpl.jena.tdb.setup.StoreParamsConst.fBlockWriteCacheSize ;
+import static com.hp.hpl.jena.tdb.setup.StoreParamsConst.fFileMode ;
+import static com.hp.hpl.jena.tdb.setup.StoreParamsConst.fIndexId2Node ;
+import static com.hp.hpl.jena.tdb.setup.StoreParamsConst.fIndexNode2Id ;
+import static com.hp.hpl.jena.tdb.setup.StoreParamsConst.fIndexPrefix ;
+import static com.hp.hpl.jena.tdb.setup.StoreParamsConst.fNode2NodeIdCacheSize ;
+import static com.hp.hpl.jena.tdb.setup.StoreParamsConst.fNodeId2NodeCacheSize ;
+import static com.hp.hpl.jena.tdb.setup.StoreParamsConst.fNodeMissCacheSize ;
+import static com.hp.hpl.jena.tdb.setup.StoreParamsConst.fPrefixId2Node ;
+import static com.hp.hpl.jena.tdb.setup.StoreParamsConst.fPrefixIndexes ;
+import static com.hp.hpl.jena.tdb.setup.StoreParamsConst.fPrefixNode2Id ;
+import static com.hp.hpl.jena.tdb.setup.StoreParamsConst.fPrimaryIndexPrefix ;
+import static com.hp.hpl.jena.tdb.setup.StoreParamsConst.fPrimaryIndexQuads ;
+import static com.hp.hpl.jena.tdb.setup.StoreParamsConst.fPrimaryIndexTriples ;
+import static com.hp.hpl.jena.tdb.setup.StoreParamsConst.fQuadIndexes ;
+import static com.hp.hpl.jena.tdb.setup.StoreParamsConst.fTripleIndexes ;
+
+import java.io.BufferedOutputStream ;
+import java.io.FileOutputStream ;
+import java.io.IOException ;
+import java.io.OutputStream ;
+
+import org.apache.jena.atlas.io.IO ;
+import org.apache.jena.atlas.json.JSON ;
import org.apache.jena.atlas.json.JsonArray ;
import org.apache.jena.atlas.json.JsonBuilder ;
import org.apache.jena.atlas.json.JsonObject ;
@@ -25,12 +52,38 @@ import org.apache.jena.atlas.json.JsonObject ;
import com.hp.hpl.jena.sparql.util.Utils ;
import com.hp.hpl.jena.tdb.TDBException ;
import com.hp.hpl.jena.tdb.base.block.FileMode ;
-
-import static com.hp.hpl.jena.tdb.setup.StoreParamsConst.* ;
+import com.hp.hpl.jena.tdb.base.file.Location ;
/** Encode and decode {@linkplain StoreParams} */
public class StoreParamsCodec {
+ /** Write to a file */
+ public static void write(Location location, StoreParams params) {
+ write(location.getPath(TDB_CONFIG_FILE) ,params) ;
+ }
+
+ /** Write to a file */
+ public static void write(String filename, StoreParams params) {
+ try (OutputStream out = new FileOutputStream(filename);
+ OutputStream out2 = new BufferedOutputStream(out); ) {
+ JsonObject object = encodeToJson(params) ;
+ JSON.write(out2, object) ;
+ out2.write('\n') ;
+ }
+ catch (IOException ex) { IO.exception(ex); }
+ }
+
+ /** Read from a file */
+ public static StoreParams read(Location location) {
+ return read(location.getPath(TDB_CONFIG_FILE)) ;
+ }
+
+ /** Read from a file */
+ public static StoreParams read(String filename) {
+ JsonObject obj = JSON.read(filename) ;
+ return StoreParamsCodec.decode(obj) ;
+ }
+
public static JsonObject encodeToJson(StoreParams params) {
JsonBuilder builder = new JsonBuilder() ;
builder.startObject("StoreParams") ; // "StoreParams" is an internal alignment marker - not in the JSON.
http://git-wip-us.apache.org/repos/asf/jena/blob/25d16cbb/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 70e6b6a..a06f42b 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
@@ -23,33 +23,11 @@ import com.hp.hpl.jena.tdb.sys.Names ;
import com.hp.hpl.jena.tdb.sys.SystemTDB ;
public class StoreParamsConst {
+ /** Filename of the TDB configuration file */
+ public static final String TDB_CONFIG_FILE = "tdb.cfg" ;
// SystemParams are built with a SystemParamsBuilder
- /** The system default parameters for on-disk databases. */
- static StoreParams dftStoreParams = StoreParamsBuilder.create().build() ;
-
- /** The system default parameters for in-memory databases. */
- static StoreParams dftMemStoreParams = StoreParamsBuilder.create()
- .fileMode(FileMode.direct)
- // Small block caches, mainly so it behaves like a direct on-disk database.
- .blockReadCacheSize(10)
- .blockWriteCacheSize(10)
- .node2NodeIdCacheSize(10000)
- .nodeId2NodeCacheSize(10000)
- .nodeMissCacheSize(100)
- .build() ;
-
- /** The "small store" parameters. */
- static StoreParams smallStoreParams = StoreParamsBuilder.create()
- .fileMode(FileMode.direct)
- .blockReadCacheSize(100)
- .blockWriteCacheSize(100)
- .node2NodeIdCacheSize(10000)
- .nodeId2NodeCacheSize(10000)
- .nodeMissCacheSize(100)
- .build() ;
-
// Initial values are the system defaults.
/** Database and query configuration */
@@ -109,6 +87,34 @@ public class StoreParamsConst {
public static final String fPrefixId2Node = "file_prefix_id2node" ;
public static final String prefixId2Node = Names.prefixId2Node ;
+
+ // Must be after the constants above to get initialization order right
+ // because StoreParamsBuilder uses these constants.
+
+ /** The system default parameters for on-disk databases. */
+ static StoreParams dftStoreParams = StoreParamsBuilder.create().build() ;
+
+ /** The system default parameters for in-memory databases. */
+ static StoreParams dftMemStoreParams = StoreParamsBuilder.create()
+ .fileMode(FileMode.direct)
+ // Small block caches, mainly so it behaves like a direct on-disk database.
+ .blockReadCacheSize(10)
+ .blockWriteCacheSize(10)
+ .node2NodeIdCacheSize(10000)
+ .nodeId2NodeCacheSize(10000)
+ .nodeMissCacheSize(100)
+ .build() ;
+ /** The "small store" parameters. */
+ static StoreParams smallStoreParams = StoreParamsBuilder.create()
+ .fileMode(FileMode.direct)
+ .blockReadCacheSize(100)
+ .blockWriteCacheSize(100)
+ .node2NodeIdCacheSize(10000)
+ .nodeId2NodeCacheSize(10000)
+ .nodeMissCacheSize(100)
+ .build() ;
+
+
}
http://git-wip-us.apache.org/repos/asf/jena/blob/25d16cbb/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsDynamic.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsDynamic.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsDynamic.java
index ca6290a..ed07e76 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsDynamic.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsDynamic.java
@@ -21,7 +21,7 @@ package com.hp.hpl.jena.tdb.setup;
import com.hp.hpl.jena.tdb.base.block.FileMode ;
/** Store parameters that can be adjusted after a store has been created,
- * and given different values when the JVM attaches to a store area.
+ * and given different values when the JVM attachs to a store area.
* (They are still fixed for any given database once created in a JVM.)
*/
@@ -29,23 +29,26 @@ public interface StoreParamsDynamic {
/** Store-wide file access mode */
public FileMode getFileMode() ;
+ public boolean isSetFileMode() ;
- /** Block size - must agree with the original creation of the database */
- public int getBlockSize() ;
-
/** Block read cache (note: mapped files do not have a block cache) */
- public int getBlockReadCacheSize() ;
+ public Integer getBlockReadCacheSize() ;
+ public boolean isSetBlockReadCacheSize() ;
/** Block write cache (note: mapped files do not have a block cache) */
- public int getBlockWriteCacheSize() ;
+ public Integer getBlockWriteCacheSize() ;
+ public boolean isSetBlockWriteCacheSize() ;
/** Node cache for Node->NodeId. */
- public int getNode2NodeIdCacheSize() ;
+ public Integer getNode2NodeIdCacheSize() ;
+ public boolean isSetNode2NodeIdCacheSize() ;
/** Node cache for NodeId->Node. Important for SPARQL results. */
- public int getNodeId2NodeCacheSize() ;
+ public Integer getNodeId2NodeCacheSize() ;
+ public boolean isSetNodeId2NodeCacheSize() ;
/** Node cache for recording known misses */
- public int getNodeMissCacheSize() ;
+ public Integer getNodeMissCacheSize() ;
+ public boolean isSetNodeMissCacheSize() ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/25d16cbb/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/setup/TS_TDBSetup.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/setup/TS_TDBSetup.java b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/setup/TS_TDBSetup.java
index 2a2e58f..5c260af 100644
--- a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/setup/TS_TDBSetup.java
+++ b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/setup/TS_TDBSetup.java
@@ -24,6 +24,8 @@ import org.junit.runners.Suite ;
@RunWith(Suite.class)
@Suite.SuiteClasses( {
TestStoreParams.class
+ , TestStoreParamsChoose.class
+ , TestStoreParamsCreate.class
})
public class TS_TDBSetup {
http://git-wip-us.apache.org/repos/asf/jena/blob/25d16cbb/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 1762518..64655a1 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
@@ -18,17 +18,14 @@
package com.hp.hpl.jena.tdb.setup;
-import java.util.Objects ;
-
-import com.hp.hpl.jena.tdb.TDBException ;
-import com.hp.hpl.jena.tdb.base.block.FileMode ;
-
import org.apache.jena.atlas.json.JSON ;
import org.apache.jena.atlas.json.JsonObject ;
import org.apache.jena.atlas.junit.BaseTest ;
-import org.apache.jena.atlas.lib.InternalErrorException ;
import org.junit.Test ;
+import com.hp.hpl.jena.tdb.TDBException ;
+import com.hp.hpl.jena.tdb.base.block.FileMode ;
+
public class TestStoreParams extends BaseTest {
@Test public void store_params_01() {
@@ -95,6 +92,43 @@ public class TestStoreParams extends BaseTest {
assertArrayEquals(expected, params.getTripleIndexes()) ;
}
+ // Check that setting gets recorded and propagated.
+
+ @Test public void store_params_20() {
+ StoreParams params = StoreParamsBuilder.create().blockReadCacheSize(0).build();
+ assertTrue(params.isSetBlockReadCacheSize()) ;
+ assertFalse(params.isSetBlockWriteCacheSize()) ;
+ }
+
+ @Test public void store_params_21() {
+ StoreParams params1 = StoreParamsBuilder.create().blockReadCacheSize(0).build();
+ assertTrue(params1.isSetBlockReadCacheSize()) ;
+ assertFalse(params1.isSetBlockWriteCacheSize()) ;
+ StoreParams params2 = StoreParamsBuilder.create(params1).blockWriteCacheSize(0).build();
+ assertTrue(params2.isSetBlockReadCacheSize()) ;
+ assertTrue(params2.isSetBlockWriteCacheSize()) ;
+ assertFalse(params2.isSetNodeMissCacheSize()) ;
+ }
+
+ // Modify
+ @Test public void store_params_22() {
+ StoreParams params1 = StoreParamsBuilder.create()
+ .blockReadCacheSize(0)
+ .blockWriteCacheSize(1)
+ .build();
+ StoreParams params2 = StoreParamsBuilder.create()
+ .blockReadCacheSize(5)
+ .build();
+ StoreParams params3 = StoreParamsBuilder.modify(params1, params2) ;
+ assertFalse(params2.isSetBlockWriteCacheSize()) ;
+ assertTrue(params3.isSetBlockReadCacheSize()) ;
+ assertTrue(params3.isSetBlockWriteCacheSize()) ;
+ assertEquals(5, params3.getBlockReadCacheSize().intValue()) ; // From params2
+ assertEquals(1, params3.getBlockWriteCacheSize().intValue()) ; // From params1, not params2(unset)
+
+ }
+
+
// --------
private static StoreParams roundTrip(StoreParams params) {
@@ -104,22 +138,6 @@ public class TestStoreParams extends BaseTest {
}
private static void assertEqualsStoreParams(StoreParams params1, StoreParams params2) {
- assertTrue(same(params1, params2)) ;
- }
-
- private static boolean same(StoreParams params1, StoreParams params2) {
- boolean b0 = same0(params1, params2) ;
- boolean b1 = same1(params1, params2) ;
- if ( b0 != b1 )
- throw new InternalErrorException() ;
- return b0 ;
- }
-
- private static boolean same0(StoreParams params1, StoreParams params2) {
- return params1.toString().equals(params2.toString()) ;
- }
-
- private static boolean same1(StoreParams params1, StoreParams params2) {
- return Objects.equals(params1, params2) ;
+ assertTrue(StoreParams.sameValues(params1, params2)) ;
}
}
http://git-wip-us.apache.org/repos/asf/jena/blob/25d16cbb/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
new file mode 100644
index 0000000..b61cb4c
--- /dev/null
+++ b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/setup/TestStoreParamsChoose.java
@@ -0,0 +1,155 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.hp.hpl.jena.tdb.setup;
+
+import org.apache.jena.atlas.junit.BaseTest ;
+import org.apache.jena.atlas.lib.FileOps ;
+import org.junit.Test ;
+
+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 {
+ StoreParams pApp = StoreParamsBuilder.create()
+ .blockSize(12) // Not dynamic
+ .nodeMissCacheSize(12) // Dynamic
+ .build();
+ StoreParams pLoc = StoreParamsBuilder.create()
+ .blockSize(0)
+ .nodeMissCacheSize(0).build();
+
+ StoreParams pDft = StoreParams.getDftStoreParams() ;
+
+ @Test public void params_choose_new_1() {
+ StoreParams p = Build.fixStoreParams(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) ;
+ // 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) ;
+ // 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) ;
+ // New store, pLoc, no pApp, so pLoc is the entire settings.
+
+ assertFalse(StoreParams.sameValues(p, pApp)) ;
+ assertFalse(StoreParams.sameValues(p, pLoc)) ;
+ assertFalse(StoreParams.sameValues(p, pDft)) ;
+
+ assertEquals(0, p.getBlockSize().intValue()) ;
+ assertEquals(12, p.getNodeMissCacheSize().intValue()) ;
+ }
+
+ @Test public void params_choose_existing_1() {
+ StoreParams p = Build.fixStoreParams(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) ;
+ // p is pLoc modified by pApp
+ assertFalse(StoreParams.sameValues(p, pApp)) ;
+ assertFalse(StoreParams.sameValues(p, pDft)) ;
+ // Existing store, no pLoc, so pDft is implicit pLoc and fixed the block size.
+ assertEquals(pDft.getBlockSize(), p.getBlockSize()) ;
+ assertEquals(12, p.getNodeMissCacheSize().intValue()) ;
+ }
+
+ @Test public void params_choose_existing_3() {
+ StoreParams p = Build.fixStoreParams(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) ;
+ // p is pLoc modifed by pApp.
+ assertFalse(StoreParams.sameValues(p, pApp)) ;
+ assertFalse(StoreParams.sameValues(p, pLoc)) ;
+ assertFalse(StoreParams.sameValues(p, pDft)) ;
+
+ assertEquals(0, p.getBlockSize().intValue()) ;
+ assertEquals(12, p.getNodeMissCacheSize().intValue()) ;
+ }
+
+ @Test public void params_choose_new_persist_1() {
+ // new database, app defined.
+ Location loc = Location.create("target/test/DB") ;
+ FileOps.clearAll(loc.getDirectoryPath());
+ // Clear.
+ StoreParams p = Build.fixStoreParams(loc, true, pApp, null, pDft) ;
+ // Check location now has a pLoc.
+ String fn = loc.getPath(StoreParamsConst.TDB_CONFIG_FILE) ;
+ assertTrue(FileOps.exists(fn)) ;
+
+ StoreParams pLoc2 = StoreParamsCodec.read(loc) ;
+ assertTrue(StoreParams.sameValues(pLoc2, p)) ;
+ }
+
+ @Test public void params_choose_new_persist_2() {
+ // new database, location defined.
+ Location loc = Location.create("target/test/DB") ;
+ FileOps.clearAll(loc.getDirectoryPath());
+ StoreParamsCodec.write(loc, pLoc);
+
+ // Clear.
+ StoreParams p = Build.fixStoreParams(loc, true, null, pLoc, pDft) ;
+ // Check location still has a pLoc.
+ String fn = loc.getPath(StoreParamsConst.TDB_CONFIG_FILE) ;
+ assertTrue(FileOps.exists(fn)) ;
+
+ StoreParams pLoc2 = StoreParamsCodec.read(loc) ;
+ assertTrue(StoreParams.sameValues(pLoc, p)) ;
+ }
+
+ @Test public void params_choose_new_persist_3() {
+ // new database, location defined, application modified.
+ Location loc = Location.create("target/test/DB") ;
+ FileOps.clearAll(loc.getDirectoryPath());
+ StoreParamsCodec.write(loc, pLoc);
+
+ // Clear.
+ StoreParams p = Build.fixStoreParams(loc, true, pApp, pLoc, pDft) ;
+ // Check location still has a pLoc.
+ String fn = loc.getPath(StoreParamsConst.TDB_CONFIG_FILE) ;
+ assertTrue(FileOps.exists(fn)) ;
+
+ StoreParams pLoc2 = StoreParamsCodec.read(loc) ;
+ assertFalse(StoreParams.sameValues(pLoc, p)) ;
+ assertEquals(0, p.getBlockSize().intValue()) ; // Location
+ assertEquals(12, p.getNodeMissCacheSize().intValue()) ; // Application
+ }
+
+}
+
http://git-wip-us.apache.org/repos/asf/jena/blob/25d16cbb/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
new file mode 100644
index 0000000..55c0d3f
--- /dev/null
+++ b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/setup/TestStoreParamsCreate.java
@@ -0,0 +1,83 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+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 ;
+
+import org.apache.jena.atlas.json.JSON ;
+import org.apache.jena.atlas.json.JsonObject ;
+import org.apache.jena.atlas.junit.BaseTest ;
+import org.apache.jena.atlas.lib.FileOps ;
+import org.junit.After ;
+import org.junit.Before ;
+import org.junit.Test ;
+
+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 */
+public class TestStoreParamsCreate extends BaseTest {
+ static String DB_DIR = "target/test/DB" ;
+
+ @Before public void clearAnyDatabase() {
+ FileOps.clearAll(new File(DB_DIR));
+ }
+
+ @After public void clearupTest() {}
+
+
+ @Test public void params_create_01() {
+ Location loc = Location.create(DB_DIR) ;
+ StoreConnection.make(loc, null) ;
+ Path db = Paths.get(DB_DIR) ;
+ 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("DB config file", Files.exists(dbCfg)) ;
+
+ }
+
+ // Create store.
+ // Test params.
+
+ static StoreParams read(Location location) {
+ String fn = location.getPath(TDB_CONFIG_FILE) ;
+ JsonObject obj = JSON.read(fn) ;
+ return StoreParamsCodec.decode(obj) ;
+ }
+}
+
[09/13] jena git commit: Constants.
Posted by an...@apache.org.
Constants.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/ac8a7d9f
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/ac8a7d9f
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/ac8a7d9f
Branch: refs/heads/master
Commit: ac8a7d9f0bd003fcd99147811436aa4541599ef9
Parents: 25d16cb
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Nov 7 20:45:54 2014 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Nov 7 20:45:54 2014 +0000
----------------------------------------------------------------------
.../java/com/hp/hpl/jena/tdb/setup/TestStoreParamsChoose.java | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/ac8a7d9f/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 b61cb4c..fb50f33 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,15 +27,15 @@ 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 {
- StoreParams pApp = StoreParamsBuilder.create()
+ static final StoreParams pApp = StoreParamsBuilder.create()
.blockSize(12) // Not dynamic
.nodeMissCacheSize(12) // Dynamic
.build();
- StoreParams pLoc = StoreParamsBuilder.create()
+ static final StoreParams pLoc = StoreParamsBuilder.create()
.blockSize(0)
.nodeMissCacheSize(0).build();
- StoreParams pDft = StoreParams.getDftStoreParams() ;
+ static final StoreParams pDft = StoreParams.getDftStoreParams() ;
@Test public void params_choose_new_1() {
StoreParams p = Build.fixStoreParams(Location.mem(), true, null, null, pDft) ;
[13/13] jena git commit: Merge branch 'tdb-store-params'
Posted by an...@apache.org.
Merge branch 'tdb-store-params'
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/4a45e361
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/4a45e361
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/4a45e361
Branch: refs/heads/master
Commit: 4a45e361739bd2c8e2df56a9bc02015728b011bf
Parents: d910ff4 15a9317
Author: Andy Seaborne <an...@apache.org>
Authored: Sat Nov 8 16:34:26 2014 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Sat Nov 8 16:34:26 2014 +0000
----------------------------------------------------------------------
.../main/java/org/apache/jena/atlas/io/IO.java | 3 +-
.../java/org/apache/jena/atlas/json/JSON.java | 19 +-
.../java/org/apache/jena/atlas/lib/FileOps.java | 8 +
.../apache/jena/fuseki/server/SystemState.java | 2 +-
.../com/hp/hpl/jena/tdb/StoreConnection.java | 20 +-
.../java/com/hp/hpl/jena/tdb/TDBFactory.java | 6 +-
.../jena/tdb/assembler/DatasetAssemblerTDB.java | 2 +-
.../jena/tdb/assembler/NodeTableAssembler.java | 4 +-
.../jena/tdb/assembler/TDBGraphAssembler.java | 2 +-
.../hp/hpl/jena/tdb/base/block/BlockParams.java | 6 +-
.../com/hp/hpl/jena/tdb/base/file/FileSet.java | 4 +-
.../com/hp/hpl/jena/tdb/base/file/Location.java | 10 +-
.../com/hp/hpl/jena/tdb/index/IndexParams.java | 6 +-
.../java/com/hp/hpl/jena/tdb/setup/Build.java | 72 +++-
.../hpl/jena/tdb/setup/DatasetBuilderStd.java | 108 +++---
.../com/hp/hpl/jena/tdb/setup/StoreParams.java | 370 +++++++++++++------
.../hpl/jena/tdb/setup/StoreParamsBuilder.java | 275 +++++++-------
.../hp/hpl/jena/tdb/setup/StoreParamsCodec.java | 65 +++-
.../hp/hpl/jena/tdb/setup/StoreParamsConst.java | 118 ++++++
.../hpl/jena/tdb/setup/StoreParamsDynamic.java | 18 +-
.../tdb/store/bulkloader2/CmdIndexBuild.java | 2 +-
.../tdb/store/bulkloader2/CmdIndexCopy.java | 4 +-
.../store/bulkloader2/CmdNodeTableBuilder.java | 4 +-
.../java/com/hp/hpl/jena/tdb/sys/DebugTDB.java | 2 +-
.../java/com/hp/hpl/jena/tdb/sys/TDBMaker.java | 32 +-
jena-tdb/src/main/java/tdb/CmdRewriteIndex.java | 4 +-
.../src/main/java/tdb/cmdline/ModLocation.java | 2 +-
.../main/java/tdb/cmdline/ModTDBDataset.java | 2 +-
.../src/main/java/tdb/tools/dumpnodetable.java | 2 +-
.../src/main/java/tdb/tools/tdbgenindex.java | 4 +-
.../jena/tdb/base/file/TestLocationLock.java | 12 +-
.../tdb/base/objectfile/TestStringFileDisk.java | 2 +-
.../hpl/jena/tdb/extra/T_QuadsObjectIsNull.java | 2 +-
.../jena/tdb/extra/T_TDBWriteTransaction.java | 2 +-
.../hp/hpl/jena/tdb/extra/T_TransSystem.java | 6 +-
.../tdb/extra/T_TransSystemMultiDatasets.java | 4 +-
.../jena/tdb/graph/TestPrefixMappingTDB.java | 6 +-
.../com/hp/hpl/jena/tdb/setup/TS_TDBSetup.java | 2 +
.../hp/hpl/jena/tdb/setup/TestStoreParams.java | 90 +++--
.../jena/tdb/setup/TestStoreParamsChoose.java | 155 ++++++++
.../jena/tdb/setup/TestStoreParamsCreate.java | 171 +++++++++
.../jena/tdb/store/TestDatasetTDBPersist.java | 2 +-
.../com/hp/hpl/jena/tdb/store/TestGraphTDB.java | 2 +-
.../com/hp/hpl/jena/tdb/store/TestLoader.java | 2 +-
.../tdb/transaction/TestNodeTableTransDisk.java | 2 +-
.../transaction/TestObjectFileTransStorage.java | 4 +-
.../jena/tdb/transaction/TestTransRestart.java | 4 +-
.../tdb/transaction/TestTransactionTDB.java | 2 +-
48 files changed, 1238 insertions(+), 408 deletions(-)
----------------------------------------------------------------------
[06/13] jena git commit: Add clearAll(String)
Posted by an...@apache.org.
Add clearAll(String)
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/879742c0
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/879742c0
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/879742c0
Branch: refs/heads/master
Commit: 879742c087fd73c665cfa12cfdd63d875d9b49f4
Parents: 906be05
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Nov 7 12:23:53 2014 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Nov 7 12:23:53 2014 +0000
----------------------------------------------------------------------
.../src/main/java/org/apache/jena/atlas/lib/FileOps.java | 8 ++++++++
1 file changed, 8 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/879742c0/jena-arq/src/main/java/org/apache/jena/atlas/lib/FileOps.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/FileOps.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/FileOps.java
index 98a8616..6862f4a 100644
--- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/FileOps.java
+++ b/jena-arq/src/main/java/org/apache/jena/atlas/lib/FileOps.java
@@ -74,7 +74,15 @@ public class FileOps {
}
/** Delete all files and directories (recursively) in a directory */
+ public static void clearAll(String d) {
+ clearAll(new File(d)) ;
+ }
+
+ /** Delete all files and directories (recursively) in a directory */
public static void clearAll(File d) {
+ if ( ! d.exists() )
+ return ;
+
for ( File f : d.listFiles() ) {
if ( ".".equals(f.getName()) || "..".equals(f.getName()) )
continue ;
[11/13] jena git commit: Integrate new StoreParams into database
creation.
Posted by an...@apache.org.
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/master
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.
[02/13] jena git commit: Add StoreParams arguiments to many methods.
Separate out StoreParamsConst.
Posted by an...@apache.org.
Add StoreParams arguiments to many methods.
Separate out StoreParamsConst.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/463de5f0
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/463de5f0
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/463de5f0
Branch: refs/heads/master
Commit: 463de5f0451c397084bb1af2e9e4d3c17ac67c37
Parents: 140a088
Author: Andy Seaborne <an...@apache.org>
Authored: Wed Nov 5 13:43:35 2014 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Wed Nov 5 15:06:44 2014 +0000
----------------------------------------------------------------------
.../com/hp/hpl/jena/tdb/StoreConnection.java | 22 +++--
.../java/com/hp/hpl/jena/tdb/TDBFactory.java | 6 +-
.../hpl/jena/tdb/setup/DatasetBuilderStd.java | 12 ++-
.../hpl/jena/tdb/setup/StoreParamsBuilder.java | 59 +++++--------
.../hp/hpl/jena/tdb/setup/StoreParamsCodec.java | 2 +-
.../hp/hpl/jena/tdb/setup/StoreParamsConst.java | 87 ++++++++++++++++++++
6 files changed, 134 insertions(+), 54 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/463de5f0/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 3683a29..91b333e 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
@@ -27,10 +27,11 @@ import com.hp.hpl.jena.query.ReadWrite ;
import com.hp.hpl.jena.sparql.mgt.ARQMgt ;
import com.hp.hpl.jena.tdb.base.file.ChannelManager ;
import com.hp.hpl.jena.tdb.base.file.Location ;
-import com.hp.hpl.jena.tdb.base.file.LocationLock;
+import com.hp.hpl.jena.tdb.base.file.LocationLock ;
import com.hp.hpl.jena.tdb.setup.DatasetBuilderStd ;
+import com.hp.hpl.jena.tdb.setup.StoreParams ;
import com.hp.hpl.jena.tdb.store.DatasetGraphTDB ;
-import com.hp.hpl.jena.tdb.sys.SystemTDB;
+import com.hp.hpl.jena.tdb.sys.SystemTDB ;
import com.hp.hpl.jena.tdb.transaction.* ;
/** A StoreConnection is the reference to the underlying storage.
@@ -166,10 +167,10 @@ public class StoreConnection
private static Map<Location, StoreConnection> cache = new HashMap<>() ;
// ---- statics managing the cache.
- /** Obtain a StoreConenction for a particular location */
+ /** Obtain a StoreConnection for a particular location */
public static StoreConnection make(String location)
{
- return make(new Location(location)) ;
+ return make(Location.create(location)) ;
}
/** Stop managing all locations. Use with great care. */
@@ -219,17 +220,22 @@ public class StoreConnection
* Return a StoreConnection for a particular connection. This is used to
* create transactions for the database at the location.
*/
- public static synchronized StoreConnection make(Location location)
+ public static synchronized StoreConnection make(Location location, StoreParams params)
{
StoreConnection sConn = cache.get(location) ;
if (sConn != null)
return sConn ;
- DatasetGraphTDB dsg = DatasetBuilderStd.create(location) ;
+ DatasetGraphTDB dsg = DatasetBuilderStd.create(location, params) ;
sConn = _makeAndCache(dsg) ;
return sConn ;
}
- /**
+ @Deprecated
+ public static StoreConnection make(Location location) {
+ return make(location, null) ;
+ }
+
+ /**
* Return the StoreConnection if one already exists for this location, else
* return null
*/
@@ -292,7 +298,7 @@ public class StoreConnection
*/
public static StoreConnection createMemUncached()
{
- DatasetGraphTDB dsg = DatasetBuilderStd.create(Location.mem()) ;
+ DatasetGraphTDB dsg = DatasetBuilderStd.create(Location.mem(), null) ;
return new StoreConnection(dsg) ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/463de5f0/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/TDBFactory.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/TDBFactory.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/TDBFactory.java
index 5f2610e..9a01cae 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/TDBFactory.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/TDBFactory.java
@@ -45,7 +45,7 @@ public class TDBFactory
/** Create or connect to a TDB-backed dataset */
public static Dataset createDataset(String dir)
- { return createDataset(new Location(dir)) ; }
+ { return createDataset(Location.create(dir)) ; }
/** Create or connect to a TDB-backed dataset */
public static Dataset createDataset(Location location)
@@ -66,7 +66,7 @@ public class TDBFactory
/** Create or connect to a TDB-backed dataset (graph-level) */
public static DatasetGraph createDatasetGraph(String directory)
- { return createDatasetGraph(new Location(directory)) ; }
+ { return createDatasetGraph(Location.create(directory)) ; }
/** Create or connect to a TDB-backed dataset (graph-level) */
public static DatasetGraph createDatasetGraph(Location location)
@@ -232,7 +232,7 @@ public class TDBFactory
@Deprecated
public static Graph createGraph(String dir)
{
- Location loc = new Location(dir) ;
+ Location loc = Location.create(dir) ;
return createGraph(loc) ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/463de5f0/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 3a01f60..ae903ca 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
@@ -67,15 +67,23 @@ public class DatasetBuilderStd implements DatasetBuilder {
private TupleIndexBuilder tupleIndexBuilder ;
private Recorder recorder = null ;
+ @Deprecated
public static DatasetGraphTDB create(Location location) {
+ return create(location, null) ;
+ }
+
+ public static DatasetGraphTDB create(Location location, StoreParams $params) {
+ if ( $params != null )
+ log.warn("StoreParams != null (ignored)") ;
StoreParams params = paramsForLocation(location) ;
DatasetBuilderStd x = new DatasetBuilderStd() ;
x.standardSetup() ;
return x.build(location, params) ;
}
- public static DatasetGraphTDB create() {
- return create(Location.mem()) ;
+ public static DatasetGraphTDB create(StoreParams params) {
+ // Memory version?
+ return create(Location.mem(), params) ;
}
public static DatasetBuilderStd stdBuilder() {
http://git-wip-us.apache.org/repos/asf/jena/blob/463de5f0/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsBuilder.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsBuilder.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsBuilder.java
index 806fd13..0fa5d42 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsBuilder.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsBuilder.java
@@ -19,70 +19,49 @@
package com.hp.hpl.jena.tdb.setup;
import com.hp.hpl.jena.tdb.base.block.FileMode ;
-import com.hp.hpl.jena.tdb.sys.Names ;
-import com.hp.hpl.jena.tdb.sys.SystemTDB ;
public class StoreParamsBuilder {
- // Initial values are the system defaults.
-
+ // See also StoreParamsConst.
/** Database and query configuration */
// Key names are the base name - encode/decode may add a prefix.
- public static final String fFileMode = "file_mode" ;
- private FileMode fileMode = SystemTDB.fileMode() ;
+ private FileMode fileMode = StoreParamsConst.fileMode ;
- public static final String fBlockReadCacheSize = "block_read_cache_size" ;
- private int blockReadCacheSize = SystemTDB.BlockReadCacheSize ;
+ private int blockReadCacheSize = StoreParamsConst.blockReadCacheSize ;
- public static final String fBlockWriteCacheSize = "block_write_cache_size" ;
- private int blockWriteCacheSize = SystemTDB.BlockWriteCacheSize ;
+ private int blockWriteCacheSize = StoreParamsConst.blockWriteCacheSize ;
- public static final String fNode2NodeIdCacheSize = "node2nodeid_cache_size" ;
- private int Node2NodeIdCacheSize = SystemTDB.Node2NodeIdCacheSize ;
+ private int Node2NodeIdCacheSize = StoreParamsConst.Node2NodeIdCacheSize ;
- public static final String fNodeId2NodeCacheSize = "nodeid2node_cache_size" ;
- private int NodeId2NodeCacheSize = SystemTDB.NodeId2NodeCacheSize ;
+ private int NodeId2NodeCacheSize = StoreParamsConst.NodeId2NodeCacheSize ;
- public static final String fNodeMissCacheSize = "node_miss_cache_size" ;
- private int NodeMissCacheSize = SystemTDB.NodeMissCacheSize ;
+ private int NodeMissCacheSize = StoreParamsConst.NodeMissCacheSize ;
/** Database layout - ignored after a database is created */
- public static final String fBlockSize = "block_size" ;
- private int blockSize = SystemTDB.BlockSize ;
+ private int blockSize = StoreParamsConst.blockSize ;
- public static final String fIndexNode2Id = "index_node2id" ;
- private String indexNode2Id = Names.indexNode2Id ;
+ private String indexNode2Id = StoreParamsConst.indexNode2Id ;
- public static final String fIndexId2Node = "index_id2node" ;
- private String indexId2Node = Names.indexId2Node ;
+ private String indexId2Node = StoreParamsConst.indexId2Node ;
- public static final String fPrimaryIndexTriples = "triple_index_primary" ;
- private String primaryIndexTriples = Names.primaryIndexTriples ;
+ private String primaryIndexTriples = StoreParamsConst.primaryIndexTriples ;
- public static final String fTripleIndexes = "triple_indexes" ;
- private String[] tripleIndexes = Names.tripleIndexes ;
+ private String[] tripleIndexes = StoreParamsConst.tripleIndexes ;
- public static final String fPrimaryIndexQuads = "quad_index_primary" ;
- private String primaryIndexQuads = Names.primaryIndexQuads ;
+ private String primaryIndexQuads = StoreParamsConst.primaryIndexQuads ;
- public static final String fQuadIndexes = "quad_indexes" ;
- private String[] quadIndexes = Names.quadIndexes ;
+ private String[] quadIndexes = StoreParamsConst.quadIndexes ;
- public static final String fPrimaryIndexPrefix = "prefix_index_primary" ;
- private String primaryIndexPrefix = Names.primaryIndexPrefix ;
+ private String primaryIndexPrefix = StoreParamsConst.primaryIndexPrefix ;
- public static final String fPrefixIndexes = "prefix_indexes" ;
- private String[] prefixIndexes = Names.prefixIndexes ;
+ private String[] prefixIndexes = StoreParamsConst.prefixIndexes ;
- public static final String fIndexPrefix = "file_prefix_index" ;
- private String indexPrefix = Names.indexPrefix ;
+ private String indexPrefix = StoreParamsConst.indexPrefix ;
- public static final String fPrefixNode2Id = "file_prefix_nodeid" ;
- private String prefixNode2Id = Names.prefixNode2Id ;
+ private String prefixNode2Id = StoreParamsConst.prefixNode2Id ;
- public static final String fPrefixId2Node = "file_prefix_id2node" ;
- private String prefixId2Node = Names.prefixId2Node ;
+ private String prefixId2Node = StoreParamsConst.prefixId2Node ;
public static StoreParamsBuilder create() { return new StoreParamsBuilder() ; }
http://git-wip-us.apache.org/repos/asf/jena/blob/463de5f0/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 b4781c4..93a8ea2 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
@@ -26,7 +26,7 @@ import com.hp.hpl.jena.sparql.util.Utils ;
import com.hp.hpl.jena.tdb.TDBException ;
import com.hp.hpl.jena.tdb.base.block.FileMode ;
-import static com.hp.hpl.jena.tdb.setup.StoreParamsBuilder.* ;
+import static com.hp.hpl.jena.tdb.setup.StoreParamsConst.* ;
/** Encode and decode {@linkplain StoreParams} */
public class StoreParamsCodec {
http://git-wip-us.apache.org/repos/asf/jena/blob/463de5f0/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
new file mode 100644
index 0000000..7f10450
--- /dev/null
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsConst.java
@@ -0,0 +1,87 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.hp.hpl.jena.tdb.setup;
+
+import com.hp.hpl.jena.tdb.base.block.FileMode ;
+import com.hp.hpl.jena.tdb.sys.Names ;
+import com.hp.hpl.jena.tdb.sys.SystemTDB ;
+
+public class StoreParamsConst {
+ // Initial values are the system defaults.
+
+ /** Database and query configuration */
+ // Key names are the base name - encode/decode may add a prefix.
+
+ public static final String fFileMode = "file_mode" ;
+ public static final FileMode fileMode = SystemTDB.fileMode() ;
+
+ public static final String fBlockReadCacheSize = "block_read_cache_size" ;
+ public static final int blockReadCacheSize = SystemTDB.BlockReadCacheSize ;
+
+ public static final String fBlockWriteCacheSize = "block_write_cache_size" ;
+ public static final int blockWriteCacheSize = SystemTDB.BlockWriteCacheSize ;
+
+ public static final String fNode2NodeIdCacheSize = "node2nodeid_cache_size" ;
+ public static final int Node2NodeIdCacheSize = SystemTDB.Node2NodeIdCacheSize ;
+
+ public static final String fNodeId2NodeCacheSize = "nodeid2node_cache_size" ;
+ public static final int NodeId2NodeCacheSize = SystemTDB.NodeId2NodeCacheSize ;
+
+ public static final String fNodeMissCacheSize = "node_miss_cache_size" ;
+ public static final int NodeMissCacheSize = SystemTDB.NodeMissCacheSize ;
+
+ /** Database layout - ignored after a database is created */
+ public static final String fBlockSize = "block_size" ;
+ public static final int blockSize = SystemTDB.BlockSize ;
+
+ public static final String fIndexNode2Id = "index_node2id" ;
+ public static final String indexNode2Id = Names.indexNode2Id ;
+
+ public static final String fIndexId2Node = "index_id2node" ;
+ public static final String indexId2Node = Names.indexId2Node ;
+
+ public static final String fPrimaryIndexTriples = "triple_index_primary" ;
+ public static final String primaryIndexTriples = Names.primaryIndexTriples ;
+
+ public static final String fTripleIndexes = "triple_indexes" ;
+ public static final String[] tripleIndexes = Names.tripleIndexes ;
+
+ public static final String fPrimaryIndexQuads = "quad_index_primary" ;
+ public static final String primaryIndexQuads = Names.primaryIndexQuads ;
+
+ public static final String fQuadIndexes = "quad_indexes" ;
+ public static final String[] quadIndexes = Names.quadIndexes ;
+
+ public static final String fPrimaryIndexPrefix = "prefix_index_primary" ;
+ public static final String primaryIndexPrefix = Names.primaryIndexPrefix ;
+
+ public static final String fPrefixIndexes = "prefix_indexes" ;
+ public static final String[] prefixIndexes = Names.prefixIndexes ;
+
+ public static final String fIndexPrefix = "file_prefix_index" ;
+ public static final String indexPrefix = Names.indexPrefix ;
+
+ public static final String fPrefixNode2Id = "file_prefix_nodeid" ;
+ public static final String prefixNode2Id = Names.prefixNode2Id ;
+
+ public static final String fPrefixId2Node = "file_prefix_id2node" ;
+ public static final String prefixId2Node = Names.prefixId2Node ;
+
+}
+