1
2
3
4
5
6
7
8
9
10
11 package org.mule.management.mbeans;
12
13 import org.mule.api.config.ThreadingProfile;
14 import org.mule.component.DefaultJavaComponent;
15 import org.mule.management.AbstractMuleJmxTestCase;
16 import org.mule.model.seda.SedaModel;
17 import org.mule.model.seda.SedaService;
18 import org.mule.module.management.mbean.ServiceService;
19 import org.mule.object.SingletonObjectFactory;
20
21 import java.util.Set;
22
23 import javax.management.ObjectName;
24
25 public class ServiceServiceTestCase extends AbstractMuleJmxTestCase
26 {
27 public void testUndeploy() throws Exception
28 {
29 final String domainOriginal = "TEST_DOMAIN_1";
30
31 final SedaService component = new SedaService();
32 component.setName("TEST_SERVICE");
33 component.setComponent(new DefaultJavaComponent(new SingletonObjectFactory(Object.class)));
34
35 component.setThreadingProfile(ThreadingProfile.DEFAULT_THREADING_PROFILE);
36 SedaModel model = new SedaModel();
37 component.setModel(model);
38 muleContext.getRegistry().registerModel(model);
39 muleContext.getRegistry().registerService(component);
40 muleContext.start();
41
42 final ServiceService service = new ServiceService("TEST_SERVICE");
43 final ObjectName name = ObjectName.getInstance(domainOriginal + ":type=TEST_SERVICE");
44 mBeanServer.registerMBean(service, name);
45 Set mbeans = mBeanServer.queryMBeans(ObjectName.getInstance(domainOriginal + ":*"), null);
46
47
48
49
50
51
52 assertEquals("Unexpected number of components registered in the domain.", 4, mbeans.size());
53
54 mBeanServer.unregisterMBean(name);
55
56 mbeans = mBeanServer.queryMBeans(ObjectName.getInstance(domainOriginal + ":*"), null);
57
58 assertEquals("There should be no MBeans left in the domain", 0, mbeans.size());
59 }
60 }