KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > scriptella > execution > JmxEtlManagerTest


1 /*
2  * Copyright 2006-2007 The Scriptella Project Team.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16 package scriptella.execution;
17
18 import scriptella.AbstractTestCase;
19
20 import javax.management.MalformedObjectNameException JavaDoc;
21 import javax.management.ObjectName JavaDoc;
22 import java.lang.management.ManagementFactory JavaDoc;
23 import java.net.MalformedURLException JavaDoc;
24 import java.net.URL JavaDoc;
25
26 /**
27  * Tests for {@link JmxEtlManager}.
28  *
29  * @author Fyodor Kupolov
30  * @version 1.0
31  */

32 public class JmxEtlManagerTest extends AbstractTestCase {
33     public void testRegistration() throws MalformedURLException JavaDoc, MalformedObjectNameException JavaDoc {
34         EtlContext ctx = new EtlContext();
35         ctx.setBaseURL(new URL JavaDoc("file:/tmp"));
36         JmxEtlManager m = new JmxEtlManager(ctx);
37         m.register();
38         final ObjectName JavaDoc name = JmxEtlManager.toObjectName("file:/tmp", 0);
39         assertTrue(ManagementFactory.getPlatformMBeanServer().isRegistered(name));
40         m.unregister();
41         assertFalse(ManagementFactory.getPlatformMBeanServer().isRegistered(name));
42         //Now test naming collision
43
m = new JmxEtlManager(ctx);
44         m.register();
45         JmxEtlManager m2 = new JmxEtlManager(ctx);
46         m2.register();
47         final ObjectName JavaDoc name2 = JmxEtlManager.toObjectName("file:/tmp", 1);
48         assertTrue(ManagementFactory.getPlatformMBeanServer().isRegistered(name));
49         assertTrue(ManagementFactory.getPlatformMBeanServer().isRegistered(name2));
50         m.unregister();
51         m2.unregister();
52         assertFalse(ManagementFactory.getPlatformMBeanServer().isRegistered(name));
53         assertFalse(ManagementFactory.getPlatformMBeanServer().isRegistered(name2));
54         //Now test if double registration is prohibited
55
m = new JmxEtlManager(ctx);
56         m.register();
57         try {
58             m.register();
59             fail("Double registration must be reported");
60         } catch (IllegalStateException JavaDoc e) {
61             //OK
62
}
63         m.unregister();
64     }
65
66     public void testCancelAll() throws MalformedURLException JavaDoc {
67         EtlContext ctx = new EtlContext();
68         ctx.setBaseURL(new URL JavaDoc("file:/tmp"));
69         JmxEtlManager m = new JmxEtlManager(ctx);
70         m.register();
71         JmxEtlManager m2 = new JmxEtlManager(ctx);
72         m2.register();
73         ctx.setBaseURL(new URL JavaDoc("file:/tmp2"));
74         JmxEtlManager m3 = new JmxEtlManager(ctx);
75         m3.register();
76         assertEquals(3,JmxEtlManager.cancelAll());
77         m.unregister();
78         m2.unregister();
79         m3.unregister();
80         //Check and clear the interrupted state
81
assertTrue(Thread.interrupted());
82
83     }
84
85 }
86
Popular Tags