This is an automated email from the ASF dual-hosted git repository. oalsafi pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push: new 1176359 Small QueueOperationResponse refactor in camel-azure-storage-queue component 1176359 is described below commit 117635989a8e22f41f1acb31bcab1e96830367a2 Author: Omar Al-Safi <omars...@gmail.com> AuthorDate: Thu Aug 12 11:56:39 2021 +0200 Small QueueOperationResponse refactor in camel-azure-storage-queue component --- .../queue/operations/QueueOperationResponse.java | 58 +++++++++++++++++++--- .../storage/queue/operations/QueueOperations.java | 30 +++-------- .../queue/operations/QueueServiceOperations.java | 4 +- 3 files changed, 59 insertions(+), 33 deletions(-) diff --git a/components/camel-azure/camel-azure-storage-queue/src/main/java/org/apache/camel/component/azure/storage/queue/operations/QueueOperationResponse.java b/components/camel-azure/camel-azure-storage-queue/src/main/java/org/apache/camel/component/azure/storage/queue/operations/QueueOperationResponse.java index e3c4010..fe6ad14 100644 --- a/components/camel-azure/camel-azure-storage-queue/src/main/java/org/apache/camel/component/azure/storage/queue/operations/QueueOperationResponse.java +++ b/components/camel-azure/camel-azure-storage-queue/src/main/java/org/apache/camel/component/azure/storage/queue/operations/QueueOperationResponse.java @@ -19,28 +19,72 @@ package org.apache.camel.component.azure.storage.queue.operations; import java.util.HashMap; import java.util.Map; -public class QueueOperationResponse { +import com.azure.core.http.rest.Response; +import com.azure.storage.queue.models.SendMessageResult; +import org.apache.camel.component.azure.storage.queue.QueueExchangeHeaders; + +public final class QueueOperationResponse { private Object body; private Map<String, Object> headers = new HashMap<>(); - public QueueOperationResponse() { - } - public QueueOperationResponse(final Object body, final Map<String, Object> headers) { this.body = body; this.headers = headers; } - public QueueOperationResponse(final Object body) { + private QueueOperationResponse(final Object body) { setBody(body); } + public static QueueOperationResponse create(final Object body) { + return new QueueOperationResponse(body); + } + + public static QueueOperationResponse create(final Object body, final Map<String, Object> headers) { + return new QueueOperationResponse(body, headers); + } + + @SuppressWarnings("rawtypes") + public static QueueOperationResponse create(final Response response) { + return buildResponse(response, false); + } + + public static QueueOperationResponse createWithEmptyBody(final Map<String, Object> headers) { + return new QueueOperationResponse(true, headers); + } + + public static QueueOperationResponse createWithEmptyBody() { + return new QueueOperationResponse(true); + } + + @SuppressWarnings("rawtypes") + public static QueueOperationResponse createWithEmptyBody(final Response response) { + return buildResponse(response, true); + } + + @SuppressWarnings("rawtypes") + private static QueueOperationResponse buildResponse(final Response response, final boolean emptyBody) { + final Object body = emptyBody ? true : response.getValue(); + QueueExchangeHeaders exchangeHeaders; + + if (response.getValue() instanceof SendMessageResult) { + exchangeHeaders = QueueExchangeHeaders + .createQueueExchangeHeadersFromSendMessageResult((SendMessageResult) response.getValue()); + } else { + exchangeHeaders = new QueueExchangeHeaders(); + } + + exchangeHeaders.httpHeaders(response.getHeaders()); + + return new QueueOperationResponse(body, exchangeHeaders.toMap()); + } + public Object getBody() { return body; } - public void setBody(Object body) { + private void setBody(Object body) { this.body = body; } @@ -48,7 +92,7 @@ public class QueueOperationResponse { return headers; } - public void setHeaders(final Map<String, Object> headers) { + private void setHeaders(final Map<String, Object> headers) { this.headers = headers; } } diff --git a/components/camel-azure/camel-azure-storage-queue/src/main/java/org/apache/camel/component/azure/storage/queue/operations/QueueOperations.java b/components/camel-azure/camel-azure-storage-queue/src/main/java/org/apache/camel/component/azure/storage/queue/operations/QueueOperations.java index 999e78b..a7fbe4d 100644 --- a/components/camel-azure/camel-azure-storage-queue/src/main/java/org/apache/camel/component/azure/storage/queue/operations/QueueOperations.java +++ b/components/camel-azure/camel-azure-storage-queue/src/main/java/org/apache/camel/component/azure/storage/queue/operations/QueueOperations.java @@ -20,7 +20,6 @@ import java.time.Duration; import java.util.Map; import com.azure.core.http.rest.Response; -import com.azure.storage.queue.models.SendMessageResult; import com.azure.storage.queue.models.UpdateMessageResult; import org.apache.camel.Exchange; import org.apache.camel.component.azure.storage.queue.QueueConfiguration; @@ -119,7 +118,7 @@ public class QueueOperations { public QueueOperationResponse receiveMessages(final Exchange exchange) { if (exchange == null) { - return new QueueOperationResponse( + return QueueOperationResponse.create( client.receiveMessages(configurationOptionsProxy.getMaxMessages(null), configurationOptionsProxy.getVisibilityTimeout(null), configurationOptionsProxy.getTimeout(null))); @@ -129,12 +128,12 @@ public class QueueOperations { final Duration visibilityTimeout = configurationOptionsProxy.getVisibilityTimeout(exchange); final Duration timeout = configurationOptionsProxy.getTimeout(exchange); - return new QueueOperationResponse(client.receiveMessages(maxMessages, visibilityTimeout, timeout)); + return QueueOperationResponse.create(client.receiveMessages(maxMessages, visibilityTimeout, timeout)); } public QueueOperationResponse peekMessages(final Exchange exchange) { if (exchange == null) { - return new QueueOperationResponse( + return QueueOperationResponse.create( client.peekMessages(configurationOptionsProxy.getMaxMessages(null), configurationOptionsProxy.getTimeout(null))); } @@ -142,7 +141,7 @@ public class QueueOperations { final Integer maxMessages = configurationOptionsProxy.getMaxMessages(exchange); final Duration timeout = configurationOptionsProxy.getTimeout(exchange); - return new QueueOperationResponse(client.peekMessages(maxMessages, timeout)); + return QueueOperationResponse.create(client.peekMessages(maxMessages, timeout)); } public QueueOperationResponse updateMessage(final Exchange exchange) { @@ -182,28 +181,11 @@ public class QueueOperations { .popReceipt(response.getValue().getPopReceipt()) .httpHeaders(response.getHeaders()); - return new QueueOperationResponse(true, headers.toMap()); + return QueueOperationResponse.createWithEmptyBody(headers.toMap()); } @SuppressWarnings("rawtypes") private QueueOperationResponse buildResponseWithEmptyBody(final Response response) { - return buildResponse(response, true); - } - - @SuppressWarnings("rawtypes") - private QueueOperationResponse buildResponse(final Response response, final boolean emptyBody) { - final Object body = emptyBody ? true : response.getValue(); - QueueExchangeHeaders exchangeHeaders; - - if (response.getValue() instanceof SendMessageResult) { - exchangeHeaders = QueueExchangeHeaders - .createQueueExchangeHeadersFromSendMessageResult((SendMessageResult) response.getValue()); - } else { - exchangeHeaders = new QueueExchangeHeaders(); - } - - exchangeHeaders.httpHeaders(response.getHeaders()); - - return new QueueOperationResponse(body, exchangeHeaders.toMap()); + return QueueOperationResponse.createWithEmptyBody(response); } } diff --git a/components/camel-azure/camel-azure-storage-queue/src/main/java/org/apache/camel/component/azure/storage/queue/operations/QueueServiceOperations.java b/components/camel-azure/camel-azure-storage-queue/src/main/java/org/apache/camel/component/azure/storage/queue/operations/QueueServiceOperations.java index 0db342a..8ed22d6 100644 --- a/components/camel-azure/camel-azure-storage-queue/src/main/java/org/apache/camel/component/azure/storage/queue/operations/QueueServiceOperations.java +++ b/components/camel-azure/camel-azure-storage-queue/src/main/java/org/apache/camel/component/azure/storage/queue/operations/QueueServiceOperations.java @@ -42,11 +42,11 @@ public class QueueServiceOperations { public QueueOperationResponse listQueues(final Exchange exchange) { if (exchange == null) { - return new QueueOperationResponse(client.listQueues(null, null)); + return QueueOperationResponse.create(client.listQueues(null, null)); } final QueuesSegmentOptions segmentOptions = configurationOptionsProxy.getQueuesSegmentOptions(exchange); final Duration timeout = configurationOptionsProxy.getTimeout(exchange); - return new QueueOperationResponse(client.listQueues(segmentOptions, timeout)); + return QueueOperationResponse.create(client.listQueues(segmentOptions, timeout)); } }