private SimpleMessageGroup normalizeSimpleMessageGroup(SimpleMessageGroup messageGroup) { SimpleMessageGroup normalizedGroup = new SimpleMessageGroup(messageGroup.getGroupId()); for (Message<?> message : messageGroup.getMessages()) { Message<?> normailizedMessage = this.normalizeMessage(message); normalizedGroup.add(normailizedMessage); } return normalizedGroup; }
/** Remove a Message from the group with the provided group ID. */ public MessageGroup removeMessageFromGroup(Object groupId, Message<?> messageToRemove) { Assert.notNull(groupId, "'groupId' must not be null"); Assert.notNull(messageToRemove, "'messageToRemove' must not be null"); // build raw MG SimpleMessageGroup rawGroup = this.buildMessageGroup(groupId, true); // create a clean instance of SimpleMessageGroup messageGroup = this.normalizeSimpleMessageGroup(rawGroup); for (Message<?> message : rawGroup.getMessages()) { if (message.getHeaders().getId().equals(messageToRemove.getHeaders().getId())) { rawGroup.remove(message); } } this.removeMessage(messageToRemove.getHeaders().getId()); this.doStore(MESSAGE_GROUP_KEY_PREFIX + groupId, new MessageGroupMetadata(rawGroup)); messageGroup = this.getSimpleMessageGroup(this.getMessageGroup(groupId)); return messageGroup; }