KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > test > jmx > test > RedeployWithDependencyStressTestCase


1 /*
2  * JBoss, the OpenSource J2EE webOS
3  *
4  * Distributable under LGPL license.
5  * See terms of license at gnu.org.
6  *
7  */

8 package org.jboss.test.jmx.test;
9
10 import java.util.Collection JavaDoc;
11 import java.util.Collections JavaDoc;
12
13 import javax.management.MBeanServerConnection JavaDoc;
14 import javax.management.ObjectName JavaDoc;
15
16 import org.jboss.monitor.EntityLockMonitor;
17 import org.jboss.system.ServiceControllerMBean;
18 import org.jboss.system.ServiceMBean;
19 import org.jboss.test.JBossTestCase;
20
21 /**
22  * Stresses redeployment
23  *
24  * @author <a HREF="adrian@jboss.com">Adrian Brock</a>
25  * @version $Revision: 1.1.2.1 $
26  */

27
28 public class RedeployWithDependencyStressTestCase extends JBossTestCase
29 {
30    public RedeployWithDependencyStressTestCase(String JavaDoc name)
31    {
32       super(name);
33    }
34
35    public void testEarRedeployWithDependency() throws Exception JavaDoc
36    {
37       ObjectName JavaDoc dependent = new ObjectName JavaDoc("jboss.test:test=RedeployWithDependency");
38       ObjectName JavaDoc dependee = new ObjectName JavaDoc("jboss.security.tests:service=WebIntegrationLoginConfig");
39       String JavaDoc testUrl = "jbosstest-web.ear";
40       
41       MBeanServerConnection JavaDoc server = getServer();
42       
43       createMBean(server, dependent, dependee);
44       try
45       {
46          assertState(ServiceMBean.REGISTERED, dependent);
47          for (int i = 0; i < getIterationCount(); ++i)
48          {
49             try
50             {
51                deploy(testUrl);
52                assertState(ServiceMBean.STARTED, dependent);
53             }
54             finally
55             {
56                undeploy(testUrl);
57             }
58             assertState(ServiceMBean.DESTROYED, dependent);
59          }
60       }
61       finally
62       {
63          removeMBean(server, dependent);
64       }
65    }
66
67    protected void assertState(int expected, ObjectName JavaDoc service) throws Exception JavaDoc
68    {
69       MBeanServerConnection JavaDoc server = getServer();
70       Integer JavaDoc actual = (Integer JavaDoc) server.getAttribute(service, "State");
71       assertEquals("Expected state=" + expected + " actual=" + actual, expected, actual.intValue());
72    }
73    
74    protected void createMBean(MBeanServerConnection JavaDoc server, ObjectName JavaDoc dependent, ObjectName JavaDoc dependee) throws Exception JavaDoc
75    {
76       server.createMBean(EntityLockMonitor.class.getName(), dependent);
77       try
78       {
79          server.invoke(ServiceControllerMBean.OBJECT_NAME, "create",
80          new Object JavaDoc[]
81          {
82             dependent,
83             Collections.singleton(dependee)
84          },
85          new String JavaDoc[]
86          {
87             ObjectName JavaDoc.class.getName(),
88             Collection JavaDoc.class.getName()
89          }
90          );
91          server.invoke(ServiceControllerMBean.OBJECT_NAME, "create",
92          new Object JavaDoc[]
93          {
94             dependent
95          },
96          new String JavaDoc[]
97          {
98              ObjectName JavaDoc.class.getName()
99          }
100          );
101       }
102       catch (Exception JavaDoc e)
103       {
104          server.unregisterMBean(dependent);
105          throw e;
106       }
107    }
108    
109    protected void removeMBean(MBeanServerConnection JavaDoc server, ObjectName JavaDoc dependent) throws Exception JavaDoc
110    {
111       server.unregisterMBean(dependent);
112    }
113 }
114
Popular Tags