1 package com.atlassian.messagequeue.internal.core.messagevalidators;
2
3 import com.atlassian.messagequeue.MessageValidatorKey;
4 import com.atlassian.messagequeue.registry.MessageValidator;
5 import com.atlassian.messagequeue.TenantDataIdSupplier;
6 import com.atlassian.messagequeue.internal.core.NestedMessageConstants;
7 import com.atlassian.messagequeue.registry.MessageContext;
8
9 import java.util.Map;
10
11
12
13
14 public class MessageTenantDataIdValidator implements MessageValidator {
15 private TenantDataIdSupplier tenantDataIdSupplier;
16 public static final MessageValidatorKey KEY = MessageValidatorKey.of(MessageTenantDataIdValidator.class.toString());
17
18 public MessageTenantDataIdValidator(TenantDataIdSupplier tenantDataIdSupplier) {
19 this.tenantDataIdSupplier = tenantDataIdSupplier;
20 }
21
22 @Override
23 public boolean isValid(MessageContext messageContext, Map<String, String> messageAttributes) {
24 final String tenantDataId = messageAttributes.get(NestedMessageConstants.TENANT_DATA_ID_ATTRIBUTE_NAME);
25 return tenantDataId == null || tenantDataIdSupplier.get().equals(tenantDataId);
26 }
27
28 @Override
29 public void handleInvalidMessage(MessageContext messageContext, Map<String, String> messageAttributes) {
30 messageContext.acknowledge();
31 }
32 }