diff --git a/components/camel-aws/camel-aws2-sqs/src/main/java/org/apache/camel/component/aws2/sqs/Sqs2Producer.java b/components/camel-aws/camel-aws2-sqs/src/main/java/org/apache/camel/component/aws2/sqs/Sqs2Producer.java index b894703e2ed29..f611b4775aa51 100644 --- a/components/camel-aws/camel-aws2-sqs/src/main/java/org/apache/camel/component/aws2/sqs/Sqs2Producer.java +++ b/components/camel-aws/camel-aws2-sqs/src/main/java/org/apache/camel/component/aws2/sqs/Sqs2Producer.java @@ -181,9 +181,7 @@ private void listQueues(SqsClient amazonSQS, Exchange exchange) { private void purgeQueue(SqsClient amazonSQS, Exchange exchange) { PurgeQueueRequest.Builder request = PurgeQueueRequest.builder(); - if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(Sqs2Constants.SQS_QUEUE_PREFIX))) { - request.queueUrl(getQueueUrl()); - } + request.queueUrl(getQueueUrl()); PurgeQueueResponse result = amazonSQS.purgeQueue(request.build()); Message message = getMessageForResponse(exchange); message.setBody(result); @@ -191,9 +189,7 @@ private void purgeQueue(SqsClient amazonSQS, Exchange exchange) { private void deleteQueue(SqsClient amazonSQS, Exchange exchange) { DeleteQueueRequest.Builder request = DeleteQueueRequest.builder(); - if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(Sqs2Constants.SQS_QUEUE_PREFIX))) { - request.queueUrl(getQueueUrl()); - } + request.queueUrl(getQueueUrl()); DeleteQueueResponse result = amazonSQS.deleteQueue(request.build()); Message message = getMessageForResponse(exchange); message.setBody(result); diff --git a/components/camel-aws/camel-aws2-sqs/src/test/java/org/apache/camel/component/aws2/sqs/AmazonSQSClientMock.java b/components/camel-aws/camel-aws2-sqs/src/test/java/org/apache/camel/component/aws2/sqs/AmazonSQSClientMock.java index ec48869d1f56f..c50ea3b10a10f 100644 --- a/components/camel-aws/camel-aws2-sqs/src/test/java/org/apache/camel/component/aws2/sqs/AmazonSQSClientMock.java +++ b/components/camel-aws/camel-aws2-sqs/src/test/java/org/apache/camel/component/aws2/sqs/AmazonSQSClientMock.java @@ -67,10 +67,15 @@ public class AmazonSQSClientMock implements SqsClient { private Map queues = new LinkedHashMap<>(); private Map> inFlight = new LinkedHashMap<>(); private ScheduledExecutorService scheduler; + private String queueName; public AmazonSQSClientMock() { } + public AmazonSQSClientMock(String queueName) { + this.queueName = queueName; + } + @Override public ListQueuesResponse listQueues() { return ListQueuesResponse.builder().build(); @@ -80,8 +85,12 @@ public ListQueuesResponse listQueues() { public ListQueuesResponse listQueues(ListQueuesRequest request) { ListQueuesResponse.Builder result = ListQueuesResponse.builder(); List queues = new ArrayList<>(); - queues.add("queue1"); - queues.add("queue2"); + if (queueName != null) { + queues.add("/" + queueName); + } else { + queues.add("queue1"); + queues.add("queue2"); + } result.queueUrls(queues); return result.build(); } @@ -187,12 +196,18 @@ public DeleteMessageResponse deleteMessage(DeleteMessageRequest deleteMessageReq @Override public PurgeQueueResponse purgeQueue(PurgeQueueRequest purgeQueueRequest) { + if (purgeQueueRequest.queueUrl() == null) { + throw SqsException.builder().message("Queue name must be specified.").build(); + } return PurgeQueueResponse.builder().build(); } @Override public DeleteQueueResponse deleteQueue(DeleteQueueRequest deleteQueueRequest) throws AwsServiceException, SdkClientException, SqsException { + if (deleteQueueRequest.queueUrl() == null) { + throw SqsException.builder().message("Queue name must be specified.").build(); + } return DeleteQueueResponse.builder().build(); } diff --git a/components/camel-aws/camel-aws2-sqs/src/test/java/org/apache/camel/component/aws2/sqs/SqsProducerDeleteQueueTest.java b/components/camel-aws/camel-aws2-sqs/src/test/java/org/apache/camel/component/aws2/sqs/SqsProducerDeleteQueueTest.java index b9620910b5623..6baf3a68b8563 100644 --- a/components/camel-aws/camel-aws2-sqs/src/test/java/org/apache/camel/component/aws2/sqs/SqsProducerDeleteQueueTest.java +++ b/components/camel-aws/camel-aws2-sqs/src/test/java/org/apache/camel/component/aws2/sqs/SqsProducerDeleteQueueTest.java @@ -31,7 +31,7 @@ public class SqsProducerDeleteQueueTest extends CamelTestSupport { @BindToRegistry("client") - AmazonSQSClientMock mock = new AmazonSQSClientMock(); + AmazonSQSClientMock mock = new AmazonSQSClientMock("camel-1"); @EndpointInject("direct:start") private ProducerTemplate template; @@ -46,8 +46,7 @@ public void deleteMessage() throws Exception { template.send("direct:start", new Processor() { @Override - public void process(Exchange exchange) throws Exception { - exchange.getIn().setHeader(Sqs2Constants.SQS_QUEUE_PREFIX, "camel-1"); + public void process(Exchange exchange) { } }); assertMockEndpointsSatisfied(); diff --git a/components/camel-aws/camel-aws2-sqs/src/test/java/org/apache/camel/component/aws2/sqs/SqsProducerPurgeTest.java b/components/camel-aws/camel-aws2-sqs/src/test/java/org/apache/camel/component/aws2/sqs/SqsProducerPurgeTest.java index 76043117562f2..c73e235cb9ca8 100644 --- a/components/camel-aws/camel-aws2-sqs/src/test/java/org/apache/camel/component/aws2/sqs/SqsProducerPurgeTest.java +++ b/components/camel-aws/camel-aws2-sqs/src/test/java/org/apache/camel/component/aws2/sqs/SqsProducerPurgeTest.java @@ -32,7 +32,7 @@ public class SqsProducerPurgeTest extends CamelTestSupport { @BindToRegistry("client") - AmazonSQSClientMock mock = new AmazonSQSClientMock(); + AmazonSQSClientMock mock = new AmazonSQSClientMock("camel-1"); @EndpointInject("direct:start") private ProducerTemplate template;