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 2012/08/08 15:45:32 UTC
svn commit: r1370762 - in /jena/trunk/jena-fuseki/src:
main/java/org/apache/jena/fuseki/servlets/SPARQL_Dataset.java
test/java/org/apache/jena/fuseki/BaseServerTest.java
Author: andy
Date: Wed Aug 8 13:45:32 2012
New Revision: 1370762
URL: http://svn.apache.org/viewvc?rev=1370762&view=rev
Log:
Tidy up and note sissues around servlet filter chains for redirected operations.
Modified:
jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Dataset.java
jena/trunk/jena-fuseki/src/test/java/org/apache/jena/fuseki/BaseServerTest.java
Modified: jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Dataset.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Dataset.java?rev=1370762&r1=1370761&r2=1370762&view=diff
==============================================================================
--- jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Dataset.java (original)
+++ jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Dataset.java Wed Aug 8 13:45:32 2012
@@ -80,6 +80,18 @@ public class SPARQL_Dataset extends SPAR
private SPARQL_ServletBase restServlet_RW = new SPARQL_REST_RW(verbose_debug) ;
private SPARQL_ServletBase restServlet_R = new SPARQL_REST_R(verbose_debug) ;
private SPARQL_ServletBase restQuads = new REST_Quads(verbose_debug) ;
+
+
+ private String getEPName(String dsname, List<String> endpoints)
+ {
+ if (endpoints == null || endpoints.size() == 0) return null ;
+ String x = endpoints.get(0) ;
+ if ( ! dsname.endsWith("/") )
+ x = dsname+"/"+x ;
+ else
+ x = dsname+x ;
+ return x ;
+ }
@Override
protected void validate(HttpServletRequest request)
@@ -87,6 +99,9 @@ public class SPARQL_Dataset extends SPAR
// already checked in SPARQ_Dataset?
}
+ // Developement : calls to other srvlets marked ****
+ // This will need to do a proper servlet dispatch if they are going to be filterd (security, compression).
+
@Override
protected void doCommonWorker(long id, HttpServletRequest request, HttpServletResponse response)
{
@@ -115,15 +130,17 @@ public class SPARQL_Dataset extends SPAR
{
if ( trailing.length() != 0 )
{
- // Direct naming
+ // Direct naming to indirect naming.
String absURI = request.getRequestURL().toString() ;
HttpActionREST a = new HttpActionREST(id, desc, absURI, request, response, verbose_debug) ;
// Conneg.
// Check access.
+ // ****
new SPARQL_REST_RW(verbose_debug).dispatch(a) ;
}
else
{
+ // Direct action on the dataset itself.
restQuads.doCommonWorker(id, request, response) ;
return ;
}
@@ -160,15 +177,26 @@ public class SPARQL_Dataset extends SPAR
// Check an endpoint is registered.
if ( hasParamQuery )
{
- if ( desc.queryEP.size() > 0 )
- queryServlet.doCommonWorker(id, request, response) ;
- else
+ // Call by dispatch - follows the servlet chain.
+ String x = getEPName(desc.name, desc.queryEP) ;
+ if ( x == null )
errorMethodNotAllowed(method) ;
+ else
+ {
+ //request.setAttribute("org.apache.jena.fuseki.id", id) ;
+ forwardServlet(x, request, response) ;
+ }
+ // Call direct.
+// if ( desc.queryEP.size() > 0 )
+// queryServlet.doCommonWorker(id, request, response) ;
+// else
+// errorMethodNotAllowed(method) ;
}
if ( hasParamRequest )
{
if ( desc.updateEP.size() > 0 )
+ // ****
updateServlet.doCommonWorker(id, request, response) ;
else
errorMethodNotAllowed(method) ;
@@ -177,8 +205,10 @@ public class SPARQL_Dataset extends SPAR
if ( hasParamGraph )
{
if ( desc.readWriteGraphStoreEP.size() > 0 )
+ // ****
restServlet_RW.doCommonWorker(id, request, response) ;
else if ( desc.readGraphStoreEP.size() > 0 )
+ // ****
restServlet_R.doCommonWorker(id, request, response) ;
else
errorMethodNotAllowed(method) ;
@@ -206,6 +236,17 @@ public class SPARQL_Dataset extends SPAR
return true ;
}
+ private void forwardServlet(String target, HttpServletRequest request, HttpServletResponse response)
+ {
+ try
+ {
+ // relative
+ request.getRequestDispatcher(target).forward(request, response) ;
+
+ // Absolute
+ // getServletContext().getRequestDispatcher(target)
+ } catch (Exception e) { errorOccurred(e) ; }
+ }
@Override
protected void perform(long id, DatasetRef desc, HttpServletRequest request, HttpServletResponse response)
Modified: jena/trunk/jena-fuseki/src/test/java/org/apache/jena/fuseki/BaseServerTest.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-fuseki/src/test/java/org/apache/jena/fuseki/BaseServerTest.java?rev=1370762&r1=1370761&r2=1370762&view=diff
==============================================================================
--- jena/trunk/jena-fuseki/src/test/java/org/apache/jena/fuseki/BaseServerTest.java (original)
+++ jena/trunk/jena-fuseki/src/test/java/org/apache/jena/fuseki/BaseServerTest.java Wed Aug 8 13:45:32 2012
@@ -32,8 +32,6 @@ public class BaseServerTest extends Base
public static final String serviceQuery = "http://localhost:"+ServerTest.port+datasetPath+"/query" ;
public static final String serviceREST = "http://localhost:"+ServerTest.port+datasetPath+"/data" ; // ??????
-
-
protected static final String gn1 = "http://graph/1" ;
protected static final String gn2 = "http://graph/2" ;
protected static final String gn99 = "http://graph/99" ;