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/16 06:40:35 UTC
[camel] 01/04: CAMEL-16215: camel-http - Optimize isStatusCodeOk
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 532f82fdbb0e4b784fa7063ac224c63f64b503be
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Feb 16 07:13:39 2021 +0100
CAMEL-16215: camel-http - Optimize isStatusCodeOk
---
.../apache/camel/component/http/HttpProducer.java | 22 +++++++++++++++++++++-
1 file changed, 21 insertions(+), 1 deletion(-)
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 04c33a6..4b1dbaf 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
@@ -53,6 +53,7 @@ import org.apache.camel.support.MessageHelper;
import org.apache.camel.support.ObjectHelper;
import org.apache.camel.support.SynchronizationAdapter;
import org.apache.camel.util.IOHelper;
+import org.apache.camel.util.StringHelper;
import org.apache.camel.util.URISupport;
import org.apache.http.Header;
import org.apache.http.HeaderIterator;
@@ -87,6 +88,8 @@ public class HttpProducer extends DefaultProducer {
private boolean throwException;
private boolean transferException;
private HeaderFilterStrategy httpProtocolHeaderFilterStrategy = new HttpProtocolHeaderFilterStrategy();
+ private int minOkRange;
+ private int maxOkRange;
public HttpProducer(HttpEndpoint endpoint) {
super(endpoint);
@@ -97,6 +100,18 @@ public class HttpProducer extends DefaultProducer {
}
@Override
+ protected void doInit() throws Exception {
+ super.doInit();
+
+ String range = getEndpoint().getOkStatusCodeRange();
+ if (!range.contains(",")) {
+ // default is 200-299 so lets optimize for this
+ minOkRange = Integer.parseInt(StringHelper.before(range, "-"));
+ maxOkRange = Integer.parseInt(StringHelper.after(range, "-"));
+ }
+ }
+
+ @Override
public void process(Exchange exchange) throws Exception {
if (getEndpoint().isClearExpiredCookies() && !getEndpoint().isBridgeEndpoint()) {
@@ -238,7 +253,12 @@ public class HttpProducer extends DefaultProducer {
// if we do not use failed exception then populate response for all response codes
populateResponse(exchange, httpRequest, httpResponse, in, strategy, responseCode);
} else {
- boolean ok = HttpHelper.isStatusCodeOk(responseCode, getEndpoint().getOkStatusCodeRange());
+ boolean ok;
+ if (minOkRange > 0) {
+ ok = responseCode >= minOkRange && responseCode <= maxOkRange;
+ } else {
+ ok = HttpHelper.isStatusCodeOk(responseCode, getEndpoint().getOkStatusCodeRange());
+ }
if (ok) {
// only populate response for OK response
populateResponse(exchange, httpRequest, httpResponse, in, strategy, responseCode);