Revert "#marmotta-606"
This reverts commit fc246cc6f09adceafaffbdfa36d70d414233b586.
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
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 @@
*/
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 @@
} 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 @@
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 @@
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;