This is an automated email from the ASF dual-hosted git repository.
acosentino 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 f8b12dff2568 CAMEL-23045 - Generalize Google services authentication
with common module - Google Vertex AI (#21672)
f8b12dff2568 is described below
commit f8b12dff2568c989033dfcd886e3700db33932eb
Author: Andrea Cosentino <[email protected]>
AuthorDate: Mon Mar 2 10:50:43 2026 +0100
CAMEL-23045 - Generalize Google services authentication with common module
- Google Vertex AI (#21672)
Signed-off-by: Andrea Cosentino <[email protected]>
---
components/camel-google/camel-google-vertexai/pom.xml | 4 ++++
.../google/vertexai/GoogleVertexAIConfiguration.java | 4 +++-
.../vertexai/GoogleVertexAIConnectionFactory.java | 17 ++++++-----------
3 files changed, 13 insertions(+), 12 deletions(-)
diff --git a/components/camel-google/camel-google-vertexai/pom.xml
b/components/camel-google/camel-google-vertexai/pom.xml
index ce835b628832..18d8a58b37fa 100644
--- a/components/camel-google/camel-google-vertexai/pom.xml
+++ b/components/camel-google/camel-google-vertexai/pom.xml
@@ -37,6 +37,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-vertexai/src/main/java/org/apache/camel/component/google/vertexai/GoogleVertexAIConfiguration.java
b/components/camel-google/camel-google-vertexai/src/main/java/org/apache/camel/component/google/vertexai/GoogleVertexAIConfiguration.java
index 32c334fbc05a..6b82a119a633 100644
---
a/components/camel-google/camel-google-vertexai/src/main/java/org/apache/camel/component/google/vertexai/GoogleVertexAIConfiguration.java
+++
b/components/camel-google/camel-google-vertexai/src/main/java/org/apache/camel/component/google/vertexai/GoogleVertexAIConfiguration.java
@@ -19,13 +19,14 @@ package org.apache.camel.component.google.vertexai;
import com.google.cloud.aiplatform.v1.PredictionServiceClient;
import com.google.genai.Client;
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 GoogleVertexAIConfiguration implements Cloneable {
+public class GoogleVertexAIConfiguration implements Cloneable,
GoogleCommonConfiguration {
@UriPath(label = "common", description = "Google Cloud Project ID")
@Metadata(required = true)
@@ -123,6 +124,7 @@ public class GoogleVertexAIConfiguration implements
Cloneable {
this.modelId = modelId;
}
+ @Override
public String getServiceAccountKey() {
return serviceAccountKey;
}
diff --git
a/components/camel-google/camel-google-vertexai/src/main/java/org/apache/camel/component/google/vertexai/GoogleVertexAIConnectionFactory.java
b/components/camel-google/camel-google-vertexai/src/main/java/org/apache/camel/component/google/vertexai/GoogleVertexAIConnectionFactory.java
index 29fe4d6a081b..54e85e273e12 100644
---
a/components/camel-google/camel-google-vertexai/src/main/java/org/apache/camel/component/google/vertexai/GoogleVertexAIConnectionFactory.java
+++
b/components/camel-google/camel-google-vertexai/src/main/java/org/apache/camel/component/google/vertexai/GoogleVertexAIConnectionFactory.java
@@ -16,15 +16,14 @@
*/
package org.apache.camel.component.google.vertexai;
-import java.io.InputStream;
import java.util.Arrays;
import java.util.List;
+import com.google.auth.Credentials;
import com.google.auth.oauth2.GoogleCredentials;
-import com.google.common.base.Strings;
import com.google.genai.Client;
import org.apache.camel.CamelContext;
-import org.apache.camel.support.ResourceHelper;
+import org.apache.camel.component.google.common.GoogleCredentialsHelper;
public final class GoogleVertexAIConnectionFactory {
@@ -50,15 +49,11 @@ public final class GoogleVertexAIConnectionFactory {
.project(configuration.getProjectId())
.location(configuration.getLocation());
- if (!Strings.isNullOrEmpty(configuration.getServiceAccountKey())) {
- // Load credentials from the service account key file
- InputStream credentialsStream
- =
ResourceHelper.resolveMandatoryResourceAsInputStream(context,
configuration.getServiceAccountKey());
- GoogleCredentials credentials =
GoogleCredentials.fromStream(credentialsStream)
- .createScoped(VERTEX_AI_SCOPES);
- clientBuilder.credentials(credentials);
+ Credentials credentials =
GoogleCredentialsHelper.getCredentials(context, configuration,
VERTEX_AI_SCOPES);
+ if (credentials instanceof GoogleCredentials) {
+ clientBuilder.credentials((GoogleCredentials) credentials);
}
- // If no service account key is provided, it will use Application
Default Credentials
+ // If no credentials are returned (null), it will use Application
Default Credentials
// This requires the environment variable
GOOGLE_APPLICATION_CREDENTIALS to be set
// with the service account file path
// More info at https://cloud.google.com/docs/authentication/production