KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > test > classloader > test > UnifiedLoaderUnitTestCase


1 /*
2   * JBoss, Home of Professional Open Source
3   * Copyright 2005, JBoss Inc., and individual contributors as indicated
4   * by the @authors tag. See the copyright.txt in the distribution for a
5   * full listing of individual contributors.
6   *
7   * This is free software; you can redistribute it and/or modify it
8   * under the terms of the GNU Lesser General Public License as
9   * published by the Free Software Foundation; either version 2.1 of
10   * the License, or (at your option) any later version.
11   *
12   * This software is distributed in the hope that it will be useful,
13   * but WITHOUT ANY WARRANTY; without even the implied warranty of
14   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15   * Lesser General Public License for more details.
16   *
17   * You should have received a copy of the GNU Lesser General Public
18   * License along with this software; if not, write to the Free
19   * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20   * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
21   */

22 package org.jboss.test.classloader.test;
23
24 import javax.management.MBeanException JavaDoc;
25 import javax.management.ObjectName JavaDoc;
26
27 import org.jboss.test.JBossTestCase;
28 import org.jboss.system.ServiceMBean;
29
30 /** Unit tests for the org.jboss.mx.loading.UnifiedLoaderRepository
31  * @author Scott.Stark@jboss.org
32  * @version $Revision: 37406 $
33  */

