1 package com.atlassian.messagequeue.internal.core.messagevalidators;
2
3 import com.atlassian.messagequeue.registry.MessageValidator;
4 import com.atlassian.messagequeue.internal.core.NestedMessageConstants;
5 import com.atlassian.messagequeue.registry.MessageContext;
6 import org.slf4j.Logger;
7 import org.slf4j.LoggerFactory;
8
9 import java.util.Map;
10
11
12
13
14 public class MessageRunnerKeyValidator implements MessageValidator {
15 private static final Logger log = LoggerFactory.getLogger(MessageRunnerKeyValidator.class);
16
17 @Override
18 public boolean isValid(MessageContext messageContext, Map<String, String> messageAttributes) {
19 return messageAttributes.get(NestedMessageConstants.MESSAGE_RUNNER_KEY_ATTRIBUTE_NAME) != null;
20 }
21
22 @Override
23 public void handleInvalidMessage(MessageContext messageContext, Map<String, String> messageAttributes) {
24 final String messageId = messageContext.getMessageId().orElse("Not present");
25 log.error("Message received that does not contain required '{}' attribute. Message will be acknowledged (messageID: {})", NestedMessageConstants.MESSAGE_RUNNER_KEY_ATTRIBUTE_NAME, messageId);
26 messageContext.acknowledge();
27 }
28 }