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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3212 - (show annotations) (download)
Thu Dec 28 09:34:47 2017 UTC (6 years, 4 months ago) by torben
File size: 1156 byte(s)
Use generics to encapsulate returned value
1 package dk.thoerup.circuitbreaker;
2
3 import java.util.Map;
4 import java.util.Map.Entry;
5 import java.util.Set;
6 import java.util.concurrent.ConcurrentHashMap;
7
8 public class CircuitBreakerManager {
9
10 private static CircuitBreakerManager manager = null;
11
12 private Map<String,CircuitBreaker<?>> breakers = new ConcurrentHashMap<>();
13
14 private CircuitBreakerManager() {
15 }
16
17
18 public static CircuitBreakerManager getManager() { //singleton interface
19 synchronized(CircuitBreakerManager.class) {
20 if (manager == null) {
21 manager = new CircuitBreakerManager();
22 }
23 }
24 return manager;
25 }
26
27 public Set<String> getCircuitBreakerNames() {
28 return breakers.keySet();
29 }
30
31 public CircuitBreaker<?> getCircuitBreaker(String name) {
32 return breakers.get(name);
33 }
34
35 public void removeCircuitBreaker(String name) {
36 breakers.remove(name);
37 }
38
39 public void addCircuitBreaker(CircuitBreaker<?> cb) {
40 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 }

Properties

Name Value
svn:mergeinfo

  ViewVC Help
Powered by ViewVC 1.1.20