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