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 2018/06/12 12:16:50 UTC
[1/2] jena git commit: JENA-1561: Enable TDB2 in UI and command line.
Repository: jena
Updated Branches:
refs/heads/master 146e6bd4d -> 4db45da0c
JENA-1561: Enable TDB2 in UI and command line.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/de3d6374
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/de3d6374
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/de3d6374
Branch: refs/heads/master
Commit: de3d637482d882573ec4204c7374b863a1cb2981
Parents: 30d0934
Author: Andy Seaborne <an...@apache.org>
Authored: Sat Jun 9 19:07:10 2018 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Mon Jun 11 14:15:51 2018 +0100
----------------------------------------------------------------------
.../apache/jena/fuseki/cmds/FusekiBasicCmd.java | 44 ++++++++++++++++++--
.../org/apache/jena/fuseki/build/Template.java | 38 ++++++++++++-----
.../org/apache/jena/fuseki/cmd/FusekiCmd.java | 21 ++++++----
.../apache/jena/fuseki/mgt/ActionDatasets.java | 31 +++++++-------
.../apache/jena/fuseki/server/FusekiSystem.java | 2 +-
.../jena/fuseki/server/templates/config-tdb2 | 31 ++++++++++++++
.../fuseki/server/templates/config-tdb2-dir | 30 +++++++++++++
.../fuseki/server/templates/config-tdb2-mem | 30 +++++++++++++
.../js/app/templates/dataset-simple-create.tpl | 6 +++
9 files changed, 195 insertions(+), 38 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/de3d6374/jena-fuseki2/jena-fuseki-basic/src/main/java/org/apache/jena/fuseki/cmds/FusekiBasicCmd.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-basic/src/main/java/org/apache/jena/fuseki/cmds/FusekiBasicCmd.java b/jena-fuseki2/jena-fuseki-basic/src/main/java/org/apache/jena/fuseki/cmds/FusekiBasicCmd.java
index b1026b0..41f516f 100644
--- a/jena-fuseki2/jena-fuseki-basic/src/main/java/org/apache/jena/fuseki/cmds/FusekiBasicCmd.java
+++ b/jena-fuseki2/jena-fuseki-basic/src/main/java/org/apache/jena/fuseki/cmds/FusekiBasicCmd.java
@@ -58,6 +58,7 @@ import org.apache.jena.system.Txn;
import org.apache.jena.tdb.TDB;
import org.apache.jena.tdb.TDBFactory;
import org.apache.jena.tdb.transaction.TransactionManager;
+import org.apache.jena.tdb2.DatabaseMgr;
import org.slf4j.Logger;
/** Fuseki command that runs a Fuseki server with no UI, just SPARQL services.
@@ -110,8 +111,11 @@ public class FusekiBasicCmd {
private static ArgDecl argMem = new ArgDecl(ArgDecl.NoValue, "mem");
private static ArgDecl argUpdate = new ArgDecl(ArgDecl.NoValue, "update", "allowUpdate");
private static ArgDecl argFile = new ArgDecl(ArgDecl.HasValue, "file");
+
+ private static ArgDecl argTDB2mode = new ArgDecl(ArgDecl.NoValue, "tdb2");
private static ArgDecl argMemTDB = new ArgDecl(ArgDecl.NoValue, "memtdb", "memTDB", "tdbmem");
private static ArgDecl argTDB = new ArgDecl(ArgDecl.HasValue, "loc", "location", "tdb");
+
// No SPARQL dataset or services
private static ArgDecl argEmpty = new ArgDecl(ArgDecl.NoValue, "empty", "no-dataset");
private static ArgDecl argPort = new ArgDecl(ArgDecl.HasValue, "port");
@@ -131,6 +135,7 @@ public class FusekiBasicCmd {
}
private final ServerConfig serverConfig = new ServerConfig();
+ private boolean useTDB2;
public FusekiCmdInner(String... argv) {
super(argv);
@@ -145,6 +150,8 @@ public class FusekiBasicCmd {
"Create an in-memory, non-persistent dataset for the server");
add(argFile, "--file=FILE",
"Create an in-memory, non-persistent dataset for the server, initialised with the contents of the file");
+ add(argTDB2mode, "--tdb2",
+ "Create command line persistent datasets with TDB2");
add(argTDB, "--loc=DIR",
"Use an existing TDB database (or create if does not exist)");
add(argMemTDB, "--memTDB",
@@ -252,6 +259,10 @@ public class FusekiBasicCmd {
// ---- Dataset
// Only one of these is choose from the checking above.
+ // Which TDB to use to create a command line TDB database.
+ useTDB2 = contains(argTDB2mode);
+ String tag = useTDB2 ? "TDB2" : "TDB";
+
if ( allowEmpty ) {
serverConfig.empty = true;
serverConfig.datasetDescription = "No dataset";
@@ -300,16 +311,41 @@ public class FusekiBasicCmd {
Txn.executeWrite(serverConfig.dsg, ()->RDFDataMgr.read(serverConfig.dsg, filename));
}
+// if ( contains(argMemTDB) ) {
+// //log.info("TDB dataset: in-memory") ;
+// cmdLineConfig.reset();
+// cmdLineConfig.argTemplateFile = useTDB2 ? Template.templateTDB2_MemFN : Template.templateTDB1_MemFN ;
+// cmdLineConfig.params.put(Template.DIR, Names.memName) ;
+// // Always allow.
+// cmdLineConfig.allowUpdate = true ;
+// cmdLineConfig.datasetDescription = useTDB2 ? "TDB2 dataset (in-memory)" : "TDB dataset (in-memory)";
+// }
+//
+// if ( contains(argTDB) ) {
+// cmdLineConfig.reset();
+// cmdLineConfig.argTemplateFile =
+// useTDB2 ? Template.templateTDB2_DirFN : Template.templateTDB1_DirFN;
+// String dir = getValue(argTDB) ;
+// cmdLineConfig.params.put(Template.DIR, dir) ;
+// cmdLineConfig.datasetDescription = useTDB2 ? "TDB2 dataset: "+dir : "TDB dataset: "+dir;
+// }
+
if ( contains(argMemTDB) ) {
- serverConfig.datasetDescription = "TDB dataset in-memory";
- serverConfig.dsg = TDBFactory.createDatasetGraph();
+ serverConfig.datasetDescription = tag+" dataset in-memory";
+ serverConfig.dsg =
+ useTDB2
+ ? DatabaseMgr.createDatasetGraph()
+ : TDBFactory.createDatasetGraph();
serverConfig.allowUpdate = true;
}
if ( contains(argTDB) ) {
String dir = getValue(argTDB);
- serverConfig.datasetDescription = "TDB dataset: "+dir;
- serverConfig.dsg = TDBFactory.createDatasetGraph(dir);
+ serverConfig.datasetDescription = tag+" dataset: "+dir;
+ serverConfig.dsg =
+ useTDB2
+ ? DatabaseMgr.connectDatasetGraph(dir)
+ : TDBFactory.createDatasetGraph(dir);
}
if ( contains(ModAssembler.assemblerDescDecl) ) {
http://git-wip-us.apache.org/repos/asf/jena/blob/de3d6374/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/build/Template.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/build/Template.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/build/Template.java
index 093b644..6c8ca47 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/build/Template.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/build/Template.java
@@ -29,22 +29,38 @@ public class Template
}
public static final String templateDir = "templates" ;
- public static final String templateMemFN = templateDir+"/config-mem" ;
- public static final String templateTDBFN = templateDir+"/config-tdb" ;
- public static final String templateTDBMemFN = templateDir+"/config-tdb-mem" ;
- public static final String templateTDBDirFN = templateDir+"/config-tdb-dir" ;
- public static final String templateTDBDirReadFN = templateDir+"/config-tdb-dir-read-only" ;
+
+ // These are used by the command line start up.
public static final String templateServiceFN = templateDir+"/config-service" ; // Dummy used by dataset-less service.
+
+ // TDB1 - for backwards compatibility, the files are called "tdb"
+ public static final String templateTDB1_FN = templateDir+"/config-tdb" ;
+ public static final String templateTDB1_MemFN = templateDir+"/config-tdb-mem" ;
+ public static final String templateTDB1_DirFN = templateDir+"/config-tdb-dir" ;
+ public static final String templateTDB1_DirReadFN = templateDir+"/config-tdb-dir-read-only" ;
+
+ public static final String templateTDB2_FN = templateDir+"/config-tdb2" ;
+ public static final String templateTDB2_MemFN = templateDir+"/config-tdb2-mem" ;
+ public static final String templateTDB2_DirFN = templateDir+"/config-tdb2-dir" ;
+ public static final String templateTDB2_DirReadFN = templateDir+"/config-tdb2-dir-read-only" ;
+
- public static final String templateMemFN_1 = templateDir+"/config-mem-txn" ;
+ public static final String templateTIM_MemFN = templateDir+"/config-mem" ;
// Template may be in a resources area of a jar file so you can't do a directory listing.
public static final String[] templateNames = {
- templateMemFN ,
- templateTDBFN ,
- templateTDBMemFN ,
- templateTDBDirFN ,
- templateServiceFN
+ templateTIM_MemFN,
+ templateServiceFN,
+
+ templateTDB1_FN ,
+ templateTDB1_MemFN ,
+ templateTDB1_DirFN ,
+ //templateTDB1_DirReadFN,
+
+ templateTDB2_FN ,
+ templateTDB2_MemFN ,
+ templateTDB2_DirFN ,
+ //templateTDB2_DirReadFN
} ;
public static final String NAME = "NAME" ;
http://git-wip-us.apache.org/repos/asf/jena/blob/de3d6374/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/cmd/FusekiCmd.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/cmd/FusekiCmd.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/cmd/FusekiCmd.java
index c5b51e9..57947e9 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/cmd/FusekiCmd.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/cmd/FusekiCmd.java
@@ -81,6 +81,7 @@ public class FusekiCmd {
// This does not apply to empty in-memory setups.
private static ArgDecl argUpdate = new ArgDecl(ArgDecl.NoValue, "update", "allowUpdate") ;
private static ArgDecl argFile = new ArgDecl(ArgDecl.HasValue, "file") ;
+ private static ArgDecl argTDB2mode = new ArgDecl(ArgDecl.NoValue, "tdb2");
private static ArgDecl argMemTDB = new ArgDecl(ArgDecl.NoValue, "memtdb", "memTDB", "tdbmem") ;
private static ArgDecl argTDB = new ArgDecl(ArgDecl.HasValue, "loc", "location", "tdb") ;
private static ArgDecl argPort = new ArgDecl(ArgDecl.HasValue, "port") ;
@@ -113,6 +114,7 @@ public class FusekiCmd {
}
private final FusekiInitialConfig cmdLineConfig = new FusekiInitialConfig() ;
+ private boolean useTDB2;
public FusekiCmdInner(String... argv) {
super(argv) ;
@@ -123,6 +125,8 @@ public class FusekiCmd {
"Create an in-memory, non-persistent dataset for the server") ;
add(argFile, "--file=FILE",
"Create an in-memory, non-persistent dataset for the server, initialised with the contents of the file") ;
+ add(argTDB2mode, "--tdb2",
+ "Create command line persistent datasets with TDB2");
add(argTDB, "--loc=DIR",
"Use an existing TDB database (or create if does not exist)") ;
add(argMemTDB, "--memTDB",
@@ -224,6 +228,9 @@ public class FusekiCmd {
if ( Files.exists(cfg) )
cmdLineConfig.fusekiServerConfigFile = cfg.toString() ;
}
+
+ // Which TDB to use to create a command line TDB database.
+ useTDB2 = contains(argTDB2mode);
cmdLineConfig.allowUpdate = contains(argUpdate) ;
@@ -233,7 +240,7 @@ public class FusekiCmd {
// Only one setup should be called by the test above but to be safe
// and in case of future changes, clear the configuration.
cmdLineConfig.reset();
- cmdLineConfig.argTemplateFile = Template.templateMemFN ;
+ cmdLineConfig.argTemplateFile = Template.templateTIM_MemFN ;
// Always allow.
cmdLineConfig.allowUpdate = true ;
}
@@ -259,22 +266,20 @@ public class FusekiCmd {
if ( contains(argMemTDB) ) {
//log.info("TDB dataset: in-memory") ;
cmdLineConfig.reset();
- cmdLineConfig.argTemplateFile = Template.templateTDBMemFN ;
+ cmdLineConfig.argTemplateFile = useTDB2 ? Template.templateTDB2_MemFN : Template.templateTDB1_MemFN ;
cmdLineConfig.params.put(Template.DIR, Names.memName) ;
// Always allow.
cmdLineConfig.allowUpdate = true ;
- cmdLineConfig.datasetDescription = "TDB dataset (in-memory)";
+ cmdLineConfig.datasetDescription = useTDB2 ? "TDB2 dataset (in-memory)" : "TDB dataset (in-memory)";
}
if ( contains(argTDB) ) {
cmdLineConfig.reset();
-// cmdLineConfig.argTemplateFile =
-// cmdLineConfig.allowUpdate ? Template.templateTDBDirFN : Template.templateTDBDirReadFN;
- // For a long time, "--update" did not apply here and so for compatibility ...
- cmdLineConfig.argTemplateFile = Template.templateTDBDirFN;
+ cmdLineConfig.argTemplateFile =
+ useTDB2 ? Template.templateTDB2_DirFN : Template.templateTDB1_DirFN;
String dir = getValue(argTDB) ;
cmdLineConfig.params.put(Template.DIR, dir) ;
- cmdLineConfig.datasetDescription = "TDB dataset: "+dir;
+ cmdLineConfig.datasetDescription = useTDB2 ? "TDB2 dataset: "+dir : "TDB dataset: "+dir;
}
// Otherwise
http://git-wip-us.apache.org/repos/asf/jena/blob/de3d6374/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/ActionDatasets.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/ActionDatasets.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/ActionDatasets.java
index 85e84af..e34bf25 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/ActionDatasets.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/ActionDatasets.java
@@ -24,10 +24,7 @@ import java.io.IOException ;
import java.io.InputStream ;
import java.io.OutputStream ;
import java.io.StringReader ;
-import java.util.HashMap ;
-import java.util.Iterator ;
-import java.util.List ;
-import java.util.Map ;
+import java.util.*;
import javax.servlet.http.HttpServletRequest ;
@@ -78,8 +75,9 @@ public class ActionDatasets extends ActionContainerItem {
private static final String paramDatasetName = "dbName" ;
private static final String paramDatasetType = "dbType" ;
- private static final String tDatabasetTDB = "tdb" ;
- private static final String tDatabasetMem = "mem" ;
+ private static final String tDatabaseTDB = "tdb" ;
+ private static final String tDatabaseTDB2 = "tdb2" ;
+ private static final String tDatabaseMem = "mem" ;
public ActionDatasets() { super() ; }
@@ -336,6 +334,13 @@ public class ActionDatasets extends ActionContainerItem {
bodyAsGraph(action, dest) ;
}
+ private static Map<String, String> dbTypeToTemplate = new HashMap<>();
+ static {
+ dbTypeToTemplate.put(tDatabaseTDB, Template.templateTDB1_FN);
+ dbTypeToTemplate.put(tDatabaseTDB2, Template.templateTDB2_FN);
+ dbTypeToTemplate.put(tDatabaseMem, Template.templateTIM_MemFN);
+ }
+
private static void assemblerFromForm(HttpAction action, StreamRDF dest) {
String dbType = action.getRequest().getParameter(paramDatasetType) ;
String dbName = action.getRequest().getParameter(paramDatasetName) ;
@@ -351,15 +356,13 @@ public class ActionDatasets extends ActionContainerItem {
FusekiSystem.addGlobals(params);
//action.log.info(format("[%d] Create database : name = %s, type = %s", action.id, dbName, dbType )) ;
- if ( ! dbType.equals(tDatabasetTDB) && ! dbType.equals(tDatabasetMem) )
- ServletOps.errorBadRequest(format("dbType can be only '%s' or '%s'", tDatabasetTDB, tDatabasetMem)) ;
- String template = null ;
- if ( dbType.equalsIgnoreCase(tDatabasetTDB))
- template = TemplateFunctions.templateFile(Template.templateTDBFN, params, Lang.TTL) ;
- if ( dbType.equalsIgnoreCase(tDatabasetMem))
- template = TemplateFunctions.templateFile(Template.templateMemFN, params, Lang.TTL) ;
- RDFParser.create().source(new StringReader(template)).base("http://base/").lang(Lang.TTL).parse(dest);
+ String template = dbTypeToTemplate.get(dbType.toLowerCase(Locale.ROOT));
+ if ( template == null )
+ ServletOps.errorBadRequest(format("dbType can be only '%s', '%s' or '%s'", tDatabaseTDB, tDatabaseTDB2, tDatabaseMem)) ;
+
+ String syntax = TemplateFunctions.templateFile(template, params, Lang.TTL) ;
+ RDFParser.create().source(new StringReader(syntax)).base("http://base/").lang(Lang.TTL).parse(dest);
}
private static void assemblerFromUpload(HttpAction action, StreamRDF dest) {
http://git-wip-us.apache.org/repos/asf/jena/blob/de3d6374/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiSystem.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiSystem.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiSystem.java
index 105f20a..23a2485 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiSystem.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiSystem.java
@@ -192,7 +192,7 @@ public class FusekiSystem
// Get from the file from area "org/apache/jena/fuseki/server" (our package)
URL url = FusekiSystem.class.getResource(fn) ;
if ( url == null )
- throw new FusekiConfigException("Field to find resource '"+fn+"'") ;
+ throw new FusekiConfigException("Failed to find resource '"+fn+"'") ;
InputStream in = url.openStream() ;
Files.copy(in, dstFile) ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/de3d6374/jena-fuseki2/jena-fuseki-core/src/main/resources/org/apache/jena/fuseki/server/templates/config-tdb2
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/resources/org/apache/jena/fuseki/server/templates/config-tdb2 b/jena-fuseki2/jena-fuseki-core/src/main/resources/org/apache/jena/fuseki/server/templates/config-tdb2
new file mode 100644
index 0000000..835d3f8
--- /dev/null
+++ b/jena-fuseki2/jena-fuseki-core/src/main/resources/org/apache/jena/fuseki/server/templates/config-tdb2
@@ -0,0 +1,31 @@
+# Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
+
+PREFIX : <#>
+PREFIX fuseki: <http://jena.apache.org/fuseki#>
+PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
+PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
+PREFIX tdb2: <http://jena.apache.org/2016/tdb#>
+PREFIX ja: <http://jena.hpl.hp.com/2005/11/Assembler#>
+
+## ---------------------------------------------------------------
+## Updatable TDB dataset with all services enabled.
+
+<#service_tdb_all> rdf:type fuseki:Service ;
+ rdfs:label "TDB2 {NAME}" ;
+ fuseki:name "{NAME}" ;
+ fuseki:serviceQuery "query" ;
+ fuseki:serviceQuery "sparql" ;
+ fuseki:serviceUpdate "update" ;
+ fuseki:serviceUpload "upload" ;
+ fuseki:serviceReadWriteGraphStore "data" ;
+ # A separate read-only graph store endpoint:
+ fuseki:serviceReadGraphStore "get" ;
+ fuseki:dataset <#tdb_dataset_readwrite> ;
+
+ .
+
+<#tdb_dataset_readwrite> rdf:type tdb2:DatasetTDB2 ;
+ tdb2:location "{FUSEKI_BASE}/databases/{NAME}" ;
+ ##ja:context [ ja:cxtName "arq:queryTimeout" ; ja:cxtValue "3000" ] ;
+ ##tdb2:unionDefaultGraph true ;
+ .
http://git-wip-us.apache.org/repos/asf/jena/blob/de3d6374/jena-fuseki2/jena-fuseki-core/src/main/resources/org/apache/jena/fuseki/server/templates/config-tdb2-dir
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/resources/org/apache/jena/fuseki/server/templates/config-tdb2-dir b/jena-fuseki2/jena-fuseki-core/src/main/resources/org/apache/jena/fuseki/server/templates/config-tdb2-dir
new file mode 100644
index 0000000..4a89278
--- /dev/null
+++ b/jena-fuseki2/jena-fuseki-core/src/main/resources/org/apache/jena/fuseki/server/templates/config-tdb2-dir
@@ -0,0 +1,30 @@
+# Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
+
+PREFIX : <#>
+PREFIX fuseki: <http://jena.apache.org/fuseki#>
+PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
+PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
+PREFIX tdb2: <http://jena.apache.org/2016/tdb#>
+PREFIX ja: <http://jena.hpl.hp.com/2005/11/Assembler#>
+
+## ---------------------------------------------------------------
+## Updatable TDB2 dataset with all services enabled.
+
+<#service_tdb_all> rdf:type fuseki:Service ;
+ rdfs:label "TDB2 {NAME}" ;
+ fuseki:name "{NAME}" ;
+ fuseki:serviceQuery "query" ;
+ fuseki:serviceQuery "sparql" ;
+ fuseki:serviceUpdate "update" ;
+ fuseki:serviceUpload "upload" ;
+ fuseki:serviceReadWriteGraphStore "data" ;
+ # A separate read-only graph store endpoint:
+ fuseki:serviceReadGraphStore "get" ;
+ fuseki:dataset <#tdb_dataset_readwrite> ;
+
+ .
+
+<#tdb_dataset_readwrite> rdf:type tdb2:DatasetTDB2 ;
+ tdb2:location "{DIR}" ;
+ ##tdb2:unionDefaultGraph true ;
+ .
http://git-wip-us.apache.org/repos/asf/jena/blob/de3d6374/jena-fuseki2/jena-fuseki-core/src/main/resources/org/apache/jena/fuseki/server/templates/config-tdb2-mem
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/resources/org/apache/jena/fuseki/server/templates/config-tdb2-mem b/jena-fuseki2/jena-fuseki-core/src/main/resources/org/apache/jena/fuseki/server/templates/config-tdb2-mem
new file mode 100644
index 0000000..f53be7f
--- /dev/null
+++ b/jena-fuseki2/jena-fuseki-core/src/main/resources/org/apache/jena/fuseki/server/templates/config-tdb2-mem
@@ -0,0 +1,30 @@
+# Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
+
+PREFIX : <#>
+PREFIX fuseki: <http://jena.apache.org/fuseki#>
+PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
+PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
+PREFIX tdb2: <http://jena.apache.org/2016/tdb#>
+PREFIX ja: <http://jena.hpl.hp.com/2005/11/Assembler#>
+
+## ---------------------------------------------------------------
+## Updatable TDB2 dataset im-memory with all services enabled.
+
+<#service_tdb_all> rdf:type fuseki:Service ;
+ rdfs:label "TDB2 {NAME}" ;
+ fuseki:name "{NAME}" ;
+ fuseki:serviceQuery "query" ;
+ fuseki:serviceQuery "sparql" ;
+ fuseki:serviceUpdate "update" ;
+ fuseki:serviceUpload "upload" ;
+ fuseki:serviceReadWriteGraphStore "data" ;
+ # A separate read-only graph store endpoint:
+ fuseki:serviceReadGraphStore "get" ;
+ fuseki:dataset <#tdb_dataset_readwrite> ;
+
+ .
+
+<#tdb_dataset_readwrite> rdf:type tdb2:DatasetTDB2 ;
+ tdb2:location "--mem--" ;
+ ## tdb2:unionDefaultGraph true ;
+ .
http://git-wip-us.apache.org/repos/asf/jena/blob/de3d6374/jena-fuseki2/jena-fuseki-core/src/main/webapp/js/app/templates/dataset-simple-create.tpl
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/webapp/js/app/templates/dataset-simple-create.tpl b/jena-fuseki2/jena-fuseki-core/src/main/webapp/js/app/templates/dataset-simple-create.tpl
index 2611908..3819bdc 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/webapp/js/app/templates/dataset-simple-create.tpl
+++ b/jena-fuseki2/jena-fuseki-core/src/main/webapp/js/app/templates/dataset-simple-create.tpl
@@ -24,6 +24,12 @@
Persistent – dataset will persist across Fuseki restarts
</label>
</div>
+ <div class="radio">
+ <label>
+ <input type="radio" name="dbType" value="tdb2">
+ Persistent (TDB2) – dataset will persist across Fuseki restarts
+ </label>
+ </div>
</div>
</div>
[2/2] jena git commit: JENA-1561: Merge commit 'refs/pull/433/head'
of https://github.com/apache/jena
Posted by an...@apache.org.
JENA-1561: Merge commit 'refs/pull/433/head' of https://github.com/apache/jena
This closes #433.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/4db45da0
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/4db45da0
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/4db45da0
Branch: refs/heads/master
Commit: 4db45da0c028f89fe77d5f30bf4cabf75481f01c
Parents: 146e6bd de3d637
Author: Andy Seaborne <an...@apache.org>
Authored: Tue Jun 12 13:05:51 2018 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Tue Jun 12 13:05:51 2018 +0100
----------------------------------------------------------------------
.../apache/jena/fuseki/cmds/FusekiBasicCmd.java | 44 ++++++++++++++++++--
.../org/apache/jena/fuseki/build/Template.java | 38 ++++++++++++-----
.../org/apache/jena/fuseki/cmd/FusekiCmd.java | 21 ++++++----
.../apache/jena/fuseki/mgt/ActionDatasets.java | 31 +++++++-------
.../apache/jena/fuseki/server/FusekiSystem.java | 2 +-
.../jena/fuseki/server/templates/config-tdb2 | 31 ++++++++++++++
.../fuseki/server/templates/config-tdb2-dir | 30 +++++++++++++
.../fuseki/server/templates/config-tdb2-mem | 30 +++++++++++++
.../js/app/templates/dataset-simple-create.tpl | 6 +++
9 files changed, 195 insertions(+), 38 deletions(-)
----------------------------------------------------------------------