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/10/13 17:16:39 UTC
svn commit: r1397852 - in
/jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets:
SPARQL_REST_R.java SPARQL_REST_RW.java SPARQL_ServletBase.java
SPARQL_UberServlet.java
Author: andy
Date: Sat Oct 13 15:16:39 2012
New Revision: 1397852
URL: http://svn.apache.org/viewvc?rev=1397852&view=rev
Log:
Fixes for direct naming Graph Store Protocol.
Modified:
jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_REST_R.java
jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_REST_RW.java
jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_ServletBase.java
jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_UberServlet.java
Modified: jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_REST_R.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_REST_R.java?rev=1397852&r1=1397851&r2=1397852&view=diff
==============================================================================
--- jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_REST_R.java (original)
+++ jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_REST_R.java Sat Oct 13 15:16:39 2012
@@ -21,11 +21,13 @@ package org.apache.jena.fuseki.servlets;
import static java.lang.String.format ;
import java.io.IOException ;
+import java.util.Iterator ;
import javax.servlet.ServletOutputStream ;
import org.apache.jena.fuseki.FusekiLib ;
import org.apache.jena.fuseki.HttpNames ;
+import org.apache.jena.fuseki.server.DatasetRegistry ;
import org.openjena.atlas.web.MediaType ;
import org.openjena.atlas.web.TypedOutputStream ;
import org.openjena.riot.Lang ;
@@ -42,6 +44,39 @@ public class SPARQL_REST_R extends SPARQ
public SPARQL_REST_R()
{ this(false) ; }
+
+
+ @Override
+ protected String mapRequestToDataset(String uri)
+ {
+ if ( uri == null )
+ return null ;
+
+ // Mapping a request for GSP needs to find the "best"
+ // (shortest matching) unlike service matching,
+ // which is a matter of removing the service component.
+
+ String ds = null ;
+ Iterator<String> iter = DatasetRegistry.get().keys() ;
+ while(iter.hasNext())
+ {
+ String ds2 = iter.next();
+ if ( ! uri.startsWith(ds2) )
+ continue ;
+
+ if ( ds == null )
+ {
+ ds = ds2 ;
+ continue ;
+ }
+ if ( ds.length() > ds2.length() )
+ {
+ ds = ds2 ;
+ continue ;
+ }
+ }
+ return ds ;
+ }
@Override
protected void doGet(HttpActionREST action)
@@ -63,6 +98,8 @@ public class SPARQL_REST_R extends SPARQ
action.beginRead() ;
try {
+ if ( log.isDebugEnabled() )
+ log.debug("GET->"+action.getTarget()) ;
boolean exists = action.getTarget().exists() ;
if ( ! exists )
errorNotFound("No such graph: <"+action.getTarget().name+">") ;
@@ -90,6 +127,8 @@ public class SPARQL_REST_R extends SPARQ
{
action.beginRead() ;
try {
+ if ( log.isDebugEnabled() )
+ log.debug("HEAD->"+action.getTarget()) ;
if ( ! action.getTarget().exists() )
{
successNotFound(action) ;
Modified: jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_REST_RW.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_REST_RW.java?rev=1397852&r1=1397851&r2=1397852&view=diff
==============================================================================
--- jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_REST_RW.java (original)
+++ jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_REST_RW.java Sat Oct 13 15:16:39 2012
@@ -44,6 +44,8 @@ public class SPARQL_REST_RW extends SPAR
{
action.beginWrite() ;
try {
+ if ( log.isDebugEnabled() )
+ log.debug("DELETE->"+action.getTarget()) ;
boolean existedBefore = action.getTarget().exists() ;
if ( ! existedBefore)
{
@@ -65,6 +67,8 @@ public class SPARQL_REST_RW extends SPAR
action.beginWrite() ;
boolean existedBefore = false ;
try {
+ if ( log.isDebugEnabled() )
+ log.debug("PUT->"+action.getTarget()) ;
existedBefore = action.getTarget().exists() ;
if ( existedBefore )
clearGraph(action.getTarget()) ;
@@ -85,6 +89,8 @@ public class SPARQL_REST_RW extends SPAR
action.beginWrite() ;
boolean existedBefore ;
try {
+ if ( log.isDebugEnabled() )
+ log.debug("POST->"+action.getTarget()) ;
existedBefore = action.getTarget().exists() ;
addDataInto(body.getDefaultGraph(), action) ;
action.commit() ;
Modified: jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_ServletBase.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_ServletBase.java?rev=1397852&r1=1397851&r2=1397852&view=diff
==============================================================================
--- jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_ServletBase.java (original)
+++ jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_ServletBase.java Sat Oct 13 15:16:39 2012
@@ -194,6 +194,8 @@ public abstract class SPARQL_ServletBase
// Chop off trailing part - the service selector
// e.f. /dataset/sparql => /dataset
int i = uri.lastIndexOf('/') ;
+ if ( i == -1 )
+ return null ;
if ( i == 0 )
{
// started with '/' - leave.
Modified: jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_UberServlet.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_UberServlet.java?rev=1397852&r1=1397851&r2=1397852&view=diff
==============================================================================
--- jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_UberServlet.java (original)
+++ jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_UberServlet.java Sat Oct 13 15:16:39 2012
@@ -77,7 +77,7 @@ public abstract class SPARQL_UberServlet
public AccessByConfig(boolean verbose_debug) { super(verbose_debug) ; }
@Override protected boolean allowQuery(HttpAction action) { return isEnabled(action.getDatasetRef().queryEP) ; }
@Override protected boolean allowUpdate(HttpAction action) { return isEnabled(action.getDatasetRef().updateEP) ; }
- @Override protected boolean allowREST_R(HttpAction action) { return isEnabled(action.getDatasetRef().readGraphStoreEP) ; }
+ @Override protected boolean allowREST_R(HttpAction action) { return isEnabled(action.getDatasetRef().readGraphStoreEP) || allowREST_W(action); }
@Override protected boolean allowREST_W(HttpAction action) { return isEnabled(action.getDatasetRef().readWriteGraphStoreEP) ; }
// Quad operations tied to presence/absence of GSP.
@Override protected boolean allowQuadsR(HttpAction action) { return isEnabled(action.getDatasetRef().readGraphStoreEP) ; }
@@ -156,7 +156,7 @@ public abstract class SPARQL_UberServlet
// convenient to collect everything together.
HttpAction action = new HttpAction(id, desc, request, response, verbose_debug) ;
- log.info(format("[%d] All: %S %s :: %s :: %s ? %s", id, method, dsname, trailing, (mt==null?"<none>":mt), (qs==null?"":qs))) ;
+ log.info(format("[%d] All: %s %s :: '%s' :: %s ? %s", id, method, dsname, trailing, (mt==null?"<none>":mt), (qs==null?"":qs))) ;
boolean hasTrailing = ( trailing.length() != 0 ) ;
@@ -226,7 +226,7 @@ public abstract class SPARQL_UberServlet
String method = action.request.getMethod() ;
if ( HttpNames.METHOD_GET.equalsIgnoreCase(method) ||
- HttpNames.METHOD_HEAD.equalsIgnoreCase(method) )
+ HttpNames.METHOD_HEAD.equalsIgnoreCase(method) )
{
if ( ! allowREST_R(action))
errorForbidden("Forbidden: SPARQL Graph Store Protocol : Read operation : "+method) ;
@@ -238,6 +238,7 @@ public abstract class SPARQL_UberServlet
executeRequest(desc, restServlet_RW, desc.readWriteGraphStoreEP, action.id, action.request, action.response) ;
else
errorMethodNotAllowed(method) ;
+ return ;
}
// Graphs Store Protocol, indirect naming, write