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/27 23:17:15 UTC

svn commit: r1377870 - in /jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki: Fuseki.java servlets/SPARQL_Dataset.java servlets/SPARQL_ServletBase.java

Author: andy
Date: Mon Aug 27 21:17:14 2012
New Revision: 1377870

URL: http://svn.apache.org/viewvc?rev=1377870&view=rev
Log:
Tidying up.

Modified:
    jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/Fuseki.java
    jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Dataset.java
    jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_ServletBase.java

Modified: jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/Fuseki.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/Fuseki.java?rev=1377870&r1=1377869&r2=1377870&view=diff
==============================================================================
--- jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/Fuseki.java (original)
+++ jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/Fuseki.java Mon Aug 27 21:17:14 2012
@@ -62,11 +62,12 @@ public class Fuseki
     // Log for operations
     public static final String requestLogName = PATH+".Fuseki" ;
     public static final Logger requestLog = LoggerFactory.getLogger(requestLogName) ;
+    // Log for general server messages.
     public static final String serverLogName = PATH+".Server" ;
     public static final Logger serverLog = LoggerFactory.getLogger(serverLogName) ;
+    // Log for config server messages.
     public static final String configLogName = PATH+".Config" ;
-    public static final Logger configLog = LoggerFactory.getLogger(configLogName) ;    
-    // Log for general server messages.
+    public static final Logger configLog = LoggerFactory.getLogger(configLogName) ;
     
     public static final FileManager webFileManager ;
     static {

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=1377870&r1=1377869&r2=1377870&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 Mon Aug 27 21:17:14 2012
@@ -18,6 +18,7 @@
 
 package org.apache.jena.fuseki.servlets;
 
+import static java.lang.String.format ;
 import java.util.Iterator ;
 import java.util.List ;
 
@@ -41,17 +42,15 @@ import org.openjena.atlas.web.MediaType 
  */
 public class SPARQL_Dataset extends SPARQL_ServletBase
 {
+    /*  This can be used for
+     *  1/ a single servlet for everything (über-servlet)
+     *  2/ just direct naming for a dataset with other services  
+     *  May need refactoring to separate those 2 functions. 
+     */   
     // To test: enable in SPARQLServer.configureOneDataset
 
-    // Restructure: 
-    //    Remove PlainRequestFlag - just use the query string override.
-    //    doCommonWorker without perform.
-    // pull 
-    // or allow validate(HttpServletRequest) override.
-    
     public SPARQL_Dataset(boolean verbose_debug)
     {
-        // Split SPARQL_ServletBase or move doCommon stub to ServletBase
         super(verbose_debug) ;
     }
 
@@ -98,6 +97,9 @@ public class SPARQL_Dataset extends SPAR
 
     // Development : calls to other servlets marked ****
     // This will need to do a proper servlet dispatch if they are going to be filterd (security, compression).
+    // TODO Handling content-type: application/sparql-query and application/sparql-update  
+    // If forwarding, id is added again.
+    // For an über-servlet, directly call the other servlets.   
     
     @Override
     protected void doCommonWorker(long id, HttpServletRequest request, HttpServletResponse response)
@@ -108,9 +110,16 @@ public class SPARQL_Dataset extends SPAR
         String trailing = uri.substring(dsname.length()) ;
         String qs = request.getQueryString() ;
         
+        String ct = request.getContentType() ;
+        String charset = request.getCharacterEncoding() ;
+        
+        MediaType mt = null ;
+        if ( ct != null )
+            mt = MediaType.create(ct, charset) ;
+        
         DatasetRef desc = DatasetRegistry.get().get(dsname) ;
         
-        //log.info(format("[%d] All: %S %s :: %s ? %s", id, method, dsname, trailing, 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 ) ;
         boolean hasQueryString = ( qs != null ) ;
@@ -129,9 +138,29 @@ public class SPARQL_Dataset extends SPAR
             // Revisit
             errorBadRequest("Can't invoke a query-string service on a direct named graph") ; 
         
+        /* Sort out:
+         * No trailing.
+         * query
+         *   GET query string, ?query
+         *   POST form, ?query
+         *   POST content-type application/sparql-query
+         * update
+         *   GET form, ?update
+         *   POST content-type application/sparql-update
+         * REST:
+         *   content-type != application/sparql-query, application/sparql-update
+         *   GET, POST, PUT, (DELETE)
+         *   
+         * Trailing:
+         *   GET, POST, PUT, (DELETE), direct naming
+         *   ?? Query or update on a graph only.
+         */
+        
         // if no query string => direct naming or REST on the dataset itself.
         if ( ! hasQueryString )
         {
+            // what about Content-type: application/sparql-query and application/sparql-update   
+            
             if ( hasTrailing )
             {
                 // Direct naming to indirect naming.
@@ -160,11 +189,9 @@ public class SPARQL_Dataset extends SPAR
             }
         }
 
-        // 
         datasetQueryString(id, desc, request, response) ;
     }
     
-    
     // It's an ?operation on the dataset 
     private void datasetQueryString(long id, DatasetRef desc, HttpServletRequest request, HttpServletResponse response)
     {
@@ -175,31 +202,36 @@ public class SPARQL_Dataset extends SPAR
         boolean hasParamGraph    = request.getParameter(HttpNames.paramGraph) != null ;
 
         int c = 0 ;
-        if ( hasParamQuery ) c++ ;
+        if ( hasParamQuery )   c++ ;
         if ( hasParamRequest ) c++ ;
-        if ( hasParamGraph ) c++ ;
+        if ( hasParamGraph )   c++ ;
         if ( c > 1 )
             errorBadRequest("Multiple possible actions") ;
         if ( c == 0 )
             errorBadRequest("Query string does not contain a specific action") ;
 
+        // ****
         // Check an endpoint is registered.
         if ( hasParamQuery )
         {
-            // Call by dispatch - follows the servlet chain. 
-            String x = getEPName(desc.name, desc.queryEP) ;
-            if ( x == null )
-                errorMethodNotAllowed(method) ;
+//            // ---- Call by forwarding
+//            if ( false )
+//            {
+//                // 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
-            {
-                //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) ;
+                errorMethodNotAllowed(method) ;
         }
 
         if ( hasParamRequest )

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=1377870&r1=1377869&r2=1377870&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 Mon Aug 27 21:17:14 2012
@@ -42,11 +42,7 @@ import com.hp.hpl.jena.sparql.util.Conte
 
 public abstract class SPARQL_ServletBase extends ServletBase
 {
-//    private final PlainRequestFlag queryStringHandling ;
     private static DatasetGraph dummyDSG = new DatasetGraphReadOnly(DatasetGraphFactory.createMemFixed()) ;
-    // Flag for whether a request (no query string) is handled as a regular operation or
-    // routed to special handler.
-//    protected enum PlainRequestFlag { REGULAR, DIFFERENT }
     
     protected SPARQL_ServletBase(boolean verbose_debug)
     {