You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by cl...@apache.org on 2018/10/14 10:21:57 UTC

[1/6] jena git commit: added subquery values test

Repository: jena
Updated Branches:
  refs/heads/master 1f5edddde -> a56eb06b8


added subquery values test

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

Branch: refs/heads/master
Commit: 439f6ba0d690923cdcbb86c0780f6f8d0f5d6cd7
Parents: cf08538
Author: Claude Warren <cl...@xenei.com>
Authored: Sun Sep 30 12:18:08 2018 +0100
Committer: Claude Warren <cl...@xenei.com>
Committed: Sun Sep 30 12:18:08 2018 +0100

----------------------------------------------------------------------
 .../querybuilder/clauses/WhereClauseTest.java   | 35 ++++++++++++++++++++
 1 file changed, 35 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/439f6ba0/jena-extras/jena-querybuilder/src/test/java/org/apache/jena/arq/querybuilder/clauses/WhereClauseTest.java
----------------------------------------------------------------------
diff --git a/jena-extras/jena-querybuilder/src/test/java/org/apache/jena/arq/querybuilder/clauses/WhereClauseTest.java b/jena-extras/jena-querybuilder/src/test/java/org/apache/jena/arq/querybuilder/clauses/WhereClauseTest.java
index 42c8ef4..bbff034 100644
--- a/jena-extras/jena-querybuilder/src/test/java/org/apache/jena/arq/querybuilder/clauses/WhereClauseTest.java
+++ b/jena-extras/jena-querybuilder/src/test/java/org/apache/jena/arq/querybuilder/clauses/WhereClauseTest.java
@@ -892,6 +892,41 @@ public class WhereClauseTest<T extends WhereClause<?>> extends
 		query.getQueryPattern().visit( visitor );
 		assertTrue( visitor.matching );
 	}	
+	
+	@ContractTest
+	public void testAddWhereValueVars_InSubQuery()
+	{
+		final Var v = Var.alloc("v");
+		Map<Object,List<?>> map = new HashMap<Object, List<?>>();
+		
+		map.put( Var.alloc("v"), Arrays.asList( "<one>", "<two>"));
+		map.put( "?x", Arrays.asList( "three", "four"));
+			
+		WhereClause<?> whereClause = getProducer().newInstance();
+		WhereClause<?> whereClause2 = getProducer().newInstance();
+		
+		AbstractQueryBuilder<?> builder =  whereClause.addWhereValueVars( map );
+		builder = whereClause2.addSubQuery(builder);
+		
+		Query query = builder.build();
+
+		Var x = Var.alloc("x");
+		ElementData edat = new ElementData();
+		edat.add( x );
+		edat.add( v );		
+		BindingHashMap binding = new BindingHashMap();
+		binding.add( v, NodeFactory.createURI( "one" ));
+		binding.add( x, NodeFactory.createLiteral("three"));
+		edat.add( binding );
+		binding = new BindingHashMap();
+		binding.add( v, NodeFactory.createURI( "two" ));
+		binding.add( x, NodeFactory.createLiteral("four"));
+		edat.add( binding );
+
+		WhereValidator visitor = new WhereValidator( edat );
+		query.getQueryPattern().visit( visitor );
+		assertTrue( visitor.matching );
+	}
 
 	@ContractTest
 	public void testAddWhereValueVars_Node_Variable()


[6/6] jena git commit: JENA-1515 Merge commit 'refs/pull/479/head' of github.com:apache/jena

Posted by cl...@apache.org.
JENA-1515 Merge commit 'refs/pull/479/head' of github.com:apache/jena

This closes #479


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

Branch: refs/heads/master
Commit: a56eb06b8c2b577f6e1584f4cc9566d46d3efcf0
Parents: 1f5eddd e0a4fd3
Author: Claude Warren <cl...@xenei.com>
Authored: Sat Oct 13 17:04:35 2018 +0100
Committer: Claude Warren <cl...@xenei.com>
Committed: Sat Oct 13 17:04:35 2018 +0100

----------------------------------------------------------------------
 .../querybuilder/rewriters/ElementRewriter.java |  15 +-
 .../querybuilder/clauses/WhereClauseTest.java   | 277 ++++++++++++++-----
 2 files changed, 210 insertions(+), 82 deletions(-)
----------------------------------------------------------------------



[4/6] jena git commit: fixed formatting

Posted by cl...@apache.org.
fixed formatting

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

Branch: refs/heads/master
Commit: 140e1ef9f4e26200239afe76880345652f72b13f
Parents: e736bdf
Author: Claude Warren <cl...@xenei.com>
Authored: Sat Oct 13 16:43:00 2018 +0100
Committer: Claude Warren <cl...@xenei.com>
Committed: Sat Oct 13 16:43:00 2018 +0100

----------------------------------------------------------------------
 .../apache/jena/arq/querybuilder/rewriters/ElementRewriter.java   | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/140e1ef9/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/rewriters/ElementRewriter.java
----------------------------------------------------------------------
diff --git a/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/rewriters/ElementRewriter.java b/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/rewriters/ElementRewriter.java
index 5526c1f..6ec675e 100644
--- a/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/rewriters/ElementRewriter.java
+++ b/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/rewriters/ElementRewriter.java
@@ -106,8 +106,7 @@ public class ElementRewriter extends AbstractRewriter<Element> implements
 		for (Var v : el.getVars()) {
 			retval.add(v);
 		}
