You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by cs...@apache.org on 2014/12/12 11:23:51 UTC
camel git commit: Remove second path of getting response headers
Repository: camel
Updated Branches:
refs/heads/master 646e7106e -> 0cd81204d
Remove second path of getting response headers
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/0cd81204
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/0cd81204
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/0cd81204
Branch: refs/heads/master
Commit: 0cd81204d9bbe1f9adac5524355133093148c3a5
Parents: 646e710
Author: Christian Schneider <ch...@die-schneider.net>
Authored: Fri Dec 12 11:23:21 2014 +0100
Committer: Christian Schneider <ch...@die-schneider.net>
Committed: Fri Dec 12 11:23:35 2014 +0100
----------------------------------------------------------------------
.../jetty/DefaultJettyHttpBinding.java | 15 ++++++-
.../component/jetty/JettyContentExchange.java | 47 --------------------
.../JettyHttpProducerSuspendTest.java | 2 +-
3 files changed, 14 insertions(+), 50 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/0cd81204/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/DefaultJettyHttpBinding.java
----------------------------------------------------------------------
diff --git a/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/DefaultJettyHttpBinding.java b/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/DefaultJettyHttpBinding.java
index 15e05af..5137d15 100644
--- a/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/DefaultJettyHttpBinding.java
+++ b/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/DefaultJettyHttpBinding.java
@@ -19,6 +19,7 @@ package org.apache.camel.component.jetty;
import java.io.IOException;
import java.io.InputStream;
import java.util.Collection;
+import java.util.HashMap;
import java.util.Map;
import org.apache.camel.Exchange;
@@ -133,7 +134,7 @@ public class DefaultJettyHttpBinding implements JettyHttpBinding {
int responseCode) throws IOException {
HttpOperationFailedException answer;
String uri = httpExchange.getUrl();
- Map<String, String> headers = httpExchange.getHeaders();
+ Map<String, String> headers = getSimpleMap(httpExchange.getResponseHeaders());
Object responseBody = extractResponseBody(exchange, httpExchange);
if (transferException && responseBody != null && responseBody instanceof Exception) {
@@ -168,7 +169,8 @@ public class DefaultJettyHttpBinding implements JettyHttpBinding {
}
protected Object extractResponseBody(Exchange exchange, JettyContentExchange httpExchange) throws IOException {
- String contentType = httpExchange.getHeaders().get(Exchange.CONTENT_TYPE);
+ Map<String, String> headers = getSimpleMap(httpExchange.getResponseHeaders());
+ String contentType = headers.get(Exchange.CONTENT_TYPE);
// if content type is serialized java object, then de-serialize it to a Java object
if (contentType != null && HttpConstants.CONTENT_TYPE_JAVA_SERIALIZED_OBJECT.equals(contentType)) {
@@ -189,4 +191,13 @@ public class DefaultJettyHttpBinding implements JettyHttpBinding {
this.supportRedirect = supportRedirect;
}
+ Map<String, String> getSimpleMap(Map<String, Collection<String>> headers) {
+ Map<String, String> result = new HashMap<String ,String>();
+ for (String key : headers.keySet()) {
+ Collection<String> valueCol = headers.get(key);
+ String value = (valueCol == null) ? null : valueCol.iterator().next();
+ result.put(key, value);
+ }
+ return result;
+ }
}
http://git-wip-us.apache.org/repos/asf/camel/blob/0cd81204/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyContentExchange.java
----------------------------------------------------------------------
diff --git a/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyContentExchange.java b/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyContentExchange.java
index a06647e..01ae205 100644
--- a/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyContentExchange.java
+++ b/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyContentExchange.java
@@ -20,7 +20,6 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.Collection;
-import java.util.LinkedHashMap;
import java.util.Map;
import java.util.TreeMap;
import java.util.concurrent.CountDownLatch;
@@ -30,8 +29,6 @@ import org.apache.camel.CamelExchangeException;
import org.apache.camel.Exchange;
import org.apache.camel.ExchangeTimedOutException;
import org.apache.camel.util.IOHelper;
-import org.apache.camel.util.ObjectHelper;
-import org.apache.camel.util.StringHelper;
import org.eclipse.jetty.client.ContentExchange;
import org.eclipse.jetty.client.HttpClient;
import org.eclipse.jetty.client.HttpEventListener;
@@ -39,8 +36,6 @@ import org.eclipse.jetty.client.HttpEventListenerWrapper;
import org.eclipse.jetty.client.HttpExchange;
import org.eclipse.jetty.http.HttpFields;
import org.eclipse.jetty.http.HttpHeaders;
-import org.eclipse.jetty.io.Buffer;
-import org.eclipse.jetty.io.ByteArrayBuffer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -53,7 +48,6 @@ public class JettyContentExchange {
private static final Logger LOG = LoggerFactory.getLogger(JettyContentExchange.class);
- private final Map<String, String> headers = new LinkedHashMap<String, String>();
private volatile Exchange exchange;
private volatile AsyncCallback callback;
private volatile JettyHttpBinding jettyBinding;
@@ -75,11 +69,6 @@ public class JettyContentExchange {
super.onRequestComplete();
}
- public void onResponseHeader(Buffer name, Buffer value) throws IOException {
- JettyContentExchange.this.onResponseHeader(name, value);
- super.onResponseHeader(name, value);
- }
-
@Override
public void onResponseComplete() throws IOException {
super.onResponseComplete();
@@ -120,38 +109,6 @@ public class JettyContentExchange {
this.callback = callback;
}
- protected void onResponseHeader(Buffer name, Buffer value) throws IOException {
- String k = name.toString();
- String v = value.toString();
- LOG.trace("onResponseHeader {} -> {}", k, v);
-
- // need to remove quotes from charset which can be returned by some http servers
- if (Exchange.CONTENT_TYPE.equalsIgnoreCase(k)) {
- String charset = ObjectHelper.after(v, "charset=");
- if (charset != null) {
- // there may be another parameter as well, we only want the charset parameter
- String extra = "";
- if (charset.contains(";")) {
- extra = ObjectHelper.after(charset, ";");
- charset = ObjectHelper.before(charset, ";");
- }
- charset = charset.trim();
- String s = StringHelper.removeLeadingAndEndingQuotes(charset);
- if (!charset.equals(s)) {
- v = ObjectHelper.before(v, "charset=") + "charset=" + s;
- LOG.debug("Removed quotes from charset in " + Exchange.CONTENT_TYPE + " from {} to {}", charset, s);
- // add extra parameters
- if (extra != null) {
- v = v + ";" + extra;
- }
- // use a new buffer to adjust the value
- value = new ByteArrayBuffer.CaseInsensitive(v);
- }
- }
- }
- headers.put(k, v);
- }
-
protected void onRequestComplete() throws IOException {
LOG.trace("onRequestComplete");
@@ -187,10 +144,6 @@ public class JettyContentExchange {
doTaskCompleted(ex);
}
- public Map<String, String> getHeaders() {
- return headers;
- }
-
public byte[] getBody() {
// must return the content as raw bytes
return ce.getResponseContentBytes();
http://git-wip-us.apache.org/repos/asf/camel/blob/0cd81204/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerSuspendTest.java
----------------------------------------------------------------------
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerSuspendTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerSuspendTest.java
index b21ec23..dc67337 100644
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerSuspendTest.java
+++ b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerSuspendTest.java
@@ -62,7 +62,7 @@ public class JettyHttpProducerSuspendTest extends BaseJettyTest {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
- from(serverUri)
+ from(serverUri).id("route1")
.transform(body().prepend("Bye "));
}
};