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/08/20 07:39:00 UTC
[01/19] jena git commit: Provision for custom parameters so request
validation does not WARN.
Repository: jena
Updated Branches:
refs/heads/master 09994d2e2 -> 0cb4374e4
Provision for custom parameters so request validation does not WARN.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/8206b7c6
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/8206b7c6
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/8206b7c6
Branch: refs/heads/master
Commit: 8206b7c6cd57868a6aba4021647c10b221986cc1
Parents: 833cdb6
Author: Andy Seaborne <an...@apache.org>
Authored: Wed Aug 15 16:55:53 2018 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Wed Aug 15 21:34:46 2018 +0100
----------------------------------------------------------------------
.../jena/fuseki/servlets/SPARQL_Query.java | 61 +++++++++++++++++---
1 file changed, 54 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/8206b7c6/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java
index bb81696..6c9e5b4 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java
@@ -94,12 +94,28 @@ public abstract class SPARQL_Query extends SPARQL_Protocol
doOptions(action.request, action.response) ;
}
- // All the params we support
-
- protected static List<String> allParams = Arrays.asList(paramQuery, paramDefaultGraphURI, paramNamedGraphURI,
- paramQueryRef, paramStyleSheet, paramAccept, paramOutput1,
- paramOutput2, paramCallback, paramForceAccept, paramTimeout) ;
-
+ /** All the query parameters that are acceptable in a given request.
+ * This is comprised of, by default,
+ * <ul>
+ * <li>SPARQL Protocol for query ({@link #stdParams()}) as mentioned in the spec.
+ * <li>Fuseki parameters ({@link #fusekiParams()}) e.g. timeout and formatting
+ * <li>Any custom parameter for this particular servlet ({@link #customParams()}, usually none.
+ * </ul>
+ * The default implementation calculates this list of parameters once (on first use).
+ */
+ private Set<String> acceptedParams_ = null;
+ protected Collection<String> acceptedParams(HttpAction action) {
+ if ( acceptedParams_ == null ) {
+ synchronized(this) {
+ if ( acceptedParams_ == null )
+ // Does not matter about race condition here because the same Set should be
+ // created on any call to generateAcceptedParams.
+ acceptedParams_ = generateAcceptedParams();
+ }
+ }
+ return acceptedParams_;
+ }
+
/**
* Validate the request, checking HTTP method and HTTP Parameters.
* @param action HTTP Action
@@ -121,7 +137,8 @@ public abstract class SPARQL_Query extends SPARQL_Protocol
// Use of the dataset describing parameters is check later.
try {
- validateParams(action, allParams) ;
+ Collection<String> x = acceptedParams(action);
+ validateParams(action, x) ;
validateRequest(action) ;
} catch (ActionErrorException ex) {
throw ex ;
@@ -437,4 +454,34 @@ public abstract class SPARQL_Query extends SPARQL_Protocol
return HttpOp.execHttpGetString(queryURI) ;
}
+ // ---- Query parameters for validation
+ /**
+ * Create the set of all parameters passed by validation.
+ * This is called once only.
+ * Override {@link acceptedParams} for a full dynamic choice.
+ */
+ protected Set<String> generateAcceptedParams() {
+ Set<String> x = new HashSet<>();
+ x.addAll(stdParams());
+ x.addAll(fusekiParams());
+ x.addAll(customParams());
+ return x;
+ }
+
+ private static Collection<String> customParams_ = Collections.emptyList();
+ /** Extension parameters : called once during parameter collection setup. */
+ protected Collection<String> customParams() {
+ return customParams_;
+ }
+
+ /** The parameters in the SPARQL Protocol for query */
+ private static Collection<String> stdParams_ = Arrays.asList(paramQuery, paramDefaultGraphURI, paramNamedGraphURI);
+
+ protected Collection<String> stdParams() { return stdParams_; }
+
+ /** The parameters Fuseki also provides */
+ private static Collection<String> fusekiParams_ = Arrays.asList(paramQueryRef, paramStyleSheet, paramAccept, paramOutput1,
+ paramOutput2, paramCallback, paramForceAccept, paramTimeout) ;
+
+ protected Collection<String> fusekiParams() { return fusekiParams_; }
}
[15/19] jena git commit: Typos
Posted by an...@apache.org.
Typos
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/3b153d52
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/3b153d52
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/3b153d52
Branch: refs/heads/master
Commit: 3b153d526d18626e6ad3ea4414d1dc8f138213ba
Parents: 9dace24
Author: Andy Seaborne <an...@apache.org>
Authored: Thu Aug 16 23:22:07 2018 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu Aug 16 23:22:07 2018 +0100
----------------------------------------------------------------------
jena-arq/src/main/java/org/apache/jena/sparql/core/Quad.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/3b153d52/jena-arq/src/main/java/org/apache/jena/sparql/core/Quad.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/Quad.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/Quad.java
index dbe6c50..21ffe8e 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/Quad.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/Quad.java
@@ -33,7 +33,7 @@ public class Quad implements Serializable
{
// Create QuadNames? GraphNames?
- /** Name of the default for explict use in GRAPH */
+ /** Name of the default for explicit use in GRAPH */
public static final Node defaultGraphIRI = NodeFactory.createURI("urn:x-arq:DefaultGraph") ;
/** Name of the default graph as used by parsers and in quad form of algebra.
@@ -231,7 +231,7 @@ public class Quad implements Serializable
private static boolean nodeMatches(Node thisNode, Node otherNode)
{
- // otheNode may be Node.ANY, and this works out.
+ // otherNode may be Node.ANY, and this works out.
return otherNode.matches(thisNode) ;
}
[03/19] jena git commit: Typos and comments.
Posted by an...@apache.org.
Typos and comments.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/8d0c1310
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/8d0c1310
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/8d0c1310
Branch: refs/heads/master
Commit: 8d0c1310a89c115553889208c97cbdfdfb1958b2
Parents: 09994d2
Author: Andy Seaborne <an...@apache.org>
Authored: Tue Aug 14 13:02:38 2018 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Wed Aug 15 21:34:46 2018 +0100
----------------------------------------------------------------------
.../org/apache/jena/riot/RDFParserBuilder.java | 2 +-
.../jena/fuseki/servlets/ActionService.java | 3 ++-
.../apache/jena/fuseki/servlets/SPARQL_Query.java | 18 +++++++++++++++---
.../fuseki/servlets/ServiceDispatchRegistry.java | 17 ++++++++++++++---
.../jena/fuseki/servlets/ServiceRouter.java | 18 +++++++++++-------
.../apache/jena/fuseki/embedded/FusekiServer.java | 2 +-
6 files changed, 44 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/8d0c1310/jena-arq/src/main/java/org/apache/jena/riot/RDFParserBuilder.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/RDFParserBuilder.java b/jena-arq/src/main/java/org/apache/jena/riot/RDFParserBuilder.java
index 8b59be5..b0a9015 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/RDFParserBuilder.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/RDFParserBuilder.java
@@ -278,7 +278,7 @@ public class RDFParserBuilder {
public RDFParserBuilder base(String base) { this.baseUri = base ; return this; }
/** Choose whether to resolve URIs.<br/>
- * This does not affect all langages: N-Triples and N-Quads never resolve URIs.<br/>
+ * This does not affect all languages: N-Triples and N-Quads never resolve URIs.<br/>
* Relative URIs are bad data.<br/>
* Only set this to false for debugging and development purposes.
*/
http://git-wip-us.apache.org/repos/asf/jena/blob/8d0c1310/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ActionService.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ActionService.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ActionService.java
index 79cc236..a22b097 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ActionService.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ActionService.java
@@ -100,7 +100,8 @@ public abstract class ActionService extends ActionBase {
// Overridden by the ServiceRouter.
protected Operation chooseOperation(HttpAction action, DataService dataService, String serviceName) {
// This default implementation is plain service name to operation based on the
- // DataService as would be used by operation servlets bound by web.xml.
+ // DataService as would be used by operation servlets bound by web.xml
+ // except Fuseki can add and delete mapping while running.
Endpoint ep = dataService.getEndpoint(serviceName);
Operation operation = ep.getOperation();
return operation;
http://git-wip-us.apache.org/repos/asf/jena/blob/8d0c1310/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java
index d88a51c..bb81696 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java
@@ -267,7 +267,7 @@ public abstract class SPARQL_Query extends SPARQL_Protocol
try {
action.beginRead() ;
Dataset dataset = decideDataset(action, query, queryStringLog) ;
- try ( QueryExecution qExec = createQueryExecution(query, dataset) ; ) {
+ try ( QueryExecution qExec = createQueryExecution(action, query, dataset) ; ) {
SPARQLResult result = executeQuery(action, qExec, query, queryStringLog) ;
// Deals with exceptions itself.
sendResults(action, result, query.getPrologue()) ;
@@ -285,8 +285,8 @@ public abstract class SPARQL_Query extends SPARQL_Protocol
}
/**
- * Check the query - if unacceptable, throw ActionErrorException or call
- * super.error
+ * Check the query - if unacceptable, throw ActionErrorException
+ * or call on of the {@link ServletOps#error} operations.
* @param action HTTP Action
* @param query SPARQL Query
*/
@@ -296,11 +296,23 @@ public abstract class SPARQL_Query extends SPARQL_Protocol
* @param query
* @param dataset
* @return QueryExecution
+ * @deprecated Use {@link #createQueryExecution(HttpAction, Query, Dataset)}
*/
+ @Deprecated
protected QueryExecution createQueryExecution(Query query, Dataset dataset) {
return QueryExecutionFactory.create(query, dataset) ;
}
+ /** Create the {@link QueryExecution} for this operation.
+ * @param action
+ * @param query
+ * @param dataset
+ * @return QueryExecution
+ */
+ protected QueryExecution createQueryExecution(HttpAction action, Query query, Dataset dataset) {
+ return createQueryExecution(query, dataset);
+ }
+
/** Perform the {@link QueryExecution} once.
* @param action
* @param queryExecution
http://git-wip-us.apache.org/repos/asf/jena/blob/8d0c1310/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ServiceDispatchRegistry.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ServiceDispatchRegistry.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ServiceDispatchRegistry.java
index cc45de4..bbc1eb5 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ServiceDispatchRegistry.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ServiceDispatchRegistry.java
@@ -29,8 +29,14 @@ import org.apache.jena.fuseki.server.DataService;
import org.apache.jena.fuseki.server.Operation;
import org.apache.jena.riot.WebContent;
-/**
- * The global mapping of content-type to Operation and operation to implementation.
+/**
+ * Mapping of dispatching operations. {@link Operation} is the operation reference (name)
+ * but the {@link Operation} does not carry the implementation. The registry, which is
+ * per-server, maps:
+ * <ul>
+ * <li>Content-type to {@code Operation}.
+ * <li>{@code Operation} to {@link ActionService} implementation
+ * </ul>
*/
public class ServiceDispatchRegistry {
@@ -94,13 +100,18 @@ public class ServiceDispatchRegistry {
* Register a new {@link Operation}, with its {@code Content-Type} (may be null,
* meaning no dispatch by content type), and the implementation handler.
* <p>
- * The application needs to enable an operation on a service endpoint.
+ * The application needs to enable an operation on a service endpoint.
+ * <p>
+ * Replaces any existing registration.
*/
public void register(Operation operation, String contentType, ActionService action) {
Objects.requireNonNull(operation);
Objects.requireNonNull(action);
if ( contentType != null )
contentTypeToOperation.put(contentType, operation);
+ else
+ // Remove any mapping.
+ contentTypeToOperation.values().remove(operation);
operationToHandler.put(operation, action);
}
http://git-wip-us.apache.org/repos/asf/jena/blob/8d0c1310/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ServiceRouter.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ServiceRouter.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ServiceRouter.java
index 59a5b5c..c54a69b 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ServiceRouter.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ServiceRouter.java
@@ -42,7 +42,7 @@ import org.apache.jena.riot.web.HttpNames;
* for operations by service endpoint.
* <p>
* Normal use is to route all service operations to this servlet via {@link ActionService}.
- * It will route for operations on the dataset and the
+ * It will route for operations on the dataset.
* <p>
* It be attached to a dataset location and acts as a router for all SPARQL operations
* (query, update, graph store, both direct and indirect naming, quads operations on a
@@ -120,10 +120,12 @@ public abstract class ServiceRouter extends ActionService {
return isEnabled(action, Operation.Quads_RW);
}
- // Test whether there is a configuration that allows this action as the operation
- // given.
- // Ignores the operation in the action (set due to parsing - it might be "quads"
- // which is the generic operation when just the dataset is specificed.
+ /**
+ * Test whether there is a configuration that allows this action as the operation
+ * given. Ignores the operation in the action which is set due to parsing - it
+ * might be "quads" which is the generic operation when just the dataset is
+ * specificed.
+ */
private boolean isEnabled(HttpAction action, Operation operation) {
// Disregard the operation name of the action
DataService dSrv = action.getDataService();
@@ -137,7 +139,10 @@ public abstract class ServiceRouter extends ActionService {
super();
}
- // These calls should not happen because we hook in at executeAction
+ // These calls should not happen because ActionService calls chooseOperation(),
+ // looks that up in the ServiceDispatchRegistry for the servlet context,
+ // then calls executeLifecycle() on that servlet.
+ // These exceptions catch any loops.
@Override
protected void validate(HttpAction action) {
throw new FusekiException("Call to ServiceRouterServlet.validate");
@@ -201,7 +206,6 @@ public abstract class ServiceRouter extends ActionService {
* <li>HTTP params (for ?query= and ?update=)</li>
* <li>Content type</li>
* </ul>
- *
*/
@Override
protected Operation chooseOperation(HttpAction action, DataService dataService) {
http://git-wip-us.apache.org/repos/asf/jena/blob/8d0c1310/jena-fuseki2/jena-fuseki-embedded/src/main/java/org/apache/jena/fuseki/embedded/FusekiServer.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-embedded/src/main/java/org/apache/jena/fuseki/embedded/FusekiServer.java b/jena-fuseki2/jena-fuseki-embedded/src/main/java/org/apache/jena/fuseki/embedded/FusekiServer.java
index 09a9a79..2df22e7 100644
--- a/jena-fuseki2/jena-fuseki-embedded/src/main/java/org/apache/jena/fuseki/embedded/FusekiServer.java
+++ b/jena-fuseki2/jena-fuseki-embedded/src/main/java/org/apache/jena/fuseki/embedded/FusekiServer.java
@@ -351,7 +351,7 @@ public class FusekiServer {
/**
* Add an operation to the server, together with its triggering Content-Type (may be null) and servlet handler.
* <p>
- * To associate an operation with a daatsets, call {@link #addOperation} after adding the dataset.
+ * To associate an operation with a dataset, call {@link #addOperation} after adding the dataset.
*
* @see #addOperation
*/
[11/19] jena git commit: Support for ServletFilters.
Posted by an...@apache.org.
Support for ServletFilters.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/99180e58
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/99180e58
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/99180e58
Branch: refs/heads/master
Commit: 99180e5831bb8d0ff94c0e98fd3a375f02c20af5
Parents: f6bac07
Author: Andy Seaborne <an...@apache.org>
Authored: Thu Aug 16 16:11:59 2018 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu Aug 16 16:11:59 2018 +0100
----------------------------------------------------------------------
.../jena/fuseki/embedded/FusekiServer.java | 33 +++++++++++++++-----
1 file changed, 26 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/99180e58/jena-fuseki2/jena-fuseki-embedded/src/main/java/org/apache/jena/fuseki/embedded/FusekiServer.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-embedded/src/main/java/org/apache/jena/fuseki/embedded/FusekiServer.java b/jena-fuseki2/jena-fuseki-embedded/src/main/java/org/apache/jena/fuseki/embedded/FusekiServer.java
index 94f4c20..9d68be0 100644
--- a/jena-fuseki2/jena-fuseki-embedded/src/main/java/org/apache/jena/fuseki/embedded/FusekiServer.java
+++ b/jena-fuseki2/jena-fuseki-embedded/src/main/java/org/apache/jena/fuseki/embedded/FusekiServer.java
@@ -22,6 +22,7 @@ import static java.util.Objects.requireNonNull;
import java.util.*;
+import javax.servlet.Filter;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServlet;
@@ -178,7 +179,9 @@ public class FusekiServer {
private boolean withStats = false;
private boolean withPing = false;
// Other servlets to add.
- private List<Pair<String, HttpServlet>> other = new ArrayList<>();
+ private List<Pair<String, HttpServlet>> servlets = new ArrayList<>();
+ private List<Pair<String, Filter>> filters = new ArrayList<>();
+
private String contextPath = "/";
private String staticContentDir = null;
private SecurityHandler securityHandler = null;
@@ -377,7 +380,7 @@ public class FusekiServer {
public Builder addServlet(String pathSpec, HttpServlet servlet) {
requireNonNull(pathSpec, "pathSpec");
requireNonNull(servlet, "servlet");
- other.add(Pair.create(pathSpec, servlet));
+ servlets.add(Pair.create(pathSpec, servlet));
return this;
}
@@ -395,6 +398,16 @@ public class FusekiServer {
}
/**
+ * Add a filter with the pathSpec.
+ */
+ public Builder addFilter(String pathSpec, Filter filter) {
+ requireNonNull(pathSpec, "pathSpec");
+ requireNonNull(filter, "filter");
+ filters.add(Pair.create(pathSpec, filter));
+ return this;
+ }
+
+ /**
* Add an operation and handler to the server. This does not enable it for any dataset.
* <p>
* To associate an operation with a dataset, call {@link #addOperation} after adding the dataset.
@@ -514,17 +527,18 @@ public class FusekiServer {
private void servlets(ServletContextHandler context) {
// Fuseki dataset services filter
+ // This goes as the filter at the end of any filter chaining.
FusekiFilter ff = new FusekiFilter();
- FilterHolder h = new FilterHolder(ff);
- context.addFilter(h, "/*", null);
-
- other.forEach(p->addServlet(context, p.getLeft(), p.getRight()));
+ addFilter(context, "/*", ff);
if ( withStats )
addServlet(context, "/$/stats", new ActionStats());
if ( withPing )
addServlet(context, "/$/ping", new ActionPing());
+ servlets.forEach(p->addServlet(context, p.getLeft(), p.getRight()));
+ filters.forEach (p-> addFilter(context, p.getLeft(), p.getRight()));
+
if ( staticContentDir != null ) {
DefaultServlet staticServlet = new DefaultServlet();
ServletHolder staticContent = new ServletHolder(staticServlet);
@@ -532,12 +546,17 @@ public class FusekiServer {
context.addServlet(staticContent, "/");
}
}
-
+
private static void addServlet(ServletContextHandler context, String pathspec, HttpServlet httpServlet) {
ServletHolder sh = new ServletHolder(httpServlet);
context.addServlet(sh, pathspec);
}
+ private void addFilter(ServletContextHandler context, String pathspec, Filter filter) {
+ FilterHolder h = new FilterHolder(filter);
+ context.addFilter(h, pathspec, null);
+ }
+
/** Jetty server */
private static Server jettyServer(int port, boolean loopback) {
Server server = new Server();
[14/19] jena git commit: Better attribute naming -
org.apache.jena.fuseki:
Posted by an...@apache.org.
Better attribute naming - org.apache.jena.fuseki:<name>
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/9dace245
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/9dace245
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/9dace245
Branch: refs/heads/master
Commit: 9dace245d39a7c1a977fa34e423502c5ed39afe9
Parents: aa3518e
Author: Andy Seaborne <an...@apache.org>
Authored: Thu Aug 16 23:21:49 2018 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu Aug 16 23:21:49 2018 +0100
----------------------------------------------------------------------
.../src/main/java/org/apache/jena/fuseki/Fuseki.java | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/9dace245/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/Fuseki.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/Fuseki.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/Fuseki.java
index 2b82a06..ec1126a 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/Fuseki.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/Fuseki.java
@@ -186,10 +186,10 @@ public class Fuseki {
// Servlet context attribute names,
- public static final String attrVerbose = "jena-fuseki:verbose";
- public static final String attrNameRegistry = "jena-fuseki:dataAccessPointRegistry";
- public static final String attrServiceRegistry = "jena-fuseki:ServiceDispatchRegistry";
- public static final String attrSecurityContextRegistry = "jena-fuseki:SecurityContextRegistry";
+ public static final String attrVerbose = "org.apache.jena.fuseki:verbose";
+ public static final String attrNameRegistry = "org.apache.jena.fuseki:DataAccessPointRegistry";
+ public static final String attrServiceRegistry = "org.apache.jena.fuseki:ServiceDispatchRegistry";
+ public static final String attrSecurityRegistry = "org.apache.jena.fuseki:SecurityRegistry";
public static void setVerbose(ServletContext cxt, boolean verbose) {
cxt.setAttribute(attrVerbose, Boolean.valueOf(verbose));
[09/19] jena git commit: Put attribute names constants in Fuseki.
Posted by an...@apache.org.
Put attribute names constants in Fuseki.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/21050fc9
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/21050fc9
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/21050fc9
Branch: refs/heads/master
Commit: 21050fc9300cc29eda22744c35466aae9f5b01c0
Parents: cb6d9b5
Author: Andy Seaborne <an...@apache.org>
Authored: Thu Aug 16 12:03:08 2018 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu Aug 16 12:03:08 2018 +0100
----------------------------------------------------------------------
.../src/main/java/org/apache/jena/fuseki/Fuseki.java | 8 ++++++--
.../apache/jena/fuseki/server/DataAccessPointRegistry.java | 6 +++---
.../apache/jena/fuseki/servlets/ServiceDispatchRegistry.java | 7 +++----
3 files changed, 12 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/21050fc9/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/Fuseki.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/Fuseki.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/Fuseki.java
index 0f1cf17..2b82a06 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/Fuseki.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/Fuseki.java
@@ -184,8 +184,12 @@ public class Fuseki {
*/
public static boolean verboseLogging = false ;
- /** ServletContext attibute for "verbose" - the value of the attirbiye is a Boolean */
- public static String attrVerbose = "jena-fuseki:verbose" ;
+ // Servlet context attribute names,
+
+ public static final String attrVerbose = "jena-fuseki:verbose";
+ public static final String attrNameRegistry = "jena-fuseki:dataAccessPointRegistry";
+ public static final String attrServiceRegistry = "jena-fuseki:ServiceDispatchRegistry";
+ public static final String attrSecurityContextRegistry = "jena-fuseki:SecurityContextRegistry";
public static void setVerbose(ServletContext cxt, boolean verbose) {
cxt.setAttribute(attrVerbose, Boolean.valueOf(verbose));
http://git-wip-us.apache.org/repos/asf/jena/blob/21050fc9/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/DataAccessPointRegistry.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/DataAccessPointRegistry.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/DataAccessPointRegistry.java
index 5097cf0..9d16b84 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/DataAccessPointRegistry.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/DataAccessPointRegistry.java
@@ -22,6 +22,7 @@ import javax.servlet.ServletContext ;
import org.apache.jena.atlas.lib.Registry ;
import org.apache.jena.atlas.logging.Log ;
+import org.apache.jena.fuseki.Fuseki;
import org.apache.jena.fuseki.FusekiException ;
public class DataAccessPointRegistry extends Registry<String, DataAccessPoint>
@@ -57,15 +58,14 @@ public class DataAccessPointRegistry extends Registry<String, DataAccessPoint>
// The server DataAccessPointRegistry is held in the ServletContext for the server.
- private static final String attrNameRegistry = "jena-fuseki:dataAccessPointRegistry" ;
public static DataAccessPointRegistry get(ServletContext cxt) {
- DataAccessPointRegistry registry = (DataAccessPointRegistry)cxt.getAttribute(attrNameRegistry) ;
+ DataAccessPointRegistry registry = (DataAccessPointRegistry)cxt.getAttribute(Fuseki.attrNameRegistry) ;
if ( registry == null )
Log.warn(DataAccessPointRegistry.class, "No data access point registry for ServletContext") ;
return registry ;
}
public static void set(ServletContext cxt, DataAccessPointRegistry registry) {
- cxt.setAttribute(attrNameRegistry, registry) ;
+ cxt.setAttribute(Fuseki.attrNameRegistry, registry) ;
}
}
http://git-wip-us.apache.org/repos/asf/jena/blob/21050fc9/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ServiceDispatchRegistry.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ServiceDispatchRegistry.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ServiceDispatchRegistry.java
index bbc1eb5..198eb5c 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ServiceDispatchRegistry.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ServiceDispatchRegistry.java
@@ -25,6 +25,7 @@ import java.util.concurrent.ConcurrentHashMap;
import javax.servlet.ServletContext;
import org.apache.jena.atlas.logging.Log;
+import org.apache.jena.fuseki.Fuseki;
import org.apache.jena.fuseki.server.DataService;
import org.apache.jena.fuseki.server.Operation;
import org.apache.jena.riot.WebContent;
@@ -117,16 +118,14 @@ public class ServiceDispatchRegistry {
// The server DataAccessPointRegistry is held in the ServletContext for the server.
- private static final String attrServiceRegistry = "jena-fuseki:ServiceDispatchRegistry" ;
-
public static ServiceDispatchRegistry get(ServletContext servletContext) {
- ServiceDispatchRegistry registry = (ServiceDispatchRegistry)servletContext.getAttribute(attrServiceRegistry) ;
+ ServiceDispatchRegistry registry = (ServiceDispatchRegistry)servletContext.getAttribute(Fuseki.attrServiceRegistry) ;
if ( registry == null )
Log.warn(ServiceDispatchRegistry.class, "No service registry for ServletContext") ;
return registry ;
}
public static void set(ServletContext cxt, ServiceDispatchRegistry registry) {
- cxt.setAttribute(attrServiceRegistry, registry) ;
+ cxt.setAttribute(Fuseki.attrServiceRegistry, registry) ;
}
}
[07/19] jena git commit: Convert to single format.
Posted by an...@apache.org.
Convert to single format.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/caf572a1
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/caf572a1
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/caf572a1
Branch: refs/heads/master
Commit: caf572a1081bb4ab84337c7553ff0181a5052c8b
Parents: 8206b7c
Author: Andy Seaborne <an...@apache.org>
Authored: Thu Aug 16 09:56:25 2018 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu Aug 16 09:56:25 2018 +0100
----------------------------------------------------------------------
.../org/apache/jena/atlas/lib/ListUtils.java | 110 +++++++++----------
1 file changed, 49 insertions(+), 61 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/caf572a1/jena-base/src/main/java/org/apache/jena/atlas/lib/ListUtils.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/ListUtils.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/ListUtils.java
index 272fb28..eead5ec 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/ListUtils.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/ListUtils.java
@@ -34,49 +34,40 @@ public class ListUtils
{
private ListUtils() {}
- public static <T>
- List<T> unique(List<T> list)
- {
- return toList(list.stream().distinct()) ;
+ public static <T> List<T> unique(List<T> list) {
+ return toList(list.stream().distinct());
}
-
- public static
- List<Integer> asList(int... values)
- {
- List<Integer> x = new ArrayList<>(values.length) ;
+
+ public static List<Integer> asList(int...values) {
+ List<Integer> x = new ArrayList<>(values.length);
for ( int v : values )
- x.add(v) ;
- return x ;
+ x.add(v);
+ return x;
}
-
+
// This is commonly needed
public static <T> List<T> toList(Stream<T> stream) {
return stream.collect(Collectors.toList()) ;
}
- public static <T> String str(T[] array)
- {
+ public static <T> String str(T[] array) {
return stream(array).map(String::valueOf).collect(joining(", ", "[", "]"));
}
-
- public static String str(int[] array)
- {
- return stream(array).mapToObj(String::valueOf).collect(joining(", ", "[", "]"));
+
+ public static String str(int[] array) {
+ return stream(array).mapToObj(String::valueOf).collect(joining(", ", "[", "]"));
}
-
- public static String str(long[] array)
- {
- return stream(array).mapToObj(String::valueOf).collect(joining(", ", "[", "]"));
+
+ public static String str(long[] array) {
+ return stream(array).mapToObj(String::valueOf).collect(joining(", ", "[", "]"));
}
- public static <T> void print(IndentedWriter out, List<T> list)
- {
- print(out, list, " ") ;
+ public static <T> void print(IndentedWriter out, List<T> list) {
+ print(out, list, " ");
}
-
- public static <T> void print(final IndentedWriter out, List<T> list, final CharSequence sep)
- {
- out.print(list.stream().map(String::valueOf).collect(joining(sep)));
+
+ public static <T> void print(final IndentedWriter out, List<T> list, final CharSequence sep) {
+ out.print(list.stream().map(String::valueOf).collect(joining(sep)));
}
/**
@@ -85,49 +76,46 @@ public class ListUtils
*/
public static <T> boolean equalsUnordered(List<T> list1, List<T> list2) {
if ( list1.size() != list2.size() )
- return false ;
+ return false;
// containsAll bothe ways round isn't enough.
- List<T> list2a = new ArrayList<>(list2) ;
+ List<T> list2a = new ArrayList<>(list2);
for ( T elt : list1 )
- list2a.remove(elt) ;
+ list2a.remove(elt);
if ( list2a.size() != 0 )
- return false ;
- return true ;
+ return false;
+ return true;
}
- /** Return a list of lists of all the elements of collection in every order
- * Easy to run out of heap memory.
- *
- * See also {@code org.apache.jena.ext.com.google.common.collect.Collections2#permutations}
- */
- static public <T> List<List<T>> permute(List<T> c)
- {
- if ( c.size() > 5 )
- {
- Log.warn(ListUtils.class, "Attempt to permute more than 5 items - think again") ;
- return null ;
+ /**
+ * Return a list of lists of all the elements of collection in every order Easy to run
+ * out of heap memory.
+ *
+ * See also
+ * {@code org.apache.jena.ext.com.google.common.collect.Collections2#permutations}
+ */
+ static public <T> List<List<T>> permute(List<T> c) {
+ if ( c.size() > 5 ) {
+ Log.warn(ListUtils.class, "Attempt to permute more than 5 items - think again");
+ return null;
}
-
- List<List<T>> x = new ArrayList<>() ;
- if ( c.size() == 1 )
- {
- x.add(c) ;
- return x ;
+
+ List<List<T>> x = new ArrayList<>();
+ if ( c.size() == 1 ) {
+ x.add(c);
+ return x;
}
- for ( T obj : c )
- {
- List<T> c2 = new ArrayList<>(c) ;
- c2.remove(obj) ;
- List<List<T>> x2 = permute(c2) ;
+ for ( T obj : c ) {
+ List<T> c2 = new ArrayList<>(c);
+ c2.remove(obj);
+ List<List<T>> x2 = permute(c2);
// For each list returned
- for ( List<T> x3 : x2 )
- {
+ for ( List<T> x3 : x2 ) {
// Gives a more expected ordering
- x3.add(0,obj) ;
- x.add(x3) ;
+ x3.add(0, obj);
+ x.add(x3);
}
}
- return x ;
+ return x;
}
}
[17/19] jena git commit: Refactoring: Make ServletContext separately
from the Jetty server.
Posted by an...@apache.org.
Refactoring: Make ServletContext separately from the Jetty server.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/2cd26a8e
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/2cd26a8e
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/2cd26a8e
Branch: refs/heads/master
Commit: 2cd26a8e462a3c03e024c5c34ac3b5432b7cb4c8
Parents: 08ef457
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Aug 17 23:45:36 2018 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Aug 17 23:46:37 2018 +0100
----------------------------------------------------------------------
.../jena/fuseki/embedded/FusekiServer.java | 29 +++++++++++---------
1 file changed, 16 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/2cd26a8e/jena-fuseki2/jena-fuseki-embedded/src/main/java/org/apache/jena/fuseki/embedded/FusekiServer.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-embedded/src/main/java/org/apache/jena/fuseki/embedded/FusekiServer.java b/jena-fuseki2/jena-fuseki-embedded/src/main/java/org/apache/jena/fuseki/embedded/FusekiServer.java
index 3c84fd3..2406e33 100644
--- a/jena-fuseki2/jena-fuseki-embedded/src/main/java/org/apache/jena/fuseki/embedded/FusekiServer.java
+++ b/jena-fuseki2/jena-fuseki-embedded/src/main/java/org/apache/jena/fuseki/embedded/FusekiServer.java
@@ -468,27 +468,30 @@ public class FusekiServer {
* Build a server according to the current description.
*/
public FusekiServer build() {
- ServletContextHandler handler = buildServletContext(contextPath);
+ ServletContextHandler handler = buildFusekiContext();
+ // Use HandlerCollection for several ServletContextHandlers and thus several ServletContext.
+ Server server = jettyServer(port, loopback);
+ server.setHandler(handler);
+ return new FusekiServer(port, server);
+ }
+ /** Build one configured Fuseki in one unit - same ServletContext, same dispatch ContextPath */
+ private ServletContextHandler buildFusekiContext() {
+ ServletContextHandler handler = buildServletContext(contextPath);
ServletContext cxt = handler.getServletContext();
Fuseki.setVerbose(cxt, verbose);
servletAttr.forEach((n,v)->cxt.setAttribute(n, v));
// Clone to isolate from any future changes.
ServiceDispatchRegistry.set(cxt, new ServiceDispatchRegistry(serviceDispatch));
DataAccessPointRegistry.set(cxt, new DataAccessPointRegistry(dataAccessPoints));
-
- // Start services.
- DataAccessPointRegistry.get(cxt).forEach((name, dap)->dap.getDataService().goActive());
-
setMimeTypes(handler);
servlets(handler);
-
- Server server = jettyServer(port, loopback);
- server.setHandler(handler);
- return new FusekiServer(port, server);
+ // Start services.
+ DataAccessPointRegistry.get(cxt).forEach((name, dap)->dap.getDataService().goActive());
+ return handler;
}
-
- /** Build a ServletContextHandler with the Fuseki router : {@link FusekiFilter} */
+
+ /** Build a ServletContextHandler */
private ServletContextHandler buildServletContext(String contextPath) {
if ( contextPath == null || contextPath.isEmpty() )
contextPath = "/";
@@ -500,7 +503,6 @@ public class FusekiServer {
context.setContextPath(contextPath);
if ( securityHandler != null )
context.setSecurityHandler(securityHandler);
-
return context;
}
@@ -533,6 +535,7 @@ public class FusekiServer {
context.setMimeTypes(mimeTypes);
}
+ /** Add servlets and servlet filters, including the {@link FusekiFilter} */
private void servlets(ServletContextHandler context) {
// Fuseki dataset services filter
// This goes as the filter at the end of any filter chaining.
@@ -565,7 +568,7 @@ public class FusekiServer {
context.addFilter(h, pathspec, null);
}
- /** Jetty server */
+ /** Jetty server with one connector/port. */
private static Server jettyServer(int port, boolean loopback) {
Server server = new Server();
HttpConnectionFactory f1 = new HttpConnectionFactory();
[06/19] jena git commit: Expose the command line argument processing
to build a FusekiServer.
Posted by an...@apache.org.
Expose the command line argument processing to build a FusekiServer.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/d061885f
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/d061885f
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/d061885f
Branch: refs/heads/master
Commit: d061885fae1ca4ba86e0603e7b7a45d21c739802
Parents: 8d0c131
Author: Andy Seaborne <an...@apache.org>
Authored: Tue Aug 14 13:12:23 2018 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Wed Aug 15 21:34:46 2018 +0100
----------------------------------------------------------------------
.../apache/jena/fuseki/cmds/FusekiBasicCmd.java | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/d061885f/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 010b391..60ccf69 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
@@ -78,10 +78,16 @@ public class FusekiBasicCmd {
FusekiLogging.setLogging();
}
+ /** Build and run, a server based on command line syntax. This operation does not return. */
static public void main(String... argv) {
FusekiCmdInner.innerMain(argv);
}
+ /** Build, but do not start, a server based on command line syntax. */
+ static public FusekiServer build(String... argv) {
+ return FusekiCmdInner.build(argv);
+ }
+
/** Dataset setup (command line, config file) for a dataset (or several if config file) */
static class ServerConfig {
public int port;
@@ -131,11 +137,18 @@ public class FusekiBasicCmd {
// private static ModLocation modLocation = new ModLocation();
private static ModDatasetAssembler modDataset = new ModDatasetAssembler();
- static public void innerMain(String... argv) {
+ static void innerMain(String... argv) {
JenaSystem.init();
new FusekiCmdInner(argv).mainRun();
}
+ /** Build, but do not start, a server based on command line syntax. */
+ static FusekiServer build(String... argv) {
+ FusekiCmdInner inner = new FusekiCmdInner(argv);
+ inner.process();
+ return inner.buildServer();
+ }
+
private final ServerConfig serverConfig = new ServerConfig();
private boolean useTDB2;
@@ -427,6 +440,10 @@ public class FusekiBasicCmd {
}
}
+ private FusekiServer buildServer() {
+ return buildServer(serverConfig);
+ }
+
// ServerConfig -> Setup the builder.
private static FusekiServer buildServer(ServerConfig serverConfig) {
FusekiServer.Builder builder = FusekiServer.create();
[18/19] jena git commit: Typos
Posted by an...@apache.org.
Typos
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/e7eea47d
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/e7eea47d
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/e7eea47d
Branch: refs/heads/master
Commit: e7eea47da6fd9d28a97ca7d64f8a584cbc5e3412
Parents: 2cd26a8
Author: Andy Seaborne <an...@apache.org>
Authored: Sun Aug 19 13:18:58 2018 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Sun Aug 19 13:18:58 2018 +0100
----------------------------------------------------------------------
.../java/org/apache/jena/riot/system/ErrorHandlerFactory.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/e7eea47d/jena-arq/src/main/java/org/apache/jena/riot/system/ErrorHandlerFactory.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/system/ErrorHandlerFactory.java b/jena-arq/src/main/java/org/apache/jena/riot/system/ErrorHandlerFactory.java
index 3eeef44..026d5c6 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/system/ErrorHandlerFactory.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/system/ErrorHandlerFactory.java
@@ -32,7 +32,7 @@ public class ErrorHandlerFactory
/** Standard error handler - logs to stdLogger */
static public final ErrorHandler errorHandlerStd = errorHandlerStd(stdLogger) ;
- /** Error handler (no wanrings) - logs to stdLogger */
+ /** Error handler (no warnings) - logs to stdLogger */
static public final ErrorHandler errorHandlerNoWarnings = errorHandlerNoWarnings(stdLogger) ;
/** Strict error handler - logs to stdLogger - exceptions for warnings */
@@ -47,7 +47,7 @@ public class ErrorHandlerFactory
/** Silent, strict error handler */
static public final ErrorHandler errorHandlerStrictNoLogging = errorHandlerStrictSilent() ;
- /** Silent, strict error handler, nologging */
+ /** Silent, strict error handler, no logging */
public static ErrorHandler errorHandlerStrictSilent() { return new ErrorHandlerStrict(null) ; }
/** Strict error handler, with logging */
[10/19] jena git commit: Switch naming of setters to non-"set" style.
Posted by an...@apache.org.
Switch naming of setters to non-"set" style.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/f6bac07b
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/f6bac07b
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/f6bac07b
Branch: refs/heads/master
Commit: f6bac07b64c500472091efb7a83ca486b89e321e
Parents: 21050fc
Author: Andy Seaborne <an...@apache.org>
Authored: Thu Aug 16 12:03:59 2018 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu Aug 16 12:04:14 2018 +0100
----------------------------------------------------------------------
.../apache/jena/fuseki/cmds/FusekiBasicCmd.java | 6 +-
.../jena/fuseki/embedded/FusekiServer.java | 95 ++++++++++++++++----
.../jena/fuseki/embedded/FusekiTestAuth.java | 4 +-
.../jena/fuseki/embedded/FusekiTestServer.java | 2 +-
.../fuseki/embedded/TestEmbeddedFuseki.java | 24 ++---
.../embedded/TestFusekiCustomOperation.java | 12 +--
.../fuseki/embedded/TestMultipleEmbedded.java | 16 ++--
.../examples/ExtendFuseki_AddService_1.java | 4 +-
.../examples/ExtendFuseki_AddService_2.java | 4 +-
.../examples/ExtendFuseki_AddService_3.java | 4 +-
.../TestRDFConnectionFusekiBinary.java | 2 +-
.../rdfconnection/TestRDFConnectionRemote.java | 2 +-
12 files changed, 117 insertions(+), 58 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/f6bac07b/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 60ccf69..baa3b28 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
@@ -448,8 +448,8 @@ public class FusekiBasicCmd {
private static FusekiServer buildServer(ServerConfig serverConfig) {
FusekiServer.Builder builder = FusekiServer.create();
// Loopback.
- builder.setPort(serverConfig.port);
- builder.setLoopback(serverConfig.loopback);
+ builder.port(serverConfig.port);
+ builder.loopback(serverConfig.loopback);
if ( serverConfig.validators ) {
if ( serverConfig.sparqler )
@@ -470,7 +470,7 @@ public class FusekiBasicCmd {
}
if ( serverConfig.contentDirectory != null )
- builder.setStaticFileBase(serverConfig.contentDirectory) ;
+ builder.staticFileBase(serverConfig.contentDirectory) ;
return builder.build();
}
http://git-wip-us.apache.org/repos/asf/jena/blob/f6bac07b/jena-fuseki2/jena-fuseki-embedded/src/main/java/org/apache/jena/fuseki/embedded/FusekiServer.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-embedded/src/main/java/org/apache/jena/fuseki/embedded/FusekiServer.java b/jena-fuseki2/jena-fuseki-embedded/src/main/java/org/apache/jena/fuseki/embedded/FusekiServer.java
index 2df22e7..94f4c20 100644
--- a/jena-fuseki2/jena-fuseki-embedded/src/main/java/org/apache/jena/fuseki/embedded/FusekiServer.java
+++ b/jena-fuseki2/jena-fuseki-embedded/src/main/java/org/apache/jena/fuseki/embedded/FusekiServer.java
@@ -20,9 +20,7 @@ package org.apache.jena.fuseki.embedded;
import static java.util.Objects.requireNonNull;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServlet;
@@ -33,8 +31,8 @@ import org.apache.jena.fuseki.FusekiConfigException;
import org.apache.jena.fuseki.FusekiException;
import org.apache.jena.fuseki.build.FusekiBuilder;
import org.apache.jena.fuseki.build.FusekiConfig;
-import org.apache.jena.fuseki.ctl.ActionStats;
import org.apache.jena.fuseki.ctl.ActionPing;
+import org.apache.jena.fuseki.ctl.ActionStats;
import org.apache.jena.fuseki.jetty.FusekiErrorHandler1;
import org.apache.jena.fuseki.server.*;
import org.apache.jena.fuseki.servlets.ActionService;
@@ -83,18 +81,13 @@ import org.eclipse.jetty.servlet.ServletHolder;
*
*/
public class FusekiServer {
- static {
- //FusekiEnv.mode = FusekiEnv.INIT.EMBEDDED;
- // Stop anything accidently resetting Fuseki server logging.
- //FusekiLogging.allowLoggingReset(false);
- }
-
/** Construct a Fuseki server for one dataset.
* It only responds to localhost.
- * The returned server has not been started */
+ * The returned server has not been started.
+ */
static public FusekiServer make(int port, String name, DatasetGraph dsg) {
return create()
- .setPort(port)
+ .port(port)
.setLoopback(true)
.add(name, dsg)
.build();
@@ -189,9 +182,18 @@ public class FusekiServer {
private String contextPath = "/";
private String staticContentDir = null;
private SecurityHandler securityHandler = null;
+ private Map<String, Object> servletAttr = new HashMap<>();
- /** Set the port to run on. */
+ /** Set the port to run on.
+ * @deprecated Use {@link #port}.
+ */
+ @Deprecated
public Builder setPort(int port) {
+ return port(port);
+ }
+
+ /** Set the port to run on. */
+ public Builder port(int port) {
if ( port < 0 )
throw new IllegalArgumentException("Illegal port="+port+" : Port must be greater than or equal to zero.");
this.port = port;
@@ -200,25 +202,60 @@ public class FusekiServer {
/** Context path to Fuseki. If it's "/" then Fuseki URL look like
* "http://host:port/dataset/query" else "http://host:port/path/dataset/query"
+ * @deprecated Use {@link #contextPath}.
*/
+ @Deprecated
public Builder setContextPath(String path) {
+ return contextPath(path);
+ }
+
+ /** Context path to Fuseki. If it's "/" then Fuseki URL look like
+ * "http://host:port/dataset/query" else "http://host:port/path/dataset/query"
+ */
+ public Builder contextPath(String path) {
requireNonNull(path, "path");
this.contextPath = path;
return this;
}
- /** Restrict the server to only responding to the localhost interface. */
+ /** Restrict the server to only responding to the localhost interface.
+ * @deprecated Use {@link #loopback}.
+ */
+ @Deprecated
public Builder setLoopback(boolean loopback) {
+ return loopback(loopback);
+ }
+
+ /** Restrict the server to only responding to the localhost interface. */
+ public Builder loopback(boolean loopback) {
this.loopback = loopback;
return this;
}
- /** Set the location (filing system directory) to serve static file from. */
+ /** Set the location (filing system directory) to serve static file from.
+ * @deprecated Use {@link #staticFileBase}.
+ */
+ @Deprecated
public Builder setStaticFileBase(String directory) {
+ return staticFileBase(directory);
+ }
+
+ /** Set the location (filing system directory) to serve static file from. */
+ public Builder staticFileBase(String directory) {
requireNonNull(directory, "directory");
this.staticContentDir = directory;
return this;
}
+
+ /** Set a Jetty SecurityHandler.
+ * <p>
+ * By default, the server runs with no security.
+ * @deprecated Use {@link #staticFileBase}.
+ */
+ @Deprecated
+ public Builder setSecurityHandler(SecurityHandler securityHandler) {
+ return securityHandler(securityHandler);
+ }
/** Set a Jetty SecurityHandler.
* <p>
@@ -226,16 +263,24 @@ public class FusekiServer {
* This is more for using the basic server for testing.
* The full Fuseki server provides security with Apache Shiro
* and a defensive reverse proxy (e.g. Apache httpd) in front of the Jetty server
- * can also be used, which provides a wide varity of proven security options.
+ * can also be used, which provides a wide variety of proven security options.
*/
- public Builder setSecurityHandler(SecurityHandler securityHandler) {
+ public Builder securityHandler(SecurityHandler securityHandler) {
requireNonNull(securityHandler, "securityHandler");
this.securityHandler = securityHandler;
return this;
}
- /** Set verbose logging */
+
+ /** Set verbose logging
+ * @deprecated Use {@link #verbose(boolean)}.
+ */
public Builder setVerbose(boolean verbose) {
+ return verbose(verbose);
+ }
+
+ /** Set verbose logging */
+ public Builder verbose(boolean verbose) {
this.verbose = verbose;
return this;
}
@@ -337,6 +382,19 @@ public class FusekiServer {
}
/**
+ * Add a servlet attribute. Pass a value of null to remove any existing binding.
+ */
+
+ public Builder addServletAttribute(String attrName, Object value) {
+ requireNonNull(attrName, "attrName");
+ if ( value != null )
+ servletAttr.put(attrName, value);
+ else
+ servletAttr.remove(attrName);
+ return this;
+ }
+
+ /**
* Add an operation and handler to the server. This does not enable it for any dataset.
* <p>
* To associate an operation with a dataset, call {@link #addOperation} after adding the dataset.
@@ -393,6 +451,7 @@ public class FusekiServer {
ServletContext cxt = handler.getServletContext();
Fuseki.setVerbose(cxt, verbose);
+ servletAttr.forEach((n,v)->cxt.setAttribute(n, v));
// Clone to isolate from any future changes.
ServiceDispatchRegistry.set(cxt, new ServiceDispatchRegistry(serviceDispatch));
DataAccessPointRegistry.set(cxt, new DataAccessPointRegistry(dataAccessPoints));
http://git-wip-us.apache.org/repos/asf/jena/blob/f6bac07b/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/FusekiTestAuth.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/FusekiTestAuth.java b/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/FusekiTestAuth.java
index 48eec5d..20152b8 100644
--- a/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/FusekiTestAuth.java
+++ b/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/FusekiTestAuth.java
@@ -113,8 +113,8 @@ public class FusekiTestAuth {
dsgTesting = dsg;
server = FusekiServer.create()
.add(datasetPath(), dsgTesting)
- .setPort(port())
- .setSecurityHandler(sh)
+ .port(port())
+ .securityHandler(sh)
.build()
.start();
}
http://git-wip-us.apache.org/repos/asf/jena/blob/f6bac07b/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/FusekiTestServer.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/FusekiTestServer.java b/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/FusekiTestServer.java
index b661e5d..c8de9db 100644
--- a/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/FusekiTestServer.java
+++ b/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/FusekiTestServer.java
@@ -231,7 +231,7 @@ public class FusekiTestServer {
dsgTesting = DatasetGraphFactory.createTxnMem();
server = FusekiServer.create()
.add(datasetPath(), dsgTesting)
- .setPort(port())
+ .port(port())
.build()
.start();
}
http://git-wip-us.apache.org/repos/asf/jena/blob/f6bac07b/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/TestEmbeddedFuseki.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/TestEmbeddedFuseki.java b/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/TestEmbeddedFuseki.java
index 9841a9c..0d82a6e 100644
--- a/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/TestEmbeddedFuseki.java
+++ b/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/TestEmbeddedFuseki.java
@@ -96,7 +96,7 @@ public class TestEmbeddedFuseki {
DatasetGraph dsg = dataset() ;
int port = FusekiLib.choosePort() ;
FusekiServer server = FusekiServer.create()
- .setPort(port)
+ .port(port)
.add("/ds1", dsg)
.build() ;
server.start() ;
@@ -131,7 +131,7 @@ public class TestEmbeddedFuseki {
int port = FusekiLib.choosePort() ;
FusekiServer server = FusekiServer.create()
- .setPort(port)
+ .port(port)
.add("/data", dataService)
.build() ;
server.start() ;
@@ -170,7 +170,7 @@ public class TestEmbeddedFuseki {
DatasetGraph dsg = dataset() ;
int port = FusekiLib.choosePort() ;
FusekiServer server = FusekiServer.create()
- .setPort(port)
+ .port(port)
.add("/ds0", dsg)
.build() ;
server.start() ;
@@ -185,7 +185,7 @@ public class TestEmbeddedFuseki {
DatasetGraph dsg = dataset() ;
int port = FusekiLib.choosePort() ;
FusekiServer server = FusekiServer.create()
- .setPort(port)
+ .port(port)
.add("/ds0", dsg)
.enableStats(true)
.build() ;
@@ -202,8 +202,8 @@ public class TestEmbeddedFuseki {
int port = FusekiLib.choosePort() ;
FusekiServer server = FusekiServer.create()
- .setPort(port)
- .setContextPath("/ABC")
+ .port(port)
+ .contextPath("/ABC")
.add("/ds", dsg)
.build() ;
server.start() ;
@@ -220,7 +220,7 @@ public class TestEmbeddedFuseki {
int port = FusekiLib.choosePort() ;
FusekiServer server = FusekiServer.create()
- .setPort(port)
+ .port(port)
.parseConfigFile(DIR+"config.ttl")
.build() ;
server.start() ;
@@ -234,8 +234,8 @@ public class TestEmbeddedFuseki {
int port = FusekiLib.choosePort() ;
FusekiServer server = FusekiServer.create()
- .setPort(port)
- .setContextPath("/ABC")
+ .port(port)
+ .contextPath("/ABC")
.parseConfigFile(DIR+"config.ttl")
.build() ;
server.start() ;
@@ -259,7 +259,7 @@ public class TestEmbeddedFuseki {
dSrv.addEndpoint(Operation.GSP_R, "gsp") ;
FusekiServer server = FusekiServer.create()
.add("/dsrv1", dSrv)
- .setPort(port)
+ .port(port)
.build() ;
server.start() ;
try {
@@ -278,8 +278,8 @@ public class TestEmbeddedFuseki {
dSrv.addEndpoint(Operation.GSP_R, "gsp") ;
FusekiServer server = FusekiServer.create()
.add("/dsrv1", dSrv)
- .setStaticFileBase(DIR)
- .setPort(port)
+ .staticFileBase(DIR)
+ .port(port)
.build() ;
server.start() ;
http://git-wip-us.apache.org/repos/asf/jena/blob/f6bac07b/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/TestFusekiCustomOperation.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/TestFusekiCustomOperation.java b/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/TestFusekiCustomOperation.java
index 064e1b2..17eaff6 100644
--- a/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/TestFusekiCustomOperation.java
+++ b/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/TestFusekiCustomOperation.java
@@ -64,7 +64,7 @@ public class TestFusekiCustomOperation {
FusekiServer server =
FusekiServer.create()
- .setPort(port)
+ .port(port)
.registerOperation(newOp, contentType, customHandler)
.add("/ds", dataService)
.build();
@@ -75,7 +75,7 @@ public class TestFusekiCustomOperation {
public void cfg_builder_CT() {
FusekiServer server =
FusekiServer.create()
- .setPort(port)
+ .port(port)
.registerOperation(newOp, contentType, customHandler)
.add("/ds", DatasetGraphFactory.createTxnMem(), true)
.addOperation("/ds", endpointName, newOp)
@@ -87,7 +87,7 @@ public class TestFusekiCustomOperation {
public void cfg_builder_noCT() {
FusekiServer server =
FusekiServer.create()
- .setPort(port)
+ .port(port)
.registerOperation(newOp, null, customHandler)
.add("/ds", DatasetGraphFactory.createTxnMem(), true)
.addOperation("/ds", endpointName, newOp)
@@ -98,7 +98,7 @@ public class TestFusekiCustomOperation {
@Test(expected=FusekiConfigException.class)
public void cfg_bad_01() {
FusekiServer.create()
- .setPort(port)
+ .port(port)
.registerOperation(newOp, null, customHandler)
.addOperation("/UNKNOWN", endpointName, newOp);
//.build();
@@ -107,7 +107,7 @@ public class TestFusekiCustomOperation {
@Test(expected=FusekiConfigException.class)
public void cfg_bad_02() {
FusekiServer.create()
- .setPort(port)
+ .port(port)
//.registerOperation(newOp, null, customHandler)
.add("/ds", DatasetGraphFactory.createTxnMem(), true)
// Unregistered.
@@ -117,7 +117,7 @@ public class TestFusekiCustomOperation {
public void cfg_bad_ct_not_enabkled_here() {
FusekiServer server = FusekiServer.create()
- .setPort(port)
+ .port(port)
.registerOperation(newOp, "app/special", customHandler)
.add("/ds", DatasetGraphFactory.createTxnMem(), true)
// Unregistered.
http://git-wip-us.apache.org/repos/asf/jena/blob/f6bac07b/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/TestMultipleEmbedded.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/TestMultipleEmbedded.java b/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/TestMultipleEmbedded.java
index 7a154c2..57d6c93 100644
--- a/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/TestMultipleEmbedded.java
+++ b/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/TestMultipleEmbedded.java
@@ -53,9 +53,9 @@ public class TestMultipleEmbedded {
DatasetGraph dsg = dataset() ;
int port = FusekiLib.choosePort() ;
- FusekiServer server1 = FusekiServer.create().setPort(port).add("/ds1", dsg).build() ;
+ FusekiServer server1 = FusekiServer.create().port(port).add("/ds1", dsg).build() ;
// Same port - Bbad.
- FusekiServer server2 = FusekiServer.create().setPort(port).add("/ds2", dsg).build() ;
+ FusekiServer server2 = FusekiServer.create().port(port).add("/ds2", dsg).build() ;
server1.start();
@@ -75,11 +75,11 @@ public class TestMultipleEmbedded {
public void multiple_02() {
DatasetGraph dsg = dataset() ;
int port1 = FusekiLib.choosePort() ;
- FusekiServer server1 = FusekiServer.create().setPort(port1).add("/ds1", dsg).build() ;
+ FusekiServer server1 = FusekiServer.create().port(port1).add("/ds1", dsg).build() ;
// Different port - good
int port2 = FusekiLib.choosePort() ;
- FusekiServer server2 = FusekiServer.create().setPort(port2).add("/ds2", dsg).build() ;
+ FusekiServer server2 = FusekiServer.create().port(port2).add("/ds2", dsg).build() ;
try {
server1.start();
@@ -97,11 +97,11 @@ public class TestMultipleEmbedded {
DatasetGraph dsg2 = dataset() ;
// Same name.
int port1 = FusekiLib.choosePort() ;
- FusekiServer server1 = FusekiServer.create().setPort(port1).add("/ds", dsg1).build().start() ;
+ FusekiServer server1 = FusekiServer.create().port(port1).add("/ds", dsg1).build().start() ;
Txn.executeWrite(dsg1, ()->dsg1.add(q1));
int port2 = FusekiLib.choosePort() ;
- FusekiServer server2 = FusekiServer.create().setPort(port2).add("/ds", dsg2).build().start() ;
+ FusekiServer server2 = FusekiServer.create().port(port2).add("/ds", dsg2).build().start() ;
Txn.executeWrite(dsg2, ()->dsg2.add(q2));
query("http://localhost:"+port1+"/ds/", "SELECT * {?s ?p 1}", qExec->{
@@ -130,11 +130,11 @@ public class TestMultipleEmbedded {
DatasetGraph dsg = dataset() ;
int port1 = FusekiLib.choosePort() ;
- FusekiServer server1 = FusekiServer.create().setPort(port1).add("/ds1", dsg).build().start() ;
+ FusekiServer server1 = FusekiServer.create().port(port1).add("/ds1", dsg).build().start() ;
Txn.executeWrite(dsg, ()->dsg.add(q1));
int port2 = FusekiLib.choosePort() ;
- FusekiServer server2 = FusekiServer.create().setPort(port2).add("/ds2", dsg).build().start() ;
+ FusekiServer server2 = FusekiServer.create().port(port2).add("/ds2", dsg).build().start() ;
Txn.executeWrite(dsg, ()->dsg.add(q2));
query("http://localhost:"+port1+"/ds1", "SELECT * {?s ?p ?o}", qExec->{
http://git-wip-us.apache.org/repos/asf/jena/blob/f6bac07b/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/examples/ExtendFuseki_AddService_1.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/examples/ExtendFuseki_AddService_1.java b/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/examples/ExtendFuseki_AddService_1.java
index cdeb7c4..e4f8e3d 100644
--- a/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/examples/ExtendFuseki_AddService_1.java
+++ b/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/examples/ExtendFuseki_AddService_1.java
@@ -103,8 +103,8 @@ public class ExtendFuseki_AddService_1 {
ActionService customHandler = new SpecialService();
FusekiServer server =
- FusekiServer.create().setPort(PORT)
- .setVerbose(true)
+ FusekiServer.create().port(PORT)
+ .verbose(true)
// Register the new operation, and it's handler, but no Content-Type
.registerOperation(myOperation, customHandler)
http://git-wip-us.apache.org/repos/asf/jena/blob/f6bac07b/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/examples/ExtendFuseki_AddService_2.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/examples/ExtendFuseki_AddService_2.java b/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/examples/ExtendFuseki_AddService_2.java
index a05026a..7c97132 100644
--- a/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/examples/ExtendFuseki_AddService_2.java
+++ b/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/examples/ExtendFuseki_AddService_2.java
@@ -74,8 +74,8 @@ public class ExtendFuseki_AddService_2 {
ActionService customHandler = new SpecialService();
FusekiServer server =
- FusekiServer.create().setPort(PORT)
- .setVerbose(true)
+ FusekiServer.create().port(PORT)
+ .verbose(true)
// Register the new operation, and it's handler
.registerOperation(myOperation, customHandler)
http://git-wip-us.apache.org/repos/asf/jena/blob/f6bac07b/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/examples/ExtendFuseki_AddService_3.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/examples/ExtendFuseki_AddService_3.java b/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/examples/ExtendFuseki_AddService_3.java
index eb23df3..ce663a8 100644
--- a/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/examples/ExtendFuseki_AddService_3.java
+++ b/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/examples/ExtendFuseki_AddService_3.java
@@ -67,8 +67,8 @@ public class ExtendFuseki_AddService_3 {
ActionService customHandler = new SpecialService();
FusekiServer server =
- FusekiServer.create().setPort(PORT)
- .setVerbose(true)
+ FusekiServer.create().port(PORT)
+ .verbose(true)
// Register the new operation, with content type and handler
.registerOperation(myOperation, contentType, customHandler)
http://git-wip-us.apache.org/repos/asf/jena/blob/f6bac07b/jena-integration-tests/src/test/java/org/apache/jena/test/rdfconnection/TestRDFConnectionFusekiBinary.java
----------------------------------------------------------------------
diff --git a/jena-integration-tests/src/test/java/org/apache/jena/test/rdfconnection/TestRDFConnectionFusekiBinary.java b/jena-integration-tests/src/test/java/org/apache/jena/test/rdfconnection/TestRDFConnectionFusekiBinary.java
index 9619798..881b87e 100644
--- a/jena-integration-tests/src/test/java/org/apache/jena/test/rdfconnection/TestRDFConnectionFusekiBinary.java
+++ b/jena-integration-tests/src/test/java/org/apache/jena/test/rdfconnection/TestRDFConnectionFusekiBinary.java
@@ -114,7 +114,7 @@ public class TestRDFConnectionFusekiBinary {
DatasetGraph dsg = DatasetGraphFactory.createTxnMem();
return
FusekiServer.create()
- .setPort(PORT)
+ .port(PORT)
//.setStaticFileBase("/home/afs/ASF/jena-fuseki-cmds/sparqler")
.add("/ds", dsg)
//.setVerbose(true)
http://git-wip-us.apache.org/repos/asf/jena/blob/f6bac07b/jena-integration-tests/src/test/java/org/apache/jena/test/rdfconnection/TestRDFConnectionRemote.java
----------------------------------------------------------------------
diff --git a/jena-integration-tests/src/test/java/org/apache/jena/test/rdfconnection/TestRDFConnectionRemote.java b/jena-integration-tests/src/test/java/org/apache/jena/test/rdfconnection/TestRDFConnectionRemote.java
index d064b6d..5dc87f1 100644
--- a/jena-integration-tests/src/test/java/org/apache/jena/test/rdfconnection/TestRDFConnectionRemote.java
+++ b/jena-integration-tests/src/test/java/org/apache/jena/test/rdfconnection/TestRDFConnectionRemote.java
@@ -41,7 +41,7 @@ public class TestRDFConnectionRemote extends AbstractTestRDFConnection {
public static void beforeClass() {
PORT = FusekiLib.choosePort();
server = FusekiServer.create()
- .setPort(PORT)
+ .port(PORT)
.add("/ds", serverdsg)
.build() ;
LogCtl.setLevel(Fuseki.serverLogName, "WARN");
[05/19] jena git commit: Deprecate isBackedByTDB in favour of isTDB2.
Posted by an...@apache.org.
Deprecate isBackedByTDB in favour of isTDB2.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/0335b26f
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/0335b26f
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/0335b26f
Branch: refs/heads/master
Commit: 0335b26f11825843f17053501a07c185f28571a5
Parents: d061885
Author: Andy Seaborne <an...@apache.org>
Authored: Tue Aug 14 13:13:46 2018 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Wed Aug 15 21:34:46 2018 +0100
----------------------------------------------------------------------
.../main/java/org/apache/jena/tdb2/DatabaseMgr.java | 13 +++++++++++--
.../main/java/org/apache/jena/tdb2/TDB2Factory.java | 11 ++++++++---
2 files changed, 19 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/0335b26f/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/DatabaseMgr.java
----------------------------------------------------------------------
diff --git a/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/DatabaseMgr.java b/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/DatabaseMgr.java
index 52ca661..ad43905 100644
--- a/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/DatabaseMgr.java
+++ b/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/DatabaseMgr.java
@@ -82,9 +82,18 @@ public class DatabaseMgr {
return connectDatasetGraph(Location.mem()) ;
}
- /** Return the location of a dataset if it is backed by TDB, else null */
+ /** Return whether a {@code DatasetGraph} is TDB2.
+ * @deprecated Use {@link #isTDB2}.
+ */
+ @Deprecated
+ // Wrong name
public static boolean isBackedByTDB(DatasetGraph datasetGraph) {
- return TDBInternal.isBackedByTDB(datasetGraph);
+ return TDBInternal.isTDB2(datasetGraph);
+ }
+
+ /** Return whether a {@code DatasetGraph} is a TDB2 database. */
+ public static boolean isTDB2(DatasetGraph datasetGraph) {
+ return TDBInternal.isTDB2(datasetGraph);
}
/** Return the location of a DatasetGraph if it is backed by TDB, else null. */
http://git-wip-us.apache.org/repos/asf/jena/blob/0335b26f/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/TDB2Factory.java
----------------------------------------------------------------------
diff --git a/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/TDB2Factory.java b/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/TDB2Factory.java
index 6f1d6ba..ccb6f4c 100644
--- a/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/TDB2Factory.java
+++ b/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/TDB2Factory.java
@@ -86,12 +86,17 @@ public class TDB2Factory
return (Dataset)AssemblerUtils.build(assemblerFile, VocabTDB2.tDatasetTDB) ;
}
- /** Test whether a dataset is backed by TDB or not. */
+ /** Test whether a dataset is backed by TDB or not.
+ * @deprecated Use {#isTDB2}
+ */
public static boolean isBackedByTDB(Dataset dataset) {
- DatasetGraph dsg = dataset.asDatasetGraph() ;
- return DatabaseMgr.isBackedByTDB(dsg) ;
+ return isTDB2(dataset);
}
+ /** Test whether a dataset is backed by TDB or not. */
+ public static boolean isTDB2(Dataset dataset) {
+ return DatabaseMgr.isTDB2(dataset.asDatasetGraph());
+ }
/** Return the location of a dataset if it is backed by TDB, else null */
public static Location location(Dataset dataset) {
DatasetGraph dsg = dataset.asDatasetGraph() ;
[16/19] jena git commit: Fixes up based on comments on PR#463
Posted by an...@apache.org.
Fixes up based on comments on PR#463
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/08ef457a
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/08ef457a
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/08ef457a
Branch: refs/heads/master
Commit: 08ef457a44e6f8491bdea84c798c7af5c73925d9
Parents: 3b153d5
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Aug 17 13:22:53 2018 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Aug 17 13:22:53 2018 +0100
----------------------------------------------------------------------
.../org/apache/jena/sparql/util/NodeUtils.java | 14 +-
.../jena/fuseki/servlets/ServiceRouter.java | 2 +-
.../jena/fuseki/embedded/FusekiServer.java | 170 ++++++++++---------
3 files changed, 99 insertions(+), 87 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/08ef457a/jena-arq/src/main/java/org/apache/jena/sparql/util/NodeUtils.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/util/NodeUtils.java b/jena-arq/src/main/java/org/apache/jena/sparql/util/NodeUtils.java
index 5dd1d6f..a505c8f 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/util/NodeUtils.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/util/NodeUtils.java
@@ -18,7 +18,11 @@
package org.apache.jena.sparql.util;
-import java.util.*;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Objects;
import org.apache.jena.atlas.lib.ListUtils;
import org.apache.jena.atlas.lib.StrUtils ;
@@ -102,7 +106,7 @@ public class NodeUtils
Iterator<String> conv = new MapFilterIterator<>(mapper, eIter) ;
return conv ;
}
-
+
/** Convert a collection of strings to a collection of {@link Node Nodes}. */
public static Collection<Node> convertToNodes(Collection<String> namedGraphs) {
List<Node> nodes = ListUtils.toList(
@@ -118,7 +122,7 @@ public class NodeUtils
);
return nodes;
}
-
+
/** Compare two Nodes, based on their RDF terms forms, not value */
public static int compareRDFTerms(Node node1, Node node2) {
if ( node1 == null ) {
@@ -200,7 +204,7 @@ public class NodeUtils
* <li> Datatypes by URI
* </ol>
*/
-
+
private static int compareLiteralsBySyntax(Node node1, Node node2) {
if ( node1 == null || !node1.isLiteral() || node2 == null || !node2.isLiteral() )
throw new ARQInternalErrorException("compareLiteralsBySyntax called with non-literal: (" + node1 + "," + node2 + ")") ;
@@ -248,7 +252,7 @@ public class NodeUtils
// Two datatypes.
return StrUtils.strCompare(dt1, dt2) ;
}
-
+
/**
* A Node is a simple string if:
* <li>(RDF 1.0) No datatype and no language tag
http://git-wip-us.apache.org/repos/asf/jena/blob/08ef457a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ServiceRouter.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ServiceRouter.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ServiceRouter.java
index c54a69b..9a3a2b2 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ServiceRouter.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ServiceRouter.java
@@ -124,7 +124,7 @@ public abstract class ServiceRouter extends ActionService {
* Test whether there is a configuration that allows this action as the operation
* given. Ignores the operation in the action which is set due to parsing - it
* might be "quads" which is the generic operation when just the dataset is
- * specificed.
+ * specified.
*/
private boolean isEnabled(HttpAction action, Operation operation) {
// Disregard the operation name of the action
http://git-wip-us.apache.org/repos/asf/jena/blob/08ef457a/jena-fuseki2/jena-fuseki-embedded/src/main/java/org/apache/jena/fuseki/embedded/FusekiServer.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-embedded/src/main/java/org/apache/jena/fuseki/embedded/FusekiServer.java b/jena-fuseki2/jena-fuseki-embedded/src/main/java/org/apache/jena/fuseki/embedded/FusekiServer.java
index 9d68be0..3c84fd3 100644
--- a/jena-fuseki2/jena-fuseki-embedded/src/main/java/org/apache/jena/fuseki/embedded/FusekiServer.java
+++ b/jena-fuseki2/jena-fuseki-embedded/src/main/java/org/apache/jena/fuseki/embedded/FusekiServer.java
@@ -20,7 +20,11 @@ package org.apache.jena.fuseki.embedded;
import static java.util.Objects.requireNonNull;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
import javax.servlet.Filter;
import javax.servlet.ServletContext;
@@ -35,7 +39,11 @@ import org.apache.jena.fuseki.build.FusekiConfig;
import org.apache.jena.fuseki.ctl.ActionPing;
import org.apache.jena.fuseki.ctl.ActionStats;
import org.apache.jena.fuseki.jetty.FusekiErrorHandler1;
-import org.apache.jena.fuseki.server.*;
+import org.apache.jena.fuseki.server.DataAccessPoint;
+import org.apache.jena.fuseki.server.DataAccessPointRegistry;
+import org.apache.jena.fuseki.server.DataService;
+import org.apache.jena.fuseki.server.FusekiVocab;
+import org.apache.jena.fuseki.server.Operation;
import org.apache.jena.fuseki.servlets.ActionService;
import org.apache.jena.fuseki.servlets.FusekiFilter;
import org.apache.jena.fuseki.servlets.ServiceDispatchRegistry;
@@ -57,7 +65,7 @@ import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
/**
- * Embedded Fuseki server. This is a Fuseki server running with a preconfigured set of
+ * Embedded Fuseki server. This is a Fuseki server running with a pre-configured set of
* datasets and services. There is no admin UI and no security.
* <p>
* To create a embedded sever, use {@link FusekiServer} ({@link #make} is a
@@ -65,7 +73,7 @@ import org.eclipse.jetty.servlet.ServletHolder;
* responding to localhost only).
* <p>
* The application should call {@link #start()} to actually start the server
- * (it wil run in the background : see {@link #join}).
+ * (it will run in the background : see {@link #join}).
* <p>Example:
* <pre>
* DatasetGraph dsg = ...;
@@ -79,13 +87,13 @@ import org.eclipse.jetty.servlet.ServletHolder;
* <pre>
* FusekiServer.make(1234, "/ds", dsg).start();
* </pre>
- *
+ *
*/
public class FusekiServer {
/** Construct a Fuseki server for one dataset.
- * It only responds to localhost.
- * The returned server has not been started.
- */
+ * It only responds to localhost.
+ * The returned server has not been started.
+ */
static public FusekiServer make(int port, String name, DatasetGraph dsg) {
return create()
.port(port)
@@ -93,60 +101,60 @@ public class FusekiServer {
.add(name, dsg)
.build();
}
-
+
public static Builder create() {
return new Builder();
}
-
+
public final Server server;
private int port;
-
+
private FusekiServer(int port, Server server) {
this.server = server;
// This should be the same.
//this.port = ((ServerConnector)server.getConnectors()[0]).getPort();
this.port = port;
}
-
- /**
- * Return the port begin used.
+
+ /**
+ * Return the port begin used.
* This will be the give port, which defaults to 3330, or
* the one actually allocated if the port was 0 ("choose a free port").
*/
public int getPort() {
- return port;
+ return port;
}
- /** Get the underlying Jetty server which has also been set up. */
+ /** Get the underlying Jetty server which has also been set up. */
public Server getJettyServer() {
- return server;
+ return server;
}
-
+
/** Get the {@link ServletContext}.
* Adding new servlets is possible with care.
- */
+ */
public ServletContext getServletContext() {
return ((ServletContextHandler)server.getHandler()).getServletContext();
}
/** Get the {@link DataAccessPointRegistry}.
* This method is intended for inspecting the registry.
- */
+ */
public DataAccessPointRegistry getDataAccessPointRegistry() {
return DataAccessPointRegistry.get(getServletContext());
}
/** Get the {@link DataAccessPointRegistry}.
* This method is intended for inspecting the registry.
- */
+ */
public ServiceDispatchRegistry getServiceDispatchRegistry() {
return ServiceDispatchRegistry.get(getServletContext());
}
/** Start the server - the server continues to run after this call returns.
- * To synchronise with the server stopping, call {@link #join}.
+ * To synchronise with the server stopping, call {@link #join}.
*/
- public FusekiServer start() {
+ public FusekiServer start() {
try { server.start(); }
catch (Exception e) { throw new FusekiException(e); }
if ( port == 0 )
@@ -156,18 +164,18 @@ public class FusekiServer {
}
/** Stop the server. */
- public void stop() {
+ public void stop() {
Fuseki.serverLog.info("Stop Fuseki (port="+port+")");
try { server.stop(); }
catch (Exception e) { throw new FusekiException(e); }
}
-
+
/** Wait for the server to exit. This call is blocking. */
public void join() {
try { server.join(); }
catch (Exception e) { throw new FusekiException(e); }
}
-
+
/** FusekiServer.Builder */
public static class Builder {
private DataAccessPointRegistry dataAccessPoints = new DataAccessPointRegistry();
@@ -188,39 +196,39 @@ public class FusekiServer {
private Map<String, Object> servletAttr = new HashMap<>();
/** Set the port to run on.
- * @deprecated Use {@link #port}.
+ * @deprecated Use {@link #port}.
*/
@Deprecated
public Builder setPort(int port) {
return port(port);
}
-
- /** Set the port to run on. */
+
+ /** Set the port to run on. */
public Builder port(int port) {
if ( port < 0 )
throw new IllegalArgumentException("Illegal port="+port+" : Port must be greater than or equal to zero.");
this.port = port;
return this;
}
-
+
/** Context path to Fuseki. If it's "/" then Fuseki URL look like
- * "http://host:port/dataset/query" else "http://host:port/path/dataset/query"
- * @deprecated Use {@link #contextPath}.
+ * "http://host:port/dataset/query" else "http://host:port/path/dataset/query"
+ * @deprecated Use {@link #contextPath}.
*/
@Deprecated
public Builder setContextPath(String path) {
return contextPath(path);
}
-
+
/** Context path to Fuseki. If it's "/" then Fuseki URL look like
- * "http://host:port/dataset/query" else "http://host:port/path/dataset/query"
+ * "http://host:port/dataset/query" else "http://host:port/path/dataset/query"
*/
public Builder contextPath(String path) {
requireNonNull(path, "path");
this.contextPath = path;
return this;
}
-
+
/** Restrict the server to only responding to the localhost interface.
* @deprecated Use {@link #loopback}.
*/
@@ -229,7 +237,7 @@ public class FusekiServer {
return loopback(loopback);
}
- /** Restrict the server to only responding to the localhost interface. */
+ /** Restrict the server to only responding to the localhost interface. */
public Builder loopback(boolean loopback) {
this.loopback = loopback;
return this;
@@ -242,8 +250,8 @@ public class FusekiServer {
public Builder setStaticFileBase(String directory) {
return staticFileBase(directory);
}
-
- /** Set the location (filing system directory) to serve static file from. */
+
+ /** Set the location (filing system directory) to serve static file from. */
public Builder staticFileBase(String directory) {
requireNonNull(directory, "directory");
this.staticContentDir = directory;
@@ -259,25 +267,25 @@ public class FusekiServer {
public Builder setSecurityHandler(SecurityHandler securityHandler) {
return securityHandler(securityHandler);
}
-
+
/** Set a Jetty SecurityHandler.
* <p>
* By default, the server runs with no security.
* This is more for using the basic server for testing.
* The full Fuseki server provides security with Apache Shiro
* and a defensive reverse proxy (e.g. Apache httpd) in front of the Jetty server
- * can also be used, which provides a wide variety of proven security options.
+ * can also be used, which provides a wide variety of proven security options.
*/
public Builder securityHandler(SecurityHandler securityHandler) {
requireNonNull(securityHandler, "securityHandler");
this.securityHandler = securityHandler;
return this;
}
-
- /** Set verbose logging
+ /** Set verbose logging
* @deprecated Use {@link #verbose(boolean)}.
*/
+ @Deprecated
public Builder setVerbose(boolean verbose) {
return verbose(verbose);
}
@@ -290,57 +298,57 @@ public class FusekiServer {
/** Add the "/$/stats" servlet that responds with stats about the server,
* including counts of all calls made.
- */
+ */
public Builder enableStats(boolean withStats) {
this.withStats = withStats;
return this;
}
/** Add the "/$/ping" servlet that responds to HTTP very efficiently.
- * This is useful for testing whether a server is alive, for example, from a load balancer.
- */
+ * This is useful for testing whether a server is alive, for example, from a load balancer.
+ */
public Builder enablePing(boolean withPing) {
this.withPing = withPing;
return this;
}
- /** Add the dataset with given name and a default set of services including update */
+ /** Add the dataset with given name and a default set of services including update */
public Builder add(String name, Dataset dataset) {
requireNonNull(name, "name");
requireNonNull(dataset, "dataset");
return add(name, dataset.asDatasetGraph());
}
- /** Add the dataset with given name and a default set of services including update */
+ /** Add the dataset with given name and a default set of services including update */
public Builder add(String name, DatasetGraph dataset) {
requireNonNull(name, "name");
requireNonNull(dataset, "dataset");
return add(name, dataset, true);
}
- /** Add the dataset with given name and a default set of services. */
+ /** Add the dataset with given name and a default set of services. */
public Builder add(String name, Dataset dataset, boolean allowUpdate) {
requireNonNull(name, "name");
requireNonNull(dataset, "dataset");
return add(name, dataset.asDatasetGraph(), allowUpdate);
}
-
- /** Add the dataset with given name and a default set of services. */
+
+ /** Add the dataset with given name and a default set of services. */
public Builder add(String name, DatasetGraph dataset, boolean allowUpdate) {
requireNonNull(name, "name");
requireNonNull(dataset, "dataset");
- DataService dSrv = FusekiBuilder.buildDataServiceStd(dataset, allowUpdate);
+ DataService dSrv = FusekiBuilder.buildDataServiceStd(dataset, allowUpdate);
return add(name, dSrv);
}
-
+
/** Add a data service that includes dataset and service names.
* A {@link DataService} allows for choices of the various endpoint names.
- */
+ */
public Builder add(String name, DataService dataService) {
requireNonNull(name, "name");
requireNonNull(dataService, "dataService");
- return add$(name, dataService);
+ return add$(name, dataService);
}
-
+
private Builder add$(String name, DataService dataService) {
name = DataAccessPoint.canonical(name);
if ( dataAccessPoints.isRegistered(name) )
@@ -354,18 +362,18 @@ public class FusekiServer {
* <p>
* The application is responsible for ensuring a correct classpath. For example,
* including a dependency on {@code jena-text} if the configuration file
- * includes a text index.
+ * includes a text index.
*/
public Builder parseConfigFile(String filename) {
requireNonNull(filename, "filename");
Model model = AssemblerUtils.readAssemblerFile(filename);
-
+
// Process server context
Resource server = GraphUtils.getResourceByType(model, FusekiVocab.tServer);
if ( server != null )
AssemblerUtils.setContext(server, Fuseki.getContext()) ;
- // Process services, whether via server ja:services or, if absent, by finding by type.
+ // Process services, whether via server ja:services or, if absent, by finding by type.
List<DataAccessPoint> x = FusekiConfig.servicesAndDatasets(model);
// Unbundle so that they accumulate.
x.forEach(dap->add(dap.getName(), dap.getDataService()));
@@ -383,11 +391,11 @@ public class FusekiServer {
servlets.add(Pair.create(pathSpec, servlet));
return this;
}
-
+
/**
* Add a servlet attribute. Pass a value of null to remove any existing binding.
*/
-
+
public Builder addServletAttribute(String attrName, Object value) {
requireNonNull(attrName, "attrName");
if ( value != null )
@@ -396,7 +404,7 @@ public class FusekiServer {
servletAttr.remove(attrName);
return this;
}
-
+
/**
* Add a filter with the pathSpec.
*/
@@ -406,13 +414,13 @@ public class FusekiServer {
filters.add(Pair.create(pathSpec, filter));
return this;
}
-
+
/**
* Add an operation and handler to the server. This does not enable it for any dataset.
* <p>
* To associate an operation with a dataset, call {@link #addOperation} after adding the dataset.
- *
- * @see #addOperation
+ *
+ * @see #addOperation
*/
public Builder registerOperation(Operation operation, ActionService handler) {
registerOperation(operation, null, handler);
@@ -422,9 +430,9 @@ public class FusekiServer {
/**
* Add an operation to the server, together with its triggering Content-Type (may be null) and servlet handler.
* <p>
- * To associate an operation with a dataset, call {@link #addOperation} after adding the dataset.
+ * To associate an operation with a dataset, call {@link #addOperation} after adding the dataset.
*
- * @see #addOperation
+ * @see #addOperation
*/
public Builder registerOperation(Operation operation, String contentType, ActionService handler) {
Objects.requireNonNull(operation, "operation");
@@ -434,21 +442,21 @@ public class FusekiServer {
serviceDispatch.register(operation, contentType, handler);
return this;
}
-
- /**
- * Create an endpoint on the dataset.
+
+ /**
+ * Create an endpoint on the dataset.
* The operation must already be registered with the builder.
- * @see #registerOperation(Operation, ActionService)
+ * @see #registerOperation(Operation, ActionService)
*/
public Builder addOperation(String datasetName, String endpointName, Operation operation) {
Objects.requireNonNull(datasetName, "datasetName");
Objects.requireNonNull(endpointName, "endpointName");
-
+
String name = DataAccessPoint.canonical(datasetName);
-
+
if ( ! serviceDispatch.isRegistered(operation) )
throw new FusekiConfigException("Operation not registered: "+operation.getName());
-
+
if ( ! dataAccessPoints.isRegistered(name) )
throw new FusekiConfigException("Dataset not registered: "+datasetName);
DataAccessPoint dap = dataAccessPoints.get(name);
@@ -465,16 +473,16 @@ public class FusekiServer {
ServletContext cxt = handler.getServletContext();
Fuseki.setVerbose(cxt, verbose);
servletAttr.forEach((n,v)->cxt.setAttribute(n, v));
- // Clone to isolate from any future changes.
+ // Clone to isolate from any future changes.
ServiceDispatchRegistry.set(cxt, new ServiceDispatchRegistry(serviceDispatch));
DataAccessPointRegistry.set(cxt, new DataAccessPointRegistry(dataAccessPoints));
// Start services.
DataAccessPointRegistry.get(cxt).forEach((name, dap)->dap.getDataService().goActive());
-
+
setMimeTypes(handler);
servlets(handler);
-
+
Server server = jettyServer(port, loopback);
server.setHandler(handler);
return new FusekiServer(port, server);
@@ -492,10 +500,10 @@ public class FusekiServer {
context.setContextPath(contextPath);
if ( securityHandler != null )
context.setSecurityHandler(securityHandler);
-
+
return context;
}
-
+
private static void setMimeTypes(ServletContextHandler context) {
MimeTypes mimeTypes = new MimeTypes();
// RDF syntax
@@ -530,12 +538,12 @@ public class FusekiServer {
// This goes as the filter at the end of any filter chaining.
FusekiFilter ff = new FusekiFilter();
addFilter(context, "/*", ff);
-
+
if ( withStats )
addServlet(context, "/$/stats", new ActionStats());
if ( withPing )
addServlet(context, "/$/ping", new ActionPing());
-
+
servlets.forEach(p->addServlet(context, p.getLeft(), p.getRight()));
filters.forEach (p-> addFilter(context, p.getLeft(), p.getRight()));
@@ -546,7 +554,7 @@ public class FusekiServer {
context.addServlet(staticContent, "/");
}
}
-
+
private static void addServlet(ServletContextHandler context, String pathspec, HttpServlet httpServlet) {
ServletHolder sh = new ServletHolder(httpServlet);
context.addServlet(sh, pathspec);
[08/19] jena git commit: Strings to Node_URIs.
Posted by an...@apache.org.
Strings to Node_URIs.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/cb6d9b5c
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/cb6d9b5c
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/cb6d9b5c
Branch: refs/heads/master
Commit: cb6d9b5c63e0cfcb5bb600c4e5af9948c77b41ec
Parents: caf572a
Author: Andy Seaborne <an...@apache.org>
Authored: Thu Aug 16 09:56:48 2018 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu Aug 16 09:56:48 2018 +0100
----------------------------------------------------------------------
.../jena/sparql/core/DynamicDatasets.java | 5 ++--
.../org/apache/jena/sparql/util/NodeUtils.java | 29 ++++++++++++--------
2 files changed, 19 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/cb6d9b5c/jena-arq/src/main/java/org/apache/jena/sparql/core/DynamicDatasets.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/DynamicDatasets.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/DynamicDatasets.java
index a13769b..8b319c3 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/DynamicDatasets.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/DynamicDatasets.java
@@ -19,7 +19,6 @@
package org.apache.jena.sparql.core;
import java.util.Collection ;
-import java.util.Set ;
import org.apache.jena.graph.Graph ;
import org.apache.jena.graph.Node ;
@@ -56,8 +55,8 @@ public class DynamicDatasets
if (description.isEmpty() )
return dsg;
- Set<Node> defaultGraphs = NodeUtils.convertToNodes(description.getDefaultGraphURIs()) ;
- Set<Node> namedGraphs = NodeUtils.convertToNodes(description.getNamedGraphURIs()) ;
+ Collection<Node> defaultGraphs = NodeUtils.convertToNodes(description.getDefaultGraphURIs()) ;
+ Collection<Node> namedGraphs = NodeUtils.convertToNodes(description.getNamedGraphURIs()) ;
return dynamicDataset(defaultGraphs, namedGraphs, dsg, defaultUnionGraph) ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/cb6d9b5c/jena-arq/src/main/java/org/apache/jena/sparql/util/NodeUtils.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/util/NodeUtils.java b/jena-arq/src/main/java/org/apache/jena/sparql/util/NodeUtils.java
index 978cda1..5dd1d6f 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/util/NodeUtils.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/util/NodeUtils.java
@@ -18,12 +18,9 @@
package org.apache.jena.sparql.util;
-import java.util.Collection ;
-import java.util.HashSet ;
-import java.util.Iterator ;
-import java.util.Objects;
-import java.util.Set ;
+import java.util.*;
+import org.apache.jena.atlas.lib.ListUtils;
import org.apache.jena.atlas.lib.StrUtils ;
import org.apache.jena.datatypes.RDFDatatype ;
import org.apache.jena.datatypes.xsd.XSDDatatype ;
@@ -105,15 +102,23 @@ public class NodeUtils
Iterator<String> conv = new MapFilterIterator<>(mapper, eIter) ;
return conv ;
}
-
- /** Convert IRI String to Node */
- public static Set<Node> convertToNodes(Collection<String> uris) {
- Set<Node> nodes = new HashSet<>() ;
- for ( String x : uris )
- nodes.add(NodeFactory.createURI(x)) ;
- return nodes ;
+
+ /** Convert a collection of strings to a collection of {@link Node Nodes}. */
+ public static Collection<Node> convertToNodes(Collection<String> namedGraphs) {
+ List<Node> nodes = ListUtils.toList(
+ namedGraphs.stream().map(NodeFactory::createURI)
+ );
+ return nodes;
}
+ /** Convert strings to a collection of {@link Node Nodes}. */
+ public static Collection<Node> convertToNodes(String... namedGraphs) {
+ List<Node> nodes = ListUtils.toList(
+ Arrays.stream(namedGraphs).map(NodeFactory::createURI)
+ );
+ return nodes;
+ }
+
/** Compare two Nodes, based on their RDF terms forms, not value */
public static int compareRDFTerms(Node node1, Node node2) {
if ( node1 == null ) {
[04/19] jena git commit: Deprecate isBackedByTDB in favour of isTDB1
Posted by an...@apache.org.
Deprecate isBackedByTDB in favour of isTDB1
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/d576e607
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/d576e607
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/d576e607
Branch: refs/heads/master
Commit: d576e607e6f578a57f7049a4e2dc6ad81d707ebc
Parents: 0335b26
Author: Andy Seaborne <an...@apache.org>
Authored: Wed Aug 15 15:42:48 2018 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Wed Aug 15 21:34:46 2018 +0100
----------------------------------------------------------------------
.../java/org/apache/jena/tdb/TDBFactory.java | 21 ++++++++++++++++++--
1 file changed, 19 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/d576e607/jena-tdb/src/main/java/org/apache/jena/tdb/TDBFactory.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/TDBFactory.java b/jena-tdb/src/main/java/org/apache/jena/tdb/TDBFactory.java
index 1e1b45f..4c91032 100644
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/TDBFactory.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/TDBFactory.java
@@ -99,13 +99,19 @@ public class TDBFactory
TDBMaker.releaseLocation(location) ;
}
- /** Test whether a dataset is backed by TDB. */
+ /** Test whether a dataset is backed by TDB.
+ * @deprecated Use {@link #isTDB1(Dataset)}
+ */
+ @Deprecated
public static boolean isBackedByTDB(Dataset dataset) {
DatasetGraph dsg = dataset.asDatasetGraph() ;
return isBackedByTDB(dsg) ;
}
- /** Test whether a dataset is backed by TDB. */
+ /** Test whether a dataset is backed by TDB.
+ * @deprecated Use {@link #isTDB1(DatasetGraph)}
+ */
+ @Deprecated
public static boolean isBackedByTDB(DatasetGraph datasetGraph) {
if ( datasetGraph instanceof DatasetGraphTransaction )
// The switching "connection" for TDB
@@ -116,6 +122,17 @@ public class TDBFactory
return false ;
}
+ /** Test whether a dataset is backed by TDB. */
+ public static boolean isTDB1(Dataset dataset) {
+ DatasetGraph dsg = dataset.asDatasetGraph() ;
+ return isTDB1(dsg) ;
+ }
+
+ /** Test whether a dataset is backed by TDB. */
+ public static boolean isTDB1(DatasetGraph datasetGraph) {
+ return TDBInternal.isTDB1(datasetGraph);
+ }
+
/** Return the location of a dataset if it is backed by TDB, else null */
public static Location location(Dataset dataset) {
DatasetGraph dsg = dataset.asDatasetGraph() ;
[02/19] jena git commit: Fix javadoc.
Posted by an...@apache.org.
Fix javadoc.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/833cdb68
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/833cdb68
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/833cdb68
Branch: refs/heads/master
Commit: 833cdb686b6035fd63afbfb0b92bfe7f9c77e493
Parents: d576e60
Author: Andy Seaborne <an...@apache.org>
Authored: Wed Aug 15 16:54:56 2018 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Wed Aug 15 21:34:46 2018 +0100
----------------------------------------------------------------------
.../java/org/apache/jena/fuseki/embedded/FusekiTestAuth.java | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/833cdb68/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/FusekiTestAuth.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/FusekiTestAuth.java b/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/FusekiTestAuth.java
index fc0eccb..48eec5d 100644
--- a/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/FusekiTestAuth.java
+++ b/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/FusekiTestAuth.java
@@ -36,19 +36,19 @@ import org.junit.Assert;
/**
* Testing HTTP athentication.
* <p>
- * {@code FusekiAuth} provides helper code for before/after (any of suite/class/test).
+ * {@code FusekiTestAuth} provides helper code for before/after (any of suite/class/test).
* The pattern of usage is:
* <pre>
*
* @BeforeClass
* public static void beforeClassAuth() {
- * SecurityHandler sh = FusekiAuth.makeSimpleSecurityHandler("/*", "USER", "PASSWORD");
- * FusekiAuth.setupServer(true, sh);
+ * SecurityHandler sh = FusekiTestAuth.makeSimpleSecurityHandler("/*", "USER", "PASSWORD");
+ * FusekiTestAuth.setupServer(true, sh);
* }
*
* @AfterClass
* public static void afterClassAuth() {
- * FusekiAuth.teardownServer();
+ * FusekiTestAuth.teardownServer();
* // Clear up any pooled connections.
* HttpOp.setDefaultHttpClient(HttpOp.createPoolingHttpClient());
* }
[13/19] jena git commit: Remove unused and out-of-date class.
Posted by an...@apache.org.
Remove unused and out-of-date class.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/aa3518ee
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/aa3518ee
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/aa3518ee
Branch: refs/heads/master
Commit: aa3518ee48d53a4bcd4d63c66b36cb8e0f3a93bd
Parents: ae74347
Author: Andy Seaborne <an...@apache.org>
Authored: Thu Aug 16 16:13:05 2018 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu Aug 16 16:13:05 2018 +0100
----------------------------------------------------------------------
.../TupleIndexRecordAsyncBulkAdd.java | 263 -------------------
1 file changed, 263 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/aa3518ee/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/store/tupletable/TupleIndexRecordAsyncBulkAdd.java
----------------------------------------------------------------------
diff --git a/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/store/tupletable/TupleIndexRecordAsyncBulkAdd.java b/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/store/tupletable/TupleIndexRecordAsyncBulkAdd.java
deleted file mode 100644
index 536c935..0000000
--- a/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/store/tupletable/TupleIndexRecordAsyncBulkAdd.java
+++ /dev/null
@@ -1,263 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.tdb2.store.tupletable;
-
-import static java.lang.String.format ;
-import static org.apache.jena.tdb2.sys.SystemTDB.SizeOfNodeId;
-
-import java.util.Collection ;
-import java.util.Iterator ;
-import java.util.function.Predicate ;
-
-import org.apache.jena.atlas.iterator.Iter ;
-import org.apache.jena.atlas.iterator.NullIterator ;
-import org.apache.jena.atlas.iterator.SingletonIterator ;
-import org.apache.jena.atlas.lib.tuple.Tuple ;
-import org.apache.jena.atlas.lib.tuple.TupleMap ;
-import org.apache.jena.dboe.base.record.Record;
-import org.apache.jena.dboe.base.record.RecordFactory;
-import org.apache.jena.dboe.index.RangeIndex;
-import org.apache.jena.dboe.transaction.txn.Transaction;
-import org.apache.jena.tdb2.TDBException;
-import org.apache.jena.tdb2.lib.Async;
-import org.apache.jena.tdb2.lib.TupleLib;
-import org.apache.jena.tdb2.store.NodeId;
-import org.apache.jena.tdb2.store.NodeIdFactory;
-
-// Async addAll
-public class TupleIndexRecordAsyncBulkAdd extends TupleIndexBase
-{
- private static final boolean Check = false ;
- private RangeIndex index ;
- private RecordFactory factory ;
-
- public TupleIndexRecordAsyncBulkAdd(int N, TupleMap tupleMapping, String name, RecordFactory factory, RangeIndex index)
- {
- super(N, tupleMapping, name) ;
- this.factory = factory ;
- this.index = index ;
-
- if ( factory.keyLength() != N*SizeOfNodeId)
- throw new TDBException(format("Mismatch: TupleIndex of length %d is not comparative with a factory for key length %d", N, factory.keyLength())) ;
- }
-
- /** Insert a tuple */
- @Override
- protected void performAdd(Tuple<NodeId> tuple) {
- switchToSync() ;
- Record r = TupleLib.record(factory, tuple, tupleMap) ;
- index.insert(r) ;
- }
-
- /** Delete a tuple */
- @Override
- protected void performDelete(Tuple<NodeId> tuple) {
- switchToSync() ;
- Record r = TupleLib.record(factory, tuple, tupleMap) ;
- index.delete(r) ;
- }
-
- private void switchToSync() {
- async.completeAsyncOperations();
- }
-
- Async async = new Async(1,2) ;
- Object lock = new Object() ;
-
- /** Insert tuples */
- @Override
- public void addAll(Collection<Tuple<NodeId>> tuples) {
- Transaction txn = null ;
- // pass into async block.
-
- async.execAsync(lock, () -> {
- // Transaction?
-
- System.out.println(">>Async") ;
- for ( Tuple<NodeId> t : tuples ) {
- Record r = TupleLib.record(factory, t, tupleMap) ;
- index.insert(r) ;
- }
- System.out.println("<<Async") ;
- }) ;
- }
-
- /** Delete tuples */
- @Override
- public void deleteAll(Collection<Tuple<NodeId>> tuples) {
- tuples.stream().forEach(this::delete);
- }
-
- /** Find all matching tuples - a slot of NodeId.NodeIdAny (or null) means match any.
- * Input pattern in natural order, not index order.
- */
-
- @Override
- protected Iterator<Tuple<NodeId>> performFind(Tuple<NodeId> pattern) {
- switchToSync() ;
- return findOrScan(pattern) ;
- }
-
- // Package visibility for testing.
- final Iterator<Tuple<NodeId>> findOrScan(Tuple<NodeId> pattern) {
- return findWorker(pattern, true, true) ;
- }
-
- final Iterator<Tuple<NodeId>> findOrPartialScan(Tuple<NodeId> pattern) {
- return findWorker(pattern, true, false) ;
- }
-
- final Iterator<Tuple<NodeId>> findByIndex(Tuple<NodeId> pattern) {
- return findWorker(pattern, false, false) ;
- }
-
- private Iterator<Tuple<NodeId>> findWorker(Tuple<NodeId> patternNaturalOrder, boolean partialScanAllowed, boolean fullScanAllowed) {
- switchToSync();
- if ( Check && tupleLength != patternNaturalOrder.len() )
- throw new TDBException(String.format("Mismatch: tuple length %d / index for length %d", patternNaturalOrder.len(), tupleLength));
-
- // Convert to index order.
- Tuple<NodeId> pattern = tupleMap.map(patternNaturalOrder) ;
-
- // Canonical form.
- int numSlots = 0 ;
- int leadingIdx = -2; // Index of last leading pattern NodeId. Start less than numSlots-1
- boolean leading = true ;
-
- // Records.
- Record minRec = factory.createKeyOnly() ;
- Record maxRec = factory.createKeyOnly() ;
-
- // Set the prefixes.
- for ( int i = 0 ; i < pattern.len() ; i++ ) {
- NodeId X = pattern.get(i) ;
- if ( NodeId.isAny(X) ) {
- X = null ;
- // No longer setting leading key slots.
- leading = false ;
- continue ;
- }
-
- numSlots++ ;
- if ( leading ) {
- leadingIdx = i ;
- NodeIdFactory.set(X, minRec.getKey(), i*SizeOfNodeId) ;
- NodeIdFactory.set(X, maxRec.getKey(), i*SizeOfNodeId) ;
- }
- }
-
- // Is it a simple existence test?
- if ( numSlots == pattern.len() ) {
- if ( index.contains(minRec) )
- return new SingletonIterator<>(pattern) ;
- else
- return new NullIterator<>() ;
- }
-
- Iterator<Record> iter = null ;
-
- if ( leadingIdx < 0 ) {
- if ( ! fullScanAllowed )
- return null ;
- //System.out.println("Full scan") ;
- // Full scan necessary
- iter = index.iterator() ;
- } else {
- // Adjust the maxRec.
- NodeId X = pattern.get(leadingIdx) ;
- // Set the max Record to the leading NodeIds, +1.
- // Example, SP? inclusive to S(P+1)? exclusive where ? is zero.
- NodeIdFactory.setNext(X, maxRec.getKey(), leadingIdx*SizeOfNodeId) ;
- iter = index.iterator(minRec, maxRec) ;
- }
-
- Iterator<Tuple<NodeId>> tuples = Iter.map(iter, item -> TupleLib.tuple(item, tupleMap)) ;
-
- if ( leadingIdx < numSlots-1 ) {
- if ( ! partialScanAllowed )
- return null ;
- // Didn't match all defined slots in request.
- // Partial or full scan needed.
- //pattern.unmap(colMap) ;
- tuples = scan(tuples, patternNaturalOrder) ;
- }
-
- return tuples ;
- }
-
- @Override
- public Iterator<Tuple<NodeId>> all()
- {
- switchToSync() ;
- Iterator<Record> iter = index.iterator() ;
- return Iter.map(iter, item -> TupleLib.tuple(item, tupleMap)) ;
- }
-
- private Iterator<Tuple<NodeId>> scan(Iterator<Tuple<NodeId>> iter, Tuple<NodeId> pattern) {
- Predicate<Tuple<NodeId>> filter = (item) -> {
- // Check on pattern and item (both in natural order)
- for ( int i = 0 ; i < tupleLength ; i++ ) {
- NodeId n = pattern.get(i) ;
- // The pattern must be null/Any or match the tuple being tested.
- if ( ! NodeId.isAny(n) )
- if ( ! item.get(i).equals(n) )
- return false ;
- }
- return true ;
- } ;
-
- return Iter.filter(iter, filter) ;
- }
-
- @Override
- public void close() {
- switchToSync() ;
- index.close() ;
- }
-
- @Override
- public void sync() {
- switchToSync() ;
- index.sync() ;
- }
-
- public final RangeIndex getRangeIndex() {
- return index ;
- }
-
- //protected final RecordFactory getRecordFactory() { return factory ; }
-
- @Override
- public boolean isEmpty() {
- switchToSync() ;
- return index.isEmpty() ;
- }
-
- @Override
- public void clear() {
- switchToSync() ;
- index.clear() ;
- }
-
- @Override
- public long size() {
- switchToSync() ;
- return index.size() ;
- }
-}
[19/19] jena git commit: Merge commit 'refs/pull/463/head' of
https://github.com/apache/jena
Posted by an...@apache.org.
Merge commit 'refs/pull/463/head' of https://github.com/apache/jena
This closes #463.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/0cb4374e
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/0cb4374e
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/0cb4374e
Branch: refs/heads/master
Commit: 0cb4374e4d67181d37dcf79a4299c51b8f7be74e
Parents: 09994d2 e7eea47
Author: Andy Seaborne <an...@apache.org>
Authored: Mon Aug 20 08:38:34 2018 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Mon Aug 20 08:38:34 2018 +0100
----------------------------------------------------------------------
.../org/apache/jena/riot/RDFParserBuilder.java | 2 +-
.../jena/riot/system/ErrorHandlerFactory.java | 4 +-
.../jena/sparql/core/DynamicDatasets.java | 5 +-
.../java/org/apache/jena/sparql/core/Quad.java | 4 +-
.../org/apache/jena/sparql/util/NodeUtils.java | 33 ++-
.../org/apache/jena/atlas/lib/ListUtils.java | 110 ++++----
.../java/org/apache/jena/tdb2/DatabaseMgr.java | 13 +-
.../java/org/apache/jena/tdb2/TDB2Factory.java | 11 +-
.../jena/tdb2/solver/StageMatchTuple.java | 2 +-
.../java/org/apache/jena/tdb2/store/NodeId.java | 2 +-
.../apache/jena/tdb2/store/NodeIdFactory.java | 9 +-
.../TupleIndexRecordAsyncBulkAdd.java | 263 ------------------
.../apache/jena/fuseki/cmds/FusekiBasicCmd.java | 25 +-
.../java/org/apache/jena/fuseki/Fuseki.java | 8 +-
.../fuseki/server/DataAccessPointRegistry.java | 6 +-
.../jena/fuseki/servlets/ActionService.java | 3 +-
.../jena/fuseki/servlets/SPARQL_Query.java | 79 +++++-
.../servlets/ServiceDispatchRegistry.java | 24 +-
.../jena/fuseki/servlets/ServiceRouter.java | 18 +-
.../jena/fuseki/embedded/FusekiServer.java | 275 ++++++++++++-------
.../jena/fuseki/embedded/FusekiTestAuth.java | 12 +-
.../jena/fuseki/embedded/FusekiTestServer.java | 2 +-
.../fuseki/embedded/TestEmbeddedFuseki.java | 24 +-
.../embedded/TestFusekiCustomOperation.java | 12 +-
.../fuseki/embedded/TestMultipleEmbedded.java | 16 +-
.../examples/ExtendFuseki_AddService_1.java | 4 +-
.../examples/ExtendFuseki_AddService_2.java | 4 +-
.../examples/ExtendFuseki_AddService_3.java | 4 +-
.../TestRDFConnectionFusekiBinary.java | 2 +-
.../rdfconnection/TestRDFConnectionRemote.java | 2 +-
.../java/org/apache/jena/tdb/TDBFactory.java | 21 +-
31 files changed, 474 insertions(+), 525 deletions(-)
----------------------------------------------------------------------
[12/19] jena git commit: Comments and internal rename.
Posted by an...@apache.org.
Comments and internal rename.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/ae74347f
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/ae74347f
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/ae74347f
Branch: refs/heads/master
Commit: ae74347f3607427e88561c854f26903cc880f310
Parents: 99180e5
Author: Andy Seaborne <an...@apache.org>
Authored: Thu Aug 16 16:12:44 2018 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu Aug 16 16:12:44 2018 +0100
----------------------------------------------------------------------
.../java/org/apache/jena/tdb2/solver/StageMatchTuple.java | 2 +-
.../src/main/java/org/apache/jena/tdb2/store/NodeId.java | 2 +-
.../main/java/org/apache/jena/tdb2/store/NodeIdFactory.java | 9 +++++----
3 files changed, 7 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/ae74347f/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/solver/StageMatchTuple.java
----------------------------------------------------------------------
diff --git a/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/solver/StageMatchTuple.java b/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/solver/StageMatchTuple.java
index 397a4d6..51d7981 100644
--- a/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/solver/StageMatchTuple.java
+++ b/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/solver/StageMatchTuple.java
@@ -85,7 +85,7 @@ public class StageMatchTuple extends RepeatApplyIterator<BindingNodeId>
{
// ---- Convert to NodeIds
NodeId ids[] = new NodeId[patternTuple.len()] ;
- // Variables for this tuple after subsitution
+ // Variables for this tuple after substitution
final Var[] var = new Var[patternTuple.len()] ;
boolean b = prepare(nodeTupleTable.getNodeTable(), patternTuple, input, ids, var) ;
http://git-wip-us.apache.org/repos/asf/jena/blob/ae74347f/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/store/NodeId.java
----------------------------------------------------------------------
diff --git a/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/store/NodeId.java b/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/store/NodeId.java
index be6f6a0..e4932b9 100644
--- a/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/store/NodeId.java
+++ b/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/store/NodeId.java
@@ -39,7 +39,7 @@ public class NodeId implements Comparable<NodeId>
public static final NodeId NodeIdUndefined = makeSpecial(0xA6);
private static NodeId makeSpecial(long v) {
- // Careful of an initialzer loop (create(type, v1, v2) looks at specials).
+ // Careful of an initializer loop (create(type, v1, v2) looks at specials).
return NodeIdFactory.createValue(SPECIAL, v);
}
http://git-wip-us.apache.org/repos/asf/jena/blob/ae74347f/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/store/NodeIdFactory.java
----------------------------------------------------------------------
diff --git a/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/store/NodeIdFactory.java b/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/store/NodeIdFactory.java
index 8273474..4c58f7f 100644
--- a/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/store/NodeIdFactory.java
+++ b/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/store/NodeIdFactory.java
@@ -38,6 +38,7 @@ public class NodeIdFactory
// In-memory - always int-long
// XXX Chance for a cache?
+ // See also TupleIndexRecord.
private static NodeId create(NodeIdType type, int v1, long v2) {
if ( isSpecial(type) ) {
@@ -56,12 +57,13 @@ public class NodeIdFactory
return createNew(type, v1, v2);
}
+ /** Make a NodeId of type and value - the value is assumed to be the right format for the type. */
public static NodeId createValue(NodeIdType type, long value) {
- // 64 bit.
return createNew(type, 0, value);
}
private static NodeId createNew(NodeIdType type, int v1, long v2) {
+ // Create general NodeId form.
return NodeId.createRaw(type, v1, v2);
}
@@ -76,7 +78,7 @@ public class NodeIdFactory
// ---- Create from binary.
// 64 bit create
- private static NodeId create(long value2) {
+ private static NodeId create64(long value2) {
if ( !BitsLong.isSet(value2, 63) )
return createPtr(value2);
// Inline.
@@ -94,7 +96,6 @@ public class NodeIdFactory
return NodeId.createRaw(type, v2);
}
- // Long create.
private static NodeId create(int v1, long v2) {
if ( !BitsInt.isSet(v1, 32) )
return createPtrLong(v1, v2);
@@ -130,7 +131,7 @@ public class NodeIdFactory
// 64 bit version
private static NodeId decode(long value2) {
- return NodeIdFactory.create(value2);
+ return NodeIdFactory.create64(value2);
}
/** Not relative - set at position zero */