-		for (Binding binding : el.getRows())
-		{
+		for (Binding binding : el.getRows()) {
 			retval.add( binding );
 		}		
 		push(retval);


[3/6] jena git commit: Merge branch 'master' into 1515/fix

Posted by cl...@apache.org.
Merge branch 'master' into 1515/fix

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

Branch: refs/heads/master
Commit: e736bdfb1851a1069bd2dbd2d14c6eae1e259a97
Parents: a499b58 ecb01ec
Author: Claude Warren <cl...@xenei.com>
Authored: Sun Oct 7 12:24:17 2018 +0100
Committer: Claude Warren <cl...@xenei.com>
Committed: Sun Oct 7 12:24:17 2018 +0100

----------------------------------------------------------------------
 .gitignore                                      |    2 +
 README                                          |   10 -
 README.md                                       |   10 +
 apache-jena-libs/pom.xml                        |   10 +-
 apache-jena-osgi/jena-osgi-features/pom.xml     |    2 +-
 .../src/main/resources/features.xml             |    2 -
 apache-jena-osgi/jena-osgi/pom.xml              |   16 +-
 apache-jena-osgi/pom.xml                        |    4 +-
 apache-jena/pom.xml                             |   48 +-
 jena-arq/pom.xml                                |   12 +-
 .../arq/examples/riot/ExJsonLD.java             |  380 -
 .../arq/examples/riot/ExRIOT1_ReadModel.java    |   52 +
 .../arq/examples/riot/ExRIOT2_ReadDataset.java  |   45 +
 .../arq/examples/riot/ExRIOT3_RDFParser.java    |   57 +
 .../examples/riot/ExRIOT4_StreamRDF_Filter.java |   64 +
 .../examples/riot/ExRIOT5_StreamRDFCollect.java |   48 +
 .../arq/examples/riot/ExRIOT6_AddNewReader.java |  117 +
 .../arq/examples/riot/ExRIOT7_ParserPiped.java  |   73 +
 .../arq/examples/riot/ExRIOT_1.java             |   52 -
 .../arq/examples/riot/ExRIOT_2.java             |   57 -
 .../arq/examples/riot/ExRIOT_3.java             |   45 -
 .../arq/examples/riot/ExRIOT_4.java             |   80 -
 .../arq/examples/riot/ExRIOT_5.java             |  117 -
 .../arq/examples/riot/ExRIOT_6.java             |   73 -
 .../arq/examples/riot/ExRIOT_7.java             |   48 -
 .../arq/examples/riot/ExRIOT_out1.java          |   48 -
 .../arq/examples/riot/ExRIOT_out2.java          |   47 -
 .../arq/examples/riot/ExRIOT_out3.java          |  107 -
 .../arq/examples/riot/ExRIOTw1_writeModel.java  |   48 +
 .../arq/examples/riot/ExRIOTw2_writeRDF.java    |   47 +
 .../examples/riot/ExRIOTw3_AddNewWriter.java    |  107 +
 .../arq/examples/riot/Ex_WriteJsonLD.java       |  380 +
 .../java/org/apache/jena/atlas/web/WebLib.java  |   12 +
 .../apache/jena/riot/out/NodeFormatterTTL.java  |   36 +-
 .../java/org/apache/jena/riot/web/HttpOp.java   |   57 +-
 .../jena/riot/web/HttpRequestTransformer.java   |   29 +
 .../apache/jena/riot/web/HttpResponseLib.java   |    9 +-
 .../org/apache/jena/sparql/ARQConstants.java    |    4 +-
 .../jena/sparql/sse/builders/BuilderExpr.java   |   12 +-
 jena-base/pom.xml                               |    6 +-
 .../org/apache/jena/atlas/logging/LogCtl.java   |   31 +-
 .../logging/java/ConsoleHandlerStream.java      |   11 +-
 jena-cmds/pom.xml                               |   22 +-
 jena-cmds/src/main/java/arq/bindings.java       |    2 +-
 jena-cmds/src/main/java/arq/iri.java            |    2 +-
 jena-cmds/src/main/java/arq/juuid.java          |    2 +-
 jena-cmds/src/main/java/arq/qexpr.java          |   25 +-
 jena-cmds/src/main/java/arq/rupdate.java        |    2 +-
 jena-cmds/src/main/java/arq/utf8.java           |    2 +-
 jena-cmds/src/main/java/jena/version.java       |    2 +-
 jena-cmds/src/main/java/riotcmd/dumpthrift.java |    2 +-
 jena-cmds/src/main/java/riotcmd/utf8.java       |    2 +-
 jena-core/pom.xml                               |   10 +-
 .../apache/jena/datatypes/xsd/XSDDatatype.java  |    2 +-
 .../java/org/apache/jena/vocabulary/AS.java     |  160 +
 .../java/org/apache/jena/vocabulary/OA.java     |  113 +
 jena-csv/pom.xml                                |   10 +-
 jena-db/jena-dboe-base/pom.xml                  |    6 +-
 jena-db/jena-dboe-index-test/pom.xml            |    4 +-
 jena-db/jena-dboe-index/pom.xml                 |    4 +-
 jena-db/jena-dboe-trans-data/pom.xml            |   10 +-
 jena-db/jena-dboe-transaction/pom.xml           |    4 +-
 jena-db/jena-tdb2/pom.xml                       |   10 +-
 .../apache/jena/tdb2/loader/LoaderFactory.java  |   10 +-
 .../loader/sequential/LoaderSequential.java     |    2 +-
 jena-db/pom.xml                                 |    4 +-
 jena-elephas/jena-elephas-common/pom.xml        |    2 +-
 jena-elephas/jena-elephas-io/pom.xml            |    4 +-
 jena-elephas/jena-elephas-mapreduce/pom.xml     |    2 +-
 .../filter/AbstractNodeTupleFilterMapper.java   |    6 +-
 jena-elephas/jena-elephas-stats/pom.xml         |    2 +-
 jena-elephas/pom.xml                            |    6 +-
 jena-extras/jena-querybuilder/pom.xml           |    2 +-
 jena-extras/pom.xml                             |    6 +-
 jena-fuseki1/pom.xml                            |   18 +-
 .../apache-jena-fuseki/assembly-dist.xml        |    4 +-
 jena-fuseki2/apache-jena-fuseki/pom.xml         |    6 +-
 jena-fuseki2/jena-fuseki-access/pom.xml         |   17 +-
 .../jena/fuseki/access/DataAccessCtl.java       |    2 +-
 .../access/AbstractTestSecurityAssembler.java   |    8 +-
 .../fuseki/access/TestSecurityFilterFuseki.java |   11 +-
 jena-fuseki2/jena-fuseki-basic/pom.xml          |  206 -
 jena-fuseki2/jena-fuseki-basic/run-sparqler     |    8 -
 .../jena-fuseki-basic/sparqler/data/books.ttl   |   48 -
 .../jena-fuseki-basic/sparqler/data/empty.nt    |    2 -
 .../sparqler/data/sparql-data.ttl               |  102 -
 .../sparqler/data/underground.ttl               | 8996 ----------------
 .../sparqler/log4j-foreground.properties        |   44 -
 .../sparqler/log4j-server.properties            |   44 -
 .../jena-fuseki-basic/sparqler/pages/D.nt       |    0
 .../jena-fuseki-basic/sparqler/pages/D.rdf      |    8 -
 .../jena-fuseki-basic/sparqler/pages/D.ttl      |    3 -
 .../sparqler/pages/crossdomain.xml              |    3 -
 .../sparqler/pages/data-validator.html          |   48 -
 .../jena-fuseki-basic/sparqler/pages/doc.css    |  127 -
 .../jena-fuseki-basic/sparqler/pages/fuseki.css |  148 -
 .../jena-fuseki-basic/sparqler/pages/index.html |   73 -
 .../sparqler/pages/iri-validator.html           |   22 -
 .../sparqler/pages/query-validator.html         |   71 -
 .../jena-fuseki-basic/sparqler/pages/query.html |   63 -
 .../jena-fuseki-basic/sparqler/pages/robots.txt |    2 -
 .../sparqler/pages/sparql.html                  |   51 -
 .../sparqler/pages/update-validator.html        |   46 -
 .../sparqler/pages/update.html                  |   27 -
 .../sparqler/pages/validator.html               |   35 -
 .../sparqler/pages/xml-to-html-links.xsl        |  183 -
 .../sparqler/pages/xml-to-html-plain.xsl        |  187 -
 .../sparqler/pages/xml-to-html.xsl              |  187 -
 .../jena-fuseki-basic/sparqler/run-sparqler     |   64 -
 .../apache/jena/fuseki/cmds/FusekiBasicCmd.java |   46 -
 .../jena/fuseki/cmds/FusekiBasicMain.java       |  513 -
 .../apache/jena/fuseki/cmds/PlatformInfo.java   |  135 -
 .../apache/jena/fuseki/cmds/ServerConfig.java   |   51 -
 jena-fuseki2/jena-fuseki-core/fuseki-dev        |  105 -
 jena-fuseki2/jena-fuseki-core/pom.xml           |   85 +-
 .../java/org/apache/jena/fuseki/Fuseki.java     |   76 +
 .../java/org/apache/jena/fuseki/FusekiCmd.java  |   28 -
 .../java/org/apache/jena/fuseki/FusekiLib.java  |  238 -
 .../fuseki/authz/AuthorizationFilter403.java    |   59 -
 .../apache/jena/fuseki/authz/DenyFilter.java    |   33 -
 .../jena/fuseki/authz/LocalhostFilter.java      |   62 -
 .../build/DatasetDescriptionRegistry.java       |   17 +-
 .../apache/jena/fuseki/build/FusekiBuilder.java |  139 +-
 .../apache/jena/fuseki/build/FusekiConfig.java  |   88 +-
 .../org/apache/jena/fuseki/build/Template.java  |   70 -
 .../jena/fuseki/build/TemplateFunctions.java    |   86 -
 .../org/apache/jena/fuseki/cmd/FusekiCmd.java   |  377 -
 .../org/apache/jena/fuseki/cmd/JettyFuseki.java |  325 -
 .../org/apache/jena/fuseki/conneg/ConNeg.java   |  206 -
 .../org/apache/jena/fuseki/conneg/WebLib.java   |   60 -
 .../java/org/apache/jena/fuseki/ctl/Backup.java |  131 -
 .../org/apache/jena/fuseki/jetty/JettyLib.java  |    9 +-
 .../apache/jena/fuseki/mgt/ActionBackup.java    |   68 -
 .../jena/fuseki/mgt/ActionBackupList.java       |   95 -
 .../apache/jena/fuseki/mgt/ActionDatasets.java  |  511 -
 .../org/apache/jena/fuseki/mgt/ActionLogs.java  |   60 -
 .../jena/fuseki/mgt/ActionServerStatus.java     |  117 -
 .../org/apache/jena/fuseki/mgt/DumpServlet.java |  300 -
 .../apache/jena/fuseki/mgt/ServerMgtConst.java  |   39 -
 .../fuseki/server/DataAccessPointRegistry.java  |    9 +-
 .../apache/jena/fuseki/server/DataService.java  |   18 +-
 .../apache/jena/fuseki/server/ServiceOnly.java  |   44 +
 .../apache/jena/fuseki/servlets/ActionLib.java  |   12 +-
 .../jena/fuseki/servlets/ActionService.java     |    6 +-
 .../jena/fuseki/servlets/REST_Quads_RW.java     |    4 +-
 .../jena/fuseki/servlets/ResponseDataset.java   |    6 +-
 .../jena/fuseki/servlets/ResponseResultSet.java |    2 +-
 .../jena/fuseki/servlets/SPARQL_GSP_RW.java     |    8 +-
 .../jena/fuseki/servlets/SPARQL_Query.java      |    6 +-
 .../jena/fuseki/servlets/SPARQL_Update.java     |    5 +-
 .../jena/fuseki/servlets/SPARQL_Upload.java     |    6 +-
 .../jena/fuseki/servlets/ServiceRouter.java     |    2 +-
 .../org/apache/jena/fuseki/system/ConNeg.java   |  206 +
 .../apache/jena/fuseki/system/FusekiNetLib.java |  179 +
 .../org/apache/jena/fuseki/system/Upload.java   |    3 +-
 .../jena/fuseki/validation/ValidatorBase.java   |    2 +-
 .../validation/html/DataValidatorHTML.java      |    4 +-
 .../apache/jena/fuseki/webapp/FusekiEnv.java    |  168 -
 .../webapp/FusekiServerEnvironmentInit.java     |   54 -
 .../fuseki/webapp/FusekiServerListener.java     |  107 -
 .../apache/jena/fuseki/webapp/FusekiSystem.java |  459 -
 .../fuseki/webapp/ShiroEnvironmentLoader.java   |  163 -
 .../apache/jena/fuseki/webapp/SystemState.java  |   96 -
 .../org/apache/jena/fuseki/webapp/config.ttl    |   30 -
 .../org/apache/jena/fuseki/webapp/shiro.ini     |   37 -
 .../jena/fuseki/webapp/templates/config-mem     |   27 -
 .../jena/fuseki/webapp/templates/config-service |   23 -
 .../jena/fuseki/webapp/templates/config-tdb     |   31 -
 .../jena/fuseki/webapp/templates/config-tdb-dir |   30 -
 .../jena/fuseki/webapp/templates/config-tdb-mem |   30 -
 .../jena/fuseki/webapp/templates/config-tdb2    |   31 -
 .../fuseki/webapp/templates/config-tdb2-dir     |   30 -
 .../fuseki/webapp/templates/config-tdb2-mem     |   30 -
 .../src/main/webapp/WEB-INF/web.xml             |  326 -
 .../src/main/webapp/admin-logs.html             |   73 -
 .../main/webapp/css/bootstrap-select.min.css    |    7 -
 .../src/main/webapp/css/bootstrap-theme.css.map |    1 -
 .../src/main/webapp/css/bootstrap-theme.min.css |    7 -
 .../src/main/webapp/css/bootstrap.css.map       |    1 -
 .../src/main/webapp/css/bootstrap.min.css       |    7 -
 .../src/main/webapp/css/codemirror.css          |  301 -
 .../src/main/webapp/css/codemirror.min.css      |    1 -
 .../src/main/webapp/css/font-awesome.min.css    |    4 -
 .../src/main/webapp/css/fui.css                 |  191 -
 .../src/main/webapp/css/jquery.dataTables.css   |  220 -
 .../webapp/css/jquery.fileupload-noscript.css   |   22 -
 .../css/jquery.fileupload-ui-noscript.css       |   17 -
 .../main/webapp/css/jquery.fileupload-ui.css    |   57 -
 .../src/main/webapp/css/jquery.fileupload.css   |   36 -
 .../src/main/webapp/css/pivot.min.css           |    1 -
 .../src/main/webapp/css/qonsole.css             |  172 -
 .../src/main/webapp/css/yasqe.min.css           |    1 -
 .../src/main/webapp/css/yasr.min.css            |    1 -
 .../src/main/webapp/dataset.html                |  247 -
 .../src/main/webapp/documentation.html          |   83 -
 .../src/main/webapp/fonts/FontAwesome.otf       |  Bin 75188 -> 0 bytes
 .../main/webapp/fonts/fontawesome-webfont.eot   |  Bin 72449 -> 0 bytes
 .../main/webapp/fonts/fontawesome-webfont.svg   |  504 -
 .../main/webapp/fonts/fontawesome-webfont.ttf   |  Bin 141564 -> 0 bytes
 .../main/webapp/fonts/fontawesome-webfont.woff  |  Bin 83760 -> 0 bytes
 .../fonts/glyphicons-halflings-regular.eot      |  Bin 20335 -> 0 bytes
 .../fonts/glyphicons-halflings-regular.svg      |  229 -
 .../fonts/glyphicons-halflings-regular.ttf      |  Bin 41280 -> 0 bytes
 .../fonts/glyphicons-halflings-regular.woff     |  Bin 23320 -> 0 bytes
 .../src/main/webapp/images/back_disabled.png    |  Bin 1361 -> 0 bytes
 .../src/main/webapp/images/back_enabled.png     |  Bin 1379 -> 0 bytes
 .../main/webapp/images/back_enabled_hover.png   |  Bin 1375 -> 0 bytes
 .../src/main/webapp/images/favicon.ico          |  Bin 1085 -> 0 bytes
 .../src/main/webapp/images/forward_disabled.png |  Bin 1363 -> 0 bytes
 .../src/main/webapp/images/forward_enabled.png  |  Bin 1380 -> 0 bytes
 .../webapp/images/forward_enabled_hover.png     |  Bin 1379 -> 0 bytes
 .../webapp/images/jena-logo-notext-small.png    |  Bin 2469 -> 0 bytes
 .../src/main/webapp/images/sort_asc.png         |  Bin 1118 -> 0 bytes
 .../main/webapp/images/sort_asc_disabled.png    |  Bin 1050 -> 0 bytes
 .../src/main/webapp/images/sort_both.png        |  Bin 1136 -> 0 bytes
 .../src/main/webapp/images/sort_desc.png        |  Bin 1127 -> 0 bytes
 .../main/webapp/images/sort_desc_disabled.png   |  Bin 1045 -> 0 bytes
 .../src/main/webapp/images/wait30.gif           |  Bin 6337 -> 0 bytes
 .../jena-fuseki-core/src/main/webapp/index.html |  101 -
 .../js/app/controllers/dataset-controller.js    |   69 -
 .../js/app/controllers/index-controller.js      |   50 -
 .../js/app/controllers/manage-controller.js     |   39 -
 .../js/app/controllers/query-controller.js      |   72 -
 .../js/app/controllers/upload-controller.js     |   42 -
 .../js/app/controllers/validation-controller.js |   38 -
 .../src/main/webapp/js/app/fui.js               |   33 -
 .../src/main/webapp/js/app/main.dataset.js      |   31 -
 .../src/main/webapp/js/app/main.index.js        |   24 -
 .../src/main/webapp/js/app/main.manage.js       |   27 -
 .../src/main/webapp/js/app/main.validation.js   |   24 -
 .../main/webapp/js/app/models/dataset-stats.js  |  102 -
 .../src/main/webapp/js/app/models/dataset.js    |  262 -
 .../main/webapp/js/app/models/fuseki-server.js  |  180 -
 .../src/main/webapp/js/app/models/task.js       |  105 -
 .../webapp/js/app/models/validation-options.js  |   85 -
 .../src/main/webapp/js/app/qonsole-config.js    |   27 -
 .../main/webapp/js/app/services/ping-service.js |   54 -
 .../js/app/services/validation-service.js       |   98 -
 .../webapp/js/app/templates/dataset-edit.tpl    |   58 -
 .../webapp/js/app/templates/dataset-info.tpl    |   40 -
 .../js/app/templates/dataset-management.tpl     |   62 -
 .../js/app/templates/dataset-selection-list.tpl |   22 -
 .../js/app/templates/dataset-selector.tpl       |   15 -
 .../js/app/templates/dataset-simple-create.tpl  |   85 -
 .../webapp/js/app/templates/dataset-stats.tpl   |   14 -
 .../webapp/js/app/templates/file-upload.tpl     |   46 -
 .../webapp/js/app/templates/uploadable-file.tpl |   23 -
 .../src/main/webapp/js/app/util/page-utils.js   |   33 -
 .../main/webapp/js/app/views/dataset-edit.js    |  205 -
 .../main/webapp/js/app/views/dataset-info.js    |   76 -
 .../webapp/js/app/views/dataset-management.js   |  173 -
 .../js/app/views/dataset-selection-list.js      |   58 -
 .../webapp/js/app/views/dataset-selector.js     |   84 -
 .../js/app/views/dataset-simple-create.js       |  102 -
 .../main/webapp/js/app/views/dataset-stats.js   |   41 -
 .../js/app/views/datasets-dropdown-list.js      |   43 -
 .../src/main/webapp/js/app/views/file-upload.js |  225 -
 .../webapp/js/app/views/tabbed-view-manager.js  |   63 -
 .../main/webapp/js/app/views/uploadable-file.js |   39 -
 .../webapp/js/app/views/validation-options.js   |   54 -
 .../src/main/webapp/js/common-config.js         |   94 -
 .../main/webapp/js/lib/addon/fold/brace-fold.js |  105 -
 .../webapp/js/lib/addon/fold/comment-fold.js    |   57 -
 .../main/webapp/js/lib/addon/fold/foldcode.js   |  145 -
 .../main/webapp/js/lib/addon/fold/foldgutter.js |  134 -
 .../main/webapp/js/lib/addon/fold/xml-fold.js   |  181 -
 .../src/main/webapp/js/lib/backbone-min.js      |    2 -
 .../src/main/webapp/js/lib/backbone.js          | 1581 ---
 .../main/webapp/js/lib/backbone.marionette.js   | 2385 -----
 .../main/webapp/js/lib/bootstrap-select.min.js  |    8 -
 .../src/main/webapp/js/lib/bootstrap.min.js     |    6 -
 .../src/main/webapp/js/lib/html5shiv.js         |    8 -
 .../src/main/webapp/js/lib/jquery-1.10.2.js     | 9789 ------------------
 .../src/main/webapp/js/lib/jquery-1.10.2.min.js |    6 -
 .../src/main/webapp/js/lib/jquery-ui.min.js     |    7 -
 .../main/webapp/js/lib/jquery.dataTables.min.js |  157 -
 .../src/main/webapp/js/lib/jquery.fileupload.js | 1426 ---
 .../webapp/js/lib/jquery.fileupload.local.js    | 1428 ---
 .../src/main/webapp/js/lib/jquery.form.js       | 1278 ---
 .../webapp/js/lib/jquery.iframe-transport.js    |  214 -
 .../src/main/webapp/js/lib/jquery.ui.widget.js  |  530 -
 .../main/webapp/js/lib/jquery.xdomainrequest.js |   90 -
 .../src/main/webapp/js/lib/lib/codemirror.js    | 7638 --------------
 .../webapp/js/lib/mode/javascript/javascript.js |  683 --
 .../main/webapp/js/lib/mode/sparql/sparql.js    |  160 -
 .../main/webapp/js/lib/mode/turtle/turtle.js    |  160 -
 .../src/main/webapp/js/lib/mode/xml/xml.js      |  384 -
 .../src/main/webapp/js/lib/pivot.js             | 1363 ---
 .../src/main/webapp/js/lib/pivot.min.js         |    2 -
 .../src/main/webapp/js/lib/pivot.min.js.map     |    1 -
 .../src/main/webapp/js/lib/plugins/text.js      |  386 -
 .../src/main/webapp/js/lib/qonsole.js           |  577 --
 .../src/main/webapp/js/lib/refresh.sh           |   21 -
 .../src/main/webapp/js/lib/require.js           | 2076 ----
 .../src/main/webapp/js/lib/require.min.js       |   36 -
 .../src/main/webapp/js/lib/respond.min.js       |    6 -
 .../src/main/webapp/js/lib/sprintf-0.7-beta1.js |  183 -
 .../src/main/webapp/js/lib/underscore.js        | 1276 ---
 .../src/main/webapp/js/lib/yasqe.min.js         |    9 -
 .../src/main/webapp/js/lib/yasqe.min.js.map     |    1 -
 .../src/main/webapp/js/lib/yasr.min.js          |    8 -
 .../src/main/webapp/js/lib/yasr.min.js.map      |    1 -
 .../src/main/webapp/manage.html                 |  110 -
 .../src/main/webapp/services.html               |   76 -
 .../src/main/webapp/test/test-fuseki-config.ttl |   27 -
 .../src/main/webapp/validate.html               |  147 -
 .../apache/jena/fuseki/AbstractFusekiTest.java  |   51 -
 .../test/java/org/apache/jena/fuseki/Dummy.java |   23 +
 .../java/org/apache/jena/fuseki/FileSender.java |   87 -
 .../java/org/apache/jena/fuseki/FusekiTest.java |  101 -
 .../java/org/apache/jena/fuseki/ServerCtl.java  |  304 -
 .../java/org/apache/jena/fuseki/ServerTest.java |   42 -
 .../java/org/apache/jena/fuseki/TS_Fuseki.java  |   81 -
 .../java/org/apache/jena/fuseki/TestAdmin.java  |  514 -
 .../org/apache/jena/fuseki/TestAdminAPI.java    |  120 -
 .../java/org/apache/jena/fuseki/TestAuth.java   |  380 -
 .../org/apache/jena/fuseki/TestBuilder.java     |   68 -
 .../jena/fuseki/TestDatasetAccessorHTTP.java    |  318 -
 .../fuseki/TestDatasetGraphAccessorHTTP.java    |   40 -
 .../org/apache/jena/fuseki/TestDatasetOps.java  |  136 -
 .../org/apache/jena/fuseki/TestFileUpload.java  |  124 -
 .../java/org/apache/jena/fuseki/TestHttpOp.java |  198 -
 .../apache/jena/fuseki/TestHttpOperations.java  |  131 -
 .../org/apache/jena/fuseki/TestHttpOptions.java |   56 -
 .../java/org/apache/jena/fuseki/TestQuery.java  |  322 -
 .../apache/jena/fuseki/TestSPARQLProtocol.java  |   84 -
 .../apache/jena/fuseki/TestServerReadOnly.java  |  134 -
 jena-fuseki2/jena-fuseki-embedded/pom.xml       |  152 -
 .../jena/fuseki/embedded/FusekiServer.java      |  597 --
 .../jena/fuseki/embedded/JettyServer.java       |  369 -
 .../jena/fuseki/embedded/CustomService.java     |   81 -
 .../jena/fuseki/embedded/FusekiTestAuth.java    |  191 -
 .../jena/fuseki/embedded/FusekiTestServer.java  |  261 -
 .../jena/fuseki/embedded/TS_EmbeddedFuseki.java |   51 -
 .../fuseki/embedded/TestEmbeddedFuseki.java     |  321 -
 .../embedded/TestFusekiCustomOperation.java     |  188 -
 .../fuseki/embedded/TestFusekiTestAuth.java     |   98 -
 .../fuseki/embedded/TestFusekiTestServer.java   |   60 -
 .../fuseki/embedded/TestMultipleEmbedded.java   |  170 -
 .../examples/ExtendFuseki_AddService_1.java     |  158 -
 .../examples/ExtendFuseki_AddService_2.java     |  123 -
 .../examples/ExtendFuseki_AddService_3.java     |  107 -
 .../embedded/examples/SpecialService.java       |   81 -
 .../src/test/resources/log4j.properties         |   40 -
 .../testing/FusekiEmbedded/config.ttl           |   18 -
 .../testing/FusekiEmbedded/test.txt             |    1 -
 jena-fuseki2/jena-fuseki-fulljar/pom.xml        |  123 +
 jena-fuseki2/jena-fuseki-main/pom.xml           |  159 +
 .../org/apache/jena/fuseki/main/FusekiLib.java  |   74 +
 .../apache/jena/fuseki/main/FusekiServer.java   |  597 ++
 .../apache/jena/fuseki/main/JettyServer.java    |  371 +
 .../jena/fuseki/main/cmds/FusekiMain.java       |  498 +
 .../jena/fuseki/main/cmds/FusekiMainCmd.java    |   46 +
 .../jena/fuseki/main/cmds/PlatformInfo.java     |  135 +
 .../jena/fuseki/main/cmds/ServerConfig.java     |   51 +
 .../apache/jena/fuseki/main/CustomService.java  |   81 +
 .../apache/jena/fuseki/main/FusekiTestAuth.java |  178 +
 .../jena/fuseki/main/FusekiTestServer.java      |  261 +
 .../jena/fuseki/main/TS_EmbeddedFuseki.java     |   51 +
 .../jena/fuseki/main/TestEmbeddedFuseki.java    |  334 +
 .../fuseki/main/TestFusekiCustomOperation.java  |  188 +
 .../jena/fuseki/main/TestFusekiTestAuth.java    |   98 +
 .../jena/fuseki/main/TestFusekiTestServer.java  |   60 +
 .../jena/fuseki/main/TestMultipleEmbedded.java  |  170 +
 .../examples/ExtendFuseki_AddService_1.java     |  158 +
 .../examples/ExtendFuseki_AddService_2.java     |  123 +
 .../examples/ExtendFuseki_AddService_3.java     |  107 +
 .../fuseki/main/examples/SpecialService.java    |   81 +
 .../src/test/resources/log4j.properties         |   40 +
 .../testing/FusekiEmbedded/config.ttl           |   18 +
 .../testing/FusekiEmbedded/test.txt             |    1 +
 jena-fuseki2/jena-fuseki-server/.gitignore      |    1 -
 jena-fuseki2/jena-fuseki-server/pom.xml         |   31 +-
 jena-fuseki2/jena-fuseki-war/pom.xml            |    8 +-
 jena-fuseki2/jena-fuseki-webapp/fuseki-dev      |  105 +
 jena-fuseki2/jena-fuseki-webapp/pom.xml         |  199 +
 .../fuseki/authz/AuthorizationFilter403.java    |   59 +
 .../apache/jena/fuseki/authz/DenyFilter.java    |   33 +
 .../jena/fuseki/authz/LocalhostFilter.java      |   62 +
 .../org/apache/jena/fuseki/cmd/FusekiCmd.java   |  377 +
 .../org/apache/jena/fuseki/cmd/JettyFuseki.java |  325 +
 .../apache/jena/fuseki/mgt/ActionBackup.java    |   67 +
 .../jena/fuseki/mgt/ActionBackupList.java       |   95 +
 .../apache/jena/fuseki/mgt/ActionDatasets.java  |  523 +
 .../org/apache/jena/fuseki/mgt/ActionLogs.java  |   60 +
 .../jena/fuseki/mgt/ActionServerStatus.java     |  117 +
 .../java/org/apache/jena/fuseki/mgt/Backup.java |  131 +
 .../org/apache/jena/fuseki/mgt/DumpServlet.java |  300 +
 .../apache/jena/fuseki/mgt/ServerMgtConst.java  |   39 +
 .../org/apache/jena/fuseki/mgt/Template.java    |   70 +
 .../jena/fuseki/mgt/TemplateFunctions.java      |   86 +
 .../apache/jena/fuseki/webapp/FusekiEnv.java    |  168 +
 .../webapp/FusekiServerEnvironmentInit.java     |   54 +
 .../fuseki/webapp/FusekiServerListener.java     |  107 +
 .../apache/jena/fuseki/webapp/FusekiSystem.java |  472 +
 .../fuseki/webapp/ShiroEnvironmentLoader.java   |  163 +
 .../apache/jena/fuseki/webapp/SystemState.java  |   96 +
 .../src/main/resources/META-INF/DEPENDENCIES    |   24 +
 .../src/main/resources/META-INF/LICENSE         |  253 +
 .../src/main/resources/META-INF/NOTICE          |   16 +
 .../apache/jena/fuseki/fuseki-properties.xml    |    8 +
 .../org/apache/jena/fuseki/log4j.properties     |   40 +
 .../org/apache/jena/fuseki/webapp/config.ttl    |   30 +
 .../org/apache/jena/fuseki/webapp/shiro.ini     |   37 +
 .../jena/fuseki/webapp/templates/config-mem     |   27 +
 .../jena/fuseki/webapp/templates/config-service |   23 +
 .../jena/fuseki/webapp/templates/config-tdb     |   31 +
 .../jena/fuseki/webapp/templates/config-tdb-dir |   30 +
 .../jena/fuseki/webapp/templates/config-tdb-mem |   30 +
 .../jena/fuseki/webapp/templates/config-tdb2    |   31 +
 .../fuseki/webapp/templates/config-tdb2-dir     |   30 +
 .../fuseki/webapp/templates/config-tdb2-mem     |   30 +
 .../src/main/webapp/WEB-INF/web.xml             |  326 +
 .../src/main/webapp/admin-logs.html             |   73 +
 .../main/webapp/css/bootstrap-select.min.css    |    7 +
 .../src/main/webapp/css/bootstrap-theme.css.map |    1 +
 .../src/main/webapp/css/bootstrap-theme.min.css |    7 +
 .../src/main/webapp/css/bootstrap.css.map       |    1 +
 .../src/main/webapp/css/bootstrap.min.css       |    7 +
 .../src/main/webapp/css/codemirror.css          |  301 +
 .../src/main/webapp/css/codemirror.min.css      |    1 +
 .../src/main/webapp/css/font-awesome.min.css    |    4 +
 .../src/main/webapp/css/fui.css                 |  191 +
 .../src/main/webapp/css/jquery.dataTables.css   |  220 +
 .../webapp/css/jquery.fileupload-noscript.css   |   22 +
 .../css/jquery.fileupload-ui-noscript.css       |   17 +
 .../main/webapp/css/jquery.fileupload-ui.css    |   57 +
 .../src/main/webapp/css/jquery.fileupload.css   |   36 +
 .../src/main/webapp/css/pivot.min.css           |    1 +
 .../src/main/webapp/css/qonsole.css             |  172 +
 .../src/main/webapp/css/yasqe.min.css           |    1 +
 .../src/main/webapp/css/yasr.min.css            |    1 +
 .../src/main/webapp/dataset.html                |  247 +
 .../src/main/webapp/documentation.html          |   83 +
 .../src/main/webapp/fonts/FontAwesome.otf       |  Bin 0 -> 75188 bytes
 .../main/webapp/fonts/fontawesome-webfont.eot   |  Bin 0 -> 72449 bytes
 .../main/webapp/fonts/fontawesome-webfont.svg   |  504 +
 .../main/webapp/fonts/fontawesome-webfont.ttf   |  Bin 0 -> 141564 bytes
 .../main/webapp/fonts/fontawesome-webfont.woff  |  Bin 0 -> 83760 bytes
 .../fonts/glyphicons-halflings-regular.eot      |  Bin 0 -> 20335 bytes
 .../fonts/glyphicons-halflings-regular.svg      |  229 +
 .../fonts/glyphicons-halflings-regular.ttf      |  Bin 0 -> 41280 bytes
 .../fonts/glyphicons-halflings-regular.woff     |  Bin 0 -> 23320 bytes
 .../src/main/webapp/images/back_disabled.png    |  Bin 0 -> 1361 bytes
 .../src/main/webapp/images/back_enabled.png     |  Bin 0 -> 1379 bytes
 .../main/webapp/images/back_enabled_hover.png   |  Bin 0 -> 1375 bytes
 .../src/main/webapp/images/favicon.ico          |  Bin 0 -> 1085 bytes
 .../src/main/webapp/images/forward_disabled.png |  Bin 0 -> 1363 bytes
 .../src/main/webapp/images/forward_enabled.png  |  Bin 0 -> 1380 bytes
 .../webapp/images/forward_enabled_hover.png     |  Bin 0 -> 1379 bytes
 .../webapp/images/jena-logo-notext-small.png    |  Bin 0 -> 2469 bytes
 .../src/main/webapp/images/sort_asc.png         |  Bin 0 -> 1118 bytes
 .../main/webapp/images/sort_asc_disabled.png    |  Bin 0 -> 1050 bytes
 .../src/main/webapp/images/sort_both.png        |  Bin 0 -> 1136 bytes
 .../src/main/webapp/images/sort_desc.png        |  Bin 0 -> 1127 bytes
 .../main/webapp/images/sort_desc_disabled.png   |  Bin 0 -> 1045 bytes
 .../src/main/webapp/images/wait30.gif           |  Bin 0 -> 6337 bytes
 .../src/main/webapp/index.html                  |  101 +
 .../js/app/controllers/dataset-controller.js    |   69 +
 .../js/app/controllers/index-controller.js      |   50 +
 .../js/app/controllers/manage-controller.js     |   39 +
 .../js/app/controllers/query-controller.js      |   72 +
 .../js/app/controllers/upload-controller.js     |   42 +
 .../js/app/controllers/validation-controller.js |   38 +
 .../src/main/webapp/js/app/fui.js               |   33 +
 .../src/main/webapp/js/app/main.dataset.js      |   31 +
 .../src/main/webapp/js/app/main.index.js        |   24 +
 .../src/main/webapp/js/app/main.manage.js       |   27 +
 .../src/main/webapp/js/app/main.validation.js   |   24 +
 .../main/webapp/js/app/models/dataset-stats.js  |  102 +
 .../src/main/webapp/js/app/models/dataset.js    |  262 +
 .../main/webapp/js/app/models/fuseki-server.js  |  180 +
 .../src/main/webapp/js/app/models/task.js       |  105 +
 .../webapp/js/app/models/validation-options.js  |   85 +
 .../src/main/webapp/js/app/qonsole-config.js    |   27 +
 .../main/webapp/js/app/services/ping-service.js |   54 +
 .../js/app/services/validation-service.js       |   98 +
 .../webapp/js/app/templates/dataset-edit.tpl    |   58 +
 .../webapp/js/app/templates/dataset-info.tpl    |   40 +
 .../js/app/templates/dataset-management.tpl     |   62 +
 .../js/app/templates/dataset-selection-list.tpl |   22 +
 .../js/app/templates/dataset-selector.tpl       |   15 +
 .../js/app/templates/dataset-simple-create.tpl  |   85 +
 .../webapp/js/app/templates/dataset-stats.tpl   |   14 +
 .../webapp/js/app/templates/file-upload.tpl     |   46 +
 .../webapp/js/app/templates/uploadable-file.tpl |   23 +
 .../src/main/webapp/js/app/util/page-utils.js   |   33 +
 .../main/webapp/js/app/views/dataset-edit.js    |  205 +
 .../main/webapp/js/app/views/dataset-info.js    |   76 +
 .../webapp/js/app/views/dataset-management.js   |  173 +
 .../js/app/views/dataset-selection-list.js      |   58 +
 .../webapp/js/app/views/dataset-selector.js     |   84 +
 .../js/app/views/dataset-simple-create.js       |  102 +
 .../main/webapp/js/app/views/dataset-stats.js   |   41 +
 .../js/app/views/datasets-dropdown-list.js      |   43 +
 .../src/main/webapp/js/app/views/file-upload.js |  225 +
 .../webapp/js/app/views/tabbed-view-manager.js  |   63 +
 .../main/webapp/js/app/views/uploadable-file.js |   39 +
 .../webapp/js/app/views/validation-options.js   |   54 +
 .../src/main/webapp/js/common-config.js         |   94 +
 .../main/webapp/js/lib/addon/fold/brace-fold.js |  105 +
 .../webapp/js/lib/addon/fold/comment-fold.js    |   57 +
 .../main/webapp/js/lib/addon/fold/foldcode.js   |  145 +
 .../main/webapp/js/lib/addon/fold/foldgutter.js |  134 +
 .../main/webapp/js/lib/addon/fold/xml-fold.js   |  181 +
 .../src/main/webapp/js/lib/backbone-min.js      |    2 +
 .../src/main/webapp/js/lib/backbone.js          | 1581 +++
 .../main/webapp/js/lib/backbone.marionette.js   | 2385 +++++
 .../main/webapp/js/lib/bootstrap-select.min.js  |    8 +
 .../src/main/webapp/js/lib/bootstrap.min.js     |    6 +
 .../src/main/webapp/js/lib/html5shiv.js         |    8 +
 .../src/main/webapp/js/lib/jquery-1.10.2.js     | 9789 ++++++++++++++++++
 .../src/main/webapp/js/lib/jquery-1.10.2.min.js |    6 +
 .../src/main/webapp/js/lib/jquery-ui.min.js     |    7 +
 .../main/webapp/js/lib/jquery.dataTables.min.js |  157 +
 .../src/main/webapp/js/lib/jquery.fileupload.js | 1426 +++
 .../webapp/js/lib/jquery.fileupload.local.js    | 1428 +++
 .../src/main/webapp/js/lib/jquery.form.js       | 1278 +++
 .../webapp/js/lib/jquery.iframe-transport.js    |  214 +
 .../src/main/webapp/js/lib/jquery.ui.widget.js  |  530 +
 .../main/webapp/js/lib/jquery.xdomainrequest.js |   90 +
 .../src/main/webapp/js/lib/lib/codemirror.js    | 7638 ++++++++++++++
 .../webapp/js/lib/mode/javascript/javascript.js |  683 ++
 .../main/webapp/js/lib/mode/sparql/sparql.js    |  160 +
 .../main/webapp/js/lib/mode/turtle/turtle.js    |  160 +
 .../src/main/webapp/js/lib/mode/xml/xml.js      |  384 +
 .../src/main/webapp/js/lib/pivot.js             | 1363 +++
 .../src/main/webapp/js/lib/pivot.min.js         |    2 +
 .../src/main/webapp/js/lib/pivot.min.js.map     |    1 +
 .../src/main/webapp/js/lib/plugins/text.js      |  386 +
 .../src/main/webapp/js/lib/qonsole.js           |  577 ++
 .../src/main/webapp/js/lib/refresh.sh           |   21 +
 .../src/main/webapp/js/lib/require.js           | 2076 ++++
 .../src/main/webapp/js/lib/require.min.js       |   36 +
 .../src/main/webapp/js/lib/respond.min.js       |    6 +
 .../src/main/webapp/js/lib/sprintf-0.7-beta1.js |  183 +
 .../src/main/webapp/js/lib/underscore.js        | 1276 +++
 .../src/main/webapp/js/lib/yasqe.min.js         |    9 +
 .../src/main/webapp/js/lib/yasqe.min.js.map     |    1 +
 .../src/main/webapp/js/lib/yasr.min.js          |    8 +
 .../src/main/webapp/js/lib/yasr.min.js.map      |    1 +
 .../src/main/webapp/manage.html                 |  110 +
 .../src/main/webapp/services.html               |   76 +
 .../src/main/webapp/test/test-fuseki-config.ttl |   27 +
 .../src/main/webapp/validate.html               |  147 +
 .../apache/jena/fuseki/AbstractFusekiTest.java  |   51 +
 .../java/org/apache/jena/fuseki/FileSender.java |   87 +
 .../java/org/apache/jena/fuseki/FusekiTest.java |  101 +
 .../java/org/apache/jena/fuseki/ServerCtl.java  |  305 +
 .../java/org/apache/jena/fuseki/ServerTest.java |   42 +
 .../java/org/apache/jena/fuseki/TS_Fuseki.java  |   81 +
 .../java/org/apache/jena/fuseki/TestAdmin.java  |  514 +
 .../org/apache/jena/fuseki/TestAdminAPI.java    |  126 +
 .../java/org/apache/jena/fuseki/TestAuth.java   |  379 +
 .../org/apache/jena/fuseki/TestBuilder.java     |   68 +
 .../jena/fuseki/TestDatasetAccessorHTTP.java    |  318 +
 .../fuseki/TestDatasetGraphAccessorHTTP.java    |   40 +
 .../org/apache/jena/fuseki/TestDatasetOps.java  |  136 +
 .../org/apache/jena/fuseki/TestFileUpload.java  |  124 +
 .../java/org/apache/jena/fuseki/TestHttpOp.java |  198 +
 .../apache/jena/fuseki/TestHttpOperations.java  |  131 +
 .../org/apache/jena/fuseki/TestHttpOptions.java |   56 +
 .../java/org/apache/jena/fuseki/TestQuery.java  |  322 +
 .../apache/jena/fuseki/TestSPARQLProtocol.java  |   84 +
 .../apache/jena/fuseki/TestServerReadOnly.java  |  134 +
 .../jena-fuseki-webapp/testing/config-ds-1.ttl  |   15 +
 .../testing/config-ds-bad-name-1.ttl            |   15 +
 .../testing/config-ds-bad-name-2.ttl            |   15 +
 .../testing/config-ds-bad-name-3.ttl            |   15 +
 .../testing/config-ds-bad-name-4.ttl            |   15 +
 jena-fuseki2/pom.xml                            |   16 +-
 jena-integration-tests/pom.xml                  |   26 +-
 .../TestRDFConnectionFusekiBinary.java          |   11 +-
 .../rdfconnection/TestRDFConnectionRemote.java  |    6 +-
 jena-iri/pom.xml                                |    4 +-
 jena-jdbc/jena-jdbc-core/pom.xml                |    4 +-
 jena-jdbc/jena-jdbc-driver-bundle/pom.xml       |   27 +-
 jena-jdbc/jena-jdbc-driver-mem/pom.xml          |    6 +-
 jena-jdbc/jena-jdbc-driver-remote/pom.xml       |   14 +-
 .../jena/jdbc/remote/TS_JdbcDriverRemote.java   |    2 +-
 .../TestRemoteEndpointConnection.java           |    2 +-
 .../TestRemoteEndpointConnectionWithAuth.java   |    2 +-
 ...stRemoteEndpointConnectionWithGraphUris.java |    2 +-
 ...oteEndpointConnectionWithResultSetTypes.java |    2 +-
 .../metadata/TestRemoteConnectionMetadata.java  |    2 +-
 .../results/TestRemoteEndpointResults.java      |    2 +-
 .../TestRemoteEndpointResultsWithAuth.java      |    2 +-
 .../TestRemoteEndpointResultsWithGraphUris.java |    2 +-
 ...RemoteEndpointResultsWithResultSetTypes.java |    2 +-
 .../TestRemoteEndpointStatements.java           |    2 +-
 jena-jdbc/jena-jdbc-driver-tdb/pom.xml          |   10 +-
 jena-jdbc/pom.xml                               |    4 +-
 jena-permissions/pom.xml                        |    4 +-
 jena-rdfconnection/pom.xml                      |   12 +-
 .../jena/rdfconnection/RDFConnectionRemote.java |   74 +-
 jena-sdb/pom.xml                                |   14 +-
 jena-shaded-guava/pom.xml                       |    4 +-
 jena-spatial/pom.xml                            |   10 +-
 .../src/main/java/jena/spatialindexer.java      |   17 +-
 .../jena/query/spatial/SpatialIndexContext.java |    6 +-
 jena-tdb/pom.xml                                |   12 +-
 jena-text-es/pom.xml                            |    8 +-
 jena-text/pom.xml                               |   10 +-
 pom.xml                                         |   26 +-
 604 files changed, 54793 insertions(+), 64406 deletions(-)
----------------------------------------------------------------------



[2/6] jena git commit: fixes JENA-1515

Posted by cl...@apache.org.
fixes JENA-1515

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

Branch: refs/heads/master
Commit: a499b58a76704125f63a8407ffb2795b03e4d213
Parents: 439f6ba
Author: Claude Warren <cl...@xenei.com>
Authored: Sun Sep 30 12:53:31 2018 +0100
Committer: Claude Warren <cl...@xenei.com>
Committed: Sun Sep 30 12:53:31 2018 +0100

----------------------------------------------------------------------
 .../arq/querybuilder/rewriters/ElementRewriter.java | 16 ++++++----------
 1 file changed, 6 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/a499b58a/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/rewriters/ElementRewriter.java
----------------------------------------------------------------------
diff --git a/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/rewriters/ElementRewriter.java b/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/rewriters/ElementRewriter.java
index 4a9a56a..5526c1f 100644
--- a/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/rewriters/ElementRewriter.java
+++ b/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/rewriters/ElementRewriter.java
@@ -103,17 +103,13 @@ public class ElementRewriter extends AbstractRewriter<Element> implements
 	@Override
 	public void visit(ElementData el) {
 		ElementData retval = new ElementData();
-		Iterator<Var> vars = el.getVars().iterator();
-		Iterator<Binding> bindings = el.getRows().iterator();
-		while (vars.hasNext()) {
-			Var v = vars.next();
-			if (values.containsKey(v)) {
-				bindings.next(); // skip the binding
-			} else {
-				retval.add(v);
-				retval.add(rewrite(bindings.next()));
-			}
+		for (Var v : el.getVars()) {
+			retval.add(v);
 		}
+		for (Binding binding : el.getRows())
+		{
+			retval.add( binding );
+		}		
 		push(retval);
 
 	}


[5/6] jena git commit: part of fixes for JENA-1368

Posted by cl...@apache.org.
part of fixes for JENA-1368

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

Branch: refs/heads/master
Commit: e0a4fd37ec6293abeb2bacf3558bca7b9b9ed2a0
Parents: 140e1ef
Author: Claude Warren <cl...@xenei.com>
Authored: Sat Oct 13 16:49:45 2018 +0100
Committer: Claude Warren <cl...@xenei.com>
Committed: Sat Oct 13 16:49:45 2018 +0100

----------------------------------------------------------------------
 .../querybuilder/clauses/WhereClauseTest.java   | 242 +++++++++++++------
 1 file changed, 170 insertions(+), 72 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/e0a4fd37/jena-extras/jena-querybuilder/src/test/java/org/apache/jena/arq/querybuilder/clauses/WhereClauseTest.java
----------------------------------------------------------------------
diff --git a/jena-extras/jena-querybuilder/src/test/java/org/apache/jena/arq/querybuilder/clauses/WhereClauseTest.java b/jena-extras/jena-querybuilder/src/test/java/org/apache/jena/arq/querybuilder/clauses/WhereClauseTest.java
index bbff034..d233ff5 100644
--- a/jena-extras/jena-querybuilder/src/test/java/org/apache/jena/arq/querybuilder/clauses/WhereClauseTest.java
+++ b/jena-extras/jena-querybuilder/src/test/java/org/apache/jena/arq/querybuilder/clauses/WhereClauseTest.java
@@ -38,9 +38,12 @@ import org.apache.jena.sparql.core.Var;
 import org.apache.jena.sparql.engine.binding.BindingHashMap;
 import org.apache.jena.sparql.expr.E_LessThan;
 import org.apache.jena.sparql.expr.E_Random;
+import org.apache.jena.sparql.expr.Expr;
 import org.apache.jena.sparql.expr.ExprVar;
 import org.apache.jena.sparql.expr.nodevalue.NodeValueInteger;
 import org.apache.jena.sparql.lang.sparql_11.ParseException;
+import org.apache.jena.sparql.path.P_Link;
+import org.apache.jena.sparql.path.P_Seq;
 import org.apache.jena.sparql.path.Path;
 import org.apache.jena.sparql.path.PathParser;
 import org.apache.jena.sparql.syntax.ElementBind;
@@ -89,9 +92,14 @@ public class WhereClauseTest<T extends WhereClause<?>> extends
 		WhereClause<?> whereClause = getProducer().newInstance();
 		AbstractQueryBuilder<?> builder = whereClause.addWhere("<one>",
 				"<two>", "three");
-		assertContainsRegex(WHERE + OPEN_CURLY + uri("one") + SPACE
-				+ uri("two") + SPACE + quote("three") + presentStringType()
-				+ OPT_SPACE + CLOSE_CURLY, builder.buildString());
+		
+		ElementPathBlock epb = new ElementPathBlock();
+		Triple t = new Triple( NodeFactory.createURI("one"), NodeFactory.createURI("two"), NodeFactory.createLiteral("three") );
+		epb.addTriple( t );
+		
+		WhereValidator visitor = new WhereValidator( epb );
+		builder.build().getQueryPattern().visit( visitor );
+		assertTrue( visitor.matching );
 	}
 
 	@ContractTest
@@ -99,10 +107,15 @@ public class WhereClauseTest<T extends WhereClause<?>> extends
 		WhereClause<?> whereClause = getProducer().newInstance();
 		AbstractQueryBuilder<?> builder = whereClause.addOptional("<one>",
 				"<two>", "three");
-		assertContainsRegex(WHERE + OPEN_CURLY + "OPTIONAL" + SPACE
-				+ OPEN_CURLY + uri("one") + SPACE + uri("two") + SPACE
-				+ quote("three") + presentStringType() + OPT_SPACE
-				+ CLOSE_CURLY + CLOSE_CURLY, builder.buildString());
+		
+		ElementPathBlock epb = new ElementPathBlock();
+		ElementOptional optional = new ElementOptional(epb);
+		Triple t = new Triple( NodeFactory.createURI("one"), NodeFactory.createURI("two"), NodeFactory.createLiteral("three") );
+		epb.addTriple( t );
+		
+		WhereValidator visitor = new WhereValidator( optional );
+		builder.build().getQueryPattern().visit( visitor );
+		assertTrue( visitor.matching );
 
 	}
 
