KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > rift > coad > daemon > messageservice > message > MessageManagerFactoryTest


1 /*
2  * MessageManagerFactoryTest.java
3  * JUnit based test
4  *
5  * Created on January 15, 2007, 9:31 PM
6  */

7
8 package com.rift.coad.daemon.messageservice.message;
9
10 // java imports
11
import com.rift.coad.lib.thread.ThreadGroupManager;
12 import com.rift.coad.util.change.ChangeLog;
13 import javax.naming.InitialContext JavaDoc;
14 import javax.naming.Context JavaDoc;
15 import java.sql.PreparedStatement JavaDoc;
16 import java.sql.ResultSet JavaDoc;
17 import java.sql.Statement JavaDoc;
18 import javax.sql.DataSource JavaDoc;
19 import java.util.Set JavaDoc;
20 import java.util.HashSet JavaDoc;
21 import javax.transaction.UserTransaction JavaDoc;
22 import java.sql.Timestamp JavaDoc;
23 import java.util.ArrayList JavaDoc;
24 import java.util.Date JavaDoc;
25 import java.util.Enumeration JavaDoc;
26 import java.util.HashSet JavaDoc;
27 import java.util.Iterator JavaDoc;
28 import java.util.List JavaDoc;
29 import java.util.Set JavaDoc;
30 import javax.transaction.xa.XAException JavaDoc;
31 import javax.transaction.xa.XAResource JavaDoc;
32 import javax.transaction.xa.Xid JavaDoc;
33 import org.hibernate.*;
34 import org.hibernate.cfg.*;
35 import org.apache.log4j.Logger;
36 import org.apache.log4j.BasicConfigurator;
37
38 // junit imports
39
import junit.framework.*;
40
41 // object web imports
42
import org.objectweb.jotm.Jotm;
43
44 // coadunation imports
45
import com.rift.coad.lib.naming.NamingDirector;
46 import com.rift.coad.lib.naming.ContextManager;
47 import com.rift.coad.lib.db.DBSourceManager;
48 import com.rift.coad.lib.common.ObjectSerializer;
49 import com.rift.coad.lib.interceptor.InterceptorFactory;
50 import com.rift.coad.lib.security.RoleManager;
51 import com.rift.coad.lib.security.ThreadsPermissionContainer;
52 import com.rift.coad.lib.security.ThreadPermissionSession;
53 import com.rift.coad.lib.security.UserSession;
54 import com.rift.coad.lib.security.user.UserSessionManager;
55 import com.rift.coad.lib.security.user.UserStoreManager;
56 import com.rift.coad.lib.security.SessionManager;
57 import com.rift.coad.lib.security.login.LoginManager;
58 import com.rift.coad.lib.thread.CoadunationThreadGroup;
59 import com.rift.coad.lib.transaction.TransactionDirector;
60 import com.rift.coad.daemon.messageservice.Message;
61 import com.rift.coad.daemon.messageservice.RPCMessage;
62 import com.rift.coad.daemon.messageservice.TextMessage;
63 import com.rift.coad.daemon.messageservice.MessageManager;
64 import com.rift.coad.daemon.messageservice.MessageServiceException;
65 import com.rift.coad.daemon.messageservice.MessageServiceImpl;
66 import com.rift.coad.daemon.messageservice.db.*;
67 import com.rift.coad.daemon.messageservice.message.MessageImpl;
68 import com.rift.coad.daemon.messageservice.message.RPCMessageImpl;
69 import com.rift.coad.daemon.messageservice.message.TextMessageImpl;
70 import com.rift.coad.hibernate.util.HibernateUtil;
71 import com.rift.coad.util.lock.ObjectLockFactory;
72 import com.rift.coad.util.transaction.TransactionManager;
73
74 /**
75  *
76  * @author mincemeat
77  */

