You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2018/09/06 08:07:48 UTC
[camel] 04/05: CAMEL-12751 - Removed config. Instead ignoring
content-length on streams
This is an automated email from the ASF dual-hosted git repository.
acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 1e896e5abb6fe8f4ee4f30636d070cc8e0b04aff
Author: Bob Paulin <bo...@bobpaulin.com>
AuthorDate: Wed Sep 5 20:56:15 2018 -0500
CAMEL-12751 - Removed config. Instead ignoring content-length on streams
---
.../src/main/java/org/apache/camel/Exchange.java | 1 -
.../apache/camel/component/http4/HttpEndpoint.java | 21 ---------------------
.../camel/component/http4/HttpEntityConverter.java | 12 +-----------
.../apache/camel/component/http4/HttpProducer.java | 16 ++++------------
.../http4/HttpProducerContentLengthTest.java | 20 ++++++++++----------
5 files changed, 15 insertions(+), 55 deletions(-)
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 ded516f..6ca2ac6 100644
--- a/camel-core/src/main/java/org/apache/camel/Exchange.java
+++ b/camel-core/src/main/java/org/apache/camel/Exchange.java
@@ -160,7 +160,6 @@ public interface Exchange {
String HTTP_SERVLET_REQUEST = "CamelHttpServletRequest";
String HTTP_SERVLET_RESPONSE = "CamelHttpServletResponse";
- String IGNORE_CONTENT_LENGTH_HEADER = "CamelIgnoreContentLengthHeader";
String INTERCEPTED_ENDPOINT = "CamelInterceptedEndpoint";
String INTERCEPT_SEND_TO_ENDPOINT_WHEN_MATCHED = "CamelInterceptSendToEndpointWhenMatched";
String INTERRUPTED = "CamelInterrupted";
diff --git a/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpEndpoint.java b/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpEndpoint.java
index 9b7cf08..3c8f875 100644
--- a/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpEndpoint.java
+++ b/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpEndpoint.java
@@ -108,8 +108,6 @@ public class HttpEndpoint extends HttpCommonEndpoint {
private int connectionsPerRoute;
@UriParam(label = "security", description = "To use a custom X509HostnameVerifier such as DefaultHostnameVerifier or NoopHostnameVerifier")
private HostnameVerifier x509HostnameVerifier;
- @UriParam(label = "producer,proxy", description = "Ignore Content-Length Header")
- private boolean ignoreContentLengthHeader = true;
public HttpEndpoint() {
}
@@ -456,24 +454,5 @@ public class HttpEndpoint extends HttpCommonEndpoint {
public void setSocketTimeout(int socketTimeout) {
this.socketTimeout = socketTimeout;
}
-
- /**
- * Ignore Content-Length Header
- * <p>
- * Ignore the HTTP Content-Length Header when sending the
- * request to the HttpProducer. Set this to false to explicitly
- * set Content-Length of a request body.
- * </p>
- * <p>
- * Default: {@code true}
- * </p>
- */
- public boolean isIgnoreContentLengthHeader() {
- return ignoreContentLengthHeader;
- }
-
- public void setIgnoreContentLengthHeader(boolean ignoreContentLengthHeader) {
- this.ignoreContentLengthHeader = ignoreContentLengthHeader;
- }
}
diff --git a/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpEntityConverter.java b/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpEntityConverter.java
index f827112..8236da8 100644
--- a/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpEntityConverter.java
+++ b/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpEntityConverter.java
@@ -22,10 +22,8 @@ import java.io.InputStream;
import org.apache.camel.Converter;
import org.apache.camel.Exchange;
-import org.apache.camel.Message;
import org.apache.camel.util.ExchangeHelper;
import org.apache.camel.util.GZIPHelper;
-import org.apache.camel.util.ObjectHelper;
import org.apache.http.HttpEntity;
import org.apache.http.entity.AbstractHttpEntity;
import org.apache.http.entity.ByteArrayEntity;
@@ -69,15 +67,7 @@ public final class HttpEntityConverter {
entity = new InputStreamEntity(stream, stream instanceof ByteArrayInputStream
? stream.available() != 0 ? stream.available() : -1 : -1);
} else {
- Message inMessage = exchange.getIn();
- String length = inMessage.getHeader(Exchange.CONTENT_LENGTH, String.class);
-
- if (exchange.getProperty(Exchange.IGNORE_CONTENT_LENGTH_HEADER, Boolean.FALSE, Boolean.class) ||
- ObjectHelper.isEmpty(length)) {
- entity = new InputStreamEntity(in, -1);
- } else {
- entity = new InputStreamEntity(in, Long.parseLong(length));
- }
+ entity = new InputStreamEntity(in, -1);
}
if (exchange != null) {
String contentEncoding = exchange.getIn().getHeader(Exchange.CONTENT_ENCODING, String.class);
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 6654a26..fa314ab 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
@@ -111,10 +111,7 @@ public class HttpProducer extends DefaultProducer {
skipRequestHeaders = URISupport.parseQuery(queryString, false, true);
}
}
-
- if(getEndpoint().isIgnoreContentLengthHeader()) {
- exchange.setProperty(Exchange.IGNORE_CONTENT_LENGTH_HEADER, Boolean.TRUE);
- }
+
HttpRequestBase httpRequest = createMethod(exchange);
Message in = exchange.getIn();
String httpProtocolVersion = in.getHeader(Exchange.HTTP_PROTOCOL_VERSION, String.class);
@@ -562,14 +559,9 @@ public class HttpProducer extends DefaultProducer {
if (answer == null) {
// force the body as an input stream since this is the fallback
InputStream is = in.getMandatoryBody(InputStream.class);
- String length = in.getHeader(Exchange.CONTENT_LENGTH, String.class);
- InputStreamEntity entity = null;
- if (exchange.getProperty(Exchange.IGNORE_CONTENT_LENGTH_HEADER, Boolean.FALSE, Boolean.class) ||
- ObjectHelper.isEmpty(length)) {
- entity = new InputStreamEntity(is, -1);
- } else {
- entity = new InputStreamEntity(is, Long.parseLong(length));
- }
+
+ InputStreamEntity entity = new InputStreamEntity(is, -1);
+
if (contentType != null) {
entity.setContentType(contentType.toString());
}
diff --git a/components/camel-http4/src/test/java/org/apache/camel/component/http4/HttpProducerContentLengthTest.java b/components/camel-http4/src/test/java/org/apache/camel/component/http4/HttpProducerContentLengthTest.java
index fc28b86..ef71aa4 100644
--- a/components/camel-http4/src/test/java/org/apache/camel/component/http4/HttpProducerContentLengthTest.java
+++ b/components/camel-http4/src/test/java/org/apache/camel/component/http4/HttpProducerContentLengthTest.java
@@ -52,7 +52,7 @@ public class HttpProducerContentLengthTest extends BaseHttpTest {
setResponseFactory(getHttpResponseFactory()).
setExpectationVerifier(getHttpExpectationVerifier()).
setSslContext(getSSLContext()).
- registerHandler("/content-ignore", new HttpRequestHandler() {
+ registerHandler("/content-streamed", new HttpRequestHandler() {
@Override
public void handle(HttpRequest request, HttpResponse response, HttpContext context) throws HttpException, IOException {
Header contentLengthHeader = request.getFirstHeader(Exchange.CONTENT_LENGTH);
@@ -65,7 +65,7 @@ public class HttpProducerContentLengthTest extends BaseHttpTest {
assertEquals("chunked", transferEncoding);
response.setStatusCode(HttpStatus.SC_OK);
}
- }).registerHandler("/content-no-ignore", new HttpRequestHandler() {
+ }).registerHandler("/content-not-streamed", new HttpRequestHandler() {
@Override
public void handle(HttpRequest request, HttpResponse response, HttpContext context) throws HttpException, IOException {
Header contentLengthHeader = request.getFirstHeader(Exchange.CONTENT_LENGTH);
@@ -73,8 +73,8 @@ public class HttpProducerContentLengthTest extends BaseHttpTest {
Header transferEncodingHeader = request.getFirstHeader(Exchange.TRANSFER_ENCODING);
String transferEncoding = transferEncodingHeader != null ? transferEncodingHeader.getValue() : "";
- //Content-Length was overridden to 10
- assertEquals("10", contentLength);
+ //Content-Length should match byte array
+ assertEquals("35", contentLength);
assertEquals("", transferEncoding);
response.setStatusCode(HttpStatus.SC_OK);
}
@@ -97,8 +97,8 @@ public class HttpProducerContentLengthTest extends BaseHttpTest {
}
@Test
- public void testContentLengthIgnore() throws Exception {
- Exchange out = template.request("http4://" + localServer.getInetAddress().getHostName() + ":" + localServer.getLocalPort() + "/content-ignore?bridgeEndpoint=true", new Processor() {
+ public void testContentLengthStream() throws Exception {
+ Exchange out = template.request("http4://" + localServer.getInetAddress().getHostName() + ":" + localServer.getLocalPort() + "/content-streamed?bridgeEndpoint=true", new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
@@ -115,14 +115,14 @@ public class HttpProducerContentLengthTest extends BaseHttpTest {
}
@Test
- public void testContentLengthNoIgnore() throws Exception {
- Exchange out = template.request("http4://" + localServer.getInetAddress().getHostName() + ":" + localServer.getLocalPort() + "/content-no-ignore?bridgeEndpoint=true&ignoreContentLengthHeader=false", new Processor() {
+ public void testContentLengthNotStreamed() throws Exception {
+ Exchange out = template.request("http4://" + localServer.getInetAddress().getHostName() + ":" + localServer.getLocalPort() + "/content-not-streamed?bridgeEndpoint=true", new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
- exchange.getIn().setHeader(Exchange.CONTENT_LENGTH, "10");
+ exchange.getIn().setHeader(Exchange.CONTENT_LENGTH, "1000");
exchange.getIn().setHeader(Exchange.CONTENT_TYPE, "application/json");
- exchange.getIn().setBody(new ByteArrayInputStreamCache(new ByteArrayInputStream(bodyContent.getBytes())));
+ exchange.getIn().setBody(bodyContent.getBytes());
}
});