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 "));
             }
         };