You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2021/02/28 13:01:22 UTC
[camel] 02/05: camel-http - optimize a bit
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
commit a2c9cc0f5fbd3fe97ed77827158951954fca1b89
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sun Feb 28 10:52:17 2021 +0100
camel-http - optimize a bit
---
.../camel/component/http/HttpEntityConverter.java | 22 ++++++++++++++++------
.../java/org/apache/camel/support/GZIPHelper.java | 4 ++--
2 files changed, 18 insertions(+), 8 deletions(-)
diff --git a/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEntityConverter.java b/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEntityConverter.java
index 8302d0d..923d8a6 100644
--- a/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEntityConverter.java
+++ b/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEntityConverter.java
@@ -85,18 +85,28 @@ public final class HttpEntityConverter {
private static HttpEntity asHttpEntity(byte[] data, Exchange exchange) throws Exception {
AbstractHttpEntity entity;
+
+ String contentEncoding = null;
+ if (exchange != null) {
+ contentEncoding = exchange.getIn().getHeader(Exchange.CONTENT_ENCODING, String.class);
+ }
+
if (exchange != null && !exchange.getProperty(Exchange.SKIP_GZIP_ENCODING, Boolean.FALSE, Boolean.class)) {
- String contentEncoding = exchange.getIn().getHeader(Exchange.CONTENT_ENCODING, String.class);
- InputStream stream = GZIPHelper.compressGzip(contentEncoding, data);
- entity = new InputStreamEntity(
- stream, stream instanceof ByteArrayInputStream
- ? stream.available() != 0 ? stream.available() : -1 : -1);
+ boolean gzip = GZIPHelper.isGzip(contentEncoding);
+ if (gzip) {
+ InputStream stream = GZIPHelper.compressGzip(contentEncoding, data);
+ entity = new InputStreamEntity(
+ stream, stream instanceof ByteArrayInputStream
+ ? stream.available() != 0 ? stream.available() : -1 : -1);
+ } else {
+ // use a byte array entity as-is
+ entity = new ByteArrayEntity(data);
+ }
} else {
// create the Repeatable HttpEntity
entity = new ByteArrayEntity(data);
}
if (exchange != null) {
- String contentEncoding = exchange.getIn().getHeader(Exchange.CONTENT_ENCODING, String.class);
if (contentEncoding != null) {
entity.setContentEncoding(contentEncoding);
}
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/GZIPHelper.java b/core/camel-support/src/main/java/org/apache/camel/support/GZIPHelper.java
index f376b90..4c1af42 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/GZIPHelper.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/GZIPHelper.java
@@ -20,13 +20,13 @@ import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.util.Locale;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
import org.apache.camel.Exchange;
import org.apache.camel.Message;
import org.apache.camel.util.IOHelper;
+import org.apache.camel.util.StringHelper;
/**
* Helper class to help wrapping content into GZIP input and output streams.
@@ -106,6 +106,6 @@ public final class GZIPHelper {
}
public static boolean isGzip(String header) {
- return header != null && header.toLowerCase(Locale.ENGLISH).contains("gzip");
+ return StringHelper.containsIgnoreCase(header, "gzip");
}
}