From 2c8e5cbdd2d3ce75a01628c91efe2b28a9aa8776 Mon Sep 17 00:00:00 2001 From: Mike Eltsufin Date: Sun, 5 May 2024 22:59:09 -0400 Subject: [PATCH] fix: AlloyDB should not load when Postgres starter is used (#2848) Making `alloydb-jdbc-connector` optional dependency in autoconfig module. Fixes: #2847. --- spring-cloud-gcp-autoconfigure/pom.xml | 1 + .../alloydb/AlloyDbEnvironmentPostProcessor.java | 8 ++++---- .../SqlPostgresSampleApplicationIntegrationTests.java | 7 +++++++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/spring-cloud-gcp-autoconfigure/pom.xml b/spring-cloud-gcp-autoconfigure/pom.xml index 3ebdab813b..1d73d93760 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 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) { 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(); + } }