| 1 21 22 package com.rift.coad.daemon.messageservice.message; 24 25 import javax.naming.InitialContext ; 27 import javax.naming.Context ; 28 import java.sql.PreparedStatement ; 29 import java.sql.ResultSet ; 30 import java.sql.Statement ; 31 import javax.sql.DataSource ; 32 import java.util.Set ; 33 import java.util.HashSet ; 34 import javax.transaction.UserTransaction ; 35 import java.sql.Timestamp ; 36 import java.util.ArrayList ; 37 import java.util.Date ; 38 import java.util.Enumeration ; 39 import java.util.HashSet ; 40 import java.util.Iterator ; 41 import java.util.List ; 42 import java.util.Set ; 43 import javax.transaction.xa.XAException ; 44 import javax.transaction.xa.XAResource ; 45 import javax.transaction.xa.Xid ; 46 import org.hibernate.*; 47 import org.hibernate.cfg.*; 48 import org.apache.log4j.Logger; 49 import org.apache.log4j.BasicConfigurator; 50 51 import junit.framework.*; 53 54 import org.objectweb.jotm.Jotm; 56 57 import com.rift.coad.lib.naming.NamingDirector; 59 import com.rift.coad.lib.naming.ContextManager; 60 import com.rift.coad.lib.db.DBSourceManager; 61 import com.rift.coad.lib.common.ObjectSerializer; 62 import com.rift.coad.lib.interceptor.InterceptorFactory; 63 import com.rift.coad.lib.security.RoleManager; 64 import com.rift.coad.lib.security.ThreadsPermissionContainer; 65 import com.rift.coad.lib.security.ThreadPermissionSession; 66 import com.rift.coad.lib.security.UserSession; 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.SessionManager; 70 import com.rift.coad.lib.security.login.LoginManager; 71 import com.rift.coad.lib.thread.CoadunationThreadGroup; 72 import com.rift.coad.lib.transaction.TransactionDirector; 73 import com.rift.coad.daemon.messageservice.Message; 74 import com.rift.coad.daemon.messageservice.MessageError; 75 import com.rift.coad.daemon.messageservice.RPCMessage; 76 import com.rift.coad.daemon.messageservice.TextMessage; 77 import com.rift.coad.daemon.messageservice.MessageManager; 78 import com.rift.coad.daemon.messageservice.MessageServiceException; 79 import com.rift.coad.daemon.messageservice.MessageServiceImpl; 80 import com.rift.coad.daemon.messageservice.db.*; 81 import com.rift.coad.daemon.messageservice.message.MessageImpl; 82 import com.rift.coad.daemon.messageservice.message.RPCMessageImpl; 83 import com.rift.coad.daemon.messageservice.message.TextMessageImpl; 84 import com.rift.coad.hibernate.util.HibernateUtil; 85 import com.rift.coad.util.lock.ObjectLockFactory; 86 import com.rift.coad.util.transaction.TransactionManager; 87 import com.rift.coad.util.change.ChangeLog; 88 import com.rift.coad.lib.thread.ThreadGroupManager; 89 90 95 public class MessageManagerImplTest extends TestCase { 96 97 public MessageManagerImplTest(String testName) { 98 super(testName); 99 } 101 102 protected void setUp() throws Exception { 103 } 104 105 protected void tearDown() throws Exception { 106 } 107 108 111 public void testMessageManagerImpl() throws Exception { 112 System.out.println("testMessageManagerImpl"); 113 114 Thread.currentThread().setContextClassLoader(this.getClass(). 115 getClassLoader()); 116 117 ThreadsPermissionContainer permissions = new ThreadsPermissionContainer(); 119 SessionManager.init(permissions); 120 UserStoreManager userStoreManager = new UserStoreManager(); 121 UserSessionManager sessionManager = new UserSessionManager(permissions, 122 userStoreManager); 123 LoginManager.init(sessionManager,userStoreManager); 124 CoadunationThreadGroup threadGroup = new CoadunationThreadGroup( 126 sessionManager,userStoreManager); 127 128 RoleManager.getInstance(); 130 131 InterceptorFactory.init(permissions,sessionManager,userStoreManager); 132 133 Set set = new HashSet (); 135 set.add("test"); 136 UserSession user = new UserSession("test1", set); 137 permissions.putSession(new Long (Thread.currentThread().getId()), 138 new ThreadPermissionSession( 139 new Long (Thread.currentThread().getId()),user)); 140 141 ThreadGroupManager.getInstance().initThreadGroup(threadGroup); 143 144 145 NamingDirector.init(threadGroup); 147 148 TransactionDirector transactionDirector = TransactionDirector.init(); 150 151 DBSourceManager.init(); 153 ObjectLockFactory.init(); 154 TransactionManager.init(); 155 ChangeLog.init(MessageServiceImpl.class); 156 ChangeLog.getInstance().start(); 157 Context context = new InitialContext (); 158 159 160 List principals = new ArrayList (set); 161 Date currentTime = new Date (); 162 TextMessageImpl textMessage = new TextMessageImpl("test","test","test", 163 principals,Message.UNDELIVERED); 164 textMessage.setFrom("test"); 165 textMessage.setTextBody("test text"); 166 textMessage.setStringProperty("TESTString","TESTvalue"); 167 textMessage.setBooleanProperty("TESTBoolean",true); 168 textMessage.setByteProperty("TESTByte",(byte)1); 169 textMessage.setCorrelationId("TESTCorrelationId"); 170 textMessage.setDoubleProperty("TESTDouble",1.1); 171 textMessage.setFloatProperty("TESTFloat",(float)2.2); 172 textMessage.setFrom("test@test.com"); 173 textMessage.setIntProperty("TESTInt",100); 174 textMessage.setLongProperty("TESTLong",(long)2000); 175 textMessage.setTargetNamedQueue("QUEUEName"); 176 textMessage.setReplyNamedQueue("ReplyQUEUEName"); 177 textMessage.setNextProcessDate(currentTime); 178 textMessage.setObjectProperty("TESTObject","This is a test obj"); 179 textMessage.setPriority(1000); 180 textMessage.setProcessedDate(currentTime); 181 textMessage.setReply(true); 182 textMessage.setServices(new String [] {"test1","test2","test3"}); 183 textMessage.setTarget("target"); 184 textMessage.addError(1,"test error1"); 185 textMessage.addError(2,"test error2"); 186 UserTransaction ut = 187 (UserTransaction )context.lookup("java:comp/UserTransaction"); 188 189 ut.begin(); 190 191 MessageManagerImpl instance = new MessageManagerImpl(textMessage); 192 193 ut.commit(); 194 195 String expResult = "test"; 196 String result = instance.getID(); 197 assertEquals(expResult, result); 198 199 ut.begin(); 200 Message retrievedMessage = instance.getMessage(); 201 ut.commit(); 202 Date nextProcessTime = new Date (currentTime.getTime() + 1000); 203 204 assertEquals(retrievedMessage.getMessageId(), "test"); 205 System.out.println("[" + 206 retrievedMessage.getStringProperty("TESTString") 207 + "][TESTvalue]"); 208 assertEquals(retrievedMessage.getStringProperty("TESTString"), 209 "TESTvalue"); 210 retrievedMessage.setStringProperty("TESTString","TESTvalue2"); 211 assertEquals(((TextMessage)retrievedMessage).getTextBody(), 212 "test text"); 213 ((TextMessage)retrievedMessage).setTextBody("testing text again"); 214 assertEquals(retrievedMessage.getBooleanProperty("TESTBoolean"), 215 true); 216 retrievedMessage.setBooleanProperty("TESTBoolean",false); 217 assertEquals(retrievedMessage.getByteProperty("TESTByte"), 218 (byte)1); 219 retrievedMessage.setByteProperty("TESTByte",(byte)2); 220 assertEquals(retrievedMessage.getCorrelationId(), 221 "TESTCorrelationId"); 222 retrievedMessage.setCorrelationId("TESTCorrelationId2"); 223 assertEquals(retrievedMessage.getDoubleProperty("TESTDouble"), 224 (double)1.1); 225 retrievedMessage.setDoubleProperty("TESTDouble",2.5); 226 assertEquals(retrievedMessage.getFloatProperty("TESTFloat"), 227 (float)2.2); 228 retrievedMessage.setFloatProperty("TESTFloat",(float)4.4); 229 assertEquals(retrievedMessage.getFrom(), 230 "test@test.com"); 231 assertEquals(retrievedMessage.getIntProperty("TESTInt"), 232 100); 233 retrievedMessage.setIntProperty("TESTInt",200); 234 assertEquals(retrievedMessage.getLongProperty("TESTLong"), 235 (long)2000); 236 retrievedMessage.setLongProperty("TESTLong",(long)4000); 237 assertEquals(retrievedMessage.getTargetNamedQueue(), 238 "QUEUEName"); 239 assertEquals(retrievedMessage.getReplyNamedQueue(), 240 "ReplyQUEUEName"); 241 assertEquals(((MessageImpl)retrievedMessage).getNextProcessDate(). 242 getTime()/1000,currentTime.getTime()/1000); 243 ((MessageImpl)retrievedMessage).setNextProcessDate(nextProcessTime); 244 assertEquals(retrievedMessage.getObjectProperty("TESTObject"), 245 "This is a test obj"); 246 retrievedMessage.setObjectProperty("TESTObject", 247 "this is a new object value"); 248 assertEquals(retrievedMessage.getPriority(),1000); 249 retrievedMessage.setPriority(2000); 250 assertEquals(retrievedMessage.getProcessedDate().getTime()/1000, 251 currentTime.getTime()/1000); 252 retrievedMessage.setProcessedDate(nextProcessTime); 253 assertEquals(retrievedMessage.getReply(),true); 254 assertEquals(retrievedMessage.getState(),Message.UNDELIVERED); 255 String [] services = retrievedMessage.getServices(); 256 int foundCount = 0; 257 for (int index = 0; index < 3; index++) { 258 if (services[index].equals("test1") || 259 services[index].equals("test2") || 260 services[index].equals("test3")) { 261 foundCount++; 262 } 263 } 264 assertEquals(foundCount,3); 265 assertEquals(retrievedMessage.getTarget(),"target"); 266 assertEquals(retrievedMessage.getMessageCreater(),"test"); 267 List retrievedPrincipals = retrievedMessage.getMessagePrincipals(); 268 if (retrievedPrincipals.size() != 1) { 269 fail("Invalid list principals"); 270 } 271 if (!principals.equals(retrievedPrincipals)) { 272 fail("The retrieved principals are not equal."); 273 } 274 List errors = retrievedMessage.getErrors(); 275 if (errors.size() != 2) { 276 fail("Invalid number of errors"); 277 } 278 foundCount = 0; 279 for (Iterator iter = errors.iterator(); iter.hasNext();){ 280 com.rift.coad.daemon.messageservice.MessageError error = 281 (com.rift.coad.daemon.messageservice.MessageError)iter.next(); 282 if ((error.getLevel() == 1) && 283 (error.getMSG().equals("test error1"))) { 284 foundCount++; 285 } else if ((error.getLevel() == 2) && 286 (error.getMSG().equals("test error2"))) { 287 foundCount++; 288 } 289 } 290 if (foundCount != 2) { 291 fail("The errors were not stored correctly"); 292 } 293 retrievedMessage.addError(3,"test error3"); 294 295 ut.begin(); 296 Session session = HibernateUtil.getInstance(MessageServiceImpl.class). 297 getSession(); 298 MessageQueue messageQueue = new MessageQueue("test"); 299 session.persist(messageQueue); 300 instance.updateMessage(retrievedMessage); 301 instance.assignToQueue("test"); 302 ut.commit(); 303 304 ut.begin(); 305 retrievedMessage = instance.getMessage(); 306 ut.commit(); 307 308 assertEquals(retrievedMessage.getMessageId(), "test"); 309 System.out.println("[" + 310 retrievedMessage.getStringProperty("TESTString") 311 + "][TESTvalue2]"); 312 assertEquals(retrievedMessage.getStringProperty("TESTString"), 313 "TESTvalue2"); 314 assertEquals(((TextMessage)retrievedMessage).getTextBody(), 315 "testing text again"); 316 assertEquals(retrievedMessage.getBooleanProperty("TESTBoolean"), 317 false); 318 assertEquals(retrievedMessage.getByteProperty("TESTByte"), 319 (byte)2); 320 assertEquals(retrievedMessage.getDoubleProperty("TESTDouble"), 321 (double)2.5); 322 assertEquals(retrievedMessage.getFloatProperty("TESTFloat"), 323 (float)4.4); 324 assertEquals(retrievedMessage.getFrom(), 325 "test@test.com"); 326 assertEquals(retrievedMessage.getIntProperty("TESTInt"), 327 200); 328 assertEquals(retrievedMessage.getLongProperty("TESTLong"), 329 (long)4000); 330 assertEquals(retrievedMessage.getTargetNamedQueue(), 331 "QUEUEName"); 332 assertEquals(retrievedMessage.getReplyNamedQueue(), 333 "ReplyQUEUEName"); 334 assertEquals(((MessageImpl)retrievedMessage).getNextProcessDate(). 335 getTime() / 1000,nextProcessTime.getTime() / 1000); 336 assertEquals(retrievedMessage.getObjectProperty("TESTObject"), 337 "this is a new object value"); 338 assertEquals(retrievedMessage.getProcessedDate().getTime() / 1000, 339 nextProcessTime.getTime() / 1000); 340 assertEquals(retrievedMessage.getReply(),true); 341 services = retrievedMessage.getServices(); 342 foundCount = 0; 343 for (int index = 0; index < 3; index++) { 344 if (services[index].equals("test1") || 345 services[index].equals("test2") || 346 services[index].equals("test3")) { 347 foundCount++; 348 } 349 } 350 assertEquals(foundCount,3); 351 assertEquals(retrievedMessage.getTarget(),"target"); 352 353 errors = retrievedMessage.getErrors(); 354 if (errors.size() != 3) { 355 fail("Invalid number of errors"); 356 } 357 foundCount = 0; 358 for (Iterator iter = errors.iterator(); iter.hasNext();){ 359 com.rift.coad.daemon.messageservice.MessageError error = 360 (com.rift.coad.daemon.messageservice.MessageError)iter.next(); 361 if ((error.getLevel() == 1) && 362 (error.getMSG().equals("test error1"))) { 363 foundCount++; 364 } else if ((error.getLevel() == 2) && 365 (error.getMSG().equals("test error2"))) { 366 foundCount++; 367 } else if ((error.getLevel() == 3) && 368 (error.getMSG().equals("test error3"))) { 369 foundCount++; 370 } 371 } 372 if (foundCount != 3) { 373 fail("The errors were not stored correctly"); 374 } 375 376 ut.begin(); 377 instance.remove(); 378 ut.commit(); 379 380 381 currentTime = new Date (); 382 RPCMessageImpl rpcMessage = new RPCMessageImpl("test","test","test", 383 principals,Message.UNDELIVERED); 384 rpcMessage.setFrom("test"); 385 rpcMessage.setMethodBodyXML("test text"); 386 rpcMessage.setStringProperty("TESTString","TESTvalue"); 387 rpcMessage.setBooleanProperty("TESTBoolean",true); 388 rpcMessage.setByteProperty("TESTByte",(byte)1); 389 rpcMessage.setCorrelationId("TESTCorrelationId"); 390 rpcMessage.setDoubleProperty("TESTDouble",1.1); 391 rpcMessage.setFloatProperty("TESTFloat",(float)2.2); 392 rpcMessage.setFrom("test@test.com"); 393 rpcMessage.setIntProperty("TESTInt",100); 394 rpcMessage.setLongProperty("TESTLong",(long)2000); 395 rpcMessage.setTargetNamedQueue("QUEUEName"); 396 rpcMessage.setReplyNamedQueue("ReplyQUEUEName"); 397 rpcMessage.setNextProcessDate(currentTime); 398 rpcMessage.setObjectProperty("TESTObject","This is a test obj"); 399 rpcMessage.setPriority(1000); 400 rpcMessage.setProcessedDate(currentTime); 401 rpcMessage.setReply(true); 402 rpcMessage.setServices(new String [] {"test1","test2","test3"}); 403 rpcMessage.setTarget("target"); 404 405 ut.begin(); 406 407 MessageManagerImpl instance2 = new MessageManagerImpl(rpcMessage); 408 409 ut.commit(); 410 411 Thread.sleep(30000); 412 413 ut.begin(); 414 415 MessageManagerImpl instance3 = new MessageManagerImpl("test"); 416 417 ut.commit(); 418 419 ut.begin(); 420 retrievedMessage = instance2.getMessage(); 421 Message retrievedMessage2 = instance3.getMessage(); 422 ut.commit(); 423 nextProcessTime = new Date (currentTime.getTime() + 1000); 424 425 426 assertEquals(retrievedMessage2.getMessageId(), "test"); 427 assertEquals(retrievedMessage2.getStringProperty("TESTString"), 428 "TESTvalue"); 429 assertEquals(((RPCMessage)retrievedMessage2).getMethodBodyXML(), 430 "test text"); 431 assertEquals(retrievedMessage2.getBooleanProperty("TESTBoolean"), 432 true); 433 assertEquals(retrievedMessage2.getByteProperty("TESTByte"), 434 (byte)1); 435 assertEquals(retrievedMessage2.getCorrelationId(), 436 "TESTCorrelationId"); 437 assertEquals(retrievedMessage2.getDoubleProperty("TESTDouble"), 438 (double)1.1); 439 assertEquals(retrievedMessage2.getFloatProperty("TESTFloat"), 440 (float)2.2); 441 assertEquals(retrievedMessage2.getFrom(), 442 "test@test.com"); 443 assertEquals(retrievedMessage2.getIntProperty("TESTInt"), 444 100); 445 assertEquals(retrievedMessage2.getLongProperty("TESTLong"), 446 (long)2000); 447 assertEquals(retrievedMessage2.getTargetNamedQueue(), 448 "QUEUEName"); 449 assertEquals(retrievedMessage2.getReplyNamedQueue(), 450 "ReplyQUEUEName"); 451 assertEquals(((MessageImpl)retrievedMessage2).getNextProcessDate(). 452 getTime()/1000,currentTime.getTime()/1000); 453 assertEquals(retrievedMessage2.getObjectProperty("TESTObject"), 454 "This is a test obj"); 455 assertEquals(retrievedMessage2.getPriority(),1000); 456 assertEquals(retrievedMessage2.getProcessedDate().getTime()/1000, 457 currentTime.getTime()/1000); 458 assertEquals(retrievedMessage2.getReply(),true); 459 services = retrievedMessage2.getServices(); 460 foundCount = 0; 461 for (int index = 0; index < 3; index++) { 462 if (services[index].equals("test1") || 463 services[index].equals("test2") || 464 services[index].equals("test3")) { 465 foundCount++; 466 } 467 } 468 assertEquals(foundCount,3); 469 assertEquals(retrievedMessage2.getTarget(),"target"); 470 assertEquals(retrievedMessage2.getMessageCreater(),"test"); 471 retrievedPrincipals = retrievedMessage2.getMessagePrincipals(); 472 if (retrievedPrincipals.size() != 1) { 473 fail("Invalid list principals"); 474 } 475 if (!principals.equals(retrievedPrincipals)) { 476 fail("The retrieved principals are not equal."); 477 } 478 479 480 assertEquals(retrievedMessage.getMessageId(), "test"); 481 System.out.println("[" + 482 retrievedMessage.getStringProperty("TESTString") 483 + "][TESTvalue]"); 484 assertEquals(retrievedMessage.getStringProperty("TESTString"), 485 "TESTvalue"); 486 retrievedMessage.setStringProperty("TESTString","TESTvalue2"); 487 assertEquals(((RPCMessage)retrievedMessage).getMethodBodyXML(), 488 "test text"); 489 ((RPCMessage)retrievedMessage).setResult("result"); 490 ((RPCMessage)retrievedMessage).setThrowable(new Exception ("test")); 491 assertEquals(retrievedMessage.getBooleanProperty("TESTBoolean"), 492 true); 493 retrievedMessage.setBooleanProperty("TESTBoolean",false); 494 assertEquals(retrievedMessage.getByteProperty("TESTByte"), 495 (byte)1); 496 retrievedMessage.setByteProperty("TESTByte",(byte)2); 497 assertEquals(retrievedMessage.getCorrelationId(), 498 "TESTCorrelationId"); 499 retrievedMessage.setCorrelationId("TESTCorrelationId2"); 500 assertEquals(retrievedMessage.getDoubleProperty("TESTDouble"), 501 (double)1.1); 502 retrievedMessage.setDoubleProperty("TESTDouble",2.5); 503 assertEquals(retrievedMessage.getFloatProperty("TESTFloat"), 504 (float)2.2); 505 retrievedMessage.setFloatProperty("TESTFloat",(float)4.4); 506 assertEquals(retrievedMessage.getFrom(), 507 "test@test.com"); 508 assertEquals(retrievedMessage.getIntProperty("TESTInt"), 509 100); 510 retrievedMessage.setIntProperty("TESTInt",200); 511 assertEquals(retrievedMessage.getLongProperty("TESTLong"), 512 (long)2000); 513 retrievedMessage.setLongProperty("TESTLong",(long)4000); 514 assertEquals(retrievedMessage.getTargetNamedQueue(), 515 "QUEUEName"); 516 assertEquals(retrievedMessage.getReplyNamedQueue(), 517 "ReplyQUEUEName"); 518 assertEquals(((MessageImpl)retrievedMessage).getNextProcessDate(). 519 getTime()/1000,currentTime.getTime()/1000); 520 ((MessageImpl)retrievedMessage).setNextProcessDate(nextProcessTime); 521 assertEquals(retrievedMessage.getObjectProperty("TESTObject"), 522 "This is a test obj"); 523 retrievedMessage.setObjectProperty("TESTObject", 524 "this is a new object value"); 525 assertEquals(retrievedMessage.getPriority(),1000); 526 retrievedMessage.setPriority(2000); 527 assertEquals(retrievedMessage.getProcessedDate().getTime()/1000, 528 currentTime.getTime()/1000); 529 retrievedMessage.setProcessedDate(nextProcessTime); 530 assertEquals(retrievedMessage.getReply(),true); 531 services = retrievedMessage.getServices(); 532 foundCount = 0; 533 for (int index = 0; index < 3; index++) { 534 if (services[index].equals("test1") || 535 services[index].equals("test2") || 536 services[index].equals("test3")) { 537 foundCount++; 538 } 539 } 540 assertEquals(foundCount,3); 541 assertEquals(retrievedMessage.getTarget(),"target"); 542 assertEquals(retrievedMessage.getMessageCreater(),"test"); 543 retrievedPrincipals = retrievedMessage.getMessagePrincipals(); 544 if (retrievedPrincipals.size() != 1) { 545 fail("Invalid list principals"); 546 } 547 if (!principals.equals(retrievedPrincipals)) { 548 fail("The retrieved principals are not equal."); 549 } 550 551 ut.begin(); 552 instance2.updateMessage(retrievedMessage); 553 instance2.assignToQueue("test"); 554 ut.commit(); 555 556 ut.begin(); 557 retrievedMessage = instance2.getMessage(); 558 559 ut.commit(); 560 561 assertEquals(retrievedMessage.getMessageId(), "test"); 562 System.out.println("[" + 563 retrievedMessage.getStringProperty("TESTString") 564 + "][TESTvalue2]"); 565 assertEquals(retrievedMessage.getStringProperty("TESTString"), 566 "TESTvalue2"); 567 assertEquals(((RPCMessage)retrievedMessage).getMethodBodyXML(), 568 "test text"); 569 assertEquals(((RPCMessage)retrievedMessage).getResult(), 570 "result"); 571 assertEquals(((RPCMessage)retrievedMessage).getThrowable().getMessage(), 572 "test"); 573 assertEquals(retrievedMessage.getBooleanProperty("TESTBoolean"), 574 false); 575 assertEquals(retrievedMessage.getByteProperty("TESTByte"), 576 (byte)2); 577 assertEquals(retrievedMessage.getDoubleProperty("TESTDouble"), 578 (double)2.5); 579 assertEquals(retrievedMessage.getFloatProperty("TESTFloat"), 580 (float)4.4); 581 assertEquals(retrievedMessage.getFrom(), 582 "test@test.com"); 583 assertEquals(retrievedMessage.getIntProperty("TESTInt"), 584 200); 585 assertEquals(retrievedMessage.getLongProperty("TESTLong"), 586 (long)4000); 587 assertEquals(retrievedMessage.getTargetNamedQueue(), 588 "QUEUEName"); 589 assertEquals(retrievedMessage.getReplyNamedQueue(), 590 "ReplyQUEUEName"); 591 assertEquals(((MessageImpl)retrievedMessage).getNextProcessDate(). 592 getTime() / 1000,nextProcessTime.getTime() / 1000); 593 assertEquals(retrievedMessage.getObjectProperty("TESTObject"), 594 "this is a new object value"); 595 assertEquals(retrievedMessage.getProcessedDate().getTime() / 1000, 596 nextProcessTime.getTime() / 1000); 597 assertEquals(retrievedMessage.getReply(),true); 598 assertEquals(retrievedMessage.getState(),Message.UNDELIVERED); 599 services = retrievedMessage.getServices(); 600 foundCount = 0; 601 for (int index = 0; index < 3; index++) { 602 if (services[index].equals("test1") || 603 services[index].equals("test2") || 604 services[index].equals("test3")) { 605 foundCount++; 606 } 607 } 608 assertEquals(foundCount,3); 609 assertEquals(retrievedMessage.getTarget(),"target"); 610 611 ut.begin(); 612 instance2.remove(); 613 ut.commit(); 614 615 Thread.sleep(30000); 616 617 ChangeLog.getInstance().terminate(); 618 619 } 620 621 622 } 623 | Popular Tags |