1
2
3
4
5
6
7
8
9
10 package org.mule.management.support;
11
12 import org.mule.api.context.MuleContextBuilder;
13 import org.mule.config.DefaultMuleConfiguration;
14 import org.mule.management.AbstractMuleJmxTestCase;
15 import org.mule.module.management.agent.JmxAgent;
16 import org.mule.module.management.mbean.StatisticsService;
17 import org.mule.module.management.support.JmxModernSupport;
18
19 import java.util.Arrays;
20 import java.util.List;
21
22 import javax.management.ObjectName;
23
24 public class JmxSupportTestCase extends AbstractMuleJmxTestCase
25 {
26 private final String MANAGER_ID = "Test_Instance";
27 private final String TEST_DOMAIN = JmxModernSupport.DEFAULT_JMX_DOMAIN_PREFIX + "." + MANAGER_ID;
28
29
30 protected void configureMuleContext(MuleContextBuilder contextBuilder)
31 {
32 super.configureMuleContext(contextBuilder);
33
34 DefaultMuleConfiguration config = new DefaultMuleConfiguration();
35 config.setId(MANAGER_ID);
36 contextBuilder.setMuleConfiguration(config);
37 }
38
39 public void testClashingDomains() throws Exception
40 {
41
42 ObjectName name = ObjectName.getInstance(TEST_DOMAIN + ":name=TestDuplicates");
43 mBeanServer.registerMBean(new StatisticsService(), name);
44
45 JmxAgent agent = new JmxAgent();
46 agent.setMuleContext(muleContext);
47 agent.initialise();
48 muleContext.getRegistry().registerAgent(agent);
49 muleContext.start();
50
51 List domains = Arrays.asList(mBeanServer.getDomains());
52 assertTrue("Should have contained an original domain.", domains.contains(TEST_DOMAIN));
53 assertTrue("Should have contained a new domain.", domains.contains(TEST_DOMAIN + ".1"));
54 }
55
56 public void testClashingSuffixedDomains() throws Exception
57 {
58
59
60 int numOriginalDomains = mBeanServer.getDomains().length;
61
62
63 ObjectName name = ObjectName.getInstance(TEST_DOMAIN + ":name=TestDuplicates");
64 mBeanServer.registerMBean(new StatisticsService(), name);
65
66
67 name = ObjectName.getInstance(TEST_DOMAIN + ".1" + ":name=TestDuplicates");
68 mBeanServer.registerMBean(new StatisticsService(), name);
69
70 assertEquals("Wrong number of domains created.",
71 numOriginalDomains + 2, mBeanServer.getDomains().length);
72
73 JmxAgent agent = new JmxAgent();
74 agent.setMuleContext(muleContext);
75 agent.initialise();
76 muleContext.getRegistry().registerAgent(agent);
77 muleContext.start();
78
79 List domains = Arrays.asList(mBeanServer.getDomains());
80
81 assertEquals("Wrong number of domains created.",
82 numOriginalDomains + 3, domains.size());
83
84 assertTrue("Should have contained an original domain.", domains.contains(TEST_DOMAIN));
85 assertTrue("Should have contained an original suffixed domain.", domains.contains(TEST_DOMAIN + ".1"));
86 assertTrue("Should have contained a new domain.", domains.contains(TEST_DOMAIN + ".2"));
87 }
88
89 protected void doTearDown() throws Exception
90 {
91
92 unregisterMBeansByMask(TEST_DOMAIN + ":name=TestDuplicates");
93 super.doTearDown();
94 }
95 }