1 7 8 package com.rift.coad.daemon.messageservice.message; 9 10 import com.rift.coad.lib.thread.ThreadGroupManager; 12 import com.rift.coad.util.change.ChangeLog; 13 import javax.naming.InitialContext ; 14 import javax.naming.Context ; 15 import java.sql.PreparedStatement ; 16 import java.sql.ResultSet ; 17 import java.sql.Statement ; 18 import javax.sql.DataSource ; 19 import java.util.Set ; 20 import java.util.HashSet ; 21 import javax.transaction.UserTransaction ; 22 import java.sql.Timestamp ; 23 import java.util.ArrayList ; 24 import java.util.Date ; 25 import java.util.Enumeration ; 26 import java.util.HashSet ; 27 import java.util.Iterator ; 28 import java.util.List ; 29 import java.util.Set ; 30 import javax.transaction.xa.XAException ; 31 import javax.transaction.xa.XAResource ; 32 import javax.transaction.xa.Xid ; 33 import org.hibernate.*; 34 import org.hibernate.cfg.*; 35 import org.apache.log4j.Logger; 36 import org.apache.log4j.BasicConfigurator; 37 38 import junit.framework.*; 40 41 import org.objectweb.jotm.Jotm; 43 44 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 78 public class MessageManagerFactoryTest extends TestCase { 79 80 public MessageManagerFactoryTest(String testName) { 81 super(testName); 82 } 83 84 protected void setUp() throws Exception { 85 } 86 87 protected void tearDown() throws Exception { 88 } 89 90 93 public void testMessageManagerFactory() throws Exception { 94 System.out.println("MessageManagerFactory"); 95 96 Thread.currentThread().setContextClassLoader(this.getClass(). 97 getClassLoader()); 98 99 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 CoadunationThreadGroup threadGroup = new CoadunationThreadGroup(sessionManager, 108 userStoreManager); 109 110 RoleManager.getInstance(); 112 113 InterceptorFactory.init(permissions,sessionManager,userStoreManager); 114 115 Set set = new HashSet (); 117 set.add("test"); 118 UserSession user = new UserSession("test1", set); 119 permissions.putSession(new Long (Thread.currentThread().getId()), 120 new ThreadPermissionSession( 121 new Long (Thread.currentThread().getId()),user)); 122 123 ThreadGroupManager.getInstance().initThreadGroup(threadGroup); 125 126 127 NamingDirector.init(threadGroup); 129 130 TransactionDirector transactionDirector = TransactionDirector.init(); 132 133 DBSourceManager.init(); 135 ObjectLockFactory.init(); 136 TransactionManager.init(); 137 ChangeLog.init(MessageServiceImpl.class); 138 ChangeLog.getInstance().start(); 139 140 Context context = new InitialContext (); 141 142 143 List principals = new ArrayList (set); 144 Date currentTime = new Date (); 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 [] {"test1","test2","test3"}); 166 textMessage.setTarget("target"); 167 UserTransaction ut = 168 (UserTransaction )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 |