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 service = new SedaService(muleContext);
32 service.setName("TEST_SERVICE");
33 SingletonObjectFactory factory = new SingletonObjectFactory(Object.class);
34 final DefaultJavaComponent component = new DefaultJavaComponent(factory);
35 component.setMuleContext(muleContext);
36 service.setComponent(component);
37
38 service.setThreadingProfile(ThreadingProfile.DEFAULT_THREADING_PROFILE);
39 SedaModel model = new SedaModel();
40 model.setMuleContext(muleContext);
41 service.setModel(model);
42 muleContext.getRegistry().registerModel(model);
43 muleContext.getRegistry().registerService(service);
44 muleContext.start();
45
46 final ServiceService jmxService = new ServiceService("TEST_SERVICE", muleContext);
47 final ObjectName name = ObjectName.getInstance(domainOriginal + ":type=TEST_SERVICE");
48 mBeanServer.registerMBean(jmxService, name);
49 Set mbeans = mBeanServer.queryMBeans(ObjectName.getInstance(domainOriginal + ":*"), null);
50
51
52
53
54
55
56 assertEquals("Unexpected number of components registered in the domain.", 4, mbeans.size());
57
58 mBeanServer.unregisterMBean(name);
59
60 mbeans = mBeanServer.queryMBeans(ObjectName.getInstance(domainOriginal + ":*"), null);
61
62 assertEquals("There should be no MBeans left in the domain", 0, mbeans.size());
63 }
64 }