From f2f9800a2245637dbcca88a346ffa317b91b25f4 Mon Sep 17 00:00:00 2001 From: Barry O'Neill Date: Tue, 14 May 2024 15:40:00 -0400 Subject: [PATCH] fix structure pre scala3 --- .../mysql/binlog/models/BinaryLogs.scala | 6 +- .../binlog/models/DeleteRowsEventData.scala | 6 +- .../mysql/binlog/models/EventHeaderV4.scala | 2 +- .../mysql/binlog/models/QueryEventData.scala | 2 +- .../mysql/binlog/models/RotateEventData.scala | 3 +- .../mysql/binlog/models/SchemaMetadata.scala | 4 +- .../binlog/models/TableMapEventData.scala | 2 +- .../binlog/models/UpdateRowsEventData.scala | 8 +-- .../binlog/models/WriteRowsEventData.scala | 6 +- .../mysql/binlog/models/XidEventData.scala | 2 +- .../binlog/models/SchemaMetadataTest.scala | 0 .../binlog/checkpoint/BinlogOffset.scala | 0 .../mysql/binlog/client/package.scala | 6 +- .../mysql/binlog/compaction/package.scala | 2 +- .../mysql/binlog/config/package.scala | 0 .../mysql/binlog/database/database.scala | 4 +- .../binlog/stream/MysqlBinlogStream.scala | 2 +- .../binlog/stream/TransactionState.scala | 6 +- .../mysql/binlog/stream/package.scala | 6 +- .../binlog/checkpoint/BinlogOffsetTest.scala | 0 .../mysql/binlog/compaction/CompactTest.scala | 0 .../mysql/binlog/stream/MultiSchemaTest.scala | 0 .../binlog/stream/MysqlBinlogStreamTest.scala | 0 .../mysql/binlog/stream/PipesTest.scala | 0 .../laserdisc/mysql/binlog/stream/Sku.scala | 0 .../binlog/stream/TransactionStateTest.scala | 0 build.sbt | 28 +++----- .../main/scala}/main/BinLogListener.scala | 0 .../mysql/binlog/config/BinLogConfig.scala | 0 .../mysql/binlog/event/EventMessage.scala | 0 .../laserdisc/mysql/binlog/event/Offset.scala | 0 .../io/laserdisc/mysql/json/package.scala | 6 +- .../test/resources}/init.sql | 0 .../test/resources}/logback-test.xml | 0 .../test/scala}/db/MySqlContainerTest.scala | 0 .../binlog/config/BinLogConfigSpec.scala | 0 .../mysql/binlog/event/EventMessageTest.scala | 2 +- .../mysql/binlog/event/OffsetTest.scala | 2 +- project/BuildOptions.scala | 65 +++++++++++++++++++ 39 files changed, 109 insertions(+), 61 deletions(-) rename binlog-stream-models/{app => src/main/scala}/io/laserdisc/mysql/binlog/models/BinaryLogs.scala (90%) rename binlog-stream-models/{app => src/main/scala}/io/laserdisc/mysql/binlog/models/DeleteRowsEventData.scala (62%) rename binlog-stream-models/{app => src/main/scala}/io/laserdisc/mysql/binlog/models/EventHeaderV4.scala (78%) rename binlog-stream-models/{app => src/main/scala}/io/laserdisc/mysql/binlog/models/QueryEventData.scala (88%) rename binlog-stream-models/{app => src/main/scala}/io/laserdisc/mysql/binlog/models/RotateEventData.scala (69%) rename binlog-stream-models/{app => src/main/scala}/io/laserdisc/mysql/binlog/models/SchemaMetadata.scala (98%) rename binlog-stream-models/{app => src/main/scala}/io/laserdisc/mysql/binlog/models/TableMapEventData.scala (70%) rename binlog-stream-models/{app => src/main/scala}/io/laserdisc/mysql/binlog/models/UpdateRowsEventData.scala (56%) rename binlog-stream-models/{app => src/main/scala}/io/laserdisc/mysql/binlog/models/WriteRowsEventData.scala (62%) rename binlog-stream-models/{app => src/main/scala}/io/laserdisc/mysql/binlog/models/XidEventData.scala (63%) rename binlog-stream-models/{test => src/test/scala}/io/laserdisc/mysql/binlog/models/SchemaMetadataTest.scala (100%) rename binlog-stream/{app => src/main/scala}/io/laserdisc/mysql/binlog/checkpoint/BinlogOffset.scala (100%) rename binlog-stream/{app => src/main/scala}/io/laserdisc/mysql/binlog/client/package.scala (86%) rename binlog-stream/{app => src/main/scala}/io/laserdisc/mysql/binlog/compaction/package.scala (98%) rename binlog-stream/{app => src/main/scala}/io/laserdisc/mysql/binlog/config/package.scala (100%) rename binlog-stream/{app => src/main/scala}/io/laserdisc/mysql/binlog/database/database.scala (94%) rename binlog-stream/{app => src/main/scala}/io/laserdisc/mysql/binlog/stream/MysqlBinlogStream.scala (99%) rename binlog-stream/{app => src/main/scala}/io/laserdisc/mysql/binlog/stream/TransactionState.scala (99%) rename binlog-stream/{app => src/main/scala}/io/laserdisc/mysql/binlog/stream/package.scala (93%) rename binlog-stream/{test => src/test/scala}/io/laserdisc/mysql/binlog/checkpoint/BinlogOffsetTest.scala (100%) rename binlog-stream/{test => src/test/scala}/io/laserdisc/mysql/binlog/compaction/CompactTest.scala (100%) rename binlog-stream/{test => src/test/scala}/io/laserdisc/mysql/binlog/stream/MultiSchemaTest.scala (100%) rename binlog-stream/{test => src/test/scala}/io/laserdisc/mysql/binlog/stream/MysqlBinlogStreamTest.scala (100%) rename binlog-stream/{test => src/test/scala}/io/laserdisc/mysql/binlog/stream/PipesTest.scala (100%) rename binlog-stream/{test => src/test/scala}/io/laserdisc/mysql/binlog/stream/Sku.scala (100%) rename binlog-stream/{test => src/test/scala}/io/laserdisc/mysql/binlog/stream/TransactionStateTest.scala (100%) rename mysql-binlog-stream-examples/{app => src/main/scala}/main/BinLogListener.scala (100%) rename mysql-binlog-stream-shared/{app => src/main/scala}/io/laserdisc/mysql/binlog/config/BinLogConfig.scala (100%) rename mysql-binlog-stream-shared/{app => src/main/scala}/io/laserdisc/mysql/binlog/event/EventMessage.scala (100%) rename mysql-binlog-stream-shared/{app => src/main/scala}/io/laserdisc/mysql/binlog/event/Offset.scala (100%) rename mysql-binlog-stream-shared/{app => src/main/scala}/io/laserdisc/mysql/json/package.scala (93%) rename mysql-binlog-stream-shared/{test_resources => src/test/resources}/init.sql (100%) rename mysql-binlog-stream-shared/{test_resources => src/test/resources}/logback-test.xml (100%) rename mysql-binlog-stream-shared/{test => src/test/scala}/db/MySqlContainerTest.scala (100%) rename mysql-binlog-stream-shared/{test => src/test/scala}/io/laserdisc/mysql/binlog/config/BinLogConfigSpec.scala (100%) rename mysql-binlog-stream-shared/{test => src/test/scala}/io/laserdisc/mysql/binlog/event/EventMessageTest.scala (97%) rename mysql-binlog-stream-shared/{test => src/test/scala}/io/laserdisc/mysql/binlog/event/OffsetTest.scala (98%) create mode 100644 project/BuildOptions.scala diff --git a/binlog-stream-models/app/io/laserdisc/mysql/binlog/models/BinaryLogs.scala b/binlog-stream-models/src/main/scala/io/laserdisc/mysql/binlog/models/BinaryLogs.scala similarity index 90% rename from binlog-stream-models/app/io/laserdisc/mysql/binlog/models/BinaryLogs.scala rename to binlog-stream-models/src/main/scala/io/laserdisc/mysql/binlog/models/BinaryLogs.scala index 6235b14..73db3b1 100644 --- a/binlog-stream-models/app/io/laserdisc/mysql/binlog/models/BinaryLogs.scala +++ b/binlog-stream-models/src/main/scala/io/laserdisc/mysql/binlog/models/BinaryLogs.scala @@ -1,8 +1,8 @@ package io.laserdisc.mysql.binlog.models -import cats.implicits._ -import doobie._ -import doobie.implicits._ +import cats.implicits.* +import doobie.* +import doobie.implicits.* import cats.effect.MonadCancel case class BinaryLogs(fileName: String, size: Long) diff --git a/binlog-stream-models/app/io/laserdisc/mysql/binlog/models/DeleteRowsEventData.scala b/binlog-stream-models/src/main/scala/io/laserdisc/mysql/binlog/models/DeleteRowsEventData.scala similarity index 62% rename from binlog-stream-models/app/io/laserdisc/mysql/binlog/models/DeleteRowsEventData.scala rename to binlog-stream-models/src/main/scala/io/laserdisc/mysql/binlog/models/DeleteRowsEventData.scala index cf60294..32db38f 100644 --- a/binlog-stream-models/app/io/laserdisc/mysql/binlog/models/DeleteRowsEventData.scala +++ b/binlog-stream-models/src/main/scala/io/laserdisc/mysql/binlog/models/DeleteRowsEventData.scala @@ -1,10 +1,8 @@ package io.laserdisc.mysql.binlog.models -import java.io.Serializable +import com.github.shyiko.mysql.binlog.event.DeleteRowsEventData as JDeleteRowsEventData -import com.github.shyiko.mysql.binlog.event.{DeleteRowsEventData => JDeleteRowsEventData} - -import scala.jdk.CollectionConverters._ +import scala.jdk.CollectionConverters.* object DeleteRowsEventData { def unapply(arg: JDeleteRowsEventData): Option[(Long, List[Array[Serializable]], Array[Int])] = Some((arg.getTableId, arg.getRows.asScala.toList, arg.getIncludedColumns.stream().toArray)) diff --git a/binlog-stream-models/app/io/laserdisc/mysql/binlog/models/EventHeaderV4.scala b/binlog-stream-models/src/main/scala/io/laserdisc/mysql/binlog/models/EventHeaderV4.scala similarity index 78% rename from binlog-stream-models/app/io/laserdisc/mysql/binlog/models/EventHeaderV4.scala rename to binlog-stream-models/src/main/scala/io/laserdisc/mysql/binlog/models/EventHeaderV4.scala index f7b3ae2..b10b02f 100644 --- a/binlog-stream-models/app/io/laserdisc/mysql/binlog/models/EventHeaderV4.scala +++ b/binlog-stream-models/src/main/scala/io/laserdisc/mysql/binlog/models/EventHeaderV4.scala @@ -1,6 +1,6 @@ package io.laserdisc.mysql.binlog.models -import com.github.shyiko.mysql.binlog.event.{EventHeaderV4 => JEventHeaderV4, EventType} +import com.github.shyiko.mysql.binlog.event.{EventHeaderV4 as JEventHeaderV4, EventType} object EventHeaderV4 { def unapply(arg: JEventHeaderV4): Option[(EventType, Long, Long)] = diff --git a/binlog-stream-models/app/io/laserdisc/mysql/binlog/models/QueryEventData.scala b/binlog-stream-models/src/main/scala/io/laserdisc/mysql/binlog/models/QueryEventData.scala similarity index 88% rename from binlog-stream-models/app/io/laserdisc/mysql/binlog/models/QueryEventData.scala rename to binlog-stream-models/src/main/scala/io/laserdisc/mysql/binlog/models/QueryEventData.scala index e21f54a..d66a20a 100644 --- a/binlog-stream-models/app/io/laserdisc/mysql/binlog/models/QueryEventData.scala +++ b/binlog-stream-models/src/main/scala/io/laserdisc/mysql/binlog/models/QueryEventData.scala @@ -1,6 +1,6 @@ package io.laserdisc.mysql.binlog.models -import com.github.shyiko.mysql.binlog.event.{QueryEventData => JQueryEventData} +import com.github.shyiko.mysql.binlog.event.QueryEventData as JQueryEventData object QueryEventData { def truncateTable(sql: String) = { diff --git a/binlog-stream-models/app/io/laserdisc/mysql/binlog/models/RotateEventData.scala b/binlog-stream-models/src/main/scala/io/laserdisc/mysql/binlog/models/RotateEventData.scala similarity index 69% rename from binlog-stream-models/app/io/laserdisc/mysql/binlog/models/RotateEventData.scala rename to binlog-stream-models/src/main/scala/io/laserdisc/mysql/binlog/models/RotateEventData.scala index 59d4b96..824a95f 100644 --- a/binlog-stream-models/app/io/laserdisc/mysql/binlog/models/RotateEventData.scala +++ b/binlog-stream-models/src/main/scala/io/laserdisc/mysql/binlog/models/RotateEventData.scala @@ -1,6 +1,7 @@ package io.laserdisc.mysql.binlog.models -import com.github.shyiko.mysql.binlog.event.{RotateEventData => JRotateEventData} +import com.github.shyiko.mysql.binlog.event.RotateEventData as JRotateEventData + object RotateEventData { def unapply(arg: JRotateEventData): Option[(String, Long)] = Some((arg.getBinlogFilename, arg.getBinlogPosition)) diff --git a/binlog-stream-models/app/io/laserdisc/mysql/binlog/models/SchemaMetadata.scala b/binlog-stream-models/src/main/scala/io/laserdisc/mysql/binlog/models/SchemaMetadata.scala similarity index 98% rename from binlog-stream-models/app/io/laserdisc/mysql/binlog/models/SchemaMetadata.scala rename to binlog-stream-models/src/main/scala/io/laserdisc/mysql/binlog/models/SchemaMetadata.scala index 6a11135..c40ce8a 100644 --- a/binlog-stream-models/app/io/laserdisc/mysql/binlog/models/SchemaMetadata.scala +++ b/binlog-stream-models/src/main/scala/io/laserdisc/mysql/binlog/models/SchemaMetadata.scala @@ -1,7 +1,7 @@ package io.laserdisc.mysql.binlog.models -import doobie._ -import doobie.implicits._ +import doobie.* +import doobie.implicits.* import scala.collection.mutable import cats.effect.MonadCancel diff --git a/binlog-stream-models/app/io/laserdisc/mysql/binlog/models/TableMapEventData.scala b/binlog-stream-models/src/main/scala/io/laserdisc/mysql/binlog/models/TableMapEventData.scala similarity index 70% rename from binlog-stream-models/app/io/laserdisc/mysql/binlog/models/TableMapEventData.scala rename to binlog-stream-models/src/main/scala/io/laserdisc/mysql/binlog/models/TableMapEventData.scala index 998848e..9bf22c8 100644 --- a/binlog-stream-models/app/io/laserdisc/mysql/binlog/models/TableMapEventData.scala +++ b/binlog-stream-models/src/main/scala/io/laserdisc/mysql/binlog/models/TableMapEventData.scala @@ -1,6 +1,6 @@ package io.laserdisc.mysql.binlog.models -import com.github.shyiko.mysql.binlog.event.{TableMapEventData => JTableMapEventData} +import com.github.shyiko.mysql.binlog.event.TableMapEventData as JTableMapEventData object TableMapEventData { def unapply(arg: JTableMapEventData): Option[(Long, String, String)] = diff --git a/binlog-stream-models/app/io/laserdisc/mysql/binlog/models/UpdateRowsEventData.scala b/binlog-stream-models/src/main/scala/io/laserdisc/mysql/binlog/models/UpdateRowsEventData.scala similarity index 56% rename from binlog-stream-models/app/io/laserdisc/mysql/binlog/models/UpdateRowsEventData.scala rename to binlog-stream-models/src/main/scala/io/laserdisc/mysql/binlog/models/UpdateRowsEventData.scala index 713800f..5346085 100644 --- a/binlog-stream-models/app/io/laserdisc/mysql/binlog/models/UpdateRowsEventData.scala +++ b/binlog-stream-models/src/main/scala/io/laserdisc/mysql/binlog/models/UpdateRowsEventData.scala @@ -1,15 +1,13 @@ package io.laserdisc.mysql.binlog.models -import java.io +import com.github.shyiko.mysql.binlog.event.UpdateRowsEventData as JUpdateRowsEventData -import com.github.shyiko.mysql.binlog.event.{UpdateRowsEventData => JUpdateRowsEventData} - -import scala.jdk.CollectionConverters._ +import scala.jdk.CollectionConverters.* object UpdateRowsEventData { def unapply( arg: JUpdateRowsEventData - ): Some[(Long, List[(Array[io.Serializable], Array[io.Serializable])], Array[Int])] = { + ): Some[(Long, List[(Array[Serializable], Array[Serializable])], Array[Int])] = { val beforeAfter = arg.getRows.asScala.toList.map(entry => entry.getKey -> entry.getValue) Some((arg.getTableId, beforeAfter, arg.getIncludedColumns.stream().toArray)) diff --git a/binlog-stream-models/app/io/laserdisc/mysql/binlog/models/WriteRowsEventData.scala b/binlog-stream-models/src/main/scala/io/laserdisc/mysql/binlog/models/WriteRowsEventData.scala similarity index 62% rename from binlog-stream-models/app/io/laserdisc/mysql/binlog/models/WriteRowsEventData.scala rename to binlog-stream-models/src/main/scala/io/laserdisc/mysql/binlog/models/WriteRowsEventData.scala index aaf2a12..2102331 100644 --- a/binlog-stream-models/app/io/laserdisc/mysql/binlog/models/WriteRowsEventData.scala +++ b/binlog-stream-models/src/main/scala/io/laserdisc/mysql/binlog/models/WriteRowsEventData.scala @@ -1,10 +1,8 @@ package io.laserdisc.mysql.binlog.models -import java.io.Serializable +import com.github.shyiko.mysql.binlog.event.WriteRowsEventData as JWriteRowsEventData -import com.github.shyiko.mysql.binlog.event.{WriteRowsEventData => JWriteRowsEventData} - -import scala.jdk.CollectionConverters._ +import scala.jdk.CollectionConverters.* object WriteRowsEventData { def unapply(arg: JWriteRowsEventData): Option[(Long, List[Array[Serializable]], Array[Int])] = diff --git a/binlog-stream-models/app/io/laserdisc/mysql/binlog/models/XidEventData.scala b/binlog-stream-models/src/main/scala/io/laserdisc/mysql/binlog/models/XidEventData.scala similarity index 63% rename from binlog-stream-models/app/io/laserdisc/mysql/binlog/models/XidEventData.scala rename to binlog-stream-models/src/main/scala/io/laserdisc/mysql/binlog/models/XidEventData.scala index 181cd22..4e84e1f 100644 --- a/binlog-stream-models/app/io/laserdisc/mysql/binlog/models/XidEventData.scala +++ b/binlog-stream-models/src/main/scala/io/laserdisc/mysql/binlog/models/XidEventData.scala @@ -1,6 +1,6 @@ package io.laserdisc.mysql.binlog.models -import com.github.shyiko.mysql.binlog.event.{XidEventData => JXidEventData} +import com.github.shyiko.mysql.binlog.event.XidEventData as JXidEventData object XidEventData { def unapply(arg: JXidEventData): Option[Long] = Some(arg.getXid) diff --git a/binlog-stream-models/test/io/laserdisc/mysql/binlog/models/SchemaMetadataTest.scala b/binlog-stream-models/src/test/scala/io/laserdisc/mysql/binlog/models/SchemaMetadataTest.scala similarity index 100% rename from binlog-stream-models/test/io/laserdisc/mysql/binlog/models/SchemaMetadataTest.scala rename to binlog-stream-models/src/test/scala/io/laserdisc/mysql/binlog/models/SchemaMetadataTest.scala diff --git a/binlog-stream/app/io/laserdisc/mysql/binlog/checkpoint/BinlogOffset.scala b/binlog-stream/src/main/scala/io/laserdisc/mysql/binlog/checkpoint/BinlogOffset.scala similarity index 100% rename from binlog-stream/app/io/laserdisc/mysql/binlog/checkpoint/BinlogOffset.scala rename to binlog-stream/src/main/scala/io/laserdisc/mysql/binlog/checkpoint/BinlogOffset.scala diff --git a/binlog-stream/app/io/laserdisc/mysql/binlog/client/package.scala b/binlog-stream/src/main/scala/io/laserdisc/mysql/binlog/client/package.scala similarity index 86% rename from binlog-stream/app/io/laserdisc/mysql/binlog/client/package.scala rename to binlog-stream/src/main/scala/io/laserdisc/mysql/binlog/client/package.scala index b0a19a9..e6825ba 100644 --- a/binlog-stream/app/io/laserdisc/mysql/binlog/client/package.scala +++ b/binlog-stream/src/main/scala/io/laserdisc/mysql/binlog/client/package.scala @@ -1,11 +1,11 @@ package io.laserdisc.mysql.binlog import cats.effect.Sync -import cats.implicits._ +import cats.implicits.* import com.github.shyiko.mysql.binlog.BinaryLogClient -import org.typelevel.log4cats.Logger import io.laserdisc.mysql.binlog.checkpoint.BinlogOffset -import io.laserdisc.mysql.binlog.config.BinLogConfig +import io.laserdisc.mysql.binlog.config.{BinLogConfig, BinLogConfigOps} +import org.typelevel.log4cats.Logger package object client { diff --git a/binlog-stream/app/io/laserdisc/mysql/binlog/compaction/package.scala b/binlog-stream/src/main/scala/io/laserdisc/mysql/binlog/compaction/package.scala similarity index 98% rename from binlog-stream/app/io/laserdisc/mysql/binlog/compaction/package.scala rename to binlog-stream/src/main/scala/io/laserdisc/mysql/binlog/compaction/package.scala index 0ddd3df..a6052d6 100644 --- a/binlog-stream/app/io/laserdisc/mysql/binlog/compaction/package.scala +++ b/binlog-stream/src/main/scala/io/laserdisc/mysql/binlog/compaction/package.scala @@ -5,7 +5,7 @@ import io.circe.Json import io.laserdisc.mysql.binlog.event.EventMessage import scala.collection.mutable -import cats.implicits._ +import cats.implicits.* import io.laserdisc.mysql.json package object compaction { diff --git a/binlog-stream/app/io/laserdisc/mysql/binlog/config/package.scala b/binlog-stream/src/main/scala/io/laserdisc/mysql/binlog/config/package.scala similarity index 100% rename from binlog-stream/app/io/laserdisc/mysql/binlog/config/package.scala rename to binlog-stream/src/main/scala/io/laserdisc/mysql/binlog/config/package.scala diff --git a/binlog-stream/app/io/laserdisc/mysql/binlog/database/database.scala b/binlog-stream/src/main/scala/io/laserdisc/mysql/binlog/database/database.scala similarity index 94% rename from binlog-stream/app/io/laserdisc/mysql/binlog/database/database.scala rename to binlog-stream/src/main/scala/io/laserdisc/mysql/binlog/database/database.scala index 449c1f3..05d3148 100644 --- a/binlog-stream/app/io/laserdisc/mysql/binlog/database/database.scala +++ b/binlog-stream/src/main/scala/io/laserdisc/mysql/binlog/database/database.scala @@ -1,7 +1,7 @@ package io.laserdisc.mysql.binlog -import cats.effect._ -import doobie._ +import cats.effect.* +import doobie.* import doobie.hikari.HikariTransactor import io.laserdisc.mysql.binlog.config.BinLogConfig diff --git a/binlog-stream/app/io/laserdisc/mysql/binlog/stream/MysqlBinlogStream.scala b/binlog-stream/src/main/scala/io/laserdisc/mysql/binlog/stream/MysqlBinlogStream.scala similarity index 99% rename from binlog-stream/app/io/laserdisc/mysql/binlog/stream/MysqlBinlogStream.scala rename to binlog-stream/src/main/scala/io/laserdisc/mysql/binlog/stream/MysqlBinlogStream.scala index 2e3f17e..523f7f7 100644 --- a/binlog-stream/app/io/laserdisc/mysql/binlog/stream/MysqlBinlogStream.scala +++ b/binlog-stream/src/main/scala/io/laserdisc/mysql/binlog/stream/MysqlBinlogStream.scala @@ -2,7 +2,7 @@ package io.laserdisc.mysql.binlog.stream import cats.effect.std.{Dispatcher, Queue} import cats.effect.{Async, IO, LiftIO} -import cats.implicits._ +import cats.implicits.* import com.github.shyiko.mysql.binlog.BinaryLogClient import com.github.shyiko.mysql.binlog.event.Event import fs2.Stream diff --git a/binlog-stream/app/io/laserdisc/mysql/binlog/stream/TransactionState.scala b/binlog-stream/src/main/scala/io/laserdisc/mysql/binlog/stream/TransactionState.scala similarity index 99% rename from binlog-stream/app/io/laserdisc/mysql/binlog/stream/TransactionState.scala rename to binlog-stream/src/main/scala/io/laserdisc/mysql/binlog/stream/TransactionState.scala index 2b60fd9..2df92f6 100644 --- a/binlog-stream/app/io/laserdisc/mysql/binlog/stream/TransactionState.scala +++ b/binlog-stream/src/main/scala/io/laserdisc/mysql/binlog/stream/TransactionState.scala @@ -2,14 +2,14 @@ package io.laserdisc.mysql.binlog.stream import cats.data.State import cats.effect.{Ref, Sync} -import cats.implicits._ +import cats.implicits.* import com.github.shyiko.mysql.binlog.BinaryLogClient import com.github.shyiko.mysql.binlog.event.EventType.{EXT_UPDATE_ROWS, UPDATE_ROWS} import com.github.shyiko.mysql.binlog.event.deserialization.json.JsonBinary -import com.github.shyiko.mysql.binlog.event.{Event, EventData, EventHeaderV4 => JEventHeaderV4, EventType} +import com.github.shyiko.mysql.binlog.event.{Event, EventData, EventHeaderV4 as JEventHeaderV4, EventType} import io.circe.Json import io.laserdisc.mysql.binlog.event.EventMessage -import io.laserdisc.mysql.binlog.models._ +import io.laserdisc.mysql.binlog.models.* import org.typelevel.log4cats.Logger import java.math.BigDecimal diff --git a/binlog-stream/app/io/laserdisc/mysql/binlog/stream/package.scala b/binlog-stream/src/main/scala/io/laserdisc/mysql/binlog/stream/package.scala similarity index 93% rename from binlog-stream/app/io/laserdisc/mysql/binlog/stream/package.scala rename to binlog-stream/src/main/scala/io/laserdisc/mysql/binlog/stream/package.scala index 635cfda..468c09a 100644 --- a/binlog-stream/app/io/laserdisc/mysql/binlog/stream/package.scala +++ b/binlog-stream/src/main/scala/io/laserdisc/mysql/binlog/stream/package.scala @@ -2,7 +2,7 @@ package io.laserdisc.mysql.binlog import cats.effect.kernel.Ref import cats.effect.{Concurrent, Sync} -import cats.implicits._ +import cats.implicits.* import com.github.shyiko.mysql.binlog.event.Event import org.typelevel.log4cats.Logger import io.laserdisc.mysql.binlog.event.EventMessage @@ -13,14 +13,14 @@ package object stream { schema: String ): fs2.Pipe[F, Event, EventMessage] = _.through(streamTransactionPackages[F](transactionState, schema)).flatMap(pkg => - fs2.Stream.eval(warnBigTransactionPackage(pkg)) >> fs2.Stream(pkg.events: _*) + fs2.Stream.eval(warnBigTransactionPackage(pkg)) >> fs2.Stream(pkg.events*) ) def streamCompactedEvents[F[_]: Concurrent: Logger]( transactionState: Ref[F, TransactionState], schema: String ): fs2.Pipe[F, Event, EventMessage] = - _.through(streamTransactionPackages[F](transactionState, schema)).flatMap(pkg => fs2.Stream(compaction.compact(pkg.events): _*)) + _.through(streamTransactionPackages[F](transactionState, schema)).flatMap(pkg => fs2.Stream(compaction.compact(pkg.events)*)) def streamTransactionPackages[F[_]: Concurrent: Logger]( transactionState: Ref[F, TransactionState], diff --git a/binlog-stream/test/io/laserdisc/mysql/binlog/checkpoint/BinlogOffsetTest.scala b/binlog-stream/src/test/scala/io/laserdisc/mysql/binlog/checkpoint/BinlogOffsetTest.scala similarity index 100% rename from binlog-stream/test/io/laserdisc/mysql/binlog/checkpoint/BinlogOffsetTest.scala rename to binlog-stream/src/test/scala/io/laserdisc/mysql/binlog/checkpoint/BinlogOffsetTest.scala diff --git a/binlog-stream/test/io/laserdisc/mysql/binlog/compaction/CompactTest.scala b/binlog-stream/src/test/scala/io/laserdisc/mysql/binlog/compaction/CompactTest.scala similarity index 100% rename from binlog-stream/test/io/laserdisc/mysql/binlog/compaction/CompactTest.scala rename to binlog-stream/src/test/scala/io/laserdisc/mysql/binlog/compaction/CompactTest.scala diff --git a/binlog-stream/test/io/laserdisc/mysql/binlog/stream/MultiSchemaTest.scala b/binlog-stream/src/test/scala/io/laserdisc/mysql/binlog/stream/MultiSchemaTest.scala similarity index 100% rename from binlog-stream/test/io/laserdisc/mysql/binlog/stream/MultiSchemaTest.scala rename to binlog-stream/src/test/scala/io/laserdisc/mysql/binlog/stream/MultiSchemaTest.scala diff --git a/binlog-stream/test/io/laserdisc/mysql/binlog/stream/MysqlBinlogStreamTest.scala b/binlog-stream/src/test/scala/io/laserdisc/mysql/binlog/stream/MysqlBinlogStreamTest.scala similarity index 100% rename from binlog-stream/test/io/laserdisc/mysql/binlog/stream/MysqlBinlogStreamTest.scala rename to binlog-stream/src/test/scala/io/laserdisc/mysql/binlog/stream/MysqlBinlogStreamTest.scala diff --git a/binlog-stream/test/io/laserdisc/mysql/binlog/stream/PipesTest.scala b/binlog-stream/src/test/scala/io/laserdisc/mysql/binlog/stream/PipesTest.scala similarity index 100% rename from binlog-stream/test/io/laserdisc/mysql/binlog/stream/PipesTest.scala rename to binlog-stream/src/test/scala/io/laserdisc/mysql/binlog/stream/PipesTest.scala diff --git a/binlog-stream/test/io/laserdisc/mysql/binlog/stream/Sku.scala b/binlog-stream/src/test/scala/io/laserdisc/mysql/binlog/stream/Sku.scala similarity index 100% rename from binlog-stream/test/io/laserdisc/mysql/binlog/stream/Sku.scala rename to binlog-stream/src/test/scala/io/laserdisc/mysql/binlog/stream/Sku.scala diff --git a/binlog-stream/test/io/laserdisc/mysql/binlog/stream/TransactionStateTest.scala b/binlog-stream/src/test/scala/io/laserdisc/mysql/binlog/stream/TransactionStateTest.scala similarity index 100% rename from binlog-stream/test/io/laserdisc/mysql/binlog/stream/TransactionStateTest.scala rename to binlog-stream/src/test/scala/io/laserdisc/mysql/binlog/stream/TransactionStateTest.scala diff --git a/build.sbt b/build.sbt index 4f457e8..3524cbf 100644 --- a/build.sbt +++ b/build.sbt @@ -1,9 +1,13 @@ -import sbt.Keys.scalaSource organization := "io.laserdisc" name := "mysql-binlog-stream" -ThisBuild / scalaVersion := "2.13.14" +lazy val scala213 = "2.13.14" +lazy val scala3 = "3.4.1" +lazy val supportedScalaVersions = List(scala213, scala3) + +ThisBuild / crossScalaVersions := supportedScalaVersions +ThisBuild / scalaVersion := scala3 lazy val commonSettings = Seq( organization := "io.laserdisc", @@ -13,26 +17,10 @@ lazy val commonSettings = Seq( ), licenses ++= Seq(("MIT", url("http://opensource.org/licenses/MIT"))), homepage := Some(url("https://github.com/laserdisc-io/fs2-aws")), - Compile / scalaSource := baseDirectory.value / "app", - Compile / resourceDirectory := baseDirectory.value / "conf", - Test / scalaSource := baseDirectory.value / "test", - Test / resourceDirectory := baseDirectory.value / "test_resources", Test / parallelExecution := false, Test / fork := true, - scalacOptions ++= Seq( - "-encoding", - "UTF-8", // source files are in UTF-8 - "-deprecation", // warn about use of deprecated APIs - "-unchecked", // warn about unchecked type parameters - "-feature", // warn about misused language features - "-language:higherKinds", // allow higher kinded types without `import scala.language.higherKinds` - "-language:implicitConversions", // allow use of implicit conversions - "-language:postfixOps", // enable postfix ops - "-Xlint:_,-byname-implicit", // enable handy linter warnings - "-Xfatal-warnings", // turn compiler warnings into errors - "-Ywarn-macros:after" // allows the compiler to resolve implicit imports being flagged as unused - ), - addCompilerPlugin("com.olegpy" %% "better-monadic-for" % "0.3.1") + scalacOptions ++= BuildOptions.scalacOptions(scalaVersion.value), + libraryDependencies ++= BuildOptions.compilerPlugins(scalaVersion.value) ) lazy val noPublishSettings = Seq( diff --git a/mysql-binlog-stream-examples/app/main/BinLogListener.scala b/mysql-binlog-stream-examples/src/main/scala/main/BinLogListener.scala similarity index 100% rename from mysql-binlog-stream-examples/app/main/BinLogListener.scala rename to mysql-binlog-stream-examples/src/main/scala/main/BinLogListener.scala diff --git a/mysql-binlog-stream-shared/app/io/laserdisc/mysql/binlog/config/BinLogConfig.scala b/mysql-binlog-stream-shared/src/main/scala/io/laserdisc/mysql/binlog/config/BinLogConfig.scala similarity index 100% rename from mysql-binlog-stream-shared/app/io/laserdisc/mysql/binlog/config/BinLogConfig.scala rename to mysql-binlog-stream-shared/src/main/scala/io/laserdisc/mysql/binlog/config/BinLogConfig.scala diff --git a/mysql-binlog-stream-shared/app/io/laserdisc/mysql/binlog/event/EventMessage.scala b/mysql-binlog-stream-shared/src/main/scala/io/laserdisc/mysql/binlog/event/EventMessage.scala similarity index 100% rename from mysql-binlog-stream-shared/app/io/laserdisc/mysql/binlog/event/EventMessage.scala rename to mysql-binlog-stream-shared/src/main/scala/io/laserdisc/mysql/binlog/event/EventMessage.scala diff --git a/mysql-binlog-stream-shared/app/io/laserdisc/mysql/binlog/event/Offset.scala b/mysql-binlog-stream-shared/src/main/scala/io/laserdisc/mysql/binlog/event/Offset.scala similarity index 100% rename from mysql-binlog-stream-shared/app/io/laserdisc/mysql/binlog/event/Offset.scala rename to mysql-binlog-stream-shared/src/main/scala/io/laserdisc/mysql/binlog/event/Offset.scala diff --git a/mysql-binlog-stream-shared/app/io/laserdisc/mysql/json/package.scala b/mysql-binlog-stream-shared/src/main/scala/io/laserdisc/mysql/json/package.scala similarity index 93% rename from mysql-binlog-stream-shared/app/io/laserdisc/mysql/json/package.scala rename to mysql-binlog-stream-shared/src/main/scala/io/laserdisc/mysql/json/package.scala index 85990c3..bb0878d 100644 --- a/mysql-binlog-stream-shared/app/io/laserdisc/mysql/json/package.scala +++ b/mysql-binlog-stream-shared/src/main/scala/io/laserdisc/mysql/json/package.scala @@ -1,7 +1,7 @@ package io.laserdisc.mysql -import io.circe._ -import io.circe.parser._ +import io.circe.* +import io.circe.parser.* package object json { def flatHash(doc: String, removeKey: String = ""): Either[Exception, String] = @@ -37,7 +37,7 @@ package object json { def onBoolean(v: Boolean) = List(v.toString) def onNumber(v: JsonNumber) = List(v.toString) def onString(v: String) = List(v.trim) - def onNull = Nil + def onNull = List.empty[String] } ) diff --git a/mysql-binlog-stream-shared/test_resources/init.sql b/mysql-binlog-stream-shared/src/test/resources/init.sql similarity index 100% rename from mysql-binlog-stream-shared/test_resources/init.sql rename to mysql-binlog-stream-shared/src/test/resources/init.sql diff --git a/mysql-binlog-stream-shared/test_resources/logback-test.xml b/mysql-binlog-stream-shared/src/test/resources/logback-test.xml similarity index 100% rename from mysql-binlog-stream-shared/test_resources/logback-test.xml rename to mysql-binlog-stream-shared/src/test/resources/logback-test.xml diff --git a/mysql-binlog-stream-shared/test/db/MySqlContainerTest.scala b/mysql-binlog-stream-shared/src/test/scala/db/MySqlContainerTest.scala similarity index 100% rename from mysql-binlog-stream-shared/test/db/MySqlContainerTest.scala rename to mysql-binlog-stream-shared/src/test/scala/db/MySqlContainerTest.scala diff --git a/mysql-binlog-stream-shared/test/io/laserdisc/mysql/binlog/config/BinLogConfigSpec.scala b/mysql-binlog-stream-shared/src/test/scala/io/laserdisc/mysql/binlog/config/BinLogConfigSpec.scala similarity index 100% rename from mysql-binlog-stream-shared/test/io/laserdisc/mysql/binlog/config/BinLogConfigSpec.scala rename to mysql-binlog-stream-shared/src/test/scala/io/laserdisc/mysql/binlog/config/BinLogConfigSpec.scala diff --git a/mysql-binlog-stream-shared/test/io/laserdisc/mysql/binlog/event/EventMessageTest.scala b/mysql-binlog-stream-shared/src/test/scala/io/laserdisc/mysql/binlog/event/EventMessageTest.scala similarity index 97% rename from mysql-binlog-stream-shared/test/io/laserdisc/mysql/binlog/event/EventMessageTest.scala rename to mysql-binlog-stream-shared/src/test/scala/io/laserdisc/mysql/binlog/event/EventMessageTest.scala index e7d21af..f775fa4 100644 --- a/mysql-binlog-stream-shared/test/io/laserdisc/mysql/binlog/event/EventMessageTest.scala +++ b/mysql-binlog-stream-shared/src/test/scala/io/laserdisc/mysql/binlog/event/EventMessageTest.scala @@ -9,7 +9,7 @@ class EventMessageTest extends AnyWordSpec with Matchers { "EventMessage" should { "be orderable by Offset" in { - import OffsetTest._ + import OffsetTest.* import OffsetOrdering.ordering evtMsg(FILE_A, offset = 123) should be < evtMsg(FILE_B, offset = 999) diff --git a/mysql-binlog-stream-shared/test/io/laserdisc/mysql/binlog/event/OffsetTest.scala b/mysql-binlog-stream-shared/src/test/scala/io/laserdisc/mysql/binlog/event/OffsetTest.scala similarity index 98% rename from mysql-binlog-stream-shared/test/io/laserdisc/mysql/binlog/event/OffsetTest.scala rename to mysql-binlog-stream-shared/src/test/scala/io/laserdisc/mysql/binlog/event/OffsetTest.scala index dc88f43..183b121 100644 --- a/mysql-binlog-stream-shared/test/io/laserdisc/mysql/binlog/event/OffsetTest.scala +++ b/mysql-binlog-stream-shared/src/test/scala/io/laserdisc/mysql/binlog/event/OffsetTest.scala @@ -2,7 +2,7 @@ package io.laserdisc.mysql.binlog.event import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpec -import OffsetTest._ +import OffsetTest.* object OffsetTest { val FILE_A = "mysql-bin-changelog.001450" diff --git a/project/BuildOptions.scala b/project/BuildOptions.scala new file mode 100644 index 0000000..4a396ce --- /dev/null +++ b/project/BuildOptions.scala @@ -0,0 +1,65 @@ +import sbt.* + +object BuildOptions { + + def scalacOptions(scalaVersion: String): Seq[String] = + Scalac.Common ++ (CrossVersion.partialVersion(scalaVersion) match { + case Some((3, _)) => Scalac.Version3x + case Some((2, _)) => Scalac.Version2x + case _ => Seq.empty + }) + + def compilerPlugins(scalaVersion: String): Seq[sbt.ModuleID] = + Compiler.Common ++ (CrossVersion.partialVersion(scalaVersion) match { + case Some((2, _)) => Compiler.Scala2x + case _ => Seq.empty + }) + + object Scalac { + + lazy val Common: Seq[String] = Seq( + "-encoding", + "UTF-8", + "-deprecation", + "-unchecked", + "-feature", + "-language:existentials,experimental.macros,higherKinds,implicitConversions,postfixOps", + "-Wconf:src=src_managed/.*:silent", + "-Xfatal-warnings" + ) + + lazy val Version3x: Seq[String] = Seq( + "-Yretain-trees", + "-Ykind-projector:underscores", + "-source:future", + "-language:adhocExtensions", + "-Wconf:msg=`= _` has been deprecated; use `= uninitialized` instead.:s" + ) + + lazy val Version2x: Seq[String] = Seq( + "-Xlint:-unused,_", + "-Ywarn-numeric-widen", + "-Ywarn-value-discard", + "-Ywarn-unused:implicits", + "-Ywarn-unused:imports", + "-Xsource:3", + "-Xlint:_,-byname-implicit", // enable handy linter warnings except byname-implicit (see https://github.com/scala/bug/issues/12072) + "-P:kind-projector:underscore-placeholders", + "-Xlint", + "-Ywarn-macros:after" + ) + + } + + object Compiler { + + lazy val Common: Seq[ModuleID] = Seq("org.scala-lang.modules" %% "scala-collection-compat" % "2.12.0") + + lazy val Scala2x: Seq[ModuleID] = Seq( + compilerPlugin(("org.typelevel" %% "kind-projector" % "0.13.3").cross(CrossVersion.full)), + compilerPlugin("com.olegpy" %% "better-monadic-for" % "0.3.1") + ) + + } + +}