Fixed JdbcMessageStore to reuse CREATED_DATE while updating UPDATED_DATE

  Added support for configuring MessageGroup timeout based on the idle time of the MessageGroup

  Changed updatedTimestamp to lastModified

  Added an assertion to AbsractMessageGroup.expireMessageGroups to check if lastModified is 0

  Changed attribute name in MessageWrapper in Mongo Message Store
This commit is contained in:
Oleg Zhurakousky
2011-11-21 04:54:13 -05:00
committed by Mark Fisher
parent d67736021a
commit 50d8caa1c3
10 changed files with 237 additions and 68 deletions

View File

@@ -19,6 +19,7 @@ import java.util.Iterator;
import java.util.UUID;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.data.mongodb.MongoDbFactory;
import org.springframework.integration.Message;
@@ -74,6 +75,34 @@ public class MongoDbMessageGroupStoreTests extends MongoDbAvailableTests {
assertNull(retrievedMessage.getHeaders().get("message_group"));
}
@Test
@MongoDbAvailable
public void testMessageGroupUpdatedDateChangesWithEachAddedMessage() throws Exception{
MongoDbFactory mongoDbFactory = this.prepareMongoFactory();
MongoDbMessageStore store = new MongoDbMessageStore(mongoDbFactory);
MessageGroup messageGroup = store.getMessageGroup(1);
Message<?> message = new GenericMessage<String>("Hello");
messageGroup = store.addMessageToGroup(1, message);
assertEquals(1, messageGroup.size());
long createdTimestamp = messageGroup.getTimestamp();
long updatedTimestamp = messageGroup.getLastModified();
assertEquals(createdTimestamp, updatedTimestamp);
Thread.sleep(1000);
message = new GenericMessage<String>("Hello again");
messageGroup = store.addMessageToGroup(1, message);
createdTimestamp = messageGroup.getTimestamp();
updatedTimestamp = messageGroup.getLastModified();
assertTrue(updatedTimestamp > createdTimestamp);
assertEquals(2, messageGroup.size());
// make sure the store is properly rebuild from MongoDB
store = new MongoDbMessageStore(mongoDbFactory);
messageGroup = store.getMessageGroup(1);
assertEquals(2, messageGroup.size());
}
@Test
@MongoDbAvailable
public void testMessageGroupMarkingMessage() throws Exception{