--- CircuitBreaker/src/dk/thoerup/curcuitbreaker/CircuitBreakerManager.java 2009/10/07 04:29:07 407 +++ CircuitBreaker/src/dk/thoerup/circuitbreaker/CircuitBreakerManager.java 2010/10/03 17:03:08 1153 @@ -1,14 +1,15 @@ -package dk.thoerup.curcuitbreaker; +package dk.thoerup.circuitbreaker; -import java.util.HashMap; +import java.util.Iterator; import java.util.Map; import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; public class CircuitBreakerManager { private static CircuitBreakerManager manager = null; - private Map breakers = new HashMap(); + private Map breakers = new ConcurrentHashMap(); private CircuitBreakerManager() { } @@ -28,10 +29,21 @@ public CircuitBreaker getCircuitBreaker(String name) { return breakers.get(name); } + + public void removeCircuitBreaker(String name) { + breakers.remove(name); + } public void addCircuitBreaker(CircuitBreaker cb) { breakers.put(cb.getName(), cb); } + public void shutdown() { + for (Iterator it = breakers.keySet().iterator(); it.hasNext(); ) { + String key = it.next(); + breakers.get(key).shutdown(); + it.remove(); + } + } }