@@ -111,11 +124,16 @@ public class WhereClauseTest<T extends WhereClause<?>> extends
 		WhereClause<?> whereClause = getProducer().newInstance();
 		AbstractQueryBuilder<?> builder = whereClause.addOptional("<one>",
 				"<two>/<dos>", "three");
-		assertContainsRegex(WHERE + OPEN_CURLY + "OPTIONAL" + SPACE
-				+ OPEN_CURLY + uri("one") + SPACE + uri("two")+"/"+uri("dos") + SPACE
-				+ quote("three") + presentStringType() + OPT_SPACE
-				+ CLOSE_CURLY + CLOSE_CURLY, builder.buildString());
-
+		
+		Path path = new P_Seq( new P_Link( NodeFactory.createURI("two") ), new P_Link( NodeFactory.createURI("dos")));
+		ElementPathBlock epb = new ElementPathBlock();
+		ElementOptional optional = new ElementOptional(epb);
+		TriplePath tp = new TriplePath( NodeFactory.createURI("one"), path, NodeFactory.createLiteral("three") );
+		epb.addTriplePath( tp );
+		
+		WhereValidator visitor = new WhereValidator( optional );
+		builder.build().getQueryPattern().visit( visitor );
+		assertTrue( visitor.matching );
 	}
 	
 	@ContractTest
