CAMEL-6469: http component now have header with response status line text as well (the code is already there)
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/a4828fa2 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/a4828fa2 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/a4828fa2 Branch: refs/heads/master Commit: a4828fa2849dbb3424fb41c83bf6d89ed64f279f Parents: 2dac9aa Author: Claus Ibsen <davscl...@apache.org> Authored: Sat Jul 11 09:57:37 2015 +0200 Committer: Claus Ibsen <davscl...@apache.org> Committed: Sat Jul 11 09:57:37 2015 +0200 ---------------------------------------------------------------------- camel-core/src/main/java/org/apache/camel/Exchange.java | 1 + .../java/org/apache/camel/component/ahc/DefaultAhcBinding.java | 1 + .../apache/camel/component/ahc/AhcProduceGetHeadersTest.java | 1 + .../component/ahc/AhcProduceNoThrowExceptionOnFailureTest.java | 1 + .../org/apache/camel/component/http/HttpPollingConsumer.java | 1 + .../main/java/org/apache/camel/component/http/HttpProducer.java | 1 + .../org/apache/camel/component/http4/HttpPollingConsumer.java | 3 +++ .../java/org/apache/camel/component/http4/HttpProducer.java | 3 +++ .../java/org/apache/camel/component/http4/HttpMethodsTest.java | 1 + .../java/org/apache/camel/component/http4/HttpRedirectTest.java | 1 + .../camel/component/jetty/JettyCallHttpThenExceptionTest.java | 1 + .../camel/component/netty/http/DefaultNettyHttpBinding.java | 2 +- .../apache/camel/component/netty/http/NettyHttpConstants.java | 5 ++++- .../component/netty/http/NettyHttpFilterCamelHeadersTest.java | 2 +- .../camel/component/netty4/http/DefaultNettyHttpBinding.java | 2 +- .../apache/camel/component/netty4/http/NettyHttpConstants.java | 5 ++++- .../component/netty4/http/NettyHttpFilterCamelHeadersTest.java | 2 +- 17 files changed, 27 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/a4828fa2/camel-core/src/main/java/org/apache/camel/Exchange.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/Exchange.java b/camel-core/src/main/java/org/apache/camel/Exchange.java index 5cfe78e..8e7cc84 100644 --- a/camel-core/src/main/java/org/apache/camel/Exchange.java +++ b/camel-core/src/main/java/org/apache/camel/Exchange.java @@ -145,6 +145,7 @@ public interface Exchange { String HTTP_QUERY = "CamelHttpQuery"; String HTTP_RAW_QUERY = "CamelHttpRawQuery"; String HTTP_RESPONSE_CODE = "CamelHttpResponseCode"; + String HTTP_RESPONSE_TEXT = "CamelHttpResponseText"; String HTTP_URI = "CamelHttpUri"; String HTTP_URL = "CamelHttpUrl"; String HTTP_CHUNKED = "CamelHttpChunked"; http://git-wip-us.apache.org/repos/asf/camel/blob/a4828fa2/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/DefaultAhcBinding.java ---------------------------------------------------------------------- diff --git a/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/DefaultAhcBinding.java b/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/DefaultAhcBinding.java index 8c57cd9..a7fd405 100644 --- a/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/DefaultAhcBinding.java +++ b/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/DefaultAhcBinding.java @@ -191,6 +191,7 @@ public class DefaultAhcBinding implements AhcBinding { // Just filter the http protocol headers MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), httpProtocolHeaderFilterStrategy, false); exchange.getOut().setHeader(Exchange.HTTP_RESPONSE_CODE, responseStatus.getStatusCode()); + exchange.getOut().setHeader(Exchange.HTTP_RESPONSE_TEXT, responseStatus.getStatusText()); } @Override http://git-wip-us.apache.org/repos/asf/camel/blob/a4828fa2/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcProduceGetHeadersTest.java ---------------------------------------------------------------------- diff --git a/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcProduceGetHeadersTest.java b/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcProduceGetHeadersTest.java index d445aa7..16447eb 100644 --- a/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcProduceGetHeadersTest.java +++ b/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcProduceGetHeadersTest.java @@ -31,6 +31,7 @@ public class AhcProduceGetHeadersTest extends BaseAhcTest { getMockEndpoint("mock:result").expectedHeaderReceived("foo", 123); getMockEndpoint("mock:result").expectedHeaderReceived("bar", "cool"); getMockEndpoint("mock:result").expectedHeaderReceived(Exchange.HTTP_RESPONSE_CODE, 200); + getMockEndpoint("mock:result").expectedHeaderReceived(Exchange.HTTP_RESPONSE_TEXT, "OK"); getMockEndpoint("mock:result").expectedHeaderReceived(Exchange.CONTENT_LENGTH, 9); Map<String, Object> headers = new HashMap<String, Object>(); http://git-wip-us.apache.org/repos/asf/camel/blob/a4828fa2/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcProduceNoThrowExceptionOnFailureTest.java ---------------------------------------------------------------------- diff --git a/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcProduceNoThrowExceptionOnFailureTest.java b/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcProduceNoThrowExceptionOnFailureTest.java index 4502020..41b0290 100644 --- a/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcProduceNoThrowExceptionOnFailureTest.java +++ b/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/AhcProduceNoThrowExceptionOnFailureTest.java @@ -27,6 +27,7 @@ public class AhcProduceNoThrowExceptionOnFailureTest extends BaseAhcTest { public void testAhcProduce() throws Exception { getMockEndpoint("mock:result").expectedBodiesReceived("Does not work"); getMockEndpoint("mock:result").expectedHeaderReceived(Exchange.HTTP_RESPONSE_CODE, 500); + getMockEndpoint("mock:result").expectedHeaderReceived(Exchange.HTTP_RESPONSE_TEXT, "Server Error"); template.sendBody("direct:start", null); http://git-wip-us.apache.org/repos/asf/camel/blob/a4828fa2/components/camel-http/src/main/java/org/apache/camel/component/http/HttpPollingConsumer.java ---------------------------------------------------------------------- diff --git a/components/camel-http/src/main/java/org/apache/camel/component/http/HttpPollingConsumer.java b/components/camel-http/src/main/java/org/apache/camel/component/http/HttpPollingConsumer.java index 63603ea..403bb02 100644 --- a/components/camel-http/src/main/java/org/apache/camel/component/http/HttpPollingConsumer.java +++ b/components/camel-http/src/main/java/org/apache/camel/component/http/HttpPollingConsumer.java @@ -91,6 +91,7 @@ public class HttpPollingConsumer extends PollingConsumerSupport implements Servi } } message.setHeader(Exchange.HTTP_RESPONSE_CODE, responseCode); + message.setHeader(Exchange.HTTP_RESPONSE_TEXT, method.getStatusText()); return exchange; } catch (IOException e) { http://git-wip-us.apache.org/repos/asf/camel/blob/a4828fa2/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java ---------------------------------------------------------------------- diff --git a/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java b/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java index 1519362..052b09e 100644 --- a/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java +++ b/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java @@ -173,6 +173,7 @@ public class HttpProducer extends DefaultProducer { Message answer = exchange.getOut(); answer.setHeader(Exchange.HTTP_RESPONSE_CODE, responseCode); + answer.setHeader(Exchange.HTTP_RESPONSE_TEXT, method.getStatusText()); answer.setBody(response); // propagate HTTP response headers http://git-wip-us.apache.org/repos/asf/camel/blob/a4828fa2/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpPollingConsumer.java ---------------------------------------------------------------------- diff --git a/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpPollingConsumer.java b/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpPollingConsumer.java index 758c1c9..ff74cee 100644 --- a/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpPollingConsumer.java +++ b/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpPollingConsumer.java @@ -100,6 +100,9 @@ public class HttpPollingConsumer extends PollingConsumerSupport implements Servi } } message.setHeader(Exchange.HTTP_RESPONSE_CODE, responseCode); + if (response.getStatusLine() != null) { + message.setHeader(Exchange.HTTP_RESPONSE_TEXT, response.getStatusLine().getReasonPhrase()); + } return exchange; } catch (IOException e) { http://git-wip-us.apache.org/repos/asf/camel/blob/a4828fa2/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpProducer.java ---------------------------------------------------------------------- diff --git a/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpProducer.java b/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpProducer.java index c2790cc..8e52f6b 100644 --- a/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpProducer.java +++ b/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpProducer.java @@ -189,6 +189,9 @@ public class HttpProducer extends DefaultProducer { Message answer = exchange.getOut(); answer.setHeader(Exchange.HTTP_RESPONSE_CODE, responseCode); + if (httpResponse.getStatusLine() != null) { + answer.setHeader(Exchange.HTTP_RESPONSE_TEXT, httpResponse.getStatusLine().getReasonPhrase()); + } answer.setBody(response); // propagate HTTP response headers http://git-wip-us.apache.org/repos/asf/camel/blob/a4828fa2/components/camel-http4/src/test/java/org/apache/camel/component/http4/HttpMethodsTest.java ---------------------------------------------------------------------- diff --git a/components/camel-http4/src/test/java/org/apache/camel/component/http4/HttpMethodsTest.java b/components/camel-http4/src/test/java/org/apache/camel/component/http4/HttpMethodsTest.java index 620e6cb..f9c7a5b 100644 --- a/components/camel-http4/src/test/java/org/apache/camel/component/http4/HttpMethodsTest.java +++ b/components/camel-http4/src/test/java/org/apache/camel/component/http4/HttpMethodsTest.java @@ -97,6 +97,7 @@ public class HttpMethodsTest extends BaseHttpTest { Message out = exchange.getOut(); Map<String, Object> headers = out.getHeaders(); assertEquals(HttpStatus.SC_NOT_IMPLEMENTED, headers.get(Exchange.HTTP_RESPONSE_CODE)); + assertEquals("Not Implemented", headers.get(Exchange.HTTP_RESPONSE_TEXT)); assertEquals("26", headers.get("Content-Length")); assertNotNull("Should have Content-Type header", headers.get("Content-Type")); assertEquals("PATCH method not supported", out.getBody(String.class)); http://git-wip-us.apache.org/repos/asf/camel/blob/a4828fa2/components/camel-http4/src/test/java/org/apache/camel/component/http4/HttpRedirectTest.java ---------------------------------------------------------------------- diff --git a/components/camel-http4/src/test/java/org/apache/camel/component/http4/HttpRedirectTest.java b/components/camel-http4/src/test/java/org/apache/camel/component/http4/HttpRedirectTest.java index 6acee6e..ffb8f84 100644 --- a/components/camel-http4/src/test/java/org/apache/camel/component/http4/HttpRedirectTest.java +++ b/components/camel-http4/src/test/java/org/apache/camel/component/http4/HttpRedirectTest.java @@ -101,6 +101,7 @@ public class HttpRedirectTest extends BaseHttpTest { assertNotNull(out); assertEquals(HttpStatus.SC_OK, out.getOut().getHeader(Exchange.HTTP_RESPONSE_CODE)); + assertEquals("OK", out.getOut().getHeader(Exchange.HTTP_RESPONSE_TEXT)); assertEquals("Bye World", out.getOut().getBody(String.class)); } http://git-wip-us.apache.org/repos/asf/camel/blob/a4828fa2/components/camel-jetty9/src/test/java/org/apache/camel/component/jetty/JettyCallHttpThenExceptionTest.java ---------------------------------------------------------------------- diff --git a/components/camel-jetty9/src/test/java/org/apache/camel/component/jetty/JettyCallHttpThenExceptionTest.java b/components/camel-jetty9/src/test/java/org/apache/camel/component/jetty/JettyCallHttpThenExceptionTest.java index 7468083..b12c57e 100644 --- a/components/camel-jetty9/src/test/java/org/apache/camel/component/jetty/JettyCallHttpThenExceptionTest.java +++ b/components/camel-jetty9/src/test/java/org/apache/camel/component/jetty/JettyCallHttpThenExceptionTest.java @@ -42,6 +42,7 @@ public class JettyCallHttpThenExceptionTest extends BaseJettyTest { assertNotNull(reply); assertTrue(reply.getOut().getBody(String.class).startsWith("java.lang.IllegalArgumentException: I cannot do this")); assertEquals(500, reply.getOut().getHeader(Exchange.HTTP_RESPONSE_CODE)); + assertEquals("Server Error", reply.getOut().getHeader(Exchange.HTTP_RESPONSE_TEXT)); } @Override http://git-wip-us.apache.org/repos/asf/camel/blob/a4828fa2/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/DefaultNettyHttpBinding.java ---------------------------------------------------------------------- diff --git a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/DefaultNettyHttpBinding.java b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/DefaultNettyHttpBinding.java index bbdbfc3..863adce 100644 --- a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/DefaultNettyHttpBinding.java +++ b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/DefaultNettyHttpBinding.java @@ -265,7 +265,7 @@ public class DefaultNettyHttpBinding implements NettyHttpBinding, Cloneable { LOG.trace("populateCamelHeaders: {}", response); headers.put(Exchange.HTTP_RESPONSE_CODE, response.getStatus().getCode()); - headers.put(NettyHttpConstants.HTTP_RESPONSE_TEXT, response.getStatus().getReasonPhrase()); + headers.put(Exchange.HTTP_RESPONSE_TEXT, response.getStatus().getReasonPhrase()); for (String name : response.headers().names()) { // mapping the content-type http://git-wip-us.apache.org/repos/asf/camel/blob/a4828fa2/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpConstants.java ---------------------------------------------------------------------- diff --git a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpConstants.java b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpConstants.java index df31626..ba14045 100644 --- a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpConstants.java +++ b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpConstants.java @@ -16,6 +16,8 @@ */ package org.apache.camel.component.netty.http; +import org.apache.camel.Exchange; + /** * Netty HTTP constants. */ @@ -23,7 +25,8 @@ public final class NettyHttpConstants { public static final String CONTENT_TYPE_JAVA_SERIALIZED_OBJECT = "application/x-java-serialized-object"; public static final String CONTENT_TYPE_WWW_FORM_URLENCODED = "application/x-www-form-urlencoded"; - public static final String HTTP_RESPONSE_TEXT = "CamelHttpResponseText"; + @Deprecated + public static final String HTTP_RESPONSE_TEXT = Exchange.HTTP_RESPONSE_TEXT; public static final String HTTP_AUTHENTICATION = "CamelHttpAuthentication"; private NettyHttpConstants() { http://git-wip-us.apache.org/repos/asf/camel/blob/a4828fa2/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpFilterCamelHeadersTest.java ---------------------------------------------------------------------- diff --git a/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpFilterCamelHeadersTest.java b/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpFilterCamelHeadersTest.java index bdc9c55..478fdb3 100644 --- a/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpFilterCamelHeadersTest.java +++ b/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpFilterCamelHeadersTest.java @@ -42,7 +42,7 @@ public class NettyHttpFilterCamelHeadersTest extends BaseNettyTest { // except for the response code and response text Map<String, Object> headers = out.getOut().getHeaders(); for (String key : headers.keySet()) { - if (!key.equalsIgnoreCase(Exchange.HTTP_RESPONSE_CODE) && !key.equalsIgnoreCase(NettyHttpConstants.HTTP_RESPONSE_TEXT)) { + if (!key.equalsIgnoreCase(Exchange.HTTP_RESPONSE_CODE) && !key.equalsIgnoreCase(Exchange.HTTP_RESPONSE_TEXT)) { assertTrue("Should not contain any Camel internal headers", !key.toLowerCase().startsWith("camel")); } } http://git-wip-us.apache.org/repos/asf/camel/blob/a4828fa2/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/DefaultNettyHttpBinding.java ---------------------------------------------------------------------- diff --git a/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/DefaultNettyHttpBinding.java b/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/DefaultNettyHttpBinding.java index 29f6bdf..2b33170 100644 --- a/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/DefaultNettyHttpBinding.java +++ b/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/DefaultNettyHttpBinding.java @@ -267,7 +267,7 @@ public class DefaultNettyHttpBinding implements NettyHttpBinding, Cloneable { LOG.trace("populateCamelHeaders: {}", response); headers.put(Exchange.HTTP_RESPONSE_CODE, response.getStatus().code()); - headers.put(NettyHttpConstants.HTTP_RESPONSE_TEXT, response.getStatus().reasonPhrase()); + headers.put(Exchange.HTTP_RESPONSE_TEXT, response.getStatus().reasonPhrase()); for (String name : response.headers().names()) { // mapping the content-type http://git-wip-us.apache.org/repos/asf/camel/blob/a4828fa2/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpConstants.java ---------------------------------------------------------------------- diff --git a/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpConstants.java b/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpConstants.java index 2dd5869..deae4e3 100644 --- a/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpConstants.java +++ b/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpConstants.java @@ -16,6 +16,8 @@ */ package org.apache.camel.component.netty4.http; +import org.apache.camel.Exchange; + /** * Netty HTTP constants. */ @@ -23,7 +25,8 @@ public final class NettyHttpConstants { public static final String CONTENT_TYPE_JAVA_SERIALIZED_OBJECT = "application/x-java-serialized-object"; public static final String CONTENT_TYPE_WWW_FORM_URLENCODED = "application/x-www-form-urlencoded"; - public static final String HTTP_RESPONSE_TEXT = "CamelHttpResponseText"; + @Deprecated + public static final String HTTP_RESPONSE_TEXT = Exchange.HTTP_RESPONSE_TEXT; public static final String HTTP_AUTHENTICATION = "CamelHttpAuthentication"; private NettyHttpConstants() { http://git-wip-us.apache.org/repos/asf/camel/blob/a4828fa2/components/camel-netty4-http/src/test/java/org/apache/camel/component/netty4/http/NettyHttpFilterCamelHeadersTest.java ---------------------------------------------------------------------- diff --git a/components/camel-netty4-http/src/test/java/org/apache/camel/component/netty4/http/NettyHttpFilterCamelHeadersTest.java b/components/camel-netty4-http/src/test/java/org/apache/camel/component/netty4/http/NettyHttpFilterCamelHeadersTest.java index 62e4fcf..99c7a41 100644 --- a/components/camel-netty4-http/src/test/java/org/apache/camel/component/netty4/http/NettyHttpFilterCamelHeadersTest.java +++ b/components/camel-netty4-http/src/test/java/org/apache/camel/component/netty4/http/NettyHttpFilterCamelHeadersTest.java @@ -42,7 +42,7 @@ public class NettyHttpFilterCamelHeadersTest extends BaseNettyTest { // except for the response code and response text Map<String, Object> headers = out.getOut().getHeaders(); for (String key : headers.keySet()) { - if (!key.equalsIgnoreCase(Exchange.HTTP_RESPONSE_CODE) && !key.equalsIgnoreCase(NettyHttpConstants.HTTP_RESPONSE_TEXT)) { + if (!key.equalsIgnoreCase(Exchange.HTTP_RESPONSE_CODE) && !key.equalsIgnoreCase(Exchange.HTTP_RESPONSE_TEXT)) { assertTrue("Should not contain any Camel internal headers", !key.toLowerCase().startsWith("camel")); } }