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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2570 - (show 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 package dk.thoerup.circuitbreaker.jmx;
2
3 import java.lang.management.ManagementFactory;
4 import java.util.Set;
5 import java.util.TreeSet;
6 import java.util.logging.Level;
7 import java.util.logging.Logger;
8
9 import javax.management.MBeanServer;
10 import javax.management.ObjectName;
11
12 import dk.thoerup.circuitbreaker.CircuitBreaker;
13 import dk.thoerup.circuitbreaker.CircuitBreakerManager;
14
15 public class JMXWrapper {
16 static Logger logger = Logger.getLogger(JMXWrapper.class.getName());
17
18 private static Set<ObjectName> objectNames = new TreeSet<ObjectName>();
19
20
21 public static ObjectName registerCircuitBreaker(CircuitBreaker cb) {
22 Object jmxBean;
23 String className;
24
25
26 jmxBean = new JmxCircuitBreaker(cb);
27 className = "CircuitBreaker";
28
29
30 String name = cb.getName();
31
32 try {
33
34 ObjectName beanName = new ObjectName("dk.thoerup.circuitbreaker:type=" + className + ",name=" + name);
35
36 MBeanServer server = ManagementFactory.getPlatformMBeanServer();
37 if (server.isRegistered(beanName))
38 server.unregisterMBean(beanName);
39 server.registerMBean(jmxBean, beanName);
40 objectNames.add(beanName);
41 return beanName;
42
43 } catch (Exception e) {
44 logger.log(Level.SEVERE, "Mbean failure",e );
45 return null;
46 }
47 }
48
49 public static void registerAllCircuitBreakers() {
50 CircuitBreakerManager mgr = CircuitBreakerManager.getManager();
51
52 for (String cbName : mgr.getCircuitBreakerNames()) {
53 CircuitBreaker cb = mgr.getCircuitBreaker(cbName);
54 registerCircuitBreaker(cb);
55 }
56 }
57
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 }

  ViewVC Help
Powered by ViewVC 1.1.20