KickJava   Java API By Example, From Geeks To Geeks.

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


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  * JMXBeanConnectorTest.java
20  *
21  * JUnit based test
22  */

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

58 public class JMXBeanConnectorTest extends TestCase {
59     
60     public JMXBeanConnectorTest(String JavaDoc testName) {
61         super(testName);
62     }
63
64     protected void setUp() throws Exception JavaDoc {
65     }
66
67     protected void tearDown() throws Exception JavaDoc {
68     }
69
70     public static Test suite() {
71         TestSuite suite = new TestSuite(JMXBeanConnectorTest.class);
72         
73         return suite;
74     }
75
76     /**
77      * Test of testJMXBeanConnector, of class com.rift.coad.lib.deployment.jmxbean.JMXBeanConnector.
78      */

79     public void testJMXBeanConnector() throws Exception JavaDoc {
80         System.out.println("testJMXBeanConnector");
81         
82         System.out.println("Jar path : " + System.getProperty("test.jar"));
83         
84         // instanciate the deployment loader
85
ThreadsPermissionContainer permissionContainer =
86                 new ThreadsPermissionContainer();
87         
88         // initialize the thread permissions
89
SessionManager.init(permissionContainer);
90         UserStoreManager userStoreManager = new UserStoreManager();
91         UserSessionManager sessionManager = new UserSessionManager(
92                 permissionContainer,userStoreManager);
93         LoginManager.init(sessionManager,userStoreManager);
94         
95         // add a user to the session for the current thread
96
RoleManager.getInstance();
97         
98         // setup the interceptor factory
99
InterceptorFactory.init(permissionContainer,sessionManager,
100                 userStoreManager);
101         
102         // add a new user object and add to the permission
103
Set JavaDoc set = new HashSet JavaDoc();
104         set.add("test");
105         UserSession user = new UserSession("test1", set);
106         permissionContainer.putSession(new Long JavaDoc(Thread.currentThread().getId()),
107                 new ThreadPermissionSession(
108                 new Long JavaDoc(Thread.currentThread().getId()),user));
109         
110         // instanciate the thread manager
111
CoadunationThreadGroup threadGroup = new CoadunationThreadGroup(sessionManager,
112             userStoreManager);
113         
114         // setup the naming context
115
NamingDirector.init(threadGroup);
116         
117         // instanciate the transaction director
118
TransactionDirector transactionDirector = TransactionDirector.init();
119         
120         
121         CacheRegistry.init(threadGroup);
122         
123         
124         
125         JMXBeanManager beanManager = new JMXBeanManager(permissionContainer,
126                 threadGroup);
127         
128         JMXBeanConnector.init(beanManager);
129         
130         DeploymentLoader deploymentLoader = new DeploymentLoader(
131                 new java.io.File JavaDoc(System.getProperty("test.jar")));
132         
133         beanManager.load(deploymentLoader);
134         
135         // load the bean
136
JMXBeanConnector instance = JMXBeanConnector.getInstance();
137         Set JavaDoc bindKeys = instance.getJMXBeanKeys();
138         if ((bindKeys.size() != 1) || (bindKeys.contains("testjmxbean") == false)) {
139             fail("bind object [testjmxbean] not found.");
140         }
141         
142         if (null == instance.getJMXBean("testjmxbean")) {
143             fail("Failed to retrieve the object [testjmxbean] not found.");
144         }
145         
146         // load the object into memory
147
beanManager.unLoad(deploymentLoader);
148         
149         bindKeys = instance.getJMXBeanKeys();
150         if ((bindKeys.size() != 0) || (bindKeys.contains("testjmxbean") == true)) {
151             fail("bind object [testjmxbean] not found.");
152         }
153         
154         CacheRegistry.getInstance().shutdown();
155         
156         NamingDirector.getInstance().shutdown();
157     }
158
159 }
160
Popular Tags