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

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

commit a995be77d1188ab7bedad73f7561bc67d6025db8
Author: Andrea Cosentino <[email protected]>
AuthorDate: Tue Feb 24 18:17:13 2026 +0100

    CAMEL-23039 - Generalize Google services authentication with common module 
- Google Cloud Functions
    
    Signed-off-by: Andrea Cosentino <[email protected]>
---
 .../camel-google/camel-google-functions/pom.xml    |  4 ++++
 .../GoogleCloudFunctionsClientFactory.java         | 23 ++++++++--------------
 .../GoogleCloudFunctionsConfiguration.java         |  4 +++-
 3 files changed, 15 insertions(+), 16 deletions(-)

diff --git a/components/camel-google/camel-google-functions/pom.xml 
b/components/camel-google/camel-google-functions/pom.xml
index fe8c23644ed3..89b38625bd61 100644
--- a/components/camel-google/camel-google-functions/pom.xml
+++ b/components/camel-google/camel-google-functions/pom.xml
@@ -38,6 +38,10 @@
     </properties>
 
     <dependencies>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-google-common</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.apache.camel</groupId>
             <artifactId>camel-support</artifactId>
diff --git 
a/components/camel-google/camel-google-functions/src/main/java/org/apache/camel/component/google/functions/GoogleCloudFunctionsClientFactory.java
 
b/components/camel-google/camel-google-functions/src/main/java/org/apache/camel/component/google/functions/GoogleCloudFunctionsClientFactory.java
index 02b7796676f5..34fec21430c6 100644
--- 
a/components/camel-google/camel-google-functions/src/main/java/org/apache/camel/component/google/functions/GoogleCloudFunctionsClientFactory.java
+++ 
b/components/camel-google/camel-google-functions/src/main/java/org/apache/camel/component/google/functions/GoogleCloudFunctionsClientFactory.java
@@ -16,16 +16,12 @@
  */
 package org.apache.camel.component.google.functions;
 
-import java.io.InputStream;
-
 import com.google.api.gax.core.FixedCredentialsProvider;
 import com.google.auth.Credentials;
-import com.google.auth.oauth2.ServiceAccountCredentials;
 import com.google.cloud.functions.v1.CloudFunctionsServiceClient;
 import com.google.cloud.functions.v1.CloudFunctionsServiceSettings;
-import com.google.common.base.Strings;
 import org.apache.camel.CamelContext;
-import org.apache.camel.support.ResourceHelper;
+import org.apache.camel.component.google.common.GoogleCredentialsHelper;
 
 public final class GoogleCloudFunctionsClientFactory {
     /**
@@ -38,22 +34,19 @@ public final class GoogleCloudFunctionsClientFactory {
             CamelContext context,
             GoogleCloudFunctionsConfiguration configuration)
             throws Exception {
-        CloudFunctionsServiceClient cloudFunctionsClient = null;
-        if (!Strings.isNullOrEmpty(configuration.getServiceAccountKey())) {
-            InputStream resolveMandatoryResourceAsInputStream
-                    = 
ResourceHelper.resolveMandatoryResourceAsInputStream(context, 
configuration.getServiceAccountKey());
-            Credentials myCredentials = ServiceAccountCredentials
-                    .fromStream(resolveMandatoryResourceAsInputStream);
+
+        Credentials credentials = 
GoogleCredentialsHelper.getCredentials(context, configuration);
+
+        if (credentials != null) {
             CloudFunctionsServiceSettings settings = 
CloudFunctionsServiceSettings.newBuilder()
-                    
.setCredentialsProvider(FixedCredentialsProvider.create(myCredentials)).build();
-            cloudFunctionsClient = 
CloudFunctionsServiceClient.create(settings);
+                    
.setCredentialsProvider(FixedCredentialsProvider.create(credentials)).build();
+            return CloudFunctionsServiceClient.create(settings);
         } else {
             // it needs to define the environment variable 
GOOGLE_APPLICATION_CREDENTIALS
             // with the service account file
             // more info at 
https://cloud.google.com/docs/authentication/production
             CloudFunctionsServiceSettings settings = 
CloudFunctionsServiceSettings.newBuilder().build();
-            cloudFunctionsClient = 
CloudFunctionsServiceClient.create(settings);
+            return CloudFunctionsServiceClient.create(settings);
         }
-        return cloudFunctionsClient;
     }
 }
diff --git 
a/components/camel-google/camel-google-functions/src/main/java/org/apache/camel/component/google/functions/GoogleCloudFunctionsConfiguration.java
 
b/components/camel-google/camel-google-functions/src/main/java/org/apache/camel/component/google/functions/GoogleCloudFunctionsConfiguration.java
index 199ed1d2f662..4481994b7ed0 100644
--- 
a/components/camel-google/camel-google-functions/src/main/java/org/apache/camel/component/google/functions/GoogleCloudFunctionsConfiguration.java
+++ 
b/components/camel-google/camel-google-functions/src/main/java/org/apache/camel/component/google/functions/GoogleCloudFunctionsConfiguration.java
@@ -18,13 +18,14 @@ package org.apache.camel.component.google.functions;
 
 import com.google.cloud.functions.v1.CloudFunctionsServiceClient;
 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;
 import org.apache.camel.spi.UriPath;
 
 @UriParams
-public class GoogleCloudFunctionsConfiguration implements Cloneable {
+public class GoogleCloudFunctionsConfiguration implements Cloneable, 
GoogleCommonConfiguration {
 
     @UriPath(label = "common", description = "The user-defined name of the 
function")
     @Metadata(required = true)
@@ -63,6 +64,7 @@ public class GoogleCloudFunctionsConfiguration implements 
Cloneable {
         this.functionName = functionName;
     }
 
+    @Override
     public String getServiceAccountKey() {
         return serviceAccountKey;
     }

Reply via email to