1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.springframework.jmx;
18
19 import javax.management.MBeanServer;
20 import javax.management.MBeanServerFactory;
21 import javax.management.ObjectName;
22
23 import org.junit.After;
24 import org.junit.Before;
25
26 import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
27 import org.springframework.context.ConfigurableApplicationContext;
28 import org.springframework.context.support.GenericApplicationContext;
29 import org.springframework.jmx.export.MBeanExporter;
30 import org.springframework.tests.TestGroup;
31 import org.springframework.util.MBeanTestUtils;
32
33 import static org.junit.Assert.*;
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 public abstract class AbstractMBeanServerTests {
54
55 protected MBeanServer server;
56
57
58 @Before
59 public final void setUp() throws Exception {
60 this.server = MBeanServerFactory.createMBeanServer();
61 try {
62 onSetUp();
63 }
64 catch (Exception ex) {
65 releaseServer();
66 throw ex;
67 }
68 }
69
70 protected ConfigurableApplicationContext loadContext(String configLocation) {
71 GenericApplicationContext ctx = new GenericApplicationContext();
72 new XmlBeanDefinitionReader(ctx).loadBeanDefinitions(configLocation);
73 ctx.getDefaultListableBeanFactory().registerSingleton("server", this.server);
74 ctx.refresh();
75 return ctx;
76 }
77
78 @After
79 public void tearDown() throws Exception {
80 releaseServer();
81 onTearDown();
82 }
83
84 private void releaseServer() throws Exception {
85 MBeanServerFactory.releaseMBeanServer(getServer());
86 MBeanTestUtils.resetMBeanServers();
87 }
88
89 protected void onTearDown() throws Exception {
90 }
91
92 protected void onSetUp() throws Exception {
93 }
94
95 public MBeanServer getServer() {
96 return this.server;
97 }
98
99
100
101
102 protected void start(MBeanExporter exporter) {
103 exporter.afterPropertiesSet();
104 exporter.afterSingletonsInstantiated();
105 }
106
107 protected void assertIsRegistered(String message, ObjectName objectName) {
108 assertTrue(message, getServer().isRegistered(objectName));
109 }
110
111 protected void assertIsNotRegistered(String message, ObjectName objectName) {
112 assertFalse(message, getServer().isRegistered(objectName));
113 }
114
115 }