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 9484f37  Small BlobOperationResponse refactor in 
camel-azure-storage-blob component
9484f37 is described below

commit 9484f3790484333dec21e2714ead1dbf89bf0350
Author: Omar Al-Safi <omars...@gmail.com>
AuthorDate: Thu Aug 12 10:55:03 2021 +0200

    Small BlobOperationResponse refactor in camel-azure-storage-blob component
---
 .../blob/operations/BlobChangeFeedOperations.java  |  7 +--
 .../blob/operations/BlobContainerOperations.java   |  8 +--
 .../blob/operations/BlobOperationResponse.java     | 69 +++++++++++++++++++---
 .../storage/blob/operations/BlobOperations.java    | 60 ++++++-------------
 .../blob/operations/BlobServiceOperations.java     |  2 +-
 5 files changed, 86 insertions(+), 60 deletions(-)

diff --git 
a/components/camel-azure/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/operations/BlobChangeFeedOperations.java
 
b/components/camel-azure/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/operations/BlobChangeFeedOperations.java
index 5e907ff..5659142 100644
--- 
a/components/camel-azure/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/operations/BlobChangeFeedOperations.java
+++ 
b/components/camel-azure/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/operations/BlobChangeFeedOperations.java
@@ -43,15 +43,12 @@ public class BlobChangeFeedOperations {
         final OffsetDateTime startTime = 
configurationOptionsProxy.getChangeFeedStartTime(exchange);
         final OffsetDateTime endTime = 
configurationOptionsProxy.getChangeFeedEndTime(exchange);
         final Context context = 
configurationOptionsProxy.getChangeFeedContext(exchange);
-        final BlobOperationResponse response = new BlobOperationResponse();
 
         if (ObjectHelper.isEmpty(startTime) || ObjectHelper.isEmpty(endTime)) {
-            response.setBody(getEvents());
+            return BlobOperationResponse.create(getEvents());
         } else {
-            response.setBody(getEvents(startTime, endTime, context));
+            return BlobOperationResponse.create(getEvents(startTime, endTime, 
context));
         }
-
-        return response;
     }
 
     private List<BlobChangefeedEvent> getEvents() {
diff --git 
a/components/camel-azure/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/operations/BlobContainerOperations.java
 
b/components/camel-azure/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/operations/BlobContainerOperations.java
index 23f4a98..463ebff 100644
--- 
a/components/camel-azure/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/operations/BlobContainerOperations.java
+++ 
b/components/camel-azure/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/operations/BlobContainerOperations.java
@@ -53,12 +53,12 @@ public class BlobContainerOperations {
         final String regex = configurationProxy.getRegex(exchange);
         List<BlobItem> blobs = client.listBlobs(listBlobOptions, timeout);
         if (ObjectHelper.isEmpty(regex)) {
-            return new BlobOperationResponse(blobs);
+            return BlobOperationResponse.create(blobs);
         }
         List<BlobItem> filteredBlobs = blobs.stream()
                 .filter(x -> x.getName().matches(regex))
                 .collect(Collectors.toCollection(LinkedList<BlobItem>::new));
-        return new BlobOperationResponse(filteredBlobs);
+        return BlobOperationResponse.create(filteredBlobs);
     }
 
     public BlobOperationResponse createContainer(final Exchange exchange) {
@@ -68,7 +68,7 @@ public class BlobContainerOperations {
 
         final BlobExchangeHeaders blobExchangeHeaders
                 = new 
BlobExchangeHeaders().httpHeaders(client.createContainer(metadata, 
publicAccessType, timeout));
-        return new BlobOperationResponse(true, blobExchangeHeaders.toMap());
+        return 
BlobOperationResponse.createWithEmptyBody(blobExchangeHeaders.toMap());
     }
 
     public BlobOperationResponse deleteContainer(final Exchange exchange) {
@@ -76,6 +76,6 @@ public class BlobContainerOperations {
         final Duration timeout = configurationProxy.getTimeout(exchange);
         final BlobExchangeHeaders blobExchangeHeaders
                 = new 
BlobExchangeHeaders().httpHeaders(client.deleteContainer(blobRequestConditions, 
timeout));
-        return new BlobOperationResponse(true, blobExchangeHeaders.toMap());
+        return 
BlobOperationResponse.createWithEmptyBody(blobExchangeHeaders.toMap());
     }
 }
diff --git 
a/components/camel-azure/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/operations/BlobOperationResponse.java
 
b/components/camel-azure/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/operations/BlobOperationResponse.java
index cec4675..bca02c9 100644
--- 
a/components/camel-azure/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/operations/BlobOperationResponse.java
+++ 
b/components/camel-azure/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/operations/BlobOperationResponse.java
@@ -19,28 +19,81 @@ package 
org.apache.camel.component.azure.storage.blob.operations;
 import java.util.HashMap;
 import java.util.Map;
 
-public class BlobOperationResponse {
+import com.azure.core.http.rest.Response;
+import com.azure.storage.blob.models.AppendBlobItem;
+import com.azure.storage.blob.models.BlobProperties;
+import com.azure.storage.blob.models.BlockBlobItem;
+import com.azure.storage.blob.models.PageBlobItem;
+import org.apache.camel.component.azure.storage.blob.BlobExchangeHeaders;
+
+public final class BlobOperationResponse {
 
     private Object body;
     private Map<String, Object> headers = new HashMap<>();
 
-    public BlobOperationResponse() {
-    }
-
-    public BlobOperationResponse(final Object body, final Map<String, Object> 
headers) {
+    private BlobOperationResponse(final Object body, final Map<String, Object> 
headers) {
         this.body = body;
         this.headers = headers;
     }
 
-    public BlobOperationResponse(final Object body) {
+    private BlobOperationResponse(final Object body) {
         setBody(body);
     }
 
+    public static BlobOperationResponse create(final Object body) {
+        return new BlobOperationResponse(body);
+    }
+
+    public static BlobOperationResponse create(final Object body, final 
Map<String, Object> headers) {
+        return new BlobOperationResponse(body, headers);
+    }
+
+    public static BlobOperationResponse createWithEmptyBody(final Map<String, 
Object> headers) {
+        return new BlobOperationResponse(true, headers);
+    }
+
+    public static BlobOperationResponse createWithEmptyBody() {
+        return new BlobOperationResponse(true);
+    }
+
+    public static BlobOperationResponse create(final Response response) {
+        return buildResponse(response, false);
+    }
+
+    public static BlobOperationResponse createWithEmptyBody(final Response 
response) {
+        return buildResponse(response, true);
+    }
+
+    @SuppressWarnings("rawtypes")
+    private static BlobOperationResponse buildResponse(final Response 
response, final boolean emptyBody) {
+        final Object body = emptyBody ? true : response.getValue();
+        BlobExchangeHeaders exchangeHeaders;
+
+        if (response.getValue() instanceof BlockBlobItem) {
+            exchangeHeaders
+                    = 
BlobExchangeHeaders.createBlobExchangeHeadersFromBlockBlobItem((BlockBlobItem) 
response.getValue());
+        } else if (response.getValue() instanceof AppendBlobItem) {
+            exchangeHeaders
+                    = 
BlobExchangeHeaders.createBlobExchangeHeadersFromAppendBlobItem((AppendBlobItem)
 response.getValue());
+        } else if (response.getValue() instanceof PageBlobItem) {
+            exchangeHeaders = 
BlobExchangeHeaders.createBlobExchangeHeadersFromPageBlobItem((PageBlobItem) 
response.getValue());
+        } else if (response.getValue() instanceof BlobProperties) {
+            exchangeHeaders
+                    = 
BlobExchangeHeaders.createBlobExchangeHeadersFromBlobProperties((BlobProperties)
 response.getValue());
+        } else {
+            exchangeHeaders = BlobExchangeHeaders.create();
+        }
+
+        exchangeHeaders.httpHeaders(response.getHeaders());
+
+        return new BlobOperationResponse(body, exchangeHeaders.toMap());
+    }
+
     public Object getBody() {
         return body;
     }
 
-    public void setBody(Object body) {
+    private void setBody(Object body) {
         this.body = body;
     }
 
@@ -48,7 +101,7 @@ public class BlobOperationResponse {
         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-blob/src/main/java/org/apache/camel/component/azure/storage/blob/operations/BlobOperations.java
 
b/components/camel-azure/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/operations/BlobOperations.java
index 6080d8e..7d63d72 100644
--- 
a/components/camel-azure/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/operations/BlobOperations.java
+++ 
b/components/camel-azure/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/operations/BlobOperations.java
@@ -97,7 +97,7 @@ public class BlobOperations {
             final BlobExchangeHeaders blobExchangeHeaders = BlobExchangeHeaders
                     
.createBlobExchangeHeadersFromBlobProperties((BlobProperties) 
blobInputStream.get("properties"));
 
-            return new 
BlobOperationResponse(blobInputStream.get("inputStream"), 
blobExchangeHeaders.toMap());
+            return 
BlobOperationResponse.create(blobInputStream.get("inputStream"), 
blobExchangeHeaders.toMap());
         }
         // we have an outputStream set, so we use it
         final DownloadRetryOptions downloadRetryOptions = 
getDownloadRetryOptions(configurationProxy);
@@ -111,7 +111,7 @@ public class BlobOperations {
                     = 
BlobExchangeHeaders.createBlobExchangeHeadersFromBlobDownloadHeaders(response.getDeserializedHeaders())
                             .httpHeaders(response.getHeaders());
 
-            return new BlobOperationResponse(outputStream, 
blobExchangeHeaders.toMap());
+            return BlobOperationResponse.create(outputStream, 
blobExchangeHeaders.toMap());
         } finally {
             if 
(configurationProxy.getConfiguration().isCloseStreamAfterRead()) {
                 outputStream.close();
@@ -142,15 +142,16 @@ public class BlobOperations {
                         .httpHeaders(response.getHeaders())
                         .fileName(fileToDownload.toString());
 
-        return new BlobOperationResponse(fileToDownload, 
exchangeHeaders.toMap());
+        return BlobOperationResponse.create(fileToDownload, 
exchangeHeaders.toMap());
     }
 
     public BlobOperationResponse deleteBlob(final Exchange exchange) {
         final BlobCommonRequestOptions commonRequestOptions = 
getCommonRequestOptions(exchange);
         final DeleteSnapshotsOptionType deleteSnapshotsOptionType = 
configurationProxy.getDeleteSnapshotsOptionType(exchange);
 
-        return buildResponse(client.delete(deleteSnapshotsOptionType, 
commonRequestOptions.getBlobRequestConditions(),
-                commonRequestOptions.getTimeout()), true);
+        return BlobOperationResponse
+                .createWithEmptyBody(client.delete(deleteSnapshotsOptionType, 
commonRequestOptions.getBlobRequestConditions(),
+                        commonRequestOptions.getTimeout()));
     }
 
     public BlobOperationResponse downloadLink(final Exchange exchange) {
@@ -172,7 +173,7 @@ public class BlobOperations {
 
         final BlobExchangeHeaders headers = 
BlobExchangeHeaders.create().downloadLink(url);
 
-        return new BlobOperationResponse(true, headers.toMap());
+        return BlobOperationResponse.createWithEmptyBody(headers.toMap());
     }
 
     public BlobOperationResponse uploadBlockBlob(final Exchange exchange) 
throws IOException {
@@ -190,7 +191,7 @@ public class BlobOperations {
                     commonRequestOptions.getContentMD5(), 
commonRequestOptions.getBlobRequestConditions(),
                     commonRequestOptions.getTimeout());
 
-            return buildResponse(response, true);
+            return BlobOperationResponse.createWithEmptyBody(response);
         } finally {
             closeInputStreamIfNeeded(blobStreamAndLength.getInputStream());
         }
@@ -236,7 +237,7 @@ public class BlobOperations {
             return commitBlobBlockList(exchange);
         }
 
-        return new BlobOperationResponse(true);
+        return BlobOperationResponse.createWithEmptyBody();
     }
 
     @SuppressWarnings("unchecked")
@@ -268,7 +269,7 @@ public class BlobOperations {
                 commonRequestOptions.getAccessTier(), 
commonRequestOptions.getBlobRequestConditions(),
                 commonRequestOptions.getTimeout());
 
-        return buildResponse(response, true);
+        return BlobOperationResponse.createWithEmptyBody(response);
     }
 
     public BlobOperationResponse getBlobBlockList(final Exchange exchange) {
@@ -280,7 +281,7 @@ public class BlobOperations {
         final Response<BlockList> response
                 = client.listBlobBlocks(blockListType, 
commonRequestOptions.leaseId(), commonRequestOptions.getTimeout());
 
-        return buildResponse(response, false);
+        return BlobOperationResponse.create(response);
     }
 
     public BlobOperationResponse createAppendBlob(final Exchange exchange) {
@@ -292,7 +293,7 @@ public class BlobOperations {
                 = 
client.createAppendBlob(commonRequestOptions.getBlobHttpHeaders(), 
commonRequestOptions.getMetadata(),
                         commonRequestOptions.getBlobRequestConditions(), 
commonRequestOptions.getTimeout());
 
-        return buildResponse(response, true);
+        return BlobOperationResponse.createWithEmptyBody(response);
     }
 
     public BlobOperationResponse commitAppendBlob(final Exchange exchange) 
throws IOException {
@@ -314,7 +315,7 @@ public class BlobOperations {
                             commonRequestOptions.getContentMD5(), 
commonRequestOptions.getBlobRequestConditions(),
                             commonRequestOptions.getTimeout());
 
-            return buildResponse(response, true);
+            return BlobOperationResponse.createWithEmptyBody(response);
         } finally {
             closeInputStreamIfNeeded(streamAndLength.getInputStream());
         }
@@ -331,7 +332,7 @@ public class BlobOperations {
                 = client.createPageBlob(pageSize, sequenceNumber, 
requestOptions.getBlobHttpHeaders(),
                         requestOptions.getMetadata(), 
requestOptions.getBlobRequestConditions(), requestOptions.getTimeout());
 
-        return buildResponse(response, true);
+        return BlobOperationResponse.createWithEmptyBody(response);
     }
 
     public BlobOperationResponse uploadPageBlob(final Exchange exchange) 
throws IOException {
@@ -357,7 +358,7 @@ public class BlobOperations {
                     = client.uploadPageBlob(pageRange, 
streamAndLength.getInputStream(), requestOptions.getContentMD5(),
                             requestOptions.getBlobRequestConditions(), 
requestOptions.getTimeout());
 
-            return buildResponse(response, true);
+            return BlobOperationResponse.createWithEmptyBody(response);
         } finally {
             closeInputStreamIfNeeded(streamAndLength.getInputStream());
         }
@@ -372,7 +373,7 @@ public class BlobOperations {
         final Response<PageBlobItem> response
                 = client.resizePageBlob(pageSize, 
requestOptions.getBlobRequestConditions(), requestOptions.getTimeout());
 
-        return buildResponse(response, true);
+        return BlobOperationResponse.createWithEmptyBody(response);
     }
 
     public BlobOperationResponse clearPageBlob(final Exchange exchange) {
@@ -388,7 +389,7 @@ public class BlobOperations {
         final Response<PageBlobItem> response
                 = client.clearPagesBlob(pageRange, 
requestOptions.getBlobRequestConditions(), requestOptions.getTimeout());
 
-        return buildResponse(response, true);
+        return BlobOperationResponse.createWithEmptyBody(response);
     }
 
     public BlobOperationResponse getPageBlobRanges(final Exchange exchange) {
@@ -403,7 +404,7 @@ public class BlobOperations {
         final Response<PageList> response = 
client.getPageBlobRanges(blobRange, 
commonRequestOptions.getBlobRequestConditions(),
                 commonRequestOptions.getTimeout());
 
-        return buildResponse(response, false);
+        return BlobOperationResponse.create(response);
     }
 
     private DownloadRetryOptions getDownloadRetryOptions(final 
BlobConfigurationOptionsProxy configurationProxy) {
@@ -421,31 +422,6 @@ public class BlobOperations {
         return new BlobCommonRequestOptions(blobHttpHeaders, metadata, 
accessTier, blobRequestConditions, contentMD5, timeout);
     }
 
-    @SuppressWarnings("rawtypes")
-    private BlobOperationResponse buildResponse(final Response response, final 
boolean emptyBody) {
-        final Object body = emptyBody ? true : response.getValue();
-        BlobExchangeHeaders exchangeHeaders;
-
-        if (response.getValue() instanceof BlockBlobItem) {
-            exchangeHeaders
-                    = 
BlobExchangeHeaders.createBlobExchangeHeadersFromBlockBlobItem((BlockBlobItem) 
response.getValue());
-        } else if (response.getValue() instanceof AppendBlobItem) {
-            exchangeHeaders
-                    = 
BlobExchangeHeaders.createBlobExchangeHeadersFromAppendBlobItem((AppendBlobItem)
 response.getValue());
-        } else if (response.getValue() instanceof PageBlobItem) {
-            exchangeHeaders = 
BlobExchangeHeaders.createBlobExchangeHeadersFromPageBlobItem((PageBlobItem) 
response.getValue());
-        } else if (response.getValue() instanceof BlobProperties) {
-            exchangeHeaders
-                    = 
BlobExchangeHeaders.createBlobExchangeHeadersFromBlobProperties((BlobProperties)
 response.getValue());
-        } else {
-            exchangeHeaders = BlobExchangeHeaders.create();
-        }
-
-        exchangeHeaders.httpHeaders(response.getHeaders());
-
-        return new BlobOperationResponse(body, exchangeHeaders.toMap());
-    }
-
     private Long getPageBlobSize(final Exchange exchange) {
         // we try to get the size from the page range if exists
         final PageRange pageRange = configurationProxy.getPageRange(exchange);
diff --git 
a/components/camel-azure/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/operations/BlobServiceOperations.java
 
b/components/camel-azure/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/operations/BlobServiceOperations.java
index 631f33d..2e35c5d 100644
--- 
a/components/camel-azure/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/operations/BlobServiceOperations.java
+++ 
b/components/camel-azure/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/operations/BlobServiceOperations.java
@@ -44,6 +44,6 @@ public class BlobServiceOperations {
         final ListBlobContainersOptions listBlobContainersOptions = 
configurationProxy.getListBlobContainersOptions(exchange);
         final Duration timeout = configurationProxy.getTimeout(exchange);
 
-        return new 
BlobOperationResponse(client.listBlobContainers(listBlobContainersOptions, 
timeout));
+        return 
BlobOperationResponse.create(client.listBlobContainers(listBlobContainersOptions,
 timeout));
     }
 }

Reply via email to