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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3212 - (hide annotations) (download)
Thu Dec 28 09:34:47 2017 UTC (6 years, 5 months ago) by torben
File size: 1156 byte(s)
Use generics to encapsulate returned value
1 torben 467 package dk.thoerup.circuitbreaker;
2 torben 399
3     import java.util.Map;
4 torben 2572 import java.util.Map.Entry;
5 torben 399 import java.util.Set;
6 torben 426 import java.util.concurrent.ConcurrentHashMap;
7 torben 399
8     public class CircuitBreakerManager {
9    
10     private static CircuitBreakerManager manager = null;
11    
12 torben 3212 private Map<String,CircuitBreaker<?>> breakers = new ConcurrentHashMap<>();
13 torben 399
14     private CircuitBreakerManager() {
15     }
16    
17    
18 torben 407 public static CircuitBreakerManager getManager() { //singleton interface
19 torben 2363 synchronized(CircuitBreakerManager.class) {
20     if (manager == null) {
21     manager = new CircuitBreakerManager();
22     }
23 torben 399 }
24     return manager;
25     }
26    
27     public Set<String> getCircuitBreakerNames() {
28     return breakers.keySet();
29     }
30    
31 torben 3212 public CircuitBreaker<?> getCircuitBreaker(String name) {
32 torben 399 return breakers.get(name);
33     }
34 torben 865
35     public void removeCircuitBreaker(String name) {
36     breakers.remove(name);
37     }
38 torben 399
39 torben 3212 public void addCircuitBreaker(CircuitBreaker<?> cb) {
40 torben 399 breakers.put(cb.getName(), cb);
41     }
42    
43 torben 1153 public void shutdown() {
44 torben 2572
45 torben 3212 for ( Entry<String,CircuitBreaker<?>> entry : breakers.entrySet() ) {
46 torben 2572 entry.getValue().shutdown();
47 torben 1153 }
48 torben 2572 breakers.clear();
49 torben 1153 }
50 torben 399
51     }

Properties

Name Value
svn:mergeinfo

  ViewVC Help
Powered by ViewVC 1.1.20