Repository: jena Updated Branches: refs/heads/master ae299cf67 -> a6937c83b
Reduce direct use of DataAccessPointRegistry.get() Steps towards removing all static configuration globals. Project: http://git-wip-us.apache.org/repos/asf/jena/repo Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/a6937c83 Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/a6937c83 Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/a6937c83 Branch: refs/heads/master Commit: a6937c83b210b17dc956dd384ea958267015bda5 Parents: ae299cf Author: Andy Seaborne <[email protected]> Authored: Fri Aug 5 18:39:46 2016 +0100 Committer: Andy Seaborne <[email protected]> Committed: Fri Aug 5 18:39:46 2016 +0100 ---------------------------------------------------------------------- .../org/apache/jena/fuseki/mgt/ActionCtl.java | 3 +-- .../apache/jena/fuseki/mgt/ActionDatasets.java | 14 +++++------ .../jena/fuseki/mgt/ActionServerStatus.java | 6 ++--- .../org/apache/jena/fuseki/mgt/ActionStats.java | 25 ++++++++++++-------- .../apache/jena/fuseki/mgt/JsonDescription.java | 2 +- .../apache/jena/fuseki/servlets/ActionLib.java | 4 ++-- .../jena/fuseki/servlets/ActionSPARQL.java | 2 +- .../apache/jena/fuseki/servlets/HttpAction.java | 14 +++++++---- .../jena/fuseki/servlets/SPARQL_GSP_R.java | 4 +++- .../fuseki/servlets/SPARQL_UberServlet.java | 2 +- 10 files changed, 44 insertions(+), 32 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jena/blob/a6937c83/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/ActionCtl.java ---------------------------------------------------------------------- diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/ActionCtl.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/ActionCtl.java index c0bbb41..d78517d 100644 --- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/ActionCtl.java +++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/ActionCtl.java @@ -20,7 +20,6 @@ package org.apache.jena.fuseki.mgt; import org.apache.jena.fuseki.Fuseki ; 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.servlets.ActionBase ; import org.apache.jena.fuseki.servlets.HttpAction ; @@ -41,7 +40,7 @@ public abstract class ActionCtl extends ActionBase String datasetUri = mapRequestToDatasetName(action) ; if ( datasetUri != null ) { - dataAccessPoint = DataAccessPointRegistry.get().get(datasetUri) ; + dataAccessPoint = action.getDataAccessPointRegistry().get(datasetUri) ; if ( dataAccessPoint == null ) { ServletOps.errorNotFound("Not found: "+datasetUri) ; return ; http://git-wip-us.apache.org/repos/asf/jena/blob/a6937c83/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/ActionDatasets.java ---------------------------------------------------------------------- diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/ActionDatasets.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/ActionDatasets.java index 1157e51..cf6cae8 100644 --- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/ActionDatasets.java +++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/ActionDatasets.java @@ -90,7 +90,7 @@ public class ActionDatasets extends ActionContainerItem { JsonBuilder builder = new JsonBuilder() ; builder.startObject("D") ; builder.key(JsonConst.datasets) ; - JsonDescription.arrayDatasets(builder, DataAccessPointRegistry.get()); + JsonDescription.arrayDatasets(builder, action.getDataAccessPointRegistry()); builder.finishObject("D") ; return builder.build() ; } @@ -99,7 +99,7 @@ public class ActionDatasets extends ActionContainerItem { protected JsonValue execGetItem(HttpAction action) { action.log.info(format("[%d] GET dataset %s", action.id, action.getDatasetName())) ; JsonBuilder builder = new JsonBuilder() ; - DataAccessPoint dsDesc = DataAccessPointRegistry.get().get(action.getDatasetName()) ; + DataAccessPoint dsDesc = action.getDataAccessPointRegistry().get(action.getDatasetName()) ; if ( dsDesc == null ) ServletOps.errorNotFound("Not found: dataset "+action.getDatasetName()); JsonDescription.describe(builder, dsDesc) ; @@ -184,7 +184,7 @@ public class ActionDatasets extends ActionContainerItem { // System.err.println("'"+datasetPath+"'") ; // DataAccessPointRegistry.get().forEach((s,dap)->System.err.println("'"+s+"'")); // ---- Check whether it already exists - if ( DataAccessPointRegistry.get().isRegistered(datasetPath) ) + if ( action.getDataAccessPointRegistry().isRegistered(datasetPath) ) // And abort. ServletOps.error(HttpSC.CONFLICT_409, "Name already registered "+datasetPath) ; @@ -319,7 +319,7 @@ public class ActionDatasets extends ActionContainerItem { name = "" ; action.log.info(format("[%d] DELETE ds=%s", action.id, name)) ; - if ( ! DataAccessPointRegistry.get().isRegistered(name) ) + if ( ! action.getDataAccessPointRegistry().isRegistered(name) ) ServletOps.errorNotFound("No such dataset registered: "+name); systemDSG.begin(ReadWrite.WRITE) ; @@ -329,13 +329,13 @@ public class ActionDatasets extends ActionContainerItem { // Need to reference count operations when they drop to zero // or a timer goes off, we delete the dataset. - DataAccessPoint ref = DataAccessPointRegistry.get().get(name) ; + DataAccessPoint ref = action.getDataAccessPointRegistry().get(name) ; // Redo check inside transaction. if ( ref == null ) ServletOps.errorNotFound("No such dataset registered: "+name); // Make it invisible to the outside. - DataAccessPointRegistry.get().remove(name) ; + action.getDataAccessPointRegistry().remove(name) ; // Delete configuration file. // Should be only one, undo damage if multiple. FusekiEnv.existingConfigurationFile(name).stream().forEach(FileOps::deleteSilent); @@ -361,7 +361,7 @@ public class ActionDatasets extends ActionContainerItem { } // Remove the configuration file (if any). - DataAccessPointRegistry.get().remove(name) ; + action.getDataAccessPointRegistry().remove(name) ; } // Persistent state change. http://git-wip-us.apache.org/repos/asf/jena/blob/a6937c83/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/ActionServerStatus.java ---------------------------------------------------------------------- diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/ActionServerStatus.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/ActionServerStatus.java index a8acd1b..6102383 100644 --- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/ActionServerStatus.java +++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/ActionServerStatus.java @@ -70,7 +70,7 @@ public class ActionServerStatus extends ActionCtl JsonBuilder builder = new JsonBuilder() ; builder.startObject() ; describeServer(builder, action.request.getLocalPort()) ; - describeDatasets(builder) ; + describeDatasets(builder, action.getDataAccessPointRegistry()) ; builder.finishObject() ; JsonValue v = builder.build() ; @@ -107,9 +107,9 @@ public class ActionServerStatus extends ActionCtl } - private void describeDatasets(JsonBuilder builder) { + private void describeDatasets(JsonBuilder builder, DataAccessPointRegistry registry) { builder.key(JsonConst.datasets) ; - JsonDescription.arrayDatasets(builder, DataAccessPointRegistry.get()); + JsonDescription.arrayDatasets(builder, registry); } } http://git-wip-us.apache.org/repos/asf/jena/blob/a6937c83/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/ActionStats.java ---------------------------------------------------------------------- diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/ActionStats.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/ActionStats.java index 82af759..b44e678 100644 --- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/ActionStats.java +++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/ActionStats.java @@ -49,8 +49,10 @@ public class ActionStats extends ActionContainerItem builder.key(JsonConst.datasets) ; builder.startObject("datasets") ; - for ( String ds : DataAccessPointRegistry.get().keys() ) - statsDataset(builder, ds) ; + for ( String ds : action.getDataAccessPointRegistry().keys() ) { + DataAccessPoint access = action.getDataAccessPointRegistry().get(ds) ; + statsDataset(builder, access) ; + } builder.finishObject("datasets") ; builder.finishObject("top") ; @@ -67,18 +69,21 @@ public class ActionStats extends ActionContainerItem builder.key(JsonConst.datasets) ; builder.startObject("datasets") ; - statsDataset(builder, datasetPath) ; + statsDataset(builder, datasetPath, action.getDataAccessPointRegistry()) ; builder.finishObject("datasets") ; builder.finishObject("TOP") ; return builder.build() ; } - private void statsDataset(JsonBuilder builder, String ds) { + private void statsDataset(JsonBuilder builder, String name, DataAccessPointRegistry registry) { + DataAccessPoint access = registry.get(name) ; + statsDataset(builder, access); + } + + private void statsDataset(JsonBuilder builder, DataAccessPoint access) { // Object started - builder.key(ds) ; - - DataAccessPoint access = DataAccessPointRegistry.get().get(ds) ; + builder.key(access.getName()) ; DataService dSrv = access.getDataService() ; builder.startObject("counters") ; @@ -131,17 +136,17 @@ public class ActionStats extends ActionContainerItem } } - private void statsTxt(HttpServletResponse resp) throws IOException + private void statsTxt(HttpServletResponse resp, DataAccessPointRegistry registry) throws IOException { ServletOutputStream out = resp.getOutputStream() ; resp.setContentType(contentTypeTextPlain); resp.setCharacterEncoding(charsetUTF8) ; - Iterator<String> iter = DataAccessPointRegistry.get().keys().iterator() ; + Iterator<String> iter = registry.keys().iterator() ; while(iter.hasNext()) { String ds = iter.next() ; - DataAccessPoint desc = DataAccessPointRegistry.get().get(ds) ; + DataAccessPoint desc = registry.get(ds) ; statsTxt(out, desc) ; if ( iter.hasNext() ) out.println() ; http://git-wip-us.apache.org/repos/asf/jena/blob/a6937c83/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/JsonDescription.java ---------------------------------------------------------------------- diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/JsonDescription.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/JsonDescription.java index f54ead2..8f0d939 100644 --- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/JsonDescription.java +++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/JsonDescription.java @@ -32,7 +32,7 @@ public class JsonDescription { public static void arrayDatasets(JsonBuilder builder, DataAccessPointRegistry registry) { builder.startArray() ; for ( String ds : registry.keys() ) { - DataAccessPoint access = DataAccessPointRegistry.get().get(ds) ; + DataAccessPoint access = registry.get(ds) ; JsonDescription.describe(builder, access) ; } builder.finishArray() ; http://git-wip-us.apache.org/repos/asf/jena/blob/a6937c83/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ActionLib.java ---------------------------------------------------------------------- diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ActionLib.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ActionLib.java index 182b46e..ae911d0 100644 --- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ActionLib.java +++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ActionLib.java @@ -78,7 +78,7 @@ public class ActionLib { * the longest match in the registry. * This includes use in direct naming GSP. */ - public static String mapRequestToDatasetLongest$(String uri) + public static String mapRequestToDatasetLongest$(String uri, DataAccessPointRegistry registry) { if ( uri == null ) return null ; @@ -88,7 +88,7 @@ public class ActionLib { // forms. String ds = null ; - for ( String ds2 : DataAccessPointRegistry.get().keys() ) { + for ( String ds2 : registry.keys() ) { if ( ! uri.startsWith(ds2) ) continue ; http://git-wip-us.apache.org/repos/asf/jena/blob/a6937c83/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ActionSPARQL.java ---------------------------------------------------------------------- diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ActionSPARQL.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ActionSPARQL.java index 6a4a267..f74eacc 100644 --- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ActionSPARQL.java +++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ActionSPARQL.java @@ -59,7 +59,7 @@ public abstract class ActionSPARQL extends ActionBase String datasetUri = mapRequestToDataset(action) ; if ( datasetUri != null ) { - dataAccessPoint = DataAccessPointRegistry.get().get(datasetUri) ; + dataAccessPoint = action.getDataAccessPointRegistry().get(datasetUri) ; if ( dataAccessPoint == null ) { ServletOps.errorNotFound("No dataset for URI: "+datasetUri) ; return ; http://git-wip-us.apache.org/repos/asf/jena/blob/a6937c83/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 33a77ed..41dc250 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 @@ -30,10 +30,7 @@ import javax.servlet.http.HttpServletResponse ; import org.apache.jena.atlas.logging.Log ; import org.apache.jena.fuseki.Fuseki ; import org.apache.jena.fuseki.FusekiException ; -import org.apache.jena.fuseki.server.DataAccessPoint ; -import org.apache.jena.fuseki.server.DataService ; -import org.apache.jena.fuseki.server.Endpoint ; -import org.apache.jena.fuseki.server.RequestLog ; +import org.apache.jena.fuseki.server.* ; import org.apache.jena.query.ReadWrite ; import org.apache.jena.sparql.SystemARQ ; import org.apache.jena.sparql.core.DatasetGraph ; @@ -94,6 +91,8 @@ public class HttpAction public HttpServletResponseTracker response ; private final String actionURI ; private final String contextPath ; + // Currently, global. + private final DataAccessPointRegistry dataAccessPointRegistry ; /** * Creates a new HTTP Action, using the HTTP request and response, and a given ID. @@ -114,6 +113,7 @@ public class HttpAction this.verbose = verbose ; this.contextPath = request.getServletContext().getContextPath() ; this.actionURI = ActionLib.actionURI(request) ; + this.dataAccessPointRegistry = DataAccessPointRegistry.get() ; } /** Initialization after action creation during lifecycle setup. @@ -226,6 +226,12 @@ public class HttpAction return contextPath ; } + /** + * Get the DataAccessPointRegistry for this action + */ + public DataAccessPointRegistry getDataAccessPointRegistry() { + return dataAccessPointRegistry ; + } /** Set the endpoint and endpoint name that this is an action for. * @param srvRef {@link Endpoint} http://git-wip-us.apache.org/repos/asf/jena/blob/a6937c83/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_GSP_R.java ---------------------------------------------------------------------- diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_GSP_R.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_GSP_R.java index 632f3d6..e385c55 100644 --- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_GSP_R.java +++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_GSP_R.java @@ -40,7 +40,9 @@ public class SPARQL_GSP_R extends SPARQL_GSP { super() ; } @Override - protected String mapRequestToDataset(HttpAction action) { return ActionLib.mapRequestToDatasetLongest$(action.request.getRequestURI()) ; } + protected String mapRequestToDataset(HttpAction action) { + return ActionLib.mapRequestToDatasetLongest$(action.request.getRequestURI(), action.getDataAccessPointRegistry()) ; + } @Override protected void doGet(HttpAction action) { http://git-wip-us.apache.org/repos/asf/jena/blob/a6937c83/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_UberServlet.java ---------------------------------------------------------------------- diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_UberServlet.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_UberServlet.java index d04a3a3..ae2dd5c 100644 --- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_UberServlet.java +++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_UberServlet.java @@ -141,7 +141,7 @@ public abstract class SPARQL_UberServlet extends ActionSPARQL @Override protected String mapRequestToDataset(HttpAction action) { String uri = ActionLib.removeContextPath(action) ; - return ActionLib.mapRequestToDatasetLongest$(uri) ; + return ActionLib.mapRequestToDatasetLongest$(uri, action.getDataAccessPointRegistry()) ; } /** Intercept the processing cycle at the point where the action has been set up,
