This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch 23166 in repository https://gitbox.apache.org/repos/asf/camel.git
commit 64ff8b3fa48abcb408ff9bcf6d58ce51ef8d2819 Author: Andrea Cosentino <[email protected]> AuthorDate: Tue Mar 10 14:57:17 2026 +0100 CAMEL-23166 - Generalize Google services authentication with common module - Google Firestore Signed-off-by: Andrea Cosentino <[email protected]> --- components/camel-google/camel-google-firestore/pom.xml | 4 ++++ .../google/firestore/GoogleFirestoreConfiguration.java | 4 +++- .../firestore/GoogleFirestoreConnectionFactory.java | 15 +++++---------- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/components/camel-google/camel-google-firestore/pom.xml b/components/camel-google/camel-google-firestore/pom.xml index a5ccb15b7fa8..bd5c70d93767 100644 --- a/components/camel-google/camel-google-firestore/pom.xml +++ b/components/camel-google/camel-google-firestore/pom.xml @@ -45,6 +45,10 @@ <groupId>org.apache.camel</groupId> <artifactId>camel-health</artifactId> </dependency> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-google-common</artifactId> + </dependency> <dependency> <groupId>com.google.cloud</groupId> <artifactId>google-cloud-firestore</artifactId> diff --git a/components/camel-google/camel-google-firestore/src/main/java/org/apache/camel/component/google/firestore/GoogleFirestoreConfiguration.java b/components/camel-google/camel-google-firestore/src/main/java/org/apache/camel/component/google/firestore/GoogleFirestoreConfiguration.java index be741b9dab32..0b4fcbb99ab2 100644 --- a/components/camel-google/camel-google-firestore/src/main/java/org/apache/camel/component/google/firestore/GoogleFirestoreConfiguration.java +++ b/components/camel-google/camel-google-firestore/src/main/java/org/apache/camel/component/google/firestore/GoogleFirestoreConfiguration.java @@ -18,6 +18,7 @@ package org.apache.camel.component.google.firestore; import com.google.cloud.firestore.Firestore; import org.apache.camel.RuntimeCamelException; +import org.apache.camel.component.google.common.GoogleCommonConfiguration; import org.apache.camel.spi.Metadata; import org.apache.camel.spi.UriParam; import org.apache.camel.spi.UriParams; @@ -27,7 +28,7 @@ import org.apache.camel.spi.UriPath; * Configuration for the Google Firestore component. */ @UriParams -public class GoogleFirestoreConfiguration implements Cloneable { +public class GoogleFirestoreConfiguration implements Cloneable, GoogleCommonConfiguration { @UriPath(label = "common", description = "The collection name to use") @Metadata(required = true) @@ -94,6 +95,7 @@ public class GoogleFirestoreConfiguration implements Cloneable { this.databaseId = databaseId; } + @Override public String getServiceAccountKey() { return serviceAccountKey; } diff --git a/components/camel-google/camel-google-firestore/src/main/java/org/apache/camel/component/google/firestore/GoogleFirestoreConnectionFactory.java b/components/camel-google/camel-google-firestore/src/main/java/org/apache/camel/component/google/firestore/GoogleFirestoreConnectionFactory.java index 73874d23fd71..45b6f06f2420 100644 --- a/components/camel-google/camel-google-firestore/src/main/java/org/apache/camel/component/google/firestore/GoogleFirestoreConnectionFactory.java +++ b/components/camel-google/camel-google-firestore/src/main/java/org/apache/camel/component/google/firestore/GoogleFirestoreConnectionFactory.java @@ -16,15 +16,12 @@ */ package org.apache.camel.component.google.firestore; -import java.io.InputStream; - import com.google.api.client.util.Strings; -import com.google.auth.oauth2.GoogleCredentials; -import com.google.auth.oauth2.ServiceAccountCredentials; +import com.google.auth.Credentials; import com.google.cloud.firestore.Firestore; import com.google.cloud.firestore.FirestoreOptions; import org.apache.camel.CamelContext; -import org.apache.camel.support.ResourceHelper; +import org.apache.camel.component.google.common.GoogleCredentialsHelper; /** * Factory for creating Google Firestore client connections. @@ -48,11 +45,9 @@ public final class GoogleFirestoreConnectionFactory { public static Firestore create(CamelContext context, GoogleFirestoreConfiguration configuration) throws Exception { FirestoreOptions.Builder builder = FirestoreOptions.newBuilder(); - // Set credentials if service account key is provided - if (!Strings.isNullOrEmpty(configuration.getServiceAccountKey())) { - InputStream credentialsStream = ResourceHelper.resolveMandatoryResourceAsInputStream( - context, configuration.getServiceAccountKey()); - GoogleCredentials credentials = ServiceAccountCredentials.fromStream(credentialsStream); + // Use GoogleCredentialsHelper for credential resolution (service account key or ADC fallback) + Credentials credentials = GoogleCredentialsHelper.getCredentials(context, configuration); + if (credentials != null) { builder.setCredentials(credentials); }
