From 98741f2f5f39d6bfbd8531fdd89587e033db8b61 Mon Sep 17 00:00:00 2001 From: jchrys Date: Mon, 19 Feb 2024 11:25:41 +0900 Subject: [PATCH] Ensure GraalVM Native Build Compatibility (#239) Motivation: Ensure GraalVM Native Build Compatibility Modifications: Add Native build test Result: Ensured GraalVM Native Build Compatibility Resolves #194 --- .github/workflows/cd-release.yml | 4 +- .github/workflows/cd-snapshot.yml | 4 +- .github/workflows/ci-graalvm-tests.yml | 53 ++++++ pom.xml | 160 +++--------------- r2dbc-mysql/pom.xml | 154 +++++++++++++++++ .../asyncer/r2dbc/mysql/BenchmarkSupport.java | 0 .../mysql/MySqlNamesCompareBenchmark.java | 0 .../r2dbc/mysql/SelectOneBenchmark.java | 0 .../r2dbc/mysql/ServerVersionBenchmark.java | 0 .../java/io/asyncer/r2dbc/mysql/Binding.java | 0 .../io/asyncer/r2dbc/mysql/Capability.java | 0 .../asyncer/r2dbc/mysql/ColumnDefinition.java | 0 .../io/asyncer/r2dbc/mysql/ColumnNameSet.java | 0 .../r2dbc/mysql/ConnectionContext.java | 0 .../asyncer/r2dbc/mysql/ConnectionState.java | 0 .../r2dbc/mysql/ConsistentSnapshotEngine.java | 0 .../io/asyncer/r2dbc/mysql/Extensions.java | 0 .../r2dbc/mysql/InsertSyntheticRow.java | 0 .../io/asyncer/r2dbc/mysql/MySqlBatch.java | 0 .../r2dbc/mysql/MySqlBatchingBatch.java | 0 .../r2dbc/mysql/MySqlColumnDescriptor.java | 0 .../r2dbc/mysql/MySqlColumnMetadata.java | 0 .../asyncer/r2dbc/mysql/MySqlConnection.java | 0 .../mysql/MySqlConnectionConfiguration.java | 0 .../r2dbc/mysql/MySqlConnectionFactory.java | 0 .../mysql/MySqlConnectionFactoryMetadata.java | 0 .../mysql/MySqlConnectionFactoryProvider.java | 0 .../r2dbc/mysql/MySqlConnectionMetadata.java | 0 .../io/asyncer/r2dbc/mysql/MySqlNames.java | 0 .../asyncer/r2dbc/mysql/MySqlParameter.java | 0 .../io/asyncer/r2dbc/mysql/MySqlResult.java | 0 .../java/io/asyncer/r2dbc/mysql/MySqlRow.java | 0 .../asyncer/r2dbc/mysql/MySqlRowMetadata.java | 0 .../r2dbc/mysql/MySqlSslConfiguration.java | 0 .../asyncer/r2dbc/mysql/MySqlStatement.java | 0 .../r2dbc/mysql/MySqlStatementSupport.java | 0 .../r2dbc/mysql/MySqlSyntheticBatch.java | 0 .../mysql/MySqlTransactionDefinition.java | 0 .../r2dbc/mysql/MySqlTypeMetadata.java | 0 .../io/asyncer/r2dbc/mysql/OptionMapper.java | 0 .../asyncer/r2dbc/mysql/ParameterIndex.java | 0 .../asyncer/r2dbc/mysql/ParameterWriter.java | 0 .../mysql/ParametrizedStatementSupport.java | 0 .../io/asyncer/r2dbc/mysql/PingStatement.java | 0 .../mysql/PrepareParametrizedStatement.java | 0 .../r2dbc/mysql/PrepareSimpleStatement.java | 0 .../java/io/asyncer/r2dbc/mysql/Query.java | 0 .../io/asyncer/r2dbc/mysql/QueryFlow.java | 0 .../io/asyncer/r2dbc/mysql/QueryLogger.java | 0 .../io/asyncer/r2dbc/mysql/ServerVersion.java | 0 .../r2dbc/mysql/SimpleStatementSupport.java | 0 .../mysql/TextParametrizedStatement.java | 0 .../r2dbc/mysql/TextSimpleStatement.java | 0 .../r2dbc/mysql/authentication/AuthUtils.java | 0 .../CachingSha2FastAuthProvider.java | 0 .../CachingSha2FullAuthProvider.java | 0 .../authentication/MySqlAuthProvider.java | 0 .../MySqlClearAuthProvider.java | 0 .../MySqlNativeAuthProvider.java | 0 .../mysql/authentication/NoAuthProvider.java | 0 .../mysql/authentication/OldAuthProvider.java | 0 .../authentication/Sha256AuthProvider.java | 0 .../mysql/authentication/package-info.java | 0 .../io/asyncer/r2dbc/mysql/cache/Caches.java | 0 .../asyncer/r2dbc/mysql/cache/FreqSketch.java | 0 .../io/asyncer/r2dbc/mysql/cache/Lru.java | 0 .../mysql/cache/PrepareBoundedCache.java | 0 .../r2dbc/mysql/cache/PrepareCache.java | 0 .../mysql/cache/PrepareDisabledCache.java | 0 .../mysql/cache/PrepareUnboundedCache.java | 0 .../r2dbc/mysql/cache/QueryBoundedCache.java | 0 .../asyncer/r2dbc/mysql/cache/QueryCache.java | 0 .../r2dbc/mysql/cache/QueryDisabledCache.java | 0 .../mysql/cache/QueryUnboundedCache.java | 0 .../asyncer/r2dbc/mysql/cache/RingBuffer.java | 0 .../r2dbc/mysql/cache/package-info.java | 0 .../io/asyncer/r2dbc/mysql/client/Client.java | 0 .../r2dbc/mysql/client/ClientExceptions.java | 0 .../mysql/client/CompressionDuplexCodec.java | 0 .../r2dbc/mysql/client/Compressor.java | 0 .../mysql/client/DefaultHostnameVerifier.java | 0 .../r2dbc/mysql/client/FluxExchangeable.java | 0 .../mysql/client/MessageDuplexCodec.java | 0 .../r2dbc/mysql/client/PacketEvent.java | 0 .../mysql/client/ReactorNettyClient.java | 0 .../r2dbc/mysql/client/RequestQueue.java | 0 .../r2dbc/mysql/client/RequestTask.java | 0 .../io/asyncer/r2dbc/mysql/client/San.java | 0 .../r2dbc/mysql/client/SslBridgeHandler.java | 0 .../asyncer/r2dbc/mysql/client/SslState.java | 0 .../r2dbc/mysql/client/WriteSubscriber.java | 0 .../r2dbc/mysql/client/ZlibCompressor.java | 0 .../r2dbc/mysql/client/ZstdCompressor.java | 0 .../r2dbc/mysql/client/package-info.java | 0 .../mysql/codec/AbstractClassedCodec.java | 0 .../codec/AbstractLobMySqlParameter.java | 0 .../mysql/codec/AbstractMySqlParameter.java | 0 .../mysql/codec/AbstractPrimitiveCodec.java | 0 .../r2dbc/mysql/codec/BigDecimalCodec.java | 0 .../r2dbc/mysql/codec/BigIntegerCodec.java | 0 .../r2dbc/mysql/codec/BitSetCodec.java | 0 .../asyncer/r2dbc/mysql/codec/BlobCodec.java | 0 .../r2dbc/mysql/codec/BooleanCodec.java | 0 .../r2dbc/mysql/codec/ByteArrayCodec.java | 0 .../r2dbc/mysql/codec/ByteBufferCodec.java | 0 .../asyncer/r2dbc/mysql/codec/ByteCodec.java | 0 .../asyncer/r2dbc/mysql/codec/ClobCodec.java | 0 .../io/asyncer/r2dbc/mysql/codec/Codec.java | 0 .../r2dbc/mysql/codec/CodecContext.java | 0 .../r2dbc/mysql/codec/CodecRegistry.java | 0 .../asyncer/r2dbc/mysql/codec/CodecUtils.java | 0 .../io/asyncer/r2dbc/mysql/codec/Codecs.java | 0 .../r2dbc/mysql/codec/CodecsBuilder.java | 0 .../asyncer/r2dbc/mysql/codec/DateTimes.java | 0 .../r2dbc/mysql/codec/DefaultCodecs.java | 0 .../r2dbc/mysql/codec/DoubleCodec.java | 0 .../r2dbc/mysql/codec/DurationCodec.java | 0 .../asyncer/r2dbc/mysql/codec/EnumCodec.java | 0 .../asyncer/r2dbc/mysql/codec/FloatCodec.java | 0 .../r2dbc/mysql/codec/InstantCodec.java | 0 .../r2dbc/mysql/codec/IntegerCodec.java | 0 .../r2dbc/mysql/codec/LocalDateCodec.java | 0 .../r2dbc/mysql/codec/LocalDateTimeCodec.java | 0 .../r2dbc/mysql/codec/LocalTimeCodec.java | 0 .../asyncer/r2dbc/mysql/codec/LongCodec.java | 0 .../r2dbc/mysql/codec/MassiveCodec.java | 0 .../mysql/codec/MassiveParametrizedCodec.java | 0 .../r2dbc/mysql/codec/NullMySqlParameter.java | 0 .../mysql/codec/OffsetDateTimeCodec.java | 0 .../r2dbc/mysql/codec/OffsetTimeCodec.java | 0 .../r2dbc/mysql/codec/ParametrizedCodec.java | 0 .../r2dbc/mysql/codec/PrimitiveCodec.java | 0 .../asyncer/r2dbc/mysql/codec/SetCodec.java | 0 .../asyncer/r2dbc/mysql/codec/ShortCodec.java | 0 .../r2dbc/mysql/codec/StringCodec.java | 0 .../asyncer/r2dbc/mysql/codec/YearCodec.java | 0 .../r2dbc/mysql/codec/ZonedDateTimeCodec.java | 0 .../r2dbc/mysql/codec/lob/LobUtils.java | 0 .../r2dbc/mysql/codec/lob/MultiBlob.java | 0 .../r2dbc/mysql/codec/lob/MultiClob.java | 0 .../r2dbc/mysql/codec/lob/MultiLob.java | 0 .../r2dbc/mysql/codec/lob/SingletonBlob.java | 0 .../r2dbc/mysql/codec/lob/SingletonClob.java | 0 .../r2dbc/mysql/codec/lob/SingletonLob.java | 0 .../r2dbc/mysql/codec/lob/package-info.java | 0 .../r2dbc/mysql/codec/package-info.java | 0 .../collation/AbstractCharCollation.java | 0 .../collation/AbstractCharsetTarget.java | 0 .../r2dbc/mysql/collation/BinaryTarget.java | 0 .../mysql/collation/CachedCharCollation.java | 0 .../mysql/collation/CachedCharsetTarget.java | 0 .../r2dbc/mysql/collation/CharCollation.java | 0 .../r2dbc/mysql/collation/CharCollations.java | 0 .../r2dbc/mysql/collation/CharsetTarget.java | 0 .../r2dbc/mysql/collation/CharsetTargets.java | 0 .../collation/LazyInitCharCollation.java | 0 .../mysql/collation/MixCharsetTarget.java | 0 .../mysql/collation/NamedCharsetTarget.java | 0 .../r2dbc/mysql/collation/package-info.java | 0 .../mysql/constant/CompressionAlgorithm.java | 0 .../r2dbc/mysql/constant/MySqlType.java | 0 .../asyncer/r2dbc/mysql/constant/Packets.java | 0 .../r2dbc/mysql/constant/ServerStatuses.java | 0 .../asyncer/r2dbc/mysql/constant/SslMode.java | 0 .../r2dbc/mysql/constant/TlsVersions.java | 0 .../r2dbc/mysql/constant/ZeroDateOption.java | 0 .../r2dbc/mysql/constant/package-info.java | 0 .../r2dbc/mysql/extension/CodecRegistrar.java | 0 .../r2dbc/mysql/extension/Extension.java | 0 .../r2dbc/mysql/extension/package-info.java | 0 .../mysql/internal/NotNullByDefault.java | 0 .../r2dbc/mysql/internal/package-info.java | 0 .../mysql/internal/util/AddressUtils.java | 0 .../mysql/internal/util/AssertUtils.java | 0 .../util/DiscardOnCancelSubscriber.java | 0 .../internal/util/FluxDiscardOnCancel.java | 0 .../util/FluxDiscardOnCancelFuseable.java | 0 .../mysql/internal/util/FluxEnvelope.java | 0 .../mysql/internal/util/InternalArrays.java | 0 .../mysql/internal/util/NettyBufferUtils.java | 0 .../mysql/internal/util/OperatorUtils.java | 0 .../internal/util/ReadCompletionHandler.java | 0 .../mysql/internal/util/StringUtils.java | 0 .../mysql/internal/util/VarIntUtils.java | 0 .../mysql/internal/util/package-info.java | 0 .../r2dbc/mysql/message/FieldValue.java | 0 .../r2dbc/mysql/message/LargeFieldValue.java | 0 .../r2dbc/mysql/message/NormalFieldValue.java | 0 .../r2dbc/mysql/message/NullFieldValue.java | 0 .../mysql/message/client/AuthResponse.java | 0 .../mysql/message/client/ClientMessage.java | 0 .../mysql/message/client/ExitMessage.java | 0 .../message/client/HandshakeResponse.java | 0 .../message/client/HandshakeResponse320.java | 0 .../message/client/HandshakeResponse41.java | 0 .../mysql/message/client/InitDbMessage.java | 0 .../message/client/LocalInfileResponse.java | 0 .../mysql/message/client/ParamWriter.java | 0 .../mysql/message/client/PingMessage.java | 0 .../message/client/PrepareQueryMessage.java | 0 .../message/client/PreparedCloseMessage.java | 0 .../client/PreparedExecuteMessage.java | 0 .../message/client/PreparedFetchMessage.java | 0 .../client/PreparedLargeDataMessage.java | 0 .../message/client/PreparedResetMessage.java | 0 .../client/PreparedTextQueryMessage.java | 0 .../message/client/ScalarClientMessage.java | 0 .../message/client/SizedClientMessage.java | 0 .../mysql/message/client/SslRequest.java | 0 .../mysql/message/client/SslRequest320.java | 0 .../mysql/message/client/SslRequest41.java | 0 .../client/SubsequenceClientMessage.java | 0 .../message/client/TextQueryMessage.java | 0 .../mysql/message/client/package-info.java | 0 .../r2dbc/mysql/message/package-info.java | 0 .../message/server/AuthMoreDataMessage.java | 0 .../message/server/ChangeAuthMessage.java | 0 .../message/server/ColumnCountMessage.java | 0 .../message/server/CommandDecodeContext.java | 0 .../mysql/message/server/CompleteMessage.java | 0 .../mysql/message/server/DecodeContext.java | 0 .../server/DefinitionMetadataMessage.java | 0 .../mysql/message/server/Eof320Message.java | 0 .../mysql/message/server/Eof41Message.java | 0 .../mysql/message/server/EofMessage.java | 0 .../mysql/message/server/ErrorMessage.java | 0 .../message/server/FetchDecodeContext.java | 0 .../mysql/message/server/FieldReader.java | 0 .../mysql/message/server/HandshakeHeader.java | 0 .../message/server/HandshakeRequest.java | 0 .../message/server/HandshakeV10Request.java | 0 .../message/server/HandshakeV9Request.java | 0 .../message/server/LargeFieldReader.java | 0 .../message/server/LocalInfileRequest.java | 0 .../message/server/LoginDecodeContext.java | 0 .../message/server/MetadataDecodeContext.java | 0 .../message/server/NormalFieldReader.java | 0 .../r2dbc/mysql/message/server/OkMessage.java | 0 .../server/PrepareQueryDecodeContext.java | 0 .../server/PreparedMetadataDecodeContext.java | 0 .../message/server/PreparedOkMessage.java | 0 .../message/server/ResultDecodeContext.java | 0 .../mysql/message/server/RowMessage.java | 0 .../mysql/message/server/ServerMessage.java | 0 .../message/server/ServerMessageDecoder.java | 0 .../message/server/ServerStatusMessage.java | 0 .../server/SyntheticMetadataMessage.java | 0 .../server/SyntheticSslResponseMessage.java | 0 .../mysql/message/server/WarningMessage.java | 0 .../mysql/message/server/package-info.java | 0 .../io/asyncer/r2dbc/mysql/package-info.java | 0 .../io.r2dbc.spi.ConnectionFactoryProvider | 0 .../r2dbc/mysql/ColumnDefinitionTest.java | 0 .../CompressionIntegrationTestSupport.java | 0 .../r2dbc/mysql/ConnectionContextTest.java | 0 .../mysql/ConnectionIntegrationTest.java | 0 .../asyncer/r2dbc/mysql/ExtensionsTest.java | 0 .../r2dbc/mysql/InitDbIntegrationTest.java | 0 .../r2dbc/mysql/IntegrationTestSupport.java | 0 .../mysql/JacksonIntegrationTestSupport.java | 0 .../mysql/JacksonPrepareIntegrationTest.java | 0 .../mysql/JacksonTextIntegrationTest.java | 0 .../mysql/MariaDbIntegrationTestSupport.java | 0 .../mysql/MariaDbPrepareIntegrationTest.java | 0 .../mysql/MariaDbTextIntegrationTest.java | 0 .../r2dbc/mysql/MySqlBatchingBatchTest.java | 0 .../MySqlConnectionConfigurationTest.java | 0 .../MySqlConnectionFactoryProviderTest.java | 0 .../r2dbc/mysql/MySqlConnectionTest.java | 0 .../asyncer/r2dbc/mysql/MySqlNamesTest.java | 0 .../r2dbc/mysql/MySqlPrepareTestKit.java | 0 .../r2dbc/mysql/MySqlSyntheticBatchTest.java | 0 .../r2dbc/mysql/MySqlTestKitSupport.java | 0 .../asyncer/r2dbc/mysql/MySqlTextTestKit.java | 0 .../mysql/MySqlTransactionDefinitionTest.java | 0 .../asyncer/r2dbc/mysql/OptionMapperTest.java | 0 .../PrepareParametrizedStatementTest.java | 0 .../mysql/PrepareQueryIntegrationTest.java | 0 .../mysql/PrepareSimpleStatementTest.java | 0 .../mysql/PrepareTimeZoneIntegrationTest.java | 0 .../mysql/QueryIntegrationTestSupport.java | 0 .../io/asyncer/r2dbc/mysql/QueryTest.java | 0 .../r2dbc/mysql/ServerVersionTest.java | 0 .../mysql/SessionStateIntegrationTest.java | 0 .../r2dbc/mysql/SslTunnelIntegrationTest.java | 0 .../r2dbc/mysql/StatementTestSupport.java | 0 .../mysql/TextParametrizedStatementTest.java | 0 .../r2dbc/mysql/TextQueryIntegrationTest.java | 0 .../r2dbc/mysql/TextSimpleStatementTest.java | 0 .../mysql/TextTimeZoneIntegrationTest.java | 0 .../mysql/TimeZoneIntegrationTestSupport.java | 0 .../mysql/ZlibCompressionIntegrationTest.java | 0 .../mysql/ZstdCompressionIntegrationTest.java | 0 .../r2dbc/mysql/cache/FreqSketchTest.java | 0 .../io/asyncer/r2dbc/mysql/cache/LruTest.java | 0 .../mysql/cache/PrepareBoundedCacheTest.java | 0 .../r2dbc/mysql/client/RequestQueueTest.java | 0 .../mysql/client/ZlibCompressorTest.java | 0 .../mysql/codec/BigDecimalCodecTest.java | 0 .../mysql/codec/BigIntegerCodecTest.java | 0 .../r2dbc/mysql/codec/BitSetCodecTest.java | 0 .../r2dbc/mysql/codec/BlobCodecTest.java | 0 .../r2dbc/mysql/codec/BooleanCodecTest.java | 0 .../r2dbc/mysql/codec/ByteArrayCodecTest.java | 0 .../mysql/codec/ByteBufferCodecTest.java | 0 .../r2dbc/mysql/codec/ByteCodecTest.java | 0 .../r2dbc/mysql/codec/ClobCodecTest.java | 0 .../r2dbc/mysql/codec/CodecTestSupport.java | 0 .../asyncer/r2dbc/mysql/codec/CodecsTest.java | 0 .../mysql/codec/DateTimeCodecTestSupport.java | 0 .../r2dbc/mysql/codec/DateTimesTest.java | 0 .../asyncer/r2dbc/mysql/codec/Decoding.java | 0 .../r2dbc/mysql/codec/DoubleCodecTest.java | 0 .../r2dbc/mysql/codec/DurationCodecTest.java | 0 .../r2dbc/mysql/codec/EnumCodecTest.java | 0 .../r2dbc/mysql/codec/FloatCodecTest.java | 0 .../r2dbc/mysql/codec/InstantCodecTest.java | 0 .../r2dbc/mysql/codec/IntegerCodecTest.java | 0 .../r2dbc/mysql/codec/JacksonCodecTest.java | 0 .../r2dbc/mysql/codec/LocalDateCodecTest.java | 0 .../mysql/codec/LocalDateTimeCodecTest.java | 0 .../r2dbc/mysql/codec/LocalTimeCodecTest.java | 0 .../r2dbc/mysql/codec/LongCodecTest.java | 0 .../mysql/codec/NumericCodecTestSupport.java | 0 .../mysql/codec/OffsetDateTimeCodecTest.java | 0 .../mysql/codec/OffsetTimeCodecTest.java | 0 .../r2dbc/mysql/codec/SetCodecTest.java | 0 .../r2dbc/mysql/codec/ShortCodecTest.java | 0 .../r2dbc/mysql/codec/StringCodecTest.java | 0 .../mysql/codec/TimeCodecTestSupport.java | 0 .../r2dbc/mysql/codec/YearCodecTest.java | 0 .../mysql/codec/ZonedDateTimeCodecTest.java | 0 .../r2dbc/mysql/codec/lob/LobUtilsTest.java | 0 .../mysql/collation/CharCollationTest.java | 0 .../r2dbc/mysql/constant/MySqlTypeTest.java | 0 .../mysql/internal/util/AddressUtilsTest.java | 0 .../util/FluxDiscardOnCancelTest.java | 0 .../mysql/internal/util/FluxEnvelopeTest.java | 0 .../internal/util/InternalArraysTest.java | 0 .../internal/util/NettyBufferUtilsTest.java | 0 .../mysql/internal/util/StringUtilsTest.java | 0 .../mysql/internal/util/VarIntUtilsTest.java | 0 .../r2dbc/mysql/json/JacksonCodec.java | 0 .../mysql/json/JacksonCodecRegistrar.java | 0 .../r2dbc/mysql/json/package-info.java | 0 .../mysql/message/client/MockException.java | 0 .../message/client/MockMySqlParameter.java | 0 .../mysql/message/client/ParamWriterTest.java | 0 .../message/client/ParameterWriterHelper.java | 0 .../mysql/message/server/OkMessageTest.java | 0 .../server/ServerMessageDecoderTest.java | 0 ...io.asyncer.r2dbc.mysql.extension.Extension | 0 .../src}/test/resources/local/stations.csv | 0 .../src}/test/resources/local/stations.json | 0 .../src}/test/resources/local/stations.sql | 0 .../src}/test/resources/local/users.csv | 0 .../src}/test/resources/local/users.json | 0 .../src}/test/resources/local/users.sql | 0 .../src}/test/resources/logback-test.xml | 0 test-native-image/pom.xml | 46 +++++ .../src/main/java/io/asyncer/Main.java | 43 +++++ 361 files changed, 319 insertions(+), 145 deletions(-) create mode 100644 .github/workflows/ci-graalvm-tests.yml create mode 100644 r2dbc-mysql/pom.xml rename {src => r2dbc-mysql/src}/jmh/java/io/asyncer/r2dbc/mysql/BenchmarkSupport.java (100%) rename {src => r2dbc-mysql/src}/jmh/java/io/asyncer/r2dbc/mysql/MySqlNamesCompareBenchmark.java (100%) rename {src => r2dbc-mysql/src}/jmh/java/io/asyncer/r2dbc/mysql/SelectOneBenchmark.java (100%) rename {src => r2dbc-mysql/src}/jmh/java/io/asyncer/r2dbc/mysql/ServerVersionBenchmark.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/Binding.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/Capability.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/ColumnDefinition.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/ColumnNameSet.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/ConnectionContext.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/ConnectionState.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/ConsistentSnapshotEngine.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/Extensions.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/InsertSyntheticRow.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/MySqlBatch.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/MySqlBatchingBatch.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/MySqlColumnDescriptor.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/MySqlColumnMetadata.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/MySqlConnection.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/MySqlConnectionConfiguration.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/MySqlConnectionFactory.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/MySqlConnectionFactoryMetadata.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/MySqlConnectionFactoryProvider.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/MySqlConnectionMetadata.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/MySqlNames.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/MySqlParameter.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/MySqlResult.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/MySqlRow.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/MySqlRowMetadata.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/MySqlSslConfiguration.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/MySqlStatement.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/MySqlStatementSupport.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/MySqlSyntheticBatch.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/MySqlTransactionDefinition.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/MySqlTypeMetadata.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/OptionMapper.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/ParameterIndex.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/ParameterWriter.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/ParametrizedStatementSupport.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/PingStatement.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/PrepareParametrizedStatement.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/PrepareSimpleStatement.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/Query.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/QueryFlow.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/QueryLogger.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/ServerVersion.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/SimpleStatementSupport.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/TextParametrizedStatement.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/TextSimpleStatement.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/authentication/AuthUtils.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/authentication/CachingSha2FastAuthProvider.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/authentication/CachingSha2FullAuthProvider.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/authentication/MySqlAuthProvider.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/authentication/MySqlClearAuthProvider.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/authentication/MySqlNativeAuthProvider.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/authentication/NoAuthProvider.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/authentication/OldAuthProvider.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/authentication/Sha256AuthProvider.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/authentication/package-info.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/cache/Caches.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/cache/FreqSketch.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/cache/Lru.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/cache/PrepareBoundedCache.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/cache/PrepareCache.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/cache/PrepareDisabledCache.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/cache/PrepareUnboundedCache.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/cache/QueryBoundedCache.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/cache/QueryCache.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/cache/QueryDisabledCache.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/cache/QueryUnboundedCache.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/cache/RingBuffer.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/cache/package-info.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/client/Client.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/client/ClientExceptions.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/client/CompressionDuplexCodec.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/client/Compressor.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/client/DefaultHostnameVerifier.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/client/FluxExchangeable.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/client/MessageDuplexCodec.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/client/PacketEvent.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/client/ReactorNettyClient.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/client/RequestQueue.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/client/RequestTask.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/client/San.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/client/SslBridgeHandler.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/client/SslState.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/client/WriteSubscriber.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/client/ZlibCompressor.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/client/ZstdCompressor.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/client/package-info.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/AbstractClassedCodec.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/AbstractLobMySqlParameter.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/AbstractMySqlParameter.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/AbstractPrimitiveCodec.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/BigDecimalCodec.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/BigIntegerCodec.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/BitSetCodec.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/BlobCodec.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/BooleanCodec.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/ByteArrayCodec.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/ByteBufferCodec.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/ByteCodec.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/ClobCodec.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/Codec.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/CodecContext.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/CodecRegistry.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/CodecUtils.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/Codecs.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/CodecsBuilder.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/DateTimes.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/DefaultCodecs.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/DoubleCodec.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/DurationCodec.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/EnumCodec.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/FloatCodec.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/InstantCodec.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/IntegerCodec.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/LocalDateCodec.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/LocalDateTimeCodec.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/LocalTimeCodec.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/LongCodec.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/MassiveCodec.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/MassiveParametrizedCodec.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/NullMySqlParameter.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/OffsetDateTimeCodec.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/OffsetTimeCodec.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/ParametrizedCodec.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/PrimitiveCodec.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/SetCodec.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/ShortCodec.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/StringCodec.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/YearCodec.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/ZonedDateTimeCodec.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/lob/LobUtils.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/lob/MultiBlob.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/lob/MultiClob.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/lob/MultiLob.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/lob/SingletonBlob.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/lob/SingletonClob.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/lob/SingletonLob.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/lob/package-info.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/codec/package-info.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/collation/AbstractCharCollation.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/collation/AbstractCharsetTarget.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/collation/BinaryTarget.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/collation/CachedCharCollation.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/collation/CachedCharsetTarget.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/collation/CharCollation.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/collation/CharCollations.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/collation/CharsetTarget.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/collation/CharsetTargets.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/collation/LazyInitCharCollation.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/collation/MixCharsetTarget.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/collation/NamedCharsetTarget.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/collation/package-info.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/constant/CompressionAlgorithm.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/constant/MySqlType.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/constant/Packets.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/constant/ServerStatuses.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/constant/SslMode.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/constant/TlsVersions.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/constant/ZeroDateOption.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/constant/package-info.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/extension/CodecRegistrar.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/extension/Extension.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/extension/package-info.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/internal/NotNullByDefault.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/internal/package-info.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/internal/util/AddressUtils.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/internal/util/AssertUtils.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/internal/util/DiscardOnCancelSubscriber.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/internal/util/FluxDiscardOnCancel.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/internal/util/FluxDiscardOnCancelFuseable.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/internal/util/FluxEnvelope.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/internal/util/InternalArrays.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/internal/util/NettyBufferUtils.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/internal/util/OperatorUtils.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/internal/util/ReadCompletionHandler.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/internal/util/StringUtils.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/internal/util/VarIntUtils.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/internal/util/package-info.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/FieldValue.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/LargeFieldValue.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/NormalFieldValue.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/NullFieldValue.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/client/AuthResponse.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/client/ClientMessage.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/client/ExitMessage.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/client/HandshakeResponse.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/client/HandshakeResponse320.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/client/HandshakeResponse41.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/client/InitDbMessage.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/client/LocalInfileResponse.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/client/ParamWriter.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/client/PingMessage.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/client/PrepareQueryMessage.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/client/PreparedCloseMessage.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/client/PreparedExecuteMessage.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/client/PreparedFetchMessage.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/client/PreparedLargeDataMessage.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/client/PreparedResetMessage.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/client/PreparedTextQueryMessage.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/client/ScalarClientMessage.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/client/SizedClientMessage.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/client/SslRequest.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/client/SslRequest320.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/client/SslRequest41.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/client/SubsequenceClientMessage.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/client/TextQueryMessage.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/client/package-info.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/package-info.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/server/AuthMoreDataMessage.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/server/ChangeAuthMessage.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/server/ColumnCountMessage.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/server/CommandDecodeContext.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/server/CompleteMessage.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/server/DecodeContext.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/server/DefinitionMetadataMessage.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/server/Eof320Message.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/server/Eof41Message.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/server/EofMessage.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/server/ErrorMessage.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/server/FetchDecodeContext.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/server/FieldReader.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/server/HandshakeHeader.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/server/HandshakeRequest.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/server/HandshakeV10Request.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/server/HandshakeV9Request.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/server/LargeFieldReader.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/server/LocalInfileRequest.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/server/LoginDecodeContext.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/server/MetadataDecodeContext.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/server/NormalFieldReader.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/server/OkMessage.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/server/PrepareQueryDecodeContext.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/server/PreparedMetadataDecodeContext.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/server/PreparedOkMessage.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/server/ResultDecodeContext.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/server/RowMessage.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/server/ServerMessage.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/server/ServerMessageDecoder.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/server/ServerStatusMessage.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/server/SyntheticMetadataMessage.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/server/SyntheticSslResponseMessage.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/server/WarningMessage.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/message/server/package-info.java (100%) rename {src => r2dbc-mysql/src}/main/java/io/asyncer/r2dbc/mysql/package-info.java (100%) rename {src => r2dbc-mysql/src}/main/resources/META-INF/services/io.r2dbc.spi.ConnectionFactoryProvider (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/ColumnDefinitionTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/CompressionIntegrationTestSupport.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/ConnectionContextTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/ConnectionIntegrationTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/ExtensionsTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/InitDbIntegrationTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/IntegrationTestSupport.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/JacksonIntegrationTestSupport.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/JacksonPrepareIntegrationTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/JacksonTextIntegrationTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/MariaDbIntegrationTestSupport.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/MariaDbPrepareIntegrationTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/MariaDbTextIntegrationTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/MySqlBatchingBatchTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/MySqlConnectionConfigurationTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/MySqlConnectionFactoryProviderTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/MySqlConnectionTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/MySqlNamesTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/MySqlPrepareTestKit.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/MySqlSyntheticBatchTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/MySqlTestKitSupport.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/MySqlTextTestKit.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/MySqlTransactionDefinitionTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/OptionMapperTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/PrepareParametrizedStatementTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/PrepareQueryIntegrationTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/PrepareSimpleStatementTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/PrepareTimeZoneIntegrationTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/QueryIntegrationTestSupport.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/QueryTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/ServerVersionTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/SessionStateIntegrationTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/SslTunnelIntegrationTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/StatementTestSupport.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/TextParametrizedStatementTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/TextQueryIntegrationTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/TextSimpleStatementTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/TextTimeZoneIntegrationTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/TimeZoneIntegrationTestSupport.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/ZlibCompressionIntegrationTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/ZstdCompressionIntegrationTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/cache/FreqSketchTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/cache/LruTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/cache/PrepareBoundedCacheTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/client/RequestQueueTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/client/ZlibCompressorTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/codec/BigDecimalCodecTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/codec/BigIntegerCodecTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/codec/BitSetCodecTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/codec/BlobCodecTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/codec/BooleanCodecTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/codec/ByteArrayCodecTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/codec/ByteBufferCodecTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/codec/ByteCodecTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/codec/ClobCodecTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/codec/CodecTestSupport.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/codec/CodecsTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/codec/DateTimeCodecTestSupport.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/codec/DateTimesTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/codec/Decoding.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/codec/DoubleCodecTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/codec/DurationCodecTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/codec/EnumCodecTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/codec/FloatCodecTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/codec/InstantCodecTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/codec/IntegerCodecTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/codec/JacksonCodecTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/codec/LocalDateCodecTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/codec/LocalDateTimeCodecTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/codec/LocalTimeCodecTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/codec/LongCodecTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/codec/NumericCodecTestSupport.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/codec/OffsetDateTimeCodecTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/codec/OffsetTimeCodecTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/codec/SetCodecTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/codec/ShortCodecTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/codec/StringCodecTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/codec/TimeCodecTestSupport.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/codec/YearCodecTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/codec/ZonedDateTimeCodecTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/codec/lob/LobUtilsTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/collation/CharCollationTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/constant/MySqlTypeTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/internal/util/AddressUtilsTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/internal/util/FluxDiscardOnCancelTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/internal/util/FluxEnvelopeTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/internal/util/InternalArraysTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/internal/util/NettyBufferUtilsTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/internal/util/StringUtilsTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/internal/util/VarIntUtilsTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/json/JacksonCodec.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/json/JacksonCodecRegistrar.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/json/package-info.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/message/client/MockException.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/message/client/MockMySqlParameter.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/message/client/ParamWriterTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/message/client/ParameterWriterHelper.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/message/server/OkMessageTest.java (100%) rename {src => r2dbc-mysql/src}/test/java/io/asyncer/r2dbc/mysql/message/server/ServerMessageDecoderTest.java (100%) rename {src => r2dbc-mysql/src}/test/resources/META-INF/services/io.asyncer.r2dbc.mysql.extension.Extension (100%) rename {src => r2dbc-mysql/src}/test/resources/local/stations.csv (100%) rename {src => r2dbc-mysql/src}/test/resources/local/stations.json (100%) rename {src => r2dbc-mysql/src}/test/resources/local/stations.sql (100%) rename {src => r2dbc-mysql/src}/test/resources/local/users.csv (100%) rename {src => r2dbc-mysql/src}/test/resources/local/users.json (100%) rename {src => r2dbc-mysql/src}/test/resources/local/users.sql (100%) rename {src => r2dbc-mysql/src}/test/resources/logback-test.xml (100%) create mode 100644 test-native-image/pom.xml create mode 100644 test-native-image/src/main/java/io/asyncer/Main.java diff --git a/.github/workflows/cd-release.yml b/.github/workflows/cd-release.yml index 2c3b26efa..70e1ce82a 100644 --- a/.github/workflows/cd-release.yml +++ b/.github/workflows/cd-release.yml @@ -121,11 +121,11 @@ jobs: working-directory: ./prepare-workspace/ run: | cat <(echo -e "${{ secrets.GPG_PRIVATE_KEY }}") | gpg --batch --import - ./mvnw -B -ntp -am clean javadoc:jar package gpg:sign org.sonatype.plugins:nexus-staging-maven-plugin:deploy -DnexusUrl=https://s01.oss.sonatype.org -DserverId=ossrh-staging -DaltStagingDirectory=/home/runner/local-staging -DskipRemoteStaging=true -DskipTests=true -Dgpg.passphrase="${{ secrets.GPG_PASSPHRASE }}" -Dgpg.keyname="${{ secrets.GPG_KEY_NAME }}" + ./mvnw -B -ntp -am -pl r2dbc-mysql clean javadoc:jar package gpg:sign org.sonatype.plugins:nexus-staging-maven-plugin:deploy -DnexusUrl=https://s01.oss.sonatype.org -DserverId=ossrh-staging -DaltStagingDirectory=/home/runner/local-staging -DskipRemoteStaging=true -DskipTests=true -Dgpg.passphrase="${{ secrets.GPG_PASSPHRASE }}" -Dgpg.keyname="${{ secrets.GPG_KEY_NAME }}" - name: Deploy Local Staged Artifacts working-directory: ./prepare-workspace/ - run: ./mvnw -B -ntp --file pom.xml org.sonatype.plugins:nexus-staging-maven-plugin:deploy-staged -DnexusUrl=https://s01.oss.sonatype.org -DserverId=ossrh-staging -DaltStagingDirectory=/home/runner/local-staging -DskipStagingRepositoryClose=true + run: ./mvnw -B -ntp -pl r2dbc-mysql --file pom.xml org.sonatype.plugins:nexus-staging-maven-plugin:deploy-staged -DnexusUrl=https://s01.oss.sonatype.org -DserverId=ossrh-staging -DaltStagingDirectory=/home/runner/local-staging -DskipStagingRepositoryClose=true - name: Rollback Release diff --git a/.github/workflows/cd-snapshot.yml b/.github/workflows/cd-snapshot.yml index cafd99ded..5bb7e5341 100644 --- a/.github/workflows/cd-snapshot.yml +++ b/.github/workflows/cd-snapshot.yml @@ -52,7 +52,7 @@ jobs: }] - name: Deploy Local Staging - run: ./mvnw -B -ntp clean package org.sonatype.plugins:nexus-staging-maven-plugin:deploy -DaltStagingDirectory=/home/runner/local-staging -DskipRemoteStaging=true -DskipTests=true + run: ./mvnw -B -ntp -pl r2dbc-mysql clean package org.sonatype.plugins:nexus-staging-maven-plugin:deploy -DaltStagingDirectory=/home/runner/local-staging -DskipRemoteStaging=true -DskipTests=true - name: Deploy Local Staged Artifacts - run: ./mvnw -B --file pom.xml org.sonatype.plugins:nexus-staging-maven-plugin:deploy-staged -DaltStagingDirectory=/home/runner/local-staging + run: ./mvnw -B -pl r2dbc-mysql --file pom.xml org.sonatype.plugins:nexus-staging-maven-plugin:deploy-staged -DaltStagingDirectory=/home/runner/local-staging diff --git a/.github/workflows/ci-graalvm-tests.yml b/.github/workflows/ci-graalvm-tests.yml new file mode 100644 index 000000000..8bc67186d --- /dev/null +++ b/.github/workflows/ci-graalvm-tests.yml @@ -0,0 +1,53 @@ +# Copyright 2024 asyncer.io proejcts +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: Native Image Build Test + +on: + pull_request: + branches: [ "trunk", "0.9.x" ] + +jobs: + graalvm-build-pr: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v4 + + - name: Set up MySQL + env: + MYSQL_DATABASE: r2dbc + MYSQL_ROOT_PASSWORD: r2dbc-password!@ + MYSQL_VERSION: 8.1 + run: docker-compose -f ${{ github.workspace }}/containers/mysql-compose.yml up -d + + - uses: graalvm/setup-graalvm@v1 + with: + java-version: 21 + distribution: 'graalvm' + native-image-job-reports: true + github-token: ${{ secrets.GITHUB_TOKEN }} + + - name: Cache & Load Local Maven Repository + uses: actions/cache@v3 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-prepare-${{ hashFiles('**/pom.xml') }} + restore-keys: ${{ runner.os }}-prepare- + + - name: Build and run native image + run: | + echo "JAVA_HOME=$JAVA_HOME" + echo "./mvnw -Pgraalvm package" + ./mvnw -Pgraalvm package + ./test-native-image/target/test-native-image -Dtest.mysql.password=r2dbc-password!@ \ No newline at end of file diff --git a/pom.xml b/pom.xml index 286b61581..8c5ae80cf 100644 --- a/pom.xml +++ b/pom.xml @@ -19,12 +19,16 @@ 4.0.0 io.asyncer - r2dbc-mysql + r2dbc-mysql-parent 1.1.2-SNAPSHOT - jar + pom Reactive Relational Database Connectivity - MySQL https://github.com/asyncer-io/r2dbc-mysql + + r2dbc-mysql + test-native-image + R2DBC MySQL Implementation @@ -63,6 +67,7 @@ UTF-8 1.8 false + true 1.0.0.RELEASE 2022.0.9 @@ -81,6 +86,7 @@ 1.5.5-11 24.1.0 1.77 + 21.2.0 @@ -128,140 +134,6 @@ - - - io.projectreactor - reactor-core - - - io.projectreactor.netty - reactor-netty - - - io.r2dbc - r2dbc-spi - ${r2dbc-spi.version} - - - org.jetbrains - annotations - - - - com.google.code.findbugs - jsr305 - ${jsr305.version} - provided - - - - com.github.luben - zstd-jni - ${zstd-jni.version} - true - - - - ch.qos.logback - logback-classic - ${logback.version} - test - - - io.projectreactor - reactor-test - test - - - io.r2dbc - r2dbc-spi-test - ${r2dbc-spi.version} - test - - - org.assertj - assertj-core - ${assertj.version} - test - - - org.junit.jupiter - junit-jupiter-api - test - - - org.junit.jupiter - junit-jupiter-engine - test - - - org.junit.jupiter - junit-jupiter-params - test - - - org.mockito - mockito-core - ${mockito.version} - test - - - com.mysql - mysql-connector-j - ${mysql.version} - test - - - com.zaxxer - HikariCP - ${hikari-cp.version} - test - - - org.slf4j - slf4j-api - - - - - org.springframework - spring-jdbc - ${spring-framework.version} - test - - - org.testcontainers - mysql - test - - - org.slf4j - slf4j-api - - - - - com.fasterxml.jackson.core - jackson-core - test - - - com.fasterxml.jackson.core - jackson-databind - test - - - com.fasterxml.jackson.core - jackson-annotations - test - - - org.bouncycastle - bcpkix-jdk18on - test - - - @@ -293,11 +165,6 @@ - - org.apache.maven.plugins - maven-deploy-plugin - 3.1.1 - org.apache.maven.plugins maven-javadoc-plugin @@ -387,6 +254,17 @@ + + graalvm + + + ${java.home}/bin/gu + + + + false + + jmh diff --git a/r2dbc-mysql/pom.xml b/r2dbc-mysql/pom.xml new file mode 100644 index 000000000..abce991e7 --- /dev/null +++ b/r2dbc-mysql/pom.xml @@ -0,0 +1,154 @@ + + + 4.0.0 + + io.asyncer + r2dbc-mysql-parent + 1.1.2-SNAPSHOT + + + r2dbc-mysql + + + 8 + 8 + UTF-8 + + + + + io.projectreactor + reactor-core + + + io.projectreactor.netty + reactor-netty + + + io.r2dbc + r2dbc-spi + ${r2dbc-spi.version} + + + org.jetbrains + annotations + + + + com.google.code.findbugs + jsr305 + ${jsr305.version} + provided + + + + com.github.luben + zstd-jni + ${zstd-jni.version} + true + + + + ch.qos.logback + logback-classic + ${logback.version} + test + + + io.projectreactor + reactor-test + test + + + io.r2dbc + r2dbc-spi-test + ${r2dbc-spi.version} + test + + + org.assertj + assertj-core + ${assertj.version} + test + + + org.junit.jupiter + junit-jupiter-api + test + + + org.junit.jupiter + junit-jupiter-engine + test + + + org.junit.jupiter + junit-jupiter-params + test + + + org.mockito + mockito-core + ${mockito.version} + test + + + com.mysql + mysql-connector-j + ${mysql.version} + test + + + com.zaxxer + HikariCP + ${hikari-cp.version} + test + + + org.slf4j + slf4j-api + + + + + org.springframework + spring-jdbc + ${spring-framework.version} + test + + + org.testcontainers + mysql + test + + + org.slf4j + slf4j-api + + + + + com.fasterxml.jackson.core + jackson-core + test + + + com.fasterxml.jackson.core + jackson-databind + test + + + com.fasterxml.jackson.core + jackson-annotations + test + + + org.bouncycastle + bcpkix-jdk18on + test + + + + \ No newline at end of file diff --git a/src/jmh/java/io/asyncer/r2dbc/mysql/BenchmarkSupport.java b/r2dbc-mysql/src/jmh/java/io/asyncer/r2dbc/mysql/BenchmarkSupport.java similarity index 100% rename from src/jmh/java/io/asyncer/r2dbc/mysql/BenchmarkSupport.java rename to r2dbc-mysql/src/jmh/java/io/asyncer/r2dbc/mysql/BenchmarkSupport.java diff --git a/src/jmh/java/io/asyncer/r2dbc/mysql/MySqlNamesCompareBenchmark.java b/r2dbc-mysql/src/jmh/java/io/asyncer/r2dbc/mysql/MySqlNamesCompareBenchmark.java similarity index 100% rename from src/jmh/java/io/asyncer/r2dbc/mysql/MySqlNamesCompareBenchmark.java rename to r2dbc-mysql/src/jmh/java/io/asyncer/r2dbc/mysql/MySqlNamesCompareBenchmark.java diff --git a/src/jmh/java/io/asyncer/r2dbc/mysql/SelectOneBenchmark.java b/r2dbc-mysql/src/jmh/java/io/asyncer/r2dbc/mysql/SelectOneBenchmark.java similarity index 100% rename from src/jmh/java/io/asyncer/r2dbc/mysql/SelectOneBenchmark.java rename to r2dbc-mysql/src/jmh/java/io/asyncer/r2dbc/mysql/SelectOneBenchmark.java diff --git a/src/jmh/java/io/asyncer/r2dbc/mysql/ServerVersionBenchmark.java b/r2dbc-mysql/src/jmh/java/io/asyncer/r2dbc/mysql/ServerVersionBenchmark.java similarity index 100% rename from src/jmh/java/io/asyncer/r2dbc/mysql/ServerVersionBenchmark.java rename to r2dbc-mysql/src/jmh/java/io/asyncer/r2dbc/mysql/ServerVersionBenchmark.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/Binding.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/Binding.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/Binding.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/Binding.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/Capability.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/Capability.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/Capability.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/Capability.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/ColumnDefinition.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/ColumnDefinition.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/ColumnDefinition.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/ColumnDefinition.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/ColumnNameSet.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/ColumnNameSet.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/ColumnNameSet.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/ColumnNameSet.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/ConnectionContext.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/ConnectionContext.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/ConnectionContext.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/ConnectionContext.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/ConnectionState.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/ConnectionState.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/ConnectionState.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/ConnectionState.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/ConsistentSnapshotEngine.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/ConsistentSnapshotEngine.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/ConsistentSnapshotEngine.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/ConsistentSnapshotEngine.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/Extensions.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/Extensions.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/Extensions.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/Extensions.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/InsertSyntheticRow.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/InsertSyntheticRow.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/InsertSyntheticRow.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/InsertSyntheticRow.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/MySqlBatch.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlBatch.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/MySqlBatch.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlBatch.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/MySqlBatchingBatch.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlBatchingBatch.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/MySqlBatchingBatch.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlBatchingBatch.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/MySqlColumnDescriptor.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlColumnDescriptor.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/MySqlColumnDescriptor.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlColumnDescriptor.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/MySqlColumnMetadata.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlColumnMetadata.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/MySqlColumnMetadata.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlColumnMetadata.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/MySqlConnection.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlConnection.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/MySqlConnection.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlConnection.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/MySqlConnectionConfiguration.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlConnectionConfiguration.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/MySqlConnectionConfiguration.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlConnectionConfiguration.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/MySqlConnectionFactory.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlConnectionFactory.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/MySqlConnectionFactory.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlConnectionFactory.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/MySqlConnectionFactoryMetadata.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlConnectionFactoryMetadata.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/MySqlConnectionFactoryMetadata.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlConnectionFactoryMetadata.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/MySqlConnectionFactoryProvider.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlConnectionFactoryProvider.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/MySqlConnectionFactoryProvider.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlConnectionFactoryProvider.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/MySqlConnectionMetadata.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlConnectionMetadata.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/MySqlConnectionMetadata.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlConnectionMetadata.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/MySqlNames.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlNames.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/MySqlNames.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlNames.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/MySqlParameter.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlParameter.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/MySqlParameter.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlParameter.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/MySqlResult.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlResult.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/MySqlResult.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlResult.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/MySqlRow.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlRow.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/MySqlRow.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlRow.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/MySqlRowMetadata.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlRowMetadata.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/MySqlRowMetadata.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlRowMetadata.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/MySqlSslConfiguration.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlSslConfiguration.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/MySqlSslConfiguration.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlSslConfiguration.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/MySqlStatement.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlStatement.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/MySqlStatement.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlStatement.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/MySqlStatementSupport.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlStatementSupport.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/MySqlStatementSupport.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlStatementSupport.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/MySqlSyntheticBatch.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlSyntheticBatch.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/MySqlSyntheticBatch.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlSyntheticBatch.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/MySqlTransactionDefinition.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlTransactionDefinition.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/MySqlTransactionDefinition.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlTransactionDefinition.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/MySqlTypeMetadata.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlTypeMetadata.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/MySqlTypeMetadata.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlTypeMetadata.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/OptionMapper.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/OptionMapper.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/OptionMapper.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/OptionMapper.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/ParameterIndex.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/ParameterIndex.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/ParameterIndex.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/ParameterIndex.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/ParameterWriter.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/ParameterWriter.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/ParameterWriter.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/ParameterWriter.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/ParametrizedStatementSupport.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/ParametrizedStatementSupport.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/ParametrizedStatementSupport.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/ParametrizedStatementSupport.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/PingStatement.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/PingStatement.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/PingStatement.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/PingStatement.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/PrepareParametrizedStatement.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/PrepareParametrizedStatement.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/PrepareParametrizedStatement.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/PrepareParametrizedStatement.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/PrepareSimpleStatement.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/PrepareSimpleStatement.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/PrepareSimpleStatement.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/PrepareSimpleStatement.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/Query.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/Query.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/Query.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/Query.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/QueryFlow.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/QueryFlow.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/QueryFlow.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/QueryFlow.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/QueryLogger.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/QueryLogger.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/QueryLogger.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/QueryLogger.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/ServerVersion.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/ServerVersion.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/ServerVersion.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/ServerVersion.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/SimpleStatementSupport.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/SimpleStatementSupport.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/SimpleStatementSupport.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/SimpleStatementSupport.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/TextParametrizedStatement.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/TextParametrizedStatement.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/TextParametrizedStatement.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/TextParametrizedStatement.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/TextSimpleStatement.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/TextSimpleStatement.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/TextSimpleStatement.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/TextSimpleStatement.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/authentication/AuthUtils.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/authentication/AuthUtils.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/authentication/AuthUtils.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/authentication/AuthUtils.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/authentication/CachingSha2FastAuthProvider.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/authentication/CachingSha2FastAuthProvider.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/authentication/CachingSha2FastAuthProvider.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/authentication/CachingSha2FastAuthProvider.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/authentication/CachingSha2FullAuthProvider.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/authentication/CachingSha2FullAuthProvider.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/authentication/CachingSha2FullAuthProvider.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/authentication/CachingSha2FullAuthProvider.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/authentication/MySqlAuthProvider.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/authentication/MySqlAuthProvider.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/authentication/MySqlAuthProvider.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/authentication/MySqlAuthProvider.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/authentication/MySqlClearAuthProvider.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/authentication/MySqlClearAuthProvider.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/authentication/MySqlClearAuthProvider.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/authentication/MySqlClearAuthProvider.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/authentication/MySqlNativeAuthProvider.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/authentication/MySqlNativeAuthProvider.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/authentication/MySqlNativeAuthProvider.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/authentication/MySqlNativeAuthProvider.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/authentication/NoAuthProvider.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/authentication/NoAuthProvider.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/authentication/NoAuthProvider.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/authentication/NoAuthProvider.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/authentication/OldAuthProvider.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/authentication/OldAuthProvider.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/authentication/OldAuthProvider.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/authentication/OldAuthProvider.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/authentication/Sha256AuthProvider.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/authentication/Sha256AuthProvider.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/authentication/Sha256AuthProvider.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/authentication/Sha256AuthProvider.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/authentication/package-info.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/authentication/package-info.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/authentication/package-info.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/authentication/package-info.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/cache/Caches.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/cache/Caches.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/cache/Caches.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/cache/Caches.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/cache/FreqSketch.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/cache/FreqSketch.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/cache/FreqSketch.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/cache/FreqSketch.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/cache/Lru.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/cache/Lru.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/cache/Lru.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/cache/Lru.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/cache/PrepareBoundedCache.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/cache/PrepareBoundedCache.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/cache/PrepareBoundedCache.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/cache/PrepareBoundedCache.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/cache/PrepareCache.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/cache/PrepareCache.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/cache/PrepareCache.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/cache/PrepareCache.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/cache/PrepareDisabledCache.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/cache/PrepareDisabledCache.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/cache/PrepareDisabledCache.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/cache/PrepareDisabledCache.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/cache/PrepareUnboundedCache.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/cache/PrepareUnboundedCache.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/cache/PrepareUnboundedCache.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/cache/PrepareUnboundedCache.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/cache/QueryBoundedCache.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/cache/QueryBoundedCache.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/cache/QueryBoundedCache.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/cache/QueryBoundedCache.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/cache/QueryCache.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/cache/QueryCache.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/cache/QueryCache.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/cache/QueryCache.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/cache/QueryDisabledCache.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/cache/QueryDisabledCache.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/cache/QueryDisabledCache.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/cache/QueryDisabledCache.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/cache/QueryUnboundedCache.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/cache/QueryUnboundedCache.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/cache/QueryUnboundedCache.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/cache/QueryUnboundedCache.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/cache/RingBuffer.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/cache/RingBuffer.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/cache/RingBuffer.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/cache/RingBuffer.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/cache/package-info.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/cache/package-info.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/cache/package-info.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/cache/package-info.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/client/Client.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/Client.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/client/Client.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/Client.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/client/ClientExceptions.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/ClientExceptions.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/client/ClientExceptions.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/ClientExceptions.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/client/CompressionDuplexCodec.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/CompressionDuplexCodec.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/client/CompressionDuplexCodec.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/CompressionDuplexCodec.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/client/Compressor.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/Compressor.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/client/Compressor.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/Compressor.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/client/DefaultHostnameVerifier.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/DefaultHostnameVerifier.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/client/DefaultHostnameVerifier.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/DefaultHostnameVerifier.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/client/FluxExchangeable.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/FluxExchangeable.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/client/FluxExchangeable.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/FluxExchangeable.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/client/MessageDuplexCodec.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/MessageDuplexCodec.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/client/MessageDuplexCodec.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/MessageDuplexCodec.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/client/PacketEvent.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/PacketEvent.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/client/PacketEvent.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/PacketEvent.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/client/ReactorNettyClient.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/ReactorNettyClient.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/client/ReactorNettyClient.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/ReactorNettyClient.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/client/RequestQueue.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/RequestQueue.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/client/RequestQueue.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/RequestQueue.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/client/RequestTask.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/RequestTask.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/client/RequestTask.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/RequestTask.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/client/San.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/San.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/client/San.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/San.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/client/SslBridgeHandler.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/SslBridgeHandler.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/client/SslBridgeHandler.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/SslBridgeHandler.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/client/SslState.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/SslState.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/client/SslState.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/SslState.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/client/WriteSubscriber.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/WriteSubscriber.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/client/WriteSubscriber.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/WriteSubscriber.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/client/ZlibCompressor.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/ZlibCompressor.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/client/ZlibCompressor.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/ZlibCompressor.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/client/ZstdCompressor.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/ZstdCompressor.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/client/ZstdCompressor.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/ZstdCompressor.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/client/package-info.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/package-info.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/client/package-info.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/client/package-info.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/AbstractClassedCodec.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/AbstractClassedCodec.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/AbstractClassedCodec.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/AbstractClassedCodec.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/AbstractLobMySqlParameter.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/AbstractLobMySqlParameter.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/AbstractLobMySqlParameter.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/AbstractLobMySqlParameter.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/AbstractMySqlParameter.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/AbstractMySqlParameter.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/AbstractMySqlParameter.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/AbstractMySqlParameter.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/AbstractPrimitiveCodec.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/AbstractPrimitiveCodec.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/AbstractPrimitiveCodec.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/AbstractPrimitiveCodec.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/BigDecimalCodec.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/BigDecimalCodec.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/BigDecimalCodec.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/BigDecimalCodec.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/BigIntegerCodec.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/BigIntegerCodec.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/BigIntegerCodec.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/BigIntegerCodec.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/BitSetCodec.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/BitSetCodec.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/BitSetCodec.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/BitSetCodec.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/BlobCodec.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/BlobCodec.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/BlobCodec.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/BlobCodec.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/BooleanCodec.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/BooleanCodec.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/BooleanCodec.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/BooleanCodec.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/ByteArrayCodec.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/ByteArrayCodec.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/ByteArrayCodec.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/ByteArrayCodec.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/ByteBufferCodec.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/ByteBufferCodec.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/ByteBufferCodec.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/ByteBufferCodec.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/ByteCodec.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/ByteCodec.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/ByteCodec.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/ByteCodec.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/ClobCodec.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/ClobCodec.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/ClobCodec.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/ClobCodec.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/Codec.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/Codec.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/Codec.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/Codec.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/CodecContext.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/CodecContext.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/CodecContext.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/CodecContext.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/CodecRegistry.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/CodecRegistry.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/CodecRegistry.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/CodecRegistry.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/CodecUtils.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/CodecUtils.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/CodecUtils.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/CodecUtils.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/Codecs.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/Codecs.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/Codecs.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/Codecs.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/CodecsBuilder.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/CodecsBuilder.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/CodecsBuilder.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/CodecsBuilder.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/DateTimes.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/DateTimes.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/DateTimes.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/DateTimes.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/DefaultCodecs.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/DefaultCodecs.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/DefaultCodecs.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/DefaultCodecs.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/DoubleCodec.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/DoubleCodec.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/DoubleCodec.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/DoubleCodec.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/DurationCodec.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/DurationCodec.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/DurationCodec.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/DurationCodec.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/EnumCodec.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/EnumCodec.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/EnumCodec.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/EnumCodec.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/FloatCodec.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/FloatCodec.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/FloatCodec.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/FloatCodec.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/InstantCodec.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/InstantCodec.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/InstantCodec.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/InstantCodec.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/IntegerCodec.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/IntegerCodec.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/IntegerCodec.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/IntegerCodec.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/LocalDateCodec.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/LocalDateCodec.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/LocalDateCodec.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/LocalDateCodec.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/LocalDateTimeCodec.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/LocalDateTimeCodec.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/LocalDateTimeCodec.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/LocalDateTimeCodec.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/LocalTimeCodec.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/LocalTimeCodec.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/LocalTimeCodec.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/LocalTimeCodec.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/LongCodec.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/LongCodec.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/LongCodec.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/LongCodec.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/MassiveCodec.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/MassiveCodec.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/MassiveCodec.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/MassiveCodec.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/MassiveParametrizedCodec.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/MassiveParametrizedCodec.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/MassiveParametrizedCodec.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/MassiveParametrizedCodec.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/NullMySqlParameter.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/NullMySqlParameter.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/NullMySqlParameter.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/NullMySqlParameter.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/OffsetDateTimeCodec.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/OffsetDateTimeCodec.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/OffsetDateTimeCodec.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/OffsetDateTimeCodec.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/OffsetTimeCodec.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/OffsetTimeCodec.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/OffsetTimeCodec.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/OffsetTimeCodec.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/ParametrizedCodec.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/ParametrizedCodec.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/ParametrizedCodec.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/ParametrizedCodec.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/PrimitiveCodec.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/PrimitiveCodec.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/PrimitiveCodec.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/PrimitiveCodec.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/SetCodec.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/SetCodec.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/SetCodec.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/SetCodec.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/ShortCodec.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/ShortCodec.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/ShortCodec.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/ShortCodec.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/StringCodec.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/StringCodec.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/StringCodec.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/StringCodec.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/YearCodec.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/YearCodec.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/YearCodec.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/YearCodec.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/ZonedDateTimeCodec.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/ZonedDateTimeCodec.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/ZonedDateTimeCodec.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/ZonedDateTimeCodec.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/lob/LobUtils.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/lob/LobUtils.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/lob/LobUtils.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/lob/LobUtils.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/lob/MultiBlob.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/lob/MultiBlob.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/lob/MultiBlob.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/lob/MultiBlob.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/lob/MultiClob.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/lob/MultiClob.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/lob/MultiClob.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/lob/MultiClob.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/lob/MultiLob.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/lob/MultiLob.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/lob/MultiLob.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/lob/MultiLob.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/lob/SingletonBlob.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/lob/SingletonBlob.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/lob/SingletonBlob.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/lob/SingletonBlob.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/lob/SingletonClob.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/lob/SingletonClob.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/lob/SingletonClob.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/lob/SingletonClob.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/lob/SingletonLob.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/lob/SingletonLob.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/lob/SingletonLob.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/lob/SingletonLob.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/lob/package-info.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/lob/package-info.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/lob/package-info.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/lob/package-info.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/codec/package-info.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/package-info.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/codec/package-info.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/package-info.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/collation/AbstractCharCollation.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/collation/AbstractCharCollation.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/collation/AbstractCharCollation.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/collation/AbstractCharCollation.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/collation/AbstractCharsetTarget.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/collation/AbstractCharsetTarget.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/collation/AbstractCharsetTarget.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/collation/AbstractCharsetTarget.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/collation/BinaryTarget.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/collation/BinaryTarget.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/collation/BinaryTarget.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/collation/BinaryTarget.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/collation/CachedCharCollation.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/collation/CachedCharCollation.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/collation/CachedCharCollation.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/collation/CachedCharCollation.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/collation/CachedCharsetTarget.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/collation/CachedCharsetTarget.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/collation/CachedCharsetTarget.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/collation/CachedCharsetTarget.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/collation/CharCollation.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/collation/CharCollation.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/collation/CharCollation.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/collation/CharCollation.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/collation/CharCollations.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/collation/CharCollations.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/collation/CharCollations.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/collation/CharCollations.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/collation/CharsetTarget.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/collation/CharsetTarget.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/collation/CharsetTarget.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/collation/CharsetTarget.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/collation/CharsetTargets.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/collation/CharsetTargets.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/collation/CharsetTargets.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/collation/CharsetTargets.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/collation/LazyInitCharCollation.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/collation/LazyInitCharCollation.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/collation/LazyInitCharCollation.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/collation/LazyInitCharCollation.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/collation/MixCharsetTarget.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/collation/MixCharsetTarget.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/collation/MixCharsetTarget.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/collation/MixCharsetTarget.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/collation/NamedCharsetTarget.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/collation/NamedCharsetTarget.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/collation/NamedCharsetTarget.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/collation/NamedCharsetTarget.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/collation/package-info.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/collation/package-info.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/collation/package-info.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/collation/package-info.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/constant/CompressionAlgorithm.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/constant/CompressionAlgorithm.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/constant/CompressionAlgorithm.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/constant/CompressionAlgorithm.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/constant/MySqlType.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/constant/MySqlType.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/constant/MySqlType.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/constant/MySqlType.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/constant/Packets.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/constant/Packets.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/constant/Packets.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/constant/Packets.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/constant/ServerStatuses.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/constant/ServerStatuses.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/constant/ServerStatuses.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/constant/ServerStatuses.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/constant/SslMode.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/constant/SslMode.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/constant/SslMode.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/constant/SslMode.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/constant/TlsVersions.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/constant/TlsVersions.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/constant/TlsVersions.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/constant/TlsVersions.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/constant/ZeroDateOption.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/constant/ZeroDateOption.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/constant/ZeroDateOption.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/constant/ZeroDateOption.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/constant/package-info.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/constant/package-info.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/constant/package-info.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/constant/package-info.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/extension/CodecRegistrar.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/extension/CodecRegistrar.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/extension/CodecRegistrar.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/extension/CodecRegistrar.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/extension/Extension.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/extension/Extension.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/extension/Extension.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/extension/Extension.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/extension/package-info.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/extension/package-info.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/extension/package-info.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/extension/package-info.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/internal/NotNullByDefault.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/internal/NotNullByDefault.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/internal/NotNullByDefault.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/internal/NotNullByDefault.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/internal/package-info.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/internal/package-info.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/internal/package-info.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/internal/package-info.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/internal/util/AddressUtils.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/internal/util/AddressUtils.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/internal/util/AddressUtils.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/internal/util/AddressUtils.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/internal/util/AssertUtils.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/internal/util/AssertUtils.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/internal/util/AssertUtils.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/internal/util/AssertUtils.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/internal/util/DiscardOnCancelSubscriber.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/internal/util/DiscardOnCancelSubscriber.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/internal/util/DiscardOnCancelSubscriber.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/internal/util/DiscardOnCancelSubscriber.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/internal/util/FluxDiscardOnCancel.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/internal/util/FluxDiscardOnCancel.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/internal/util/FluxDiscardOnCancel.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/internal/util/FluxDiscardOnCancel.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/internal/util/FluxDiscardOnCancelFuseable.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/internal/util/FluxDiscardOnCancelFuseable.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/internal/util/FluxDiscardOnCancelFuseable.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/internal/util/FluxDiscardOnCancelFuseable.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/internal/util/FluxEnvelope.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/internal/util/FluxEnvelope.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/internal/util/FluxEnvelope.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/internal/util/FluxEnvelope.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/internal/util/InternalArrays.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/internal/util/InternalArrays.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/internal/util/InternalArrays.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/internal/util/InternalArrays.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/internal/util/NettyBufferUtils.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/internal/util/NettyBufferUtils.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/internal/util/NettyBufferUtils.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/internal/util/NettyBufferUtils.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/internal/util/OperatorUtils.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/internal/util/OperatorUtils.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/internal/util/OperatorUtils.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/internal/util/OperatorUtils.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/internal/util/ReadCompletionHandler.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/internal/util/ReadCompletionHandler.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/internal/util/ReadCompletionHandler.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/internal/util/ReadCompletionHandler.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/internal/util/StringUtils.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/internal/util/StringUtils.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/internal/util/StringUtils.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/internal/util/StringUtils.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/internal/util/VarIntUtils.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/internal/util/VarIntUtils.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/internal/util/VarIntUtils.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/internal/util/VarIntUtils.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/internal/util/package-info.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/internal/util/package-info.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/internal/util/package-info.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/internal/util/package-info.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/FieldValue.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/FieldValue.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/FieldValue.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/FieldValue.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/LargeFieldValue.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/LargeFieldValue.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/LargeFieldValue.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/LargeFieldValue.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/NormalFieldValue.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/NormalFieldValue.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/NormalFieldValue.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/NormalFieldValue.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/NullFieldValue.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/NullFieldValue.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/NullFieldValue.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/NullFieldValue.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/client/AuthResponse.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/AuthResponse.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/client/AuthResponse.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/AuthResponse.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/client/ClientMessage.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/ClientMessage.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/client/ClientMessage.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/ClientMessage.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/client/ExitMessage.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/ExitMessage.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/client/ExitMessage.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/ExitMessage.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/client/HandshakeResponse.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/HandshakeResponse.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/client/HandshakeResponse.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/HandshakeResponse.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/client/HandshakeResponse320.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/HandshakeResponse320.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/client/HandshakeResponse320.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/HandshakeResponse320.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/client/HandshakeResponse41.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/HandshakeResponse41.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/client/HandshakeResponse41.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/HandshakeResponse41.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/client/InitDbMessage.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/InitDbMessage.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/client/InitDbMessage.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/InitDbMessage.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/client/LocalInfileResponse.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/LocalInfileResponse.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/client/LocalInfileResponse.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/LocalInfileResponse.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/client/ParamWriter.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/ParamWriter.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/client/ParamWriter.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/ParamWriter.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/client/PingMessage.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/PingMessage.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/client/PingMessage.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/PingMessage.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/client/PrepareQueryMessage.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/PrepareQueryMessage.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/client/PrepareQueryMessage.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/PrepareQueryMessage.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/client/PreparedCloseMessage.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/PreparedCloseMessage.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/client/PreparedCloseMessage.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/PreparedCloseMessage.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/client/PreparedExecuteMessage.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/PreparedExecuteMessage.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/client/PreparedExecuteMessage.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/PreparedExecuteMessage.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/client/PreparedFetchMessage.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/PreparedFetchMessage.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/client/PreparedFetchMessage.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/PreparedFetchMessage.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/client/PreparedLargeDataMessage.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/PreparedLargeDataMessage.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/client/PreparedLargeDataMessage.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/PreparedLargeDataMessage.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/client/PreparedResetMessage.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/PreparedResetMessage.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/client/PreparedResetMessage.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/PreparedResetMessage.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/client/PreparedTextQueryMessage.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/PreparedTextQueryMessage.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/client/PreparedTextQueryMessage.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/PreparedTextQueryMessage.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/client/ScalarClientMessage.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/ScalarClientMessage.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/client/ScalarClientMessage.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/ScalarClientMessage.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/client/SizedClientMessage.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/SizedClientMessage.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/client/SizedClientMessage.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/SizedClientMessage.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/client/SslRequest.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/SslRequest.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/client/SslRequest.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/SslRequest.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/client/SslRequest320.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/SslRequest320.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/client/SslRequest320.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/SslRequest320.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/client/SslRequest41.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/SslRequest41.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/client/SslRequest41.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/SslRequest41.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/client/SubsequenceClientMessage.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/SubsequenceClientMessage.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/client/SubsequenceClientMessage.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/SubsequenceClientMessage.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/client/TextQueryMessage.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/TextQueryMessage.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/client/TextQueryMessage.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/TextQueryMessage.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/client/package-info.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/package-info.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/client/package-info.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/client/package-info.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/package-info.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/package-info.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/package-info.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/package-info.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/server/AuthMoreDataMessage.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/AuthMoreDataMessage.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/server/AuthMoreDataMessage.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/AuthMoreDataMessage.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/server/ChangeAuthMessage.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/ChangeAuthMessage.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/server/ChangeAuthMessage.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/ChangeAuthMessage.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/server/ColumnCountMessage.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/ColumnCountMessage.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/server/ColumnCountMessage.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/ColumnCountMessage.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/server/CommandDecodeContext.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/CommandDecodeContext.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/server/CommandDecodeContext.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/CommandDecodeContext.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/server/CompleteMessage.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/CompleteMessage.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/server/CompleteMessage.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/CompleteMessage.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/server/DecodeContext.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/DecodeContext.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/server/DecodeContext.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/DecodeContext.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/server/DefinitionMetadataMessage.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/DefinitionMetadataMessage.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/server/DefinitionMetadataMessage.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/DefinitionMetadataMessage.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/server/Eof320Message.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/Eof320Message.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/server/Eof320Message.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/Eof320Message.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/server/Eof41Message.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/Eof41Message.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/server/Eof41Message.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/Eof41Message.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/server/EofMessage.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/EofMessage.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/server/EofMessage.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/EofMessage.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/server/ErrorMessage.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/ErrorMessage.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/server/ErrorMessage.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/ErrorMessage.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/server/FetchDecodeContext.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/FetchDecodeContext.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/server/FetchDecodeContext.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/FetchDecodeContext.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/server/FieldReader.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/FieldReader.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/server/FieldReader.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/FieldReader.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/server/HandshakeHeader.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/HandshakeHeader.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/server/HandshakeHeader.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/HandshakeHeader.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/server/HandshakeRequest.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/HandshakeRequest.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/server/HandshakeRequest.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/HandshakeRequest.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/server/HandshakeV10Request.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/HandshakeV10Request.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/server/HandshakeV10Request.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/HandshakeV10Request.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/server/HandshakeV9Request.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/HandshakeV9Request.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/server/HandshakeV9Request.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/HandshakeV9Request.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/server/LargeFieldReader.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/LargeFieldReader.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/server/LargeFieldReader.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/LargeFieldReader.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/server/LocalInfileRequest.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/LocalInfileRequest.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/server/LocalInfileRequest.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/LocalInfileRequest.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/server/LoginDecodeContext.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/LoginDecodeContext.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/server/LoginDecodeContext.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/LoginDecodeContext.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/server/MetadataDecodeContext.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/MetadataDecodeContext.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/server/MetadataDecodeContext.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/MetadataDecodeContext.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/server/NormalFieldReader.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/NormalFieldReader.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/server/NormalFieldReader.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/NormalFieldReader.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/server/OkMessage.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/OkMessage.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/server/OkMessage.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/OkMessage.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/server/PrepareQueryDecodeContext.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/PrepareQueryDecodeContext.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/server/PrepareQueryDecodeContext.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/PrepareQueryDecodeContext.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/server/PreparedMetadataDecodeContext.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/PreparedMetadataDecodeContext.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/server/PreparedMetadataDecodeContext.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/PreparedMetadataDecodeContext.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/server/PreparedOkMessage.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/PreparedOkMessage.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/server/PreparedOkMessage.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/PreparedOkMessage.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/server/ResultDecodeContext.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/ResultDecodeContext.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/server/ResultDecodeContext.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/ResultDecodeContext.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/server/RowMessage.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/RowMessage.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/server/RowMessage.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/RowMessage.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/server/ServerMessage.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/ServerMessage.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/server/ServerMessage.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/ServerMessage.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/server/ServerMessageDecoder.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/ServerMessageDecoder.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/server/ServerMessageDecoder.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/ServerMessageDecoder.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/server/ServerStatusMessage.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/ServerStatusMessage.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/server/ServerStatusMessage.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/ServerStatusMessage.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/server/SyntheticMetadataMessage.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/SyntheticMetadataMessage.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/server/SyntheticMetadataMessage.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/SyntheticMetadataMessage.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/server/SyntheticSslResponseMessage.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/SyntheticSslResponseMessage.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/server/SyntheticSslResponseMessage.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/SyntheticSslResponseMessage.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/server/WarningMessage.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/WarningMessage.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/server/WarningMessage.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/WarningMessage.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/message/server/package-info.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/package-info.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/message/server/package-info.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/message/server/package-info.java diff --git a/src/main/java/io/asyncer/r2dbc/mysql/package-info.java b/r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/package-info.java similarity index 100% rename from src/main/java/io/asyncer/r2dbc/mysql/package-info.java rename to r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/package-info.java diff --git a/src/main/resources/META-INF/services/io.r2dbc.spi.ConnectionFactoryProvider b/r2dbc-mysql/src/main/resources/META-INF/services/io.r2dbc.spi.ConnectionFactoryProvider similarity index 100% rename from src/main/resources/META-INF/services/io.r2dbc.spi.ConnectionFactoryProvider rename to r2dbc-mysql/src/main/resources/META-INF/services/io.r2dbc.spi.ConnectionFactoryProvider diff --git a/src/test/java/io/asyncer/r2dbc/mysql/ColumnDefinitionTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/ColumnDefinitionTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/ColumnDefinitionTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/ColumnDefinitionTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/CompressionIntegrationTestSupport.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/CompressionIntegrationTestSupport.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/CompressionIntegrationTestSupport.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/CompressionIntegrationTestSupport.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/ConnectionContextTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/ConnectionContextTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/ConnectionContextTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/ConnectionContextTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/ConnectionIntegrationTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/ConnectionIntegrationTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/ConnectionIntegrationTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/ConnectionIntegrationTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/ExtensionsTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/ExtensionsTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/ExtensionsTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/ExtensionsTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/InitDbIntegrationTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/InitDbIntegrationTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/InitDbIntegrationTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/InitDbIntegrationTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/IntegrationTestSupport.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/IntegrationTestSupport.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/IntegrationTestSupport.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/IntegrationTestSupport.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/JacksonIntegrationTestSupport.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/JacksonIntegrationTestSupport.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/JacksonIntegrationTestSupport.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/JacksonIntegrationTestSupport.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/JacksonPrepareIntegrationTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/JacksonPrepareIntegrationTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/JacksonPrepareIntegrationTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/JacksonPrepareIntegrationTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/JacksonTextIntegrationTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/JacksonTextIntegrationTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/JacksonTextIntegrationTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/JacksonTextIntegrationTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/MariaDbIntegrationTestSupport.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/MariaDbIntegrationTestSupport.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/MariaDbIntegrationTestSupport.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/MariaDbIntegrationTestSupport.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/MariaDbPrepareIntegrationTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/MariaDbPrepareIntegrationTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/MariaDbPrepareIntegrationTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/MariaDbPrepareIntegrationTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/MariaDbTextIntegrationTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/MariaDbTextIntegrationTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/MariaDbTextIntegrationTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/MariaDbTextIntegrationTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/MySqlBatchingBatchTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/MySqlBatchingBatchTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/MySqlBatchingBatchTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/MySqlBatchingBatchTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/MySqlConnectionConfigurationTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/MySqlConnectionConfigurationTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/MySqlConnectionConfigurationTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/MySqlConnectionConfigurationTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/MySqlConnectionFactoryProviderTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/MySqlConnectionFactoryProviderTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/MySqlConnectionFactoryProviderTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/MySqlConnectionFactoryProviderTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/MySqlConnectionTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/MySqlConnectionTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/MySqlConnectionTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/MySqlConnectionTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/MySqlNamesTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/MySqlNamesTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/MySqlNamesTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/MySqlNamesTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/MySqlPrepareTestKit.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/MySqlPrepareTestKit.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/MySqlPrepareTestKit.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/MySqlPrepareTestKit.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/MySqlSyntheticBatchTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/MySqlSyntheticBatchTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/MySqlSyntheticBatchTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/MySqlSyntheticBatchTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/MySqlTestKitSupport.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/MySqlTestKitSupport.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/MySqlTestKitSupport.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/MySqlTestKitSupport.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/MySqlTextTestKit.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/MySqlTextTestKit.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/MySqlTextTestKit.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/MySqlTextTestKit.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/MySqlTransactionDefinitionTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/MySqlTransactionDefinitionTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/MySqlTransactionDefinitionTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/MySqlTransactionDefinitionTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/OptionMapperTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/OptionMapperTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/OptionMapperTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/OptionMapperTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/PrepareParametrizedStatementTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/PrepareParametrizedStatementTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/PrepareParametrizedStatementTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/PrepareParametrizedStatementTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/PrepareQueryIntegrationTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/PrepareQueryIntegrationTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/PrepareQueryIntegrationTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/PrepareQueryIntegrationTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/PrepareSimpleStatementTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/PrepareSimpleStatementTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/PrepareSimpleStatementTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/PrepareSimpleStatementTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/PrepareTimeZoneIntegrationTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/PrepareTimeZoneIntegrationTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/PrepareTimeZoneIntegrationTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/PrepareTimeZoneIntegrationTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/QueryIntegrationTestSupport.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/QueryIntegrationTestSupport.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/QueryIntegrationTestSupport.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/QueryIntegrationTestSupport.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/QueryTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/QueryTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/QueryTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/QueryTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/ServerVersionTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/ServerVersionTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/ServerVersionTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/ServerVersionTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/SessionStateIntegrationTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/SessionStateIntegrationTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/SessionStateIntegrationTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/SessionStateIntegrationTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/SslTunnelIntegrationTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/SslTunnelIntegrationTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/SslTunnelIntegrationTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/SslTunnelIntegrationTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/StatementTestSupport.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/StatementTestSupport.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/StatementTestSupport.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/StatementTestSupport.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/TextParametrizedStatementTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/TextParametrizedStatementTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/TextParametrizedStatementTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/TextParametrizedStatementTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/TextQueryIntegrationTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/TextQueryIntegrationTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/TextQueryIntegrationTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/TextQueryIntegrationTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/TextSimpleStatementTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/TextSimpleStatementTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/TextSimpleStatementTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/TextSimpleStatementTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/TextTimeZoneIntegrationTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/TextTimeZoneIntegrationTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/TextTimeZoneIntegrationTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/TextTimeZoneIntegrationTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/TimeZoneIntegrationTestSupport.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/TimeZoneIntegrationTestSupport.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/TimeZoneIntegrationTestSupport.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/TimeZoneIntegrationTestSupport.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/ZlibCompressionIntegrationTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/ZlibCompressionIntegrationTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/ZlibCompressionIntegrationTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/ZlibCompressionIntegrationTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/ZstdCompressionIntegrationTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/ZstdCompressionIntegrationTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/ZstdCompressionIntegrationTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/ZstdCompressionIntegrationTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/cache/FreqSketchTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/cache/FreqSketchTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/cache/FreqSketchTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/cache/FreqSketchTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/cache/LruTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/cache/LruTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/cache/LruTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/cache/LruTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/cache/PrepareBoundedCacheTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/cache/PrepareBoundedCacheTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/cache/PrepareBoundedCacheTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/cache/PrepareBoundedCacheTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/client/RequestQueueTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/client/RequestQueueTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/client/RequestQueueTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/client/RequestQueueTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/client/ZlibCompressorTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/client/ZlibCompressorTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/client/ZlibCompressorTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/client/ZlibCompressorTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/codec/BigDecimalCodecTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/BigDecimalCodecTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/codec/BigDecimalCodecTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/BigDecimalCodecTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/codec/BigIntegerCodecTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/BigIntegerCodecTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/codec/BigIntegerCodecTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/BigIntegerCodecTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/codec/BitSetCodecTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/BitSetCodecTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/codec/BitSetCodecTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/BitSetCodecTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/codec/BlobCodecTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/BlobCodecTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/codec/BlobCodecTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/BlobCodecTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/codec/BooleanCodecTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/BooleanCodecTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/codec/BooleanCodecTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/BooleanCodecTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/codec/ByteArrayCodecTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/ByteArrayCodecTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/codec/ByteArrayCodecTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/ByteArrayCodecTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/codec/ByteBufferCodecTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/ByteBufferCodecTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/codec/ByteBufferCodecTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/ByteBufferCodecTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/codec/ByteCodecTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/ByteCodecTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/codec/ByteCodecTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/ByteCodecTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/codec/ClobCodecTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/ClobCodecTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/codec/ClobCodecTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/ClobCodecTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/codec/CodecTestSupport.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/CodecTestSupport.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/codec/CodecTestSupport.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/CodecTestSupport.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/codec/CodecsTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/CodecsTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/codec/CodecsTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/CodecsTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/codec/DateTimeCodecTestSupport.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/DateTimeCodecTestSupport.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/codec/DateTimeCodecTestSupport.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/DateTimeCodecTestSupport.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/codec/DateTimesTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/DateTimesTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/codec/DateTimesTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/DateTimesTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/codec/Decoding.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/Decoding.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/codec/Decoding.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/Decoding.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/codec/DoubleCodecTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/DoubleCodecTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/codec/DoubleCodecTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/DoubleCodecTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/codec/DurationCodecTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/DurationCodecTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/codec/DurationCodecTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/DurationCodecTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/codec/EnumCodecTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/EnumCodecTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/codec/EnumCodecTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/EnumCodecTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/codec/FloatCodecTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/FloatCodecTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/codec/FloatCodecTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/FloatCodecTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/codec/InstantCodecTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/InstantCodecTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/codec/InstantCodecTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/InstantCodecTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/codec/IntegerCodecTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/IntegerCodecTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/codec/IntegerCodecTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/IntegerCodecTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/codec/JacksonCodecTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/JacksonCodecTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/codec/JacksonCodecTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/JacksonCodecTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/codec/LocalDateCodecTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/LocalDateCodecTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/codec/LocalDateCodecTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/LocalDateCodecTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/codec/LocalDateTimeCodecTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/LocalDateTimeCodecTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/codec/LocalDateTimeCodecTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/LocalDateTimeCodecTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/codec/LocalTimeCodecTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/LocalTimeCodecTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/codec/LocalTimeCodecTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/LocalTimeCodecTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/codec/LongCodecTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/LongCodecTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/codec/LongCodecTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/LongCodecTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/codec/NumericCodecTestSupport.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/NumericCodecTestSupport.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/codec/NumericCodecTestSupport.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/NumericCodecTestSupport.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/codec/OffsetDateTimeCodecTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/OffsetDateTimeCodecTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/codec/OffsetDateTimeCodecTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/OffsetDateTimeCodecTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/codec/OffsetTimeCodecTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/OffsetTimeCodecTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/codec/OffsetTimeCodecTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/OffsetTimeCodecTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/codec/SetCodecTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/SetCodecTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/codec/SetCodecTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/SetCodecTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/codec/ShortCodecTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/ShortCodecTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/codec/ShortCodecTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/ShortCodecTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/codec/StringCodecTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/StringCodecTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/codec/StringCodecTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/StringCodecTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/codec/TimeCodecTestSupport.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/TimeCodecTestSupport.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/codec/TimeCodecTestSupport.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/TimeCodecTestSupport.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/codec/YearCodecTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/YearCodecTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/codec/YearCodecTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/YearCodecTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/codec/ZonedDateTimeCodecTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/ZonedDateTimeCodecTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/codec/ZonedDateTimeCodecTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/ZonedDateTimeCodecTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/codec/lob/LobUtilsTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/lob/LobUtilsTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/codec/lob/LobUtilsTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/codec/lob/LobUtilsTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/collation/CharCollationTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/collation/CharCollationTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/collation/CharCollationTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/collation/CharCollationTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/constant/MySqlTypeTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/constant/MySqlTypeTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/constant/MySqlTypeTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/constant/MySqlTypeTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/internal/util/AddressUtilsTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/internal/util/AddressUtilsTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/internal/util/AddressUtilsTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/internal/util/AddressUtilsTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/internal/util/FluxDiscardOnCancelTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/internal/util/FluxDiscardOnCancelTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/internal/util/FluxDiscardOnCancelTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/internal/util/FluxDiscardOnCancelTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/internal/util/FluxEnvelopeTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/internal/util/FluxEnvelopeTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/internal/util/FluxEnvelopeTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/internal/util/FluxEnvelopeTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/internal/util/InternalArraysTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/internal/util/InternalArraysTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/internal/util/InternalArraysTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/internal/util/InternalArraysTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/internal/util/NettyBufferUtilsTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/internal/util/NettyBufferUtilsTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/internal/util/NettyBufferUtilsTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/internal/util/NettyBufferUtilsTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/internal/util/StringUtilsTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/internal/util/StringUtilsTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/internal/util/StringUtilsTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/internal/util/StringUtilsTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/internal/util/VarIntUtilsTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/internal/util/VarIntUtilsTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/internal/util/VarIntUtilsTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/internal/util/VarIntUtilsTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/json/JacksonCodec.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/json/JacksonCodec.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/json/JacksonCodec.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/json/JacksonCodec.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/json/JacksonCodecRegistrar.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/json/JacksonCodecRegistrar.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/json/JacksonCodecRegistrar.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/json/JacksonCodecRegistrar.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/json/package-info.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/json/package-info.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/json/package-info.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/json/package-info.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/message/client/MockException.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/message/client/MockException.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/message/client/MockException.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/message/client/MockException.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/message/client/MockMySqlParameter.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/message/client/MockMySqlParameter.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/message/client/MockMySqlParameter.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/message/client/MockMySqlParameter.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/message/client/ParamWriterTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/message/client/ParamWriterTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/message/client/ParamWriterTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/message/client/ParamWriterTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/message/client/ParameterWriterHelper.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/message/client/ParameterWriterHelper.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/message/client/ParameterWriterHelper.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/message/client/ParameterWriterHelper.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/message/server/OkMessageTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/message/server/OkMessageTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/message/server/OkMessageTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/message/server/OkMessageTest.java diff --git a/src/test/java/io/asyncer/r2dbc/mysql/message/server/ServerMessageDecoderTest.java b/r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/message/server/ServerMessageDecoderTest.java similarity index 100% rename from src/test/java/io/asyncer/r2dbc/mysql/message/server/ServerMessageDecoderTest.java rename to r2dbc-mysql/src/test/java/io/asyncer/r2dbc/mysql/message/server/ServerMessageDecoderTest.java diff --git a/src/test/resources/META-INF/services/io.asyncer.r2dbc.mysql.extension.Extension b/r2dbc-mysql/src/test/resources/META-INF/services/io.asyncer.r2dbc.mysql.extension.Extension similarity index 100% rename from src/test/resources/META-INF/services/io.asyncer.r2dbc.mysql.extension.Extension rename to r2dbc-mysql/src/test/resources/META-INF/services/io.asyncer.r2dbc.mysql.extension.Extension diff --git a/src/test/resources/local/stations.csv b/r2dbc-mysql/src/test/resources/local/stations.csv similarity index 100% rename from src/test/resources/local/stations.csv rename to r2dbc-mysql/src/test/resources/local/stations.csv diff --git a/src/test/resources/local/stations.json b/r2dbc-mysql/src/test/resources/local/stations.json similarity index 100% rename from src/test/resources/local/stations.json rename to r2dbc-mysql/src/test/resources/local/stations.json diff --git a/src/test/resources/local/stations.sql b/r2dbc-mysql/src/test/resources/local/stations.sql similarity index 100% rename from src/test/resources/local/stations.sql rename to r2dbc-mysql/src/test/resources/local/stations.sql diff --git a/src/test/resources/local/users.csv b/r2dbc-mysql/src/test/resources/local/users.csv similarity index 100% rename from src/test/resources/local/users.csv rename to r2dbc-mysql/src/test/resources/local/users.csv diff --git a/src/test/resources/local/users.json b/r2dbc-mysql/src/test/resources/local/users.json similarity index 100% rename from src/test/resources/local/users.json rename to r2dbc-mysql/src/test/resources/local/users.json diff --git a/src/test/resources/local/users.sql b/r2dbc-mysql/src/test/resources/local/users.sql similarity index 100% rename from src/test/resources/local/users.sql rename to r2dbc-mysql/src/test/resources/local/users.sql diff --git a/src/test/resources/logback-test.xml b/r2dbc-mysql/src/test/resources/logback-test.xml similarity index 100% rename from src/test/resources/logback-test.xml rename to r2dbc-mysql/src/test/resources/logback-test.xml diff --git a/test-native-image/pom.xml b/test-native-image/pom.xml new file mode 100644 index 000000000..2c49360d3 --- /dev/null +++ b/test-native-image/pom.xml @@ -0,0 +1,46 @@ + + + 4.0.0 + + io.asyncer + r2dbc-mysql-parent + 1.1.2-SNAPSHOT + + + test-native-image + + + + ${project.groupId} + r2dbc-mysql + ${project.version} + + + + + + + org.graalvm.nativeimage + native-image-maven-plugin + ${graalvm.version} + + + + native-image + + package + + + + ${skipNativeImage} + ${project.artifactId} + io.asyncer.Main + --report-unsupported-elements-at-runtime --allow-incomplete-classpath --initialize-at-run-time=io.netty.handler.ssl.BouncyCastleAlpnSslUtils + + + + + + \ No newline at end of file diff --git a/test-native-image/src/main/java/io/asyncer/Main.java b/test-native-image/src/main/java/io/asyncer/Main.java new file mode 100644 index 000000000..4a7931843 --- /dev/null +++ b/test-native-image/src/main/java/io/asyncer/Main.java @@ -0,0 +1,43 @@ +/* + * Copyright 2024 asyncer.io projects + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.asyncer; + +import io.asyncer.r2dbc.mysql.MySqlConnectionFactoryProvider; +import io.r2dbc.spi.ConnectionFactories; +import io.r2dbc.spi.ConnectionFactory; +import io.r2dbc.spi.ConnectionFactoryOptions; +import reactor.core.publisher.Mono; + +public class Main { + public static void main(String[] args) { + ConnectionFactory connectionFactory = ConnectionFactories.get(ConnectionFactoryOptions.builder() + .option(ConnectionFactoryOptions.DRIVER, "mysql") + .option(ConnectionFactoryOptions.HOST, "127.0.0.1") + .option(ConnectionFactoryOptions.PORT, 3306) + .option(ConnectionFactoryOptions.USER, "root") + .option(ConnectionFactoryOptions.PASSWORD, System.getProperty("test.mysql.password")) + .option(ConnectionFactoryOptions.DATABASE, "r2dbc") + .option(MySqlConnectionFactoryProvider.CREATE_DATABASE_IF_NOT_EXIST, true) + .build()); + + Mono.from(connectionFactory.create()) + .flatMapMany(connection -> connection.createStatement("SELECT 1").execute()) + .flatMap((result) -> result.map((row, rowMetadata) -> row.get(0, Integer.class))) + .doOnNext(System.out::println) + .blockLast(); + } +} \ No newline at end of file