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)
{