@@ -124,10 +142,15 @@ public class WhereClauseTest<T extends WhereClause<?>> extends
 		AbstractQueryBuilder<?> builder = whereClause.addOptional(
 				NodeFactory.createURI("one"), NodeFactory.createURI("two"),
 				NodeFactory.createURI("three"));
-		assertContainsRegex(WHERE + OPEN_CURLY + "OPTIONAL" + SPACE
-				+ OPEN_CURLY + uri("one") + SPACE + uri("two") + SPACE
-				+ uri("three") + OPT_SPACE + CLOSE_CURLY,
-				builder.buildString());
+		
+		ElementPathBlock epb = new ElementPathBlock();
+		ElementOptional optional = new ElementOptional(epb);
+		Triple t = new Triple( NodeFactory.createURI("one"), NodeFactory.createURI("two"), NodeFactory.createURI("three") );
+		epb.addTriple( t );
+		
+		WhereValidator visitor = new WhereValidator( optional );
+		builder.build().getQueryPattern().visit( visitor );
+		assertTrue( visitor.matching );
 	}
 
 	@ContractTest
@@ -137,10 +160,14 @@ public class WhereClauseTest<T extends WhereClause<?>> extends
 				NodeFactory.createURI("one"), NodeFactory.createURI("two"),
 				NodeFactory.createURI("three"));
 
