1
2
3
4
5
6
7
8
9
10 package org.mule.management.support;
11
12 import org.mule.management.AbstractMuleJmxTestCase;
13 import org.mule.management.agents.JmxAgent;
14 import org.mule.management.mbeans.StatisticsService;
15 import org.mule.umo.manager.UMOManager;
16
17 import java.util.Arrays;
18 import java.util.List;
19
20 import javax.management.ObjectName;
21
22 public class JmxSupportTestCase extends AbstractMuleJmxTestCase
23 {
24
25 public void testClashingDomains() throws Exception
26 {
27 final String managerId = "Test_Instance";
28
29
30 final String testDomain = JmxModernSupport.DEFAULT_JMX_DOMAIN_PREFIX + "." + managerId;
31 ObjectName name = ObjectName.getInstance(testDomain + ":name=TestDuplicates");
32 mBeanServer.registerMBean(new StatisticsService(), name);
33
34 UMOManager manager = getManager(true);
35 manager.setId(managerId);
36 JmxAgent agent = new JmxAgent();
37 manager.registerAgent(agent);
38 manager.start();
39
40 List domains = Arrays.asList(mBeanServer.getDomains());
41 assertTrue("Should have contained an original domain.", domains.contains(testDomain));
42 assertTrue("Should have contained a new domain.", domains.contains(testDomain + ".1"));
43 }
44
45 public void testClashingSuffixedDomains() throws Exception
46 {
47 final String managerId = "Test_Instance";
48
49
50 int numOriginalDomains = mBeanServer.getDomains().length;
51
52
53 final String testDomain = JmxModernSupport.DEFAULT_JMX_DOMAIN_PREFIX + "." + managerId;
54 ObjectName name = ObjectName.getInstance(testDomain + ":name=TestDuplicates");
55 mBeanServer.registerMBean(new StatisticsService(), name);
56
57
58 name = ObjectName.getInstance(testDomain + ".1" + ":name=TestDuplicates");
59 mBeanServer.registerMBean(new StatisticsService(), name);
60
61 assertEquals("Wrong number of domains created.",
62 numOriginalDomains + 2, mBeanServer.getDomains().length);
63
64 UMOManager manager = getManager(true);
65 manager.setId(managerId);
66 JmxAgent agent = new JmxAgent();
67 manager.registerAgent(agent);
68 manager.start();
69
70 List domains = Arrays.asList(mBeanServer.getDomains());
71
72 assertEquals("Wrong number of domains created.",
73 numOriginalDomains + 3, domains.size());
74
75 assertTrue("Should have contained an original domain.", domains.contains(testDomain));
76 assertTrue("Should have contained an original suffixed domain.", domains.contains(testDomain + ".1"));
77 assertTrue("Should have contained a new domain.", domains.contains(testDomain + ".2"));
78 }
79
80 public void testDomainNoManagerIdAndJmxAgentMustFail() throws Exception
81 {
82 UMOManager manager = getManager(true);
83 JmxAgent jmxAgent = new JmxAgent();
84 manager.registerAgent(jmxAgent);
85 manager.setId(null);
86 try
87 {
88 manager.start();
89 fail("Should have failed.");
90
91 } catch (IllegalArgumentException e)
92 {
93
94 assertTrue(true);
95 }
96 }
97
98 }