KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > rift > coad > lib > deployment > jmxbean > JMXBeanLoaderTest


1 /*
2  * CoadunationLib: The coaduntion implementation library.
3  * Copyright (C) 2006 Rift IT Contracting
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18  *
19  * JMXBeanLoaderTest.java
20  *
21  * JUnit based test
22  */

23
24 package com.rift.coad.lib.deployment.jmxbean;
25
26 import com.rift.coad.lib.interceptor.InterceptorFactory;
27 import com.rift.coad.lib.naming.NamingDirector;
28 import com.rift.coad.lib.security.ThreadPermissionSession;
29 import com.rift.coad.lib.security.UserSession;
30 import com.rift.coad.lib.transaction.TransactionDirector;
31 import java.util.HashSet JavaDoc;
32 import java.util.Set JavaDoc;
33 import junit.framework.*;
34 import javax.management.ObjectName JavaDoc;
35 import javax.management.MBeanServer JavaDoc;
36 import java.util.Map JavaDoc;
37 import java.util.HashMap JavaDoc;
38 import com.rift.coad.lib.deployment.DeploymentLoader;
39 import java.lang.management.ManagementFactory JavaDoc;
40 import org.apache.log4j.BasicConfigurator;
41
42 // coadunation import
43
import com.rift.coad.lib.security.ThreadsPermissionContainer;
44 import com.rift.coad.lib.security.user.UserSessionManager;
45 import com.rift.coad.lib.configuration.ConfigurationFactory;
46 import com.rift.coad.lib.configuration.Configuration;
47 import com.rift.coad.lib.security.user.UserStoreManager;
48 import com.rift.coad.lib.security.ThreadsPermissionContainer;
49 import com.rift.coad.lib.security.login.handlers.PasswordInfoHandler;
50 import com.rift.coad.lib.security.SessionManager;
51 import com.rift.coad.lib.security.RoleManager;
52 import com.rift.coad.lib.security.Validator;
53 import com.rift.coad.lib.security.login.LoginManager;
54 import com.rift.coad.lib.thread.CoadunationThreadGroup;
55
56
57
58 /**
59  *
60  * @author mincemeat
61  */

62 public class JMXBeanLoaderTest extends TestCase {
63     
64     // Platform MBeanServer used to register your MBeans
65
private final MBeanServer JavaDoc mbs = ManagementFactory.getPlatformMBeanServer();
66     
67     public JMXBeanLoaderTest(String JavaDoc testName) {
68         super(testName);
69         BasicConfigurator.configure();
70     }
71
72     protected void setUp() throws Exception JavaDoc {
73     }
74
75     protected void tearDown() throws Exception JavaDoc {
76     }
77
78     public static Test suite() {
79         TestSuite suite = new TestSuite(JMXBeanLoaderTest.class);
80         
81         return suite;
82     }
83
84     /**
85      * Test of class com.rift.coad.lib.deployment.jmxbean.JMXBeanLoader.
86      */

87     public void testJMXBeanLoader() throws Exception JavaDoc {
88         System.out.println("testJMXBeanLoader");
89         
90         // instanciate the deployment loader
91
ThreadsPermissionContainer permissionContainer =
92                 new ThreadsPermissionContainer();
93         
94         // initialize the thread permissions
95
SessionManager.init(permissionContainer);
96         UserStoreManager userStoreManager = new UserStoreManager();
97         UserSessionManager sessionManager = new UserSessionManager(
98                 permissionContainer,userStoreManager);
99         LoginManager.init(sessionManager,userStoreManager);
100         
101         // add a user to the session for the current thread
102
RoleManager.getInstance();
103         
104         // setup the interceptor factory
105
InterceptorFactory.init(permissionContainer,sessionManager,
106                 userStoreManager);
107         
108         // add a new user object and add to the permission
109
Set JavaDoc set = new HashSet JavaDoc();
110         set.add("test");
111         UserSession user = new UserSession("test1", set);
112         permissionContainer.putSession(new Long JavaDoc(Thread.currentThread().getId()),
113                 new ThreadPermissionSession(
114                 new Long JavaDoc(Thread.currentThread().getId()),user));
115         
116         // instanciate the thread manager
117
CoadunationThreadGroup threadGroup = new CoadunationThreadGroup(sessionManager,
118             userStoreManager);
119         
120         // setup the naming context
121
NamingDirector.init(threadGroup);
122         
123         // instanciate the transaction director
124
TransactionDirector transactionDirector = TransactionDirector.init();
125         
126         DeploymentLoader deploymentLoader = new DeploymentLoader(
127                 new java.io.File JavaDoc(System.getProperty("test.jar")));
128         
129         // instanciate the bean loader
130
JMXBeanLoader instance = new JMXBeanLoader(mbs,deploymentLoader,
131                 permissionContainer,threadGroup);
132         instance.setContextClassLoader(deploymentLoader.getClassLoader());
133         threadGroup.addThread(instance,"test");
134         instance.start();
135         instance.join();
136         if (!instance.wasSucessfull()) {
137             throw instance.getException();
138         }
139         
140         // unregister the beans
141
instance.unRegisterBeans();
142         instance.stopThreads();
143     }
144     
145 }
146
Popular Tags