This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push: new a590bb55e10 CAMEL-20830: Upgrade jetty. Remove ServletRequest/ServletResponse object in Camel headers as they should only be accessible via the HttpMessage class. (#14518) a590bb55e10 is described below commit a590bb55e1086acef0266111ba003c68d591069f Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Fri Jun 14 08:38:48 2024 +0200 CAMEL-20830: Upgrade jetty. Remove ServletRequest/ServletResponse object in Camel headers as they should only be accessible via the HttpMessage class. (#14518) --- .../cxf/jaxrs/CxfRsSpringConsumerTest.java | 1 - .../message/DefaultCxfMessageMapperTest.java | 7 +++-- components/camel-cxf/camel-cxf-transport/pom.xml | 9 +++--- .../transport/message/DefaultCxfMessageMapper.java | 14 ++++----- .../message/DefaultCxfMessageMapperTest.java | 7 +++-- .../apache/camel/http/common/HttpConverter.java | 12 ++++---- .../org/apache/camel/http/common/HttpMessage.java | 3 -- .../component/jetty/JettyConverterLoader.java | 5 ---- .../camel/component/jetty/JettyConverter.java | 9 +++--- .../camel/component/jetty/HttpConverterTest.java | 33 ++-------------------- .../component/jetty/HttpGZipEncodingTest.java | 4 +-- .../camel/component/jetty/HttpHeaderTest.java | 4 +-- .../component/servlet/HttpClientRouteTest.java | 6 ++-- .../camel/component/undertow/ExchangeHeaders.java | 2 -- .../src/main/java/org/apache/camel/Exchange.java | 2 ++ .../ROOT/pages/camel-4x-upgrade-guide-4_7.adoc | 21 ++++++++++++++ parent/pom.xml | 2 +- 17 files changed, 64 insertions(+), 77 deletions(-) diff --git a/components/camel-cxf/camel-cxf-spring-rest/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsSpringConsumerTest.java b/components/camel-cxf/camel-cxf-spring-rest/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsSpringConsumerTest.java index edef5481aec..e7a7fa11817 100644 --- a/components/camel-cxf/camel-cxf-spring-rest/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsSpringConsumerTest.java +++ b/components/camel-cxf/camel-cxf-spring-rest/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsSpringConsumerTest.java @@ -82,7 +82,6 @@ public class CxfRsSpringConsumerTest extends CamelSpringTestSupport { @Test public void testInvokeCxfRsConsumer() throws Exception { - System.out.println("port1 is " + port1); String address = "http://localhost:" + port1 + "/CxfRsSpringConsumerInvokeService/customerservice/customers/123"; WebClient wc = WebClient.create(address); Customer c = wc.accept("application/json").get(Customer.class); diff --git a/components/camel-cxf/camel-cxf-spring-transport/src/test/java/org/apache/camel/component/cxf/common/message/DefaultCxfMessageMapperTest.java b/components/camel-cxf/camel-cxf-spring-transport/src/test/java/org/apache/camel/component/cxf/common/message/DefaultCxfMessageMapperTest.java index e63bdaa5598..1be26e77244 100644 --- a/components/camel-cxf/camel-cxf-spring-transport/src/test/java/org/apache/camel/component/cxf/common/message/DefaultCxfMessageMapperTest.java +++ b/components/camel-cxf/camel-cxf-spring-transport/src/test/java/org/apache/camel/component/cxf/common/message/DefaultCxfMessageMapperTest.java @@ -25,6 +25,7 @@ import jakarta.servlet.http.HttpServletRequest; import org.apache.camel.Exchange; import org.apache.camel.component.cxf.transport.CamelTransportConstants; import org.apache.camel.component.cxf.transport.message.DefaultCxfMessageMapper; +import org.apache.camel.http.common.HttpMessage; import org.apache.camel.spi.HeaderFilterStrategy; import org.apache.cxf.common.security.SimplePrincipal; import org.apache.cxf.message.ExchangeImpl; @@ -77,6 +78,7 @@ public class DefaultCxfMessageMapperTest { private Exchange setupCamelExchange(String requestURI, String requestPath, HttpServletRequest request) { org.apache.camel.Message camelMessage = mock(org.apache.camel.Message.class); + org.apache.camel.http.common.HttpMessage camelHttpMessage = mock(org.apache.camel.http.common.HttpMessage.class); Exchange camelExchange = mock(Exchange.class); when(camelExchange.getProperty(CamelTransportConstants.CXF_EXCHANGE, org.apache.cxf.message.Exchange.class)).thenReturn(new ExchangeImpl()); @@ -92,8 +94,9 @@ public class DefaultCxfMessageMapperTest { when(camelMessage.getHeader(Exchange.HTTP_BASE_URI, String.class)).thenReturn(requestPath); when(camelMessage.getHeader(Exchange.HTTP_METHOD, String.class)).thenReturn("GET"); when(camelMessage.getHeader(Exchange.HTTP_QUERY, String.class)).thenReturn(""); - when(camelMessage.getHeader(Exchange.HTTP_SERVLET_REQUEST)).thenReturn(request); - when(camelMessage.getHeader(Exchange.HTTP_SERVLET_RESPONSE)).thenReturn(null); + when(camelExchange.getIn(HttpMessage.class)).thenReturn(camelHttpMessage); + when(camelHttpMessage.getRequest()).thenReturn(request); + when(camelHttpMessage.getResponse()).thenReturn(null); when(camelMessage.getBody(InputStream.class)).thenReturn(new ByteArrayInputStream("".getBytes())); return camelExchange; } diff --git a/components/camel-cxf/camel-cxf-transport/pom.xml b/components/camel-cxf/camel-cxf-transport/pom.xml index 71dd71939fe..d4cd0f2ef6b 100644 --- a/components/camel-cxf/camel-cxf-transport/pom.xml +++ b/components/camel-cxf/camel-cxf-transport/pom.xml @@ -36,9 +36,6 @@ <firstVersion>2.8.0</firstVersion> <label>soap,webservice</label> <title>CXF Transport</title> - - - </properties> <dependencies> @@ -46,7 +43,10 @@ <groupId>org.apache.camel</groupId> <artifactId>camel-support</artifactId> </dependency> - + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-http-common</artifactId> + </dependency> <dependency> <groupId>org.apache.camel</groupId> @@ -59,7 +59,6 @@ <version>${cxf-version}</version> </dependency> - <dependency> <groupId>jakarta.servlet</groupId> <artifactId>jakarta.servlet-api</artifactId> diff --git a/components/camel-cxf/camel-cxf-transport/src/main/java/org/apache/camel/component/cxf/transport/message/DefaultCxfMessageMapper.java b/components/camel-cxf/camel-cxf-transport/src/main/java/org/apache/camel/component/cxf/transport/message/DefaultCxfMessageMapper.java index 916c46260da..6395a90a9e0 100644 --- a/components/camel-cxf/camel-cxf-transport/src/main/java/org/apache/camel/component/cxf/transport/message/DefaultCxfMessageMapper.java +++ b/components/camel-cxf/camel-cxf-transport/src/main/java/org/apache/camel/component/cxf/transport/message/DefaultCxfMessageMapper.java @@ -23,6 +23,7 @@ import java.util.Map; import jakarta.servlet.http.HttpServletRequest; import org.apache.camel.Exchange; +import org.apache.camel.http.common.HttpMessage; import org.apache.camel.spi.HeaderFilterStrategy; import org.apache.cxf.helpers.CastUtils; import org.apache.cxf.message.Message; @@ -66,16 +67,13 @@ public class DefaultCxfMessageMapper implements CxfMessageMapper { answer.put(org.apache.cxf.message.Message.ENCODING, enc); answer.put(org.apache.cxf.message.Message.QUERY_STRING, queryString); - HttpServletRequest request = (HttpServletRequest) camelMessage.getHeader(Exchange.HTTP_SERVLET_REQUEST); - answer.put(CXF_HTTP_REQUEST, request); - - if (request != null) { - setSecurityContext(answer, request); + HttpMessage hm = camelExchange.getIn(HttpMessage.class); + if (hm != null) { + answer.put(CXF_HTTP_REQUEST, hm.getRequest()); + answer.put(CXF_HTTP_RESPONSE, hm.getResponse()); + setSecurityContext(answer, hm.getRequest()); } - Object response = camelMessage.getHeader(Exchange.HTTP_SERVLET_RESPONSE); - answer.put(CXF_HTTP_RESPONSE, response); - LOG.trace( "Processing {}, requestContentType = {}, acceptContentTypes = {}, encoding = {}, path = {}, basePath = {}, verb = {}", camelExchange, requestContentType, acceptContentTypes, enc, path, basePath, verb); diff --git a/components/camel-cxf/camel-cxf-transport/src/test/java/org/apache/camel/component/cxf/common/message/DefaultCxfMessageMapperTest.java b/components/camel-cxf/camel-cxf-transport/src/test/java/org/apache/camel/component/cxf/common/message/DefaultCxfMessageMapperTest.java index e63bdaa5598..1be26e77244 100644 --- a/components/camel-cxf/camel-cxf-transport/src/test/java/org/apache/camel/component/cxf/common/message/DefaultCxfMessageMapperTest.java +++ b/components/camel-cxf/camel-cxf-transport/src/test/java/org/apache/camel/component/cxf/common/message/DefaultCxfMessageMapperTest.java @@ -25,6 +25,7 @@ import jakarta.servlet.http.HttpServletRequest; import org.apache.camel.Exchange; import org.apache.camel.component.cxf.transport.CamelTransportConstants; import org.apache.camel.component.cxf.transport.message.DefaultCxfMessageMapper; +import org.apache.camel.http.common.HttpMessage; import org.apache.camel.spi.HeaderFilterStrategy; import org.apache.cxf.common.security.SimplePrincipal; import org.apache.cxf.message.ExchangeImpl; @@ -77,6 +78,7 @@ public class DefaultCxfMessageMapperTest { private Exchange setupCamelExchange(String requestURI, String requestPath, HttpServletRequest request) { org.apache.camel.Message camelMessage = mock(org.apache.camel.Message.class); + org.apache.camel.http.common.HttpMessage camelHttpMessage = mock(org.apache.camel.http.common.HttpMessage.class); Exchange camelExchange = mock(Exchange.class); when(camelExchange.getProperty(CamelTransportConstants.CXF_EXCHANGE, org.apache.cxf.message.Exchange.class)).thenReturn(new ExchangeImpl()); @@ -92,8 +94,9 @@ public class DefaultCxfMessageMapperTest { when(camelMessage.getHeader(Exchange.HTTP_BASE_URI, String.class)).thenReturn(requestPath); when(camelMessage.getHeader(Exchange.HTTP_METHOD, String.class)).thenReturn("GET"); when(camelMessage.getHeader(Exchange.HTTP_QUERY, String.class)).thenReturn(""); - when(camelMessage.getHeader(Exchange.HTTP_SERVLET_REQUEST)).thenReturn(request); - when(camelMessage.getHeader(Exchange.HTTP_SERVLET_RESPONSE)).thenReturn(null); + when(camelExchange.getIn(HttpMessage.class)).thenReturn(camelHttpMessage); + when(camelHttpMessage.getRequest()).thenReturn(request); + when(camelHttpMessage.getResponse()).thenReturn(null); when(camelMessage.getBody(InputStream.class)).thenReturn(new ByteArrayInputStream("".getBytes())); return camelExchange; } diff --git a/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpConverter.java b/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpConverter.java index 29e27a5e8d0..ab248ed57c8 100644 --- a/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpConverter.java +++ b/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpConverter.java @@ -41,18 +41,18 @@ public final class HttpConverter { @Converter public static HttpServletRequest toServletRequest(Message message) { - if (message == null) { - return null; + if (message instanceof HttpMessage hm) { + return hm.getRequest(); } - return message.getHeader(Exchange.HTTP_SERVLET_REQUEST, HttpServletRequest.class); + return null; } @Converter public static HttpServletResponse toServletResponse(Message message) { - if (message == null) { - return null; + if (message instanceof HttpMessage hm) { + return hm.getResponse(); } - return message.getHeader(Exchange.HTTP_SERVLET_RESPONSE, HttpServletResponse.class); + return null; } @Converter diff --git a/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpMessage.java b/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpMessage.java index 56edd680bfe..0e5d612911a 100644 --- a/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpMessage.java +++ b/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpMessage.java @@ -58,9 +58,6 @@ public class HttpMessage extends DefaultMessage { this.request = request; this.response = response; - // Put the request and response into the message header - this.setHeader(Exchange.HTTP_SERVLET_REQUEST, request); - this.setHeader(Exchange.HTTP_SERVLET_RESPONSE, response); // Check the setting of exchange Boolean flag = exchange.getProperty(Exchange.SKIP_WWW_FORM_URLENCODED, Boolean.class); diff --git a/components/camel-jetty-common/src/generated/java/org/apache/camel/component/jetty/JettyConverterLoader.java b/components/camel-jetty-common/src/generated/java/org/apache/camel/component/jetty/JettyConverterLoader.java index 9d022eaf871..5e6ab0ebe6d 100644 --- a/components/camel-jetty-common/src/generated/java/org/apache/camel/component/jetty/JettyConverterLoader.java +++ b/components/camel-jetty-common/src/generated/java/org/apache/camel/component/jetty/JettyConverterLoader.java @@ -40,14 +40,9 @@ public final class JettyConverterLoader implements TypeConverterLoader, CamelCon @Override public void load(TypeConverterRegistry registry) throws TypeConverterLoaderException { - registerConverters(registry); registerFallbackConverters(registry); } - private void registerConverters(TypeConverterRegistry registry) { - addTypeConverter(registry, java.lang.String.class, org.eclipse.jetty.server.Response.class, false, - (type, exchange, value) -> org.apache.camel.component.jetty.JettyConverter.toString((org.eclipse.jetty.server.Response) value)); - } private static void addTypeConverter(TypeConverterRegistry registry, Class<?> toType, Class<?> fromType, boolean allowNull, SimpleTypeConverter.ConversionMethod method) { registry.addTypeConverter(toType, fromType, new SimpleTypeConverter(allowNull, method)); diff --git a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyConverter.java b/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyConverter.java index ced938822d3..8f261df33da 100644 --- a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyConverter.java +++ b/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyConverter.java @@ -31,11 +31,6 @@ public final class JettyConverter { //Helper class } - @Converter - public static String toString(Response response) { - return response.toString(); - } - @Converter(fallback = true) @SuppressWarnings("unchecked") public static <T> T convertTo(Class<T> type, Exchange exchange, Object value, TypeConverterRegistry registry) { @@ -44,6 +39,10 @@ public final class JettyConverter { if (Request.class.isAssignableFrom(value.getClass())) { return (T) MISS_VALUE; } + // should not try to convert Response as its not possible + if (Response.class.isAssignableFrom(value.getClass())) { + return (T) MISS_VALUE; + } } return null; diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpConverterTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpConverterTest.java index c8a934cf78a..b9d4e381bf3 100644 --- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpConverterTest.java +++ b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpConverterTest.java @@ -20,7 +20,6 @@ import java.io.InputStream; import jakarta.servlet.ServletInputStream; import jakarta.servlet.http.HttpServletRequest; -import jakarta.servlet.http.HttpServletResponse; import org.apache.camel.Exchange; import org.apache.camel.Processor; @@ -40,32 +39,6 @@ public class HttpConverterTest extends BaseJettyTest { return false; } - @Test - public void testToServletRequestAndResponse() throws Exception { - context.addRoutes(new RouteBuilder() { - @Override - public void configure() { - from("jetty://http://localhost:{{port}}/test") - // add this node to make sure the convert can work within - // DefaultMessageImpl - .convertBodyTo(String.class).process(new Processor() { - public void process(Exchange exchange) { - HttpServletRequest request = exchange.getIn(HttpServletRequest.class); - assertNotNull(request, "We should get request object here"); - HttpServletResponse response = exchange.getIn(HttpServletResponse.class); - assertNotNull(response, "We should get response object here"); - String s = exchange.getIn().getBody(String.class); - assertEquals("Hello World", s); - } - }).transform(constant("Bye World")); - } - }); - context.start(); - - String out = template.requestBody("http://localhost:{{port}}/test", "Hello World", String.class); - assertEquals("Bye World", out); - } - @Test public void testToServletInputStreamWithStreamCaching() throws Exception { context.addRoutes(new RouteBuilder() { @@ -73,7 +46,7 @@ public class HttpConverterTest extends BaseJettyTest { public void configure() { from("jetty://http://localhost:{{port}}/test").process(new Processor() { public void process(Exchange exchange) throws Exception { - HttpMessage msg = exchange.getIn(HttpMessage.class); + HttpMessage msg = exchange.getMessage(HttpMessage.class); // The ServletInputStream should be cached, and you can't read message here ServletInputStream sis = HttpConverter.toServletInputStream(msg); @@ -99,7 +72,7 @@ public class HttpConverterTest extends BaseJettyTest { public void configure() { from("jetty://http://localhost:{{port}}/test?disableStreamCache=true").process(new Processor() { public void process(Exchange exchange) throws Exception { - HttpMessage msg = exchange.getIn(HttpMessage.class); + HttpMessage msg = exchange.getMessage(HttpMessage.class); // The ServletInputStream should not be cached ServletInputStream sis = HttpConverter.toServletInputStream(msg); @@ -126,7 +99,7 @@ public class HttpConverterTest extends BaseJettyTest { public void configure() { from("jetty://http://localhost:{{port}}/test").process(new Processor() { public void process(Exchange exchange) { - HttpMessage msg = exchange.getIn(HttpMessage.class); + HttpMessage msg = exchange.getMessage(HttpMessage.class); InputStream sis = msg.getBody(InputStream.class); assertNotNull(sis); diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpGZipEncodingTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpGZipEncodingTest.java index 54f8ca71d5f..e49041462f2 100644 --- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpGZipEncodingTest.java +++ b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpGZipEncodingTest.java @@ -25,6 +25,7 @@ import org.apache.camel.Processor; import org.apache.camel.builder.ExpressionBuilder; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.http.HttpClientConfigurer; +import org.apache.camel.http.common.HttpMessage; import org.apache.camel.spi.Registry; import org.apache.hc.client5.http.impl.classic.HttpClientBuilder; import org.junit.jupiter.api.Disabled; @@ -86,8 +87,7 @@ public class HttpGZipEncodingTest extends BaseJettyTest { from("jetty:http://localhost:" + port1 + "/gzip").process(new Processor() { public void process(Exchange exchange) { // check the request method - HttpServletRequest request - = exchange.getIn().getHeader(Exchange.HTTP_SERVLET_REQUEST, HttpServletRequest.class); + HttpServletRequest request = exchange.getMessage(HttpMessage.class).getRequest(); if ("POST".equals(request.getMethod())) { String requestBody = exchange.getIn().getBody(String.class); assertEquals("<Hello>World</Hello>", requestBody, "Get a wrong request string"); diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpHeaderTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpHeaderTest.java index 4e15d204e3b..88406fac9f1 100644 --- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpHeaderTest.java +++ b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpHeaderTest.java @@ -24,6 +24,7 @@ import jakarta.servlet.ServletRequest; import org.apache.camel.Exchange; import org.apache.camel.Processor; import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.http.common.HttpMessage; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -73,8 +74,7 @@ public class HttpHeaderTest extends BaseJettyTest { from("jetty:http://localhost:{{port}}/myapp/mytest").process(new Processor() { public void process(Exchange exchange) { Map<String, Object> headers = exchange.getIn().getHeaders(); - ServletRequest request - = exchange.getIn().getHeader(Exchange.HTTP_SERVLET_REQUEST, ServletRequest.class); + ServletRequest request = exchange.getIn(HttpMessage.class).getRequest(); assertNotNull(request); assertEquals("HTTP/1.0", request.getProtocol(), "Get a wong http protocol version"); for (Entry<String, Object> entry : headers.entrySet()) { diff --git a/components/camel-servlet/src/test/java/org/apache/camel/component/servlet/HttpClientRouteTest.java b/components/camel-servlet/src/test/java/org/apache/camel/component/servlet/HttpClientRouteTest.java index b47b94c5b30..bdfc5ab2608 100644 --- a/components/camel-servlet/src/test/java/org/apache/camel/component/servlet/HttpClientRouteTest.java +++ b/components/camel-servlet/src/test/java/org/apache/camel/component/servlet/HttpClientRouteTest.java @@ -25,6 +25,7 @@ import jakarta.servlet.http.HttpServletResponse; import org.apache.camel.Exchange; import org.apache.camel.FailedToStartRouteException; import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.http.common.HttpMessage; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -160,11 +161,10 @@ public class HttpClientRouteTest extends ServletCamelRouterTestSupport { }); from("servlet:testConverter?matchOnUriPrefix=true") - .convertBodyTo(String.class) .process(exchange -> { - HttpServletRequest request = exchange.getIn(HttpServletRequest.class); + HttpServletRequest request = exchange.getIn(HttpMessage.class).getRequest(); assertNotNull(request, "We should get request object here"); - HttpServletResponse response = exchange.getIn(HttpServletResponse.class); + HttpServletResponse response = exchange.getIn(HttpMessage.class).getResponse(); assertNotNull(response, "We should get response object here"); String s = exchange.getIn().getBody(String.class); assertEquals("<request> hello world </request>", s); diff --git a/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/ExchangeHeaders.java b/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/ExchangeHeaders.java index 59e50bfb7c5..47af57fb11f 100644 --- a/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/ExchangeHeaders.java +++ b/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/ExchangeHeaders.java @@ -98,8 +98,6 @@ public final class ExchangeHeaders { public static final HttpString HTTP_URI = new HttpString("CamelHttpUri"); public static final HttpString HTTP_URL = new HttpString("CamelHttpUrl"); public static final HttpString HTTP_CHUNKED = new HttpString("CamelHttpChunked"); - public static final HttpString HTTP_SERVLET_REQUEST = new HttpString("CamelHttpServletRequest"); - public static final HttpString HTTP_SERVLET_RESPONSE = new HttpString("CamelHttpServletResponse"); public static final HttpString INTERCEPTED_ENDPOINT = new HttpString("CamelInterceptedEndpoint"); public static final HttpString INTERCEPT_SEND_TO_ENDPOINT_WHEN_MATCHED diff --git a/core/camel-api/src/main/java/org/apache/camel/Exchange.java b/core/camel-api/src/main/java/org/apache/camel/Exchange.java index 82d256b5f2d..41cd9b83b82 100644 --- a/core/camel-api/src/main/java/org/apache/camel/Exchange.java +++ b/core/camel-api/src/main/java/org/apache/camel/Exchange.java @@ -195,7 +195,9 @@ public interface Exchange extends VariableAware { String HTTP_URI = "CamelHttpUri"; String HTTP_URL = "CamelHttpUrl"; String HTTP_CHUNKED = "CamelHttpChunked"; + @Deprecated(since = "4.7.0") String HTTP_SERVLET_REQUEST = "CamelHttpServletRequest"; + @Deprecated(since = "4.7.0") String HTTP_SERVLET_RESPONSE = "CamelHttpServletResponse"; @Metadata(label = "interceptFrom,interceptSendToEndpoint", description = "The endpoint URI that was intercepted", diff --git a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_7.adoc b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_7.adoc index 6db2b4b26de..d0adc9c660a 100644 --- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_7.adoc +++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_7.adoc @@ -82,6 +82,27 @@ To: </route> ---- +=== camel-jetty / camel-servlet / camel-undertow + +When using embedded HTTP server (consumer) then the headers `CamelHttpServletRequest` and `CamelHttpServletResponse` +has been removed. + +To gain access to these then you need to use the `HttpMessage` API instead as shown below: + +[source,java] +---- +ServletRequest request = exchange.getIn().getHeader(Exchange.HTTP_SERVLET_REQUEST, ServletRequest.class); +ServletResponse request = exchange.getIn().getHeader(Exchange.HTTP_SERVLET_RESPONSE, ServletResponse.class); +---- + +Should be changed to: + +[source,java] +---- +ServletRequest request = exchange.getMessage(HttpMessage.class).getRequest(); +ServletResponse response = exchange.getMessage(HttpMessage.class).getResponse(); +---- + === camel-seda / camel-disruptor When using `InOnly` exchange pattern then the producer makes a copy of the message to be added to the queue. diff --git a/parent/pom.xml b/parent/pom.xml index 456ec091635..3936fe33203 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -273,7 +273,7 @@ <jcr-version>2.0</jcr-version> <jedis-client-version>5.1.3</jedis-client-version> <jetcd-version>0.8.2</jetcd-version> - <jetty-version>12.0.8</jetty-version> + <jetty-version>12.0.10</jetty-version> <jetty-plugin-version>${jetty-version}</jetty-plugin-version> <jetty-runner-groupId>org.eclipse.jetty</jetty-runner-groupId> <jettison-version>1.5.4</jettison-version>