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/02/23 14:32:31 UTC
svn commit: r1292795 - in
/incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki:
Fuseki.java HttpNames.java servlets/REST_Quads.java
servlets/SPARQL_ServletBase.java servlets/ServletBase.java
Author: andy
Date: Thu Feb 23 13:32:31 2012
New Revision: 1292795
URL: http://svn.apache.org/viewvc?rev=1292795&view=rev
Log:
Settttthe "Vary" header : SPARQL query protocol and SPARQL Graph Store Protocol (GET) do content negotiation.
Modified:
incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/Fuseki.java
incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/HttpNames.java
incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/servlets/REST_Quads.java
incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_ServletBase.java
incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/servlets/ServletBase.java
Modified: incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/Fuseki.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/Fuseki.java?rev=1292795&r1=1292794&r2=1292795&view=diff
==============================================================================
--- incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/Fuseki.java (original)
+++ incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/Fuseki.java Thu Feb 23 13:32:31 2012
@@ -30,7 +30,6 @@ import com.hp.hpl.jena.sparql.mgt.ARQMgt
import com.hp.hpl.jena.sparql.mgt.SystemInfo ;
import com.hp.hpl.jena.sparql.util.Context ;
import com.hp.hpl.jena.sparql.util.MappingRegistry ;
-import com.hp.hpl.jena.sparql.util.Symbol;
import com.hp.hpl.jena.tdb.TDB ;
import com.hp.hpl.jena.util.FileManager ;
@@ -42,8 +41,6 @@ public class Fuseki
static public String FusekiHomeEnv = "FUSEKI_HOME" ;
static public String FusekiSymbolIRI = "http://jena.apache.org/fuseki#" ;
- public static final Symbol xFusekiEnableGZipCompression = Symbol.create(FusekiSymbolIRI + "enableGZipCompression");
-
static public String PagesPublish = "pages-publish" ;
static public String PagesAll = "pages-update" ;
Modified: incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/HttpNames.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/HttpNames.java?rev=1292795&r1=1292794&r2=1292795&view=diff
==============================================================================
--- incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/HttpNames.java (original)
+++ incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/HttpNames.java Thu Feb 23 13:32:31 2012
@@ -20,12 +20,15 @@ package org.apache.jena.fuseki;
public class HttpNames
{
+ // Request
public static final String hAccept = "Accept" ;
- public static final String hAllow = "Allow" ;
public static final String hAcceptEncoding = "Accept-Encoding" ;
public static final String hAcceptCharset = "Accept-Charset" ;
- public static final String hAcceptRanges = "Accept-Ranges" ;
-
+ //public static final String hAcceptLanguage = "Accept-Language" ;
+
+ // Response
+ public static final String xhAcceptRanges = "Accept-Ranges" ;
+ public static final String hAllow = "Allow" ;
public static final String hContentEncoding = "Content-Encoding" ;
public static final String hContentLengh = "Content-Length" ;
public static final String hContentLocation = "Content-Location" ;
@@ -33,6 +36,7 @@ public class HttpNames
public static final String hContentType = "Content-Type" ;
public static final String hServer = "Server" ;
public static final String hLocation = "Location" ;
+ public static final String hVary = "Vary" ;
public static final String charset = "charset" ;
// CORS:
Modified: incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/servlets/REST_Quads.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/servlets/REST_Quads.java?rev=1292795&r1=1292794&r2=1292795&view=diff
==============================================================================
--- incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/servlets/REST_Quads.java (original)
+++ incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/servlets/REST_Quads.java Thu Feb 23 13:32:31 2012
@@ -58,7 +58,6 @@ public class REST_Quads extends SPARQL_R
TypedOutputStream out = new TypedOutputStream(output, mediaType) ;
Lang lang = FusekiLib.langFromContentType(mediaType.getContentType()) ;
-
if ( action.verbose )
log.info(format("[%d] Get: Content-Type=%s, Charset=%s => %s",
Modified: incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_ServletBase.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_ServletBase.java?rev=1292795&r1=1292794&r2=1292795&view=diff
==============================================================================
--- incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_ServletBase.java (original)
+++ incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_ServletBase.java Thu Feb 23 13:32:31 2012
@@ -64,7 +64,7 @@ public abstract class SPARQL_ServletBase
response = responseTracked ;
String uri = request.getRequestURI() ;
- setCommonHeaders(response) ;
+ initResponse(request, response) ;
try {
if ( request.getQueryString() == null && queryStringHandling == PlainRequestFlag.DIFFERENT )
@@ -149,6 +149,15 @@ public abstract class SPARQL_ServletBase
}
}
+ private void initResponse(HttpServletRequest request, HttpServletResponse response)
+ {
+ setCommonHeaders(response) ;
+ String method = request.getMethod().toUpperCase() ;
+ // All GET and HEAD operations are sensitive to conneg so ...
+ if ( HttpNames.METHOD_GET.equals(method) || HttpNames.METHOD_HEAD.equals(method) )
+ setVaryHeader(response) ;
+ }
+
private void printResponse(long id, HttpServletResponseTracker response)
{
if ( verbose_debug )
Modified: incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/servlets/ServletBase.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/servlets/ServletBase.java?rev=1292795&r1=1292794&r2=1292795&view=diff
==============================================================================
--- incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/servlets/ServletBase.java (original)
+++ incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/servlets/ServletBase.java Thu Feb 23 13:32:31 2012
@@ -29,6 +29,7 @@ import javax.servlet.http.HttpServletRes
import org.apache.jena.fuseki.Fuseki ;
import org.apache.jena.fuseki.HttpNames ;
import org.apache.jena.fuseki.http.HttpSC ;
+import org.openjena.atlas.lib.StrUtils ;
import org.slf4j.Logger ;
public abstract class ServletBase extends HttpServlet
@@ -178,8 +179,20 @@ public abstract class ServletBase extend
string = string.replace('\r', ' ') ;
return string ;
}
+
+ static String varyHeaderSetting =
+ StrUtils.strjoin(",",
+ HttpNames.hAccept,
+ HttpNames.hAcceptEncoding,
+ HttpNames.hAcceptCharset ) ;
+
+ public static void setVaryHeader(HttpServletResponse httpResponse)
+ {
+ httpResponse.setHeader(HttpNames.hVary, varyHeaderSetting) ;
+ }
+
- public static void setCommonHeaders(HttpServletResponse httpResponse)
+ public static void setCommonHeaders(HttpServletResponse httpResponse)
{
httpResponse.setHeader(HttpNames.hAccessControlAllowOrigin, "*") ;
httpResponse.setHeader(HttpNames.hServer, Fuseki.serverHttpName) ;