From 0ca6d818d0bb5d035240d92c8c6b50317146ea26 Mon Sep 17 00:00:00 2001 From: davin111 Date: Thu, 8 Jun 2023 12:53:40 +0900 Subject: [PATCH] r2dbc mysql default port --- .../java/MysqlConnectionFactoryProvider.kt | 5 ++-- .../MysqlConnectionFactoryProviderTest.kt | 26 ++++++++++++++++--- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/r2dbc-mysql/src/main/java/MysqlConnectionFactoryProvider.kt b/r2dbc-mysql/src/main/java/MysqlConnectionFactoryProvider.kt index 4c15da6e..8a91e22c 100644 --- a/r2dbc-mysql/src/main/java/MysqlConnectionFactoryProvider.kt +++ b/r2dbc-mysql/src/main/java/MysqlConnectionFactoryProvider.kt @@ -35,6 +35,8 @@ class MysqlConnectionFactoryProvider : ConnectionFactoryProvider { */ const val MYSQL_DRIVER = "mysql" + const val MYSQL_DEFAULT_PORT = 3306 + var CLIENT_FOUND_ROWS: Boolean by ClientFoundRowsDelegate() init { @@ -63,7 +65,7 @@ class MysqlConnectionFactoryProvider : ConnectionFactoryProvider { override fun create(connectionFactoryOptions: ConnectionFactoryOptions): JasyncConnectionFactory { val configuration = Configuration( host = connectionFactoryOptions.getValue(HOST) as String? ?: throw IllegalArgumentException("HOST is missing"), - port = connectionFactoryOptions.getValue(PORT) as Int? ?: throw IllegalArgumentException("PORT is missing"), + port = connectionFactoryOptions.getValue(PORT) as Int? ?: MYSQL_DEFAULT_PORT, username = connectionFactoryOptions.getValue(USER) as String? ?: throw IllegalArgumentException("USER is missing"), password = connectionFactoryOptions.getValue(PASSWORD)?.toString(), database = connectionFactoryOptions.getValue(DATABASE) as String?, @@ -80,7 +82,6 @@ class MysqlConnectionFactoryProvider : ConnectionFactoryProvider { return when { driver == null || driver != MYSQL_DRIVER -> false !connectionFactoryOptions.hasOption(HOST) -> false - !connectionFactoryOptions.hasOption(PORT) -> false !connectionFactoryOptions.hasOption(USER) -> false else -> true } diff --git a/r2dbc-mysql/src/test/java/com/github/jasync/r2dbc/mysql/MysqlConnectionFactoryProviderTest.kt b/r2dbc-mysql/src/test/java/com/github/jasync/r2dbc/mysql/MysqlConnectionFactoryProviderTest.kt index f44e3dc1..01e45ba9 100644 --- a/r2dbc-mysql/src/test/java/com/github/jasync/r2dbc/mysql/MysqlConnectionFactoryProviderTest.kt +++ b/r2dbc-mysql/src/test/java/com/github/jasync/r2dbc/mysql/MysqlConnectionFactoryProviderTest.kt @@ -11,9 +11,7 @@ class MysqlConnectionFactoryProviderTest { @Test fun shouldCreateMysqlConnectionWithMysqlSSLConfigurationFactory() { - - val options = - ConnectionFactoryOptions.parse("r2dbc:mysql://user@host:443/") + val options = ConnectionFactoryOptions.parse("r2dbc:mysql://user@host:443/") // when val result = provider.create(options) @@ -21,4 +19,26 @@ class MysqlConnectionFactoryProviderTest { // then assertEquals(SSLConfiguration(), result.mySQLConnectionFactory.configuration.ssl) } + + @Test + fun shouldUseDefaultPortWhenPortIsNotSpecified() { + val options = ConnectionFactoryOptions.parse("r2dbc:mysql://user@host/") + + // when + val result = provider.create(options) + + // then + assertEquals(3306, result.mySQLConnectionFactory.configuration.port) + } + + @Test + fun shouldUseSpecifiedPort() { + val options = ConnectionFactoryOptions.parse("r2dbc:mysql://user@host:3307/") + + // when + val result = provider.create(options) + + // then + assertEquals(3307, result.mySQLConnectionFactory.configuration.port) + } }