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 2017/12/17 19:33:43 UTC
[11/28] jena git commit: Per-server verbose setting
Per-server verbose setting
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/2a78ef8d
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/2a78ef8d
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/2a78ef8d
Branch: refs/heads/master
Commit: 2a78ef8d1ecb8481fd4fdea59439525951c1956c
Parents: be57485
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Nov 24 23:13:12 2017 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Mon Dec 11 14:56:08 2017 +0000
----------------------------------------------------------------------
.../java/org/apache/jena/fuseki/Fuseki.java | 18 ++++++++++++++-
.../apache/jena/fuseki/build/FusekiBuilder.java | 23 ++++++++++----------
.../apache/jena/fuseki/jetty/JettyFuseki.java | 2 --
.../jena/fuseki/server/FusekiInitialConfig.java | 3 ++-
.../fuseki/server/FusekiServerListener.java | 10 ++++-----
.../apache/jena/fuseki/servlets/ActionBase.java | 3 +--
.../apache/jena/fuseki/servlets/HttpAction.java | 5 ++---
.../jena/fuseki/embedded/FusekiServer.java | 10 ++++++++-
8 files changed, 48 insertions(+), 26 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/2a78ef8d/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 4a4d4bd..639a1dd 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
@@ -22,6 +22,8 @@ import java.util.Calendar ;
import java.util.TimeZone ;
import java.util.concurrent.TimeUnit ;
+import javax.servlet.ServletContext;
+
import org.apache.jena.atlas.lib.DateTimeUtils ;
import org.apache.jena.query.ARQ ;
import org.apache.jena.riot.system.stream.LocatorFTP ;
@@ -176,9 +178,23 @@ public class Fuseki {
/** Instance of log for config server messages. */
public static final Logger configLog = LoggerFactory.getLogger(configLogName) ;
- /** Instance of log for config server message s */
+ /** Instance of log for config server messages.
+ * This is the global default used to set attribute
+ * in each server created.
+ */
public static boolean verboseLogging = false ;
+ /** ServletContext attibute for "verbose" - the value of the attirbiye is a Boolean */
+ public static String attrVerbose = "jena-fuseki:verbose" ;
+
+ public static void setVerbose(ServletContext cxt, boolean verbose) {
+ cxt.setAttribute(attrVerbose, Boolean.valueOf(verbose));
+ }
+
+ public static boolean getVerbose(ServletContext cxt) {
+ return (Boolean)cxt.getAttribute(attrVerbose);
+ }
+
/**
* An instance of management for stream opening, including redirecting
* through a location mapper whereby a name (e.g. URL) is redirected to
http://git-wip-us.apache.org/repos/asf/jena/blob/2a78ef8d/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/build/FusekiBuilder.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/build/FusekiBuilder.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/build/FusekiBuilder.java
index 9a177fb..19f2745 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/build/FusekiBuilder.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/build/FusekiBuilder.java
@@ -47,12 +47,9 @@ import org.apache.jena.rdf.model.Resource ;
import org.apache.jena.sparql.core.DatasetGraph ;
import org.apache.jena.sparql.util.FmtUtils ;
import org.apache.jena.vocabulary.RDF ;
-import org.slf4j.Logger ;
public class FusekiBuilder
{
- private static Logger log = Fuseki.builderLog ;
-
/** Build a DataAccessPoint, including DataService, from the description at Resource svc */
public static DataAccessPoint buildDataAccessPoint(Resource svc, DatasetDescriptionRegistry dsDescMap) {
RDFNode n = FusekiLib.getOne(svc, "fu:name") ;
@@ -72,7 +69,6 @@ public class FusekiBuilder
/** Build a DatasetRef starting at Resource svc, having the services as described by the descriptions. */
private static DataService buildDataServiceCustom(Resource svc, DatasetDescriptionRegistry dsDescMap) {
- if ( log.isDebugEnabled() ) log.debug("Service: " + nodeLabel(svc)) ;
Resource datasetDesc = ((Resource)getOne(svc, "fu:dataset")) ;
Dataset ds = getDataset(datasetDesc, dsDescMap);
@@ -132,24 +128,29 @@ public class FusekiBuilder
/** Build a DataService starting at Resource svc, with the standard (default) set of services */
public static DataService buildDataServiceStd(DatasetGraph dsg, boolean allowUpdate) {
DataService dataService = new DataService(dsg) ;
- addServiceEP(dataService, Operation.Query, "query") ;
- addServiceEP(dataService, Operation.Query, "sparql") ;
+ populateStdServices(dataService, allowUpdate);
+ return dataService ;
+ }
+
+ /** Convenience operation to populate a {@link DataService} with the conventional default services. */
+ public static void populateStdServices(DataService dataService, boolean allowUpdate) {
+ addServiceEP(dataService, Operation.Query, "query") ;
+ addServiceEP(dataService, Operation.Query, "sparql") ;
if ( ! allowUpdate ) {
addServiceEP(dataService, Operation.GSP_R, "data") ;
addServiceEP(dataService, Operation.DatasetRequest_R, "") ;
- return dataService ;
+ return;
}
addServiceEP(dataService, Operation.GSP_RW, "data") ;
addServiceEP(dataService, Operation.GSP_R, "get") ;
addServiceEP(dataService, Operation.Update, "update") ;
addServiceEP(dataService, Operation.Upload, "upload") ;
- // Dispatch needs introspecting on the HTTP request.
addServiceEP(dataService, Operation.DatasetRequest_RW, "") ;
- return dataService ;
}
- private static void addServiceEP(DataService dataService, Operation operation, String epName) {
- dataService.addEndpoint(operation, epName) ;
+ /** Add an operation to a {@link DataService} with a given endpoint name */
+ public static void addServiceEP(DataService dataService, Operation operation, String endpointName) {
+ dataService.addEndpoint(operation, endpointName) ;
}
public static RDFNode getOne(Resource svc, String property) {
http://git-wip-us.apache.org/repos/asf/jena/blob/2a78ef8d/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/jetty/JettyFuseki.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/jetty/JettyFuseki.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/jetty/JettyFuseki.java
index 1c3670b..483fb65 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/jetty/JettyFuseki.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/jetty/JettyFuseki.java
@@ -90,8 +90,6 @@ public class JettyFuseki {
*/
public static void initializeServer(JettyServerConfig config) {
- // Currently server-wide.
- Fuseki.verboseLogging = config.verboseLogging ;
instance = new JettyFuseki(config) ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/2a78ef8d/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiInitialConfig.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiInitialConfig.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiInitialConfig.java
index 8e66502..5c44802 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiInitialConfig.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiInitialConfig.java
@@ -21,12 +21,13 @@ package org.apache.jena.fuseki.server;
import java.util.HashMap ;
import java.util.Map ;
+import org.apache.jena.fuseki.Fuseki;
import org.apache.jena.sparql.core.DatasetGraph ;
/** Dataset setup (command line, config file) for a dataset (or several if config file) */
public class FusekiInitialConfig {
public boolean quiet = false ;
- public boolean verbose = false ;
+ public boolean verbose = Fuseki.verboseLogging ;
// Priority order : --conf, templated
// through the command line processing should not allow --conf and a templated /dataset.
http://git-wip-us.apache.org/repos/asf/jena/blob/2a78ef8d/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiServerListener.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiServerListener.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiServerListener.java
index ce8bb10..ba3d85b 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiServerListener.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiServerListener.java
@@ -88,13 +88,13 @@ public class FusekiServerListener implements ServletContextListener {
initialSetup.fusekiServerConfigFile = cfg ;
}
- if ( initialSetup != null ) {
- FusekiSystem.initializeDataAccessPoints(dataAccessPointRegistry,
- initialSetup, FusekiSystem.dirConfiguration.toString()) ;
- } else {
+ if ( initialSetup == null ) {
Fuseki.serverLog.error("No configuration") ;
throw new FusekiException("No configuration") ;
- }
+ }
+ Fuseki.setVerbose(servletContext, initialSetup.verbose);
+ FusekiSystem.initializeDataAccessPoints(dataAccessPointRegistry,
+ initialSetup, FusekiSystem.dirConfiguration.toString()) ;
} catch (Throwable th) {
Fuseki.serverLog.error("Exception in initialization: {}", th.getMessage()) ;
throw th ;
http://git-wip-us.apache.org/repos/asf/jena/blob/2a78ef8d/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ActionBase.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ActionBase.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ActionBase.java
index c8a8f57..3a61e90 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ActionBase.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ActionBase.java
@@ -29,7 +29,6 @@ import javax.servlet.http.HttpServletResponse ;
import org.apache.jena.atlas.RuntimeIOException ;
import org.apache.jena.atlas.web.HttpException;
-import org.apache.jena.fuseki.Fuseki ;
import org.apache.jena.query.ARQ ;
import org.apache.jena.query.QueryCancelledException ;
import org.apache.jena.riot.web.HttpNames ;
@@ -131,7 +130,7 @@ public abstract class ActionBase extends ServletBase
*/
protected HttpAction allocHttpAction(long id, HttpServletRequest request, HttpServletResponse response) {
// Need a way to set verbose logging on a per servlet and per request basis.
- return new HttpAction(id, log, request, response, Fuseki.verboseLogging) ;
+ return new HttpAction(id, log, request, response);
}
/**
http://git-wip-us.apache.org/repos/asf/jena/blob/2a78ef8d/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/HttpAction.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/HttpAction.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/HttpAction.java
index 9c10db1..f3f658b 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/HttpAction.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/HttpAction.java
@@ -102,16 +102,15 @@ public class HttpAction
* @param log Logger for this action
* @param request HTTP request
* @param response HTTP response
- * @param verbose verbose flag
*/
- public HttpAction(long id, Logger log, HttpServletRequest request, HttpServletResponse response, boolean verbose) {
+ public HttpAction(long id, Logger log, HttpServletRequest request, HttpServletResponse response) {
this.id = id ;
this.log = log ;
this.request = request ;
this.response = new HttpServletResponseTracker(this, response) ;
// Should this be set when setDataset is called from the dataset context?
// Currently server-wide, e.g. from the command line.
- this.verbose = verbose ;
+ this.verbose = Fuseki.getVerbose(request.getServletContext());
this.contextPath = request.getServletContext().getContextPath() ;
this.actionURI = ActionLib.actionURI(request) ;
this.serviceDispatchRegistry = ServiceDispatchRegistry.get(request.getServletContext()) ;
http://git-wip-us.apache.org/repos/asf/jena/blob/2a78ef8d/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 ae38265..f7c837a 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
@@ -176,6 +176,7 @@ public class FusekiServer {
private int port = 3330 ;
private boolean loopback = false ;
private boolean withStats = false ;
+ private boolean verbose = false ;
// Other servlets to add.
private List<Pair<String, HttpServlet>> other = new ArrayList<>();
private String contextPath = "/" ;
@@ -221,6 +222,12 @@ public class FusekiServer {
this.securityHandler = securityHandler;
return this;
}
+
+ /** Set verbose logging */
+ public Builder setVerbose(boolean verbose) {
+ this.verbose = verbose;
+ return this;
+ }
/** Add the "/$/stats" servlet that responds with stats about the server,
* including counts of all calls made.
@@ -300,6 +307,8 @@ public class FusekiServer {
}) ;
ServletContextHandler handler = buildServletContext(contextPath, registry) ;
+ Fuseki.setVerbose(handler.getServletContext(), verbose);
+
ServiceDispatchRegistry.set(handler.getServletContext(), serviceRegistry);
setMimeTypes(handler);
@@ -374,7 +383,6 @@ public class FusekiServer {
staticContent.setInitParameter("resourceBase", staticContentDir) ;
context.addServlet(staticContent, "/");
}
-
}
private static void addServlet(ServletContextHandler context, String pathspec, HttpServlet httpServlet) {