You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2020/03/31 10:27:35 UTC

[camel] 01/05: CAMEL-13462 - Override blob name using header implementation.

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 14babe8d1fd49f0beb128ac3203db7f26910c210
Author: blanx <dj...@gmail.com>
AuthorDate: Wed Mar 25 22:21:30 2020 +0100

    CAMEL-13462 - Override blob name using header implementation.
---
 .../component/azure/blob/BlobHeadersConstants.java | 23 ++++++++
 .../component/azure/blob/BlobServiceComponent.java | 29 ++++++----
 .../component/azure/blob/BlobServiceProducer.java  | 27 +++++++--
 .../azure/blob/BlobServiceAppendConsumerTest.java  |  8 +--
 .../azure/blob/BlobServiceBlockConsumerTest.java   |  8 +--
 ...lobServiceComponentConfigurationClientTest.java |  9 +--
 .../BlobServiceComponentConfigurationTest.java     | 11 +---
 .../BlobServiceProducerOverrideBlobNameTest.java   | 64 ++++++++++++++++++++++
 .../azure/blob/BlobServiceProducerSpringTest.java  | 31 ++---------
 .../azure/common/AzureServiceCommonTestUtil.java   |  6 +-
 .../azure/common/MissingCredentialsTest.java       | 12 ++--
 ...eueServiceComponentClientConfigurationTest.java |  9 +--
 .../QueueServiceComponentConfigurationTest.java    |  9 +--
 13 files changed, 151 insertions(+), 95 deletions(-)

diff --git a/components/camel-azure/src/main/java/org/apache/camel/component/azure/blob/BlobHeadersConstants.java b/components/camel-azure/src/main/java/org/apache/camel/component/azure/blob/BlobHeadersConstants.java
new file mode 100644
index 0000000..91d87fc
--- /dev/null
+++ b/components/camel-azure/src/main/java/org/apache/camel/component/azure/blob/BlobHeadersConstants.java
@@ -0,0 +1,23 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.azure.blob;
+
+public interface BlobHeadersConstants {
+
+    String OVERRIDE_BLOB_NAME = "overrideBlobName";
+
+}
diff --git a/components/camel-azure/src/main/java/org/apache/camel/component/azure/blob/BlobServiceComponent.java b/components/camel-azure/src/main/java/org/apache/camel/component/azure/blob/BlobServiceComponent.java
index b9149ca..2e7a250 100644
--- a/components/camel-azure/src/main/java/org/apache/camel/component/azure/blob/BlobServiceComponent.java
+++ b/components/camel-azure/src/main/java/org/apache/camel/component/azure/blob/BlobServiceComponent.java
@@ -27,11 +27,14 @@ import org.apache.camel.Endpoint;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.annotations.Component;
 import org.apache.camel.support.DefaultComponent;
