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 4f65a942465d82acea52a5012c00bec81d1183e6 Author: CodeSmell <mbarlo...@gmail.com> AuthorDate: Tue Jan 9 08:54:30 2018 -0500 address PR comments --- .../camel/impl/ThrottlingExceptionRoutePolicy.java | 26 ++++++++--------- ...lingExceptionRoutePolicyKeepOpenOnInitTest.java | 22 +++++++++++++-- ...tlingExceptionRoutePolicyOpenViaConfigTest.java | 33 ++++++++++++++-------- 3 files changed, 52 insertions(+), 29 deletions(-) diff --git a/camel-core/src/main/java/org/apache/camel/impl/ThrottlingExceptionRoutePolicy.java b/camel-core/src/main/java/org/apache/camel/impl/ThrottlingExceptionRoutePolicy.java index 0ee7b83..5c0eb44 100644 --- a/camel-core/src/main/java/org/apache/camel/impl/ThrottlingExceptionRoutePolicy.java +++ b/camel-core/src/main/java/org/apache/camel/impl/ThrottlingExceptionRoutePolicy.java @@ -16,6 +16,14 @@ */ package org.apache.camel.impl; +import java.util.List; +import java.util.Timer; +import java.util.TimerTask; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + import org.apache.camel.CamelContext; import org.apache.camel.CamelContextAware; import org.apache.camel.Exchange; @@ -26,14 +34,6 @@ import org.apache.camel.support.RoutePolicySupport; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.List; -import java.util.Timer; -import java.util.TimerTask; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.concurrent.locks.Lock; -import java.util.concurrent.locks.ReentrantLock; - /** * Modeled after the {@link CircuitBreakerLoadBalancer} and {@link ThrottlingInflightRoutePolicy} * this {@link RoutePolicy} will stop consuming from an endpoint based on the type of exceptions that are @@ -74,17 +74,13 @@ public class ThrottlingExceptionRoutePolicy extends RoutePolicySupport implement // stateful information private final AtomicInteger failures = new AtomicInteger(); private final AtomicInteger state = new AtomicInteger(STATE_CLOSED); - private AtomicBoolean keepOpen = new AtomicBoolean(false); + private final AtomicBoolean keepOpen = new AtomicBoolean(false); private volatile Timer halfOpenTimer; private volatile long lastFailure; private volatile long openedAt; public ThrottlingExceptionRoutePolicy(int threshold, long failureWindow, long halfOpenAfter, List<Class<?>> handledExceptions) { - this.throttledExceptions = handledExceptions; - this.failureWindow = failureWindow; - this.halfOpenAfter = halfOpenAfter; - this.failureThreshold = threshold; - this.keepOpen.set(false); + this(threshold, failureWindow, halfOpenAfter, handledExceptions, false); } public ThrottlingExceptionRoutePolicy(int threshold, long failureWindow, long halfOpenAfter, List<Class<?>> handledExceptions, boolean keepOpen) { @@ -333,7 +329,7 @@ public class ThrottlingExceptionRoutePolicy extends RoutePolicySupport implement } public void setKeepOpen(boolean keepOpen) { - log.debug("keep open:" + keepOpen); + log.debug("keep open: {}", keepOpen); this.keepOpen.set(keepOpen); } diff --git a/camel-core/src/test/java/org/apache/camel/processor/ThrottlingExceptionRoutePolicyKeepOpenOnInitTest.java b/camel-core/src/test/java/org/apache/camel/processor/ThrottlingExceptionRoutePolicyKeepOpenOnInitTest.java index 25134d5..b650dbd 100644 --- a/camel-core/src/test/java/org/apache/camel/processor/ThrottlingExceptionRoutePolicyKeepOpenOnInitTest.java +++ b/camel-core/src/test/java/org/apache/camel/processor/ThrottlingExceptionRoutePolicyKeepOpenOnInitTest.java @@ -1,3 +1,19 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.apache.camel.processor; import org.apache.camel.ContextTestSupport; @@ -29,7 +45,7 @@ public class ThrottlingExceptionRoutePolicyKeepOpenOnInitTest extends ContextTes protected void createPolicy() { int threshold = 2; long failureWindow = 30; - long halfOpenAfter = 1000; + long halfOpenAfter = 100; boolean keepOpen = true; policy = new ThrottlingExceptionRoutePolicy(threshold, failureWindow, halfOpenAfter, null, keepOpen); } @@ -45,7 +61,7 @@ public class ThrottlingExceptionRoutePolicyKeepOpenOnInitTest extends ContextTes // gives time for policy half open check to run every second // and should not close b/c keepOpen is true - Thread.sleep(2000); + Thread.sleep(500); // gives time for policy half open check to run every second // but it should never close b/c keepOpen is true @@ -64,7 +80,7 @@ public class ThrottlingExceptionRoutePolicyKeepOpenOnInitTest extends ContextTes // gives time for policy half open check to run every second // and should not close b/c keepOpen is true - Thread.sleep(2000); + Thread.sleep(500); result.expectedMessageCount(0); result.setResultWaitTime(1500); diff --git a/camel-core/src/test/java/org/apache/camel/processor/ThrottlingExceptionRoutePolicyOpenViaConfigTest.java b/camel-core/src/test/java/org/apache/camel/processor/ThrottlingExceptionRoutePolicyOpenViaConfigTest.java index 650d08c..c096826 100644 --- a/camel-core/src/test/java/org/apache/camel/processor/ThrottlingExceptionRoutePolicyOpenViaConfigTest.java +++ b/camel-core/src/test/java/org/apache/camel/processor/ThrottlingExceptionRoutePolicyOpenViaConfigTest.java @@ -1,3 +1,19 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.apache.camel.processor; import org.apache.camel.ContextTestSupport; @@ -29,7 +45,7 @@ public class ThrottlingExceptionRoutePolicyOpenViaConfigTest extends ContextTest protected void createPolicy() { int threshold = 2; long failureWindow = 30; - long halfOpenAfter = 1000; + long halfOpenAfter = 100; boolean keepOpen = false; policy = new ThrottlingExceptionRoutePolicy(threshold, failureWindow, halfOpenAfter, null, keepOpen); } @@ -44,7 +60,7 @@ public class ThrottlingExceptionRoutePolicyOpenViaConfigTest extends ContextTest Thread.sleep(3); } result.expectedMessageCount(size); - result.setResultWaitTime(2000); + result.setResultWaitTime(1000); assertMockEndpointsSatisfied(); // set keepOpen to true @@ -55,7 +71,7 @@ public class ThrottlingExceptionRoutePolicyOpenViaConfigTest extends ContextTest template.sendBody(url, "MessageTrigger"); // give time for circuit to open - Thread.sleep(1000); + Thread.sleep(500); // send next set of messages // should NOT go through b/c circuit is open @@ -66,10 +82,10 @@ public class ThrottlingExceptionRoutePolicyOpenViaConfigTest extends ContextTest // gives time for policy half open check to run every second // and should not close b/c keepOpen is true - Thread.sleep(2000); + Thread.sleep(500); result.expectedMessageCount(size + 1); - result.setResultWaitTime(2000); + result.setResultWaitTime(1000); assertMockEndpointsSatisfied(); // set keepOpen to false @@ -78,7 +94,7 @@ public class ThrottlingExceptionRoutePolicyOpenViaConfigTest extends ContextTest // gives time for policy half open check to run every second // and it should close b/c keepOpen is false result.expectedMessageCount(size * 2 + 1); - result.setResultWaitTime(2000); + result.setResultWaitTime(1000); assertMockEndpointsSatisfied(); } @@ -87,11 +103,6 @@ public class ThrottlingExceptionRoutePolicyOpenViaConfigTest extends ContextTest return new RouteBuilder() { @Override public void configure() throws Exception { - int threshold = 2; - long failureWindow = 30; - long halfOpenAfter = 1000; - policy = new ThrottlingExceptionRoutePolicy(threshold, failureWindow, halfOpenAfter, null); - from(url) .routePolicy(policy) .log("${body}") -- To stop receiving notification emails like this one, please contact "commits@camel.apache.org" <commits@camel.apache.org>.