34 public class UnifiedLoaderUnitTestCase extends JBossTestCase
35 {
36    public UnifiedLoaderUnitTestCase(String JavaDoc name)
37    {
38       super(name);
39    }
40
41    /** Test the UnifiedLoaderRepository for multi-threaded class loading
42     */

43    public void testClassLoadingMBean() throws Exception JavaDoc
44    {
45       try
46       {
47          deploy("concurrentloader.sar");
48          ObjectName JavaDoc testName = new ObjectName JavaDoc("jboss.test:name=ConcurrentLoader");
49          boolean isRegistered = getServer().isRegistered(testName);
50          assertTrue(testName+" isRegistered", isRegistered);
51          Integer JavaDoc state = (Integer JavaDoc) getServer().getAttribute(testName, "State");
52          assertTrue("state.intValue() == ServiceMBean.STARTED",
53                state.intValue() == ServiceMBean.STARTED);
54       }
55       finally
56       {
57          undeploy("concurrentloader.sar");
58       } // end of try-finally
59
}
60    /** Test the UnifiedLoaderRepository being accessed by thread with an
61     interrupted status
62     */

63    public void testInterruptedThreads() throws Exception JavaDoc
64    {
65       try
66       {
67          deploy("interrupt.sar");
68          ObjectName JavaDoc testName = new ObjectName JavaDoc("jboss.test:name=InterruptTest");
69          boolean isRegistered = getServer().isRegistered(testName);
70          assertTrue(testName+" isRegistered", isRegistered);
71          Integer JavaDoc state = (Integer JavaDoc) getServer().getAttribute(testName, "State");
72          assertTrue("state.intValue() == ServiceMBean.STARTED",
73                state.intValue() == ServiceMBean.STARTED);
74       }
75       finally
76       {
77          undeploy("interrupt.sar");
78       } // end of try-finally
79
}
80    /**
81     * Test the UnifiedLoaderRepository finding local and global resources
82     */

83    public void testResource()
84       throws Exception JavaDoc
85    {
86       try
87       {
88          deploy("loadingresource.ear");
89          ObjectName JavaDoc testName = new ObjectName JavaDoc("jboss.test:name=LoadingResource");
90          boolean isRegistered = getServer().isRegistered(testName);
91          assertTrue(testName+" isRegistered", isRegistered);
92          Integer JavaDoc state = (Integer JavaDoc) getServer().getAttribute(testName, "State");
93          assertTrue("state.intValue() == ServiceMBean.STARTED",
94                state.intValue() == ServiceMBean.STARTED);
95       }
96       finally
97       {
98          undeploy("loadingresource.ear");
99       } // end of try-finally
100
}
101
102    public void testUnpackedResources()
103       throws Exception JavaDoc
104    {
105       deploy("unpacked/loadingresource1.ear");
106       deploy("unpacked/loadingresource2.ear");
107
108       // Assert that the version1 LoadingResource service is started
109
ObjectName JavaDoc testName = new ObjectName JavaDoc("jboss.test:name=LoadingResource,version=1");
110       boolean isRegistered = getServer().isRegistered(testName);
111       assertTrue(testName+" isRegistered", isRegistered);
112       Integer JavaDoc state = (Integer JavaDoc) getServer().getAttribute(testName, "State");
113       assertTrue("state.intValue() == ServiceMBean.STARTED",
114             state.intValue() == ServiceMBean.STARTED);
115
116       // Assert that the version1 LoadingResource service is started
117
testName = new ObjectName JavaDoc("jboss.test:name=LoadingResource,version=2");
118       isRegistered = getServer().isRegistered(testName);
119       assertTrue(testName+" isRegistered", isRegistered);
120       state = (Integer JavaDoc) getServer().getAttribute(testName, "State");
121       assertTrue("state.intValue() == ServiceMBean.STARTED",
122             state.intValue() == ServiceMBean.STARTED);
123
124       undeploy("unpacked/loadingresource1.ear");
125       undeploy("unpacked/loadingresource2.ear");
126    }
127    
128    public void testLoadingArrayClass() throws Exception JavaDoc
129    {
130       deploy("loadingclazz.sar");
131
132       ObjectName JavaDoc testName = new ObjectName JavaDoc("jboss.test:name=LoadingClazz");
133
134       boolean isRegistered = getServer().isRegistered(testName);
135
136       assertTrue(testName + " is registered", isRegistered);
137
138       try
139       {
140          try
141          {
142             getServer().invoke(
143                testName,
144                "loadClass",
145                new Object JavaDoc[] { "[Ljava.lang.String;" },
146                new String JavaDoc[] { String JavaDoc.class.getName()});
147          }
148          catch (MBeanException JavaDoc ex)
149          {
150             Exception JavaDoc tex = ex.getTargetException();
151             if (tex instanceof ClassNotFoundException JavaDoc)
152             {
153                fail("java.lang.String[] not found: " + ex.getMessage());
154             }
155             else
156             {
157                throw tex;
158             }
159          }
160
161          try
162          {
163             getServer().invoke(
164                testName,
165                "loadClassFromTCL",
166                new Object JavaDoc[] { "[Ljava.lang.String;" },
167                new String JavaDoc[] { String JavaDoc.class.getName()});
168          }
169          catch (MBeanException JavaDoc ex)
170          {
171             Exception JavaDoc tex = ex.getTargetException();
172             if (tex instanceof ClassNotFoundException JavaDoc)
173             {
174                fail(
175                   "java.lang.String[] not found from TCL: " + ex.getMessage());
176             }
177             else
178             {
179                throw tex;
180             }
181          }
182
183          try
184          {
185             getServer().invoke(
186                testName,
187                "loadClass",
188                new Object JavaDoc[] { "org.jboss.test.classloader.clazz.ClazzTest" },
189                new String JavaDoc[] { String JavaDoc.class.getName()});
190          }
191          catch (MBeanException JavaDoc ex)
192          {
193             Exception JavaDoc tex = ex.getTargetException();
194             if (tex instanceof ClassNotFoundException JavaDoc)
195             {
196                fail(
197                   "org.jboss.test.classloader.clazz.ClazzTest not found: "
198                      + ex.getMessage());
199             }
200             else
201             {
202                throw tex;
203             }
204          }
205
206          try
207          {
208             getServer().invoke(
209                testName,
210                "loadClassFromTCL",
211                new Object JavaDoc[] { "org.jboss.test.classloader.clazz.ClazzTest" },
212                new String JavaDoc[] { String JavaDoc.class.getName()});
213          }
214          catch (MBeanException JavaDoc ex)
215          {
216             Exception JavaDoc tex = ex.getTargetException();
217             if (tex instanceof ClassNotFoundException JavaDoc)
218             {
219                fail(
220                   "org.jboss.test.classloader.clazz.ClazzTest not found from TCL: "
221                      + ex.getMessage());
222             }
223             else
224             {
225                throw tex;
226             }
227          }
228
229          try
230          {
231             getServer().invoke(
232                testName,
233                "loadClass",
234                new Object JavaDoc[] { "[Lorg.jboss.test.classloader.clazz.ClazzTest;" },
235                new String JavaDoc[] { String JavaDoc.class.getName()});
236          }
237          catch (MBeanException JavaDoc ex)
238          {
239             Exception JavaDoc tex = ex.getTargetException();
240             if (tex instanceof ClassNotFoundException JavaDoc)
241             {
242                fail(
243                   "org.jboss.test.classloader.clazz.ClazzTest[] not found: "
244                      + ex.getMessage());
245             }
246             else
247             {
248                throw tex;
249             }
250          }
251
252          try
253          {
254             getServer().invoke(
255                testName,
256                "loadClassFromTCL",
257                new Object JavaDoc[] { "[Lorg.jboss.test.classloader.clazz.ClazzTest;" },
258                new String JavaDoc[] { String JavaDoc.class.getName()});
259          }
260          catch (MBeanException JavaDoc ex)
261          {
262             Exception JavaDoc tex = ex.getTargetException();
263             if (tex instanceof ClassNotFoundException JavaDoc)
264             {
265                fail(
266                   "org.jboss.test.classloader.clazz.ClazzTest[] not found from TCL: "
267                      + ex.getMessage());
268             }
269             else
270             {
271                throw tex;
272             }
273          }
274       }
275       finally
276       {
277          undeploy("loadingclazz.sar");
278       }
279    }
280
281    protected void debug(String JavaDoc message)
282    {
283       getLog().debug(message);
284    }
285 }
286
Popular Tags