From 3d4070da378ed79c4529477c519504ce45879732 Mon Sep 17 00:00:00 2001 From: Mike Eltsufin Date: Sat, 4 May 2024 10:00:19 -0400 Subject: [PATCH 1/3] fix: AlloyDB should not load when Postgres starter is used Making `alloydb-jdbc-connector` optional dependency in autoconfig module. Fixes: #2847. --- spring-cloud-gcp-autoconfigure/pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/spring-cloud-gcp-autoconfigure/pom.xml b/spring-cloud-gcp-autoconfigure/pom.xml index cb1b198dc4..c0efe6ba9d 100644 --- a/spring-cloud-gcp-autoconfigure/pom.xml +++ b/spring-cloud-gcp-autoconfigure/pom.xml @@ -302,6 +302,7 @@ com.google.cloud alloydb-jdbc-connector + true From 07c6d109fdc50cfa586572fc68d559d56fb9b1c9 Mon Sep 17 00:00:00 2001 From: Mike Eltsufin Date: Sat, 4 May 2024 10:12:59 -0400 Subject: [PATCH 2/3] setup metrics only if alloydb is enabled --- .../alloydb/AlloyDbEnvironmentPostProcessor.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/spring-cloud-gcp-autoconfigure/src/main/java/com/google/cloud/spring/autoconfigure/alloydb/AlloyDbEnvironmentPostProcessor.java b/spring-cloud-gcp-autoconfigure/src/main/java/com/google/cloud/spring/autoconfigure/alloydb/AlloyDbEnvironmentPostProcessor.java index dc98efb3ca..dddb1a18d3 100644 --- a/spring-cloud-gcp-autoconfigure/src/main/java/com/google/cloud/spring/autoconfigure/alloydb/AlloyDbEnvironmentPostProcessor.java +++ b/spring-cloud-gcp-autoconfigure/src/main/java/com/google/cloud/spring/autoconfigure/alloydb/AlloyDbEnvironmentPostProcessor.java @@ -85,11 +85,11 @@ && isOnClasspath(JDBC_DRIVER_CLASS)) { environment .getPropertySources() .addFirst(new MapPropertySource("ALLOYDB_DATA_SOURCE_URL", primaryMap)); - } - // support usage metrics - ConnectorRegistry.addArtifactId( - "spring-cloud-gcp-alloydb/" + this.getClass().getPackage().getImplementationVersion()); + // support usage metrics + ConnectorRegistry.addArtifactId( + "spring-cloud-gcp-alloydb/" + this.getClass().getPackage().getImplementationVersion()); + } } private String getJdbcUrl(AlloyDbProperties properties) { From 2188110b6cf024ab8d63374ad8322a919b60b2df Mon Sep 17 00:00:00 2001 From: Mike Eltsufin Date: Sat, 4 May 2024 17:14:47 -0400 Subject: [PATCH 3/3] add test --- .../SqlPostgresSampleApplicationIntegrationTests.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/spring-cloud-gcp-samples/spring-cloud-gcp-sql-postgres-sample/src/test/java/com/example/SqlPostgresSampleApplicationIntegrationTests.java b/spring-cloud-gcp-samples/spring-cloud-gcp-sql-postgres-sample/src/test/java/com/example/SqlPostgresSampleApplicationIntegrationTests.java index efa27f90e1..3bd80c8620 100644 --- a/spring-cloud-gcp-samples/spring-cloud-gcp-sql-postgres-sample/src/test/java/com/example/SqlPostgresSampleApplicationIntegrationTests.java +++ b/spring-cloud-gcp-samples/spring-cloud-gcp-sql-postgres-sample/src/test/java/com/example/SqlPostgresSampleApplicationIntegrationTests.java @@ -32,6 +32,7 @@ import org.springframework.http.ResponseEntity; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.test.context.junit.jupiter.SpringExtension; +import org.springframework.util.ClassUtils; /** Simple integration test to verify the SQL sample application with Postgres. */ @EnabledIfSystemProperty(named = "it.cloudsql", matches = "true") @@ -69,4 +70,10 @@ void testSqlRowsAccess() { "[jonas@example.com, Jonas, Goncalves]", "[fejsa@example.com, Ljubomir, Fejsa]"); } + + @Test + void testNoAllyDbLoaded() { + assertThat(ClassUtils.isPresent("com.google.cloud.alloydb.SocketFactory", null)) + .isFalse(); + } }