Skip to content

Commit 319babd

Browse files
committed
refactor: use sbt-scala3-migrate plugin to optimize code
1 parent bd9e093 commit 319babd

16 files changed

Lines changed: 70 additions & 58 deletions

File tree

build.sbt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ developers := List(
4040

4141
licenses += ("Apache-2.0", url("https://www.apache.org/licenses/LICENSE-2.0.html"))
4242

43-
crossScalaVersions := Seq("2.13.15", "2.12.20")
43+
crossScalaVersions := Seq("2.13.15")
4444

4545
scalaVersion := crossScalaVersions.value.head
4646

@@ -75,7 +75,7 @@ libraryDependencies ++= Seq(
7575
"io.circe" %% "circe-parser"
7676
).map(_ % circeVersion)
7777

78-
libraryDependencies += "org.mongodb.scala" %% "mongo-scala-driver" % "5.1.4"
78+
libraryDependencies += ("org.mongodb.scala" %% "mongo-scala-driver" % "5.1.4").cross(CrossVersion.for3Use2_13)
7979

8080
// MongoDB 5.2.0 not supported for de.bwaldvogel -> https://github.com/bwaldvogel/mongo-java-server/issues/233
8181
val MongoJavaServerVersion = "1.45.0"

project/plugins.sbt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ addSbtPlugin("com.github.sbt" % "sbt-release" % "1.4.0")
2121

2222
addSbtPlugin("dev.quadstingray" %% "sbt-json" % "0.7.1")
2323

24+
addSbtPlugin("ch.epfl.scala" % "sbt-scala3-migrate" % "0.7.1")
25+
26+
2427
addDependencyTreePlugin
2528

2629
// todo remove as soon as possible

src/main/scala/dev/mongocamp/driver/mongodb/database/DatabaseProvider.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ class DatabaseProvider(val config: MongoConfig, val registry: CodecRegistry) ext
2020

2121
def DefaultDatabaseName: String = defaultDatabaseName
2222

23-
def connectionString = {
23+
def connectionString: String = {
2424
s"mongodb://${config.host}:${config.port}/${config.database}"
2525
}
2626

src/main/scala/dev/mongocamp/driver/mongodb/jdbc/resultSet/MongoDbResultSetMetaData.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ class MongoDbResultSetMetaData extends ResultSetMetaData {
8080
case _: BsonNumber => java.sql.Types.DOUBLE
8181
case _: BsonString => java.sql.Types.VARCHAR
8282
case _: BsonBoolean => java.sql.Types.BOOLEAN
83-
case _: Document => java.sql.Types.STRUCT
83+
// case _: Document => java.sql.Types.STRUCT // todo: check if this is correct
8484
case _ => java.sql.Types.NULL
8585
}
8686
}

src/main/scala/dev/mongocamp/driver/mongodb/sql/MongoSqlQueryHolder.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import scala.collection.mutable
3535
import scala.collection.mutable.ArrayBuffer
3636
import scala.jdk.CollectionConverters._
3737
import scala.util.Try
38+
import net.sf.jsqlparser.statement.Statement
3839

3940
class MongoSqlQueryHolder {
4041
private val aggregatePipeline: ArrayBuffer[Document] = ArrayBuffer()
@@ -719,7 +720,7 @@ class MongoSqlQueryHolder {
719720

720721
object MongoSqlQueryHolder {
721722

722-
def stringToStatement(sql: String, charset: String = "UTF-8") = {
723+
def stringToStatement(sql: String, charset: String = "UTF-8"): Statement = {
723724
try {
724725
val stream: java.io.InputStream = new java.io.ByteArrayInputStream(sql.getBytes(charset))
725726
val jSqlParser = new CCJSqlParser(new StreamProvider(stream, charset))

src/main/scala/dev/mongocamp/driver/mongodb/sync/MongoSyncOperation.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import org.mongodb.scala.model.Projections._
1111
import org.mongodb.scala.model.Updates._
1212

1313
import java.util.Date
14+
import org.mongodb.scala.bson.conversions.Bson
1415

1516
case class MongoSyncOperation(
1617
collectionName: String,
@@ -19,7 +20,7 @@ case class MongoSyncOperation(
1920
idColumnName: String = DatabaseProvider.ObjectIdKey
2021
) extends LazyLogging
2122
with Filter {
22-
val includes = include(idColumnName, MongoSyncOperation.SyncColumnLastSync, MongoSyncOperation.SyncColumnLastUpdate)
23+
val includes: Bson = include(idColumnName, MongoSyncOperation.SyncColumnLastSync, MongoSyncOperation.SyncColumnLastUpdate)
2324

2425
def excecute(source: DatabaseProvider, target: DatabaseProvider): List[MongoSyncResult] =
2526
try {
@@ -91,6 +92,6 @@ object MongoSyncOperation extends ConfigHelper {
9192
val SyncColumnLastSync: String = stringConfig(configPath = "dev.mongocamp.mongodb.sync", key = "syncColumnLastSync", default = "_lastSync").get
9293
val SyncColumnLastUpdate: String = stringConfig(configPath = "dev.mongocamp.mongodb.sync", key = "syncColumnLastUpdate", default = "_lastUpdate").get
9394

94-
val WriteSyncLogOnMaster = booleanConfig(configPath = "dev.mongocamp.mongodb.sync", key = "writeSyncLogOnMaster")
95+
val WriteSyncLogOnMaster: Boolean = booleanConfig(configPath = "dev.mongocamp.mongodb.sync", key = "writeSyncLogOnMaster")
9596
val SyncLogTableName: String = stringConfig(configPath = "dev.mongocamp.mongodb.sync", key = "syncLogTableName", default = "mongodb-sync-log").get
9697
}

src/main/scala/dev/mongocamp/driver/mongodb/sync/MongoSyncer.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,11 @@ case class MongoSyncer(
1212
targetConfig: MongoConfig,
1313
syncOperations: List[MongoSyncOperation] = List()
1414
) {
15-
private val registry = fromProviders(classOf[MongoSyncResult])
15+
// todo: check if this is correct
16+
// private val registry = fromProviders(classOf[MongoSyncResult])
1617
private val operationMap = new mutable.HashMap[String, MongoSyncOperation]()
1718

18-
val source: DatabaseProvider = DatabaseProvider(sourceConfig, registry)
19+
val source: DatabaseProvider = DatabaseProvider(sourceConfig)
1920
val target: DatabaseProvider = DatabaseProvider(targetConfig)
2021

2122
object MongoSyncResultDAO extends MongoDAO[MongoSyncResult](source, MongoSyncOperation.SyncLogTableName)

src/test/scala/dev/mongocamp/driver/mongodb/bson/ConverterSpec.scala

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@ class ConverterSpec extends Specification {
2424
def roundtrip[A <: AnyRef](value: A)(implicit ct: ClassTag[A]): Unit = {
2525
val document = Converter.toDocument(value)
2626

27-
value must not beNull
27+
// todo: check if this is correct (test docuemnt)
28+
29+
value must not be null
2830

2931
value must haveClass[A]
3032
}

src/test/scala/dev/mongocamp/driver/mongodb/dao/PersonDAOSpec.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import dev.mongocamp.driver.mongodb.test.TestDatabase.PersonDAO
77
import java.util.concurrent.TimeUnit
88
import scala.concurrent.ExecutionContext.Implicits.global
99
import scala.concurrent.duration.Duration
10-
import scala.concurrent.{Await, Future}
10+
import scala.concurrent.{ Await, Future }
1111

1212
class PersonDAOSpec extends PersonSpecification with MongoImplicits {
1313

@@ -35,7 +35,7 @@ class PersonDAOSpec extends PersonSpecification with MongoImplicits {
3535

3636
"support resultList" in {
3737
val option: Option[Person] = PersonDAO.find("id", 42)
38-
option must not beEmpty
38+
option must beSome[Person]
3939
}
4040

4141
"support asFuture" in {

src/test/scala/dev/mongocamp/driver/mongodb/database/MongoConfigSpec.scala

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@ class MongoConfigSpec extends Specification {
1313
config.database must beEqualTo("config_test")
1414
val shortDescription =
1515
"{hosts=[127.0.0.1:27017], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms'}"
16-
config.clientSettings.getClusterSettings.getShortDescription must be equalTo shortDescription
17-
config.clientSettings.getApplicationName must be equalTo "mongocampdb-app"
18-
config.clientSettings.getClusterSettings.getHosts.size() must be equalTo 1
19-
config.clientSettings.getConnectionPoolSettings.getMinSize must be equalTo 0
20-
config.clientSettings.getConnectionPoolSettings.getMaxSize must be equalTo 50
16+
(config.clientSettings.getClusterSettings.getShortDescription must be).equalTo(shortDescription)
17+
(config.clientSettings.getApplicationName must be).equalTo("mongocampdb-app")
18+
(config.clientSettings.getClusterSettings.getHosts.size() must be).equalTo(1)
19+
(config.clientSettings.getConnectionPoolSettings.getMinSize must be).equalTo(0)
20+
(config.clientSettings.getConnectionPoolSettings.getMaxSize must be).equalTo(50)
2121
}
2222

2323
"be created with Properties " in {
@@ -27,23 +27,23 @@ class MongoConfigSpec extends Specification {
2727
config.database must beEqualTo("config_test")
2828
val shortDescription =
2929
"{hosts=[localhost:27017], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms'}"
30-
config.clientSettings.getClusterSettings.getShortDescription must be equalTo shortDescription
31-
config.clientSettings.getApplicationName must be equalTo "Awesome Application Name"
32-
config.clientSettings.getClusterSettings.getHosts.size() must be equalTo 1
33-
config.clientSettings.getConnectionPoolSettings.getMinSize must be equalTo 0
34-
config.clientSettings.getConnectionPoolSettings.getMaxSize must be equalTo 50
30+
(config.clientSettings.getClusterSettings.getShortDescription must be).equalTo(shortDescription)
31+
(config.clientSettings.getApplicationName must be).equalTo("Awesome Application Name")
32+
(config.clientSettings.getClusterSettings.getHosts.size() must be).equalTo(1)
33+
(config.clientSettings.getConnectionPoolSettings.getMinSize must be).equalTo(0)
34+
(config.clientSettings.getConnectionPoolSettings.getMaxSize must be).equalTo(50)
3535
}
3636

3737
"be created by config " in {
3838
val config = MongoConfig.fromPath("config.test.mongo")
3939
config.database must beEqualTo("mongocamp-unit-test")
4040
val shortDescription =
4141
"{hosts=[localhost:270007], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms'}"
42-
config.clientSettings.getClusterSettings.getShortDescription must be equalTo shortDescription
43-
config.clientSettings.getApplicationName must be equalTo "mongocamp-config-test"
44-
config.clientSettings.getClusterSettings.getHosts.size() must be equalTo 1
45-
config.clientSettings.getConnectionPoolSettings.getMinSize must be equalTo 5
46-
config.clientSettings.getConnectionPoolSettings.getMaxSize must be equalTo 100
42+
(config.clientSettings.getClusterSettings.getShortDescription must be).equalTo(shortDescription)
43+
(config.clientSettings.getApplicationName must be).equalTo("mongocamp-config-test")
44+
(config.clientSettings.getClusterSettings.getHosts.size() must be).equalTo(1)
45+
(config.clientSettings.getConnectionPoolSettings.getMinSize must be).equalTo(5)
46+
(config.clientSettings.getConnectionPoolSettings.getMaxSize must be).equalTo(100)
4747
config.clientSettings.getCredential must beNull
4848

4949
}
@@ -53,14 +53,14 @@ class MongoConfigSpec extends Specification {
5353
config.database must beEqualTo("mongocamp-unit-test")
5454
val shortDescription =
5555
"{hosts=[localhost:270007], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms'}"
56-
config.clientSettings.getClusterSettings.getShortDescription must be equalTo shortDescription
57-
config.clientSettings.getApplicationName must be equalTo "mongocamp-config-test-with-auth"
58-
config.clientSettings.getClusterSettings.getHosts.size() must be equalTo 1
59-
config.clientSettings.getConnectionPoolSettings.getMinSize must be equalTo 5
60-
config.clientSettings.getConnectionPoolSettings.getMaxSize must be equalTo 100
61-
config.clientSettings.getCredential.getUserName must be equalTo "admin_user"
62-
config.clientSettings.getCredential.getPassword must not beEmpty
63-
56+
(config.clientSettings.getClusterSettings.getShortDescription must be).equalTo(shortDescription)
57+
(config.clientSettings.getApplicationName must be).equalTo("mongocamp-config-test-with-auth")
58+
(config.clientSettings.getClusterSettings.getHosts.size() must be).equalTo(1)
59+
(config.clientSettings.getConnectionPoolSettings.getMinSize must be).equalTo(5)
60+
(config.clientSettings.getConnectionPoolSettings.getMaxSize must be).equalTo(100)
61+
(config.clientSettings.getCredential.getUserName must be).equalTo("admin_user")
62+
config.clientSettings.getCredential.getPassword must not be null
63+
(config.clientSettings.getCredential.getPassword.length must not).equalTo(0)
6464
}
6565

6666
}

0 commit comments

Comments
 (0)