1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.hadoop.hbase.util;
19
20 import java.lang.management.ManagementFactory;
21
22 import javax.management.InstanceNotFoundException;
23 import javax.management.MBeanServer;
24 import javax.management.MalformedObjectNameException;
25 import javax.management.ObjectName;
26 import javax.management.InstanceAlreadyExistsException;
27
28 import org.apache.hadoop.hbase.classification.InterfaceAudience;
29
30 @InterfaceAudience.Private
31 public class MBeanUtil {
32
33
34
35
36
37
38
39
40
41
42
43 static public ObjectName registerMBean(final String serviceName,
44 final String nameName,
45 final Object theMbean) {
46 final MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
47 ObjectName name = getMBeanName(serviceName, nameName);
48 try {
49 mbs.registerMBean(theMbean, name);
50 return name;
51 } catch (InstanceAlreadyExistsException ie) {
52
53 } catch (Exception e) {
54 e.printStackTrace();
55 }
56 return null;
57 }
58
59 static public void unregisterMBean(ObjectName mbeanName) {
60 final MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
61 if (mbeanName == null)
62 return;
63 try {
64 mbs.unregisterMBean(mbeanName);
65 } catch (InstanceNotFoundException e ) {
66
67 } catch (Exception e) {
68 e.printStackTrace();
69 }
70 }
71
72 static private ObjectName getMBeanName(final String serviceName,
73 final String nameName) {
74 ObjectName name = null;
75 try {
76 name = new ObjectName("hadoop:" +
77 "service=" + serviceName + ",name=" + nameName);
78 } catch (MalformedObjectNameException e) {
79 e.printStackTrace();
80 }
81 return name;
82 }
83 }