You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by sk...@apache.org on 2014/05/28 10:30:48 UTC
git commit: [OLINGO-305] fixed (case insensitve header)
Repository: olingo-odata2
Updated Branches:
refs/heads/master 402ad9a8d -> 7a111e691
[OLINGO-305] fixed (case insensitve header)
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata2/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata2/commit/7a111e69
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata2/tree/7a111e69
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata2/diff/7a111e69
Branch: refs/heads/master
Commit: 7a111e6916e0bf94fc3b3dc4c380094f0bcd9988
Parents: 402ad9a
Author: Stephan Klevenz <sk...@apache.org>
Authored: Wed May 28 10:30:39 2014 +0200
Committer: Stephan Klevenz <sk...@apache.org>
Committed: Wed May 28 10:30:39 2014 +0200
----------------------------------------------------------------------
.../olingo/odata2/core/ODataRequestImpl.java | 40 +++++++++++++++++---
1 file changed, 35 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/7a111e69/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ODataRequestImpl.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ODataRequestImpl.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ODataRequestImpl.java
index dd3173b..5bfcaf9 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ODataRequestImpl.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ODataRequestImpl.java
@@ -25,6 +25,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
+import java.util.Map.Entry;
import org.apache.olingo.odata2.api.commons.ODataHttpMethod;
import org.apache.olingo.odata2.api.processor.ODataRequest;
@@ -37,7 +38,7 @@ import org.apache.olingo.odata2.core.commons.ContentType;
public class ODataRequestImpl extends ODataRequest {
private ODataHttpMethod method;
- private Map<String, List<String>> requestHeaders = new HashMap<String, List<String>>();
+ private CaseInsensitiveMap requestHeaders = new CaseInsensitiveMap();
private InputStream body;
private PathInfo pathInfo;
private Map<String, String> queryParameters;
@@ -73,7 +74,7 @@ public class ODataRequestImpl extends ODataRequest {
@Override
public Map<String, List<String>> getRequestHeaders() {
- return Collections.unmodifiableMap(requestHeaders);
+ return requestHeaders;
}
@Override
@@ -93,7 +94,7 @@ public class ODataRequestImpl extends ODataRequest {
public class ODataRequestBuilderImpl extends ODataRequestBuilder {
private ODataHttpMethod method;
- private Map<String, List<String>> requestHeaders = new HashMap<String, List<String>>();
+ private CaseInsensitiveMap requestHeaders = new CaseInsensitiveMap();
private InputStream body;
private PathInfo pathInfo;
private Map<String, String> queryParameters;
@@ -116,7 +117,11 @@ public class ODataRequestImpl extends ODataRequest {
@Override
public ODataRequestBuilder requestHeaders(final Map<String, List<String>> headers) {
- requestHeaders = headers;
+ requestHeaders = new CaseInsensitiveMap();
+ for (Entry<String, List<String>> set : headers.entrySet()) {
+ requestHeaders.put(set.getKey(), set.getValue());
+ }
+
return this;
}
@@ -170,7 +175,11 @@ public class ODataRequestImpl extends ODataRequest {
if (request.getContentType() != null) {
contentType = ContentType.create(request.getContentType());
}
- requestHeaders = request.getRequestHeaders();
+
+ requestHeaders = new CaseInsensitiveMap();
+ for (Entry<String, List<String>> set : request.getRequestHeaders().entrySet()) {
+ requestHeaders.put(set.getKey(), set.getValue());
+ }
if (request.getAcceptHeaders() != null) {
acceptHeaders = new ArrayList<String>();
@@ -195,4 +204,25 @@ public class ODataRequestImpl extends ODataRequest {
}
}
+
+ private class CaseInsensitiveMap extends HashMap<String, List<String>> {
+
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public List<String> put(String key, List<String> value) {
+ return super.put(key.toLowerCase(), value);
+ }
+
+ // not @Override because that would require the key parameter to be of type Object
+ public List<String> get(String key) {
+ return super.get(key.toLowerCase());
+ }
+
+ @Override
+ public List<String> get(Object key) {
+ String skey = (String) key;
+ return super.get(skey.toLowerCase());
+ }
+ }
}