From 0cb8ffe3844d3ad6614bef05169bf3bcb914053f Mon Sep 17 00:00:00 2001 From: Joe Wang Date: Fri, 2 Dec 2022 17:56:01 -0500 Subject: [PATCH] remove mysql r2dbc support --- spring-cloud-gcp-autoconfigure/pom.xml | 15 +--- ...R2dbcCloudSqlEnvironmentPostProcessor.java | 16 ++-- ...CloudSqlEnvironmentPostProcessorTests.java | 75 ++----------------- spring-cloud-gcp-dependencies/pom.xml | 16 ---- 4 files changed, 14 insertions(+), 108 deletions(-) diff --git a/spring-cloud-gcp-autoconfigure/pom.xml b/spring-cloud-gcp-autoconfigure/pom.xml index ceba37d6b8..432418bc23 100644 --- a/spring-cloud-gcp-autoconfigure/pom.xml +++ b/spring-cloud-gcp-autoconfigure/pom.xml @@ -117,20 +117,7 @@ test - - - com.google.cloud.sql - cloud-sql-connector-r2dbc-mysql - true - - - dev.miku - r2dbc-mysql - true - - - - + com.google.cloud.sql cloud-sql-connector-r2dbc-postgres diff --git a/spring-cloud-gcp-autoconfigure/src/main/java/com/google/cloud/spring/autoconfigure/sql/R2dbcCloudSqlEnvironmentPostProcessor.java b/spring-cloud-gcp-autoconfigure/src/main/java/com/google/cloud/spring/autoconfigure/sql/R2dbcCloudSqlEnvironmentPostProcessor.java index 4028e39ddf..45a293416b 100644 --- a/spring-cloud-gcp-autoconfigure/src/main/java/com/google/cloud/spring/autoconfigure/sql/R2dbcCloudSqlEnvironmentPostProcessor.java +++ b/spring-cloud-gcp-autoconfigure/src/main/java/com/google/cloud/spring/autoconfigure/sql/R2dbcCloudSqlEnvironmentPostProcessor.java @@ -84,10 +84,10 @@ String createUrl(DatabaseType databaseType, GcpCloudSqlProperties sqlProperties) } /** - * Returns {@link DatabaseType} constant based on whether mySQL or postgreSQL R2DBC driver and + * Returns {@link DatabaseType} constant based on whether postgresSQL R2DBC driver and * connector dependencies are present on the classpath. Returns null if Cloud SQL is not enabled * in Spring Cloud GCP, CredentialFactory is not present or ConnectionFactory (which is used to - * enable Spring R2DBC auto-configuration) is not present. + * enable Spring R2DBC autoconfiguration) is not present. * * @param environment environment to post-process * @return database type @@ -95,14 +95,10 @@ String createUrl(DatabaseType databaseType, GcpCloudSqlProperties sqlProperties) DatabaseType getEnabledDatabaseType(ConfigurableEnvironment environment) { if (isR2dbcEnabled(environment) && isOnClasspath("com.google.cloud.sql.CredentialFactory") - && isOnClasspath("io.r2dbc.spi.ConnectionFactory")) { - if (isOnClasspath("com.google.cloud.sql.core.GcpConnectionFactoryProviderMysql") - && isOnClasspath("dev.miku.r2dbc.mysql.MySqlConnectionFactoryProvider")) { - return DatabaseType.MYSQL; - } else if (isOnClasspath("com.google.cloud.sql.core.GcpConnectionFactoryProviderPostgres") - && isOnClasspath("io.r2dbc.postgresql.PostgresqlConnectionFactoryProvider")) { - return DatabaseType.POSTGRESQL; - } + && isOnClasspath("io.r2dbc.spi.ConnectionFactory") + && isOnClasspath("com.google.cloud.sql.core.GcpConnectionFactoryProviderPostgres") + && isOnClasspath("io.r2dbc.postgresql.PostgresqlConnectionFactoryProvider")) { + return DatabaseType.POSTGRESQL; } return null; } diff --git a/spring-cloud-gcp-autoconfigure/src/test/java/com/google/cloud/spring/autoconfigure/sql/R2dbcCloudSqlEnvironmentPostProcessorTests.java b/spring-cloud-gcp-autoconfigure/src/test/java/com/google/cloud/spring/autoconfigure/sql/R2dbcCloudSqlEnvironmentPostProcessorTests.java index 44a34dbd76..ea6046e79b 100644 --- a/spring-cloud-gcp-autoconfigure/src/test/java/com/google/cloud/spring/autoconfigure/sql/R2dbcCloudSqlEnvironmentPostProcessorTests.java +++ b/spring-cloud-gcp-autoconfigure/src/test/java/com/google/cloud/spring/autoconfigure/sql/R2dbcCloudSqlEnvironmentPostProcessorTests.java @@ -20,6 +20,7 @@ import java.util.Arrays; import java.util.HashSet; +import java.util.List; import java.util.Set; import org.junit.jupiter.api.Test; import org.springframework.boot.SpringApplication; @@ -29,7 +30,7 @@ /** Tests for {@link R2dbcCloudSqlEnvironmentPostProcessor}. */ class R2dbcCloudSqlEnvironmentPostProcessorTests { - private R2dbcCloudSqlEnvironmentPostProcessor r2dbcPostProcessor = + private final R2dbcCloudSqlEnvironmentPostProcessor r2dbcPostProcessor = new R2dbcCloudSqlEnvironmentPostProcessor(); ApplicationContextRunner contextRunner = @@ -39,15 +40,6 @@ class R2dbcCloudSqlEnvironmentPostProcessorTests { r2dbcPostProcessor.postProcessEnvironment( configurableApplicationContext.getEnvironment(), new SpringApplication())); - @Test - void testCreateUrl_mySql() { - GcpCloudSqlProperties properties = new GcpCloudSqlProperties(); - properties.setDatabaseName("my-database"); - properties.setInstanceConnectionName("my-instance-connection-name"); - String r2dbcUrl = r2dbcPostProcessor.createUrl(DatabaseType.MYSQL, properties); - assertThat(r2dbcUrl).isEqualTo("r2dbc:gcp:mysql://my-instance-connection-name/my-database"); - } - @Test void testCreateUrl_postgres() { GcpCloudSqlProperties properties = new GcpCloudSqlProperties(); @@ -57,51 +49,6 @@ void testCreateUrl_postgres() { assertThat(r2dbcUrl).isEqualTo("r2dbc:gcp:postgres://my-instance-connection-name/my-database"); } - @Test - void testSetR2dbcProperty_mySql_defaultUsername() { - this.contextRunner - .withPropertyValues( - "spring.cloud.gcp.sql.databaseName=my-database", - "spring.cloud.gcp.sql.instanceConnectionName=my-project:region:my-instance") - .run( - context -> { - assertThat(context.getEnvironment().getProperty("spring.r2dbc.url")) - .isEqualTo("r2dbc:gcp:mysql://my-project:region:my-instance/my-database"); - assertThat(context.getEnvironment().getProperty("spring.r2dbc.username")) - .isEqualTo("root"); - }); - } - - @Test - void testSetR2dbcProperty_mySql_usernameProvided() { - this.contextRunner - .withPropertyValues( - "spring.cloud.gcp.sql.databaseName=my-database", - "spring.cloud.gcp.sql.instanceConnectionName=my-project:region:my-instance", - "spring.r2dbc.username=my-username") - .run( - context -> { - assertThat(context.getEnvironment().getProperty("spring.r2dbc.url")) - .isEqualTo("r2dbc:gcp:mysql://my-project:region:my-instance/my-database"); - assertThat(context.getEnvironment().getProperty("spring.r2dbc.username")) - .isEqualTo("my-username"); - }); - } - - @Test - void testSetR2dbcProperty_mySql_urlProvidedByUserIgnored() { - this.contextRunner - .withPropertyValues( - "spring.cloud.gcp.sql.databaseName=my-database", - "spring.cloud.gcp.sql.instanceConnectionName=my-project:region:my-instance", - "spring.r2dbc.url=ignored") - .run( - context -> { - assertThat(context.getEnvironment().getProperty("spring.r2dbc.url")) - .isEqualTo("r2dbc:gcp:mysql://my-project:region:my-instance/my-database"); - }); - } - @Test void testSetR2dbcProperty_postgres() { verifyThatCorrectUrlAndUsernameSet(new String[] {"io.r2dbc.postgresql"}, @@ -109,13 +56,6 @@ void testSetR2dbcProperty_postgres() { "r2dbc:gcp:postgres://my-project:region:my-instance/my-database"); } - @Test - void testSetR2dbcProperty_mysql() { - verifyThatCorrectUrlAndUsernameSet(new String[] {"dev.miku.r2dbc.mysql"}, - "root", - "r2dbc:gcp:mysql://my-project:region:my-instance/my-database"); - } - /** * Verifies that correct database properties got injected into context, given a passed-in list of * packages to retain on the classpath. @@ -125,14 +65,13 @@ void testSetR2dbcProperty_mysql() { * @param url expected {@code spring.r2dbc.username} value to verify */ private void verifyThatCorrectUrlAndUsernameSet( - String[] driverPackagesToInclude, String username, String url) { + String[] driverPackagesToInclude, + String username, + String url) { // Because `FilteredClassLoader` accepts a list of packages to remove from classpath, // `driverPackagesToInclude` is used to calculate the inverse list of packages to _exclude_. - Set driverPackagesToExclude = new HashSet<>(Arrays.asList( - "dev.miku.r2dbc.mysql", - "io.r2dbc.postgresql" - )); - driverPackagesToExclude.removeAll(Arrays.asList(driverPackagesToInclude)); + Set driverPackagesToExclude = new HashSet<>(List.of("io.r2dbc.postgresql")); + Arrays.asList(driverPackagesToInclude).forEach(driverPackagesToExclude::remove); this.contextRunner .withPropertyValues( diff --git a/spring-cloud-gcp-dependencies/pom.xml b/spring-cloud-gcp-dependencies/pom.xml index e3cf955339..aac6f0e9b6 100644 --- a/spring-cloud-gcp-dependencies/pom.xml +++ b/spring-cloud-gcp-dependencies/pom.xml @@ -271,22 +271,6 @@ 0.8.12.RELEASE - - - com.google.cloud.sql - cloud-sql-connector-r2dbc-mysql - ${cloud-sql-socket-factory.version} - - - - dev.miku - r2dbc-mysql - ${r2dbc-mysql.version} - - com.google.cloud.sql