78 public class MessageManagerFactoryTest extends TestCase {
79     
80     public MessageManagerFactoryTest(String JavaDoc testName) {
81         super(testName);
82     }
83
84     protected void setUp() throws Exception JavaDoc {
85     }
86
87     protected void tearDown() throws Exception JavaDoc {
88     }
89
90     /**
91      * Test of class com.rift.coad.daemon.messageservice.message.MessageManagerFactory.
92      */

93     public void testMessageManagerFactory() throws Exception JavaDoc {
94         System.out.println("MessageManagerFactory");
95         
96         Thread.currentThread().setContextClassLoader(this.getClass().
97                 getClassLoader());
98         
99         // init the session information
100
ThreadsPermissionContainer permissions = new ThreadsPermissionContainer();
101         SessionManager.init(permissions);
102         UserStoreManager userStoreManager = new UserStoreManager();
103         UserSessionManager sessionManager = new UserSessionManager(permissions,
104                 userStoreManager);
105         LoginManager.init(sessionManager,userStoreManager);
106         // instanciate the thread manager
107
CoadunationThreadGroup threadGroup = new CoadunationThreadGroup(sessionManager,
108             userStoreManager);
109         
110         // add a user to the session for the current thread
111
RoleManager.getInstance();
112         
113         InterceptorFactory.init(permissions,sessionManager,userStoreManager);
114         
115         // add a new user object and add to the permission
116
Set JavaDoc set = new HashSet JavaDoc();
117         set.add("test");
118         UserSession user = new UserSession("test1", set);
119         permissions.putSession(new Long JavaDoc(Thread.currentThread().getId()),
120                 new ThreadPermissionSession(
121                 new Long JavaDoc(Thread.currentThread().getId()),user));
122         
123         // instanciate the thread manager
124
ThreadGroupManager.getInstance().initThreadGroup(threadGroup);
125         
126         
127         // init the naming director
128
NamingDirector.init(threadGroup);
129         
130         // instanciate the transaction director
131
TransactionDirector transactionDirector = TransactionDirector.init();
132         
133         // init the database source
134
DBSourceManager.init();
135         ObjectLockFactory.init();
136         TransactionManager.init();
137         ChangeLog.init(MessageServiceImpl.class);
138         ChangeLog.getInstance().start();
139         
140         Context JavaDoc context = new InitialContext JavaDoc();
141         
142         
143         List JavaDoc principals = new ArrayList JavaDoc(set);
144         Date JavaDoc currentTime = new Date JavaDoc();
145         TextMessageImpl textMessage = new TextMessageImpl("test","test","test",
146                 principals,Message.UNDELIVERED);
147         textMessage.setFrom("test");
148         textMessage.setTextBody("test text");
149         textMessage.setStringProperty("TESTString","TESTvalue");
150         textMessage.setBooleanProperty("TESTBoolean",true);
151         textMessage.setByteProperty("TESTByte",(byte)1);
152         textMessage.setCorrelationId("TESTCorrelationId");
153         textMessage.setDoubleProperty("TESTDouble",1.1);
154         textMessage.setFloatProperty("TESTFloat",(float)2.2);
155         textMessage.setFrom("test@test.com");
156         textMessage.setIntProperty("TESTInt",100);
157         textMessage.setLongProperty("TESTLong",(long)2000);
158         textMessage.setTargetNamedQueue("QUEUEName");
159         textMessage.setReplyNamedQueue("ReplyQUEUEName");
160         textMessage.setNextProcessDate(currentTime);
161         textMessage.setObjectProperty("TESTObject","This is a test obj");
162         textMessage.setPriority(1000);
163         textMessage.setProcessedDate(currentTime);
164         textMessage.setReply(true);
165         textMessage.setServices(new String JavaDoc[] {"test1","test2","test3"});
166         textMessage.setTarget("target");
167         UserTransaction JavaDoc ut =
168                 (UserTransaction JavaDoc)context.lookup("java:comp/UserTransaction");
169         
170         ut.begin();
171         
172         MessageManager instance = MessageManagerFactory.getInstance().
173                 getMessageManager(textMessage);
174         
175         ut.commit();
176         
177         Thread.sleep(30000);
178         
179         ut.begin();
180         
181         MessageManager instance2 = MessageManagerFactory.getInstance().
182                 getMessageManager("test");
183         
184         ut.commit();
185         
186         assertEquals(instance2.getID(),instance.getID());
187         
188         ut.begin();
189         
190         instance2.remove();
191         
192         ut.commit();
193         
194         Thread.sleep(30000);
195         
196         ChangeLog.getInstance().terminate();
197     }
198
199     
200 }
201
Popular Tags