-		assertContainsRegex(WHERE + OPEN_CURLY + "OPTIONAL" + SPACE
-				+ OPEN_CURLY + uri("one") + SPACE + uri("two") + SPACE
-				+ uri("three") + OPT_SPACE + CLOSE_CURLY,
-				builder.buildString());
+		ElementPathBlock epb = new ElementPathBlock();
+		ElementOptional optional = new ElementOptional(epb);
+		Triple t = new Triple( NodeFactory.createURI("one"), NodeFactory.createURI("two"), NodeFactory.createURI("three") );
+		epb.addTriple( t );
+		
+		WhereValidator visitor = new WhereValidator( optional );
+		builder.build().getQueryPattern().visit( visitor );
+		assertTrue( visitor.matching );
 	}
 	
 	@ContractTest
@@ -153,10 +180,14 @@ public class WhereClauseTest<T extends WhereClause<?>> extends
 				NodeFactory.createURI("one"), path,
 				NodeFactory.createURI("three")));
 
-		assertContainsRegex(WHERE + OPEN_CURLY + "OPTIONAL" + SPACE
-				+ OPEN_CURLY + uri("one") + SPACE + uri("urn:test:two")+"/"+uri("urn:test:dos") + SPACE
-				+ uri("three") + OPT_SPACE + CLOSE_CURLY,
-				builder.buildString());
+		ElementPathBlock epb = new ElementPathBlock();
+		ElementOptional optional = new ElementOptional(epb);
+		TriplePath tp = new TriplePath( NodeFactory.createURI("one"), path, NodeFactory.createURI("three") );
+		epb.addTriplePath( tp );
+		
+		WhereValidator visitor = new WhereValidator( optional );
+		builder.build().getQueryPattern().visit( visitor );
+		assertTrue( visitor.matching );
 	}
 	
 	@ContractTest
