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 2013/12/14 19:37:39 UTC
svn commit: r1550963 - in /jena/branches/jena-fuseki-new-ui: ./ src-dev/dev/
src-dev/webapp/ src/main/java/org/apache/jena/fuseki/server/
src/main/java/org/apache/jena/fuseki/servlets/
Author: andy
Date: Sat Dec 14 18:37:38 2013
New Revision: 1550963
URL: http://svn.apache.org/r1550963
Log:
Pull material for webapp deployment into main codebase.
Added:
jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/FusekiFilter.java
- copied, changed from r1550786, jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_UberFilter.java
Removed:
jena/branches/jena-fuseki-new-ui/src-dev/webapp/
jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_UberFilter.java
Modified:
jena/branches/jena-fuseki-new-ui/src-dev/dev/PROJECT.java
jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/server/FusekiServletContextListener.java
jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/server/SPARQLServer.java
jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/ActionBase.java
jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/ActionLib.java
jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_UberServlet.java
jena/branches/jena-fuseki-new-ui/war-web.xml
Modified: jena/branches/jena-fuseki-new-ui/src-dev/dev/PROJECT.java
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/src-dev/dev/PROJECT.java?rev=1550963&r1=1550962&r2=1550963&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/src-dev/dev/PROJECT.java (original)
+++ jena/branches/jena-fuseki-new-ui/src-dev/dev/PROJECT.java Sat Dec 14 18:37:38 2013
@@ -32,5 +32,6 @@ public class PROJECT {
// JENA-201 - WAR Fuseki.
// WEB.xml
// ContextPath in uber dispatch.
+ // FusekiServletContextListener
}
Modified: jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/server/FusekiServletContextListener.java
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/server/FusekiServletContextListener.java?rev=1550963&r1=1550962&r2=1550963&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/server/FusekiServletContextListener.java (original)
+++ jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/server/FusekiServletContextListener.java Sat Dec 14 18:37:38 2013
@@ -18,26 +18,56 @@
package org.apache.jena.fuseki.server;
+import javax.servlet.ServletContext ;
import javax.servlet.ServletContextEvent ;
import javax.servlet.ServletContextListener ;
+import org.apache.jena.fuseki.Fuseki ;
+import org.slf4j.Logger ;
+
public class FusekiServletContextListener implements ServletContextListener {
+ private static Logger confLog = Fuseki.configLog ;
+
// This could do the initialization.
private final SPARQLServer sparqlServer ;
+
+ // Embedded version.
public FusekiServletContextListener(SPARQLServer sparqlServer) {
this.sparqlServer = sparqlServer ;
}
+ // web.xml version.
+ public FusekiServletContextListener() { sparqlServer = null ; }
+
+ // Default.
+ static public String rootDirectory = "/usr/share/fuseki" ;
+// static public String staticContentDir = rootDirectory + "/pages" ;
+ static public String configurationFile = rootDirectory + "/config-fuseki.ttl" ;
+
+ static public ServerConfig serverConfig = null ;
+ static Boolean initialized = false ;
+
@Override
public void contextInitialized(ServletContextEvent sce) {
-// Fuseki.serverLog.info("contextInitialized") ;
-// for ( DatasetRef dsRef : sparqlServer.getDatasets() )
-// Fuseki.serverLog.info("Dataset: "+dsRef.getName()) ;
+ //confLog.info("contextInitialized");
+ ServletContext cxt = sce.getServletContext() ;
+ confLog.info(cxt.getServletContextName()) ;
+ init() ;
}
@Override
- public void contextDestroyed(ServletContextEvent sce) {
-// Fuseki.serverLog.info("contextDestroyed") ;
+ public void contextDestroyed(ServletContextEvent sce) {}
+
+ public static void init() {
+ if ( initialized )
+ return ;
+ synchronized(initialized)
+ {
+ if ( initialized )
+ return ;
+ Fuseki.init() ;
+ confLog.error("Unconverted code - need to find configuration");
+ }
}
}
Modified: jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/server/SPARQLServer.java
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/server/SPARQLServer.java?rev=1550963&r1=1550962&r2=1550963&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/server/SPARQLServer.java (original)
+++ jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/server/SPARQLServer.java Sat Dec 14 18:37:38 2013
@@ -32,8 +32,8 @@ import org.apache.jena.fuseki.FusekiConf
import org.apache.jena.fuseki.FusekiException ;
import org.apache.jena.fuseki.HttpNames ;
import org.apache.jena.fuseki.mgt.MgtFunctions ;
+import org.apache.jena.fuseki.servlets.FusekiFilter ;
import org.apache.jena.fuseki.servlets.SPARQL_QueryGeneral ;
-import org.apache.jena.fuseki.servlets.SPARQL_UberFilter ;
import org.apache.jena.fuseki.servlets.SimpleVelocityServlet ;
import org.apache.jena.fuseki.validation.DataValidator ;
import org.apache.jena.fuseki.validation.IRIValidator ;
@@ -107,7 +107,7 @@ public class SPARQLServer {
// registered, active datasets to the all purpose service dispatch servlet
// SPARQL_UberServlet.
- FilterHolder f = new FilterHolder(new SPARQL_UberFilter()) ;
+ FilterHolder f = new FilterHolder(new FusekiFilter()) ;
EnumSet<DispatcherType> es = EnumSet.allOf(DispatcherType.class) ;
context.addFilter(f, "/*", es);
}
Modified: jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/ActionBase.java
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/ActionBase.java?rev=1550963&r1=1550962&r2=1550963&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/ActionBase.java (original)
+++ jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/ActionBase.java Sat Dec 14 18:37:38 2013
@@ -28,6 +28,7 @@ import javax.servlet.ServletException ;
import javax.servlet.http.HttpServletRequest ;
import javax.servlet.http.HttpServletResponse ;
+import org.apache.jena.atlas.logging.Log ;
import org.apache.jena.fuseki.Fuseki ;
import org.apache.jena.fuseki.HttpNames ;
import org.apache.jena.web.HttpSC ;
@@ -47,6 +48,13 @@ public abstract class ActionBase extends
this.log = log ;
}
+ @Override
+ public void init() {
+ Log.info(this, getServletContext().getServletContextName()) ;
+ //super.init() ;
+ }
+
+
// Common framework for handling HTTP requests
protected void doCommon(HttpServletRequest request, HttpServletResponse response)
//throws ServletException, IOException
Modified: jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/ActionLib.java
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/ActionLib.java?rev=1550963&r1=1550962&r2=1550963&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/ActionLib.java (original)
+++ jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/ActionLib.java Sat Dec 14 18:37:38 2013
@@ -104,6 +104,33 @@ public class ActionLib {
return sb.toString() ;
}
+ /*
+ * The context path can be:
+ * "" for the root context
+ * "/webapp" for named contexts
+ * so:
+ * "/dataset/server" becomes "/dataset/server"
+ * "/webapp/dataset/server" becomes "/dataset/server"
+ */
+ public static String removeContextPath(HttpAction action) {
+// Log.info(this, "URI = '"+action.request.getRequestURI()) ;
+// Log.info(this, "Context path = '"+action.request.getContextPath()+"'") ;
+// Log.info(this, "Servlet path = '"+action.request.getServletPath()+"'") ;
+// ServletContext cxt = this.getServletContext() ;
+// Log.info(this, "ServletContext path = '"+cxt.getContextPath()+"'") ;
+
+ String uri = action.request.getRequestURI() ;
+ String contextPath = action.request.getServletContext().getContextPath() ;
+ if ( contextPath == null )
+ return uri ;
+ if ( contextPath.isEmpty())
+ return uri ;
+ String x = uri ;
+ if ( uri.startsWith(contextPath) )
+ x = uri.substring(contextPath.length()) ;
+ //log.info("removeContext: uri = "+uri+" contextPath="+contextPath+ "--> x="+x) ;
+ return x ;
+ }
}
Copied: jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/FusekiFilter.java (from r1550786, jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_UberFilter.java)
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/FusekiFilter.java?p2=jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/FusekiFilter.java&p1=jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_UberFilter.java&r1=1550786&r2=1550963&rev=1550963&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_UberFilter.java (original)
+++ jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/FusekiFilter.java Sat Dec 14 18:37:38 2013
@@ -31,9 +31,8 @@ import org.slf4j.Logger ;
/** Look at all requests and see if they match a registered dataset name;
* if they do, pass down to the uber servlet, which can dispatch any request
* for any service.
- *
*/
-public class SPARQL_UberFilter implements Filter {
+public class FusekiFilter implements Filter {
private static Logger log = Fuseki.requestLog ; //LoggerFactory.getLogger(SomeFilter.class) ;
private static SPARQL_UberServlet überServlet = new SPARQL_UberServlet.AccessByConfig() ;
@@ -41,12 +40,15 @@ public class SPARQL_UberFilter implement
public void init(FilterConfig filterConfig) throws ServletException {}
@Override
- public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
+ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
+ throws IOException, ServletException {
try {
// See SPARQL_Servlet.execCommonWorker
HttpServletRequest req = (HttpServletRequest)request ;
HttpServletResponse resp = (HttpServletResponse)response ;
+ // XXX Context path
+
String uri = req.getRequestURI() ;
String datasetUri = ActionLib.mapRequestToDataset(uri) ;
Modified: jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_UberServlet.java
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_UberServlet.java?rev=1550963&r1=1550962&r2=1550963&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_UberServlet.java (original)
+++ jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_UberServlet.java Sat Dec 14 18:37:38 2013
@@ -122,10 +122,10 @@ public abstract class SPARQL_UberServlet
*/
@Override
protected String mapRequestToDataset(HttpAction action) {
- return ActionLib.mapRequestToDatasetLongest$(action.request.getRequestURI()) ;
+ String uri = ActionLib.removeContextPath(action) ;
+ return ActionLib.mapRequestToDatasetLongest$(uri) ;
}
-
/** Intercept the processing cycle at the point where the action has been set up,
* the dataset target decided but no validation or execution has been done,
* nor any stats have been done.
@@ -133,6 +133,7 @@ public abstract class SPARQL_UberServlet
@Override
protected void executeAction(HttpAction action)
{
+ // XXX Worry about context path.
long id = action.id ;
HttpServletRequest request = action.request ;
HttpServletResponse response = action.response ;
@@ -305,7 +306,7 @@ public abstract class SPARQL_UberServlet
return true ;
}
- /** Find the graph (direct naming) or service name */
+ /** Find part after the dataset name: service name or the graph (direct naming) */
protected String findTrailing(String uri, String dsname)
{
if ( dsname.length() >= uri.length() )
Modified: jena/branches/jena-fuseki-new-ui/war-web.xml
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/war-web.xml?rev=1550963&r1=1550962&r2=1550963&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/war-web.xml (original)
+++ jena/branches/jena-fuseki-new-ui/war-web.xml Sat Dec 14 18:37:38 2013
@@ -11,6 +11,20 @@
<listener-class>webapp.ServerInit</listener-class>
</listener>
+ <filter>
+ <filter-name>FusekiFilter</filter-name>
+ <filter-class>org.apache.jena.fuseki.servlets.SPARQ_UberFilter</filter-class>
+ </filter>
+
+ <filter-mapping>
+ <filter-name>FusekiFilter</filter-name>
+ <url-pattern>/*</url-pattern>
+ <dispatcher>REQUEST</dispatcher>
+ <dispatcher>FORWARD</dispatcher>
+ <dispatcher>INCLUDE</dispatcher>
+ <dispatcher>ERROR</dispatcher>
+ </filter-mapping>
+
<servlet>
<servlet-name>FusekiServlet</servlet-name>
<servlet-class>webapp.FusekiServlet</servlet-class>