/[projects]/miscJava/CircuitBreaker/src/main/java/dk/thoerup/circuitbreaker/CircuitBreakerManager.java
ViewVC logotype

Diff of /miscJava/CircuitBreaker/src/main/java/dk/thoerup/circuitbreaker/CircuitBreakerManager.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

CircuitBreaker/src/dk/thoerup/curcuitbreaker/CircuitBreakerManager.java revision 399 by torben, Tue Oct 6 13:17:41 2009 UTC CircuitBreaker/src/dk/thoerup/circuitbreaker/CircuitBreakerManager.java revision 2363 by torben, Tue Feb 24 11:46:30 2015 UTC
# Line 1  Line 1 
1  package dk.thoerup.curcuitbreaker;  package dk.thoerup.circuitbreaker;
2    
3  import java.util.HashMap;  import java.util.Iterator;
4  import java.util.Map;  import java.util.Map;
5  import java.util.Set;  import java.util.Set;
6    import java.util.concurrent.ConcurrentHashMap;
7    
8  public class CircuitBreakerManager {  public class CircuitBreakerManager {
9                    
10          private static CircuitBreakerManager manager = null;          private static CircuitBreakerManager manager = null;
11                    
12          private Map<String,CircuitBreaker> breakers = new HashMap<String,CircuitBreaker>();          private Map<String,CircuitBreaker> breakers = new ConcurrentHashMap<String,CircuitBreaker>();
13                    
14          private CircuitBreakerManager() {          private CircuitBreakerManager() {
15          }          }
16                    
17                    
18          static CircuitBreakerManager getManager() { //singleton interface          public static CircuitBreakerManager getManager() { //singleton interface
19                  if (manager == null) {                  synchronized(CircuitBreakerManager.class) {
20                          manager = new CircuitBreakerManager();                          if (manager == null) {
21                                    manager = new CircuitBreakerManager();
22                            }
23                  }                  }
24                  return manager;                  return manager;
25          }          }
# Line 28  public class CircuitBreakerManager { Line 31  public class CircuitBreakerManager {
31          public CircuitBreaker getCircuitBreaker(String name) {          public CircuitBreaker getCircuitBreaker(String name) {
32                  return breakers.get(name);                  return breakers.get(name);
33          }          }
34    
35            public void removeCircuitBreaker(String name) {
36                    breakers.remove(name);
37            }
38                    
39          public void addCircuitBreaker(CircuitBreaker cb) {          public void addCircuitBreaker(CircuitBreaker cb) {
40                  breakers.put(cb.getName(), cb);                  breakers.put(cb.getName(), cb);
41          }          }
42                    
43            public void shutdown() {
44                    for (Iterator<String> it = breakers.keySet().iterator(); it.hasNext(); )  {
45                            String key = it.next();
46                            breakers.get(key).shutdown();
47                            it.remove();
48                    }              
49            }
50                    
51  }  }

Legend:
Removed from v.399  
changed lines
  Added in v.2363

  ViewVC Help
Powered by ViewVC 1.1.20