This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch CAMEL-23232 in repository https://gitbox.apache.org/repos/asf/camel.git
commit eb6cf300575129304b18646eb97dc8e071b4cafe Author: Andrea Cosentino <[email protected]> AuthorDate: Mon Mar 23 14:44:18 2026 +0100 CAMEL-23232 - Camel-Azure components: Standardize CredentialType enums across all Azure components Create a new camel-azure-common module with a unified CredentialType enum containing all 10 credential types (SHARED_KEY_CREDENTIAL, SHARED_ACCOUNT_KEY, AZURE_IDENTITY, AZURE_SAS, CONNECTION_STRING, CLIENT_SECRET, TOKEN_CREDENTIAL, SERVICE_CLIENT_INSTANCE, ACCESS_KEY, FUNCTION_KEY) with a component support matrix in the javadoc. Deprecate the 10 component-specific CredentialType enums in cosmosdb, eventhubs, files, key-vault, servicebus, storage-blob, storage-datalake, storage-queue, eventgrid, and functions with @Deprecated(since="4.19.0") pointing to the shared enum. Add migration guide entry to camel-4x-upgrade-guide-4_19.adoc. URI-based configuration requires no changes; Java API users only need to update the import statement. Signed-off-by: Andrea Cosentino <[email protected]> --- .../pom.xml | 26 ++--- .../services/org/apache/camel/other.properties | 7 ++ .../src/generated/resources/azure-common.json | 15 +++ .../component/azure/common/CredentialType.java | 120 +++++++++++++++++++++ .../component/azure/common/CredentialTypeTest.java | 53 +++++++++ .../camel-azure/camel-azure-cosmosdb/pom.xml | 4 + .../component/azure/cosmosdb/CredentialType.java | 4 + .../camel-azure/camel-azure-eventgrid/pom.xml | 4 + .../component/azure/eventgrid/CredentialType.java | 4 + .../camel-azure/camel-azure-eventhubs/pom.xml | 4 + .../component/azure/eventhubs/CredentialType.java | 4 + components/camel-azure/camel-azure-files/pom.xml | 4 + .../camel/component/file/azure/CredentialType.java | 4 + .../camel-azure/camel-azure-functions/pom.xml | 4 + .../component/azure/functions/CredentialType.java | 3 + .../camel-azure/camel-azure-key-vault/pom.xml | 4 + .../component/azure/key/vault/CredentialType.java | 4 + .../camel-azure/camel-azure-servicebus/pom.xml | 4 + .../component/azure/servicebus/CredentialType.java | 4 + .../camel-azure/camel-azure-storage-blob/pom.xml | 4 + .../azure/storage/blob/CredentialType.java | 4 + .../camel-azure-storage-datalake/pom.xml | 4 + .../azure/storage/datalake/CredentialType.java | 4 + .../camel-azure/camel-azure-storage-queue/pom.xml | 4 + .../azure/storage/queue/CredentialType.java | 4 + components/camel-azure/pom.xml | 1 + coverage/pom.xml | 5 + .../ROOT/pages/camel-4x-upgrade-guide-4_19.adoc | 25 +++++ parent/pom.xml | 5 + .../camel/maven/packaging/PrepareCatalogMojo.java | 1 + 30 files changed, 319 insertions(+), 18 deletions(-) diff --git a/components/camel-azure/camel-azure-files/pom.xml b/components/camel-azure/camel-azure-common/pom.xml similarity index 67% copy from components/camel-azure/camel-azure-files/pom.xml copy to components/camel-azure/camel-azure-common/pom.xml index 3f83a71f4574..e8ba192290cc 100644 --- a/components/camel-azure/camel-azure-files/pom.xml +++ b/components/camel-azure/camel-azure-common/pom.xml @@ -18,6 +18,7 @@ --> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> <parent> @@ -26,31 +27,20 @@ <version>4.19.0-SNAPSHOT</version> </parent> - <artifactId>camel-azure-files</artifactId> + <artifactId>camel-azure-common</artifactId> <packaging>jar</packaging> - <name>Camel :: Azure :: Files</name> - <description>Camel Azure Files Component</description> + <name>Camel :: Azure :: Common</name> + <description>Camel Azure Common utilities shared across Azure components</description> <properties> - <supportLevel>Preview</supportLevel> + <firstVersion>4.19.0</firstVersion> + <label>cloud,azure</label> </properties> <dependencies> <dependency> - <groupId>org.apache.camel</groupId> - <artifactId>camel-ftp</artifactId> - </dependency> - <dependency> - <groupId>com.azure</groupId> - <artifactId>azure-storage-file-share</artifactId> - </dependency> - <dependency> - <groupId>com.azure</groupId> - <artifactId>azure-identity</artifactId> - </dependency> - <dependency> - <groupId>org.apache.camel</groupId> - <artifactId>camel-test-junit6</artifactId> + <groupId>org.junit.jupiter</groupId> + <artifactId>junit-jupiter</artifactId> <scope>test</scope> </dependency> </dependencies> diff --git a/components/camel-azure/camel-azure-common/src/generated/resources/META-INF/services/org/apache/camel/other.properties b/components/camel-azure/camel-azure-common/src/generated/resources/META-INF/services/org/apache/camel/other.properties new file mode 100644 index 000000000000..c075213acda5 --- /dev/null +++ b/components/camel-azure/camel-azure-common/src/generated/resources/META-INF/services/org/apache/camel/other.properties @@ -0,0 +1,7 @@ +# Generated by camel build tools - do NOT edit this file! +name=azure-common +groupId=org.apache.camel +artifactId=camel-azure-common +version=4.19.0-SNAPSHOT +projectName=Camel :: Azure :: Common +projectDescription=Camel Azure Common utilities shared across Azure components diff --git a/components/camel-azure/camel-azure-common/src/generated/resources/azure-common.json b/components/camel-azure/camel-azure-common/src/generated/resources/azure-common.json new file mode 100644 index 000000000000..43ec2e55f3b5 --- /dev/null +++ b/components/camel-azure/camel-azure-common/src/generated/resources/azure-common.json @@ -0,0 +1,15 @@ +{ + "other": { + "kind": "other", + "name": "azure-common", + "title": "Azure Common", + "description": "Camel Azure Common utilities shared across Azure components", + "deprecated": false, + "firstVersion": "4.19.0", + "label": "cloud,azure", + "supportLevel": "Preview", + "groupId": "org.apache.camel", + "artifactId": "camel-azure-common", + "version": "4.19.0-SNAPSHOT" + } +} diff --git a/components/camel-azure/camel-azure-common/src/main/java/org/apache/camel/component/azure/common/CredentialType.java b/components/camel-azure/camel-azure-common/src/main/java/org/apache/camel/component/azure/common/CredentialType.java new file mode 100644 index 000000000000..43b6535b3b08 --- /dev/null +++ b/components/camel-azure/camel-azure-common/src/main/java/org/apache/camel/component/azure/common/CredentialType.java @@ -0,0 +1,120 @@ +/* + * 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.common; + +/** + * Unified credential type enum shared across all Azure components. + * <p> + * Not all credential types are supported by every Azure component. The following table shows which credential types are + * supported by each component: + * <table> + * <caption>Credential type support matrix</caption> + * <tr> + * <th>Credential Type</th> + * <th>Components</th> + * </tr> + * <tr> + * <td>{@link #AZURE_IDENTITY}</td> + * <td>All Azure components</td> + * </tr> + * <tr> + * <td>{@link #SHARED_ACCOUNT_KEY}</td> + * <td>storage-blob, storage-queue, cosmosdb, files</td> + * </tr> + * <tr> + * <td>{@link #SHARED_KEY_CREDENTIAL}</td> + * <td>storage-blob, storage-datalake, storage-queue</td> + * </tr> + * <tr> + * <td>{@link #AZURE_SAS}</td> + * <td>storage-blob, storage-datalake, files</td> + * </tr> + * <tr> + * <td>{@link #CONNECTION_STRING}</td> + * <td>eventhubs, servicebus</td> + * </tr> + * <tr> + * <td>{@link #CLIENT_SECRET}</td> + * <td>storage-datalake, key-vault</td> + * </tr> + * <tr> + * <td>{@link #TOKEN_CREDENTIAL}</td> + * <td>eventhubs, servicebus, eventgrid, functions</td> + * </tr> + * <tr> + * <td>{@link #ACCESS_KEY}</td> + * <td>eventgrid</td> + * </tr> + * <tr> + * <td>{@link #FUNCTION_KEY}</td> + * <td>functions</td> + * </tr> + * <tr> + * <td>{@link #SERVICE_CLIENT_INSTANCE}</td> + * <td>storage-datalake</td> + * </tr> + * </table> + * + * @since 4.19.0 + */ +public enum CredentialType { + /** + * Azure Storage shared key credential. + * + * @see com.azure.storage.common.StorageSharedKeyCredential + */ + SHARED_KEY_CREDENTIAL, + /** + * Azure Storage shared account key (account name + account key pair). + */ + SHARED_ACCOUNT_KEY, + /** + * Azure Identity (DefaultAzureCredential). Supports service principal with secret/certificate, managed identity, + * environment variables, and other credential sources. + * + * @see com.azure.identity.DefaultAzureCredentialBuilder + */ + AZURE_IDENTITY, + /** + * Azure Shared Access Signature (SAS) token. + */ + AZURE_SAS, + /** + * Connection string-based authentication (e.g., for Service Bus, Event Hubs). + */ + CONNECTION_STRING, + /** + * Client secret credential (client ID + tenant ID + client secret). + */ + CLIENT_SECRET, + /** + * Pre-built token credential instance provided by the user. + */ + TOKEN_CREDENTIAL, + /** + * Pre-built service client instance provided by the user. + */ + SERVICE_CLIENT_INSTANCE, + /** + * Access key authentication (e.g., for Event Grid). + */ + ACCESS_KEY, + /** + * Azure Function key authentication. + */ + FUNCTION_KEY +} diff --git a/components/camel-azure/camel-azure-common/src/test/java/org/apache/camel/component/azure/common/CredentialTypeTest.java b/components/camel-azure/camel-azure-common/src/test/java/org/apache/camel/component/azure/common/CredentialTypeTest.java new file mode 100644 index 000000000000..37fafdb4f301 --- /dev/null +++ b/components/camel-azure/camel-azure-common/src/test/java/org/apache/camel/component/azure/common/CredentialTypeTest.java @@ -0,0 +1,53 @@ +/* + * 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.common; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +class CredentialTypeTest { + + @Test + void testAllCredentialTypesExist() { + assertEquals(10, CredentialType.values().length); + } + + @Test + void testValueOfForAllTypes() { + assertNotNull(CredentialType.valueOf("SHARED_KEY_CREDENTIAL")); + assertNotNull(CredentialType.valueOf("SHARED_ACCOUNT_KEY")); + assertNotNull(CredentialType.valueOf("AZURE_IDENTITY")); + assertNotNull(CredentialType.valueOf("AZURE_SAS")); + assertNotNull(CredentialType.valueOf("CONNECTION_STRING")); + assertNotNull(CredentialType.valueOf("CLIENT_SECRET")); + assertNotNull(CredentialType.valueOf("TOKEN_CREDENTIAL")); + assertNotNull(CredentialType.valueOf("SERVICE_CLIENT_INSTANCE")); + assertNotNull(CredentialType.valueOf("ACCESS_KEY")); + assertNotNull(CredentialType.valueOf("FUNCTION_KEY")); + } + + @Test + void testValueOfMatchesComponentSpecificNames() { + // These are the exact same enum value names used in component-specific enums, + // ensuring backward compatibility when resolving from URI parameter strings + assertEquals(CredentialType.AZURE_IDENTITY, CredentialType.valueOf("AZURE_IDENTITY")); + assertEquals(CredentialType.CONNECTION_STRING, CredentialType.valueOf("CONNECTION_STRING")); + assertEquals(CredentialType.SHARED_ACCOUNT_KEY, CredentialType.valueOf("SHARED_ACCOUNT_KEY")); + } +} diff --git a/components/camel-azure/camel-azure-cosmosdb/pom.xml b/components/camel-azure/camel-azure-cosmosdb/pom.xml index e9f14be76d15..21117b7dc0cd 100644 --- a/components/camel-azure/camel-azure-cosmosdb/pom.xml +++ b/components/camel-azure/camel-azure-cosmosdb/pom.xml @@ -36,6 +36,10 @@ </properties> <dependencies> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-azure-common</artifactId> + </dependency> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-support</artifactId> diff --git a/components/camel-azure/camel-azure-cosmosdb/src/main/java/org/apache/camel/component/azure/cosmosdb/CredentialType.java b/components/camel-azure/camel-azure-cosmosdb/src/main/java/org/apache/camel/component/azure/cosmosdb/CredentialType.java index 2ee476684bc2..d00266a456e4 100644 --- a/components/camel-azure/camel-azure-cosmosdb/src/main/java/org/apache/camel/component/azure/cosmosdb/CredentialType.java +++ b/components/camel-azure/camel-azure-cosmosdb/src/main/java/org/apache/camel/component/azure/cosmosdb/CredentialType.java @@ -16,6 +16,10 @@ */ package org.apache.camel.component.azure.cosmosdb; +/** + * @deprecated Use {@link org.apache.camel.component.azure.common.CredentialType} instead. + */ +@Deprecated(since = "4.19.0") public enum CredentialType { /** * storage shared account key diff --git a/components/camel-azure/camel-azure-eventgrid/pom.xml b/components/camel-azure/camel-azure-eventgrid/pom.xml index 506d40a57cd0..77c2e2bb850b 100644 --- a/components/camel-azure/camel-azure-eventgrid/pom.xml +++ b/components/camel-azure/camel-azure-eventgrid/pom.xml @@ -36,6 +36,10 @@ </properties> <dependencies> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-azure-common</artifactId> + </dependency> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-support</artifactId> diff --git a/components/camel-azure/camel-azure-eventgrid/src/main/java/org/apache/camel/component/azure/eventgrid/CredentialType.java b/components/camel-azure/camel-azure-eventgrid/src/main/java/org/apache/camel/component/azure/eventgrid/CredentialType.java index a091748c393e..e756a23a5aaa 100644 --- a/components/camel-azure/camel-azure-eventgrid/src/main/java/org/apache/camel/component/azure/eventgrid/CredentialType.java +++ b/components/camel-azure/camel-azure-eventgrid/src/main/java/org/apache/camel/component/azure/eventgrid/CredentialType.java @@ -16,6 +16,10 @@ */ package org.apache.camel.component.azure.eventgrid; +/** + * @deprecated Use {@link org.apache.camel.component.azure.common.CredentialType} instead. + */ +@Deprecated(since = "4.19.0") public enum CredentialType { /** * EventGrid Access Key diff --git a/components/camel-azure/camel-azure-eventhubs/pom.xml b/components/camel-azure/camel-azure-eventhubs/pom.xml index 767447e25d73..2c3b5dff5fa4 100644 --- a/components/camel-azure/camel-azure-eventhubs/pom.xml +++ b/components/camel-azure/camel-azure-eventhubs/pom.xml @@ -36,6 +36,10 @@ </properties> <dependencies> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-azure-common</artifactId> + </dependency> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-support</artifactId> diff --git a/components/camel-azure/camel-azure-eventhubs/src/main/java/org/apache/camel/component/azure/eventhubs/CredentialType.java b/components/camel-azure/camel-azure-eventhubs/src/main/java/org/apache/camel/component/azure/eventhubs/CredentialType.java index f3d9bff9b58a..9631881ee86b 100644 --- a/components/camel-azure/camel-azure-eventhubs/src/main/java/org/apache/camel/component/azure/eventhubs/CredentialType.java +++ b/components/camel-azure/camel-azure-eventhubs/src/main/java/org/apache/camel/component/azure/eventhubs/CredentialType.java @@ -16,6 +16,10 @@ */ package org.apache.camel.component.azure.eventhubs; +/** + * @deprecated Use {@link org.apache.camel.component.azure.common.CredentialType} instead. + */ +@Deprecated(since = "4.19.0") public enum CredentialType { /** * Eventhubs Connection String diff --git a/components/camel-azure/camel-azure-files/pom.xml b/components/camel-azure/camel-azure-files/pom.xml index 3f83a71f4574..72a87b060a14 100644 --- a/components/camel-azure/camel-azure-files/pom.xml +++ b/components/camel-azure/camel-azure-files/pom.xml @@ -36,6 +36,10 @@ </properties> <dependencies> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-azure-common</artifactId> + </dependency> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-ftp</artifactId> diff --git a/components/camel-azure/camel-azure-files/src/main/java/org/apache/camel/component/file/azure/CredentialType.java b/components/camel-azure/camel-azure-files/src/main/java/org/apache/camel/component/file/azure/CredentialType.java index d251cb9f6fcc..dcfcda9e2aaf 100644 --- a/components/camel-azure/camel-azure-files/src/main/java/org/apache/camel/component/file/azure/CredentialType.java +++ b/components/camel-azure/camel-azure-files/src/main/java/org/apache/camel/component/file/azure/CredentialType.java @@ -16,6 +16,10 @@ */ package org.apache.camel.component.file.azure; +/** + * @deprecated Use {@link org.apache.camel.component.azure.common.CredentialType} instead. + */ +@Deprecated(since = "4.19.0") public enum CredentialType { SHARED_ACCOUNT_KEY, /** diff --git a/components/camel-azure/camel-azure-functions/pom.xml b/components/camel-azure/camel-azure-functions/pom.xml index 008f6c531dbf..47ff1e9051ff 100644 --- a/components/camel-azure/camel-azure-functions/pom.xml +++ b/components/camel-azure/camel-azure-functions/pom.xml @@ -33,6 +33,10 @@ <description>Camel Azure Functions Component</description> <dependencies> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-azure-common</artifactId> + </dependency> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-support</artifactId> diff --git a/components/camel-azure/camel-azure-functions/src/main/java/org/apache/camel/component/azure/functions/CredentialType.java b/components/camel-azure/camel-azure-functions/src/main/java/org/apache/camel/component/azure/functions/CredentialType.java index 7bae8a349248..450fd8fddf0f 100644 --- a/components/camel-azure/camel-azure-functions/src/main/java/org/apache/camel/component/azure/functions/CredentialType.java +++ b/components/camel-azure/camel-azure-functions/src/main/java/org/apache/camel/component/azure/functions/CredentialType.java @@ -18,7 +18,10 @@ package org.apache.camel.component.azure.functions; /** * Determines the credential strategy to use for Azure Functions operations. + * + * @deprecated Use {@link org.apache.camel.component.azure.common.CredentialType} instead. */ +@Deprecated(since = "4.19.0") public enum CredentialType { /** * Uses DefaultAzureCredential for automatic credential chain. Supports environment variables, managed identity, diff --git a/components/camel-azure/camel-azure-key-vault/pom.xml b/components/camel-azure/camel-azure-key-vault/pom.xml index 9f0c8b0a8c34..dbd8798ef994 100644 --- a/components/camel-azure/camel-azure-key-vault/pom.xml +++ b/components/camel-azure/camel-azure-key-vault/pom.xml @@ -36,6 +36,10 @@ </properties> <dependencies> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-azure-common</artifactId> + </dependency> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-support</artifactId> diff --git a/components/camel-azure/camel-azure-key-vault/src/main/java/org/apache/camel/component/azure/key/vault/CredentialType.java b/components/camel-azure/camel-azure-key-vault/src/main/java/org/apache/camel/component/azure/key/vault/CredentialType.java index 8c8b294a98a3..4182186b373d 100644 --- a/components/camel-azure/camel-azure-key-vault/src/main/java/org/apache/camel/component/azure/key/vault/CredentialType.java +++ b/components/camel-azure/camel-azure-key-vault/src/main/java/org/apache/camel/component/azure/key/vault/CredentialType.java @@ -16,6 +16,10 @@ */ package org.apache.camel.component.azure.key.vault; +/** + * @deprecated Use {@link org.apache.camel.component.azure.common.CredentialType} instead. + */ +@Deprecated(since = "4.19.0") public enum CredentialType { /** * Client Secret Credential diff --git a/components/camel-azure/camel-azure-servicebus/pom.xml b/components/camel-azure/camel-azure-servicebus/pom.xml index 63559d4caefd..9ba53064ea00 100644 --- a/components/camel-azure/camel-azure-servicebus/pom.xml +++ b/components/camel-azure/camel-azure-servicebus/pom.xml @@ -36,6 +36,10 @@ </properties> <dependencies> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-azure-common</artifactId> + </dependency> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-support</artifactId> diff --git a/components/camel-azure/camel-azure-servicebus/src/main/java/org/apache/camel/component/azure/servicebus/CredentialType.java b/components/camel-azure/camel-azure-servicebus/src/main/java/org/apache/camel/component/azure/servicebus/CredentialType.java index 7a0cd4a6899c..a3ee00ebf433 100644 --- a/components/camel-azure/camel-azure-servicebus/src/main/java/org/apache/camel/component/azure/servicebus/CredentialType.java +++ b/components/camel-azure/camel-azure-servicebus/src/main/java/org/apache/camel/component/azure/servicebus/CredentialType.java @@ -16,6 +16,10 @@ */ package org.apache.camel.component.azure.servicebus; +/** + * @deprecated Use {@link org.apache.camel.component.azure.common.CredentialType} instead. + */ +@Deprecated(since = "4.19.0") public enum CredentialType { /** * Servicebus Connection String diff --git a/components/camel-azure/camel-azure-storage-blob/pom.xml b/components/camel-azure/camel-azure-storage-blob/pom.xml index d1041a9e9e99..dfb161fe8653 100644 --- a/components/camel-azure/camel-azure-storage-blob/pom.xml +++ b/components/camel-azure/camel-azure-storage-blob/pom.xml @@ -41,6 +41,10 @@ </properties> <dependencies> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-azure-common</artifactId> + </dependency> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-support</artifactId> diff --git a/components/camel-azure/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/CredentialType.java b/components/camel-azure/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/CredentialType.java index cc7f10991c5e..f97643d11dc1 100644 --- a/components/camel-azure/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/CredentialType.java +++ b/components/camel-azure/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/CredentialType.java @@ -16,6 +16,10 @@ */ package org.apache.camel.component.azure.storage.blob; +/** + * @deprecated Use {@link org.apache.camel.component.azure.common.CredentialType} instead. + */ +@Deprecated(since = "4.19.0") public enum CredentialType { /** * Shared key credential diff --git a/components/camel-azure/camel-azure-storage-datalake/pom.xml b/components/camel-azure/camel-azure-storage-datalake/pom.xml index a0413132d999..0e990ad86745 100644 --- a/components/camel-azure/camel-azure-storage-datalake/pom.xml +++ b/components/camel-azure/camel-azure-storage-datalake/pom.xml @@ -33,6 +33,10 @@ <description>Camel Azure Datalake Component</description> <dependencies> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-azure-common</artifactId> + </dependency> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-support</artifactId> diff --git a/components/camel-azure/camel-azure-storage-datalake/src/main/java/org/apache/camel/component/azure/storage/datalake/CredentialType.java b/components/camel-azure/camel-azure-storage-datalake/src/main/java/org/apache/camel/component/azure/storage/datalake/CredentialType.java index 676aed072414..91045f371cc4 100644 --- a/components/camel-azure/camel-azure-storage-datalake/src/main/java/org/apache/camel/component/azure/storage/datalake/CredentialType.java +++ b/components/camel-azure/camel-azure-storage-datalake/src/main/java/org/apache/camel/component/azure/storage/datalake/CredentialType.java @@ -16,6 +16,10 @@ */ package org.apache.camel.component.azure.storage.datalake; +/** + * @deprecated Use {@link org.apache.camel.component.azure.common.CredentialType} instead. + */ +@Deprecated(since = "4.19.0") public enum CredentialType { /** * Shared key credential diff --git a/components/camel-azure/camel-azure-storage-queue/pom.xml b/components/camel-azure/camel-azure-storage-queue/pom.xml index d383b3ee324d..311f68ef8842 100644 --- a/components/camel-azure/camel-azure-storage-queue/pom.xml +++ b/components/camel-azure/camel-azure-storage-queue/pom.xml @@ -41,6 +41,10 @@ </properties> <dependencies> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-azure-common</artifactId> + </dependency> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-support</artifactId> diff --git a/components/camel-azure/camel-azure-storage-queue/src/main/java/org/apache/camel/component/azure/storage/queue/CredentialType.java b/components/camel-azure/camel-azure-storage-queue/src/main/java/org/apache/camel/component/azure/storage/queue/CredentialType.java index c34ebbeb9296..528d82de7183 100644 --- a/components/camel-azure/camel-azure-storage-queue/src/main/java/org/apache/camel/component/azure/storage/queue/CredentialType.java +++ b/components/camel-azure/camel-azure-storage-queue/src/main/java/org/apache/camel/component/azure/storage/queue/CredentialType.java @@ -16,6 +16,10 @@ */ package org.apache.camel.component.azure.storage.queue; +/** + * @deprecated Use {@link org.apache.camel.component.azure.common.CredentialType} instead. + */ +@Deprecated(since = "4.19.0") public enum CredentialType { /** * Shared key credential diff --git a/components/camel-azure/pom.xml b/components/camel-azure/pom.xml index bcf08acc86e8..1f933557735b 100644 --- a/components/camel-azure/pom.xml +++ b/components/camel-azure/pom.xml @@ -45,6 +45,7 @@ </dependencyManagement> <modules> + <module>camel-azure-common</module> <module>camel-azure-eventhubs</module> <module>camel-azure-eventgrid</module> <module>camel-azure-storage-blob</module> diff --git a/coverage/pom.xml b/coverage/pom.xml index 0ad772205afd..8a1f698bb057 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -466,6 +466,11 @@ <artifactId>camel-aws2-translate</artifactId> <version>${project.version}</version> </dependency> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-azure-common</artifactId> + <version>${project.version}</version> + </dependency> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-azure-cosmosdb</artifactId> diff --git a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_19.adoc b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_19.adoc index 411bea6e0528..5094008b1b78 100644 --- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_19.adoc +++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_19.adoc @@ -430,6 +430,31 @@ you will need to add the `camel-ftp-common` dependency to your project: </dependency> ---- +=== camel-azure (CredentialType standardization) + +The component-specific `CredentialType` enums in all Azure components have been deprecated in favor of a single shared +`org.apache.camel.component.azure.common.CredentialType` enum in the new `camel-azure-common` module. This shared enum +contains the union of all credential types across all Azure components. + +If you reference `CredentialType` in Java code, update your imports: + +Before: +[source,java] +---- +import org.apache.camel.component.azure.storage.blob.CredentialType; +---- + +After: +[source,java] +---- +import org.apache.camel.component.azure.common.CredentialType; +---- + +URI-based configuration (e.g., `credentialType=AZURE_IDENTITY`) requires no changes, as the enum value names are identical. + +The deprecated component-specific enums will be removed in a future release. The new `camel-azure-common` module is +automatically included as a transitive dependency of all Azure components. + === camel-quickfix Upgraded QuickFixJ from 2.3.2 to 3.0.0 in `camel-quickfix` component. diff --git a/parent/pom.xml b/parent/pom.xml index 891f9e99f8af..5f49fa329f6f 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -992,6 +992,11 @@ <artifactId>camel-aws2-translate</artifactId> <version>${project.version}</version> </dependency> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-azure-common</artifactId> + <version>${project.version}</version> + </dependency> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-azure-cosmosdb</artifactId> diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java index 57eb38d4bbd2..ac0515a96e51 100644 --- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java +++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java @@ -932,6 +932,7 @@ public class PrepareCatalogMojo extends AbstractMojo { case "camel-aws": case "camel-aws-common": case "camel-azure": + case "camel-azure-common": case "camel-box": case "camel-cxf": case "camel-debezium":
