private void remove(Object key) { this.correlationLocks.remove(key); this.store.removeMessageGroup(key); }
protected void remove(MessageGroup group) { Object correlationKey = group.getGroupId(); this.messageStore.removeMessageGroup(correlationKey); }
@Override public void execute(MessageGroupStore messageGroupStore, MessageGroup group) { groups.add(group); messageGroupStore.removeMessageGroup(group.getGroupId()); }
@Test public void shouldExpireMessageGroup() throws Exception { TestMessageStore store = new TestMessageStore(); final List<String> list = new ArrayList<String>(); store.registerMessageGroupExpiryCallback((messageGroupStore, group) -> { list.add(group.getOne().getPayload().toString()); messageGroupStore.removeMessageGroup(group.getGroupId()); }); store.expireMessageGroups(-10000); assertEquals("[foo]", list.toString()); assertEquals(0, store.getMessageGroup("bar").size()); }
@Test public void shouldExpireMessageGroup() throws Exception { SimpleMessageStore store = new SimpleMessageStore(); final List<String> list = new ArrayList<String>(); store.registerMessageGroupExpiryCallback((messageGroupStore, group) -> { list.add(group.getOne().getPayload().toString()); messageGroupStore.removeMessageGroup(group.getGroupId()); }); Message<String> testMessage1 = MessageBuilder.withPayload("foo").build(); store.addMessageToGroup("bar", testMessage1); assertEquals(1, store.getMessageGroup("bar").size()); store.expireMessageGroups(-10000); assertEquals("[foo]", list.toString()); assertEquals(0, store.getMessageGroup("bar").size()); }
groupStore.removeMessageGroup("bar");
private void remove(Object key) { this.correlationLocks.remove(key); this.store.removeMessageGroup(key); }
@Test public void testExpireMessageGroupOnCreateOnly() throws Exception { final String groupId = "X"; Message<String> message = MessageBuilder.withPayload("foo").setCorrelationId(groupId).build(); messageStore.addMessagesToGroup(groupId, message); final CountDownLatch groupRemovalLatch = new CountDownLatch(1); messageStore.registerMessageGroupExpiryCallback((messageGroupStore, group) -> { messageGroupStore.removeMessageGroup(group.getGroupId()); groupRemovalLatch.countDown(); }); messageStore.expireMessageGroups(2000); MessageGroup group = messageStore.getMessageGroup(groupId); assertEquals(1, group.size()); messageStore.addMessagesToGroup(groupId, MessageBuilder.withPayload("bar").setCorrelationId(groupId).build()); JdbcTemplate template = new JdbcTemplate(this.dataSource); template.afterPropertiesSet(); template.update("UPDATE INT_MESSAGE_GROUP set CREATED_DATE=? where GROUP_KEY=? and REGION=?", (PreparedStatementSetter) ps -> { ps.setTimestamp(1, new Timestamp(System.currentTimeMillis() - 10000)); ps.setString(2, UUIDConverter.getUUID(groupId).toString()); ps.setString(3, "DEFAULT"); }); messageStore.expireMessageGroups(2000); group = messageStore.getMessageGroup(groupId); assertEquals(0, group.size()); assertTrue(groupRemovalLatch.await(10, TimeUnit.SECONDS)); }
messageStore.removeMessageGroup(delayerMessageGroupId);
@Test @MongoDbAvailable public void testRemoveMessageGroup() throws Exception { this.cleanupCollections(new SimpleMongoDbFactory(new MongoClient(), "test")); MessageGroupStore store = this.getMessageGroupStore(); MessageStore messageStore = this.getMessageStore(); MessageGroup messageGroup = store.getMessageGroup(1); Message<?> message = new GenericMessage<String>("Hello"); UUID id = message.getHeaders().getId(); messageGroup = store.addMessageToGroup(1, message); assertNotNull(messageGroup); assertEquals(1, messageGroup.size()); message = messageStore.getMessage(id); assertNotNull(message); store.removeMessageGroup(1); MessageGroup messageGroupA = store.getMessageGroup(1); assertEquals(0, messageGroupA.size()); assertFalse(messageGroupA.equals(messageGroup)); }
@Test @MongoDbAvailable public void testAddAndRemoveMessagesFromMessageGroup() throws Exception { MessageGroupStore messageStore = (MessageGroupStore) this.getMessageStore(); String groupId = "X"; messageStore.removeMessageGroup("X"); ((AbstractBatchingMessageGroupStore) messageStore).setRemoveBatchSize(10); List<Message<?>> messages = new ArrayList<Message<?>>(); for (int i = 0; i < 25; i++) { Message<String> message = MessageBuilder.withPayload("foo").setCorrelationId(groupId).build(); messageStore.addMessagesToGroup(groupId, message); messages.add(message); } MessageGroup group = messageStore.getMessageGroup(groupId); assertEquals(25, group.size()); messageStore.removeMessagesFromGroup(groupId, messages); group = messageStore.getMessageGroup(groupId); assertEquals(0, group.size()); }
messageStore.removeMessageGroup(delayerMessageGroupId); messageStore.removeMessageGroup(delayerMessageGroupId); context.close();
protected void remove(MessageGroup group) { Object correlationKey = group.getGroupId(); this.messageStore.removeMessageGroup(correlationKey); }
@Test @Transactional public void testExpireMessageGroupOnCreateOnly() throws Exception { String groupId = "X"; Message<String> message = MessageBuilder.withPayload("foo").setCorrelationId(groupId).build(); messageStore.addMessageToGroup(groupId, message); messageStore.registerMessageGroupExpiryCallback( (messageGroupStore, group) -> messageGroupStore.removeMessageGroup(group.getGroupId())); Thread.sleep(1000); messageStore.expireMessageGroups(2000); MessageGroup group = messageStore.getMessageGroup(groupId); assertEquals(1, group.size()); messageStore.addMessageToGroup(groupId, MessageBuilder.withPayload("bar").setCorrelationId(groupId).build()); Thread.sleep(2001); messageStore.expireMessageGroups(2000); group = messageStore.getMessageGroup(groupId); assertEquals(0, group.size()); }
@Test @Transactional public void testExpireMessageGroupOnIdleOnly() throws Exception { String groupId = "X"; Message<String> message = MessageBuilder.withPayload("foo").setCorrelationId(groupId).build(); messageStore.setTimeoutOnIdle(true); messageStore.addMessageToGroup(groupId, message); messageStore.registerMessageGroupExpiryCallback( (messageGroupStore, group) -> messageGroupStore.removeMessageGroup(group.getGroupId())); Thread.sleep(1000); messageStore.expireMessageGroups(2000); MessageGroup group = messageStore.getMessageGroup(groupId); assertEquals(1, group.size()); Thread.sleep(2000); messageStore.addMessageToGroup(groupId, MessageBuilder.withPayload("bar").setCorrelationId(groupId).build()); group = messageStore.getMessageGroup(groupId); assertEquals(2, group.size()); Thread.sleep(2000); messageStore.expireMessageGroups(2000); group = messageStore.getMessageGroup(groupId); assertEquals(0, group.size()); }
@Test public void testExpireMessageGroupOnIdleOnly() throws Exception { String groupId = "X"; Message<String> message = MessageBuilder.withPayload("foo").setCorrelationId(groupId).build(); messageStore.setTimeoutOnIdle(true); messageStore.addMessagesToGroup(groupId, message); messageStore.registerMessageGroupExpiryCallback((messageGroupStore, group) -> messageGroupStore.removeMessageGroup(group.getGroupId())); JdbcTemplate template = new JdbcTemplate(this.dataSource); template.afterPropertiesSet(); updateMessageGroup(template, groupId, 1000); messageStore.expireMessageGroups(2000); MessageGroup group = messageStore.getMessageGroup(groupId); assertEquals(1, group.size()); updateMessageGroup(template, groupId, 2000); messageStore.addMessagesToGroup(groupId, MessageBuilder.withPayload("bar").setCorrelationId(groupId).build()); group = messageStore.getMessageGroup(groupId); assertEquals(2, group.size()); updateMessageGroup(template, groupId, 2000); messageStore.expireMessageGroups(2000); group = messageStore.getMessageGroup(groupId); assertEquals(0, group.size()); }