From 8379ce63a5523560b76983c2595f9f78d2d11c41 Mon Sep 17 00:00:00 2001 From: musketyr Date: Tue, 8 Aug 2023 16:23:29 +0200 Subject: [PATCH] tags for created SQS --- .../amazon/awssdk/sqs/DefaultSimpleQueueService.java | 4 ++++ .../amazon/awssdk/sqs/QueueConfiguration.java | 12 ++++++++++++ .../src/test/resources/application-test.yml | 5 +++++ .../aws/sqs/DefaultSimpleQueueService.groovy | 5 +++++ .../micronaut/aws/sqs/QueueConfiguration.java | 12 ++++++++++++ .../src/test/resources/application-test.yml | 5 +++++ 6 files changed, 43 insertions(+) diff --git a/subprojects/micronaut-amazon-awssdk-sqs/src/main/java/com/agorapulse/micronaut/amazon/awssdk/sqs/DefaultSimpleQueueService.java b/subprojects/micronaut-amazon-awssdk-sqs/src/main/java/com/agorapulse/micronaut/amazon/awssdk/sqs/DefaultSimpleQueueService.java index 0771af431..99eb7cf89 100644 --- a/subprojects/micronaut-amazon-awssdk-sqs/src/main/java/com/agorapulse/micronaut/amazon/awssdk/sqs/DefaultSimpleQueueService.java +++ b/subprojects/micronaut-amazon-awssdk-sqs/src/main/java/com/agorapulse/micronaut/amazon/awssdk/sqs/DefaultSimpleQueueService.java @@ -111,6 +111,10 @@ public String createQueue(QueueConfiguration configuration) { createQueueRequest.attributes(attributes); } + if (configuration.getTags() != null && !configuration.getTags().isEmpty()) { + createQueueRequest.tags(configuration.getTags()); + } + String queueUrl = client.createQueue(createQueueRequest.build()).queueUrl(); LOGGER.debug("Queue created (queueUrl={})", queueUrl); diff --git a/subprojects/micronaut-amazon-awssdk-sqs/src/main/java/com/agorapulse/micronaut/amazon/awssdk/sqs/QueueConfiguration.java b/subprojects/micronaut-amazon-awssdk-sqs/src/main/java/com/agorapulse/micronaut/amazon/awssdk/sqs/QueueConfiguration.java index 5b647cd78..8e94c750c 100644 --- a/subprojects/micronaut-amazon-awssdk-sqs/src/main/java/com/agorapulse/micronaut/amazon/awssdk/sqs/QueueConfiguration.java +++ b/subprojects/micronaut-amazon-awssdk-sqs/src/main/java/com/agorapulse/micronaut/amazon/awssdk/sqs/QueueConfiguration.java @@ -19,6 +19,8 @@ import javax.validation.constraints.Max; import javax.validation.constraints.Min; +import java.util.LinkedHashMap; +import java.util.Map; public class QueueConfiguration implements Cloneable { public QueueConfiguration withQueue(String queue) { @@ -113,6 +115,14 @@ public void setVisibilityTimeout(Integer visibilityTimeout) { this.visibilityTimeout = visibilityTimeout; } + public Map getTags() { + return tags; + } + + public void setTags(Map tags) { + this.tags = tags; + } + private String queue = ""; private boolean fifo; @@ -131,4 +141,6 @@ public void setVisibilityTimeout(Integer visibilityTimeout) { @Min(0L) @Max(43200L) private Integer visibilityTimeout = 30; + + private Map tags = new LinkedHashMap<>(); } diff --git a/subprojects/micronaut-amazon-awssdk-sqs/src/test/resources/application-test.yml b/subprojects/micronaut-amazon-awssdk-sqs/src/test/resources/application-test.yml index dff4fb3ea..035f8bfc3 100644 --- a/subprojects/micronaut-amazon-awssdk-sqs/src/test/resources/application-test.yml +++ b/subprojects/micronaut-amazon-awssdk-sqs/src/test/resources/application-test.yml @@ -1,3 +1,8 @@ localstack: services: sqs shared: true + + aws: + sqs: + tags: + domain: Agorapulse diff --git a/subprojects/micronaut-aws-sdk-sqs/src/main/groovy/com/agorapulse/micronaut/aws/sqs/DefaultSimpleQueueService.groovy b/subprojects/micronaut-aws-sdk-sqs/src/main/groovy/com/agorapulse/micronaut/aws/sqs/DefaultSimpleQueueService.groovy index 3d918dc9a..c9ccc9aa8 100644 --- a/subprojects/micronaut-aws-sdk-sqs/src/main/groovy/com/agorapulse/micronaut/aws/sqs/DefaultSimpleQueueService.groovy +++ b/subprojects/micronaut-aws-sdk-sqs/src/main/groovy/com/agorapulse/micronaut/aws/sqs/DefaultSimpleQueueService.groovy @@ -94,6 +94,11 @@ class DefaultSimpleQueueService implements SimpleQueueService { if (configuration.fifo || configuration.queue.endsWith('.fifo')) { createQueueRequest.attributes['FifoQueue'] = 'true' } + + if (configuration.tags) { + createQueueRequest.tags = configuration.tags + } + String queueUrl = client.createQueue(createQueueRequest).queueUrl log.debug "Queue created (queueUrl=$queueUrl)" addQueue(queueUrl) diff --git a/subprojects/micronaut-aws-sdk-sqs/src/main/groovy/com/agorapulse/micronaut/aws/sqs/QueueConfiguration.java b/subprojects/micronaut-aws-sdk-sqs/src/main/groovy/com/agorapulse/micronaut/aws/sqs/QueueConfiguration.java index 2851bb9f6..656ea06f3 100644 --- a/subprojects/micronaut-aws-sdk-sqs/src/main/groovy/com/agorapulse/micronaut/aws/sqs/QueueConfiguration.java +++ b/subprojects/micronaut-aws-sdk-sqs/src/main/groovy/com/agorapulse/micronaut/aws/sqs/QueueConfiguration.java @@ -19,6 +19,8 @@ import javax.validation.constraints.Max; import javax.validation.constraints.Min; +import java.util.LinkedHashMap; +import java.util.Map; public class QueueConfiguration implements Cloneable { public QueueConfiguration withQueue(String queue) { @@ -113,6 +115,14 @@ public void setVisibilityTimeout(Integer visibilityTimeout) { this.visibilityTimeout = visibilityTimeout; } + public Map getTags() { + return tags; + } + + public void setTags(Map tags) { + this.tags = tags; + } + private String queue = ""; private boolean fifo; @@ -131,4 +141,6 @@ public void setVisibilityTimeout(Integer visibilityTimeout) { @Min(0L) @Max(43200L) private Integer visibilityTimeout = 30; + + private Map tags = new LinkedHashMap<>(); } diff --git a/subprojects/micronaut-aws-sdk-sqs/src/test/resources/application-test.yml b/subprojects/micronaut-aws-sdk-sqs/src/test/resources/application-test.yml index dff4fb3ea..cf2f87005 100644 --- a/subprojects/micronaut-aws-sdk-sqs/src/test/resources/application-test.yml +++ b/subprojects/micronaut-aws-sdk-sqs/src/test/resources/application-test.yml @@ -1,3 +1,8 @@ localstack: services: sqs shared: true + +aws: + sqs: + tags: + domain: Agorapulse