KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > rift > coad > lib > deployment > DeploymentManagerTest


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

23
24 package com.rift.coad.lib.deployment;
25
26 // junit framework
27
import com.rift.coad.lib.transaction.TransactionDirector;
28 import junit.framework.*;
29
30 // java imports
31
import java.io.FileWriter JavaDoc;
32 import java.io.File JavaDoc;
33 import java.util.Map JavaDoc;
34 import java.util.HashMap JavaDoc;
35 import java.util.Set JavaDoc;
36 import java.util.Iterator JavaDoc;
37 import java.util.Vector JavaDoc;
38 import java.util.Date JavaDoc;
39 import java.util.Set JavaDoc;
40 import java.util.HashSet JavaDoc;
41
42
43 // axis includes
44
import org.apache.axis.AxisEngine;
45 import org.apache.axis.server.AxisServer;
46 import org.apache.axis.management.ServiceAdmin;
47 import org.apache.axis.configuration.EngineConfigurationFactoryFinder;
48 import org.apache.axis.EngineConfiguration;
49
50 // log 4 j imports
51
import org.apache.log4j.Logger;
52
53 // coadunation imports
54
import com.rift.coad.lib.thread.CoadunationThreadGroup;
55 import com.rift.coad.lib.thread.BasicThread;
56 import com.rift.coad.lib.cache.CacheRegistry;
57 import com.rift.coad.lib.configuration.Configuration;
58 import com.rift.coad.lib.configuration.ConfigurationFactory;
59 import com.rift.coad.lib.deployment.bean.BeanManager;
60 import com.rift.coad.lib.deployment.jmxbean.JMXBeanManager;
61 import com.rift.coad.lib.deployment.webservice.WebServiceManager;
62 import com.rift.coad.lib.security.ThreadsPermissionContainer;
63 import com.rift.coad.lib.security.ThreadPermissionSession;
64 import com.rift.coad.lib.deployment.DeploymentLoader;
65 import com.rift.coad.lib.deployment.test.TestMonitor;
66 import com.rift.coad.lib.naming.NamingDirector;
67 import com.rift.coad.lib.security.user.UserSessionManager;
68 import com.rift.coad.lib.security.user.UserStoreManager;
69 import com.rift.coad.lib.security.login.handlers.PasswordInfoHandler;
70 import com.rift.coad.lib.security.SessionManager;
71 import com.rift.coad.lib.security.RoleManager;
72 import com.rift.coad.lib.security.UserSession;
73 import com.rift.coad.lib.security.Validator;
74 import com.rift.coad.lib.security.login.LoginManager;
75 import com.rift.coad.lib.thirdparty.axis.AxisManager;
76 import com.rift.coad.lib.interceptor.InterceptorFactory;
77
78
79 /**
80  *
81  *
82  * @author Brett Chaldecott
83  */

84 public class DeploymentManagerTest extends TestCase {
85     
86     public DeploymentManagerTest(String JavaDoc testName) {
87         super(testName);
88     }
89
90     protected void setUp() throws Exception JavaDoc {
91     }
92
93     protected void tearDown() throws Exception JavaDoc {
94     }
95
96     public static Test suite() {
97         TestSuite suite = new TestSuite(DeploymentManagerTest.class);
98         
99         return suite;
100     }
101     
102     
103     /**
104      * This method test the deployment manager.
105      */

106     public void testDeploymentManager() throws Exception JavaDoc {
107         
108         // init the test jar file
109
File JavaDoc jarFile = new File JavaDoc(System.getProperty("test.jar"));
110         if (jarFile.isFile() == false){
111             throw new Exception JavaDoc("Test not configured properly");
112         }
113         
114         // init the session information
115
ThreadsPermissionContainer permissions = new ThreadsPermissionContainer();
116         SessionManager.init(permissions);
117         UserStoreManager userStoreManager = new UserStoreManager();
118         UserSessionManager sessionManager = new UserSessionManager(permissions,
119                 userStoreManager);
120         LoginManager.init(sessionManager,userStoreManager);
121         // instanciate the thread manager
122
CoadunationThreadGroup threadGroup = new CoadunationThreadGroup(sessionManager,
123             userStoreManager);
124         
125         // add a user to the session for the current thread
126
RoleManager.getInstance();
127         
128         InterceptorFactory.init(permissions,sessionManager,userStoreManager);
129         
130         // add a new user object and add to the permission
131
Set JavaDoc set = new HashSet JavaDoc();
132         set.add("test");
133         UserSession user = new UserSession("test1", set);
134         permissions.putSession(new Long JavaDoc(Thread.currentThread().getId()),
135                 new ThreadPermissionSession(
136                 new Long JavaDoc(Thread.currentThread().getId()),user));
137         
138         // init the naming director
139
NamingDirector.init(threadGroup);
140         
141         // instanciate the transaction director
142
TransactionDirector transactionDirector = TransactionDirector.init();
143         
144         // init the database source
145
CacheRegistry.init(threadGroup);
146         
147         // instanciate the bean manager
148
BeanManager beanManager = new BeanManager(permissions,
149                 threadGroup);
150         JMXBeanManager jmxBeanManager = new JMXBeanManager(permissions,
151                 threadGroup);
152         
153         // instanciate the axis engine
154
AxisManager.init();
155         
156         // instanciate the web service manager
157
WebServiceManager webServiceManager = new WebServiceManager();
158         
159         // init the test
160
TestMonitor.init();
161         
162         // instanciate the thread manager
163
DeploymentManager deploymentManager = new DeploymentManager(
164                 threadGroup,beanManager,jmxBeanManager, webServiceManager);
165         
166         // wait on the test
167
TestMonitor.getInstance().monitor();
168         
169         // reset the test monitor
170
TestMonitor.init();
171         
172         // touch the test jar file
173
System.out.println("Set the last modified date on the file [" +
174                 jarFile.getPath() + "]");
175         if (jarFile.setLastModified(new Date JavaDoc().getTime()) == false){
176             fail("Failed to set the last modified time for [" +
177                     jarFile.getPath() + "]");
178         }
179         
180         // wait on the test
181
TestMonitor.getInstance().monitor();
182         
183         // terminate the threads
184
deploymentManager.shutdown();
185         
186         CacheRegistry.getInstance().shutdown();
187         
188         NamingDirector.getInstance().shutdown();
189     }
190     
191 }
192
Popular Tags