Updated Branches:
  refs/heads/develop aa5abfe68 -> 74c2c7df4

MARMOTTA-382: added Content-Disposition header to 
SparqlWebService#buildQueryResponse (maybe the basename for the file should be 
improved)


Project: http://git-wip-us.apache.org/repos/asf/marmotta/repo
Commit: http://git-wip-us.apache.org/repos/asf/marmotta/commit/74c2c7df
Tree: http://git-wip-us.apache.org/repos/asf/marmotta/tree/74c2c7df
Diff: http://git-wip-us.apache.org/repos/asf/marmotta/diff/74c2c7df

Branch: refs/heads/develop
Commit: 74c2c7df4085805c6db292b3893811b83be0c04b
Parents: aa5abfe
Author: Jakob Frank <[email protected]>
Authored: Thu Nov 28 17:14:36 2013 +0100
Committer: Jakob Frank <[email protected]>
Committed: Thu Nov 28 17:17:23 2013 +0100

----------------------------------------------------------------------
 .../sparql/webservices/SparqlWebService.java    | 28 +++++++++-----------
 1 file changed, 13 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/marmotta/blob/74c2c7df/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/webservices/SparqlWebService.java
----------------------------------------------------------------------
diff --git 
a/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/webservices/SparqlWebService.java
 
b/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/webservices/SparqlWebService.java
index 54181d9..974ef7f 100644
--- 
a/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/webservices/SparqlWebService.java
+++ 
b/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/webservices/SparqlWebService.java
@@ -1,4 +1,4 @@
-/**
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
@@ -23,10 +23,8 @@ import java.io.UnsupportedEncodingException;
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.net.URLDecoder;
-import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -46,6 +44,7 @@ import javax.ws.rs.QueryParam;
 import javax.ws.rs.WebApplicationException;
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.ResponseBuilder;
 import javax.ws.rs.core.StreamingOutput;
 import javax.ws.rs.core.UriBuilder;
 
@@ -60,21 +59,13 @@ import 
org.apache.marmotta.platform.core.exception.MarmottaException;
 import org.apache.marmotta.platform.core.util.WebServiceUtil;
 import org.apache.marmotta.platform.sparql.api.sparql.QueryType;
 import org.apache.marmotta.platform.sparql.api.sparql.SparqlService;
-import org.apache.marmotta.platform.sparql.services.sparql.SparqlWritersHelper;
 import org.openrdf.query.MalformedQueryException;
-import org.openrdf.query.QueryEvaluationException;
 import org.openrdf.query.QueryLanguage;
 import org.openrdf.query.UpdateExecutionException;
-import org.openrdf.query.resultio.BooleanQueryResultFormat;
-import org.openrdf.query.resultio.BooleanQueryResultWriter;
 import org.openrdf.query.resultio.BooleanQueryResultWriterRegistry;
-import org.openrdf.query.resultio.QueryResultFormat;
 import org.openrdf.query.resultio.QueryResultIO;
-import org.openrdf.query.resultio.QueryResultWriter;
 import org.openrdf.query.resultio.TupleQueryResultFormat;
-import org.openrdf.query.resultio.TupleQueryResultWriter;
 import org.openrdf.query.resultio.TupleQueryResultWriterRegistry;
-import org.openrdf.rio.RDFParserRegistry;
 import org.slf4j.Logger;
 
 import com.google.common.collect.Lists;
@@ -91,15 +82,16 @@ import com.google.common.io.CharStreams;
  */
 @ApplicationScoped
 @Path("/" + SparqlWebService.PATH)
-public class
-        SparqlWebService {
+public class SparqlWebService {
        
     public static final String PATH = "sparql";
     public static final String SELECT = "/select";
     public static final String UPDATE = "/update";
     public static final String SNORQL = "/snorql";
 
-    private static final Map<String,String> outputMapper = new 
HashMap<String,String>(){{
+    private static final Map<String,String> outputMapper = new 
HashMap<String,String>(){
+        private static final long serialVersionUID = 1L;
+    {
         put("json","application/sparql-results+json");
         put("xml","application/sparql-results+xml");
         put("tabs","text/tab-separated-values");
@@ -497,7 +489,13 @@ public class
                 }
             }
         };
-        return Response.ok().entity(entity).header("Content-Type", 
format.getMime()).build();
+        
+        final ResponseBuilder responseBuilder = 
Response.ok().entity(entity).header("Content-Type", format.getMime());
+        final TupleQueryResultFormat fmt = 
QueryResultIO.getWriterFormatForMIMEType(format.getMime());
+        if (fmt != null) {
+            responseBuilder.header("Content-Disposition", 
String.format("attachment; filename=\"%s.%s\"", 
queryType.toString().toLowerCase(), fmt.getDefaultFileExtension()));
+        }
+        return responseBuilder.build();
        }
 
     @Deprecated

Reply via email to