@@ -168,11 +199,16 @@ public class WhereClauseTest<T extends WhereClause<?>> extends
 		AbstractQueryBuilder<?> builder = whereClause.addOptional(
 				NodeFactory.createURI("one"), path,
 				NodeFactory.createURI("three"));
-
-		assertContainsRegex(WHERE + OPEN_CURLY + "OPTIONAL" + SPACE
-				+ OPEN_CURLY + uri("one") + SPACE + uri("urn:test:two")+"/"+uri("urn:test:dos") + SPACE
-				+ uri("three") + OPT_SPACE + CLOSE_CURLY,
-				builder.buildString());
+		
+		ElementPathBlock epb = new ElementPathBlock();
+		ElementOptional optional = new ElementOptional(epb);
+		TriplePath tp = new TriplePath( NodeFactory.createURI("one"), path, NodeFactory.createURI("three") );
+		epb.addTriplePath( tp );
+		
+		WhereValidator visitor = new WhereValidator( optional );
+		builder.build().getQueryPattern().visit( visitor );
+		assertTrue( visitor.matching );
+		
 	}
 
 	@ContractTest
@@ -282,14 +318,27 @@ public class WhereClauseTest<T extends WhereClause<?>> extends
 		whereClause.getWhereHandler().addWhere( new TriplePath(Triple.ANY));
 		AbstractQueryBuilder<?> builder = whereClause.addUnion(sb);
 
