/[projects]/CircuitBreaker/src/dk/thoerup/curcuitbreaker/jmx/JMXWrapper.java
ViewVC logotype

Diff of /CircuitBreaker/src/dk/thoerup/curcuitbreaker/jmx/JMXWrapper.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 407 by torben, Wed Oct 7 04:28:35 2009 UTC revision 408 by torben, Wed Oct 7 05:06:42 2009 UTC
# Line 1  Line 1 
1  package dk.thoerup.curcuitbreaker.jmx;  package dk.thoerup.curcuitbreaker.jmx;
2    
3  import java.lang.management.ManagementFactory;  import java.lang.management.ManagementFactory;
4    import java.util.Set;
5    import java.util.TreeSet;
6  import java.util.logging.Level;  import java.util.logging.Level;
7  import java.util.logging.Logger;  import java.util.logging.Logger;
8    
9  import javax.management.MBeanServer;  import javax.management.MBeanServer;
10  import javax.management.ObjectName;  import javax.management.ObjectName;
11    
12  import dk.thoerup.curcuitbreaker.*;  import dk.thoerup.curcuitbreaker.AccountingCircuitBreaker;
13    import dk.thoerup.curcuitbreaker.CircuitBreaker;
14    import dk.thoerup.curcuitbreaker.CircuitBreakerManager;
15    
16  public class JMXWrapper {  public class JMXWrapper {
17          static Logger logger = Logger.getLogger(JMXWrapper.class.getName());          static Logger logger = Logger.getLogger(JMXWrapper.class.getName());
18                    
19            private static Set<ObjectName> objectNames = new TreeSet<ObjectName>();
20            
21            
22          public static void registerCircuitBreaker(CircuitBreaker cb) {          public static void registerCircuitBreaker(CircuitBreaker cb) {
23                  Object jmxBean;                  Object jmxBean;
24                  String className;                  String className;
# Line 25  public class JMXWrapper { Line 32  public class JMXWrapper {
32                  }                  }
33                                    
34                  String name = cb.getName();                  String name = cb.getName();
35                    
36                  try {                  try {
37                                                    
38                          ObjectName beanName = new ObjectName("dk.thoerup.circuitbreaker:type=" + className + ",name=" + name);                          ObjectName beanName = new ObjectName("dk.thoerup.circuitbreaker:type=" + className + ",name=" + name);
# Line 33  public class JMXWrapper { Line 41  public class JMXWrapper {
41                          if (server.isRegistered(beanName))                          if (server.isRegistered(beanName))
42                                  server.unregisterMBean(beanName);                                  server.unregisterMBean(beanName);
43                          server.registerMBean(jmxBean, beanName);                          server.registerMBean(jmxBean, beanName);
44                            objectNames.add(beanName);
45                                                    
46                  } catch (Exception e) {                  } catch (Exception e) {
47                          logger.log(Level.SEVERE, "Mbean failure",e );                          logger.log(Level.SEVERE, "Mbean failure",e );
# Line 47  public class JMXWrapper { Line 56  public class JMXWrapper {
56                          registerCircuitBreaker(cb);                          registerCircuitBreaker(cb);
57                  }                  }
58          }          }
59            
60            public static void unregisterAllCircuitBreakers() {
61                    MBeanServer server = ManagementFactory.getPlatformMBeanServer();
62                    
63                    for (ObjectName objName : objectNames) {
64                            if (server.isRegistered(objName)) {
65                                    try {
66                                            server.unregisterMBean(objName);
67                                    } catch (Exception e) {
68                                            //At this point we don't care why it wasn't in the system - all that matter is that it's gone
69                                    }
70                            }
71                    }
72            }
73  }  }

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

  ViewVC Help
Powered by ViewVC 1.1.20