--- miscJava/CircuitBreaker/src/main/java/dk/thoerup/circuitbreaker/CircuitBreaker.java 2017/09/18 18:06:48 3211 +++ miscJava/CircuitBreaker/src/main/java/dk/thoerup/circuitbreaker/CircuitBreaker.java 2017/12/28 09:34:47 3212 @@ -5,7 +5,6 @@ import java.util.concurrent.Executors; import dk.thoerup.circuitbreaker.config.BreakerConfig; -import dk.thoerup.circuitbreaker.config.StaticConfig; import dk.thoerup.circuitbreaker.notification.NotiferHelper; import dk.thoerup.circuitbreaker.notification.Notifier; import dk.thoerup.circuitbreaker.notification.NullNotifier; @@ -16,14 +15,14 @@ * * example of how it can be used - private CircuitBreaker cb = new CircuitBreaker("test", 5, 10000); + private CircuitBreaker cb = new CircuitBreaker<>("test", 5, 10000); protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - class TestInvocation implements CircuitInvocation { + class TestInvocation implements CircuitInvocation { String url; public TestInvocation(String url) { this.url = url; } - public Object proceed() throws Exception{ + public String proceed() throws Exception{ URL u = new URL(url); URLConnection c = u.openConnection(); @@ -37,7 +36,7 @@ } try { - String s = (String) cb.invoke(new TestInvocation("http://rafiki/test")); + String s = cb.invoke(new TestInvocation("http://rafiki/test")); response.getWriter().print(s); } catch (Exception e) { logger.warning( e.getMessage() ); @@ -49,7 +48,7 @@ */ -public class CircuitBreaker{ +public class CircuitBreaker{ private volatile CircuitBreakerState currentState; @@ -63,10 +62,6 @@ private Notifier notifier = new NullNotifier(); private Statistics stats = new NullStatistics(); - @Deprecated - public CircuitBreaker(String name, int threshold, int timeoutMS) { - this(name, new StaticConfig(threshold, timeoutMS) ); - } public CircuitBreaker(String name, BreakerConfig config) { closed.setThreshold(config); @@ -85,11 +80,11 @@ } - public Object invoke(CircuitInvocation invocation) throws Exception + public T invoke(CircuitInvocation invocation) throws Exception { stats.addStatistics(Event.Invocation); - Object result = null; + T result = null; try { getState().preInvoke(this);