+import org.apache.commons.lang3.StringUtils;
+
+import static org.apache.camel.component.azure.blob.BlobHeadersConstants.OVERRIDE_BLOB_NAME;
 
 @Component("azure-blob")
 public class BlobServiceComponent extends DefaultComponent {
 
-    public static final String MISSING_BLOB_CREDNTIALS_EXCEPTION_MESSAGE =
+    public static final String MISSING_BLOB_CREDENTIALS_EXCEPTION_MESSAGE =
             "One of azureBlobClient, credentials or both credentialsAccountName and credentialsAccountKey must be specified";
 
     @Metadata(label = "advanced")
@@ -60,16 +63,22 @@ public class BlobServiceComponent extends DefaultComponent {
         configuration.setAccountName(parts[0]);
         configuration.setContainerName(parts[1]);
 
-        if (parts.length > 2) {
-            // Blob names can contain forward slashes
-            StringBuilder sb = new StringBuilder();
-            for (int i = 2; i < parts.length; i++) {
-                sb.append(parts[i]);
-                if (i + 1 < parts.length) {
-                    sb.append('/');
+        String blobName = (String) parameters.get(OVERRIDE_BLOB_NAME);
+
+        if (StringUtils.isEmpty(blobName)) {
+            if (parts.length > 2) {
+                // Blob names can contain forward slashes
+                StringBuilder sb = new StringBuilder();
+                for (int i = 2; i < parts.length; i++) {
+                    sb.append(parts[i]);
+                    if (i + 1 < parts.length) {
+                        sb.append('/');
+                    }
                 }
+                configuration.setBlobName(sb.toString());
             }
-            configuration.setBlobName(sb.toString());
+        } else {
+            configuration.setBlobName(blobName);
         }
 
         BlobServiceEndpoint endpoint = new BlobServiceEndpoint(uri, this, configuration);
@@ -99,7 +108,7 @@ public class BlobServiceComponent extends DefaultComponent {
         StorageCredentials creds = client == null ? cfg.getAccountCredentials()
                 : client.getServiceClient().getCredentials();
         if ((creds == null || creds instanceof StorageCredentialsAnonymous) && !cfg.isPublicForRead()) {
-            throw new IllegalArgumentException(MISSING_BLOB_CREDNTIALS_EXCEPTION_MESSAGE);
+            throw new IllegalArgumentException(MISSING_BLOB_CREDENTIALS_EXCEPTION_MESSAGE);
         }
     }
 
diff --git a/components/camel-azure/src/main/java/org/apache/camel/component/azure/blob/BlobServiceProducer.java b/components/camel-azure/src/main/java/org/apache/camel/component/azure/blob/BlobServiceProducer.java
index 5def549..44eea8a 100644
--- a/components/camel-azure/src/main/java/org/apache/camel/component/azure/blob/BlobServiceProducer.java
+++ b/components/camel-azure/src/main/java/org/apache/camel/component/azure/blob/BlobServiceProducer.java
@@ -46,9 +46,12 @@ import org.apache.camel.component.azure.common.ExchangeUtil;
 import org.apache.camel.support.DefaultProducer;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.URISupport;
+import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import static org.apache.camel.component.azure.blob.BlobHeadersConstants.OVERRIDE_BLOB_NAME;
+
 /**
  * A Producer which sends messages to the Azure Storage Blob Service
  */
@@ -62,6 +65,9 @@ public class BlobServiceProducer extends DefaultProducer {
 
     @Override
     public void process(final Exchange exchange) throws Exception {
+
+        overrideBlobName(exchange);
+
         BlobServiceOperations operation = determineOperation(exchange);
         if (ObjectHelper.isEmpty(operation)) {
             operation = BlobServiceOperations.listBlobs;
@@ -125,10 +131,10 @@ public class BlobServiceProducer extends DefaultProducer {
         Object detailsObject = exchange.getIn().getHeader(BlobServiceConstants.BLOB_LISTING_DETAILS);
         if (detailsObject instanceof EnumSet) {
             @SuppressWarnings("unchecked")
-            EnumSet<BlobListingDetails> theDetails = (EnumSet<BlobListingDetails>)detailsObject;
+            EnumSet<BlobListingDetails> theDetails = (EnumSet<BlobListingDetails>) detailsObject;
             details = theDetails;
         } else if (detailsObject instanceof BlobListingDetails) {
-            details = EnumSet.of((BlobListingDetails)detailsObject);
+            details = EnumSet.of((BlobListingDetails) detailsObject);
         }
         Iterable<ListBlobItem> items =
                 client.listBlobs(cfg.getBlobPrefix(), cfg.isUseFlatListing(),
@@ -159,7 +165,7 @@ public class BlobServiceProducer extends DefaultProducer {
         if (object instanceof List) {
             blobBlocks = (List<BlobBlock>) object;
         } else if (object instanceof BlobBlock) {
-            blobBlocks = Collections.singletonList((BlobBlock)object);
+            blobBlocks = Collections.singletonList((BlobBlock) object);
         }
         if (blobBlocks == null || blobBlocks.isEmpty()) {
             throw new IllegalArgumentException("Illegal storageBlocks payload");
@@ -191,7 +197,7 @@ public class BlobServiceProducer extends DefaultProducer {
         if (object instanceof List) {
             blockEntries = (List<BlockEntry>) object;
         } else if (object instanceof BlockEntry) {
-            blockEntries = Collections.singletonList((BlockEntry)object);
+            blockEntries = Collections.singletonList((BlockEntry) object);
         }
         if (blockEntries == null || blockEntries.isEmpty()) {
             throw new IllegalArgumentException("Illegal commit block list payload");
@@ -385,7 +391,7 @@ public class BlobServiceProducer extends DefaultProducer {
             blobDataLength = range.getEndOffset() - range.getStartOffset();
         }
         if (blobDataLength == null) {
-            blobDataLength = (long)is.available();
+            blobDataLength = (long) is.available();
         }
         try {
             client.uploadPages(is, blobOffset, blobDataLength,
@@ -473,7 +479,7 @@ public class BlobServiceProducer extends DefaultProducer {
         if (body instanceof InputStream) {
             is = (InputStream) body;
         } else if (body instanceof File) {
-            is = new FileInputStream((File)body);
+            is = new FileInputStream((File) body);
         } else if (body instanceof byte[]) {
             is = new ByteArrayInputStream((byte[]) body);
         } else {
@@ -495,4 +501,13 @@ public class BlobServiceProducer extends DefaultProducer {
         }
     }
 
+
+    private void overrideBlobName(Exchange exchange) {
+        String blobName = exchange.getIn().getHeader(OVERRIDE_BLOB_NAME, String.class);
+
+        if (StringUtils.isNotEmpty(blobName)) {
+            getEndpoint().getConfiguration().setBlobName(blobName);
+        }
+    }
+
 }
diff --git a/components/camel-azure/src/test/java/org/apache/camel/component/azure/blob/BlobServiceAppendConsumerTest.java b/components/camel-azure/src/test/java/org/apache/camel/component/azure/blob/BlobServiceAppendConsumerTest.java
index 49b9b38..730a670 100644
--- a/components/camel-azure/src/test/java/org/apache/camel/component/azure/blob/BlobServiceAppendConsumerTest.java
+++ b/components/camel-azure/src/test/java/org/apache/camel/component/azure/blob/BlobServiceAppendConsumerTest.java
@@ -23,9 +23,7 @@ import java.io.FileInputStream;
 import com.microsoft.azure.storage.StorageCredentialsAccountAndKey;
 import org.apache.camel.CamelContext;
 import org.apache.camel.EndpointInject;
-import org.apache.camel.Exchange;
 import org.apache.camel.ExchangePattern;
-import org.apache.camel.Processor;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
@@ -41,11 +39,7 @@ public class BlobServiceAppendConsumerTest extends CamelTestSupport {
     @Test
     @Ignore
     public void testGetAppendBlob() throws Exception {
-        templateStart.send("direct:start", ExchangePattern.InOnly, new Processor() {
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setBody("Append Blob");
-            }
-        });
+        templateStart.send("direct:start", ExchangePattern.InOnly, exchange -> exchange.getIn().setBody("Append Blob"));
         
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectedMessageCount(1);
diff --git a/components/camel-azure/src/test/java/org/apache/camel/component/azure/blob/BlobServiceBlockConsumerTest.java b/components/camel-azure/src/test/java/org/apache/camel/component/azure/blob/BlobServiceBlockConsumerTest.java
index fc203ee..578ee94 100644
--- a/components/camel-azure/src/test/java/org/apache/camel/component/azure/blob/BlobServiceBlockConsumerTest.java
+++ b/components/camel-azure/src/test/java/org/apache/camel/component/azure/blob/BlobServiceBlockConsumerTest.java
@@ -23,9 +23,7 @@ import java.io.FileInputStream;
 import com.microsoft.azure.storage.StorageCredentialsAccountAndKey;
 import org.apache.camel.CamelContext;
 import org.apache.camel.EndpointInject;
-import org.apache.camel.Exchange;
 import org.apache.camel.ExchangePattern;
-import org.apache.camel.Processor;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
@@ -41,11 +39,7 @@ public class BlobServiceBlockConsumerTest extends CamelTestSupport {
     @Test
     @Ignore
     public void testGetBlockBlob() throws Exception {
-        templateStart.send("direct:start", ExchangePattern.InOnly, new Processor() {
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setBody("Block Blob");
-            }
-        });
+        templateStart.send("direct:start", ExchangePattern.InOnly, exchange -> exchange.getIn().setBody("Block Blob"));
         
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectedMessageCount(1);
diff --git a/components/camel-azure/src/test/java/org/apache/camel/component/azure/blob/BlobServiceComponentConfigurationClientTest.java b/components/camel-azure/src/test/java/org/apache/camel/component/azure/blob/BlobServiceComponentConfigurationClientTest.java
index 435458c..b2eb85b 100644
--- a/components/camel-azure/src/test/java/org/apache/camel/component/azure/blob/BlobServiceComponentConfigurationClientTest.java
+++ b/components/camel-azure/src/test/java/org/apache/camel/component/azure/blob/BlobServiceComponentConfigurationClientTest.java
@@ -24,8 +24,6 @@ import com.microsoft.azure.storage.StorageCredentialsAccountAndKey;
 import com.microsoft.azure.storage.blob.CloudBlockBlob;
 import com.microsoft.azure.storage.core.Base64;
 import org.apache.camel.Endpoint;
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
 import org.apache.camel.test.junit4.CamelTestSupport;
 import org.junit.Test;
 
@@ -181,11 +179,8 @@ public class BlobServiceComponentConfigurationClientTest extends CamelTestSuppor
     }
     
     private static void createConsumer(Endpoint endpoint) throws Exception {
-        endpoint.createConsumer(new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                // noop
-            }
+        endpoint.createConsumer(exchange -> {
+            // noop
         });
     }
     
diff --git a/components/camel-azure/src/test/java/org/apache/camel/component/azure/blob/BlobServiceComponentConfigurationTest.java b/components/camel-azure/src/test/java/org/apache/camel/component/azure/blob/BlobServiceComponentConfigurationTest.java
index 2084fda..1185496 100644
--- a/components/camel-azure/src/test/java/org/apache/camel/component/azure/blob/BlobServiceComponentConfigurationTest.java
+++ b/components/camel-azure/src/test/java/org/apache/camel/component/azure/blob/BlobServiceComponentConfigurationTest.java
@@ -25,8 +25,6 @@ import com.microsoft.azure.storage.blob.CloudBlob;
 import com.microsoft.azure.storage.blob.CloudBlockBlob;
 import com.microsoft.azure.storage.core.Base64;
 import org.apache.camel.Endpoint;
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
 import org.apache.camel.test.junit4.CamelTestSupport;
 import org.junit.Test;
 
@@ -195,13 +193,10 @@ public class BlobServiceComponentConfigurationTest extends CamelTestSupport {
             (BlobServiceEndpoint)context.getEndpoint("azure-blob://camelazure/component1/blob/sub?credentials=#creds");
         assertEquals("blob/sub", endpoint.getConfiguration().getBlobName());
     }
-    
+
     private static void createConsumer(Endpoint endpoint) throws Exception {
-        endpoint.createConsumer(new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                // noop
-            }
+        endpoint.createConsumer(exchange -> {
+            // noop
         });
     }
     
diff --git a/components/camel-azure/src/test/java/org/apache/camel/component/azure/blob/BlobServiceProducerOverrideBlobNameTest.java b/components/camel-azure/src/test/java/org/apache/camel/component/azure/blob/BlobServiceProducerOverrideBlobNameTest.java
new file mode 100644
index 0000000..869c0b2
--- /dev/null
+++ b/components/camel-azure/src/test/java/org/apache/camel/component/azure/blob/BlobServiceProducerOverrideBlobNameTest.java
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.azure.blob;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.Exchange;
+import org.apache.camel.impl.DefaultCamelContext;
+import org.apache.camel.support.DefaultExchange;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.apache.camel.component.azure.blob.BlobHeadersConstants.OVERRIDE_BLOB_NAME;
+import static org.junit.Assert.assertEquals;
+
+public class BlobServiceProducerOverrideBlobNameTest {
+
+    private Exchange exchange;
+    private BlobServiceProducer producer;
+
+    @Before
+    public void setUp() {
+        CamelContext context = new DefaultCamelContext();
+        BlobServiceEndpoint endpoint = (BlobServiceEndpoint) context.getEndpoint("azure-blob://camelazure/container/blob?credentialsAccountKey=aKey&credentialsAccountName=name");
+        exchange = new DefaultExchange(context);
+        producer = new BlobServiceProducer(endpoint);
+    }
+
+    @Test
+    public void testOverrideBlobName() throws Exception {
+
+        String blobName = "blobName";
+        exchange.getIn().setHeader(OVERRIDE_BLOB_NAME, blobName);
+
+        producer.process(exchange);
+
+        assertEquals(blobName, producer.getEndpoint().getConfiguration().getBlobName());
+    }
+
+    @Test
+    public void testSetBlobNameFromEndpoint() throws Exception {
+
+        String blobName = "blob";
+        exchange.getIn().setHeader(OVERRIDE_BLOB_NAME, blobName);
+
+        producer.process(exchange);
+
+        assertEquals(blobName, producer.getEndpoint().getConfiguration().getBlobName());
+    }
+
+}
diff --git a/components/camel-azure/src/test/java/org/apache/camel/component/azure/blob/BlobServiceProducerSpringTest.java b/components/camel-azure/src/test/java/org/apache/camel/component/azure/blob/BlobServiceProducerSpringTest.java
index 058c0f8..6922a0a 100644
--- a/components/camel-azure/src/test/java/org/apache/camel/component/azure/blob/BlobServiceProducerSpringTest.java
+++ b/components/camel-azure/src/test/java/org/apache/camel/component/azure/blob/BlobServiceProducerSpringTest.java
@@ -24,7 +24,6 @@ import java.util.Arrays;
 import org.apache.camel.EndpointInject;
 import org.apache.camel.Exchange;
 import org.apache.camel.ExchangePattern;
-import org.apache.camel.Processor;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.test.spring.CamelSpringTestSupport;
@@ -45,11 +44,7 @@ public class BlobServiceProducerSpringTest extends CamelSpringTestSupport {
     public void testUpdateBlockBlob() throws Exception {
         result.expectedMessageCount(1);
         
-        template.send("direct:updateBlockBlob", ExchangePattern.InOnly, new Processor() {
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setBody("Block Blob");
-            }
-        });
+        template.send("direct:updateBlockBlob", ExchangePattern.InOnly, exchange -> exchange.getIn().setBody("Block Blob"));
         
         assertMockEndpointsSatisfied();
         
@@ -61,11 +56,7 @@ public class BlobServiceProducerSpringTest extends CamelSpringTestSupport {
     public void testUploadBlobBlocks() throws Exception {
         result.expectedMessageCount(1);
         final BlobBlock st = new BlobBlock(new ByteArrayInputStream("Block Blob List".getBytes()));
-        template.send("direct:uploadBlobBlocks", ExchangePattern.InOnly, new Processor() {
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setBody(st);
-            }
-        });
+        template.send("direct:uploadBlobBlocks", ExchangePattern.InOnly, exchange -> exchange.getIn().setBody(st));
         
         assertMockEndpointsSatisfied();
         
@@ -77,11 +68,7 @@ public class BlobServiceProducerSpringTest extends CamelSpringTestSupport {
     public void testGetBlockBlob() throws Exception {
         result.expectedMessageCount(1);
         OutputStream os = new ByteArrayOutputStream();
-        template.send("direct:getBlockBlob", ExchangePattern.InOnly, new Processor() {
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setBody(os);
-            }
-        });
+        template.send("direct:getBlockBlob", ExchangePattern.InOnly, exchange -> exchange.getIn().setBody(os));
         
         assertMockEndpointsSatisfied();
         
@@ -93,11 +80,7 @@ public class BlobServiceProducerSpringTest extends CamelSpringTestSupport {
     public void testUpdateAppendBlob() throws Exception {
         result.expectedMessageCount(1);
         
-        template.send("direct:updateAppendBlob", ExchangePattern.InOnly, new Processor() {
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setBody("Append Blob");
-            }
-        });
+        template.send("direct:updateAppendBlob", ExchangePattern.InOnly, exchange -> exchange.getIn().setBody("Append Blob"));
         
         assertMockEndpointsSatisfied();
         
@@ -110,11 +93,7 @@ public class BlobServiceProducerSpringTest extends CamelSpringTestSupport {
         result.expectedMessageCount(1);
         final byte[] data = new byte[512];
         Arrays.fill(data, (byte)1);
-        template.send("direct:updatePageBlob", ExchangePattern.InOnly, new Processor() {
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setBody(new ByteArrayInputStream(data));
-            }
-        });
+        template.send("direct:updatePageBlob", ExchangePattern.InOnly, exchange -> exchange.getIn().setBody(new ByteArrayInputStream(data)));
         
         assertMockEndpointsSatisfied();
         
diff --git a/components/camel-azure/src/test/java/org/apache/camel/component/azure/common/AzureServiceCommonTestUtil.java b/components/camel-azure/src/test/java/org/apache/camel/component/azure/common/AzureServiceCommonTestUtil.java
index ab860a9..04dbe33 100644
--- a/components/camel-azure/src/test/java/org/apache/camel/component/azure/common/AzureServiceCommonTestUtil.java
+++ b/components/camel-azure/src/test/java/org/apache/camel/component/azure/common/AzureServiceCommonTestUtil.java
@@ -66,8 +66,7 @@ public final class AzureServiceCommonTestUtil {
 
     public static CloudBlockBlob createBlockBlobClient(String accountName, String accountKey) throws Exception {
         URI uri = new URI("https://camelazure.blob.core.windows.net/container1/blobBlock");
-        CloudBlockBlob client = new CloudBlockBlob(uri, newAccountKeyCredentials(accountName, accountKey));
-        return client;
+        return new CloudBlockBlob(uri, newAccountKeyCredentials(accountName, accountKey));
     }
 
     public static CloudBlockBlob createBlockBlobClient() throws Exception {
@@ -86,8 +85,7 @@ public final class AzureServiceCommonTestUtil {
 
     public static CloudQueue createQueueClient(String accountName, String accountKey) throws Exception {
         URI uri = new URI("https://camelazure.queue.core.windows.net/testqueue/");
-        CloudQueue client = new CloudQueue(uri, newAccountKeyCredentials(accountName, accountKey));
-        return client;
+        return new CloudQueue(uri, newAccountKeyCredentials(accountName, accountKey));
     }
 
     public static CloudQueue createQueueClient() throws Exception {
diff --git a/components/camel-azure/src/test/java/org/apache/camel/component/azure/common/MissingCredentialsTest.java b/components/camel-azure/src/test/java/org/apache/camel/component/azure/common/MissingCredentialsTest.java
index 3ba16ae..42151bf 100644
--- a/components/camel-azure/src/test/java/org/apache/camel/component/azure/common/MissingCredentialsTest.java
+++ b/components/camel-azure/src/test/java/org/apache/camel/component/azure/common/MissingCredentialsTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
 
-import static org.apache.camel.component.azure.blob.BlobServiceComponent.MISSING_BLOB_CREDNTIALS_EXCEPTION_MESSAGE;
+import static org.apache.camel.component.azure.blob.BlobServiceComponent.MISSING_BLOB_CREDENTIALS_EXCEPTION_MESSAGE;
 import static org.apache.camel.component.azure.common.AzureServiceCommonTestUtil.ACCOUNT_NAME;
 import static org.apache.camel.component.azure.common.AzureServiceCommonTestUtil.BLOB_NAME;
 import static org.apache.camel.component.azure.common.AzureServiceCommonTestUtil.CONTAINER_NAME;
@@ -93,7 +93,7 @@ public class MissingCredentialsTest extends CamelTestSupport {
     // Missing Credentials Blob Tests
     @Test
     public void createBlobEndpointWithoutCredentials() {
-        createEndpointWithoutCredentials(missingCredentialsBlobUriEndoint, MISSING_BLOB_CREDNTIALS_EXCEPTION_MESSAGE);
+        createEndpointWithoutCredentials(missingCredentialsBlobUriEndoint, MISSING_BLOB_CREDENTIALS_EXCEPTION_MESSAGE);
     }
 
     @Test
@@ -105,12 +105,12 @@ public class MissingCredentialsTest extends CamelTestSupport {
 
     @Test
     public void createBlobEndpointWithoutCredentialsAccountName() {
-        createEndpointWithoutCredentials(missingCredentialsAccountNameBlobUriEndoint, MISSING_BLOB_CREDNTIALS_EXCEPTION_MESSAGE);
+        createEndpointWithoutCredentials(missingCredentialsAccountNameBlobUriEndoint, MISSING_BLOB_CREDENTIALS_EXCEPTION_MESSAGE);
     }
 
     @Test
     public void createBlobEndpointWithoutCredentialsAccountKey() {
-        createEndpointWithoutCredentials(missingCredentialsAccountKeyBlobUriEndoint, MISSING_BLOB_CREDNTIALS_EXCEPTION_MESSAGE);
+        createEndpointWithoutCredentials(missingCredentialsAccountKeyBlobUriEndoint, MISSING_BLOB_CREDENTIALS_EXCEPTION_MESSAGE);
     }
 
     // Missing Credentials Queue Tests
@@ -147,7 +147,7 @@ public class MissingCredentialsTest extends CamelTestSupport {
     @Test
     public void testBlobClientWithoutAnonymousCredentials() throws Exception {
         exceptionRule.expect(ResolveEndpointFailedException.class);
-        exceptionRule.expectMessage(MISSING_BLOB_CREDNTIALS_EXCEPTION_MESSAGE);
+        exceptionRule.expectMessage(MISSING_BLOB_CREDENTIALS_EXCEPTION_MESSAGE);
         CloudBlockBlob client =
                 new CloudBlockBlob(URI.create("https://camelazure.blob.core.windows.net/container/blob"),
                         StorageCredentialsAnonymous.ANONYMOUS);
@@ -158,7 +158,7 @@ public class MissingCredentialsTest extends CamelTestSupport {
     @Test
     public void testBlobClientWithoutCredentials() throws Exception {
         exceptionRule.expect(ResolveEndpointFailedException.class);
-        exceptionRule.expectMessage(MISSING_BLOB_CREDNTIALS_EXCEPTION_MESSAGE);
+        exceptionRule.expectMessage(MISSING_BLOB_CREDENTIALS_EXCEPTION_MESSAGE);
         CloudBlockBlob client =
                 new CloudBlockBlob(URI.create("https://camelazure.blob.core.windows.net/container/blob"));
         context.getRegistry().bind("azureBlobClient", client);
diff --git a/components/camel-azure/src/test/java/org/apache/camel/component/azure/queue/QueueServiceComponentClientConfigurationTest.java b/components/camel-azure/src/test/java/org/apache/camel/component/azure/queue/QueueServiceComponentClientConfigurationTest.java
index 8ef0fdc..52022e3 100644
--- a/components/camel-azure/src/test/java/org/apache/camel/component/azure/queue/QueueServiceComponentClientConfigurationTest.java
+++ b/components/camel-azure/src/test/java/org/apache/camel/component/azure/queue/QueueServiceComponentClientConfigurationTest.java
@@ -23,8 +23,6 @@ import com.microsoft.azure.storage.StorageCredentialsAccountAndKey;
 import com.microsoft.azure.storage.core.Base64;
 import com.microsoft.azure.storage.queue.CloudQueue;
 import org.apache.camel.Endpoint;
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
 import org.apache.camel.test.junit4.CamelTestSupport;
 import org.junit.Test;
 
@@ -129,11 +127,8 @@ public class QueueServiceComponentClientConfigurationTest extends CamelTestSuppo
     
     
     private static void createConsumer(Endpoint endpoint) throws Exception {
-        endpoint.createConsumer(new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                // noop
-            }
+        endpoint.createConsumer(exchange -> {
+            // noop
         });
     }
     
diff --git a/components/camel-azure/src/test/java/org/apache/camel/component/azure/queue/QueueServiceComponentConfigurationTest.java b/components/camel-azure/src/test/java/org/apache/camel/component/azure/queue/QueueServiceComponentConfigurationTest.java
index 8176972..3c9afdd 100644
--- a/components/camel-azure/src/test/java/org/apache/camel/component/azure/queue/QueueServiceComponentConfigurationTest.java
+++ b/components/camel-azure/src/test/java/org/apache/camel/component/azure/queue/QueueServiceComponentConfigurationTest.java
@@ -23,8 +23,6 @@ import com.microsoft.azure.storage.StorageCredentialsAccountAndKey;
 import com.microsoft.azure.storage.core.Base64;
 import com.microsoft.azure.storage.queue.CloudQueue;
 import org.apache.camel.Endpoint;
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
 import org.apache.camel.test.junit4.CamelTestSupport;
 import org.junit.Test;
 
@@ -129,11 +127,8 @@ public class QueueServiceComponentConfigurationTest extends CamelTestSupport {
     
     
     private static void createConsumer(Endpoint endpoint) throws Exception {
-        endpoint.createConsumer(new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                // noop
-            }
+        endpoint.createConsumer(exchange -> {
+            // noop
         });
     }