--- CircuitBreaker/src/dk/thoerup/curcuitbreaker/OpenState.java 2009/10/06 05:22:40 397 +++ miscJava/CircuitBreaker/src/dk/thoerup/circuitbreaker/OpenState.java 2015/03/20 08:52:49 2448 @@ -1,23 +1,26 @@ -package dk.thoerup.curcuitbreaker; +package dk.thoerup.circuitbreaker; import java.util.concurrent.atomic.AtomicLong; +import dk.thoerup.circuitbreaker.config.BreakerConfig; -public class OpenState implements CircuitBreakerState { - private AtomicLong tripTime = new AtomicLong(0); - private AtomicLong timeout = new AtomicLong(0); +public final class OpenState implements CircuitBreakerState { + + final private AtomicLong tripTime = new AtomicLong(0); + + BreakerConfig config; - public void setTimeout(long timeout) { - this.timeout.set( timeout ); + public void setTimeout(BreakerConfig config) { + this.config = config; } - public void preInvoke(CircuitBreaker circuitBreaker) throws Throwable + public void preInvoke(CircuitBreaker circuitBreaker) throws Exception { long now = System.currentTimeMillis(); long elapsed = now - tripTime.get(); - if(elapsed > timeout.get()) + if(elapsed > config.getTimeout()) { circuitBreaker.attemptReset(); } @@ -27,12 +30,12 @@ } } - public void postInvoke(CircuitBreaker circuitBreaker) throws Throwable + public void postInvoke(CircuitBreaker circuitBreaker) throws Exception { // NO OP } - public void onError(CircuitBreaker circuitBreaker, Throwable t) throws Throwable + public void onError(CircuitBreaker circuitBreaker, Exception t) throws Exception { // NO OP } @@ -48,7 +51,7 @@ } public long getTimeout() { - return timeout.get(); + return config.getTimeout(); } public long getElapsed() {