-		String str = builder.buildString();
-		assertContainsRegex(PREFIX + "pfx:" + SPACE + uri("uri") + SPACE, str );
-		assertContainsRegex( WHERE + OPEN_CURLY + OPEN_CURLY+"ANY"+SPACE+"ANY"+SPACE+"ANY"+CLOSE_CURLY
-				+ SPACE+UNION + OPEN_CURLY + SELECT + var("x") + SPACE + WHERE
-				+ OPEN_CURLY + uri("one") + SPACE + uri("two") + SPACE
-				+ quote("three") + presentStringType() + OPT_SPACE
-				+ CLOSE_CURLY + CLOSE_CURLY, str);
+		ElementUnion union = new ElementUnion();
+		ElementPathBlock epb = new ElementPathBlock();
+		union.addElement(epb);		
+		epb.addTriple( Triple.ANY );
+
+		Query subQuery = new Query();
+		ElementSubQuery esq = new ElementSubQuery(subQuery);
+		union.addElement( esq );
+		epb = new ElementPathBlock();
+		subQuery.setQuerySelectType();
+		subQuery.addProjectVars( Arrays.asList("x") );
+		subQuery.setQueryPattern(epb);
+		Triple t = new Triple( NodeFactory.createURI("one"), NodeFactory.createURI("two"), NodeFactory.createLiteral("three") );
+		epb.addTriple( t );
+		
+		WhereValidator visitor = new WhereValidator( union );
+		Query result = builder.build();
+		result.getQueryPattern().visit( visitor );
+		assertTrue( visitor.matching );
 
