Repository: marmotta Updated Branches: refs/heads/master fc246cc6f -> 6a10c48c1
Revert "#marmotta-606" This reverts commit fc246cc6f09adceafaffbdfa36d70d414233b586. Project: http://git-wip-us.apache.org/repos/asf/marmotta/repo Commit: http://git-wip-us.apache.org/repos/asf/marmotta/commit/6a10c48c Tree: http://git-wip-us.apache.org/repos/asf/marmotta/tree/6a10c48c Diff: http://git-wip-us.apache.org/repos/asf/marmotta/diff/6a10c48c Branch: refs/heads/master Commit: 6a10c48c1349a517e1f1d35669c99747af2ee4b6 Parents: fc246cc Author: Sergio Fernández <[email protected]> Authored: Tue Apr 7 10:37:12 2015 +0200 Committer: Sergio Fernández <[email protected]> Committed: Tue Apr 7 10:37:12 2015 +0200 ---------------------------------------------------------------------- .../commons/http/MarmottaHttpUtils.java | 34 -------------------- .../sparql/webservices/SparqlWebService.java | 19 ++++------- 2 files changed, 6 insertions(+), 47 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/marmotta/blob/6a10c48c/commons/marmotta-commons/src/main/java/org/apache/marmotta/commons/http/MarmottaHttpUtils.java ---------------------------------------------------------------------- diff --git a/commons/marmotta-commons/src/main/java/org/apache/marmotta/commons/http/MarmottaHttpUtils.java b/commons/marmotta-commons/src/main/java/org/apache/marmotta/commons/http/MarmottaHttpUtils.java index 102c991..199dde9 100644 --- a/commons/marmotta-commons/src/main/java/org/apache/marmotta/commons/http/MarmottaHttpUtils.java +++ b/commons/marmotta-commons/src/main/java/org/apache/marmotta/commons/http/MarmottaHttpUtils.java @@ -18,54 +18,20 @@ package org.apache.marmotta.commons.http; import org.apache.commons.lang3.StringUtils; - import org.openrdf.query.resultio.QueryResultFormat; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; -import java.util.Enumeration; import java.util.List; -import javax.servlet.http.HttpServletRequest; - /** * Add file description here! * <p/> * Author: Sebastian Schaffert */ public class MarmottaHttpUtils { - public static final String ACCEPT = "Accept"; - /** - * A utility method for parsing Content-Type and Accept header - * @param request the {@link HttpServletRequest} provided - * @return An ordered list of {@link ContentType} elements - */ - public static List<ContentType> parseAcceptHeader(HttpServletRequest request) { - Enumeration<String> acceptHeaderStrings = request.getHeaders(ACCEPT); - return parseAcceptHeader(acceptHeaderStrings); - } - /** - * A utility method for parsing Content-Type out of the provided Accept headers. - * - * @param request the {@link HttpServletRequest} provided - * @return An ordered list of {@link ContentType} elements. - * @see HttpServletRequest#getHeaders(String) - */ - public static List<ContentType> parseAcceptHeader(Enumeration<String> acceptHeaderStrings) { - List<ContentType> contentTypes = new ArrayList<>(); - while ( acceptHeaderStrings.hasMoreElements() ) { - ContentType contentType = parseContentType(acceptHeaderStrings.nextElement()); - if ( contentType != null ) { - contentTypes.add(contentType); - } - } - // - Collections.sort(contentTypes); - - return contentTypes; - } /** * A utility method for parsing HTTP Content-Type and Accept header, taking into account different parameters that http://git-wip-us.apache.org/repos/asf/marmotta/blob/6a10c48c/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 6db8476..3fde761 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 @@ -232,12 +232,8 @@ public class SparqlWebService { */ private Response select(String query, String resultType, HttpServletRequest request) { try { - // MARMOTTA-606 - check all "Accept" Headers, not only the first one - List<ContentType> acceptedTypes = MarmottaHttpUtils.parseAcceptHeader(request.getHeaders(ACCEPT)); String acceptHeader = StringUtils.defaultString(request.getHeader(ACCEPT), ""); if (StringUtils.isBlank(query)) { //empty query - // combine the list of accepted types to search for HTML header - acceptHeader = StringUtils.join(acceptedTypes, ","); if (acceptHeader.contains("html")) { return Response.seeOther(new URI(configurationService.getServerUri() + "sparql/admin/squebi.html")).build(); } else { @@ -246,14 +242,13 @@ public class SparqlWebService { } else { //query duck typing QueryType queryType = sparqlService.getQueryType(QueryLanguage.SPARQL, query); - // List<ContentType> acceptedTypes; + List<ContentType> acceptedTypes; List<ContentType> offeredTypes; if (resultType != null) { acceptedTypes = MarmottaHttpUtils.parseAcceptHeader(resultType); - } -// else { -// acceptedTypes = MarmottaHttpUtils.parseAcceptHeader(acceptHeader); -// } + } else { + acceptedTypes = MarmottaHttpUtils.parseAcceptHeader(acceptHeader); + } if (QueryType.TUPLE.equals(queryType)) { offeredTypes = MarmottaHttpUtils.parseQueryResultFormatList(TupleQueryResultWriterRegistry.getInstance().getKeys()); } else if (QueryType.BOOL.equals(queryType)) { @@ -394,8 +389,7 @@ public class SparqlWebService { return Response.ok().build(); } else { if (resultType == null) { - // MARMOTTA-606: Check all provdes accept headers, not only the first one - List<ContentType> acceptedTypes = MarmottaHttpUtils.parseAcceptHeader(request.getHeaders(ACCEPT)); + List<ContentType> acceptedTypes = MarmottaHttpUtils.parseAcceptHeader(request.getHeader(ACCEPT)); List<ContentType> offeredTypes = MarmottaHttpUtils.parseStringList(Lists.newArrayList("*/*", "text/html")); ContentType bestType = MarmottaHttpUtils.bestContentType(offeredTypes, acceptedTypes); if (bestType != null) { @@ -470,8 +464,7 @@ public class SparqlWebService { if (StringUtils.isBlank(request.getHeader(ACCEPT))) { acceptedTypes = Collections.singletonList(MarmottaHttpUtils.parseContentType(RDFXML.getDefaultMIMEType())); } else { - // MARMOTTA-606 - retrieve all headers instead of the first one - acceptedTypes = MarmottaHttpUtils.parseAcceptHeader(request.getHeaders(ACCEPT)); + acceptedTypes = MarmottaHttpUtils.parseAcceptHeader(request.getHeader(ACCEPT)); } ContentType _bestType = null;
