Check for web.xml
diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/AbstractTestAdditional.java b/jena-arq/src/test/java/org/apache/jena/sparql/AbstractTestAdditional.java
index 0ad7e29..6e558d8 100644
--- a/jena-arq/src/test/java/org/apache/jena/sparql/AbstractTestAdditional.java
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/AbstractTestAdditional.java
@@ -43,17 +43,21 @@
/** Check substitution into patterns. */
@Test public void substitute_1() {
Dataset dataset = dataset();
- String resultsStr = StrUtils.strjoinNL("(resultset (?s ?p ?o)"
- , "(row (?s :s1) (?p :p) (?o :o))"
- ,")" );
+ String resultsStr = """
+ (resultset (?s ?p ?o)
+ (row (?s :s1) (?p :p) (?o :o))
+ )
+ """;
RowSetRewindable expected = SSE.parseRowSet(resultsStr).rewindable();
Txn.executeWrite(dataset, ()->{
- String data = StrUtils.strjoinNL("(dataset"
- ," (:g1 :s1 :p :o)"
- ," (:g1 :s2 :p :o)"
- ," (:g2 :s1 :p :o)"
- ," (:g2 :s2 :p :o)"
- ,")");
+ String data = """
+ (dataset
+ (:g1 :s1 :p :o)
+ (:g1 :s2 :p :o)
+ (:g2 :s1 :p :o)
+ (:g2 :s2 :p :o)
+ )
+ """;
DatasetGraph dsg = SSE.parseDatasetGraph(data);
dataset.asDatasetGraph().addAll(dsg);
String qs = PREFIXES+"SELECT * { VALUES ?s { :s1 } GRAPH <"+Quad.unionGraph.getURI()+"> { ?s ?p ?o } }";
diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestConfigFile.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestConfigFile.java
index a1d524e..bb891b7 100644
--- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestConfigFile.java
+++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestConfigFile.java
@@ -25,7 +25,6 @@
import java.io.IOException;
import org.apache.jena.atlas.io.IO;
-import org.apache.jena.atlas.lib.StrUtils;
import org.apache.jena.atlas.web.TypedInputStream;
import org.apache.jena.base.Sys;
import org.apache.jena.graph.Graph;
@@ -42,13 +41,14 @@
private static final String DIR = "testing/Config/";
- private static final String PREFIXES = StrUtils.strjoinNL
- ("PREFIX afn: <http://jena.apache.org/ARQ/function#>"
- ,"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#>"
- , ""
- );
+ private static final String PREFIXES = """
+ PREFIX afn: <http://jena.apache.org/ARQ/function#>
+ 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#>
+
+ """;
+
private static RDFConnection namedServices(String baseURL) {
return RDFConnectionRemote.newBuilder()
diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/examples/ExFuseki_05_CustomFunction.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/examples/ExFuseki_05_CustomFunction.java
index a1d16d0..3b3134c 100644
--- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/examples/ExFuseki_05_CustomFunction.java
+++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/examples/ExFuseki_05_CustomFunction.java
@@ -18,7 +18,6 @@
package org.apache.jena.fuseki.main.examples;
-import org.apache.jena.atlas.lib.StrUtils;
import org.apache.jena.atlas.web.WebLib;
import org.apache.jena.fuseki.main.FusekiServer;
import org.apache.jena.fuseki.system.FusekiLogging;
@@ -69,12 +68,12 @@
server.start();
// -- Call the server
- String queryString = StrUtils.strjoinNL(
- "SELECT * { "
- , " VALUES ?Z { 123 'abc'}"
- , " BIND (<http://my/num>(?Z) AS ?X )"
- ,"}"
- );
+ String queryString = """
+ SELECT * {
+ VALUES ?Z { 123 'abc'}
+ BIND (<http://my/num>(?Z) AS ?X )
+ }
+ """;
try {
String url = "http://localhost:"+PORT+"/ds";
diff --git a/jena-fuseki2/jena-fuseki-webapp/src/main/java/org/apache/jena/fuseki/cmd/JettyFusekiWebapp.java b/jena-fuseki2/jena-fuseki-webapp/src/main/java/org/apache/jena/fuseki/cmd/JettyFusekiWebapp.java
index 825359e..02578d5 100644
--- a/jena-fuseki2/jena-fuseki-webapp/src/main/java/org/apache/jena/fuseki/cmd/JettyFusekiWebapp.java
+++ b/jena-fuseki2/jena-fuseki-webapp/src/main/java/org/apache/jena/fuseki/cmd/JettyFusekiWebapp.java
@@ -21,6 +21,8 @@
import static java.lang.String.format;
import static org.apache.jena.fuseki.Fuseki.serverLog;
+import java.nio.file.Path;
+
import jakarta.servlet.ServletContext;
import org.apache.jena.atlas.lib.DateTimeUtils;
import org.apache.jena.atlas.lib.FileOps;
@@ -183,9 +185,14 @@
throw new FusekiException("Failed to start");
}
- webapp.setDescriptor(baseResource+"/WEB-INF/web.xml");
+ String web_xml = baseResource+"/WEB-INF/web.xml";
+ if ( ! FileOps.exists(web_xml) )
+ Fuseki.serverLog.warn("Can't find WEB-INF/web.xml in "+baseResource);
+ webapp.setDescriptor(web_xml);
webapp.setContextPath(contextPath);
- webapp.getContext().getServletContextHandler().setBaseResourceAsString(baseResource);
+ // Avoid BaseResource aliasing warnings.
+ Path absBaseResource = Path.of(baseResource).toAbsolutePath();
+ webapp.getContext().getServletContextHandler().setBaseResourceAsPath(absBaseResource);
//-- Jetty setup for the ServletContext logger.
// The name of the Jetty-allocated slf4j/log4j logger is
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/lib/ShLib.java b/jena-shacl/src/main/java/org/apache/jena/shacl/lib/ShLib.java
index 117f77e..1df2840 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/lib/ShLib.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/lib/ShLib.java
@@ -150,18 +150,19 @@
String qs = StrUtils.strjoinNL
(PREFIXES
- ,"SELECT * {"
- //, " [ a sh:ValidationReport ; sh:result ?R ]
- , " [] sh:result ?R ."
- , " ?R"
- , " sh:focusNode ?focusNode ;"
- , " sh:resultMessage ?message ;"
- , " sh:resultSeverity ?severity ; "
- , " ."
- , " OPTIONAL { ?R sh:sourceConstraintComponent ?component }"
- , " OPTIONAL { ?R sh:sourceShape ?sourceShape }"
- , " OPTIONAL { ?R sh:resultPath ?path}"
- ,"}");
+ ,"""
+ SELECT * {
+ #[ a sh:ValidationReport ; sh:result ?R ]
+ [] sh:result ?R .
+ ?R sh:focusNode ?focusNode ;
+ sh:resultMessage ?message ;
+ sh:resultSeverity ?severity ;
+ .
+ OPTIONAL { ?R sh:sourceConstraintComponent ?component }
+ OPTIONAL { ?R sh:sourceShape ?sourceShape }
+ OPTIONAL { ?R sh:resultPath ?path}
+ }
+ """);
try ( QueryExecution qExec = QueryExecutionFactory.create(qs, report.getModel()) ) {
ResultSet rs = qExec.execSelect();
if ( ! rs.hasNext() ) {
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/validation/VR.java b/jena-shacl/src/main/java/org/apache/jena/shacl/validation/VR.java
index b1ce002..e130b07 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/validation/VR.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/validation/VR.java
@@ -107,38 +107,38 @@
private static String qs = StrUtils.strjoinNL
- (PREFIXES
- ,"CONSTRUCT {"
- , " ?X a sh:ValidationReport ;"
- , " sh:conforms ?conforms ;"
- , " sh:result ?R"
- , " ."
- , " ?R"
- , " sh:focusNode ?focusNode ;"
- , " sh:resultMessage ?message ;"
- , " sh:resultSeverity ?severity ; "
- , " sh:sourceConstraint ?constraint ;"
- , " sh:sourceConstraintComponent ?component ;"
- , " sh:sourceShape ?sourceShape ;"
- , " sh:resultPath ?path ;"
- , " sh:value ?value ;"
- , "."
- ,"}"
- ," WHERE {"
- , " ?X a sh:ValidationReport ;"
- , " sh:result ?R"
- , " OPTIONAL { ?X sh:conforms ?conforms }"
- , " ?R"
- , " sh:focusNode ?focusNode ;"
- , " sh:resultSeverity ?severity ; "
- , " ."
- , " OPTIONAL { ?R sh:resultMessage ?message }"
- , " OPTIONAL { ?R sh:sourceConstraintComponent ?component }"
- , " OPTIONAL { ?R sh:sourceConstraint ?constraint }"
- , " OPTIONAL { ?R sh:sourceShape ?sourceShape }"
- , " OPTIONAL { ?R sh:resultPath ?path }"
- , " OPTIONAL { ?R sh:value ?value }"
- ,"}");
+ (PREFIXES,
+ """
+ CONSTRUCT {
+ ?X a sh:ValidationReport ;
+ sh:conforms ?conforms ;
+ sh:result ?R
+ .
+ ?R sh:focusNode ?focusNode ;
+ sh:resultMessage ?message ;
+ sh:resultSeverity ?severity ;
+ sh:sourceConstraint ?constraint ;
+ sh:sourceConstraintComponent ?component ;
+ sh:sourceShape ?sourceShape ;
+ sh:resultPath ?path ;
+ sh:value ?value ;
+ .
+ }
+ WHERE {
+ ?X a sh:ValidationReport ;
+ sh:result ?R
+ OPTIONAL { ?X sh:conforms ?conforms }
+ ?R sh:focusNode ?focusNode ;
+ sh:resultSeverity ?severity ;
+ .
+ OPTIONAL { ?R sh:resultMessage ?message }
+ OPTIONAL { ?R sh:sourceConstraintComponent ?component }
+ OPTIONAL { ?R sh:sourceConstraint ?constraint }
+ OPTIONAL { ?R sh:sourceShape ?sourceShape }
+ OPTIONAL { ?R sh:resultPath ?path }
+ OPTIONAL { ?R sh:value ?value }
+ }
+ """);
private static Query query = QueryFactory.create(qs);
public static Model strip(Model model) {