+		assertEquals( "uri", result.getPrefixMapping().getNsPrefixURI("pfx") );
 	}
 
 	@ContractTest
@@ -395,19 +444,26 @@ public class WhereClauseTest<T extends WhereClause<?>> extends
 	public void testSetVarsInFilter() throws ParseException {
 		WhereClause<?> whereClause = getProducer().newInstance();
 		AbstractQueryBuilder<?> builder = whereClause.addFilter("?one < ?v");
-		assertContainsRegex(WHERE + OPEN_CURLY + "FILTER" + OPT_SPACE
-				+ OPEN_PAREN + var("one") + OPT_SPACE + LT + OPT_SPACE
-				+ var("v") + CLOSE_PAREN + CLOSE_CURLY, builder.buildString());
-
-		builder.setVar(Var.alloc("v"), NodeFactory
-				.createLiteral(LiteralLabelFactory.createTypedLiteral(10)));
-
-		assertContainsRegex(WHERE + OPEN_CURLY + "FILTER" + OPT_SPACE
-				+ OPEN_PAREN + var("one") + OPT_SPACE + LT + OPT_SPACE
-				+ quote("10") + "\\^\\^"
-				+ uri("http://www.w3.org/2001/XMLSchema#int") + CLOSE_PAREN
-				+ CLOSE_CURLY, builder.buildString());
+	
+		ExprVar one = new  ExprVar( NodeFactory.createVariable("one"));
+		ExprVar v = new ExprVar( NodeFactory.createVariable("v"));
+		Expr expr = new E_LessThan( one, v );
+		ElementFilter filter = new ElementFilter(expr);
+		
+		WhereValidator visitor = new WhereValidator( filter );
+		builder.build().getQueryPattern().visit( visitor );
+		assertTrue( visitor.matching );
+		
+		Node literal = NodeFactory
+				.createLiteral(LiteralLabelFactory.createTypedLiteral(10));
+		builder.setVar(Var.alloc("v"), literal);
 
+		NodeValueInteger lit = new NodeValueInteger(10);
+		expr = new E_LessThan( one, lit );
+		filter = new ElementFilter(expr);
+		builder.build().getQueryPattern().visit( visitor );
+		assertTrue( visitor.matching );
+		
 	}
 
 	@ContractTest
@@ -416,16 +472,26 @@ public class WhereClauseTest<T extends WhereClause<?>> extends
 		WhereClause<?> whereClause = getProducer().newInstance();
 		AbstractQueryBuilder<?> builder = whereClause.addOptional(new Triple(
 				NodeFactory.createURI("one"), NodeFactory.createURI("two"), v));
-		assertContainsRegex(WHERE + OPEN_CURLY + "OPTIONAL" + SPACE
-				+ OPEN_CURLY + uri("one") + SPACE + uri("two") + SPACE
-				+ var("v") + OPT_SPACE + CLOSE_CURLY + CLOSE_CURLY,
-				builder.buildString());
-
+		
+		ElementPathBlock epb = new ElementPathBlock();
+		ElementOptional optional = new ElementOptional(epb);
+		TriplePath tp = new TriplePath( NodeFactory.createURI("one"), new P_Link(NodeFactory.createURI("two")), v );
+		epb.addTriple( tp );
+		
+		WhereValidator visitor = new WhereValidator( optional );
+		builder.build().getQueryPattern().visit( visitor );
+		assertTrue( visitor.matching );
+		
 		builder.setVar(v, NodeFactory.createURI("three"));
-		assertContainsRegex(WHERE + OPEN_CURLY + "OPTIONAL" + SPACE
-				+ OPEN_CURLY + uri("one") + SPACE + uri("two") + SPACE
-				+ uri("three") + OPT_SPACE + CLOSE_CURLY + CLOSE_CURLY,
-				builder.buildString());
+		
+		epb = new ElementPathBlock();
+		optional = new ElementOptional(epb);
+		Triple t = new Triple( NodeFactory.createURI("one"), NodeFactory.createURI("two"), NodeFactory.createURI("three") );
+		epb.addTriple( t );
+		
+		visitor = new WhereValidator( optional );
+		builder.build().getQueryPattern().visit( visitor );
+		assertTrue( visitor.matching );
 	}
 	
 	@ContractTest
@@ -466,16 +532,33 @@ public class WhereClauseTest<T extends WhereClause<?>> extends
 		SelectBuilder sb = new SelectBuilder();
 		sb.addPrefix("pfx", "uri").addWhere("<one>", "<two>", v);
 		WhereClause<?> whereClause = getProducer().newInstance();
-		AbstractQueryBuilder<?> builder = whereClause.addSubQuery(sb);
-
-		assertContainsRegex(WHERE + OPEN_CURLY + uri("one") + SPACE
-				+ uri("two") + SPACE + var("v") + CLOSE_CURLY,
-				builder.buildString());
+		AbstractQueryBuilder<?> builder = whereClause.addSubQuery(sb);		
+		
+		Query subQuery = new Query();
+		ElementSubQuery esq = new ElementSubQuery(subQuery);		
+		ElementPathBlock epb = new ElementPathBlock();
+		subQuery.setQueryPattern(epb);
+		Triple t = new Triple( NodeFactory.createURI("one"), NodeFactory.createURI("two"), NodeFactory.createVariable("v") );
+		epb.addTriple( t );
+		
+		WhereValidator visitor = new WhereValidator( esq );
+		Query result = builder.build();
+		result.getQueryPattern().visit( visitor );
+		assertTrue( visitor.matching );
 
 		builder.setVar(v, NodeFactory.createURI("three"));
-		assertContainsRegex(WHERE + OPEN_CURLY + uri("one") + SPACE
-				+ uri("two") + SPACE + uri("three") + CLOSE_CURLY,
-				builder.buildString());
+		
+		subQuery = new Query();
+		esq = new ElementSubQuery(subQuery);		
+		epb = new ElementPathBlock();
+		subQuery.setQueryPattern(epb);
+		t = new Triple( NodeFactory.createURI("one"), NodeFactory.createURI("two"), NodeFactory.createURI("three") );
+		epb.addTriple( t );
+		
+		visitor = new WhereValidator( esq );
+		result = builder.build();
+		result.getQueryPattern().visit( visitor );
+		assertTrue( visitor.matching );
 	}
 	
 	@ContractTest
@@ -485,15 +568,30 @@ public class WhereClauseTest<T extends WhereClause<?>> extends
 		sb.addPrefix("pfx", "uri").addWhere("<one>", "<two>", v);
 		WhereClause<?> whereClause = getProducer().newInstance();
 		AbstractQueryBuilder<?> builder = whereClause.addSubQuery(sb);
+		
+		Query subQuery = new Query();
+		ElementSubQuery esq = new ElementSubQuery(subQuery);		
+		ElementPathBlock epb = new ElementPathBlock();
+		subQuery.setQueryPattern(epb);
+		TriplePath tp = new TriplePath( NodeFactory.createURI("one"), new P_Link(NodeFactory.createURI("two")), NodeFactory.createVariable("v") );
+		epb.addTriple( tp );
 
-		assertContainsRegex(WHERE + OPEN_CURLY + uri("one") + SPACE
-				+ uri("two") + SPACE + var("v") + CLOSE_CURLY,
-				builder.buildString());
-
+		WhereValidator visitor = new WhereValidator( esq );
+		builder.build().getQueryPattern().visit( visitor );
+		assertTrue( visitor.matching );
+		
 		builder.setVar(v, NodeFactory.createURI("three"));
-		assertContainsRegex(WHERE + OPEN_CURLY + uri("one") + SPACE
-				+ uri("two") + SPACE + uri("three") + CLOSE_CURLY,
-				builder.buildString());
+		
+		subQuery = new Query();
+		esq = new ElementSubQuery(subQuery);		
+		epb = new ElementPathBlock();
+		subQuery.setQueryPattern(epb);
+		tp = new TriplePath( NodeFactory.createURI("one"), new P_Link(NodeFactory.createURI("two")), NodeFactory.createURI("three") );
+		epb.addTriple( tp );
+		
+		visitor = new WhereValidator( esq );
+		builder.build().getQueryPattern().visit( visitor );
+		assertTrue( visitor.matching );
 	}
 
 	@ContractTest