You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2011/10/21 17:03:04 UTC
svn commit: r1187385 - in /camel/branches/camel-2.7.x: ./
components/camel-jetty/src/main/java/org/apache/camel/component/jetty/
components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/
Author: ningjiang
Date: Fri Oct 21 15:03:03 2011
New Revision: 1187385
URL: http://svn.apache.org/viewvc?rev=1187385&view=rev
Log:
Merged revisions 1187226 via svnmerge from
https://svn.apache.org/repos/asf/camel/branches/camel-2.8.x
........
r1187226 | davsclaus | 2011-10-21 17:03:24 +0800 (Fri, 21 Oct 2011) | 1 line
CAMEL-4571: Jetty producer now supports Content-Type header having quotes arond the charset value.
........
Added:
camel/branches/camel-2.7.x/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerContentTypeEncodingInQuoteTest.java
- copied unchanged from r1187226, camel/branches/camel-2.8.x/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerContentTypeEncodingInQuoteTest.java
Modified:
camel/branches/camel-2.7.x/ (props changed)
camel/branches/camel-2.7.x/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyContentExchange.java
Propchange: camel/branches/camel-2.7.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Oct 21 15:03:03 2011
@@ -1,2 +1,2 @@
-/camel/branches/camel-2.8.x:1170965,1171400,1174571,1175323,1176329,1176787,1177397,1177946,1177949,1180598
-/camel/trunk:1146608,1146903,1147216,1170956,1171396,1174565,1175321,1176274,1176781-1176782,1177394,1177945,1177948,1180597
+/camel/branches/camel-2.8.x:1170965,1171400,1174571,1175323,1176329,1176787,1177397,1177946,1177949,1180598,1187226
+/camel/trunk:1146608,1146903,1147216,1170956,1171396,1174565,1175321,1176274,1176781-1176782,1177394,1177945,1177948,1180597,1187221
Propchange: camel/branches/camel-2.7.x/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Fri Oct 21 15:03:03 2011
@@ -1 +1 @@
-/camel/branches/camel-2.8.x:1-1146127,1146608,1146653,1146771,1146903,1147216,1170965-1171083,1171085-1171400,1174571,1175323,1176329,1176787,1177397,1177946,1177949,1180598
+/camel/branches/camel-2.8.x:1-1146127,1146608,1146653,1146771,1146903,1147216,1170965-1171083,1171085-1171400,1174571,1175323,1176329,1176787,1177397,1177946,1177949,1180598,1187226
Modified: camel/branches/camel-2.7.x/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyContentExchange.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.7.x/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyContentExchange.java?rev=1187385&r1=1187384&r2=1187385&view=diff
==============================================================================
--- camel/branches/camel-2.7.x/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyContentExchange.java (original)
+++ camel/branches/camel-2.7.x/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyContentExchange.java Fri Oct 21 15:03:03 2011
@@ -28,11 +28,14 @@ import org.apache.camel.CamelExchangeExc
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.HttpExchange;
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;
@@ -65,12 +68,34 @@ public class JettyContentExchange extend
@Override
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) {
+ 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);
+
+ // use a new buffer to adjust the value
+ value = new ByteArrayBuffer.CaseInsensitive(v);
+ }
+ }
+ }
+
super.onResponseHeader(name, value);
- headers.put(name.toString(), value.toString());
+ headers.put(k, v);
}
@Override
protected void onRequestComplete() throws IOException {
+ LOG.trace("onRequestComplete");
+
// close the input stream when its not needed anymore
InputStream is = getRequestContentSource();
if (is != null) {
@@ -80,6 +105,8 @@ public class JettyContentExchange extend
@Override
protected void onResponseComplete() throws IOException {
+ LOG.trace("onResponseComplete");
+
try {
super.onResponseComplete();
} finally {
@@ -89,6 +116,8 @@ public class JettyContentExchange extend
@Override
protected void onExpire() {
+ LOG.trace("onExpire");
+
try {
super.onExpire();
} finally {
@@ -98,6 +127,8 @@ public class JettyContentExchange extend
@Override
protected void onException(Throwable ex) {
+ LOG.trace("onException {}", ex);
+
try {
super.onException(ex);
} finally {
@@ -107,6 +138,8 @@ public class JettyContentExchange extend
@Override
protected void onConnectionFailed(Throwable ex) {
+ LOG.trace("onConnectionFailed {}", ex);
+
try {
super.onConnectionFailed(ex);
} finally {