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