/[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 407 by torben, Wed Oct 7 04:29:07 2009 UTC miscJava/CircuitBreaker/src/main/java/dk/thoerup/circuitbreaker/CircuitBreakerManager.java revision 2572 by torben, Tue Jun 9 09:28:14 2015 UTC
# Line 1  Line 1 
1  package dk.thoerup.curcuitbreaker;  package dk.thoerup.circuitbreaker;
2    
 import java.util.HashMap;  
3  import java.util.Map;  import java.util.Map;
4    import java.util.Map.Entry;
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          public 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                    
45                    for ( Entry<String,CircuitBreaker> entry : breakers.entrySet() )  {
46                            entry.getValue().shutdown();
47                    }              
48                    breakers.clear();
49            }
50                    
51  }  }

Legend:
Removed from v.407  
changed lines
  Added in v.2572

  ViewVC Help
Powered by ViewVC 1.1.20