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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2570 - (hide annotations) (download)
Tue Jun 9 09:05:26 2015 UTC (8 years, 11 months ago) by torben
File size: 1914 byte(s)
Remove old/deprecated inherited circuitbreakers
1 torben 467 package dk.thoerup.circuitbreaker.jmx;
2 torben 402
3     import java.lang.management.ManagementFactory;
4 torben 408 import java.util.Set;
5     import java.util.TreeSet;
6 torben 402 import java.util.logging.Level;
7     import java.util.logging.Logger;
8    
9     import javax.management.MBeanServer;
10     import javax.management.ObjectName;
11    
12 torben 467 import dk.thoerup.circuitbreaker.CircuitBreaker;
13     import dk.thoerup.circuitbreaker.CircuitBreakerManager;
14 torben 402
15     public class JMXWrapper {
16     static Logger logger = Logger.getLogger(JMXWrapper.class.getName());
17    
18 torben 408 private static Set<ObjectName> objectNames = new TreeSet<ObjectName>();
19    
20    
21 torben 1154 public static ObjectName registerCircuitBreaker(CircuitBreaker cb) {
22 torben 402 Object jmxBean;
23     String className;
24    
25 torben 2570
26     jmxBean = new JmxCircuitBreaker(cb);
27     className = "CircuitBreaker";
28 torben 402
29 torben 2570
30 torben 402 String name = cb.getName();
31 torben 408
32 torben 402 try {
33    
34 torben 405 ObjectName beanName = new ObjectName("dk.thoerup.circuitbreaker:type=" + className + ",name=" + name);
35 torben 402
36     MBeanServer server = ManagementFactory.getPlatformMBeanServer();
37     if (server.isRegistered(beanName))
38     server.unregisterMBean(beanName);
39     server.registerMBean(jmxBean, beanName);
40 torben 408 objectNames.add(beanName);
41 torben 1154 return beanName;
42 torben 402
43     } catch (Exception e) {
44     logger.log(Level.SEVERE, "Mbean failure",e );
45 torben 1154 return null;
46 torben 402 }
47 torben 406 }
48    
49     public static void registerAllCircuitBreakers() {
50     CircuitBreakerManager mgr = CircuitBreakerManager.getManager();
51 torben 402
52 torben 406 for (String cbName : mgr.getCircuitBreakerNames()) {
53     CircuitBreaker cb = mgr.getCircuitBreaker(cbName);
54     registerCircuitBreaker(cb);
55     }
56 torben 402 }
57 torben 408
58     public static void unregisterAllCircuitBreakers() {
59     MBeanServer server = ManagementFactory.getPlatformMBeanServer();
60    
61     for (ObjectName objName : objectNames) {
62     if (server.isRegistered(objName)) {
63     try {
64     server.unregisterMBean(objName);
65     } catch (Exception e) {
66     //At this point we don't care why it wasn't in the system - all that matter is that it's gone
67     }
68     }
69     }
70     }
71 torben 402 }

  ViewVC Help
Powered by ViewVC 1.1.20