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:16 UTC
[17/19] jena git commit: Refactoring: Make ServletContext separately
from the Jetty server.
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();