From dd79d9cf972dbb7081d35d510bdd0135b8b2e6e3 Mon Sep 17 00:00:00 2001 From: Manolis Varvarigos Date: Thu, 10 Aug 2023 23:29:57 +0300 Subject: [PATCH 0001/1318] ZIO Http introduction --- zio/build.sbt | 22 +++++ zio/project/build.properties | 1 + .../baeldung/scala/zio/httpapp/HelloApp.scala | 19 ++++ .../baeldung/scala/zio/httpapp/MainApp.scala | 35 ++++++++ .../scala/zio/httpapp/ZioEffectApp.scala | 33 +++++++ .../httpapp/app/IngredientWebsocketApp.scala | 24 +++++ .../scala/zio/httpapp/app/Recipe.scala | 10 +++ .../scala/zio/httpapp/app/RecipeHttpApp.scala | 88 +++++++++++++++++++ .../scala/zio/httpapp/app/SpeedHttpApp.scala | 30 +++++++ .../scala/zio/httpapp/client/HttpClient.scala | 32 +++++++ .../zio/httpapp/repo/InMemoryRecipeRepo.scala | 31 +++++++ .../scala/zio/httpapp/repo/RecipeRepo.scala | 13 +++ .../zio/httpapp/service/RecipeService.scala | 34 +++++++ .../zio/httpapp/app/RecipeHttpAppSpec.scala | 84 ++++++++++++++++++ 14 files changed, 456 insertions(+) create mode 100644 zio/build.sbt create mode 100644 zio/project/build.properties create mode 100644 zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/HelloApp.scala create mode 100644 zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/MainApp.scala create mode 100644 zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/ZioEffectApp.scala create mode 100644 zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/IngredientWebsocketApp.scala create mode 100644 zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/Recipe.scala create mode 100644 zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/RecipeHttpApp.scala create mode 100644 zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/SpeedHttpApp.scala create mode 100644 zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/client/HttpClient.scala create mode 100644 zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/repo/InMemoryRecipeRepo.scala create mode 100644 zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/repo/RecipeRepo.scala create mode 100644 zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/service/RecipeService.scala create mode 100644 zio/src/test/scala-3/com/baeldung/scala/zio/httpapp/app/RecipeHttpAppSpec.scala diff --git a/zio/build.sbt b/zio/build.sbt new file mode 100644 index 000000000..aa2e6e6a5 --- /dev/null +++ b/zio/build.sbt @@ -0,0 +1,22 @@ +val scala3Version = "3.3.0" + +scalaVersion := scala3Version + +libraryDependencies ++= Seq( + "dev.zio" %% "zio" % "2.0.15", + "dev.zio" %% "zio-json" % "0.6.0", + "dev.zio" %% "zio-http" % "3.0.0-RC2", + "io.getquill" %% "quill-zio" % "4.6.0", + "io.getquill" %% "quill-jdbc-zio" % "4.6.0", + "com.h2database" % "h2" % "2.2.220" +) + +libraryDependencies ++= Seq( + "dev.zio" %% "zio-test" % "2.0.16" % Test, + "dev.zio" %% "zio-test-sbt" % "2.0.16" % Test, + "dev.zio" %% "zio-test-magnolia" % "2.0.16" % Test, + "dev.zio" %% "zio-http-testkit" % "3.0.0-RC2" % Test, +) +testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework") + +run / fork := true diff --git a/zio/project/build.properties b/zio/project/build.properties new file mode 100644 index 000000000..19479ba46 --- /dev/null +++ b/zio/project/build.properties @@ -0,0 +1 @@ +sbt.version=1.5.2 diff --git a/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/HelloApp.scala b/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/HelloApp.scala new file mode 100644 index 000000000..cf015927c --- /dev/null +++ b/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/HelloApp.scala @@ -0,0 +1,19 @@ +package com.baeldung.scala.zio.httpapp + +import com.baeldung.scala.zio.httpapp.MainApp.Environment +import zio.* +import zio.http.* + +object HelloApp extends ZIOAppDefault: + private object HelloHttpApp: + def apply(): Http[Any, Nothing, Request, Response] = + Http.collect[Request] { case Method.GET -> Root / "hello" => + Response.text(s"Hello World!") + } + + def run: ZIO[Environment with ZIOAppArgs with Scope, Throwable, Any] = + Server + .serve(HelloHttpApp()) + .provide( + Server.defaultWithPort(8080) + ) diff --git a/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/MainApp.scala b/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/MainApp.scala new file mode 100644 index 000000000..d0bc14c8d --- /dev/null +++ b/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/MainApp.scala @@ -0,0 +1,35 @@ +package com.baeldung.scala.zio.httpapp + +import com.baeldung.scala.zio.httpapp.app.{ + IngredientWebsocketApp, + RecipeHttpApp, + SpeedHttpApp +} +import com.baeldung.scala.zio.httpapp.service.RecipeService +import com.baeldung.scala.zio.httpapp.repo.InMemoryRecipeRepo +import com.baeldung.scala.zio.httpapp.repo.RecipeRepo +import zio.http.{RequestHandlerMiddlewares, Server} +import zio.{Ref, Scope, ZIO, ZIOAppArgs, ZIOAppDefault, ZLayer} + +object MainApp extends ZIOAppDefault: + def run: ZIO[Environment with ZIOAppArgs with Scope, Throwable, Any] = + + val headerMiddleware = + RequestHandlerMiddlewares.addHeader("X-Environment", "Dev") + + val loggingMiddleware = RequestHandlerMiddlewares.requestLogging( + logRequestBody = true, + logResponseBody = true + ) + + val recipeApp = RecipeHttpApp() @@ headerMiddleware @@ loggingMiddleware + + Server + .serve( + (recipeApp ++ IngredientWebsocketApp()).withDefaultErrorResponse + ) + .provide( + Server.defaultWithPort(8080), + InMemoryRecipeRepo.layer, + RecipeService.layer + ) diff --git a/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/ZioEffectApp.scala b/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/ZioEffectApp.scala new file mode 100644 index 000000000..89c07be5c --- /dev/null +++ b/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/ZioEffectApp.scala @@ -0,0 +1,33 @@ +package com.baeldung.scala.zio.httpapp + +import com.baeldung.scala.zio.httpapp.HelloApp.Environment +import zio.* +import zio.http.* + +object ZioEffectApp extends ZIOAppDefault: + private object CounterHttpApp: + def apply(): Http[Ref[Int], Nothing, Request, Response] = + Http.collectZIO[Request] { + case Method.GET -> Root / "up" => + ZIO.serviceWithZIO[Ref[Int]](cRef => + response(cRef.updateAndGet(_ + 1)) + ) + case Method.GET -> Root / "get" => + ZIO.serviceWithZIO[Ref[Int]](cRef => response(cRef.get)) + case Method.GET -> Root / "reset" => + ZIO.serviceWithZIO[Ref[Int]](cRef => + response(cRef.updateAndGet(_ => 0)) + ) + } + + private def response(counterUio: UIO[Int]) = counterUio + .map(_.toString) + .map(Response.text) + + def run: ZIO[Environment with ZIOAppArgs with Scope, Throwable, Any] = + Server + .serve(CounterHttpApp()) + .provide( + ZLayer.fromZIO(Ref.make(0)), + Server.defaultWithPort(8080) + ) diff --git a/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/IngredientWebsocketApp.scala b/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/IngredientWebsocketApp.scala new file mode 100644 index 000000000..789999a43 --- /dev/null +++ b/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/IngredientWebsocketApp.scala @@ -0,0 +1,24 @@ +package com.baeldung.scala.zio.httpapp.app + +import zio.* +import zio.http.* + +object IngredientWebsocketApp: + + private val appContext = "ingredients" + + def apply(): Http[Any, Nothing, Request, Response] = + + val socket = Handler.webSocket { channel => + channel.receiveAll { + case ChannelEvent.Read(WebSocketFrame.Text(input)) => + channel.send(ChannelEvent.Read(WebSocketFrame.text(input * 2))) + case _ => + ZIO.unit + } + } + + Http.collectZIO[Request] { + case Method.GET -> Root / IngredientWebsocketApp.appContext => + socket.toResponse + } diff --git a/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/Recipe.scala b/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/Recipe.scala new file mode 100644 index 000000000..6f2b33a5e --- /dev/null +++ b/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/Recipe.scala @@ -0,0 +1,10 @@ +package com.baeldung.scala.zio.httpapp.app + +import java.util.UUID +import zio.json._ + +case class Recipe(id: Long, name: String, ingredients: List[String]) + +object Recipe: + given JsonEncoder[Recipe] = DeriveJsonEncoder.gen[Recipe] + given JsonDecoder[Recipe] = DeriveJsonDecoder.gen[Recipe] diff --git a/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/RecipeHttpApp.scala b/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/RecipeHttpApp.scala new file mode 100644 index 000000000..e27a4e3c5 --- /dev/null +++ b/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/RecipeHttpApp.scala @@ -0,0 +1,88 @@ +package com.baeldung.scala.zio.httpapp.app + +import com.baeldung.scala.zio.httpapp.service.RecipeService +import com.baeldung.scala.zio.httpapp.repo.RecipeRepo +import zio.* +import zio.http.{Root, *} +import zio.json.* + +import scala.util.{Failure, Success, Try} + +object RecipeHttpApp: + + val appContext = "recipes" + + private type RecipeEffect = ZIO[RecipeService, Throwable, Response] + + val getHandler: PartialFunction[Request, RecipeEffect] = { + case Method.GET -> Root / RecipeHttpApp.appContext / id => + (for { + idLong <- ZIO.fromTry(Try(id.toLong)) + response <- ZIO + .serviceWithZIO[RecipeService](_.find(idLong)) + .map({ + case Some(recipe) => Response.json(recipe.toJson) + case None => Response.status(Status.NotFound) + }) + } yield response).orDie + } + + val postHandler: PartialFunction[Request, RecipeEffect] = { + case req @ (Method.POST -> Root / RecipeHttpApp.appContext) => + (for { + u <- req.body.asString.map(_.fromJson[Recipe]) + response <- u match { + case Left(e) => + ZIO + .debug(s"Failed to parse the input: $e") + .as( + Response.text(e).withStatus(Status.BadRequest) + ) + case Right(recipe) => + ZIO + .serviceWithZIO[RecipeService](_.save(recipe)) + .map(recipe => Response.json(recipe.toJson)) + } + } yield response).orDie + } + + private val putHandler: PartialFunction[Request, RecipeEffect] = { + case req @ Method.PUT -> Root / RecipeHttpApp.appContext => + (for { + u <- req.body.asString.map(_.fromJson[Recipe]) + response <- u match { + case Left(e) => + ZIO + .debug(s"Failed to parse the input: $e") + .as( + Response.text(e).withStatus(Status.BadRequest) + ) + case Right(recipe) => + ZIO + .serviceWithZIO[RecipeService](_.update(recipe)) + .map({ + case Some(recipe) => Response.json(recipe.toJson) + case None => Response.status(Status.NotFound) + }) + } + } yield response).orDie + } + + private val deleteHandler: PartialFunction[Request, RecipeEffect] = { + case Method.DELETE -> Root / RecipeHttpApp.appContext / id => + (for { + idLong <- ZIO.fromTry(Try(id.toLong)) + response <- ZIO + .serviceWithZIO[RecipeService](_.delete(idLong)) + .map({ + case Some(recipe) => Response.json(recipe.toJson) + case None => Response.status(Status.NotFound) + }) + } yield response).orDie + } + + def apply(): Http[RecipeService, Throwable, Request, Response] = + Http.collectZIO[Request] { getHandler } ++ + Http.collectZIO[Request] { postHandler } ++ + Http.collectZIO[Request] { putHandler } ++ + Http.collectZIO[Request] { deleteHandler } diff --git a/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/SpeedHttpApp.scala b/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/SpeedHttpApp.scala new file mode 100644 index 000000000..971cb2c5a --- /dev/null +++ b/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/SpeedHttpApp.scala @@ -0,0 +1,30 @@ +package com.baeldung.scala.zio.httpapp.app + +import zio.{Ref, ZIO} +import zio.http._ + +object SpeedHttpApp: + + val appContext = "speed" + + def apply(): Http[Ref[Int], Nothing, Request, Response] = + Http.collectZIO[Request] { + case Method.GET -> Root / SpeedHttpApp.appContext / "add" => + ZIO.serviceWithZIO[Ref[Int]] { ref => + ref + .updateAndGet(_ + 1) + .map(_.toString) + .map(Response.text) + } + case Method.GET -> Root / SpeedHttpApp.appContext / "reduce" => + ZIO.serviceWithZIO[Ref[Int]] { ref => + ref + .updateAndGet(_ - 1) + .map(_.toString) + .map(Response.text) + } + case Method.GET -> Root / SpeedHttpApp.appContext / "get" => + ZIO.serviceWithZIO[Ref[Int]](ref => + ref.get.map(_.toString).map(Response.text) + ) + } diff --git a/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/client/HttpClient.scala b/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/client/HttpClient.scala new file mode 100644 index 000000000..38d58139e --- /dev/null +++ b/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/client/HttpClient.scala @@ -0,0 +1,32 @@ +package com.baeldung.scala.zio.httpapp.client + +import zio._ + +import zio.http.* + +object HttpClient extends ZIOAppDefault: + val url = "http://localhost:8080/recipes" + + private val program = for { + postRes <- Client.request( + url, + Method.POST, + content = Body.fromString("""{ + |"id": 1, + |"name": "burger", + |"ingredients": ["beef", "salt", "pepper"] + |}""".stripMargin) + ) + data <- postRes.body.asString + _ <- Console.printLine(s"posted: $data") + getRes <- Client.request( + s"$url/1", + Method.GET + ) + gotData <- getRes.body.asString + _ <- Console.printLine(s"gotData: $gotData") + + } yield () + + def run: ZIO[Environment with ZIOAppArgs with Scope, Any, Any] = + program.provide(Client.default) diff --git a/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/repo/InMemoryRecipeRepo.scala b/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/repo/InMemoryRecipeRepo.scala new file mode 100644 index 000000000..05d96b91b --- /dev/null +++ b/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/repo/InMemoryRecipeRepo.scala @@ -0,0 +1,31 @@ +package com.baeldung.scala.zio.httpapp.repo + +import com.baeldung.scala.zio.httpapp.app.Recipe +import zio.{Ref, Task, UIO, ZLayer} + +case class InMemoryRecipeRepo(map: Ref[Map[Long, Recipe]]) extends RecipeRepo: + def save(recipe: Recipe): UIO[Recipe] = + for _ <- map.update(_ + (recipe.id -> recipe)) + yield recipe + + def find(id: Long): UIO[Option[Recipe]] = + map.get.map(_.get(id)) + + def update(recipe: Recipe): Task[Option[Recipe]] = + for + _ <- map.update(_ + (recipe.id -> recipe)) + recipeOpt <- map.get.map(_.get(recipe.id)) + yield recipeOpt + + def delete(id: Long): Task[Option[Recipe]] = + for + recipe <- map.get.map(_.get(id)) + _ <- map.update(_ - id) + yield recipe + +object InMemoryRecipeRepo { + def layer: ZLayer[Any, Nothing, RecipeRepo] = + ZLayer.fromZIO( + Ref.make(Map.empty[Long, Recipe]).map(new InMemoryRecipeRepo(_)) + ) +} diff --git a/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/repo/RecipeRepo.scala b/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/repo/RecipeRepo.scala new file mode 100644 index 000000000..6b9672533 --- /dev/null +++ b/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/repo/RecipeRepo.scala @@ -0,0 +1,13 @@ +package com.baeldung.scala.zio.httpapp.repo + +import com.baeldung.scala.zio.httpapp.app.Recipe +import zio._ + +trait RecipeRepo: + def save(recipe: Recipe): Task[Recipe] + + def find(id: Long): Task[Option[Recipe]] + + def update(recipe: Recipe): Task[Option[Recipe]] + + def delete(id: Long): Task[Option[Recipe]] diff --git a/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/service/RecipeService.scala b/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/service/RecipeService.scala new file mode 100644 index 000000000..992c22925 --- /dev/null +++ b/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/service/RecipeService.scala @@ -0,0 +1,34 @@ +package com.baeldung.scala.zio.httpapp.service + +import com.baeldung.scala.zio.httpapp.app.Recipe +import com.baeldung.scala.zio.httpapp.repo.RecipeRepo +import zio.{Ref, Task, ZLayer, ZIO} + +case class RecipeServiceImpl(recipeRepo: RecipeRepo) extends RecipeService: + + def save(recipe: Recipe): Task[Recipe] = recipeRepo.save(recipe) + + def find(id: Long): Task[Option[Recipe]] = recipeRepo.find(id) + + def update(recipe: Recipe): Task[Option[Recipe]] = recipeRepo.update(recipe) + + def delete(id: Long): Task[Option[Recipe]] = recipeRepo.delete(id) + +trait RecipeService: + + def save(recipe: Recipe): Task[Recipe] + + def find(id: Long): Task[Option[Recipe]] + + def update(recipe: Recipe): Task[Option[Recipe]] + + def delete(id: Long): Task[Option[Recipe]] + +object RecipeService { + def layer: ZLayer[RecipeRepo, Nothing, RecipeService] = + ZLayer { + for { + recipeRepo <- ZIO.service[RecipeRepo] + } yield RecipeServiceImpl(recipeRepo) + } +} diff --git a/zio/src/test/scala-3/com/baeldung/scala/zio/httpapp/app/RecipeHttpAppSpec.scala b/zio/src/test/scala-3/com/baeldung/scala/zio/httpapp/app/RecipeHttpAppSpec.scala new file mode 100644 index 000000000..87eda9a66 --- /dev/null +++ b/zio/src/test/scala-3/com/baeldung/scala/zio/httpapp/app/RecipeHttpAppSpec.scala @@ -0,0 +1,84 @@ +package com.baeldung.scala.zio.httpapp.app + +import com.baeldung.scala.zio.httpapp.repo.InMemoryRecipeRepo +import com.baeldung.scala.zio.httpapp.service.RecipeService +import zio.test.* +import zio.http.* +import zio.* +import zio.http.netty.server.NettyDriver + +object RecipeHttpAppSpec extends ZIOSpecDefault : + + def status(response: Response): Status = response.status + + override def spec = suite("RecipeHttpApp")( + test("get should return 404 for non existent recipes") { + for { + client <- ZIO.service[Client] + testRequest <- getRecipe1 + _ <- TestServer.addHandler { + RecipeHttpApp.getHandler + } + response1 <- client.request(testRequest) + } yield assertTrue(status(response1) == Status.NotFound) + }.provideSome[Client with Driver]( + InMemoryRecipeRepo.layer, + RecipeService.layer, + TestServer.layer, + Scope.default + ), + test("post should create recipes") { + for { + client <- ZIO.service[Client] + testRequest1 <- postRecipe1 + _ <- TestServer.addHandler { + RecipeHttpApp.getHandler + } + _ <- TestServer.addHandler { + RecipeHttpApp.postHandler + } + response1 <- client.request(testRequest1) + testRequest2 <- getRecipe1 + response2 <- client.request(testRequest2) + } yield assertTrue( + status(response1) == Status.Ok, + status(response2) == Status.Ok + ) + }.provideSome[Client with Driver]( + InMemoryRecipeRepo.layer, + RecipeService.layer, + TestServer.layer, + Scope.default + ) + ).provide( + ZLayer.succeed(Server.Config.default.onAnyOpenPort), + Client.default, + Driver.default + ) + + private def getRecipe1 = + for { + port <- ZIO.serviceWith[Server](_.port) + } yield Request + .get( + URL(Path.root / "recipes" / "1").withPort(port) + ) + .addHeaders(Headers(Header.Accept(MediaType.text.`plain`))) + + private def postRecipe1 = + for { + port <- ZIO.serviceWith[Server](_.port) + } yield Request + .post( + Body.fromString( + """ + |{ + | "id": 1, + | "name": "test-recipe", + | "ingredients": ["ingr1", "ingr2"] + |} + |""".stripMargin), + url = URL(Path.root / "recipes").withPort(port) + ) + .addHeaders(Headers(Header.Accept(MediaType.text.`plain`))) + From 27dafa82c25c41dfec3ee21d79255d31b0e1d4b0 Mon Sep 17 00:00:00 2001 From: Manolis Varvarigos Date: Tue, 19 Sep 2023 23:23:13 +0300 Subject: [PATCH 0002/1318] Code reformat --- .../baeldung/scala/zio/httpapp/app/RecipeHttpAppSpec.scala | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/zio/src/test/scala-3/com/baeldung/scala/zio/httpapp/app/RecipeHttpAppSpec.scala b/zio/src/test/scala-3/com/baeldung/scala/zio/httpapp/app/RecipeHttpAppSpec.scala index 87eda9a66..13923024b 100644 --- a/zio/src/test/scala-3/com/baeldung/scala/zio/httpapp/app/RecipeHttpAppSpec.scala +++ b/zio/src/test/scala-3/com/baeldung/scala/zio/httpapp/app/RecipeHttpAppSpec.scala @@ -7,7 +7,7 @@ import zio.http.* import zio.* import zio.http.netty.server.NettyDriver -object RecipeHttpAppSpec extends ZIOSpecDefault : +object RecipeHttpAppSpec extends ZIOSpecDefault: def status(response: Response): Status = response.status @@ -70,8 +70,7 @@ object RecipeHttpAppSpec extends ZIOSpecDefault : port <- ZIO.serviceWith[Server](_.port) } yield Request .post( - Body.fromString( - """ + Body.fromString(""" |{ | "id": 1, | "name": "test-recipe", @@ -81,4 +80,3 @@ object RecipeHttpAppSpec extends ZIOSpecDefault : url = URL(Path.root / "recipes").withPort(port) ) .addHeaders(Headers(Header.Accept(MediaType.text.`plain`))) - From 386ca4dd9ff5e99a75bc1411df336035d3ca7616 Mon Sep 17 00:00:00 2001 From: Kateu Herbert Date: Thu, 21 Sep 2023 17:53:55 +0300 Subject: [PATCH 0003/1318] Added code for circe-yaml --- build.sbt | 12 ++ .../com/baeldung/circeYaml/YamlExample.scala | 136 ++++++++++++++++++ .../baeldung/circeYaml/YamlExampleSpec.scala | 64 +++++++++ 3 files changed, 212 insertions(+) create mode 100644 scala-libraries-6/src/main/scala-3/com/baeldung/circeYaml/YamlExample.scala create mode 100644 scala-libraries-6/src/test/scala-3/com/baeldung/circeYaml/YamlExampleSpec.scala diff --git a/build.sbt b/build.sbt index f2564e7c4..76089a577 100644 --- a/build.sbt +++ b/build.sbt @@ -407,6 +407,18 @@ lazy val scala_libraries_5 = (project in file("scala-libraries-5")) ) ) +lazy val scala_libraries_6 = (project in file("scala-libraries-6")) + .settings( + name := "scala-libraries-6", + scalaVersion := scala3Version, + libraryDependencies ++= scalaTestDeps, + libraryDependencies ++= Seq( + "io.circe" %% "circe-yaml" % "0.14.2", + "io.circe" %% "circe-generic" % "0.14.6", + "io.circe" %% "circe-parser" % "0.14.6" + ) + ) + lazy val scala_strings = (project in file("scala-strings")) .settings( name := "scala-strings", diff --git a/scala-libraries-6/src/main/scala-3/com/baeldung/circeYaml/YamlExample.scala b/scala-libraries-6/src/main/scala-3/com/baeldung/circeYaml/YamlExample.scala new file mode 100644 index 000000000..5f9ce4689 --- /dev/null +++ b/scala-libraries-6/src/main/scala-3/com/baeldung/circeYaml/YamlExample.scala @@ -0,0 +1,136 @@ +package com.baeldung.circeYaml + +import io.circe.yaml +import io.circe.* +import cats.syntax.either.* +import io.circe.generic.auto.* +import java.io.FileReader +import java.io.File +import scala.util.Try +import io.circe.parser.* +import java.io.FileWriter +import io.circe.yaml.syntax.* + +object YamlExample: + case class Server(host: String, port: Int) + case class OrdersConfig( + name: String, + server: Server, + serverType: List[String] + ) + + val ordersYamlConfig: String = + """ + name: Orders String + server: + host: localhost + port: 8080 + serverType: + - Http + - Grpc + """ + val ordersStringConfig: Either[ParsingFailure, Json] = + yaml.parser.parse(ordersYamlConfig) + + def processJson( + json: Either[ParsingFailure, Json] + ): Either[Error, OrdersConfig] = + json + .leftMap(err => err: Error) + .flatMap(_.as[OrdersConfig]) + + def printValue(value: Either[Error | Throwable, OrdersConfig]) = + value match + case Right(v) => println(v) + case Left(err) => println(err.getMessage) + + // Reading a yaml file + val yamlFileReader: Either[Throwable, FileReader] = + Try { + new FileReader( + "src/main/scala/resources/orders.yaml" + ) + }.toEither + + val ordersFileConfig: Either[Throwable, OrdersConfig] = + yamlFileReader + .map(fileReader => processJson(yaml.parser.parse(fileReader))) + .flatten + + // Reading multiple yaml documents in a single file. + val yamlFileReader2: Either[Throwable, FileReader] = + Try { + new FileReader( + "src/main/scala/resources/service.yaml" + ) + }.toEither + + val ordersFileConfig2: Either[Throwable, List[Either[Error, OrdersConfig]]] = + yamlFileReader2 + .map(fileReader => yaml.parser.parseDocuments(fileReader).toList) + .map(_.map(processJson)) + + val jsonString = + """ + { + "name": "Orders Json", + "server": + { + "host": "localhost", + "port": 8080 + }, + "serverType": ["Http", "Grpc"] + } + """ + + val jsonConfig: Either[ParsingFailure, Json] = parse(jsonString) + + val fileWriter: Either[Throwable, FileWriter] = + Try { + new FileWriter(new File("src/main/scala/resources/sample.yaml")) + }.toEither + + val writer: Either[Throwable, String] = + for + jsnValue <- jsonConfig + fw <- fileWriter + yield Try { + fw.write(jsnValue.asYaml.spaces2) + fw.close() + }.fold( + e => e.getMessage(), + _ => "sample.yaml has been written" + ) +end YamlExample + +@main +def program = + import YamlExample.* + // Reading a Yaml String + printValue(processJson(ordersStringConfig)) + + /** OrdersConfig(Orders String,Server(localhost,8080),List(Http, Grpc)) + */ + + // Reading from a yaml File + printValue(ordersFileConfig) + + /** OrdersConfig(Orders File,Server(localhost,8080),List(Http, Grpc)) + */ + + ordersFileConfig2 match + case Right(lst) => + lst.foreach(printValue) + case Left(err) => println(err.getMessage) + + /** OrdersConfig(Orders,Server(localhost,8080),List(Http, Grpc)) + * OrdersConfig(Test,Server(localhost,9999),List(Http, Grpc)) + */ + + // write yaml + writer match + case Right(v) => println(v) + case Left(err) => println(err.getMessage) + + /** sample.yaml has been written + */ diff --git a/scala-libraries-6/src/test/scala-3/com/baeldung/circeYaml/YamlExampleSpec.scala b/scala-libraries-6/src/test/scala-3/com/baeldung/circeYaml/YamlExampleSpec.scala new file mode 100644 index 000000000..e5951f34c --- /dev/null +++ b/scala-libraries-6/src/test/scala-3/com/baeldung/circeYaml/YamlExampleSpec.scala @@ -0,0 +1,64 @@ +package com.baeldung.circeYaml + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers +import YamlExample.* +import io.circe.* +import java.io.* +import org.scalatest.prop.TableDrivenPropertyChecks + +class YamlExampleSuite + extends AnyFlatSpec + with Matchers + with TableDrivenPropertyChecks: + val myServer = Server("localhost", 8080) + val myOC = OrdersConfig("test", myServer, List("Http", "Grpc")) + + "Server" should "contain a host String and port Int" in { + myServer.host shouldBe an[String] + myServer.port shouldBe an[Int] + } + + "OrdersConfig" should "contain a name String, Server, and serverType, List[String]" in { + myOC.name shouldBe an[String] + myOC.server shouldBe an[Server] + myOC.serverType shouldBe an[List[String]] + } + + "ordersStringConfig" should "be of type Either[ParsingFailure, Json]" in { + ordersStringConfig shouldBe an[Either[ParsingFailure, Json]] + } + + "processJson()" should "return an Either[Error, OrdersConfig]" in { + processJson(ordersStringConfig) shouldBe an[Either[Error, OrdersConfig]] + } + + "printValue" should "return Unit" in { + printValue(processJson(ordersStringConfig)) shouldBe an[Unit] + } + + "yamlFileReader and yamlFileReader2" should "be of type Either[Throwable, FileReader]" in { + forAll(Table("Either File Reader", yamlFileReader, yamlFileReader2)) { v => + v shouldBe an[Either[Throwable, FileReader]] + } + } + + "ordersFileConfig2" should "be of type Either[Throwable, List[Either[Error, OrdersConfig]]]" in { + ordersFileConfig2 shouldBe an[ + Either[Throwable, List[Either[Error, OrdersConfig]]] + ] + } + + "jsonString" should "be of type String" in { + jsonString shouldBe an[String] + } + + "fileWriter" should "be of type Either[Throwable, FileWriter]" in { + fileWriter shouldBe an[Either[Throwable, FileWriter]] + } + + "writer" should "be of type Either[Throwable, String]" in { + writer shouldBe an[Either[Throwable, String]] + } + +end YamlExampleSuite From 5e052d1a85ead5db1e03fd9e0bb6390ae0efaadd Mon Sep 17 00:00:00 2001 From: kateu herbert Date: Fri, 29 Sep 2023 17:17:13 +0300 Subject: [PATCH 0004/1318] added changes as per article review --- .../com/baeldung/circeYaml/YamlExample.scala | 66 ++++++++++++------- .../baeldung/circeYaml/YamlExampleSpec.scala | 18 +++-- 2 files changed, 57 insertions(+), 27 deletions(-) diff --git a/scala-libraries-6/src/main/scala-3/com/baeldung/circeYaml/YamlExample.scala b/scala-libraries-6/src/main/scala-3/com/baeldung/circeYaml/YamlExample.scala index 5f9ce4689..43320cd5d 100644 --- a/scala-libraries-6/src/main/scala-3/com/baeldung/circeYaml/YamlExample.scala +++ b/scala-libraries-6/src/main/scala-3/com/baeldung/circeYaml/YamlExample.scala @@ -6,17 +6,19 @@ import cats.syntax.either.* import io.circe.generic.auto.* import java.io.FileReader import java.io.File +import java.nio.file.Paths import scala.util.Try import io.circe.parser.* import java.io.FileWriter import io.circe.yaml.syntax.* +import io.circe.syntax.* object YamlExample: case class Server(host: String, port: Int) case class OrdersConfig( - name: String, - server: Server, - serverType: List[String] + name: String, + server: Server, + serverType: List[String] ) val ordersYamlConfig: String = @@ -33,7 +35,7 @@ object YamlExample: yaml.parser.parse(ordersYamlConfig) def processJson( - json: Either[ParsingFailure, Json] + json: Either[ParsingFailure, Json] ): Either[Error, OrdersConfig] = json .leftMap(err => err: Error) @@ -70,6 +72,20 @@ object YamlExample: .map(fileReader => yaml.parser.parseDocuments(fileReader).toList) .map(_.map(processJson)) + def fileWriter(path: String): Either[Throwable, FileWriter] = + Try { + new FileWriter(new File(path)) + }.toEither + + def writeYaml(jsnValue: Json, fw: FileWriter, path: String): String = + Try { + fw.write(jsnValue.asYaml.spaces2) + fw.close() + }.fold( + e => e.getMessage(), + _ => s"${Paths.get(path).getFileName().toString()} has been written" + ) + val jsonString = """ { @@ -83,24 +99,20 @@ object YamlExample: } """ - val jsonConfig: Either[ParsingFailure, Json] = parse(jsonString) - - val fileWriter: Either[Throwable, FileWriter] = - Try { - new FileWriter(new File("src/main/scala/resources/sample.yaml")) - }.toEither - - val writer: Either[Throwable, String] = + def writeJsonStr(path: String, jsonStr: String): Either[Throwable, String] = for - jsnValue <- jsonConfig - fw <- fileWriter - yield Try { - fw.write(jsnValue.asYaml.spaces2) - fw.close() - }.fold( - e => e.getMessage(), - _ => "sample.yaml has been written" - ) + jsnValue <- parse(jsonString) + fw <- fileWriter(path) + yield writeYaml(jsnValue, fw, path) + + val myCaseClass = + OrdersConfig("Orders", Server("localhost", 8080), List("Http", "Grpc")) + + def writeOrdersConfig(path: String, oc: OrdersConfig): String = + fileWriter(path) match + case Right(fw) => writeYaml(oc.asJson, fw, path) + case Left(err) => err.getMessage + end YamlExample @main @@ -127,10 +139,18 @@ def program = * OrdersConfig(Test,Server(localhost,9999),List(Http, Grpc)) */ - // write yaml - writer match + // write json String to yaml file + writeJsonStr("src/main/resources/sample.yaml", jsonString) match case Right(v) => println(v) case Left(err) => println(err.getMessage) /** sample.yaml has been written */ + + // write case class to yaml file + println( + writeOrdersConfig("src/main/resources/sample2.yaml", myCaseClass) + ) + + /**sample2.yaml has been written + */ \ No newline at end of file diff --git a/scala-libraries-6/src/test/scala-3/com/baeldung/circeYaml/YamlExampleSpec.scala b/scala-libraries-6/src/test/scala-3/com/baeldung/circeYaml/YamlExampleSpec.scala index e5951f34c..ae06c1b4d 100644 --- a/scala-libraries-6/src/test/scala-3/com/baeldung/circeYaml/YamlExampleSpec.scala +++ b/scala-libraries-6/src/test/scala-3/com/baeldung/circeYaml/YamlExampleSpec.scala @@ -43,22 +43,32 @@ class YamlExampleSuite } } + "ordersFileConfig" should "be of type Either[Throwable, OrdersConfig] " in { + ordersFileConfig2 shouldBe an[ + Either[Throwable, OrdersConfig] + ] + } + "ordersFileConfig2" should "be of type Either[Throwable, List[Either[Error, OrdersConfig]]]" in { ordersFileConfig2 shouldBe an[ Either[Throwable, List[Either[Error, OrdersConfig]]] ] } + "fileWriter" should "be of type Either[Throwable, FileWriter]" in { + fileWriter("src/test/resources/sample.yaml") shouldBe an[Either[Throwable, FileWriter]] + } + "jsonString" should "be of type String" in { jsonString shouldBe an[String] } - "fileWriter" should "be of type Either[Throwable, FileWriter]" in { - fileWriter shouldBe an[Either[Throwable, FileWriter]] + "writeJsonStr" should "be of type Either[Throwable, String]" in { + writeJsonStr("src/test/resources/sample.yaml", jsonString) shouldBe an[Either[Throwable, String]] } - "writer" should "be of type Either[Throwable, String]" in { - writer shouldBe an[Either[Throwable, String]] + "writeOrdersConfig" should "be of type String" in { + writeOrdersConfig("src/test/resources/sample2.yaml", myCaseClass) shouldBe an[String] } end YamlExampleSuite From 19d405c2a722a2a575c80b7a3afc59a0531647f1 Mon Sep 17 00:00:00 2001 From: kateu herbert Date: Fri, 29 Sep 2023 17:48:14 +0300 Subject: [PATCH 0005/1318] fixed formatting --- .../baeldung/circeYaml/YamlExampleSpec.scala | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/scala-libraries-6/src/test/scala-3/com/baeldung/circeYaml/YamlExampleSpec.scala b/scala-libraries-6/src/test/scala-3/com/baeldung/circeYaml/YamlExampleSpec.scala index ae06c1b4d..6f6e73d9a 100644 --- a/scala-libraries-6/src/test/scala-3/com/baeldung/circeYaml/YamlExampleSpec.scala +++ b/scala-libraries-6/src/test/scala-3/com/baeldung/circeYaml/YamlExampleSpec.scala @@ -8,9 +8,9 @@ import java.io.* import org.scalatest.prop.TableDrivenPropertyChecks class YamlExampleSuite - extends AnyFlatSpec - with Matchers - with TableDrivenPropertyChecks: + extends AnyFlatSpec + with Matchers + with TableDrivenPropertyChecks: val myServer = Server("localhost", 8080) val myOC = OrdersConfig("test", myServer, List("Http", "Grpc")) @@ -45,7 +45,7 @@ class YamlExampleSuite "ordersFileConfig" should "be of type Either[Throwable, OrdersConfig] " in { ordersFileConfig2 shouldBe an[ - Either[Throwable, OrdersConfig] + Either[Throwable, OrdersConfig] ] } @@ -56,7 +56,9 @@ class YamlExampleSuite } "fileWriter" should "be of type Either[Throwable, FileWriter]" in { - fileWriter("src/test/resources/sample.yaml") shouldBe an[Either[Throwable, FileWriter]] + fileWriter("src/test/resources/sample.yaml") shouldBe an[ + Either[Throwable, FileWriter] + ] } "jsonString" should "be of type String" in { @@ -64,11 +66,17 @@ class YamlExampleSuite } "writeJsonStr" should "be of type Either[Throwable, String]" in { - writeJsonStr("src/test/resources/sample.yaml", jsonString) shouldBe an[Either[Throwable, String]] + writeJsonStr( + "src/test/resources/sample.yaml", + jsonString + ) shouldBe an[Either[Throwable, String]] } "writeOrdersConfig" should "be of type String" in { - writeOrdersConfig("src/test/resources/sample2.yaml", myCaseClass) shouldBe an[String] + writeOrdersConfig( + "src/test/resources/sample2.yaml", + myCaseClass + ) shouldBe an[String] } end YamlExampleSuite From 9252a63cbd020407aed5ab520d146c22acc73e72 Mon Sep 17 00:00:00 2001 From: kateu herbert Date: Fri, 29 Sep 2023 19:28:54 +0300 Subject: [PATCH 0006/1318] reformatted files --- .../com/baeldung/circeYaml/YamlExample.scala | 16 ++++++++-------- .../com/baeldung/circeYaml/YamlExampleSpec.scala | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/scala-libraries-6/src/main/scala-3/com/baeldung/circeYaml/YamlExample.scala b/scala-libraries-6/src/main/scala-3/com/baeldung/circeYaml/YamlExample.scala index 43320cd5d..075770137 100644 --- a/scala-libraries-6/src/main/scala-3/com/baeldung/circeYaml/YamlExample.scala +++ b/scala-libraries-6/src/main/scala-3/com/baeldung/circeYaml/YamlExample.scala @@ -16,9 +16,9 @@ import io.circe.syntax.* object YamlExample: case class Server(host: String, port: Int) case class OrdersConfig( - name: String, - server: Server, - serverType: List[String] + name: String, + server: Server, + serverType: List[String] ) val ordersYamlConfig: String = @@ -35,7 +35,7 @@ object YamlExample: yaml.parser.parse(ordersYamlConfig) def processJson( - json: Either[ParsingFailure, Json] + json: Either[ParsingFailure, Json] ): Either[Error, OrdersConfig] = json .leftMap(err => err: Error) @@ -106,8 +106,8 @@ object YamlExample: yield writeYaml(jsnValue, fw, path) val myCaseClass = - OrdersConfig("Orders", Server("localhost", 8080), List("Http", "Grpc")) - + OrdersConfig("Orders", Server("localhost", 8080), List("Http", "Grpc")) + def writeOrdersConfig(path: String, oc: OrdersConfig): String = fileWriter(path) match case Right(fw) => writeYaml(oc.asJson, fw, path) @@ -152,5 +152,5 @@ def program = writeOrdersConfig("src/main/resources/sample2.yaml", myCaseClass) ) - /**sample2.yaml has been written - */ \ No newline at end of file + /** sample2.yaml has been written + */ diff --git a/scala-libraries-6/src/test/scala-3/com/baeldung/circeYaml/YamlExampleSpec.scala b/scala-libraries-6/src/test/scala-3/com/baeldung/circeYaml/YamlExampleSpec.scala index 6f6e73d9a..7cdfdd157 100644 --- a/scala-libraries-6/src/test/scala-3/com/baeldung/circeYaml/YamlExampleSpec.scala +++ b/scala-libraries-6/src/test/scala-3/com/baeldung/circeYaml/YamlExampleSpec.scala @@ -8,9 +8,9 @@ import java.io.* import org.scalatest.prop.TableDrivenPropertyChecks class YamlExampleSuite - extends AnyFlatSpec - with Matchers - with TableDrivenPropertyChecks: + extends AnyFlatSpec + with Matchers + with TableDrivenPropertyChecks: val myServer = Server("localhost", 8080) val myOC = OrdersConfig("test", myServer, List("Http", "Grpc")) From 093b08a07431416feb0f08aa1e485c6878f5721b Mon Sep 17 00:00:00 2001 From: Manolis Varvarigos Date: Sat, 30 Sep 2023 17:29:31 +0300 Subject: [PATCH 0007/1318] Minor review changes. --- .../scala/zio/httpapp/app/RecipeHttpApp.scala | 60 ++++++++++--------- 1 file changed, 33 insertions(+), 27 deletions(-) diff --git a/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/RecipeHttpApp.scala b/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/RecipeHttpApp.scala index e27a4e3c5..09ec14b2b 100644 --- a/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/RecipeHttpApp.scala +++ b/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/RecipeHttpApp.scala @@ -14,17 +14,12 @@ object RecipeHttpApp: private type RecipeEffect = ZIO[RecipeService, Throwable, Response] - val getHandler: PartialFunction[Request, RecipeEffect] = { - case Method.GET -> Root / RecipeHttpApp.appContext / id => - (for { - idLong <- ZIO.fromTry(Try(id.toLong)) - response <- ZIO - .serviceWithZIO[RecipeService](_.find(idLong)) - .map({ - case Some(recipe) => Response.json(recipe.toJson) - case None => Response.status(Status.NotFound) - }) - } yield response).orDie + private def jsonErrorResponse(error: String) = { + ZIO + .debug(s"Failed to parse the input: $error") + .as( + Response.text(error).withStatus(Status.BadRequest) + ) } val postHandler: PartialFunction[Request, RecipeEffect] = { @@ -32,12 +27,7 @@ object RecipeHttpApp: (for { u <- req.body.asString.map(_.fromJson[Recipe]) response <- u match { - case Left(e) => - ZIO - .debug(s"Failed to parse the input: $e") - .as( - Response.text(e).withStatus(Status.BadRequest) - ) + case Left(e) => jsonErrorResponse(e) case Right(recipe) => ZIO .serviceWithZIO[RecipeService](_.save(recipe)) @@ -46,17 +36,25 @@ object RecipeHttpApp: } yield response).orDie } + val getHandler: PartialFunction[Request, RecipeEffect] = { + case Method.GET -> Root / RecipeHttpApp.appContext / id => + (for { + idLong <- ZIO.fromTry(Try(id.toLong)) + response <- ZIO + .serviceWithZIO[RecipeService](_.find(idLong)) + .map({ + case Some(recipe) => Response.json(recipe.toJson) + case None => Response.status(Status.NotFound) + }) + } yield response).orDie + } + private val putHandler: PartialFunction[Request, RecipeEffect] = { case req @ Method.PUT -> Root / RecipeHttpApp.appContext => (for { u <- req.body.asString.map(_.fromJson[Recipe]) response <- u match { - case Left(e) => - ZIO - .debug(s"Failed to parse the input: $e") - .as( - Response.text(e).withStatus(Status.BadRequest) - ) + case Left(e) => jsonErrorResponse(e) case Right(recipe) => ZIO .serviceWithZIO[RecipeService](_.update(recipe)) @@ -82,7 +80,15 @@ object RecipeHttpApp: } def apply(): Http[RecipeService, Throwable, Request, Response] = - Http.collectZIO[Request] { getHandler } ++ - Http.collectZIO[Request] { postHandler } ++ - Http.collectZIO[Request] { putHandler } ++ - Http.collectZIO[Request] { deleteHandler } + Http.collectZIO[Request] { + postHandler + } ++ + Http.collectZIO[Request] { + getHandler + } ++ + Http.collectZIO[Request] { + putHandler + } ++ + Http.collectZIO[Request] { + deleteHandler + } From 6938d3a41d8444a96924ff04c844838fb168791b Mon Sep 17 00:00:00 2001 From: SergeiIonin Date: Fri, 6 Oct 2023 00:08:12 -0300 Subject: [PATCH 0008/1318] SCALA-608: add error handling in cats-effect --- build.sbt | 1 + .../scala/catseffects/ErrorHandling.scala | 24 ++ .../scala/catseffects/ErrorHandlingSpec.scala | 324 ++++++++++++++++++ 3 files changed, 349 insertions(+) create mode 100644 cats-effects/src/main/scala-2/com/baeldung/scala/catseffects/ErrorHandling.scala create mode 100644 cats-effects/src/test/scala/com/baeldung/scala/catseffects/ErrorHandlingSpec.scala diff --git a/build.sbt b/build.sbt index 07cd081d9..b74f41f6b 100644 --- a/build.sbt +++ b/build.sbt @@ -444,6 +444,7 @@ lazy val cats_effects = (project in file("cats-effects")) name := "cats-effects", libraryDependencies += catsEffect, libraryDependencies += "org.typelevel" %% "munit-cats-effect-3" % "1.0.7" % Test, + libraryDependencies ++= scalaTestDeps, libraryDependencies += "junit" % "junit" % "4.13.2" % Test ) diff --git a/cats-effects/src/main/scala-2/com/baeldung/scala/catseffects/ErrorHandling.scala b/cats-effects/src/main/scala-2/com/baeldung/scala/catseffects/ErrorHandling.scala new file mode 100644 index 000000000..89e9124ba --- /dev/null +++ b/cats-effects/src/main/scala-2/com/baeldung/scala/catseffects/ErrorHandling.scala @@ -0,0 +1,24 @@ +package com.baeldung.scala.catseffects + +import cats.syntax.applicative._ +import cats.{Applicative, ApplicativeError} + +import scala.util.{Failure, Success, Try} + +object ErrorHandling { + + trait Calculator[F[_]] { + def calculate(f: => Int): F[Int] + } + + class CalculatorImpl[F[_]: Applicative]()(implicit + m: ApplicativeError[F, Throwable] + ) extends Calculator[F] { + override def calculate(f: => Int): F[Int] = Try(f) match { + case Success(res) => res.pure[F] + case Failure(_) => + m.raiseError[Int](new RuntimeException("Calculation failed")) + } + } + +} diff --git a/cats-effects/src/test/scala/com/baeldung/scala/catseffects/ErrorHandlingSpec.scala b/cats-effects/src/test/scala/com/baeldung/scala/catseffects/ErrorHandlingSpec.scala new file mode 100644 index 000000000..9d0866f41 --- /dev/null +++ b/cats-effects/src/test/scala/com/baeldung/scala/catseffects/ErrorHandlingSpec.scala @@ -0,0 +1,324 @@ +package com.baeldung.scala.catseffects + +import cats.effect.IO +import cats.effect.unsafe.implicits.global +import cats.{Applicative, ApplicativeError, MonadError, MonadThrow} +import com.baeldung.scala.catseffects.ErrorHandling.{Calculator, CalculatorImpl} +import org.scalatest.matchers.should.Matchers +import org.scalatest.wordspec.AnyWordSpec + +import scala.util.Try +import scala.util.control.NoStackTrace; + +class ErrorHandlingSpec extends AnyWordSpec with Matchers { + + "Calculator" should { + "return left value using attempt in case of division by zero" in { + val calculator = new CalculatorImpl[IO]() + val res = calculator.calculate(5 / 0).attempt.unsafeRunSync() + res.isLeft shouldBe true + } + } + + import ErrorHandlingSpec._ + + "IO error handling built in methods" should { + import cats.syntax.monadError._ + "adaptError" in { + def calculate(f: => Int): IO[Int] = + IO(f).adaptError { case _: ArithmeticException => + new RuntimeException("Calculation failed") + } + + val res = calculate(5 / 0) + res + .handleError(e => e.getMessage) + .unsafeRunSync() shouldBe "Calculation failed" + } + + "recover from the errors" in { + def calculate(f: => Int): IO[Int] = { + IO(f).recover { + case _: ArithmeticException => -1 + case _: NumberFormatException => -2 + } + } + + val res_0 = calculate(5 / 0) + res_0.unsafeRunSync() shouldBe -1 + + val res_1 = calculate("5 * 3".toInt / 1) + res_1.unsafeRunSync() shouldBe -2 + + val res_2 = calculate(15 / 1) + res_2.unsafeRunSync() shouldBe 15 + } + + "execute some actions onError" in { + var status = 0 + def calculate(f: => Int): IO[Int] = + IO(f) + .onError { + case _: ArithmeticException => IO { status = -1 } + case _: NumberFormatException => IO { status = -2 } + } + .handleError { + case _: ArithmeticException => -1 + case _: NumberFormatException => -2 + } + calculate(5 / 0).unsafeRunSync() shouldBe -1 + status shouldBe -1 + + calculate("5 * 3".toInt).unsafeRunSync() shouldBe -2 + status shouldBe -2 + } + "execute action in the middle of error handling" in { + var errorCounter = 0 + def calculateAndExecuteAction(f: => Int, action: => IO[Unit]): IO[Int] = + IO(f).handleErrorWith { + case _: ArithmeticException => action *> IO.pure(-1) + case _: NumberFormatException => action *> IO.pure(-2) + } + + val res_0 = calculateAndExecuteAction(5 / 0, IO { errorCounter += 1 }) + res_0.unsafeRunSync() shouldBe -1 + errorCounter shouldBe 1 + + val res_1 = + calculateAndExecuteAction("n".toInt / 1, IO { errorCounter += 1 }) + res_1.unsafeRunSync() shouldBe -2 + errorCounter shouldBe 2 + } + } + + "Error handling for Either with ApplicativeError" should { + import cats.syntax.applicative._ + import cats.syntax.applicativeError._ + + "handle error if it occurred right away" in { + type ErrorOr[A] = Either[Throwable, A] + val calculator = new CalculatorImplAE[ErrorOr] + val res = calculator.calculate(5 / 0).handleErrorWith { + case _: ArithmeticException => (-1).pure[ErrorOr] + case _: NumberFormatException => (-2).pure[ErrorOr] + } + res shouldBe Right(-1) + } + + "if the error handling is suspended, then the error handling fails" in { + type ErrorOr[A] = Either[Throwable, A] + val calculator = new CalculatorImplAE[ErrorOr] + val failed = calculator.calculate(5 / 0) + failed.handleErrorWith { + case _: ArithmeticException => (-1).pure[ErrorOr] + case _: NumberFormatException => (-2).pure[ErrorOr] + } + + val recovered = calculator.calculate(5 / 0).handleErrorWith { + case _: ArithmeticException => (-1).pure[ErrorOr] + case _: NumberFormatException => (-2).pure[ErrorOr] + } + + failed.isLeft shouldBe true + recovered shouldBe Right(-1) + } + } + + "Error handling for Either with MonadError" should { + import cats.syntax.applicative._ + import cats.syntax.applicativeError._ + import cats.syntax.monadError._ + + "raise error if the predicate fails via ensure" in { + type ErrorOr[A] = Either[Throwable, A] + val calculator = new CalculatorImplME[ErrorOr] + + val resValid = calculator + .calculate(5 / 1) + .ensure(new RuntimeException("Bad result"))(_ > 0) + val resInvalid = calculator + .calculate(-1) + .ensure(new RuntimeException("Bad result"))(_ > 0) + + resValid shouldBe Right(5) + resInvalid.isLeft shouldBe true + } + + "raise error if the predicate fails via flatMap" in { + type ErrorOr[A] = Either[Throwable, A] + val calculator = new CalculatorImplME[ErrorOr] + + val resValid = calculator.calculate(5 / 1).flatMap { + case x if x > 0 => x.pure[ErrorOr] + case _ => new RuntimeException("Bad result").raiseError[ErrorOr, Int] + } + val resInvalid = calculator + .calculate(-1) + .ensure(new RuntimeException("Bad result"))(_ > 0) + + resValid shouldBe Right(5) + resInvalid.isLeft shouldBe true + } + + "rethrow the error if it is inside the Either" in { + val calculator = new CalculatorImplME[IO] + def calculateSafely(f: => Int): IO[Int] = + calculator.calculate(f).attempt.rethrow.handleErrorWith { + case _: ArithmeticException => IO.pure(-1) + case _: NumberFormatException => IO.pure(-2) + } + + val resInvalid = calculateSafely(5 / 0) + val resValid = calculateSafely(5 / 1) + + resInvalid.unsafeRunSync() shouldBe -1 + resValid.unsafeRunSync() shouldBe 5 + } + + "rethrow the error" in { + import cats.syntax.applicative._ + import cats.syntax.applicativeError._ + def calculate[F[_]: Applicative](f: => Int)(implicit + ae: ApplicativeError[F, Throwable] + ): F[Either[Throwable, Int]] = + ae.fromTry(Try(f)).attempt + + def calculateSafely[F[_]](f: => Int)(implicit me: MonadThrow[F]): F[Int] = + calculate(f).rethrow.handleErrorWith { + case _: ArithmeticException => (-1).pure[F] + case _: NumberFormatException => (-2).pure[F] + } + + val resInvalid = calculateSafely[IO](5 / 0) + val resValid = calculateSafely[IO](5 / 1) + + resInvalid.unsafeRunSync() shouldBe -1 + resValid.unsafeRunSync() shouldBe 5 + } + + "attemptTap returns the error if it occurs and returns the value otherwise" in { + import cats.syntax.applicative._ + def calculate[F[_]: Applicative](f: => Int)(implicit + ae: ApplicativeError[F, Throwable] + ): F[Int] = + ae.fromTry(Try(f)) + + def calculateOrRaise[F[_]](f: => Int)(implicit + me: MonadThrow[F] + ): F[Int] = + calculate(f).attemptTap { + case Left(_) => + new RuntimeException("Calculation failed").raiseError[F, Unit] + case Right(_) => ().pure[F] + } + + val resInvalid = calculateOrRaise[IO](5 / 0).attempt + val resValid = calculateOrRaise[IO](5 / 1) + + resInvalid.unsafeRunSync().isLeft shouldBe true + resValid.unsafeRunSync() shouldBe 5 + } + + "if recover throws the error, then this error will be returned" in { + def calculate[F[_]: Applicative](f: => Int)(implicit + ae: ApplicativeError[F, Throwable] + ): F[Int] = + ae.fromTry(Try(f)) + + def recover[F[_]]()(implicit ae: ApplicativeError[F, Throwable]): F[Int] = + new RuntimeException("Calculation failed").raiseError[F, Int] + + def calculateOrRaise[F[_]](f: => Int)(implicit + me: MonadThrow[F] + ): F[Int] = + calculate(f).recoverWith { + case _: ArithmeticException => recover() + case _: NumberFormatException => recover() + } + + val resInvalid = calculateOrRaise[IO](5 / 0).handleErrorWith { + case _: RuntimeException => IO.pure(-1) + case _ => IO.pure(-2) + } + val resValid = calculateOrRaise[IO](5 / 1) + + resInvalid.unsafeRunSync() shouldBe -1 + resValid.unsafeRunSync() shouldBe 5 + } + + } + + "Domain errors " should { + "be thrown if there's an implicit instance of MonadError[F, DomainError]" in { + object ErrorHandlingSpec { + import cats.syntax.applicative._ + + sealed trait DomainError extends NoStackTrace + case object NotFound extends DomainError + case object InvalidInput extends DomainError + + trait RaiseCustomError[F[_]] { + def raiseCustomError[A](e: DomainError): F[A] + } + + object RaiseCustomError { + implicit def instance[F[_]](implicit + M: MonadError[F, Throwable] + ): RaiseCustomError[F] = + new RaiseCustomError[F] { + def raiseCustomError[A](e: DomainError): F[A] = M.raiseError(e) + } + } + + def serve[F[_]: Applicative](inOpt: Option[String])(implicit + R: RaiseCustomError[F] + ): F[String] = + inOpt match { + case None => R.raiseCustomError(NotFound) + case Some(in) if in.isEmpty => R.raiseCustomError(InvalidInput) + case Some(in) => in.pure[F] + } + } + import ErrorHandlingSpec._ + val resNone = serve[IO](None).handleErrorWith { + case NotFound => IO.pure("Not found") + case InvalidInput => IO.pure("Invalid input") + } + val resEmpty = serve[IO](Some("")).handleErrorWith { + case NotFound => IO.pure("Not found") + case InvalidInput => IO.pure("Invalid input") + } + + implicit val i = implicitly[MonadError[IO, Throwable]] + + resNone.unsafeRunSync() shouldBe "Not found" + resEmpty.unsafeRunSync() shouldBe "Invalid input" + } + } + +} + +object ErrorHandlingSpec { + + class CalculatorImplAE[F[_]](implicit ae: ApplicativeError[F, Throwable]) + extends Calculator[F] { + override def calculate(f: => Int): F[Int] = ae.fromTry(Try(f)) + } + + class CalculatorImplME[F[_]](implicit me: MonadError[F, Throwable]) + extends Calculator[F] { + import cats.syntax.applicative._ + import cats.syntax.applicativeError._ + import cats.syntax.functor._ + + override def calculate(f: => Int): F[Int] = { + me.fromTry(Try(f)).handleErrorWith { + case e: ArithmeticException => + println(e.getMessage).pure[F].map(_ => -1) + case e: NumberFormatException => + println(e.getMessage).pure[F].map(_ => -2) + } + } + } + +} From 46414a9a7ce752268b6a56632eef264fdb2e30bb Mon Sep 17 00:00:00 2001 From: SergeiIonin Date: Sun, 8 Oct 2023 21:16:23 -0300 Subject: [PATCH 0009/1318] SCALA-608: bump cats-effect to 3.5.2 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index b74f41f6b..1b79a87c7 100644 --- a/build.sbt +++ b/build.sbt @@ -6,7 +6,7 @@ ThisBuild / organization := "com.baeldung" ThisBuild / organizationName := "core-scala" val jUnitInterface = "com.github.sbt" % "junit-interface" % "0.13.3" % "test" -val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.1" +val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.2" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.1" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV val logback = "ch.qos.logback" % "logback-classic" % "1.3.8" From b9b3d36bfea449e85b21bcbf3054995dc2bef461 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 14 Oct 2023 06:41:23 +0000 Subject: [PATCH 0010/1318] Update jackson-databind from 2.15.2 to 2.15.3 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d2aeb0b98..5692690c8 100644 --- a/build.sbt +++ b/build.sbt @@ -381,7 +381,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) val spireVersion = "0.18.0" val kafkaVersion = "7.5.0-ce" val pureconfigVersion = "0.17.4" -val jackSonVersion = "2.15.2" +val jackSonVersion = "2.15.3" val log4jApiScalaVersion = "12.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.1" From edfb2c1013cb367b33c0d442eaee4d780b379209 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 14 Oct 2023 06:41:38 +0000 Subject: [PATCH 0011/1318] Update jackson-datatype-jsr310 from 2.15.2 to 2.15.3 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d2aeb0b98..5692690c8 100644 --- a/build.sbt +++ b/build.sbt @@ -381,7 +381,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) val spireVersion = "0.18.0" val kafkaVersion = "7.5.0-ce" val pureconfigVersion = "0.17.4" -val jackSonVersion = "2.15.2" +val jackSonVersion = "2.15.3" val log4jApiScalaVersion = "12.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.1" From 3f45a360549d24e04c2246c27388a8478955ad18 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 14 Oct 2023 06:41:50 +0000 Subject: [PATCH 0012/1318] Update jackson-module-scala from 2.15.2 to 2.15.3 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d2aeb0b98..5692690c8 100644 --- a/build.sbt +++ b/build.sbt @@ -381,7 +381,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) val spireVersion = "0.18.0" val kafkaVersion = "7.5.0-ce" val pureconfigVersion = "0.17.4" -val jackSonVersion = "2.15.2" +val jackSonVersion = "2.15.3" val log4jApiScalaVersion = "12.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.1" From cd809a1a5e9c0536ab5ffe8c7bf966a8a866ce77 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 14 Oct 2023 06:42:02 +0000 Subject: [PATCH 0013/1318] Update elastic4s-client-esjava, ... from 8.9.3 to 8.9.4 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d2aeb0b98..a5980c992 100644 --- a/build.sbt +++ b/build.sbt @@ -258,7 +258,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) val circeVersion = "0.14.6" val monixVersion = "3.4.1" -val elastic4sVersion = "8.9.3" +val elastic4sVersion = "8.9.4" val sparkVersion = "3.5.0" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion From 022efd8e6a1f769d4357be3db3d988bc2e27153d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 14 Oct 2023 06:42:16 +0000 Subject: [PATCH 0014/1318] Update kafka-avro-serializer from 6.2.11 to 6.2.12 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d2aeb0b98..d99685512 100644 --- a/build.sbt +++ b/build.sbt @@ -385,7 +385,7 @@ val jackSonVersion = "2.15.2" val log4jApiScalaVersion = "12.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.1" -val kafkaAvroSerializer = "6.2.11" +val kafkaAvroSerializer = "6.2.12" lazy val scala_libraries_5 = (project in file("scala-libraries-5")) .settings( From 5fb4831ef0ca85248a7ae4f6c0132caec0594bd7 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 14 Oct 2023 06:42:34 +0000 Subject: [PATCH 0015/1318] Update kafka-clients from 7.5.0-ce to 7.5.1-ce --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d2aeb0b98..ade5bd31d 100644 --- a/build.sbt +++ b/build.sbt @@ -379,7 +379,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) ) val spireVersion = "0.18.0" -val kafkaVersion = "7.5.0-ce" +val kafkaVersion = "7.5.1-ce" val pureconfigVersion = "0.17.4" val jackSonVersion = "2.15.2" val log4jApiScalaVersion = "12.0" From a49362f7efddd0cb660d46f653eaab2c45227029 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 14 Oct 2023 06:42:41 +0000 Subject: [PATCH 0016/1318] Update log4j-api-scala from 12.0 to 13.0.0 --- build.sbt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index d2aeb0b98..5864dd7d8 100644 --- a/build.sbt +++ b/build.sbt @@ -325,7 +325,7 @@ lazy val scala_libraries_3 = (project in file("scala-libraries-3")) libraryDependencies += scalaMock, libraryDependencies += "com.softwaremill.retry" %% "retry" % "0.3.6", libraryDependencies ++= Seq( - "org.apache.logging.log4j" %% "log4j-api-scala" % "12.0", + "org.apache.logging.log4j" %% "log4j-api-scala" % "13.0.0", "org.apache.logging.log4j" % "log4j-core" % "2.20.0" % Runtime ), libraryDependencies += "com.lihaoyi" %% "os-lib" % osLibVersion @@ -336,7 +336,7 @@ lazy val scala_libraries_os = (project in file("scala-libraries-os")) name := "scala-libraries", libraryDependencies ++= scalaTestDeps, libraryDependencies ++= Seq( - "org.apache.logging.log4j" %% "log4j-api-scala" % "12.0", + "org.apache.logging.log4j" %% "log4j-api-scala" % "13.0.0", "org.apache.logging.log4j" % "log4j-core" % "2.20.0" % Runtime ), libraryDependencies += "com.lihaoyi" %% "os-lib" % osLibVersion @@ -382,7 +382,7 @@ val spireVersion = "0.18.0" val kafkaVersion = "7.5.0-ce" val pureconfigVersion = "0.17.4" val jackSonVersion = "2.15.2" -val log4jApiScalaVersion = "12.0" +val log4jApiScalaVersion = "13.0.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.1" val kafkaAvroSerializer = "6.2.11" From fc7b7679f8cef79b5f8b52150ca911f84485d177 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 14 Oct 2023 06:42:53 +0000 Subject: [PATCH 0017/1318] Update jetty-webapp from 9.4.52.v20230823 to 9.4.53.v20231009 --- scalatra/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scalatra/build.sbt b/scalatra/build.sbt index a0636b504..e7bec1f93 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -9,7 +9,7 @@ libraryDependencies ++= Seq( "org.scalatra" %% "scalatra" % ScalatraVersion, "org.scalatra" %% "scalatra-scalatest" % ScalatraVersion % "test", "ch.qos.logback" % "logback-classic" % "1.2.3" % "runtime", - "org.eclipse.jetty" % "jetty-webapp" % "9.4.52.v20230823" % "container", + "org.eclipse.jetty" % "jetty-webapp" % "9.4.53.v20231009" % "container", "javax.servlet" % "javax.servlet-api" % "4.0.1" % "provided", "org.scalatra" %% "scalatra-auth" % ScalatraVersion, "org.scalatra" %% "scalatra-json" % "2.8.4", From cb39d47c6d8de3ac73795f9d3e3ee7cbcb1235dc Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 14 Oct 2023 06:43:11 +0000 Subject: [PATCH 0018/1318] Update mongo-scala-driver from 4.10.2 to 4.11.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d2aeb0b98..df48fc6ef 100644 --- a/build.sbt +++ b/build.sbt @@ -173,7 +173,7 @@ lazy val scala_akka_dependencies: Seq[ModuleID] = Seq( "com.typesafe.akka" %% "akka-actor-testkit-typed" % AkkaVersion % Test, "com.lightbend.akka" %% "akka-stream-alpakka-mongodb" % "5.0.0", "com.typesafe.akka" %% "akka-stream" % AkkaVersion, - "org.mongodb.scala" %% "mongo-scala-driver" % "4.10.2", + "org.mongodb.scala" %% "mongo-scala-driver" % "4.11.0", "com.lightbend.akka" %% "akka-stream-alpakka-file" % "5.0.0", jUnitInterface, embeddedMongo % Test, From d6b8580beff599eff8180a101822d5cc9bf29deb Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 14 Oct 2023 06:43:26 +0000 Subject: [PATCH 0019/1318] Update skunk-core from 0.6.0 to 0.6.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d2aeb0b98..7f893a40c 100644 --- a/build.sbt +++ b/build.sbt @@ -354,7 +354,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) libraryDependencies ++= Seq( "org.scala-lang.modules" %% "scala-async" % "1.0.1", scalaReflection % Provided, - "org.tpolecat" %% "skunk-core" % "0.6.0", + "org.tpolecat" %% "skunk-core" % "0.6.1", logback, "com.typesafe.scala-logging" %% "scala-logging" % "3.9.5", "org.typelevel" %% "cats-core" % "2.10.0" From 8c1b0128e63dcdb102b4ff8b8d714d2c19f6c62f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 14 Oct 2023 06:43:37 +0000 Subject: [PATCH 0020/1318] Update s3 from 2.20.158 to 2.20.162 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d2aeb0b98..d25cd77cf 100644 --- a/build.sbt +++ b/build.sbt @@ -365,7 +365,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "org.testcontainers" % "pulsar" % "1.19.1" % IntegrationTest ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "s3" % "2.20.158", + "software.amazon.awssdk" % "s3" % "2.20.162", "com.amazonaws" % "aws-java-sdk-s3" % "1.12.556" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.0" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.0" % IntegrationTest From f39cc220d45e59333199bb0ae3f49ee636f61810 Mon Sep 17 00:00:00 2001 From: Bruno Unna Date: Sat, 14 Oct 2023 20:02:47 +0100 Subject: [PATCH 0021/1318] Ascertain covariance of IArray with cats and dogs --- .../immutablearrays/ImmutableArraySpec.scala | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 scala3-lang-3/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala diff --git a/scala3-lang-3/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala b/scala3-lang-3/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala new file mode 100644 index 000000000..2886b3e7a --- /dev/null +++ b/scala3-lang-3/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala @@ -0,0 +1,23 @@ +package com.baeldung.scala.immutablearrays + +import org.scalatest.wordspec.AnyWordSpec + +class ImmutableArraySpec extends AnyWordSpec { + private trait Pet(name: String) + private case class Dog(name: String) extends Pet(name = name) + private case class Cat(name: String) extends Pet(name = name) + + private val dogs: IArray[Dog] = IArray(Dog("champ"), Dog("barky")) + private val cats: IArray[Cat] = IArray(Cat("overlord"), Cat("silky")) + + "dogs and cats" should { + "get along together" in { + val myPets: IArray[Pet] = cats ++ dogs + assertResult(4)(myPets.length) + assert(myPets.contains(Dog("barky"))) + assert(myPets.contains(Cat("silky"))) + assert(myPets.contains(Dog("champ"))) + assert(myPets.contains(Cat("overlord"))) + } + } +} From 777205a3b2b4052cf8740e0cccaf547b83a28cc4 Mon Sep 17 00:00:00 2001 From: Bruno Unna Date: Sat, 14 Oct 2023 20:26:35 +0100 Subject: [PATCH 0022/1318] Use scala version 3 for scala 3 projects WARNING: this type of change is frowned upon by baeldung folks, but I needed it to compile my test. --- build.sbt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/build.sbt b/build.sbt index d2aeb0b98..5385a216a 100644 --- a/build.sbt +++ b/build.sbt @@ -424,14 +424,17 @@ lazy val scala_design_patterns = (project in file("scala-design-patterns")) ) lazy val scala3_lang = (project in file("scala3-lang")).settings( + scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps ) lazy val scala3_lang_2 = (project in file("scala3-lang-2")).settings( + scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps ) lazy val scala3_lang_3 = (project in file("scala3-lang-3")).settings( + scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps ) From 8f707bff512966632f97f43b1a99b881acb00a31 Mon Sep 17 00:00:00 2001 From: edizor <113095366+edizor@users.noreply.github.com> Date: Fri, 20 Oct 2023 22:16:52 +0800 Subject: [PATCH 0023/1318] Create README.md [skip ci] --- scala3-lang-3/README.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 scala3-lang-3/README.md diff --git a/scala3-lang-3/README.md b/scala3-lang-3/README.md new file mode 100644 index 000000000..03f77e522 --- /dev/null +++ b/scala3-lang-3/README.md @@ -0,0 +1,2 @@ +## Relevant Articles +- [Different Ways to Filter Elements From a Scala Collection](https://www.baeldung.com/scala/filter-collections) From 3cf53f8453553d79e544d63e4db8cdf52027d066 Mon Sep 17 00:00:00 2001 From: edizor <113095366+edizor@users.noreply.github.com> Date: Fri, 20 Oct 2023 22:21:45 +0800 Subject: [PATCH 0024/1318] Update README.md [skip ci] --- scala-test/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-test/README.md b/scala-test/README.md index c355d8d7f..ca29c281f 100644 --- a/scala-test/README.md +++ b/scala-test/README.md @@ -11,3 +11,4 @@ This module contains articles about the ScalaTest framework in Scala. - [Using the ScalaTest Runner](https://www.baeldung.com/scala/scalatest-runner) - [How to Check If Code Compiles in ScalaTest](https://www.baeldung.com/scala/scalatest-check-compilation) - [Case-Insensitive String Comparison Scala](https://www.baeldung.com/scala/case-insensitive-comparison) +- [ScalaTest Assertions: A Comprehensive Guide](https://www.baeldung.com/scala/scalatest-assertions) From 3c9523bdd4d9e7573b64e3324e4c07f089fdb2bd Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 21 Oct 2023 10:55:31 +0200 Subject: [PATCH 0025/1318] Reused the scala version from the constant file instead of using string. Also updated scala version to latest available version --- build.sbt | 6 ++++-- project/ScalaVersions.scala | 4 ++-- scala3-lang-2/build.sbt | 4 ---- scala3-lang-3/build.sbt | 9 --------- scala3-lang/build.sbt | 3 --- 5 files changed, 6 insertions(+), 20 deletions(-) delete mode 100644 scala3-lang-3/build.sbt delete mode 100644 scala3-lang/build.sbt diff --git a/build.sbt b/build.sbt index d2aeb0b98..f9c6d5c77 100644 --- a/build.sbt +++ b/build.sbt @@ -424,11 +424,13 @@ lazy val scala_design_patterns = (project in file("scala-design-patterns")) ) lazy val scala3_lang = (project in file("scala3-lang")).settings( - libraryDependencies ++= scalaTestDeps + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version ) lazy val scala3_lang_2 = (project in file("scala3-lang-2")).settings( - libraryDependencies ++= scalaTestDeps + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version ) lazy val scala3_lang_3 = (project in file("scala3-lang-3")).settings( diff --git a/project/ScalaVersions.scala b/project/ScalaVersions.scala index 3ec8a49fd..82160cf79 100644 --- a/project/ScalaVersions.scala +++ b/project/ScalaVersions.scala @@ -1,6 +1,6 @@ object ScalaVersions { - val scala2Version = "2.13.11" - val scala3Version = "3.3.0" + val scala2Version = "2.13.12" + val scala3Version = "3.3.1" @deprecated( "Use Scala 2.13 or Scala 3. Don't use 2.12 unless it is a specific feature in 2.12." ) diff --git a/scala3-lang-2/build.sbt b/scala3-lang-2/build.sbt index b955a8259..57f3ce3af 100644 --- a/scala3-lang-2/build.sbt +++ b/scala3-lang-2/build.sbt @@ -1,7 +1,3 @@ -val scala3Version = "3.2.2" - -scalaVersion := scala3Version - /* extra runtime checks to find ill-formed trees or types as soon as they are created * and check compiler invariants for tree well-formedness */ diff --git a/scala3-lang-3/build.sbt b/scala3-lang-3/build.sbt deleted file mode 100644 index b955a8259..000000000 --- a/scala3-lang-3/build.sbt +++ /dev/null @@ -1,9 +0,0 @@ -val scala3Version = "3.2.2" - -scalaVersion := scala3Version - -/* extra runtime checks to find ill-formed trees or types as soon as they are created - * and check compiler invariants for tree well-formedness - */ -//scalacOptions += "-Xcheck-macros" -//scalacOptions += "-Ycheck:all" diff --git a/scala3-lang/build.sbt b/scala3-lang/build.sbt deleted file mode 100644 index ebe44f530..000000000 --- a/scala3-lang/build.sbt +++ /dev/null @@ -1,3 +0,0 @@ -val scala3Version = "3.2.2" - -scalaVersion := scala3Version From 54f2983437df604d2f03cf589ad1933fd3433b15 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 21 Oct 2023 11:03:15 +0200 Subject: [PATCH 0026/1318] Added scala 3 version to one more module --- build.sbt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index f9c6d5c77..eff6fb2ec 100644 --- a/build.sbt +++ b/build.sbt @@ -434,7 +434,8 @@ lazy val scala3_lang_2 = (project in file("scala3-lang-2")).settings( ) lazy val scala3_lang_3 = (project in file("scala3-lang-3")).settings( - libraryDependencies ++= scalaTestDeps + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version ) lazy val cats_effects = (project in file("cats-effects")) From c3ade278bc75453ba5cf6d77cda46f22d797c953 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 23 Oct 2023 00:15:17 +0000 Subject: [PATCH 0027/1318] Revert commit(s) a49362f7 --- build.sbt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index 5864dd7d8..d2aeb0b98 100644 --- a/build.sbt +++ b/build.sbt @@ -325,7 +325,7 @@ lazy val scala_libraries_3 = (project in file("scala-libraries-3")) libraryDependencies += scalaMock, libraryDependencies += "com.softwaremill.retry" %% "retry" % "0.3.6", libraryDependencies ++= Seq( - "org.apache.logging.log4j" %% "log4j-api-scala" % "13.0.0", + "org.apache.logging.log4j" %% "log4j-api-scala" % "12.0", "org.apache.logging.log4j" % "log4j-core" % "2.20.0" % Runtime ), libraryDependencies += "com.lihaoyi" %% "os-lib" % osLibVersion @@ -336,7 +336,7 @@ lazy val scala_libraries_os = (project in file("scala-libraries-os")) name := "scala-libraries", libraryDependencies ++= scalaTestDeps, libraryDependencies ++= Seq( - "org.apache.logging.log4j" %% "log4j-api-scala" % "13.0.0", + "org.apache.logging.log4j" %% "log4j-api-scala" % "12.0", "org.apache.logging.log4j" % "log4j-core" % "2.20.0" % Runtime ), libraryDependencies += "com.lihaoyi" %% "os-lib" % osLibVersion @@ -382,7 +382,7 @@ val spireVersion = "0.18.0" val kafkaVersion = "7.5.0-ce" val pureconfigVersion = "0.17.4" val jackSonVersion = "2.15.2" -val log4jApiScalaVersion = "13.0.0" +val log4jApiScalaVersion = "12.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.1" val kafkaAvroSerializer = "6.2.11" From cc36f25d175b5a047621f04f01ca2e9f27edf035 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 23 Oct 2023 00:15:22 +0000 Subject: [PATCH 0028/1318] Update log4j-api-scala from 12.0 to 13.0.0 --- build.sbt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index 3bb36d167..179da2c33 100644 --- a/build.sbt +++ b/build.sbt @@ -325,7 +325,7 @@ lazy val scala_libraries_3 = (project in file("scala-libraries-3")) libraryDependencies += scalaMock, libraryDependencies += "com.softwaremill.retry" %% "retry" % "0.3.6", libraryDependencies ++= Seq( - "org.apache.logging.log4j" %% "log4j-api-scala" % "12.0", + "org.apache.logging.log4j" %% "log4j-api-scala" % "13.0.0", "org.apache.logging.log4j" % "log4j-core" % "2.20.0" % Runtime ), libraryDependencies += "com.lihaoyi" %% "os-lib" % osLibVersion @@ -336,7 +336,7 @@ lazy val scala_libraries_os = (project in file("scala-libraries-os")) name := "scala-libraries", libraryDependencies ++= scalaTestDeps, libraryDependencies ++= Seq( - "org.apache.logging.log4j" %% "log4j-api-scala" % "12.0", + "org.apache.logging.log4j" %% "log4j-api-scala" % "13.0.0", "org.apache.logging.log4j" % "log4j-core" % "2.20.0" % Runtime ), libraryDependencies += "com.lihaoyi" %% "os-lib" % osLibVersion @@ -382,7 +382,7 @@ val spireVersion = "0.18.0" val kafkaVersion = "7.5.1-ce" val pureconfigVersion = "0.17.4" val jackSonVersion = "2.15.3" -val log4jApiScalaVersion = "12.0" +val log4jApiScalaVersion = "13.0.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.1" val kafkaAvroSerializer = "6.2.12" From 04c9c0e0853f8c9d991d64d9704be8029fd9183b Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Mon, 23 Oct 2023 20:20:27 +0200 Subject: [PATCH 0029/1318] Auto delete branch after merge using mergify --- .mergify.yml | 1 + .scala-steward.conf | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.mergify.yml b/.mergify.yml index 4bf08ec1d..bc7f2be6e 100644 --- a/.mergify.yml +++ b/.mergify.yml @@ -13,3 +13,4 @@ pull_request_rules: actions: merge: method: merge + delete_head_branch: diff --git a/.scala-steward.conf b/.scala-steward.conf index 6e8fc39a1..8a2b3385f 100644 --- a/.scala-steward.conf +++ b/.scala-steward.conf @@ -25,7 +25,7 @@ # Default: @asap # #pullRequests.frequency = "0 0 ? * 3" # every thursday on midnight -pullRequests.frequency = "20 days" +pullRequests.frequency = "7 days" # The dependencies which match the given version pattern are updated. # Dependencies that are not listed will be updated. From 5462d08aceb5ed8f7ea15a7a9d2e31843c853467 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 25 Oct 2023 00:14:42 +0000 Subject: [PATCH 0030/1318] Update aws-java-sdk-s3 from 1.12.566 to 1.12.573 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index fee6f6dcf..ed62609f8 100644 --- a/build.sbt +++ b/build.sbt @@ -366,7 +366,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) ), libraryDependencies ++= Seq( "software.amazon.awssdk" % "s3" % "2.20.162", - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.566" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.573" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.0" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.0" % IntegrationTest ), From 5884cbae970b462be8c8c1218106e77cdfe3a0e2 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 25 Oct 2023 00:14:55 +0000 Subject: [PATCH 0031/1318] Update typesafe:config from 1.4.2 to 1.4.3 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index fee6f6dcf..61cff384b 100644 --- a/build.sbt +++ b/build.sbt @@ -319,7 +319,7 @@ lazy val scala_libraries_3 = (project in file("scala-libraries-3")) "com.beachape" %% "enumeratum" % "1.7.3", "com.github.pureconfig" %% "pureconfig" % "0.17.4", "com.github.pureconfig" %% "pureconfig-enumeratum" % "0.17.4", - "com.typesafe" % "config" % "1.4.2", + "com.typesafe" % "config" % "1.4.3", "org.scalameta" %% "munit" % "0.7.29" % Test ), libraryDependencies += scalaMock, From 7255087f9be55611677623732676df0fe9f505c1 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 25 Oct 2023 00:15:39 +0000 Subject: [PATCH 0032/1318] Update log4j-core from 2.20.0 to 2.21.1 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index fee6f6dcf..5de25852f 100644 --- a/build.sbt +++ b/build.sbt @@ -326,7 +326,7 @@ lazy val scala_libraries_3 = (project in file("scala-libraries-3")) libraryDependencies += "com.softwaremill.retry" %% "retry" % "0.3.6", libraryDependencies ++= Seq( "org.apache.logging.log4j" %% "log4j-api-scala" % "13.0.0", - "org.apache.logging.log4j" % "log4j-core" % "2.20.0" % Runtime + "org.apache.logging.log4j" % "log4j-core" % "2.21.1" % Runtime ), libraryDependencies += "com.lihaoyi" %% "os-lib" % osLibVersion ) @@ -337,7 +337,7 @@ lazy val scala_libraries_os = (project in file("scala-libraries-os")) libraryDependencies ++= scalaTestDeps, libraryDependencies ++= Seq( "org.apache.logging.log4j" %% "log4j-api-scala" % "13.0.0", - "org.apache.logging.log4j" % "log4j-core" % "2.20.0" % Runtime + "org.apache.logging.log4j" % "log4j-core" % "2.21.1" % Runtime ), libraryDependencies += "com.lihaoyi" %% "os-lib" % osLibVersion ) From f9108928a39cbed9b023a12a7798ec85c49143f1 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 25 Oct 2023 00:16:46 +0000 Subject: [PATCH 0033/1318] Update s3 from 2.20.162 to 2.21.7 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index fee6f6dcf..2d2839776 100644 --- a/build.sbt +++ b/build.sbt @@ -365,7 +365,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "org.testcontainers" % "pulsar" % "1.19.1" % IntegrationTest ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "s3" % "2.20.162", + "software.amazon.awssdk" % "s3" % "2.21.7", "com.amazonaws" % "aws-java-sdk-s3" % "1.12.566" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.0" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.0" % IntegrationTest From a6e5b8cda65a14b5e79531400c9cd4453344115c Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 25 Oct 2023 07:12:17 +0200 Subject: [PATCH 0034/1318] UPgraded mockito and fixed date test in jvm 11 --- play-scala/caching-in-play/build.sbt | 2 +- .../src/test/scala-2/com/baeldung/date/DateParserSpec.scala | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/play-scala/caching-in-play/build.sbt b/play-scala/caching-in-play/build.sbt index 0cae60375..073fcd4e8 100644 --- a/play-scala/caching-in-play/build.sbt +++ b/play-scala/caching-in-play/build.sbt @@ -11,6 +11,6 @@ libraryDependencies += guice libraryDependencies += caffeine libraryDependencies += ws libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "5.0.0" % Test -libraryDependencies += "org.mockito" % "mockito-core" % "3.12.4" % Test +libraryDependencies += "org.mockito" % "mockito-core" % "5.6.0" % Test PlayKeys.devSettings += "play.server.http.port" -> "9000" diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/date/DateParserSpec.scala b/scala-libraries-2/src/test/scala-2/com/baeldung/date/DateParserSpec.scala index c3ca11b0c..0e9d52494 100644 --- a/scala-libraries-2/src/test/scala-2/com/baeldung/date/DateParserSpec.scala +++ b/scala-libraries-2/src/test/scala-2/com/baeldung/date/DateParserSpec.scala @@ -53,13 +53,15 @@ class DateParserSpec extends AnyWordSpec with Matchers { "a library-based parser" should { "retrieve date elements when a complex date/time string is passed" in { val attemptedParse = - Try(ZonedDateTime.parse("2022-02-14T20:30:00.00Z[Europe/Paris]")) + Try(ZonedDateTime.parse("2022-02-14T20:30:00.00+01:00[Europe/Paris]")) assert(attemptedParse.isSuccess) + // This parsing is different in JDK 8 and 11 due to a bug in JDK 8 + // https://bugs.openjdk.org/browse/JDK-8066982 val zdt = attemptedParse.get assert(zdt.get(ChronoField.YEAR) == 2022) assert(zdt.get(ChronoField.MONTH_OF_YEAR) == 2) assert(zdt.get(ChronoField.DAY_OF_MONTH) == 14) - assert(zdt.get(ChronoField.HOUR_OF_DAY) == 20) + // assert(zdt.get(ChronoField.HOUR_OF_DAY) == 21) // 21 due to timezone DST assert(zdt.get(ChronoField.MINUTE_OF_HOUR) == 30) assert(zdt.getZone == ZoneId.of("Europe/Paris")) } From 7c1ce812628c75a93183897ed45fbec96954ce50 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 25 Oct 2023 00:16:13 +0000 Subject: [PATCH 0035/1318] Update scalafmt-core from 3.7.14 to 3.7.15 --- .scalafmt.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.scalafmt.conf b/.scalafmt.conf index 41cf16b80..ef0b7960b 100644 --- a/.scalafmt.conf +++ b/.scalafmt.conf @@ -1,4 +1,4 @@ -version = 3.7.14 +version = 3.7.15 runner.dialect = scala3 fileOverride { "glob:**/scala-2-modules/**" { From f487e3f223b22b59bfe1a5b368939ee4ef62b789 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 25 Oct 2023 00:16:29 +0000 Subject: [PATCH 0036/1318] Reformat with scalafmt 3.7.15 Executed command: scalafmt --non-interactive --- play-scala/build.sbt | 2 +- play-scala/play-static-assets/project/plugins.sbt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/play-scala/build.sbt b/play-scala/build.sbt index 4d6e85ac7..6927d3c47 100644 --- a/play-scala/build.sbt +++ b/play-scala/build.sbt @@ -9,4 +9,4 @@ lazy val resApi = (project in file("rest-api")) lazy val appTests = (project in file("application-tests")) .settings(Defaults.itSettings) .configs(IntegrationTest) -lazy val playStaticAssets = (project in file("play-static-assets")) \ No newline at end of file +lazy val playStaticAssets = (project in file("play-static-assets")) diff --git a/play-scala/play-static-assets/project/plugins.sbt b/play-scala/play-static-assets/project/plugins.sbt index 50727d31b..9535277b4 100644 --- a/play-scala/play-static-assets/project/plugins.sbt +++ b/play-scala/play-static-assets/project/plugins.sbt @@ -3,4 +3,4 @@ addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") addSbtPlugin("com.typesafe.sbt" % "sbt-coffeescript" % "1.0.2") addSbtPlugin("com.github.platypii" % "sbt-typescript" % "4.6.4") addSbtPlugin("com.typesafe.sbt" % "sbt-less" % "1.1.2") -addSbtPlugin("io.github.irundaia" % "sbt-sassify" % "1.5.2") \ No newline at end of file +addSbtPlugin("io.github.irundaia" % "sbt-sassify" % "1.5.2") From a6dd86ca4beabfc1e9561b4ef69b48759f768f25 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 25 Oct 2023 00:16:29 +0000 Subject: [PATCH 0037/1318] Add 'Reformat with scalafmt 3.7.15' to .git-blame-ignore-revs --- .git-blame-ignore-revs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs index 151942a57..3f31d5301 100644 --- a/.git-blame-ignore-revs +++ b/.git-blame-ignore-revs @@ -3,3 +3,6 @@ ca5770e327fea2fad0a3bf2f79f896e7a507d2d5 # Scala Steward: Reformat with scalafmt 3.7.14 dbe84f92afbd6d78b05ccea685e852c49f30803e + +# Scala Steward: Reformat with scalafmt 3.7.15 +b3311c285e229dcb096fd9e89d9a3c5b7d95345c From e7407585d5b8771d9644820baa3c707fa0e14dc3 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 25 Oct 2023 00:15:57 +0000 Subject: [PATCH 0038/1318] Update jetty-webapp from 9.4.53.v20231009 to 11.0.17 --- scalatra/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scalatra/build.sbt b/scalatra/build.sbt index e7bec1f93..6e8cc43d9 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -9,7 +9,7 @@ libraryDependencies ++= Seq( "org.scalatra" %% "scalatra" % ScalatraVersion, "org.scalatra" %% "scalatra-scalatest" % ScalatraVersion % "test", "ch.qos.logback" % "logback-classic" % "1.2.3" % "runtime", - "org.eclipse.jetty" % "jetty-webapp" % "9.4.53.v20231009" % "container", + "org.eclipse.jetty" % "jetty-webapp" % "11.0.17" % "container", "javax.servlet" % "javax.servlet-api" % "4.0.1" % "provided", "org.scalatra" %% "scalatra-auth" % ScalatraVersion, "org.scalatra" %% "scalatra-json" % "2.8.4", From 60fc6fc59589c0da6aea6259f638b3e4a63b0402 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 25 Oct 2023 20:03:26 +0200 Subject: [PATCH 0039/1318] Added code samples for sliding and grouped --- .../sliding_grouped/SlidingGroupedTest.scala | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 scala3-lang-3/src/test/scala/com/baeldung/scala/sliding_grouped/SlidingGroupedTest.scala diff --git a/scala3-lang-3/src/test/scala/com/baeldung/scala/sliding_grouped/SlidingGroupedTest.scala b/scala3-lang-3/src/test/scala/com/baeldung/scala/sliding_grouped/SlidingGroupedTest.scala new file mode 100644 index 000000000..70cbfab33 --- /dev/null +++ b/scala3-lang-3/src/test/scala/com/baeldung/scala/sliding_grouped/SlidingGroupedTest.scala @@ -0,0 +1,58 @@ +package com.baeldung.scala.sliding_grouped + +import org.scalatest.wordspec.AnyWordSpec + +class SlidingGroupedTest extends AnyWordSpec { + + "sliding method" should { + "creating a sliding window with 2 elements" in { + val numbers: List[Int] = List(1, 2, 3, 4, 5, 6) + val slidingWindow: Iterator[List[Int]] = numbers.sliding(2, 1) + assert( + slidingWindow.toList == List( + List(1, 2), + List(2, 3), + List(3, 4), + List(4, 5), + List(5, 6) + ) + ) + } + "without providing sliding window should use 1 by default" in { + val numbers = List(1, 2, 3, 4, 5, 6) + val window = numbers.sliding(2) + assert( + window.toList == List( + List(1, 2), + List(2, 3), + List(3, 4), + List(4, 5), + List(5, 6) + ) + ) + } + + "create a group with lesser number than the group size provided" in { + val numbers = List(1, 2, 3, 4) + assert(numbers.sliding(3, 2).toList == List(List(1, 2, 3), List(3, 4))) + } + + } + + "grouped method" should { + "group the elements into equal groupings if possible" in { + val numbers = List(1, 2, 3, 4) + assert(numbers.grouped(2).toList == List(List(1, 2), List(3, 4))) + } + + "be same as sliding if the sliding window and group size is same" in { + val numbers = List(1, 2, 3, 4, 5, 6) + val slidingList = + numbers.sliding(2, 2).toList // List(List(1, 2), List(3, 4), List(5, 6)) + val groupedList = + numbers.grouped(2).toList // List(List(1, 2), List(3, 4), List(5, 6)) + assert(slidingList == groupedList) + } + } + +} From d48a8f27200a10e3452dc66a2d04ad2dbb1c927c Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Thu, 26 Oct 2023 16:16:18 +0200 Subject: [PATCH 0040/1318] Updated kafka avro version --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index bae635540..04ca5d74d 100644 --- a/build.sbt +++ b/build.sbt @@ -385,7 +385,7 @@ val jackSonVersion = "2.15.3" val log4jApiScalaVersion = "13.0.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.1" -val kafkaAvroSerializer = "6.2.12" +val kafkaAvroSerializer = "7.5.1" lazy val scala_libraries_5 = (project in file("scala-libraries-5")) .settings( From 28fcddcd8fdbcd279ad58c5b703cb448eba3813f Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 27 Oct 2023 17:57:01 +0200 Subject: [PATCH 0041/1318] Updated Readme with JDK version and fixed DateParser Test --- README.md | 3 +++ .../src/test/scala-2/com/baeldung/date/DateParserSpec.scala | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 94ddc9432..4d7ccc7d9 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,9 @@ # scala-tutorials This is the main repo for all the sample code used in the scala tutorials. +# Pre-requisites +Suggested JDK version : JDK 11 + # Compiling and Running Tests This repo uses a multi-module build with many sub modules. To compile the entire module, you may use the command `sbt compile`. However, this loads all the modules and compiles all of them, which might take some time. diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/date/DateParserSpec.scala b/scala-libraries-2/src/test/scala-2/com/baeldung/date/DateParserSpec.scala index 0e9d52494..15a068bd6 100644 --- a/scala-libraries-2/src/test/scala-2/com/baeldung/date/DateParserSpec.scala +++ b/scala-libraries-2/src/test/scala-2/com/baeldung/date/DateParserSpec.scala @@ -53,7 +53,7 @@ class DateParserSpec extends AnyWordSpec with Matchers { "a library-based parser" should { "retrieve date elements when a complex date/time string is passed" in { val attemptedParse = - Try(ZonedDateTime.parse("2022-02-14T20:30:00.00+01:00[Europe/Paris]")) + Try(ZonedDateTime.parse("2022-02-14T20:30:00.00Z[Europe/Paris]")) assert(attemptedParse.isSuccess) // This parsing is different in JDK 8 and 11 due to a bug in JDK 8 // https://bugs.openjdk.org/browse/JDK-8066982 From 91f78386a16865cc09afcb4cb847c781d25667d8 Mon Sep 17 00:00:00 2001 From: edizor <113095366+edizor@users.noreply.github.com> Date: Sun, 29 Oct 2023 07:32:46 +0800 Subject: [PATCH 0042/1318] Update README.md [skip ci] --- scala-core-collections-3/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scala-core-collections-3/README.md b/scala-core-collections-3/README.md index 692760115..a3c38cc86 100644 --- a/scala-core-collections-3/README.md +++ b/scala-core-collections-3/README.md @@ -1,4 +1,5 @@ - [Guide to Scala Collections](https://www.baeldung.com/scala/collections) - [Guide to Scala ListSet](https://www.baeldung.com/scala/listset) - [Guide to Scala ListMap](https://www.baeldung.com/scala/listmap) -- [Get a List Item by Index in Scala](https://www.baeldung.com/scala/list-get-item-by-index) \ No newline at end of file +- [Get a List Item by Index in Scala](https://www.baeldung.com/scala/list-get-item-by-index) +- [Moving Averages in Scala: A Tale of Two Approaches](https://www.baeldung.com/scala/moving-averages) From 400d58056fc0a70deb2148409dfd292bf6464659 Mon Sep 17 00:00:00 2001 From: edizor <113095366+edizor@users.noreply.github.com> Date: Sun, 29 Oct 2023 07:33:19 +0800 Subject: [PATCH 0043/1318] Update README.md [skip ci] --- scala-core-collections-3/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scala-core-collections-3/README.md b/scala-core-collections-3/README.md index a3c38cc86..344b68d69 100644 --- a/scala-core-collections-3/README.md +++ b/scala-core-collections-3/README.md @@ -1,5 +1,7 @@ - [Guide to Scala Collections](https://www.baeldung.com/scala/collections) - [Guide to Scala ListSet](https://www.baeldung.com/scala/listset) - [Guide to Scala ListMap](https://www.baeldung.com/scala/listmap) + +## Relevant Articles - [Get a List Item by Index in Scala](https://www.baeldung.com/scala/list-get-item-by-index) - [Moving Averages in Scala: A Tale of Two Approaches](https://www.baeldung.com/scala/moving-averages) From 467df4c72698939c03c5a7e9e2748399b25393ed Mon Sep 17 00:00:00 2001 From: edizor <113095366+edizor@users.noreply.github.com> Date: Sun, 29 Oct 2023 07:39:54 +0800 Subject: [PATCH 0044/1318] Update README.md [skip ci] --- scala-strings/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-strings/README.md b/scala-strings/README.md index e826b3731..b1f9d2d53 100644 --- a/scala-strings/README.md +++ b/scala-strings/README.md @@ -9,3 +9,4 @@ This module contains articles about Scala's core features - [String Comparison in Scala](https://www.baeldung.com/scala/string-comparison) - [Convert a String to Camel Case in Scala](https://www.baeldung.com/scala/string-to-camel-case) - [Convert Byte Array to String in Scala](https://www.baeldung.com/scala/convert-byte-array-to-string) +- [Scala Keyword Matching: A Library-First Guide](https://www.baeldung.com/scala/keyword-matching) From 5a43a68003a92d7374cef8553d4e506e02a30129 Mon Sep 17 00:00:00 2001 From: edizor <113095366+edizor@users.noreply.github.com> Date: Sun, 29 Oct 2023 07:44:53 +0800 Subject: [PATCH 0045/1318] Update README.md [skip ci] --- scala3-lang-3/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala3-lang-3/README.md b/scala3-lang-3/README.md index 03f77e522..5c435282d 100644 --- a/scala3-lang-3/README.md +++ b/scala3-lang-3/README.md @@ -1,2 +1,3 @@ ## Relevant Articles - [Different Ways to Filter Elements From a Scala Collection](https://www.baeldung.com/scala/filter-collections) +- [Type Lambdas in Scala 3](https://www.baeldung.com/scala/type-lambdas-scala-3) From b68dcc704b9766f0d41fefac363ccbf1e8586f8a Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sun, 29 Oct 2023 17:25:27 +0100 Subject: [PATCH 0046/1318] Uncommented hour of the day in DateParser Test --- .../src/test/scala-2/com/baeldung/date/DateParserSpec.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/date/DateParserSpec.scala b/scala-libraries-2/src/test/scala-2/com/baeldung/date/DateParserSpec.scala index 15a068bd6..0de6aa4eb 100644 --- a/scala-libraries-2/src/test/scala-2/com/baeldung/date/DateParserSpec.scala +++ b/scala-libraries-2/src/test/scala-2/com/baeldung/date/DateParserSpec.scala @@ -61,7 +61,7 @@ class DateParserSpec extends AnyWordSpec with Matchers { assert(zdt.get(ChronoField.YEAR) == 2022) assert(zdt.get(ChronoField.MONTH_OF_YEAR) == 2) assert(zdt.get(ChronoField.DAY_OF_MONTH) == 14) - // assert(zdt.get(ChronoField.HOUR_OF_DAY) == 21) // 21 due to timezone DST + assert(zdt.get(ChronoField.HOUR_OF_DAY) == 21) // 21 due to timezone DST assert(zdt.get(ChronoField.MINUTE_OF_HOUR) == 30) assert(zdt.getZone == ZoneId.of("Europe/Paris")) } From fd7ee58e6d08ce5c6c5211b10614d0b525fc51a2 Mon Sep 17 00:00:00 2001 From: Bruno Unna Date: Mon, 30 Oct 2023 09:19:37 +0000 Subject: [PATCH 0047/1318] Remove type declaration --- .../com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala3-lang-3/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala b/scala3-lang-3/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala index 2886b3e7a..b141d650a 100644 --- a/scala3-lang-3/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala +++ b/scala3-lang-3/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala @@ -12,7 +12,7 @@ class ImmutableArraySpec extends AnyWordSpec { "dogs and cats" should { "get along together" in { - val myPets: IArray[Pet] = cats ++ dogs + val myPets = cats ++ dogs // myPets is an IArray[Pet] assertResult(4)(myPets.length) assert(myPets.contains(Dog("barky"))) assert(myPets.contains(Cat("silky"))) From cfd6439a38e29e92f9dc857103a69b2a2f33771e Mon Sep 17 00:00:00 2001 From: Bruno Unna Date: Mon, 30 Oct 2023 09:28:54 +0000 Subject: [PATCH 0048/1318] Test the immutability of IArrays --- .../scala/immutablearrays/ImmutableArraySpec.scala | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/scala3-lang-3/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala b/scala3-lang-3/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala index b141d650a..e59559e91 100644 --- a/scala3-lang-3/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala +++ b/scala3-lang-3/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala @@ -12,7 +12,7 @@ class ImmutableArraySpec extends AnyWordSpec { "dogs and cats" should { "get along together" in { - val myPets = cats ++ dogs // myPets is an IArray[Pet] + val myPets = cats ++ dogs // myPets is an IArray[Pet] assertResult(4)(myPets.length) assert(myPets.contains(Dog("barky"))) assert(myPets.contains(Cat("silky"))) @@ -20,4 +20,10 @@ class ImmutableArraySpec extends AnyWordSpec { assert(myPets.contains(Cat("overlord"))) } } + + "a dogs array" should { + "be immutable" in { + assertDoesNotCompile("dogs(0) = Dog(\"unwanted\")") + } + } } From 4cd2c331dfe4710afc08a0ea274162428c4665f2 Mon Sep 17 00:00:00 2001 From: Bruno Unna Date: Mon, 30 Oct 2023 10:48:19 +0000 Subject: [PATCH 0049/1318] Cater for Dominique's comments --- .../immutablearrays/ImmutableArraySpec.scala | 33 +++++++++++++------ 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/scala3-lang-3/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala b/scala3-lang-3/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala index e59559e91..ea1957a08 100644 --- a/scala3-lang-3/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala +++ b/scala3-lang-3/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala @@ -3,27 +3,40 @@ package com.baeldung.scala.immutablearrays import org.scalatest.wordspec.AnyWordSpec class ImmutableArraySpec extends AnyWordSpec { - private trait Pet(name: String) - private case class Dog(name: String) extends Pet(name = name) - private case class Cat(name: String) extends Pet(name = name) + trait Pet(val name: String, val age: Int) + case class Dog(override val name: String, override val age: Int) + extends Pet(name = name, age = age) + case class Cat(override val name: String, override val age: Int) + extends Pet(name = name, age = age) - private val dogs: IArray[Dog] = IArray(Dog("champ"), Dog("barky")) - private val cats: IArray[Cat] = IArray(Cat("overlord"), Cat("silky")) + val dogs: IArray[Dog] = IArray(Dog("champ", 2), Dog("barky", 3)) + val cats: IArray[Cat] = IArray(Cat("overlord", 3), Cat("silky", 5)) "dogs and cats" should { "get along together" in { val myPets = cats ++ dogs // myPets is an IArray[Pet] + // is the size of the array correct? assertResult(4)(myPets.length) - assert(myPets.contains(Dog("barky"))) - assert(myPets.contains(Cat("silky"))) - assert(myPets.contains(Dog("champ"))) - assert(myPets.contains(Cat("overlord"))) + + // check contents by full comparison + assert(myPets.indexOf(Dog("barky", 3)) == 3) + assert(myPets.indexOf(Cat("silky", 5)) == 1) + assert(myPets.indexOf(Dog("champ", 2)) == 2) + assert(myPets.indexOf(Cat("overlord", 3)) == 0) + + // check contents by predicate + assert(myPets.exists(_.name == "barky")) + assert(myPets.filter(_.age == 3).size == 2) + + // check type is respected by closure + assert(myPets(1).isInstanceOf[Cat]) + assert(myPets(2).isInstanceOf[Dog]) } } "a dogs array" should { "be immutable" in { - assertDoesNotCompile("dogs(0) = Dog(\"unwanted\")") + assertDoesNotCompile("dogs(0) = Dog(\"unwanted\", 8)") } } } From 8df9b467f684973069fd5d0e434d5d5b3372587f Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 31 Oct 2023 11:58:30 +0100 Subject: [PATCH 0050/1318] Upgrade play to 2.9 --- .scala-steward.conf | 2 ++ .../arrival/controller/ArrivalControllerH2Test.scala | 2 +- .../async-tasks/app/actors/AsyncTaskInActor.scala | 5 +++-- .../app/controllers/AsyncTaskController.scala | 8 +++++--- .../configuration-access/app/services/MyService.scala | 10 +++++----- project/build.properties | 2 +- project/plugins.sbt | 4 ++-- scalatra/build.sbt | 2 +- scalatra/project/build.properties | 1 - 9 files changed, 20 insertions(+), 16 deletions(-) delete mode 100644 scalatra/project/build.properties diff --git a/.scala-steward.conf b/.scala-steward.conf index 8a2b3385f..780f8f93c 100644 --- a/.scala-steward.conf +++ b/.scala-steward.conf @@ -39,3 +39,5 @@ updates.pin = [ { groupId = "ch.qos.logback", artifactId="logback-classic", ver # Supported variables: ${artifactName}, ${currentVersion}, ${nextVersion} and ${default} # Default: "${default}" which is equivalent to "Update ${artifactName} to ${nextVersion}" commits.message = "Update ${artifactName} from ${currentVersion} to ${nextVersion}" + +buildRoots = [".", "scalatra", "play-scala"] \ No newline at end of file diff --git a/play-scala/application-tests/test/com/baeldung/arrival/controller/ArrivalControllerH2Test.scala b/play-scala/application-tests/test/com/baeldung/arrival/controller/ArrivalControllerH2Test.scala index 9d0ae0e79..53a31b2e9 100644 --- a/play-scala/application-tests/test/com/baeldung/arrival/controller/ArrivalControllerH2Test.scala +++ b/play-scala/application-tests/test/com/baeldung/arrival/controller/ArrivalControllerH2Test.scala @@ -18,7 +18,7 @@ class ArrivalControllerH2Test with ScalaFutures with H2ApplicationFactory { - private implicit def wsClient = app.injector.instanceOf[WSClient] + private implicit def wsClient: WSClient = app.injector.instanceOf[WSClient] "ArrivalController#index" should { "return arrivals using h2" in { diff --git a/play-scala/async-tasks/app/actors/AsyncTaskInActor.scala b/play-scala/async-tasks/app/actors/AsyncTaskInActor.scala index 679d381bc..f1957dadb 100644 --- a/play-scala/async-tasks/app/actors/AsyncTaskInActor.scala +++ b/play-scala/async-tasks/app/actors/AsyncTaskInActor.scala @@ -1,10 +1,11 @@ package actors import akka.actor.Actor -import org.joda.time.DateTime + +import java.time.LocalDateTime class AsyncTaskInActor extends Actor { override def receive: Receive = { case msg: String => - Console.println(s"Message ${msg} received at ${DateTime.now()}") + Console.println(s"Message ${msg} received at ${LocalDateTime.now()}") } } diff --git a/play-scala/async-tasks/app/controllers/AsyncTaskController.scala b/play-scala/async-tasks/app/controllers/AsyncTaskController.scala index 00ed4208e..ba6b8c788 100644 --- a/play-scala/async-tasks/app/controllers/AsyncTaskController.scala +++ b/play-scala/async-tasks/app/controllers/AsyncTaskController.scala @@ -1,9 +1,11 @@ package controllers import akka.actor.{ActorRef, ActorSystem} + import javax.inject._ -import org.joda.time.DateTime import play.api.mvc.{Action, AnyContent, BaseController, ControllerComponents} + +import java.time.LocalDateTime import scala.concurrent.ExecutionContext import scala.concurrent.duration._ import scala.language.postfixOps @@ -16,9 +18,9 @@ class AsyncTaskController @Inject() ( )(implicit ec: ExecutionContext) extends BaseController { def runAsync(): Action[AnyContent] = Action { - Console.println(s"In route handler: ${DateTime.now()}") + Console.println(s"In route handler: ${LocalDateTime.now()}") actorSystem.scheduler.scheduleOnce(30 seconds) { - Console.println(s"30 seconds later: ${DateTime.now()}") + Console.println(s"30 seconds later: ${LocalDateTime.now()}") } actor ! "YELLING AT ACTOR" actorSystem.scheduler.scheduleOnce( diff --git a/play-scala/configuration-access/app/services/MyService.scala b/play-scala/configuration-access/app/services/MyService.scala index ff2b6b470..0e354cde8 100644 --- a/play-scala/configuration-access/app/services/MyService.scala +++ b/play-scala/configuration-access/app/services/MyService.scala @@ -1,17 +1,19 @@ package services import java.util.Date - import com.typesafe.config.Config + import javax.inject.Inject import play.api.{ConfigLoader, Configuration} +import java.text.SimpleDateFormat +import java.time.LocalDateTime import scala.util.Try object ISO8601DateConfigLoader { implicit val iso8601DateConfigLoader: ConfigLoader[Date] = { ConfigLoader(_.getString) - .map[Date](javax.xml.bind.DatatypeConverter.parseDateTime(_).getTime) + .map[Date](new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").parse(_)) } } @@ -31,9 +33,7 @@ object PlayerInfo { config.getString("name"), config.getString("email"), config.getInt("age"), - javax.xml.bind.DatatypeConverter - .parseDateTime(config.getString("signUpDate")) - .getTime, + new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").parse(config.getString("signUpDate")), Try(config.getString("twitterHandle")).toOption ) } diff --git a/project/build.properties b/project/build.properties index 6cd347fab..d92825599 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1,2 +1,2 @@ -sbt.version=1.8.2 +sbt.version=1.9.7 diff --git a/project/plugins.sbt b/project/plugins.sbt index 62316333b..bad010e63 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -5,10 +5,10 @@ addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.13.0") addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.2.1") libraryDependencies += "ai.kien" %% "python-native-libs" % "0.2.4" -addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.8.19") +addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.9.0") ThisBuild / libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always -addSbtPlugin("com.typesafe.sbt" % "sbt-twirl" % "1.4.2") +addSbtPlugin("com.typesafe.play" % "sbt-twirl" % "1.6.1") addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "4.2.1") addSbtPlugin("pl.project13.scala" % "sbt-jmh" % "0.4.3") diff --git a/scalatra/build.sbt b/scalatra/build.sbt index 6e8cc43d9..4ba3fde6f 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -18,6 +18,6 @@ libraryDependencies ++= Seq( "com.h2database" % "h2" % "1.4.196", "com.mchange" % "c3p0" % "0.9.5.5" ) - +libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always enablePlugins(SbtTwirl) enablePlugins(JettyPlugin) diff --git a/scalatra/project/build.properties b/scalatra/project/build.properties deleted file mode 100644 index c06db1bb2..000000000 --- a/scalatra/project/build.properties +++ /dev/null @@ -1 +0,0 @@ -sbt.version=1.4.5 From 06802c191a3c35ccaead71e491e4aba49021e11f Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 31 Oct 2023 12:07:29 +0100 Subject: [PATCH 0051/1318] Scalafmt issue fixed --- play-scala/configuration-access/app/services/MyService.scala | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/play-scala/configuration-access/app/services/MyService.scala b/play-scala/configuration-access/app/services/MyService.scala index 0e354cde8..7d17341b7 100644 --- a/play-scala/configuration-access/app/services/MyService.scala +++ b/play-scala/configuration-access/app/services/MyService.scala @@ -33,7 +33,8 @@ object PlayerInfo { config.getString("name"), config.getString("email"), config.getInt("age"), - new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").parse(config.getString("signUpDate")), + new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss") + .parse(config.getString("signUpDate")), Try(config.getString("twitterHandle")).toOption ) } From d9fe8533459a4ae438eee7d72c4ba3f9ca40a6dc Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 31 Oct 2023 13:20:58 +0100 Subject: [PATCH 0052/1318] Temporary comment out a play test --- .../controller/ArrivalControllerH2Test.scala | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/play-scala/application-tests/test/com/baeldung/arrival/controller/ArrivalControllerH2Test.scala b/play-scala/application-tests/test/com/baeldung/arrival/controller/ArrivalControllerH2Test.scala index 53a31b2e9..e0c301c9a 100644 --- a/play-scala/application-tests/test/com/baeldung/arrival/controller/ArrivalControllerH2Test.scala +++ b/play-scala/application-tests/test/com/baeldung/arrival/controller/ArrivalControllerH2Test.scala @@ -21,15 +21,15 @@ class ArrivalControllerH2Test private implicit def wsClient: WSClient = app.injector.instanceOf[WSClient] "ArrivalController#index" should { - "return arrivals using h2" in { - val controllerResponseF: Future[WSResponse] = wsCall( - com.baeldung.arrival.controller.routes.ArrivalController.index() - ).get() - whenReady(controllerResponseF)(controllerResponse => { - val arrivals = controllerResponse.json.as[JsArray].value - assert(arrivals.length === 6) - }) - } +// "return arrivals using h2" in { +// val controllerResponseF: Future[WSResponse] = wsCall( +// com.baeldung.arrival.controller.routes.ArrivalController.index() +// ).get() +// whenReady(controllerResponseF)(controllerResponse => { +// val arrivals = controllerResponse.json.as[JsArray].value +// assert(arrivals.length === 6) +// }) +// } } override implicit def patienceConfig: PatienceConfig = PatienceConfig( From 1a8f339899729fa9234afd0e36bc13f5c372a895 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 31 Oct 2023 14:42:11 +0100 Subject: [PATCH 0053/1318] Set jvm options for Spark to work --- build.sbt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/build.sbt b/build.sbt index 04ca5d74d..51b967f01 100644 --- a/build.sbt +++ b/build.sbt @@ -4,6 +4,11 @@ ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0-SNAPSHOT" ThisBuild / organization := "com.baeldung" ThisBuild / organizationName := "core-scala" +ThisBuild / Test / fork := true + +javaOptions ++= Seq( + "--add-exports java.base/sun.nio.ch=ALL-UNNAMED" +) val jUnitInterface = "com.github.sbt" % "junit-interface" % "0.13.3" % "test" val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.2" From 3fbdb78a912f44c41d88339932ca80d8ab3a6935 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 31 Oct 2023 14:55:26 +0100 Subject: [PATCH 0054/1318] Upgraded logback-classic to latest since we are using jdk 11+ --- build.sbt | 4 ++-- scalatra/build.sbt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index 51b967f01..499b84214 100644 --- a/build.sbt +++ b/build.sbt @@ -14,7 +14,7 @@ val jUnitInterface = "com.github.sbt" % "junit-interface" % "0.13.3" % "test" val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.2" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.2" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV -val logback = "ch.qos.logback" % "logback-classic" % "1.3.11" +val logback = "ch.qos.logback" % "logback-classic" % "1.4.11" val embedMongoVersion = "4.9.2" val scalaTestDeps = Seq( @@ -200,7 +200,7 @@ lazy val scala_akka = (project in file("scala-akka")) .settings( name := "scala-akka", libraryDependencies ++= scala_akka_dependencies ++ Seq( - "ch.qos.logback" % "logback-classic" % "1.2.3", // scala-steward:off + "ch.qos.logback" % "logback-classic" % "1.4.11", // scala-steward:off embeddedMongo % "it,compile" ) ++ scalaTestDeps.map(_.withConfigurations(Some("it,test"))), Defaults.itSettings diff --git a/scalatra/build.sbt b/scalatra/build.sbt index 4ba3fde6f..050db4d44 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -8,7 +8,7 @@ version := "0.1.0-SNAPSHOT" libraryDependencies ++= Seq( "org.scalatra" %% "scalatra" % ScalatraVersion, "org.scalatra" %% "scalatra-scalatest" % ScalatraVersion % "test", - "ch.qos.logback" % "logback-classic" % "1.2.3" % "runtime", + "ch.qos.logback" % "logback-classic" % "1.4.11" % "runtime", "org.eclipse.jetty" % "jetty-webapp" % "11.0.17" % "container", "javax.servlet" % "javax.servlet-api" % "4.0.1" % "provided", "org.scalatra" %% "scalatra-auth" % ScalatraVersion, From d130eb06ecc06f286a4e16f30b42a77eb5662774 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 31 Oct 2023 15:11:50 +0100 Subject: [PATCH 0055/1318] Added the JVM Options for Spark build in jdk 17 --- build.sbt | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/build.sbt b/build.sbt index 499b84214..883f604bc 100644 --- a/build.sbt +++ b/build.sbt @@ -4,11 +4,6 @@ ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0-SNAPSHOT" ThisBuild / organization := "com.baeldung" ThisBuild / organizationName := "core-scala" -ThisBuild / Test / fork := true - -javaOptions ++= Seq( - "--add-exports java.base/sun.nio.ch=ALL-UNNAMED" -) val jUnitInterface = "com.github.sbt" % "junit-interface" % "0.13.3" % "test" val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.2" @@ -515,7 +510,11 @@ lazy val spark_scala = (project in file("spark-scala")) libraryDependencies ++= Seq( sparkSqlDep, sparkCoreDep - ) ++ scalaTestDeps + ) ++ scalaTestDeps, + fork := true, + javaOptions ++= Seq( + "--add-exports=java.base/sun.nio.ch=ALL-UNNAMED" //Added for JDK 17 issue with Spark + ) ) addCommandAlias( From 203eaef6d3eda5554f20da74239567e5b5dca2e7 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 31 Oct 2023 15:29:23 +0100 Subject: [PATCH 0056/1318] Removed logback classic from the pin in scala-steward since this project is jdk 11+ --- .scala-steward.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.scala-steward.conf b/.scala-steward.conf index 780f8f93c..7cc5f0ae3 100644 --- a/.scala-steward.conf +++ b/.scala-steward.conf @@ -33,7 +33,7 @@ pullRequests.frequency = "7 days" # Each pattern must have `groupId`, `version` and optional `artifactId`. # Defaults to empty `[]` which mean Scala Steward will update all dependencies. # the following example will allow to update foo when version is 1.1.x -updates.pin = [ { groupId = "ch.qos.logback", artifactId="logback-classic", version = "1.3." } ] +updates.pin = [] # If set, Scala Steward will use this message template for the commit messages and PR titles. # Supported variables: ${artifactName}, ${currentVersion}, ${nextVersion} and ${default} From b061ddced16f030bf53d99cf0a705971de317eea Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 31 Oct 2023 15:38:58 +0100 Subject: [PATCH 0057/1318] Added some of the play sub-modules to scala-steward auto-update --- .scala-steward.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.scala-steward.conf b/.scala-steward.conf index 7cc5f0ae3..acba539bd 100644 --- a/.scala-steward.conf +++ b/.scala-steward.conf @@ -40,4 +40,4 @@ updates.pin = [] # Default: "${default}" which is equivalent to "Update ${artifactName} to ${nextVersion}" commits.message = "Update ${artifactName} from ${currentVersion} to ${nextVersion}" -buildRoots = [".", "scalatra", "play-scala"] \ No newline at end of file +buildRoots = [".", "scalatra", "play-scala", "play-scala/application-tests", "play-scala/caching-in-play"] \ No newline at end of file From c33e0b31cba23c3890f32a94b30a2009abae6598 Mon Sep 17 00:00:00 2001 From: kateu herbert Date: Tue, 31 Oct 2023 18:05:06 +0300 Subject: [PATCH 0058/1318] changed package name to lowercase --- .../com/baeldung/{circeYaml => circeyaml}/YamlExample.scala | 0 .../com/baeldung/{circeYaml => circeyaml}/YamlExampleSpec.scala | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename scala-libraries-6/src/main/scala-3/com/baeldung/{circeYaml => circeyaml}/YamlExample.scala (100%) rename scala-libraries-6/src/test/scala-3/com/baeldung/{circeYaml => circeyaml}/YamlExampleSpec.scala (98%) diff --git a/scala-libraries-6/src/main/scala-3/com/baeldung/circeYaml/YamlExample.scala b/scala-libraries-6/src/main/scala-3/com/baeldung/circeyaml/YamlExample.scala similarity index 100% rename from scala-libraries-6/src/main/scala-3/com/baeldung/circeYaml/YamlExample.scala rename to scala-libraries-6/src/main/scala-3/com/baeldung/circeyaml/YamlExample.scala diff --git a/scala-libraries-6/src/test/scala-3/com/baeldung/circeYaml/YamlExampleSpec.scala b/scala-libraries-6/src/test/scala-3/com/baeldung/circeyaml/YamlExampleSpec.scala similarity index 98% rename from scala-libraries-6/src/test/scala-3/com/baeldung/circeYaml/YamlExampleSpec.scala rename to scala-libraries-6/src/test/scala-3/com/baeldung/circeyaml/YamlExampleSpec.scala index 7cdfdd157..3ff7871a7 100644 --- a/scala-libraries-6/src/test/scala-3/com/baeldung/circeYaml/YamlExampleSpec.scala +++ b/scala-libraries-6/src/test/scala-3/com/baeldung/circeyaml/YamlExampleSpec.scala @@ -1,4 +1,4 @@ -package com.baeldung.circeYaml +package com.baeldung.circeyaml import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers From 59233e038bad023932222abd61f775482ab3c1de Mon Sep 17 00:00:00 2001 From: kateu herbert Date: Tue, 31 Oct 2023 18:22:11 +0300 Subject: [PATCH 0059/1318] fixed typo --- .../src/main/scala-3/com/baeldung/circeyaml/YamlExample.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-6/src/main/scala-3/com/baeldung/circeyaml/YamlExample.scala b/scala-libraries-6/src/main/scala-3/com/baeldung/circeyaml/YamlExample.scala index 075770137..4348f714a 100644 --- a/scala-libraries-6/src/main/scala-3/com/baeldung/circeyaml/YamlExample.scala +++ b/scala-libraries-6/src/main/scala-3/com/baeldung/circeyaml/YamlExample.scala @@ -1,4 +1,4 @@ -package com.baeldung.circeYaml +package com.baeldung.circeyaml import io.circe.yaml import io.circe.* From ce73f62cfddd5c1ff89588508f0be203486862f5 Mon Sep 17 00:00:00 2001 From: Matthias Kurz Date: Tue, 31 Oct 2023 22:12:00 +0100 Subject: [PATCH 0060/1318] Fix ArrivalControllerH2Test --- play-scala/application-tests/build.sbt | 6 +++--- .../application-tests/project/build.properties | 2 +- .../application-tests/project/plugins.sbt | 4 ++-- .../controller/ArrivalControllerH2Test.scala | 18 +++++++++--------- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/play-scala/application-tests/build.sbt b/play-scala/application-tests/build.sbt index e5b2266a8..8d2a6229b 100644 --- a/play-scala/application-tests/build.sbt +++ b/play-scala/application-tests/build.sbt @@ -10,7 +10,7 @@ scalaVersion := ScalaVersions.scala2Version libraryDependencies += guice libraryDependencies += "com.h2database" % "h2" % "1.4.200" libraryDependencies += "org.postgresql" % "postgresql" % "42.2.27" -libraryDependencies += "com.typesafe.play" %% "play-slick" % "5.1.0" -libraryDependencies += "com.typesafe.play" %% "play-slick-evolutions" % "5.1.0" -libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "5.1.0" % Test +libraryDependencies += "com.typesafe.play" %% "play-slick" % "5.2.0-RC1" +libraryDependencies += "com.typesafe.play" %% "play-slick-evolutions" % "5.2.0-RC1" +libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "6.0.0" % Test libraryDependencies += "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % Test diff --git a/play-scala/application-tests/project/build.properties b/play-scala/application-tests/project/build.properties index 563a014da..e8a1e246e 100644 --- a/play-scala/application-tests/project/build.properties +++ b/play-scala/application-tests/project/build.properties @@ -1 +1 @@ -sbt.version=1.7.2 +sbt.version=1.9.7 diff --git a/play-scala/application-tests/project/plugins.sbt b/play-scala/application-tests/project/plugins.sbt index 8846622ec..19a33600e 100644 --- a/play-scala/application-tests/project/plugins.sbt +++ b/play-scala/application-tests/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.8.19") -addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.13.1") +addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.9.0") +addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.16.2") diff --git a/play-scala/application-tests/test/com/baeldung/arrival/controller/ArrivalControllerH2Test.scala b/play-scala/application-tests/test/com/baeldung/arrival/controller/ArrivalControllerH2Test.scala index e0c301c9a..53a31b2e9 100644 --- a/play-scala/application-tests/test/com/baeldung/arrival/controller/ArrivalControllerH2Test.scala +++ b/play-scala/application-tests/test/com/baeldung/arrival/controller/ArrivalControllerH2Test.scala @@ -21,15 +21,15 @@ class ArrivalControllerH2Test private implicit def wsClient: WSClient = app.injector.instanceOf[WSClient] "ArrivalController#index" should { -// "return arrivals using h2" in { -// val controllerResponseF: Future[WSResponse] = wsCall( -// com.baeldung.arrival.controller.routes.ArrivalController.index() -// ).get() -// whenReady(controllerResponseF)(controllerResponse => { -// val arrivals = controllerResponse.json.as[JsArray].value -// assert(arrivals.length === 6) -// }) -// } + "return arrivals using h2" in { + val controllerResponseF: Future[WSResponse] = wsCall( + com.baeldung.arrival.controller.routes.ArrivalController.index() + ).get() + whenReady(controllerResponseF)(controllerResponse => { + val arrivals = controllerResponse.json.as[JsArray].value + assert(arrivals.length === 6) + }) + } } override implicit def patienceConfig: PatienceConfig = PatienceConfig( From 72ae5e82d3f427b947797d56f291466edebfe10e Mon Sep 17 00:00:00 2001 From: Matthias Kurz Date: Tue, 31 Oct 2023 22:12:12 +0100 Subject: [PATCH 0061/1318] Update twirl --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index bad010e63..1e59146ed 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -8,7 +8,7 @@ libraryDependencies += "ai.kien" %% "python-native-libs" % "0.2.4" addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.9.0") ThisBuild / libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always -addSbtPlugin("com.typesafe.play" % "sbt-twirl" % "1.6.1") +addSbtPlugin("com.typesafe.play" % "sbt-twirl" % "1.6.2") addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "4.2.1") addSbtPlugin("pl.project13.scala" % "sbt-jmh" % "0.4.3") From 575bb358e506a4d529dc2bc30e5d19998db80c3f Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 31 Oct 2023 22:36:43 +0100 Subject: [PATCH 0062/1318] Upgraded all play dependencies to 2.9.0 --- play-scala/async-tasks/project/build.properties | 1 - play-scala/async-tasks/project/plugins.sbt | 2 +- play-scala/caching-in-play/project/build.properties | 1 - play-scala/caching-in-play/project/plugins.sbt | 2 +- play-scala/configuration-access/project/build.properties | 1 - play-scala/configuration-access/project/plugins.sbt | 2 +- play-scala/custom-error-handling/project/build.properties | 1 - play-scala/custom-error-handling/project/plugins.sbt | 2 +- play-scala/dependency-injection/project/build.properties | 1 - play-scala/dependency-injection/project/plugins.sbt | 2 +- play-scala/introduction-to-play/project/build.properties | 1 - play-scala/introduction-to-play/project/plugins.sbt | 2 +- play-scala/play-static-assets/project/build.properties | 1 - play-scala/play-static-assets/project/plugins.sbt | 2 +- play-scala/play-templates/project/build.properties | 1 - play-scala/play-templates/project/plugins.sbt | 2 +- play-scala/rest-api/project/build.properties | 1 - play-scala/rest-api/project/plugins.sbt | 2 +- 18 files changed, 9 insertions(+), 18 deletions(-) delete mode 100644 play-scala/async-tasks/project/build.properties delete mode 100644 play-scala/caching-in-play/project/build.properties delete mode 100644 play-scala/configuration-access/project/build.properties delete mode 100644 play-scala/custom-error-handling/project/build.properties delete mode 100644 play-scala/dependency-injection/project/build.properties delete mode 100644 play-scala/introduction-to-play/project/build.properties delete mode 100644 play-scala/play-static-assets/project/build.properties delete mode 100644 play-scala/play-templates/project/build.properties delete mode 100644 play-scala/rest-api/project/build.properties diff --git a/play-scala/async-tasks/project/build.properties b/play-scala/async-tasks/project/build.properties deleted file mode 100644 index 797e7ccfd..000000000 --- a/play-scala/async-tasks/project/build.properties +++ /dev/null @@ -1 +0,0 @@ -sbt.version=1.3.10 diff --git a/play-scala/async-tasks/project/plugins.sbt b/play-scala/async-tasks/project/plugins.sbt index 0607b1609..3e636d982 100644 --- a/play-scala/async-tasks/project/plugins.sbt +++ b/play-scala/async-tasks/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.8.2") +addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.9.0") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") diff --git a/play-scala/caching-in-play/project/build.properties b/play-scala/caching-in-play/project/build.properties deleted file mode 100644 index 0837f7a13..000000000 --- a/play-scala/caching-in-play/project/build.properties +++ /dev/null @@ -1 +0,0 @@ -sbt.version=1.3.13 diff --git a/play-scala/caching-in-play/project/plugins.sbt b/play-scala/caching-in-play/project/plugins.sbt index c6220baa7..ed029a901 100644 --- a/play-scala/caching-in-play/project/plugins.sbt +++ b/play-scala/caching-in-play/project/plugins.sbt @@ -1,3 +1,3 @@ -addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.8.2") +addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.9.0") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.0") diff --git a/play-scala/configuration-access/project/build.properties b/play-scala/configuration-access/project/build.properties deleted file mode 100644 index 0837f7a13..000000000 --- a/play-scala/configuration-access/project/build.properties +++ /dev/null @@ -1 +0,0 @@ -sbt.version=1.3.13 diff --git a/play-scala/configuration-access/project/plugins.sbt b/play-scala/configuration-access/project/plugins.sbt index c6220baa7..ed029a901 100644 --- a/play-scala/configuration-access/project/plugins.sbt +++ b/play-scala/configuration-access/project/plugins.sbt @@ -1,3 +1,3 @@ -addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.8.2") +addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.9.0") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.0") diff --git a/play-scala/custom-error-handling/project/build.properties b/play-scala/custom-error-handling/project/build.properties deleted file mode 100644 index 797e7ccfd..000000000 --- a/play-scala/custom-error-handling/project/build.properties +++ /dev/null @@ -1 +0,0 @@ -sbt.version=1.3.10 diff --git a/play-scala/custom-error-handling/project/plugins.sbt b/play-scala/custom-error-handling/project/plugins.sbt index 0607b1609..3e636d982 100644 --- a/play-scala/custom-error-handling/project/plugins.sbt +++ b/play-scala/custom-error-handling/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.8.2") +addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.9.0") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") diff --git a/play-scala/dependency-injection/project/build.properties b/play-scala/dependency-injection/project/build.properties deleted file mode 100644 index e64c208ff..000000000 --- a/play-scala/dependency-injection/project/build.properties +++ /dev/null @@ -1 +0,0 @@ -sbt.version=1.5.8 diff --git a/play-scala/dependency-injection/project/plugins.sbt b/play-scala/dependency-injection/project/plugins.sbt index bb6d511d8..693af2c2a 100644 --- a/play-scala/dependency-injection/project/plugins.sbt +++ b/play-scala/dependency-injection/project/plugins.sbt @@ -1,3 +1,3 @@ -addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.8.8") +addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.9.0") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.2") diff --git a/play-scala/introduction-to-play/project/build.properties b/play-scala/introduction-to-play/project/build.properties deleted file mode 100644 index 797e7ccfd..000000000 --- a/play-scala/introduction-to-play/project/build.properties +++ /dev/null @@ -1 +0,0 @@ -sbt.version=1.3.10 diff --git a/play-scala/introduction-to-play/project/plugins.sbt b/play-scala/introduction-to-play/project/plugins.sbt index 0607b1609..3e636d982 100644 --- a/play-scala/introduction-to-play/project/plugins.sbt +++ b/play-scala/introduction-to-play/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.8.2") +addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.9.0") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") diff --git a/play-scala/play-static-assets/project/build.properties b/play-scala/play-static-assets/project/build.properties deleted file mode 100644 index 797e7ccfd..000000000 --- a/play-scala/play-static-assets/project/build.properties +++ /dev/null @@ -1 +0,0 @@ -sbt.version=1.3.10 diff --git a/play-scala/play-static-assets/project/plugins.sbt b/play-scala/play-static-assets/project/plugins.sbt index 9535277b4..ce1b002fc 100644 --- a/play-scala/play-static-assets/project/plugins.sbt +++ b/play-scala/play-static-assets/project/plugins.sbt @@ -1,4 +1,4 @@ -addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.8.2") +addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.9.0") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") addSbtPlugin("com.typesafe.sbt" % "sbt-coffeescript" % "1.0.2") addSbtPlugin("com.github.platypii" % "sbt-typescript" % "4.6.4") diff --git a/play-scala/play-templates/project/build.properties b/play-scala/play-templates/project/build.properties deleted file mode 100644 index 797e7ccfd..000000000 --- a/play-scala/play-templates/project/build.properties +++ /dev/null @@ -1 +0,0 @@ -sbt.version=1.3.10 diff --git a/play-scala/play-templates/project/plugins.sbt b/play-scala/play-templates/project/plugins.sbt index 0607b1609..3e636d982 100644 --- a/play-scala/play-templates/project/plugins.sbt +++ b/play-scala/play-templates/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.8.2") +addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.9.0") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") diff --git a/play-scala/rest-api/project/build.properties b/play-scala/rest-api/project/build.properties deleted file mode 100644 index 797e7ccfd..000000000 --- a/play-scala/rest-api/project/build.properties +++ /dev/null @@ -1 +0,0 @@ -sbt.version=1.3.10 diff --git a/play-scala/rest-api/project/plugins.sbt b/play-scala/rest-api/project/plugins.sbt index 0607b1609..3e636d982 100644 --- a/play-scala/rest-api/project/plugins.sbt +++ b/play-scala/rest-api/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.8.2") +addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.9.0") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") From 461ded87904ce17f767d581c06c10ab71ef1f74e Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 31 Oct 2023 22:38:57 +0100 Subject: [PATCH 0063/1318] Removed scala-xml dep scheme aftr play upgrade --- project/plugins.sbt | 1 - scala-sbt/sbt-info/build.sbt | 1 - scala-sbt/sbt-info/project/plugins.sbt | 1 - 3 files changed, 3 deletions(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index 1e59146ed..fb489e82d 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -6,7 +6,6 @@ addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.13.0") addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.2.1") libraryDependencies += "ai.kien" %% "python-native-libs" % "0.2.4" addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.9.0") -ThisBuild / libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always addSbtPlugin("com.typesafe.play" % "sbt-twirl" % "1.6.2") addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "4.2.1") diff --git a/scala-sbt/sbt-info/build.sbt b/scala-sbt/sbt-info/build.sbt index af02ed737..6e4a68128 100644 --- a/scala-sbt/sbt-info/build.sbt +++ b/scala-sbt/sbt-info/build.sbt @@ -37,7 +37,6 @@ buildInfoOptions := Seq( ) //settings for scoverage -ThisBuild / libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always ThisBuild / coverageEnabled := true diff --git a/scala-sbt/sbt-info/project/plugins.sbt b/scala-sbt/sbt-info/project/plugins.sbt index 005b9257e..8418ae70e 100644 --- a/scala-sbt/sbt-info/project/plugins.sbt +++ b/scala-sbt/sbt-info/project/plugins.sbt @@ -2,4 +2,3 @@ addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.10.0") addSbtPlugin("org.scoverage" % "sbt-scoverage" % "2.0.8") -ThisBuild / libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always From 915d2c58d05b87980b93adac18dd61828388ba68 Mon Sep 17 00:00:00 2001 From: Loredana Crusoveanu Date: Wed, 1 Nov 2023 12:10:17 +0200 Subject: [PATCH 0064/1318] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4d7ccc7d9..97f93197a 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ This is the main repo for all the sample code used in the scala tutorials. # Pre-requisites -Suggested JDK version : JDK 11 +Suggested JDK version : JDK 17 # Compiling and Running Tests This repo uses a multi-module build with many sub modules. From fd1dd94970fe5042b4a41384e2f61c0ff2368736 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 1 Nov 2023 17:10:05 +0100 Subject: [PATCH 0065/1318] Fixed scala-steward config mistake --- .scala-steward.conf | 2 +- scalatra/project/plugins.sbt | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.scala-steward.conf b/.scala-steward.conf index acba539bd..4f07d4ed1 100644 --- a/.scala-steward.conf +++ b/.scala-steward.conf @@ -40,4 +40,4 @@ updates.pin = [] # Default: "${default}" which is equivalent to "Update ${artifactName} to ${nextVersion}" commits.message = "Update ${artifactName} from ${currentVersion} to ${nextVersion}" -buildRoots = [".", "scalatra", "play-scala", "play-scala/application-tests", "play-scala/caching-in-play"] \ No newline at end of file +buildRoots = [".", "scalatra"] \ No newline at end of file diff --git a/scalatra/project/plugins.sbt b/scalatra/project/plugins.sbt index 8b1378917..2df87dec0 100644 --- a/scalatra/project/plugins.sbt +++ b/scalatra/project/plugins.sbt @@ -1 +1,2 @@ - +addSbtPlugin("com.typesafe.sbt" % "sbt-twirl" % "1.4.2") +addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "4.2.1") From 1fabef5b3dfbfd796beefe5915c3d95cbf68546f Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 3 Nov 2023 09:08:09 +0100 Subject: [PATCH 0066/1318] Removed Scalatra from scala-steward --- .scala-steward.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.scala-steward.conf b/.scala-steward.conf index 4f07d4ed1..6ae429116 100644 --- a/.scala-steward.conf +++ b/.scala-steward.conf @@ -40,4 +40,4 @@ updates.pin = [] # Default: "${default}" which is equivalent to "Update ${artifactName} to ${nextVersion}" commits.message = "Update ${artifactName} from ${currentVersion} to ${nextVersion}" -buildRoots = [".", "scalatra"] \ No newline at end of file +buildRoots = ["."] From adf00c9cb67e9756d6351ef126e8686a95389eb6 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 3 Nov 2023 08:14:09 +0000 Subject: [PATCH 0067/1318] Update aws-java-sdk-s3 from 1.12.573 to 1.12.580 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index dcddccc44..4639115de 100644 --- a/build.sbt +++ b/build.sbt @@ -366,7 +366,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) ), libraryDependencies ++= Seq( "software.amazon.awssdk" % "s3" % "2.21.7", - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.573" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.580" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.0" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.0" % IntegrationTest ), @@ -525,7 +525,7 @@ lazy val spark_scala = (project in file("spark-scala")) ) ++ scalaTestDeps, fork := true, javaOptions ++= Seq( - "--add-exports=java.base/sun.nio.ch=ALL-UNNAMED" //Added for JDK 17 issue with Spark + "--add-exports=java.base/sun.nio.ch=ALL-UNNAMED" // Added for JDK 17 issue with Spark ) ) From c3fe28a1706bce2b4d5c98b3156298063fc040c1 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 3 Nov 2023 08:14:17 +0000 Subject: [PATCH 0068/1318] Update xsbt-web-plugin from 4.2.1 to 4.2.4 --- scalatra/project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scalatra/project/plugins.sbt b/scalatra/project/plugins.sbt index 2df87dec0..5a2d44522 100644 --- a/scalatra/project/plugins.sbt +++ b/scalatra/project/plugins.sbt @@ -1,2 +1,2 @@ addSbtPlugin("com.typesafe.sbt" % "sbt-twirl" % "1.4.2") -addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "4.2.1") +addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "4.2.4") From 6216de043145dad424412b2580ea1eab5255a77c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 3 Nov 2023 08:14:33 +0000 Subject: [PATCH 0069/1318] Update play-ahc-ws, play-akka-http-server, ... from 2.9.0 to 3.0.0 --- play-scala/application-tests/project/plugins.sbt | 2 +- play-scala/async-tasks/project/plugins.sbt | 2 +- play-scala/caching-in-play/project/plugins.sbt | 2 +- play-scala/configuration-access/project/plugins.sbt | 2 +- play-scala/custom-error-handling/project/plugins.sbt | 2 +- play-scala/dependency-injection/project/plugins.sbt | 2 +- play-scala/introduction-to-play/project/plugins.sbt | 2 +- play-scala/play-static-assets/project/plugins.sbt | 2 +- play-scala/play-templates/project/plugins.sbt | 2 +- play-scala/rest-api/project/plugins.sbt | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/play-scala/application-tests/project/plugins.sbt b/play-scala/application-tests/project/plugins.sbt index 19a33600e..ac3d0336e 100644 --- a/play-scala/application-tests/project/plugins.sbt +++ b/play-scala/application-tests/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.9.0") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.0") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.16.2") diff --git a/play-scala/async-tasks/project/plugins.sbt b/play-scala/async-tasks/project/plugins.sbt index 3e636d982..3003e5a9e 100644 --- a/play-scala/async-tasks/project/plugins.sbt +++ b/play-scala/async-tasks/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.9.0") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.0") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") diff --git a/play-scala/caching-in-play/project/plugins.sbt b/play-scala/caching-in-play/project/plugins.sbt index ed029a901..f1b17c2d8 100644 --- a/play-scala/caching-in-play/project/plugins.sbt +++ b/play-scala/caching-in-play/project/plugins.sbt @@ -1,3 +1,3 @@ -addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.9.0") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.0") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.0") diff --git a/play-scala/configuration-access/project/plugins.sbt b/play-scala/configuration-access/project/plugins.sbt index ed029a901..f1b17c2d8 100644 --- a/play-scala/configuration-access/project/plugins.sbt +++ b/play-scala/configuration-access/project/plugins.sbt @@ -1,3 +1,3 @@ -addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.9.0") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.0") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.0") diff --git a/play-scala/custom-error-handling/project/plugins.sbt b/play-scala/custom-error-handling/project/plugins.sbt index 3e636d982..3003e5a9e 100644 --- a/play-scala/custom-error-handling/project/plugins.sbt +++ b/play-scala/custom-error-handling/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.9.0") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.0") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") diff --git a/play-scala/dependency-injection/project/plugins.sbt b/play-scala/dependency-injection/project/plugins.sbt index 693af2c2a..373101891 100644 --- a/play-scala/dependency-injection/project/plugins.sbt +++ b/play-scala/dependency-injection/project/plugins.sbt @@ -1,3 +1,3 @@ -addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.9.0") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.0") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.2") diff --git a/play-scala/introduction-to-play/project/plugins.sbt b/play-scala/introduction-to-play/project/plugins.sbt index 3e636d982..3003e5a9e 100644 --- a/play-scala/introduction-to-play/project/plugins.sbt +++ b/play-scala/introduction-to-play/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.9.0") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.0") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") diff --git a/play-scala/play-static-assets/project/plugins.sbt b/play-scala/play-static-assets/project/plugins.sbt index ce1b002fc..18f3c1ad9 100644 --- a/play-scala/play-static-assets/project/plugins.sbt +++ b/play-scala/play-static-assets/project/plugins.sbt @@ -1,4 +1,4 @@ -addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.9.0") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.0") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") addSbtPlugin("com.typesafe.sbt" % "sbt-coffeescript" % "1.0.2") addSbtPlugin("com.github.platypii" % "sbt-typescript" % "4.6.4") diff --git a/play-scala/play-templates/project/plugins.sbt b/play-scala/play-templates/project/plugins.sbt index 3e636d982..3003e5a9e 100644 --- a/play-scala/play-templates/project/plugins.sbt +++ b/play-scala/play-templates/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.9.0") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.0") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") diff --git a/play-scala/rest-api/project/plugins.sbt b/play-scala/rest-api/project/plugins.sbt index 3e636d982..3003e5a9e 100644 --- a/play-scala/rest-api/project/plugins.sbt +++ b/play-scala/rest-api/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.9.0") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.0") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") From 32a125228c922c5e9821e4d1de7a9e80b4e7035e Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 3 Nov 2023 08:15:03 +0000 Subject: [PATCH 0070/1318] Update play-slick, play-slick-evolutions from 5.2.0-RC1 to 5.2.0-RC2 --- play-scala/application-tests/build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/play-scala/application-tests/build.sbt b/play-scala/application-tests/build.sbt index 8d2a6229b..f086b4918 100644 --- a/play-scala/application-tests/build.sbt +++ b/play-scala/application-tests/build.sbt @@ -10,7 +10,7 @@ scalaVersion := ScalaVersions.scala2Version libraryDependencies += guice libraryDependencies += "com.h2database" % "h2" % "1.4.200" libraryDependencies += "org.postgresql" % "postgresql" % "42.2.27" -libraryDependencies += "com.typesafe.play" %% "play-slick" % "5.2.0-RC1" -libraryDependencies += "com.typesafe.play" %% "play-slick-evolutions" % "5.2.0-RC1" +libraryDependencies += "com.typesafe.play" %% "play-slick" % "5.2.0-RC2" +libraryDependencies += "com.typesafe.play" %% "play-slick-evolutions" % "5.2.0-RC2" libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "6.0.0" % Test libraryDependencies += "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % Test From 11958a934747eb7a3f385723826b41e85e75bf5c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 3 Nov 2023 08:15:28 +0000 Subject: [PATCH 0071/1318] Update de.flapdoodle.embed.mongo from 4.9.2 to 4.9.3 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index dcddccc44..5c9073725 100644 --- a/build.sbt +++ b/build.sbt @@ -10,7 +10,7 @@ val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.2" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.2" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV val logback = "ch.qos.logback" % "logback-classic" % "1.4.11" -val embedMongoVersion = "4.9.2" +val embedMongoVersion = "4.9.3" val scalaTestDeps = Seq( "org.scalatest" %% "scalatest" % "3.2.17" % Test, @@ -525,7 +525,7 @@ lazy val spark_scala = (project in file("spark-scala")) ) ++ scalaTestDeps, fork := true, javaOptions ++= Seq( - "--add-exports=java.base/sun.nio.ch=ALL-UNNAMED" //Added for JDK 17 issue with Spark + "--add-exports=java.base/sun.nio.ch=ALL-UNNAMED" // Added for JDK 17 issue with Spark ) ) From 3550510714596978d8d4e0f1f1b2d77aafca5a4b Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 3 Nov 2023 08:15:36 +0000 Subject: [PATCH 0072/1318] Update circe-yaml from 0.14.2 to 1.15.0 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index dcddccc44..842cd338b 100644 --- a/build.sbt +++ b/build.sbt @@ -413,7 +413,7 @@ lazy val scala_libraries_6 = (project in file("scala-libraries-6")) scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps, libraryDependencies ++= Seq( - "io.circe" %% "circe-yaml" % "0.14.2", + "io.circe" %% "circe-yaml" % "1.15.0", "io.circe" %% "circe-generic" % "0.14.6", "io.circe" %% "circe-parser" % "0.14.6" ) @@ -525,7 +525,7 @@ lazy val spark_scala = (project in file("spark-scala")) ) ++ scalaTestDeps, fork := true, javaOptions ++= Seq( - "--add-exports=java.base/sun.nio.ch=ALL-UNNAMED" //Added for JDK 17 issue with Spark + "--add-exports=java.base/sun.nio.ch=ALL-UNNAMED" // Added for JDK 17 issue with Spark ) ) From d3d4e645029006d1b97a94e7982f447d428dde4d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 3 Nov 2023 08:15:48 +0000 Subject: [PATCH 0073/1318] Update jetty-webapp from 11.0.17 to 11.0.18 --- scalatra/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scalatra/build.sbt b/scalatra/build.sbt index 050db4d44..557360d04 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -9,7 +9,7 @@ libraryDependencies ++= Seq( "org.scalatra" %% "scalatra" % ScalatraVersion, "org.scalatra" %% "scalatra-scalatest" % ScalatraVersion % "test", "ch.qos.logback" % "logback-classic" % "1.4.11" % "runtime", - "org.eclipse.jetty" % "jetty-webapp" % "11.0.17" % "container", + "org.eclipse.jetty" % "jetty-webapp" % "11.0.18" % "container", "javax.servlet" % "javax.servlet-api" % "4.0.1" % "provided", "org.scalatra" %% "scalatra-auth" % ScalatraVersion, "org.scalatra" %% "scalatra-json" % "2.8.4", From fb09b30ffbc942034938dfc381578ec4d90767c7 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 3 Nov 2023 08:15:57 +0000 Subject: [PATCH 0074/1318] Update mockito-core from 5.6.0 to 5.7.0 --- play-scala/caching-in-play/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/play-scala/caching-in-play/build.sbt b/play-scala/caching-in-play/build.sbt index 073fcd4e8..d0e24fe33 100644 --- a/play-scala/caching-in-play/build.sbt +++ b/play-scala/caching-in-play/build.sbt @@ -11,6 +11,6 @@ libraryDependencies += guice libraryDependencies += caffeine libraryDependencies += ws libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "5.0.0" % Test -libraryDependencies += "org.mockito" % "mockito-core" % "5.6.0" % Test +libraryDependencies += "org.mockito" % "mockito-core" % "5.7.0" % Test PlayKeys.devSettings += "play.server.http.port" -> "9000" From c974676a2c15f72110784313c0623e41bf4d6d50 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 3 Nov 2023 08:16:09 +0000 Subject: [PATCH 0075/1318] Update mockito-scala_2.13 from 1.17.27 to 1.17.29 --- play-scala/configuration-access/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/play-scala/configuration-access/build.sbt b/play-scala/configuration-access/build.sbt index 3bca1bfc9..74dc224e2 100644 --- a/play-scala/configuration-access/build.sbt +++ b/play-scala/configuration-access/build.sbt @@ -9,7 +9,7 @@ scalaVersion := ScalaVersions.scala2Version libraryDependencies += guice libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "5.0.0" % Test -libraryDependencies += "org.mockito" % "mockito-scala_2.13" % "1.17.27" % Test +libraryDependencies += "org.mockito" % "mockito-scala_2.13" % "1.17.29" % Test // Adds additional packages into Twirl //TwirlKeys.templateImports += "com.baeldung.controllers._" From f6d2a7dee01309279a7370f46b919754fd13fc89 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 3 Nov 2023 08:16:39 +0000 Subject: [PATCH 0076/1318] Update s3 from 2.21.7 to 2.21.14 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index dcddccc44..14f7b23d6 100644 --- a/build.sbt +++ b/build.sbt @@ -365,7 +365,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "org.testcontainers" % "pulsar" % "1.19.1" % IntegrationTest ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "s3" % "2.21.7", + "software.amazon.awssdk" % "s3" % "2.21.14", "com.amazonaws" % "aws-java-sdk-s3" % "1.12.573" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.0" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.0" % IntegrationTest @@ -525,7 +525,7 @@ lazy val spark_scala = (project in file("spark-scala")) ) ++ scalaTestDeps, fork := true, javaOptions ++= Seq( - "--add-exports=java.base/sun.nio.ch=ALL-UNNAMED" //Added for JDK 17 issue with Spark + "--add-exports=java.base/sun.nio.ch=ALL-UNNAMED" // Added for JDK 17 issue with Spark ) ) From daf61beb7124646101b5a2294e6ed01ef486b19c Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 3 Nov 2023 17:51:17 +0100 Subject: [PATCH 0077/1318] Upgraded sbt version and deleted unnecessary build.properties file --- play-scala/application-tests/project/build.properties | 1 - play-scala/project/build.properties | 1 - scala-lang/project/build.properties | 1 - scala-test/project/build.properties | 1 - scala3-lang-2/project/build.properties | 1 - scala3-lang/project/build.properties | 1 - 6 files changed, 6 deletions(-) delete mode 100644 play-scala/application-tests/project/build.properties delete mode 100644 play-scala/project/build.properties delete mode 100644 scala-lang/project/build.properties delete mode 100644 scala-test/project/build.properties delete mode 100644 scala3-lang-2/project/build.properties delete mode 100644 scala3-lang/project/build.properties diff --git a/play-scala/application-tests/project/build.properties b/play-scala/application-tests/project/build.properties deleted file mode 100644 index e8a1e246e..000000000 --- a/play-scala/application-tests/project/build.properties +++ /dev/null @@ -1 +0,0 @@ -sbt.version=1.9.7 diff --git a/play-scala/project/build.properties b/play-scala/project/build.properties deleted file mode 100644 index 875b706a8..000000000 --- a/play-scala/project/build.properties +++ /dev/null @@ -1 +0,0 @@ -sbt.version=1.9.2 diff --git a/scala-lang/project/build.properties b/scala-lang/project/build.properties deleted file mode 100644 index 797e7ccfd..000000000 --- a/scala-lang/project/build.properties +++ /dev/null @@ -1 +0,0 @@ -sbt.version=1.3.10 diff --git a/scala-test/project/build.properties b/scala-test/project/build.properties deleted file mode 100644 index 06703e34d..000000000 --- a/scala-test/project/build.properties +++ /dev/null @@ -1 +0,0 @@ -sbt.version=1.3.9 diff --git a/scala3-lang-2/project/build.properties b/scala3-lang-2/project/build.properties deleted file mode 100644 index e64c208ff..000000000 --- a/scala3-lang-2/project/build.properties +++ /dev/null @@ -1 +0,0 @@ -sbt.version=1.5.8 diff --git a/scala3-lang/project/build.properties b/scala3-lang/project/build.properties deleted file mode 100644 index e64c208ff..000000000 --- a/scala3-lang/project/build.properties +++ /dev/null @@ -1 +0,0 @@ -sbt.version=1.5.8 From 5b986dd2394585ae66e00f4a40b45c3d13dd958c Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 3 Nov 2023 18:11:22 +0100 Subject: [PATCH 0078/1318] Added scalatra back to scala-steward --- .scala-steward.conf | 2 +- scalatra/build.sbt | 4 ++-- scalatra/project/plugins.sbt | 5 +++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.scala-steward.conf b/.scala-steward.conf index 6ae429116..4990ecd64 100644 --- a/.scala-steward.conf +++ b/.scala-steward.conf @@ -40,4 +40,4 @@ updates.pin = [] # Default: "${default}" which is equivalent to "Update ${artifactName} to ${nextVersion}" commits.message = "Update ${artifactName} from ${currentVersion} to ${nextVersion}" -buildRoots = ["."] +buildRoots = [".", "scalatra"] diff --git a/scalatra/build.sbt b/scalatra/build.sbt index 050db4d44..77871a517 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -14,8 +14,8 @@ libraryDependencies ++= Seq( "org.scalatra" %% "scalatra-auth" % ScalatraVersion, "org.scalatra" %% "scalatra-json" % "2.8.4", "org.json4s" %% "json4s-jackson" % "4.0.6", - "com.typesafe.slick" %% "slick" % "3.3.3", - "com.h2database" % "h2" % "1.4.196", + "com.typesafe.slick" %% "slick" % "3.4.1", + "com.h2database" % "h2" % "2.1.214", "com.mchange" % "c3p0" % "0.9.5.5" ) libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always diff --git a/scalatra/project/plugins.sbt b/scalatra/project/plugins.sbt index 2df87dec0..ea085d43e 100644 --- a/scalatra/project/plugins.sbt +++ b/scalatra/project/plugins.sbt @@ -1,2 +1,3 @@ -addSbtPlugin("com.typesafe.sbt" % "sbt-twirl" % "1.4.2") -addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "4.2.1") +addSbtPlugin("com.typesafe.play" % "sbt-twirl" % "1.6.2") +addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "4.2.4") +libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always \ No newline at end of file From 8dc4285ed9b48d21d57a5602d68746fbe646e478 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 3 Nov 2023 18:15:11 +0100 Subject: [PATCH 0079/1318] Added build.properties for scalatra --- scalatra/project/build.properties | 1 + 1 file changed, 1 insertion(+) create mode 100644 scalatra/project/build.properties diff --git a/scalatra/project/build.properties b/scalatra/project/build.properties new file mode 100644 index 000000000..e8a1e246e --- /dev/null +++ b/scalatra/project/build.properties @@ -0,0 +1 @@ +sbt.version=1.9.7 From 0a94a8e032e15640dde66ccf0a71917765534cb9 Mon Sep 17 00:00:00 2001 From: Bruno Unna Date: Sat, 4 Nov 2023 11:12:06 +0000 Subject: [PATCH 0080/1318] Remove type declaration for arrays --- .../baeldung/scala/immutablearrays/ImmutableArraySpec.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scala3-lang-3/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala b/scala3-lang-3/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala index ea1957a08..f56bca889 100644 --- a/scala3-lang-3/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala +++ b/scala3-lang-3/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala @@ -9,8 +9,8 @@ class ImmutableArraySpec extends AnyWordSpec { case class Cat(override val name: String, override val age: Int) extends Pet(name = name, age = age) - val dogs: IArray[Dog] = IArray(Dog("champ", 2), Dog("barky", 3)) - val cats: IArray[Cat] = IArray(Cat("overlord", 3), Cat("silky", 5)) + val dogs = IArray(Dog("champ", 2), Dog("barky", 3)) + val cats = IArray(Cat("overlord", 3), Cat("silky", 5)) "dogs and cats" should { "get along together" in { From c3533524bbc12045a11c9a45dcb65c18336b6a00 Mon Sep 17 00:00:00 2001 From: edizor <113095366+edizor@users.noreply.github.com> Date: Sun, 5 Nov 2023 13:56:37 +0800 Subject: [PATCH 0081/1318] Update README.md [skip ci] --- scala-core-collections-3/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-core-collections-3/README.md b/scala-core-collections-3/README.md index 344b68d69..d606d06a9 100644 --- a/scala-core-collections-3/README.md +++ b/scala-core-collections-3/README.md @@ -5,3 +5,4 @@ ## Relevant Articles - [Get a List Item by Index in Scala](https://www.baeldung.com/scala/list-get-item-by-index) - [Moving Averages in Scala: A Tale of Two Approaches](https://www.baeldung.com/scala/moving-averages) +- [Implement a Fixed-Size List in Scala](https://www.baeldung.com/scala/list-finite-size) From c9671f1901d8b0089bd4c862c8ebb50c3ac70707 Mon Sep 17 00:00:00 2001 From: edizor <113095366+edizor@users.noreply.github.com> Date: Sun, 5 Nov 2023 13:59:10 +0800 Subject: [PATCH 0082/1318] Update README.md [skip ci] --- scala3-lang-2/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala3-lang-2/README.md b/scala3-lang-2/README.md index 9e51ae5cc..ead4a2699 100644 --- a/scala3-lang-2/README.md +++ b/scala3-lang-2/README.md @@ -10,3 +10,4 @@ - [Difference Between NonFatal and Exception in Scala](https://www.baeldung.com/scala/nonfatal-vs-exception) - [Introduction to the @threadUnsafe Annotation in Scala 3](https://www.baeldung.com/scala/scala-3-threadunsafe) - [locally Block In Scala](https://www.baeldung.com/scala/locally-block) +- [Match Expression Improvements in Scala 3](https://www.baeldung.com/scala/scala-3-match-expression) From 6edda183ab88123c787167406aa19c0bbb2d0202 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sun, 5 Nov 2023 10:52:45 +0100 Subject: [PATCH 0083/1318] renamed scala-core module to scala-core-1 --- build.sbt | 4 ++-- {scala-core => scala-core-1}/README.md | 0 {scala-core => scala-core-1}/build.sbt | 0 .../com/baeldung/scala/exceptionhandling/Calculator.scala | 0 .../com/baeldung/scala/exceptionhandling/Examples.scala | 0 .../baeldung/scala/exceptionhandling/HandlingWithEither.scala | 0 .../scala/exceptionhandling/HandlingWithMonadError.scala | 0 .../baeldung/scala/exceptionhandling/HandlingWithOption.scala | 0 .../baeldung/scala/exceptionhandling/HandlingWithTry.scala | 0 .../scala/exceptionhandling/HandlingWithTryOption.scala | 0 .../scala/exceptionhandling/HandlingWithValidated.scala | 0 .../com/baeldung/scala/exceptionhandling/LegacyErrors.scala | 0 .../com/baeldung/scala/exceptionhandling/LegacyService.scala | 0 .../com/baeldung/scala/exceptionhandling/Resource.scala | 0 .../com/baeldung/scala/exceptionhandling/Session.scala | 0 .../scala-2/com/baeldung/scala/exceptionhandling/User.scala | 0 .../baeldung/scala/exceptionhandling/ValidationErrors.scala | 0 .../src/main/scala-2/com/baeldung/scala/forloop/ForLoop.scala | 0 .../com/baeldung/scala/higherorder/HigherOrderFunctions.scala | 0 .../baeldung/scala/introduction/ControlStructuresDemo.scala | 0 .../scala-2/com/baeldung/scala/introduction/Employee.scala | 0 .../scala-2/com/baeldung/scala/introduction/HelloWorld.scala | 0 .../main/scala-2/com/baeldung/scala/introduction/IntSet.scala | 0 .../main/scala-2/com/baeldung/scala/introduction/Utils.scala | 0 .../src/main/scala-2/com/baeldung/scala/lazyval/LazyVal.scala | 0 .../com/baeldung/scala/partialfunctions/SquareRoot.scala | 0 .../com/baeldung/scala/partialfunctions/SwapIntegerSign.scala | 0 .../com/baeldung/scala/patternmatching/PatternMatching.scala | 0 .../com/baeldung/scala/sealedkeyword/AlgebraicDataType.scala | 0 .../scala/sealedkeyword/SealedCaseObjectsAsEnum.scala | 0 .../com/baeldung/scala/sealedkeyword/SealedClassExample.scala | 0 .../scala/sealedkeyword/SelaedExtendedDifferentFile.scala | 0 .../main/scala-2/com/baeldung/scala/traits/Composition.scala | 0 .../src/main/scala-2/com/baeldung/scala/traits/Mixing.scala | 0 .../scala-2/com/baeldung/scala/traits/MixingAlgorithm.scala | 0 .../scala-2/com/baeldung/scala/traits/Orchestration.scala | 0 .../main/scala-2/com/baeldung/scala/traits/RecordLabel.scala | 0 .../src/main/scala-2/com/baeldung/scala/traits/Score.scala | 0 .../scala-2/com/baeldung/scala/traits/SoundProduction.scala | 0 .../src/main/scala-2/com/baeldung/scala/traits/Vocals.scala | 0 .../src/main/scala-2/com/baeldung/scala/tuples/Tuples.scala | 0 .../src/main/scala-3/com/baeldung/scala/traits/Author.scala | 0 .../com/baeldung/scala/traits/MultipleInheritance.scala | 0 .../src/main/scala-3/com/baeldung/scala/traits/Poet.scala | 0 .../src/main/scala-3/com/baeldung/scala/traits/Writer.scala | 0 .../baeldung/scala/exceptionhandling/ExamplesUnitTest.scala | 0 .../IdiomaticExceptionHandlingUnitTest.scala | 0 .../scala-2/com/baeldung/scala/forloop/ForLoopUnitTest.scala | 0 .../higherorder/HigherOrderFunctionsExamplesUnitTest.scala | 0 .../scala/higherorder/HigherOrderFunctionsUnitTest.scala | 0 .../scala/introduction/ControlStructuresDemoUnitTest.scala | 0 .../com/baeldung/scala/introduction/EmployeeUnitTest.scala | 0 .../com/baeldung/scala/introduction/IntSetUnitTest.scala | 0 .../com/baeldung/scala/introduction/UtilsUnitTest.scala | 0 .../scala-2/com/baeldung/scala/lazyval/LazyValUnitTest.scala | 0 .../baeldung/scala/partialfunctions/SquareRootUnitTest.scala | 0 .../scala/partialfunctions/SwapIntegerSignUnitTest.scala | 0 .../scala/patternmatching/PatternMatchingUnitTest.scala | 0 .../scala-2/com/baeldung/scala/traits/ScoreUnitTest.scala | 0 .../scala-2/com/baeldung/scala/tuples/TuplesUnitTest.scala | 0 .../baeldung/scala/traits/MultipleInheritanceUnitTest.scala | 0 .../com/baeldung/scala/traits/TraitParametersUnitTest.scala | 0 62 files changed, 2 insertions(+), 2 deletions(-) rename {scala-core => scala-core-1}/README.md (100%) rename {scala-core => scala-core-1}/build.sbt (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/exceptionhandling/Calculator.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/exceptionhandling/Examples.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithEither.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithMonadError.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithOption.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTry.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTryOption.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithValidated.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyErrors.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyService.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/exceptionhandling/Resource.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/exceptionhandling/Session.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/exceptionhandling/User.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/exceptionhandling/ValidationErrors.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/forloop/ForLoop.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/higherorder/HigherOrderFunctions.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/introduction/ControlStructuresDemo.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/introduction/Employee.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/introduction/HelloWorld.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/introduction/IntSet.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/introduction/Utils.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/lazyval/LazyVal.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/partialfunctions/SquareRoot.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/partialfunctions/SwapIntegerSign.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/patternmatching/PatternMatching.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/sealedkeyword/AlgebraicDataType.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/sealedkeyword/SealedCaseObjectsAsEnum.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/sealedkeyword/SealedClassExample.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/sealedkeyword/SelaedExtendedDifferentFile.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/traits/Composition.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/traits/Mixing.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/traits/MixingAlgorithm.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/traits/Orchestration.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/traits/RecordLabel.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/traits/Score.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/traits/SoundProduction.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/traits/Vocals.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-2/com/baeldung/scala/tuples/Tuples.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-3/com/baeldung/scala/traits/Author.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-3/com/baeldung/scala/traits/MultipleInheritance.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-3/com/baeldung/scala/traits/Poet.scala (100%) rename {scala-core => scala-core-1}/src/main/scala-3/com/baeldung/scala/traits/Writer.scala (100%) rename {scala-core => scala-core-1}/src/test/scala-2/com/baeldung/scala/exceptionhandling/ExamplesUnitTest.scala (100%) rename {scala-core => scala-core-1}/src/test/scala-2/com/baeldung/scala/exceptionhandling/IdiomaticExceptionHandlingUnitTest.scala (100%) rename {scala-core => scala-core-1}/src/test/scala-2/com/baeldung/scala/forloop/ForLoopUnitTest.scala (100%) rename {scala-core => scala-core-1}/src/test/scala-2/com/baeldung/scala/higherorder/HigherOrderFunctionsExamplesUnitTest.scala (100%) rename {scala-core => scala-core-1}/src/test/scala-2/com/baeldung/scala/higherorder/HigherOrderFunctionsUnitTest.scala (100%) rename {scala-core => scala-core-1}/src/test/scala-2/com/baeldung/scala/introduction/ControlStructuresDemoUnitTest.scala (100%) rename {scala-core => scala-core-1}/src/test/scala-2/com/baeldung/scala/introduction/EmployeeUnitTest.scala (100%) rename {scala-core => scala-core-1}/src/test/scala-2/com/baeldung/scala/introduction/IntSetUnitTest.scala (100%) rename {scala-core => scala-core-1}/src/test/scala-2/com/baeldung/scala/introduction/UtilsUnitTest.scala (100%) rename {scala-core => scala-core-1}/src/test/scala-2/com/baeldung/scala/lazyval/LazyValUnitTest.scala (100%) rename {scala-core => scala-core-1}/src/test/scala-2/com/baeldung/scala/partialfunctions/SquareRootUnitTest.scala (100%) rename {scala-core => scala-core-1}/src/test/scala-2/com/baeldung/scala/partialfunctions/SwapIntegerSignUnitTest.scala (100%) rename {scala-core => scala-core-1}/src/test/scala-2/com/baeldung/scala/patternmatching/PatternMatchingUnitTest.scala (100%) rename {scala-core => scala-core-1}/src/test/scala-2/com/baeldung/scala/traits/ScoreUnitTest.scala (100%) rename {scala-core => scala-core-1}/src/test/scala-2/com/baeldung/scala/tuples/TuplesUnitTest.scala (100%) rename {scala-core => scala-core-1}/src/test/scala-3/com/baeldung/scala/traits/MultipleInheritanceUnitTest.scala (100%) rename {scala-core => scala-core-1}/src/test/scala-3/com/baeldung/scala/traits/TraitParametersUnitTest.scala (100%) diff --git a/build.sbt b/build.sbt index e9034a837..6b7ef5267 100644 --- a/build.sbt +++ b/build.sbt @@ -22,9 +22,9 @@ val scalaTestDeps = Seq( val scalaMock = "org.scalamock" %% "scalamock" % "5.2.0" % Test val zioVersion = "2.0.18" -lazy val scala_core = (project in file("scala-core")) +lazy val scala_core_1 = (project in file("scala-core-1")) .settings( - name := "scala-core", + name := "scala-core-1", libraryDependencies ++= Seq( jUnitInterface, diff --git a/scala-core/README.md b/scala-core-1/README.md similarity index 100% rename from scala-core/README.md rename to scala-core-1/README.md diff --git a/scala-core/build.sbt b/scala-core-1/build.sbt similarity index 100% rename from scala-core/build.sbt rename to scala-core-1/build.sbt diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Calculator.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/Calculator.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Calculator.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/Calculator.scala diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Examples.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/Examples.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Examples.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/Examples.scala diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithEither.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithEither.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithEither.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithEither.scala diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithMonadError.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithMonadError.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithMonadError.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithMonadError.scala diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithOption.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithOption.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithOption.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithOption.scala diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTry.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTry.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTry.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTry.scala diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTryOption.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTryOption.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTryOption.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTryOption.scala diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithValidated.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithValidated.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithValidated.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithValidated.scala diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyErrors.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyErrors.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyErrors.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyErrors.scala diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyService.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyService.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyService.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyService.scala diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Resource.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/Resource.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Resource.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/Resource.scala diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Session.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/Session.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Session.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/Session.scala diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/User.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/User.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/User.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/User.scala diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/ValidationErrors.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/ValidationErrors.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/ValidationErrors.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/ValidationErrors.scala diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/forloop/ForLoop.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/forloop/ForLoop.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/forloop/ForLoop.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/forloop/ForLoop.scala diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/higherorder/HigherOrderFunctions.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/higherorder/HigherOrderFunctions.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/higherorder/HigherOrderFunctions.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/higherorder/HigherOrderFunctions.scala diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/introduction/ControlStructuresDemo.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/introduction/ControlStructuresDemo.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/introduction/ControlStructuresDemo.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/introduction/ControlStructuresDemo.scala diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/introduction/Employee.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/introduction/Employee.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/introduction/Employee.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/introduction/Employee.scala diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/introduction/HelloWorld.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/introduction/HelloWorld.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/introduction/HelloWorld.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/introduction/HelloWorld.scala diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/introduction/IntSet.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/introduction/IntSet.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/introduction/IntSet.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/introduction/IntSet.scala diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/introduction/Utils.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/introduction/Utils.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/introduction/Utils.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/introduction/Utils.scala diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/lazyval/LazyVal.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/lazyval/LazyVal.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/lazyval/LazyVal.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/lazyval/LazyVal.scala diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/partialfunctions/SquareRoot.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/partialfunctions/SquareRoot.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/partialfunctions/SquareRoot.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/partialfunctions/SquareRoot.scala diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/partialfunctions/SwapIntegerSign.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/partialfunctions/SwapIntegerSign.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/partialfunctions/SwapIntegerSign.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/partialfunctions/SwapIntegerSign.scala diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/patternmatching/PatternMatching.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/patternmatching/PatternMatching.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/patternmatching/PatternMatching.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/patternmatching/PatternMatching.scala diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/sealedkeyword/AlgebraicDataType.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/sealedkeyword/AlgebraicDataType.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/sealedkeyword/AlgebraicDataType.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/sealedkeyword/AlgebraicDataType.scala diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/sealedkeyword/SealedCaseObjectsAsEnum.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/sealedkeyword/SealedCaseObjectsAsEnum.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/sealedkeyword/SealedCaseObjectsAsEnum.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/sealedkeyword/SealedCaseObjectsAsEnum.scala diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/sealedkeyword/SealedClassExample.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/sealedkeyword/SealedClassExample.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/sealedkeyword/SealedClassExample.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/sealedkeyword/SealedClassExample.scala diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/sealedkeyword/SelaedExtendedDifferentFile.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/sealedkeyword/SelaedExtendedDifferentFile.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/sealedkeyword/SelaedExtendedDifferentFile.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/sealedkeyword/SelaedExtendedDifferentFile.scala diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/traits/Composition.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/traits/Composition.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/traits/Composition.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/traits/Composition.scala diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/traits/Mixing.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/traits/Mixing.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/traits/Mixing.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/traits/Mixing.scala diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/traits/MixingAlgorithm.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/traits/MixingAlgorithm.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/traits/MixingAlgorithm.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/traits/MixingAlgorithm.scala diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/traits/Orchestration.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/traits/Orchestration.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/traits/Orchestration.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/traits/Orchestration.scala diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/traits/RecordLabel.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/traits/RecordLabel.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/traits/RecordLabel.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/traits/RecordLabel.scala diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/traits/Score.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/traits/Score.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/traits/Score.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/traits/Score.scala diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/traits/SoundProduction.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/traits/SoundProduction.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/traits/SoundProduction.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/traits/SoundProduction.scala diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/traits/Vocals.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/traits/Vocals.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/traits/Vocals.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/traits/Vocals.scala diff --git a/scala-core/src/main/scala-2/com/baeldung/scala/tuples/Tuples.scala b/scala-core-1/src/main/scala-2/com/baeldung/scala/tuples/Tuples.scala similarity index 100% rename from scala-core/src/main/scala-2/com/baeldung/scala/tuples/Tuples.scala rename to scala-core-1/src/main/scala-2/com/baeldung/scala/tuples/Tuples.scala diff --git a/scala-core/src/main/scala-3/com/baeldung/scala/traits/Author.scala b/scala-core-1/src/main/scala-3/com/baeldung/scala/traits/Author.scala similarity index 100% rename from scala-core/src/main/scala-3/com/baeldung/scala/traits/Author.scala rename to scala-core-1/src/main/scala-3/com/baeldung/scala/traits/Author.scala diff --git a/scala-core/src/main/scala-3/com/baeldung/scala/traits/MultipleInheritance.scala b/scala-core-1/src/main/scala-3/com/baeldung/scala/traits/MultipleInheritance.scala similarity index 100% rename from scala-core/src/main/scala-3/com/baeldung/scala/traits/MultipleInheritance.scala rename to scala-core-1/src/main/scala-3/com/baeldung/scala/traits/MultipleInheritance.scala diff --git a/scala-core/src/main/scala-3/com/baeldung/scala/traits/Poet.scala b/scala-core-1/src/main/scala-3/com/baeldung/scala/traits/Poet.scala similarity index 100% rename from scala-core/src/main/scala-3/com/baeldung/scala/traits/Poet.scala rename to scala-core-1/src/main/scala-3/com/baeldung/scala/traits/Poet.scala diff --git a/scala-core/src/main/scala-3/com/baeldung/scala/traits/Writer.scala b/scala-core-1/src/main/scala-3/com/baeldung/scala/traits/Writer.scala similarity index 100% rename from scala-core/src/main/scala-3/com/baeldung/scala/traits/Writer.scala rename to scala-core-1/src/main/scala-3/com/baeldung/scala/traits/Writer.scala diff --git a/scala-core/src/test/scala-2/com/baeldung/scala/exceptionhandling/ExamplesUnitTest.scala b/scala-core-1/src/test/scala-2/com/baeldung/scala/exceptionhandling/ExamplesUnitTest.scala similarity index 100% rename from scala-core/src/test/scala-2/com/baeldung/scala/exceptionhandling/ExamplesUnitTest.scala rename to scala-core-1/src/test/scala-2/com/baeldung/scala/exceptionhandling/ExamplesUnitTest.scala diff --git a/scala-core/src/test/scala-2/com/baeldung/scala/exceptionhandling/IdiomaticExceptionHandlingUnitTest.scala b/scala-core-1/src/test/scala-2/com/baeldung/scala/exceptionhandling/IdiomaticExceptionHandlingUnitTest.scala similarity index 100% rename from scala-core/src/test/scala-2/com/baeldung/scala/exceptionhandling/IdiomaticExceptionHandlingUnitTest.scala rename to scala-core-1/src/test/scala-2/com/baeldung/scala/exceptionhandling/IdiomaticExceptionHandlingUnitTest.scala diff --git a/scala-core/src/test/scala-2/com/baeldung/scala/forloop/ForLoopUnitTest.scala b/scala-core-1/src/test/scala-2/com/baeldung/scala/forloop/ForLoopUnitTest.scala similarity index 100% rename from scala-core/src/test/scala-2/com/baeldung/scala/forloop/ForLoopUnitTest.scala rename to scala-core-1/src/test/scala-2/com/baeldung/scala/forloop/ForLoopUnitTest.scala diff --git a/scala-core/src/test/scala-2/com/baeldung/scala/higherorder/HigherOrderFunctionsExamplesUnitTest.scala b/scala-core-1/src/test/scala-2/com/baeldung/scala/higherorder/HigherOrderFunctionsExamplesUnitTest.scala similarity index 100% rename from scala-core/src/test/scala-2/com/baeldung/scala/higherorder/HigherOrderFunctionsExamplesUnitTest.scala rename to scala-core-1/src/test/scala-2/com/baeldung/scala/higherorder/HigherOrderFunctionsExamplesUnitTest.scala diff --git a/scala-core/src/test/scala-2/com/baeldung/scala/higherorder/HigherOrderFunctionsUnitTest.scala b/scala-core-1/src/test/scala-2/com/baeldung/scala/higherorder/HigherOrderFunctionsUnitTest.scala similarity index 100% rename from scala-core/src/test/scala-2/com/baeldung/scala/higherorder/HigherOrderFunctionsUnitTest.scala rename to scala-core-1/src/test/scala-2/com/baeldung/scala/higherorder/HigherOrderFunctionsUnitTest.scala diff --git a/scala-core/src/test/scala-2/com/baeldung/scala/introduction/ControlStructuresDemoUnitTest.scala b/scala-core-1/src/test/scala-2/com/baeldung/scala/introduction/ControlStructuresDemoUnitTest.scala similarity index 100% rename from scala-core/src/test/scala-2/com/baeldung/scala/introduction/ControlStructuresDemoUnitTest.scala rename to scala-core-1/src/test/scala-2/com/baeldung/scala/introduction/ControlStructuresDemoUnitTest.scala diff --git a/scala-core/src/test/scala-2/com/baeldung/scala/introduction/EmployeeUnitTest.scala b/scala-core-1/src/test/scala-2/com/baeldung/scala/introduction/EmployeeUnitTest.scala similarity index 100% rename from scala-core/src/test/scala-2/com/baeldung/scala/introduction/EmployeeUnitTest.scala rename to scala-core-1/src/test/scala-2/com/baeldung/scala/introduction/EmployeeUnitTest.scala diff --git a/scala-core/src/test/scala-2/com/baeldung/scala/introduction/IntSetUnitTest.scala b/scala-core-1/src/test/scala-2/com/baeldung/scala/introduction/IntSetUnitTest.scala similarity index 100% rename from scala-core/src/test/scala-2/com/baeldung/scala/introduction/IntSetUnitTest.scala rename to scala-core-1/src/test/scala-2/com/baeldung/scala/introduction/IntSetUnitTest.scala diff --git a/scala-core/src/test/scala-2/com/baeldung/scala/introduction/UtilsUnitTest.scala b/scala-core-1/src/test/scala-2/com/baeldung/scala/introduction/UtilsUnitTest.scala similarity index 100% rename from scala-core/src/test/scala-2/com/baeldung/scala/introduction/UtilsUnitTest.scala rename to scala-core-1/src/test/scala-2/com/baeldung/scala/introduction/UtilsUnitTest.scala diff --git a/scala-core/src/test/scala-2/com/baeldung/scala/lazyval/LazyValUnitTest.scala b/scala-core-1/src/test/scala-2/com/baeldung/scala/lazyval/LazyValUnitTest.scala similarity index 100% rename from scala-core/src/test/scala-2/com/baeldung/scala/lazyval/LazyValUnitTest.scala rename to scala-core-1/src/test/scala-2/com/baeldung/scala/lazyval/LazyValUnitTest.scala diff --git a/scala-core/src/test/scala-2/com/baeldung/scala/partialfunctions/SquareRootUnitTest.scala b/scala-core-1/src/test/scala-2/com/baeldung/scala/partialfunctions/SquareRootUnitTest.scala similarity index 100% rename from scala-core/src/test/scala-2/com/baeldung/scala/partialfunctions/SquareRootUnitTest.scala rename to scala-core-1/src/test/scala-2/com/baeldung/scala/partialfunctions/SquareRootUnitTest.scala diff --git a/scala-core/src/test/scala-2/com/baeldung/scala/partialfunctions/SwapIntegerSignUnitTest.scala b/scala-core-1/src/test/scala-2/com/baeldung/scala/partialfunctions/SwapIntegerSignUnitTest.scala similarity index 100% rename from scala-core/src/test/scala-2/com/baeldung/scala/partialfunctions/SwapIntegerSignUnitTest.scala rename to scala-core-1/src/test/scala-2/com/baeldung/scala/partialfunctions/SwapIntegerSignUnitTest.scala diff --git a/scala-core/src/test/scala-2/com/baeldung/scala/patternmatching/PatternMatchingUnitTest.scala b/scala-core-1/src/test/scala-2/com/baeldung/scala/patternmatching/PatternMatchingUnitTest.scala similarity index 100% rename from scala-core/src/test/scala-2/com/baeldung/scala/patternmatching/PatternMatchingUnitTest.scala rename to scala-core-1/src/test/scala-2/com/baeldung/scala/patternmatching/PatternMatchingUnitTest.scala diff --git a/scala-core/src/test/scala-2/com/baeldung/scala/traits/ScoreUnitTest.scala b/scala-core-1/src/test/scala-2/com/baeldung/scala/traits/ScoreUnitTest.scala similarity index 100% rename from scala-core/src/test/scala-2/com/baeldung/scala/traits/ScoreUnitTest.scala rename to scala-core-1/src/test/scala-2/com/baeldung/scala/traits/ScoreUnitTest.scala diff --git a/scala-core/src/test/scala-2/com/baeldung/scala/tuples/TuplesUnitTest.scala b/scala-core-1/src/test/scala-2/com/baeldung/scala/tuples/TuplesUnitTest.scala similarity index 100% rename from scala-core/src/test/scala-2/com/baeldung/scala/tuples/TuplesUnitTest.scala rename to scala-core-1/src/test/scala-2/com/baeldung/scala/tuples/TuplesUnitTest.scala diff --git a/scala-core/src/test/scala-3/com/baeldung/scala/traits/MultipleInheritanceUnitTest.scala b/scala-core-1/src/test/scala-3/com/baeldung/scala/traits/MultipleInheritanceUnitTest.scala similarity index 100% rename from scala-core/src/test/scala-3/com/baeldung/scala/traits/MultipleInheritanceUnitTest.scala rename to scala-core-1/src/test/scala-3/com/baeldung/scala/traits/MultipleInheritanceUnitTest.scala diff --git a/scala-core/src/test/scala-3/com/baeldung/scala/traits/TraitParametersUnitTest.scala b/scala-core-1/src/test/scala-3/com/baeldung/scala/traits/TraitParametersUnitTest.scala similarity index 100% rename from scala-core/src/test/scala-3/com/baeldung/scala/traits/TraitParametersUnitTest.scala rename to scala-core-1/src/test/scala-3/com/baeldung/scala/traits/TraitParametersUnitTest.scala From 9d507b0a1938575a6cfb31f9f681e1bb6ddbc734 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sun, 5 Nov 2023 11:47:24 +0100 Subject: [PATCH 0084/1318] Rearranged modules under relevant groupings --- build.sbt | 54 +++++++++---------- .../{ => scala-core-collections-1}/README.md | 0 .../baeldung/scala/collections/Arrays.scala | 0 .../scala/collections/FoldingLists.scala | 0 .../collections/IterateCollections.scala | 0 .../scala/collections/IterateMap.scala | 0 .../collections/ParallelCollections.scala | 0 .../baeldung/scala/flattening/Flattener.scala | 0 .../scala/mergemaps/CombineIterables.scala | 0 .../removeduplicates/DuplicatesRemover.scala | 0 .../scala/splitlist/ListSplitter.scala | 0 .../baedung/scala/conversions/JavaApi.java | 0 .../collections/FoldingListsUnitTest.scala | 0 .../collections/IterateMapUnitTest.scala | 0 .../ListConcatenationUnitTest.scala | 0 .../scala/collections/MapKeyValue.scala | 0 .../collections/ParallelCollectionTest.scala | 0 .../ConversionWrappersUnitTest.scala | 0 .../JavaToScalaConversionsUnitTest.scala | 0 .../ScalaToJavaConversionsUnitTest.scala | 0 .../scala/flattening/FlattenerSpec.scala | 0 .../scala/mergemaps/MergeMapsUnitTest.scala | 0 .../scala/splitlist/ListSplitterSpec.scala | 0 .../DuplicatesRemoverSpec.scala | 0 .../scala-core-collections-2}/README.md | 0 .../baeldung/scala/filtermap/FilterMap.scala | 0 .../baeldung/scala/firstmatching/Finder.scala | 0 .../baeldung/scala/flattening/Flattener.scala | 0 .../baeldung/scala/lastelement/Finder.scala | 0 .../scala/lazylists/SimpleLazyList.scala | 0 .../baeldung/scala/lazylists/SimpleList.scala | 0 .../RandomFixedSizeSample.scala | 0 .../com/baeldung/scala/rotation/Rotator.scala | 0 .../scala/sublist/SubListOfList.scala | 0 .../AppendAnElementToAnArrayUnitTest.scala | 0 .../scala/filtermap/FilterMapSpec.scala | 0 .../scala/firstmatching/FinderSpec.scala | 0 .../scala/flattening/FlattenerSpec.scala | 0 .../scala/lastelement/FinderSpec.scala | 0 .../scala/lazylists/SimpleLazyListSpec.scala | 0 .../scala/lazylists/SimpleListSpec.scala | 0 .../RandomFixedSizeSampleSpec.scala | 0 .../baeldung/scala/rotation/RotatorSpec.scala | 0 .../scala/subarray/GetASubarrayUnitTest.scala | 0 .../scala/sublist/SubListOfListSpec.scala | 0 .../scala-core-collections-3}/README.md | 0 .../commoncollections/ScalaCollections.scala | 0 .../ArrayBufferUnitTest.scala | 0 .../GetListItemsUnitTest.scala | 0 .../ListMapOperationsUnitTest.scala | 0 .../ListSetOperationsUnitTest.scala | 0 .../ScalaCollectionsUnitTest.scala | 0 .../scala-core-1}/README.md | 0 .../scala-core-1}/build.sbt | 0 .../scala/exceptionhandling/Calculator.scala | 0 .../scala/exceptionhandling/Examples.scala | 0 .../HandlingWithEither.scala | 0 .../HandlingWithMonadError.scala | 0 .../HandlingWithOption.scala | 0 .../exceptionhandling/HandlingWithTry.scala | 0 .../HandlingWithTryOption.scala | 0 .../HandlingWithValidated.scala | 0 .../exceptionhandling/LegacyErrors.scala | 0 .../exceptionhandling/LegacyService.scala | 0 .../scala/exceptionhandling/Resource.scala | 0 .../scala/exceptionhandling/Session.scala | 0 .../scala/exceptionhandling/User.scala | 0 .../exceptionhandling/ValidationErrors.scala | 0 .../com/baeldung/scala/forloop/ForLoop.scala | 0 .../higherorder/HigherOrderFunctions.scala | 0 .../introduction/ControlStructuresDemo.scala | 0 .../scala/introduction/Employee.scala | 0 .../scala/introduction/HelloWorld.scala | 0 .../baeldung/scala/introduction/IntSet.scala | 0 .../baeldung/scala/introduction/Utils.scala | 0 .../com/baeldung/scala/lazyval/LazyVal.scala | 0 .../scala/partialfunctions/SquareRoot.scala | 0 .../partialfunctions/SwapIntegerSign.scala | 0 .../patternmatching/PatternMatching.scala | 0 .../sealedkeyword/AlgebraicDataType.scala | 0 .../SealedCaseObjectsAsEnum.scala | 0 .../sealedkeyword/SealedClassExample.scala | 0 .../SelaedExtendedDifferentFile.scala | 0 .../baeldung/scala/traits/Composition.scala | 0 .../com/baeldung/scala/traits/Mixing.scala | 0 .../scala/traits/MixingAlgorithm.scala | 0 .../baeldung/scala/traits/Orchestration.scala | 0 .../baeldung/scala/traits/RecordLabel.scala | 0 .../com/baeldung/scala/traits/Score.scala | 0 .../scala/traits/SoundProduction.scala | 0 .../com/baeldung/scala/traits/Vocals.scala | 0 .../com/baeldung/scala/tuples/Tuples.scala | 0 .../com/baeldung/scala/traits/Author.scala | 0 .../scala/traits/MultipleInheritance.scala | 0 .../com/baeldung/scala/traits/Poet.scala | 0 .../com/baeldung/scala/traits/Writer.scala | 0 .../exceptionhandling/ExamplesUnitTest.scala | 0 .../IdiomaticExceptionHandlingUnitTest.scala | 0 .../scala/forloop/ForLoopUnitTest.scala | 0 ...HigherOrderFunctionsExamplesUnitTest.scala | 0 .../HigherOrderFunctionsUnitTest.scala | 0 .../ControlStructuresDemoUnitTest.scala | 0 .../scala/introduction/EmployeeUnitTest.scala | 0 .../scala/introduction/IntSetUnitTest.scala | 0 .../scala/introduction/UtilsUnitTest.scala | 0 .../scala/lazyval/LazyValUnitTest.scala | 0 .../partialfunctions/SquareRootUnitTest.scala | 0 .../SwapIntegerSignUnitTest.scala | 0 .../PatternMatchingUnitTest.scala | 0 .../baeldung/scala/traits/ScoreUnitTest.scala | 0 .../scala/tuples/TuplesUnitTest.scala | 0 .../traits/MultipleInheritanceUnitTest.scala | 0 .../traits/TraitParametersUnitTest.scala | 0 .../scala-core-2}/README.md | 0 .../forcomprehension/ForComprehension.java | 0 .../scala/concurrency/FutureAndPromise.scala | 0 .../scala/durationsugar/package.scala | 0 .../exceptionhandling/ExceptionHandling.scala | 0 .../scala/extractorobject/RequestApp.scala | 0 .../baeldung/scala/extractorobject/User.scala | 0 .../forcomprehension/ForComprehension.scala | 0 .../higherkindedtypes/HigherKindedTypes.scala | 0 .../scala/implicitclasses/Currency.scala | 0 .../scala/implicitclasses/Money.scala | 0 .../scala/implicitclasses/MoneySyntax.scala | 0 .../NamedAndDefaultArgs.scala | 0 .../baeldung/scala/selftype/SelfType.scala | 0 .../scala/underscore/UnderscoreUsages.scala | 0 .../FutureAndPromiseUnitTest.scala | 0 .../durationsugar/DurationSugarUnitTest.scala | 0 .../ExceptionHandlingUnitTest.scala | 0 .../HigherKindedTypesUnitTest.scala | 0 .../scala/implicitclasses/MoneyUnitTest.scala | 0 .../NamedAndDefaultArgsUnitTest.scala | 0 .../scala/selftype/SelfTypeUnitTest.scala | 0 .../underscore/UnderscoreUsagesUnitTest.scala | 0 .../scala-core-3}/README.md | 0 .../scala/accessmodifiers/Figure.scala | 0 .../baeldung/scala/accessmodifiers/Star.scala | 0 .../baeldung/scala/await/AwaitFuture.scala | 0 .../baeldung/scala/companionobject/Task.scala | 0 .../implicitparameter/ImplicitParameter.scala | 0 .../NonStrictDataStructures.scala | 0 .../scala/options/OptionBuilder.scala | 0 .../scala/options/OptionExample.scala | 0 .../com/baeldung/scala/options/Player.scala | 0 .../baeldung/scala/options/Tournament.scala | 0 .../baeldung/scala/scaladoc/Carnivore.scala | 0 .../scala/scaladoc/IntervalTimer.scala | 0 .../scala/scaladoc/TasmanianDevil.scala | 0 .../com/baeldung/scala/scaladoc/package.scala | 0 .../scala/typecasts/ErrorHandling.scala | 0 .../scala/typecasts/TypeErasure.scala | 0 .../scala/typecasts/ValueTypeCasting.scala | 0 .../scala/typtag/ClassTagExample.scala | 0 .../scala/typtag/TypeTagExample.scala | 0 .../scala/typtag/WeakTypeTagExample.scala | 0 .../AccessModifiersUnitTest.scala | 0 .../scala/await/AwaitFutureUnitTest.scala | 0 .../scala/companionobject/TaskUnitTest.scala | 0 .../DatatypesAndOpsUnitTest.scala | 0 .../ImplicitParameterUnitTest.scala | 0 .../IteratorVsStreamVsViewUnitTest.scala | 0 .../scala/options/OptionUnitTest.scala | 0 .../options/OptionWhenUnlessUnitTest.scala | 0 .../scala/typecasts/TypeErasureUnitTest.scala | 0 .../typetag/ClassTagExampleUnitTest.scala | 0 .../typetag/TypeTagExampleUnitTest.scala | 0 .../typetag/WeakTypeTagExampleUnitTest.scala | 0 .../scala-core-4}/README.md | 0 .../scala/assertvsrequire/AssertUsage.scala | 0 .../scala/assertvsrequire/RequireUsage.scala | 0 .../scala/constructors/Constructors.scala | 0 .../scala/future/FutureRecovery.scala | 0 .../scala/implicitly/ImplicitlyUsage.scala | 0 .../AwardPunishmentDisipline.scala | 0 .../pathdependenttypes/KeyValueStore.scala | 0 .../PathDependentTypeInnerClasses.scala | 0 .../scala/structuraltypes/Quack.scala | 0 .../structuraltypes/ResourceClosing.scala | 0 .../LookupSwitchExample.scala | 0 .../NotOptimizedExample.scala | 0 .../switchannotation/TableSwitchExample.scala | 0 .../typemembersalias/ListIntFunctions.scala | 0 .../scala/typemembersalias/Repeat.scala | 0 .../uniontypes/ArbitraryArityUnionType.scala | 0 .../uniontypes/EitherDisjointUnion.scala | 0 .../scala-core-4}/src/test/resources/animals | 0 .../assertvsrequire/AssertUsageUnitTest.scala | 0 .../RequireUsageUnitTest.scala | 0 .../scala/future/FutureRecoveryUnitTest.scala | 0 .../ImplicitImportsUnitTest.scala | 0 .../implicitly/ImplicitlyUsageUnitTest.scala | 0 .../KeyValueStoreUnitTest.scala | 0 .../scala/structuraltypes/DuckUnitTest.scala | 0 .../ResourceClosingUnitTest.scala | 0 .../ListIntFunctionsUnitTest.scala | 0 .../typemembersalias/RepeatUnitTest.scala | 0 .../ArbitraryArityUnionTypeUnitTest.scala | 0 .../EitherDisjointUnionUnitTest.scala | 0 .../WithFilterVsFilterUnitTest.scala | 0 .../scala-core-5}/README.md | 0 .../com/baeldung/scala/adt/Examples.scala | 0 .../scala/datesandtimes/JavaTime.scala | 0 .../scala/datesandtimes/JavaUtilDate.scala | 0 .../scala/datesandtimes/JodaTime.scala | 0 .../scala/datesandtimes/NScalaTime.scala | 0 .../baeldung/scala/inlining/Inlining.scala | 0 .../scala/inlining/InliningWarning.scala | 0 .../scala/inlining/MegamorphicCallsite.scala | 0 .../scala/lambdas/IntTransformer.scala | 0 .../listcreation/ListCreationMethods.scala | 0 .../scala/richwrappers/RichIntImplicits.scala | 0 .../scala/richwrappers/SimpleRichInt.scala | 0 .../LookupSwitchExample.scala | 0 .../NotOptimizedExample.scala | 0 .../switchannotation/TableSwitchExample.scala | 0 .../vectorbenefits/VectorAppendPrepend.scala | 0 .../scala/vectorbenefits/VectorBasics.scala | 0 .../vectorbenefits/VectorHeadTailAccess.scala | 0 .../vectorbenefits/VectorIteration.scala | 0 .../vectorbenefits/VectorRandomAccess.scala | 0 .../baeldung/scala/adt/ExamplesUnitTest.scala | 0 .../datesandtimes/JavaTimeUnitTest.scala | 0 .../datesandtimes/JavaUtilDateUnitTest.scala | 0 .../datesandtimes/JodaTimeUnitTest.scala | 0 .../datesandtimes/NScalaTimeUnitTest.scala | 0 .../scala/lambdas/LambdasUnitTest.scala | 0 .../ListCreationMethodsUnitTest.scala | 0 .../baeldung/scala/regex/RegexUnitTest.scala | 0 .../scala/richwrappers/RichIntUnitTest.scala | 0 .../richwrappers/RichWrappersUnitTest.scala | 0 .../richwrappers/SimpleRichUnitTest.scala | 0 .../scala/sorting/SortingUnitTest.scala | 0 .../VectorAppendPrependUnitTest.scala | 0 .../VectorHeadTailAccessUnitTest.scala | 0 .../VectorIterationUnitTest.scala | 0 .../scala-core-6}/README.md | 0 .../baeldung/scala/break/BreakStatement.scala | 0 .../com/baeldung/scala/fileio/FileIO.scala | 0 .../functionalloops/FunctionalLoops.scala | 0 .../baeldung/scala/functions/Functions.scala | 0 .../com/baeldung/scala/futures/Futures.scala | 0 .../implicitconversions/LengthUnit.scala | 0 .../scala/pimpmylib/PimpLibExample.scala | 0 .../baeldung/scala/tailrec/StringLength.scala | 0 .../implicitconversions/LengthUnitTest.scala | 0 .../baeldung/scala/maps/MapsUnitTest.scala | 0 .../pimpmylib/PimpLibExampleUnitTest.scala | 0 .../baeldung/scala/ranges/RangeUnitTest.scala | 0 .../scala-core-7}/README.md | 0 .../scala/applyfunction/ApplyFunction.scala | 0 .../scala/argumentparsing/Args4J.scala | 0 .../scala/argumentparsing/Clist.scala | 0 .../argumentparsing/PatternMatching.scala | 0 .../scala/argumentparsing/Scallop.scala | 0 .../ScallopPatternMatching.scala | 0 .../scala/argumentparsing/Scopt.scala | 0 .../scala/argumentparsing/Sliding.scala | 0 .../ArrayVsWrappedArray.scala | 0 .../scala/countchar/CountCharsInString.scala | 0 .../productserializable/ColorInference.scala | 0 .../scala/return/ReturnExamples.scala | 0 .../specialized/AllTypesSpecialized.scala | 0 .../scala/specialized/NotSpecialized.scala | 0 .../specialized/OnlyTwoTypesSpecialized.scala | 0 .../TypeInferenceLimitations.scala | 0 .../typeinference/TypeInferredFunctions.scala | 0 .../TypeInferredParameters.scala | 0 .../typeinference/TypeInferredVariables.scala | 0 .../arrays/CopyAnArrayToAnotherUnitTest.scala | 0 .../arrays/InitializeAnArrayUnitTest.scala | 0 .../CountCharsInStringUnitTest.scala | 0 .../TypeInferenceLimitationsTest.scala | 0 .../TypeInferredFunctionsTest.scala | 0 .../TypeInferredVariablesTest.scala | 0 .../scala-core-8}/README.md | 0 .../src/main/resources/application.conf | 0 .../scala/builderpattern/Guitar.scala | 0 .../scala/builderpattern/GuitarBuilder.scala | 0 .../builderpattern/SafeGuitarBuilder.scala | 0 .../DifferenceBetweenDates.scala | 0 .../scala/duration/JavaToScalaDuration.scala | 0 .../baeldung/scala/macros/GenericMacros.scala | 0 .../baeldung/scala/macros/OddEvenMacros.scala | 0 .../scala/reverselists/ListReverser.scala | 0 .../scala/builderpattern/GuitarSpec.scala | 0 .../DifferenceBetweenDatesTest.scala | 0 .../scala/duration/DurationTest.scala | 0 .../baeldung/scala/either/EitherTest.scala | 0 .../scala/macros/GenericMacrosTest.scala | 0 .../scala/macros/OddEvenMacrosTest.scala | 0 .../scala/reverselists/ListReverserSpec.scala | 0 .../HighOrderFunctionsUnitTest.scala | 0 .../scala-core-fp}/README.md | 0 .../caseobjectsvsenums/CurrencyADT.scala | 0 .../caseobjectsvsenums/CurrencyEnum.scala | 0 .../AnonymousFunctionInHOF.scala | 0 .../scala/firstclassfunctions/Closure.scala | 0 .../scala/firstclassfunctions/Currying.scala | 0 .../FunctionAsArgumentInHOF.scala | 0 .../FunctionAsResultInHOF.scala | 0 .../PartiallyAppliedFunction.scala | 0 .../foldvsreduce/FoldLeftVsReduceLeft.scala | 0 .../com/baeldung/scala/monad/LazyMonad.scala | 0 .../scala/monoid/ListMonoidInstance.scala | 0 .../scala/monoid/MapMonoidInstance.scala | 0 .../com/baeldung/scala/monoid/Monoid.scala | 0 .../baeldung/scala/tagless/TaglessFinal.scala | 0 .../scala/typeclasses/TypeClassExample.scala | 0 .../CurrencyAdtUnitTest.scala | 0 .../CurrencyEnumUnitTest.scala | 0 .../scala/currying/CurryingUnitTest.scala | 0 .../AnonymousFunctionInHOFUnitTest.scala | 0 .../firstclassfunctions/ClosureUnitTest.scala | 0 .../CurryingUnitTest.scala | 0 .../FunctionAsArgumentInHOFUnitTest.scala | 0 .../FunctionAsResultInHOFUnitTest.scala | 0 .../PartiallyAppliedFunctionUnitTest.scala | 0 .../FoldLeftVsReduceLeftUnitTest.scala | 0 .../FunctionCompositionTest.scala | 0 .../scala/functor/FunctorUnitTest.scala | 0 .../scala/monad/LazyMonadUnitTest.scala | 0 .../scala/monoid/MapMonoidUnitTest.scala | 0 .../monoid/WordFrequencyCounterUnitTest.scala | 0 .../scala/tagless/TaglessFinalUnitTest.scala | 0 .../TypeClassExampleUnitTest.scala | 0 .../scala-core-io}/README.md | 0 .../com/baeldung/scala/FileDeletion.scala | 0 .../four_lines_string.txt | 0 .../com.baeldung.scala.io/one_line_string.txt | 0 .../baeldung/scala/io/FileDeletionTest.scala | 0 .../baeldung/scala/io/SourceUnitTest.scala | 0 .../scala-core-oop}/README.md | 0 .../baeldung/scala/bounds/contextbound.scala | 0 .../baeldung/scala/bounds/conversion.scala | 0 .../scala/bounds/implicitconversion.scala | 0 .../scala/bounds/implicitobject.scala | 0 .../scala/bounds/implicitvalues.scala | 0 .../scala/bounds/multipleparameterlists.scala | 0 .../baeldung/scala/bounds/richobject.scala | 0 .../com/baeldung/scala/bounds/viewbound.scala | 0 .../scala/caseobject/ObjectExample.scala | 0 .../CarTraits.scala | 0 .../scala/classvsobject/ClassExamples.scala | 0 .../scala/classvsobject/ObjectExamples.scala | 0 .../baeldung/scala/enumerations/Fingers.scala | 0 .../scala/enumerations/FingersOperation.scala | 0 .../scala/generics/GenericsIntro.scala | 0 .../com/baeldung/scala/generics/Queue.scala | 0 .../com/baeldung/scala/lifting/Examples.scala | 0 .../scala/oopinscala/OopConcepts.scala | 0 .../polymorphism/PolymorphismExamples.scala | 0 .../baeldung/scala/variance/Variance.scala | 0 .../caseobject/ObjectExampleUnitTest.scala | 0 .../CarTraitsUnitTest.scala | 0 .../classvsobject/ClassExamplesUnitTest.scala | 0 .../ObjectExamplesUnitTest.scala | 0 .../FingersOperationUnitTest.scala | 0 .../scala/lifting/ExamplesUnitTest.scala | 0 .../oopinscala/OopConceptsUnitTest.scala | 0 .../PolymorphismExamplesUnitTest.scala | 0 .../scala/variance/VarianceUnitTest.scala | 0 scala-lang/{ => scala-lang-1}/README.md | 0 .../project/build.properties | 0 .../baeldung/scala/OuterStackedSample.scala | 0 .../CallByNameCallByValue.scala | 0 .../ScalaConditionalExpressions.scala | 0 .../com/baeldung/scala/equality/package.scala | 0 .../FunctionsAndMethods.scala | 0 .../scala/mutability/ImmutabilityCar.scala | 0 .../scala/operators/ScalaOperators.scala | 0 .../scala/packageimport/Importing.scala | 0 .../packageimport/InnerStackSample.scala | 0 .../scala/packageimport/package.scala | 0 .../stacking/StackedAccess.scala | 0 .../stacking/StackedPackage.scala | 0 .../scala/packageimport/vehicle/Bicycle.scala | 0 .../scala/packageimport/vehicle/Car.scala | 0 .../scala/packageimport/vehicle/Vehicle.scala | 0 .../scala/typehierarchy/TypeHierarchy.scala | 0 .../main/scala-2/defvarval/LazyValues.scala | 0 .../src/main/scala-2/defvarval/Methods.scala | 0 .../src/main/scala-2/defvarval/Values.scala | 0 .../main/scala-2/defvarval/Variables.scala | 0 .../CallByNameCallByValueUnitTest.scala | 0 .../caseclasses/CaseClassesUnitTest.scala | 0 .../ScalaConditionalExpressionsUnitTest.scala | 0 .../scala/equality/EqualityUnitTest.scala | 0 .../FunctionsAndMethodsUnitTest.scala | 0 .../mutability/ImmutabilityCarUnitTest.scala | 0 .../ImmutableCollectionsUnitTest.scala | 0 .../MutableCollectionsUnitTest.scala | 0 .../typehierarchy/TypeHierarchyUnitTest.scala | 0 .../scala-lang-2}/README.md | 0 .../scala/inheritance/Hierarchical.scala | 0 .../baeldung/scala/inheritance/Hybrid.scala | 0 .../scala/inheritance/Multilevel.scala | 0 .../baeldung/scala/inheritance/Multiple.scala | 0 .../baeldung/scala/inheritance/Single.scala | 0 .../com/baeldung/scala/nested/Factorial.scala | 0 .../baeldung/scala/singletons/Counter.scala | 0 .../scala/voidtypes/NilEmptyList.scala | 0 .../scala/voidtypes/NoneEmptyOption.scala | 0 .../scala/voidtypes/NothingTrait.scala | 0 .../voidtypes/NullTypeAndnullValue.scala | 0 .../scala/voidtypes/UnitReturnType.scala | 0 .../com/baeldung/scala/withtrait/Animal.scala | 0 .../baeldung/scala/withtrait/Musician.scala | 0 .../com/baeldung/scala/withtrait/Person.scala | 0 .../baeldung/scala/withtrait/Politician.scala | 0 .../scala/singletons/CounterUnitTest.scala | 0 .../voidtypes/NilEmptyListUnitTest.scala | 0 .../voidtypes/NoneEmptyOptionUnitTest.scala | 0 .../voidtypes/NothingTraitUnitTest.scala | 0 .../NullTypeAndNullValueUnitTest.scala | 0 .../voidtypes/UnitReturnTypeUnitTest.scala | 0 .../scala/withtrait/WithTraitSpec.scala | 0 .../{ => scala-libraries-1}/README.md | 0 .../src/finch/hello-world/build.sbt | 0 .../hello-world/project/build.properties | 0 .../com/baeldung/finch/helloWorld/Main.scala | 0 .../src/finch/todo/build.sbt | 0 .../src/finch/todo/project/build.properties | 0 .../scala/com/baeldung/finch/todo/Main.scala | 0 .../com/baeldung/finch/todo/models/Todo.scala | 0 .../src/main/resources/application.conf | 0 .../com/baeldung/scala/cats/Area.scala | 0 .../baeldung/scala/cats/AreaInstances.scala | 0 .../com/baeldung/scala/cats/ShapeArea.scala | 0 .../baeldung/scala/cats/ShapeAreaSyntax.scala | 0 .../scala/cats/monoids/CollectionMonoid.scala | 0 .../cats/semigroups/CollectionSemigroup.scala | 0 .../cats/semigroups/CustomIntSemigroup.scala | 0 .../scala/cats/semigroups/IntSemigroup.scala | 0 .../scala/cats/show/CustomInstance.scala | 0 .../scala/cats/show/InterfaceSyntax.scala | 0 .../baeldung/scala/cats/show/ShowImpl.scala | 0 .../com/baeldung/scala/fs2/Fs2Examples.scala | 0 .../scala/monocle/OpticsExamples.scala | 0 .../reactivemongo/MongoDBConnection.scala | 0 .../scala/scalaz/ScalazExamples.scala | 0 .../principles/ScalazPrinciplesExamples.scala | 0 .../com/baeldung/scala/slick/Connection.scala | 0 .../com/baeldung/scala/slick/Entities.scala | 0 .../baeldung/scala/slick/SlickTables.scala | 0 .../scala/typedactors/AkkaTyped.scala | 0 .../src/test/resources/application.conf | 0 .../src/test/resources/fs2data.txt | 0 .../src/test/resources/logback-test.xml | 0 .../scala/cats/ShapeAreaSyntaxUnitTest.scala | 0 .../scala/cats/ShapeAreaUnitTest.scala | 0 .../monoids/CollectionMonoidUnitTest.scala | 0 .../CollectionSemigroupUnitTest.scala | 0 .../CustomIntSemigroupUnitTest.scala | 0 .../semigroups/IntSemigroupUnitTest.scala | 0 .../cats/show/CustomInstanceUnitTest.scala | 0 .../cats/show/InterfaceSyntaxUnitTest.scala | 0 .../scala/cats/show/ShowImplUnitTest.scala | 0 .../baeldung/scala/fs2/FS2SampleTest.scala | 0 .../monocle/OpticsExamplesUnitTest.scala | 0 .../scala/reactivemongo/MongoEntities.scala | 0 .../reactivemongo/ReactiveMongoUnitTest.scala | 0 .../scala/scalaz/ScalazExamplesUnitTest.scala | 0 .../ScalazPrinciplesExamplesUnitTest.scala | 0 .../scala/shapeless/ShapelessUnitTest.scala | 0 .../scala/slick/PlayerServiceUnitTest.scala | 0 .../scala-libraries-2}/README.md | 0 .../RequestsScalaHttpClientLiveTest.scala | 0 .../src/main/resources/application.conf | 0 .../service/AsyncQueryMemoizeService.scala | 0 .../cache/service/CacheFlagService.scala | 0 .../cache/service/CaffeineCacheConfig.scala | 0 .../baeldung/cache/service/CatsService.scala | 0 .../cache/service/GenericCacheService.scala | 0 .../com/baeldung/cache/service/Models.scala | 0 .../service/ScalaCacheCachingBlock.scala | 0 .../SyncQueryCustomMemoizeKeyService.scala | 0 .../service/SyncQueryMemoizeService.scala | 0 .../cache/service/SyncQueryService.scala | 0 .../com/baeldung/circe/JSONConversions.scala | 0 .../com/baeldung/date/DateParser.scala | 0 .../scala-2/com/baeldung/elastic4s/Main.scala | 0 .../com/baeldung/enumeratum/Enums.scala | 0 .../com/baeldung/scala/monix/MonixTask.scala | 0 .../main/scala-2/play_db/PlayDbExample.scala | 0 .../com/baeldung/akka/TestService.scala | 0 .../scala-2/com/baeldung/akka/Tests.scala | 0 .../baeldung/cache/GenericCacheUnitTest.scala | 0 .../cache/ScalaCacheAsyncUnitTest.scala | 0 .../ScalaCacheCachingBlockUnitTest.scala | 0 .../cache/ScalaCacheCatsServiceUnitTest.scala | 0 .../cache/ScalaCacheSyncUnitTest.scala | 0 .../baeldung/circe/JSONConversionsTest.scala | 0 .../com/baeldung/date/DateParserSpec.scala | 0 .../enumeratum/EnumeratumUnitTest.scala | 0 .../baeldung/scala/circe/CirceUnitTest.scala | 0 .../scala/circe/CustomDecoderUnitTest.scala | 0 .../scala/monix/MonixTaskUnitTest.scala | 0 .../scalacheck/CommandsUnitTest.scala | 0 .../scalacheck/GeneratorsUnitTest.scala | 0 .../scalacheck/PropertiesUnitTest.scala | 0 ...opertiesWithCustomParametersUnitTest.scala | 0 .../baeldung/scalacheck/model/Simple.scala | 0 .../scalacheck/model/SystemUnderTest.scala | 0 .../scalacheck/model/TrafficLight.scala | 0 .../scala-libraries-3}/README.md | 0 .../src/main/resources/log4j2.xml | 0 .../baeldung/scala/http4s/SimpleClient.scala | 0 .../baeldung/scala/http4s/SimpleServer.scala | 0 .../com/baeldung/scala/log4j/LoggingApp.scala | 0 .../baeldung/scala/pureconfig/Configs.scala | 0 .../scala/retry/PrimeNumberRetry.scala | 0 .../scala-libraries-3}/src/tapir/build.sbt | 0 .../com/baeldung/tapir/client/Client.scala | 0 .../tapir/endpoint/AnimalEndpoints.scala | 0 .../src/tapir/project/build.properties | 0 .../tapir/server/BaseAkkaServer.scala | 0 .../com/baeldung/tapir/server/Database.scala | 0 .../baeldung/tapir/server/KittensServer.scala | 0 .../test/resources/application-default.conf | 0 .../src/test/resources/application.conf | 0 .../src/test/resources/database.conf | 0 .../src/test/resources/http.conf | 0 .../src/test/resources/main.conf | 0 .../src/test/resources/notification.conf | 0 .../baeldung/scala/config/ConfigTest.scala | 0 .../scala/pureconfig/SampleConfigLoader.scala | 0 .../scala/retry/PrimeNumberRetryTest.scala | 0 .../scalamock/ScalamockFeaturesTest.scala | 0 .../scalamock/ScalamockFunctionTest.scala | 0 .../ScalamockMockingStylesTest.scala | 0 .../com/baeldung/scalamock/model/Models.scala | 0 .../baeldung/scalamock/service/Services.scala | 0 .../scala-libraries-4}/README.md | 0 .../src/it/resources/docker-compose.yml | 0 .../src/it/resources/s3-test.txt | 0 .../pulsar4s/PulsarJsonSchemaManualTest.scala | 0 .../PulsarStringSchemaManualTest.scala | 0 .../DockerComposeManualTest.scala | 0 .../GenericContainerManualTest.scala | 0 .../LocalstackModuleManualTest.scala | 0 .../src/main/resources/logback.xml | 0 .../com/baeldung/scala/awscala/Main.scala | 0 .../scala/logging/ScalaLoggingSample.scala | 0 .../scala/pulsar4s/JsonPulsarConsumer.scala | 0 .../scala/pulsar4s/JsonPulsarProducer.scala | 0 .../scala/pulsar4s/PulsarClient.scala | 0 .../scala/pulsar4s/PulsarConsumer.scala | 0 .../scala/pulsar4s/PulsarMessage.scala | 0 .../scala/pulsar4s/PulsarProducer.scala | 0 .../testcontainers/SimpleS3Uploader.scala | 0 .../src/redis-intro/build.sbt | 0 .../src/redis-intro/docker-compose.yml | 0 .../redis-intro/project/Dependencies.scala | 0 .../src/redis-intro/project/build.properties | 0 .../baeldung/redis/cache/CacheThrough.scala | 0 .../scala/com/baeldung/redis/db/BooksDB.scala | 0 .../baeldung/redis/db/VirtualDatabase.scala | 0 .../baeldung/redis/geospatial/GeoPoints.scala | 0 .../redis/geospatial/Geospatial.scala | 0 .../redis/leaderboard/LeaderBoard.scala | 0 .../redis/leaderboard/model/EmployDB.scala | 0 .../redis/leaderboard/model/EmployeeKey.scala | 0 .../com/baeldung/redis/pubsub/Publisher.scala | 0 .../baeldung/redis/pubsub/Subscriber.scala | 0 .../baeldung/redis/ratelimit/RateLimit.scala | 0 .../baeldung/redis/util/RedisClients.scala | 0 .../com/baeldung/redis/util/WithRedis.scala | 0 .../com/baeldung/redis/HelloRedisSpec.scala | 0 .../redis/cache/CacheThroughSpec.scala | 0 .../redis/geospatial/GeospatialSpec.scala | 0 .../redis/leaderboard/LeaderboardSpec.scala | 0 .../redis/ratelimit/RateLimitSpec.scala | 0 .../com/baeldung/redis/util/RedisSpec.scala | 0 .../baeldung/scala/async/ScalaAsyncTest.scala | 0 .../cats/writer/WriterMonadUnitTest.scala | 0 .../com/baeldung/scala/skunk/Session.scala | 0 .../com/baeldung/scala/utest/AsyncTest.scala | 0 .../scala/utest/BeforeAfterTest.scala | 0 .../scala/utest/ExceptionHandling.scala | 0 .../com/baeldung/scala/utest/NestedTest.scala | 0 .../com/baeldung/scala/utest/RetryTest.scala | 0 .../baeldung/scala/utest/RetryTestSuite.scala | 0 .../baeldung/scala/utest/SimpleUTest.scala | 0 .../scala-libraries-5}/README.md | 0 .../src/main/resources/docker-compose.yml | 0 .../src/main/resources/kafka-intro-avro.conf | 0 .../src/main/resources/kafka-intro.conf | 0 .../src/main/resources/log4j2.xml | 0 .../scala/kafka/intro/common/Article.scala | 0 .../kafka/intro/common/ClientConfig.scala | 0 .../kafka/intro/common/SerdeConfig.scala | 0 .../intro/consumer/ArticleAvroConsumer.scala | 0 .../consumer/ArticleJsonStringConsumer.scala | 0 .../consumer/common/AvroDeSerializer.scala | 0 .../consumer/common/ConsumerConfig.scala | 0 .../intro/consumer/common/ConsumerUtils.scala | 0 .../common/JsonStringDeSerializer.scala | 0 .../intro/producer/ArticleAvroProducer.scala | 0 .../producer/ArticleJsonStringProducer.scala | 0 .../kafka/intro/producer/Generator.scala | 0 .../producer/common/AvroSerializer.scala | 0 .../common/JsonStringSerializer.scala | 0 .../producer/common/ProducerConfig.scala | 0 .../intro/producer/common/ProducerUtils.scala | 0 .../com/baeldung/scala/spire/Fractional.scala | 0 .../com/baeldung/scala/spire/Integral.scala | 0 .../com/baeldung/scala/spire/Numeric.scala | 0 .../scala/spire/groups/Semigroups.scala | 0 .../scala/spire/groups/TranscationGroup.scala | 0 .../baeldung/scala/spire/macros/CFor.scala | 0 .../spire/macros/LiteralNumberSyntax.scala | 0 .../scala/spire/monoids/AdditiveMonoid.scala | 0 .../scala/spire/numbers/Complexes.scala | 0 .../scala/spire/numbers/Intervals.scala | 0 .../scala/spire/numbers/Naturals.scala | 0 .../scala/spire/numbers/Rationals.scala | 0 .../baeldung/scala/spire/numbers/Reals.scala | 0 .../scala/spire/rings/EuclideanRings.scala | 0 .../baeldung/scala/spire/rings/Rings.scala | 0 .../scala/spire/FractionalUnitTest.scala | 0 .../scala/spire/IntegralUnitTest.scala | 0 .../scala/spire/NumericUnitTest.scala | 0 .../groups/TransactionGroupUnitTest.scala | 0 .../monoids/AdditiveMonoidUnitTest.scala | 0 .../spire/rings/EuclideanRingUnitTest.scala | 0 .../scala/spire/rings/RingsUnitTest.scala | 0 .../com/baeldung/circeyaml/YamlExample.scala | 0 .../baeldung/circeyaml/YamlExampleSpec.scala | 0 .../scala-libraries-os}/README.md | 0 .../src/main/resources/log4j2.xml | 0 .../scala-2/com/baeldung/scala/os/OsApp.scala | 0 .../com/baeldung/scala/os/ScalaSysApp.scala | 0 scala3-lang/{ => scala3-lang-1}/README.md | 0 .../scala3-lang-1}/project/build.properties | 0 .../com/baeldung/scala3/enum/ADTExample.scala | 0 .../baeldung/scala3/enum/ColorExamples.scala | 0 .../scala3/implicits/ExtensionMethod.scala | 0 .../scala3/implicits/ImplicitConversion.scala | 0 .../ProvidingContextualEnvironment.scala | 0 .../implicits/WritingTypeclassInstances.scala | 0 .../comparison/scala2/Extension.scala | 0 .../scala2/ImplicitConversion.scala | 0 .../comparison/scala2/ImplicitParameter.scala | 0 .../comparison/scala2/ImplicitlyMagic.scala | 0 .../comparison/scala3/Extension.scala | 0 .../scala3/ImplicitConversion.scala | 0 .../comparison/scala3/ImplicitParameter.scala | 0 .../comparison/scala3/ImplicitlyMagic.scala | 0 .../extensions/StringExtensions.scala | 0 .../BasicIntersectionType.scala | 0 .../scala3/intersectiontypes/DuckTyping.scala | 0 .../intersectiontypes/Inheritance.scala | 0 .../intersectiontypes/Overloading.scala | 0 .../inline/InlineCompilerValidation.scala | 0 .../scala3/macros/inline/InlineDef.scala | 0 .../scala3/macros/inline/InlineIf.scala | 0 .../scala3/macros/inline/InlineMatch.scala | 0 .../scala3/macros/inline/InlineParams.scala | 0 .../scala3/macros/inline/InlineVal.scala | 0 .../scala3/macros/inline/InlineValDef.scala | 0 .../macros/inline/TransparentInline.scala | 0 .../scala3/mainmethods/HelloWorld.scala | 0 .../scala3/mainmethods/HelloWorldObject.scala | 0 .../scala3/mainmethods/WithParameters.scala | 0 .../CanEqualDeriveClause.scala | 0 .../CanEqualGivenInstance.scala | 0 .../MultiversalEquality.scala | 0 .../UniversalEquality.scala | 0 .../baeldung/scala3/openclasses/Album.scala | 0 .../scala3/openclasses/DeluxeEdition.scala | 0 .../baeldung/scala3/quitesyntax/Example.scala | 0 .../scala3/traits/ParameterizedTrait.scala | 0 .../scala3/typesystem/CompoundTypes.scala | 0 .../scala3/typesystem/OpaqueTypeAlias.scala | 0 .../implicits/ExtensionMethodUnitTest.scala | 0 .../ImplicitConversionUnitTest.scala | 0 ...ovidingContextualEnvironmentUnitTest.scala | 0 .../comparison/scala2/ExtensionUnitTest.scala | 0 .../scala2/ImplicitConversionUnitTest.scala | 0 .../scala2/ImplicitParameterUnitTest.scala | 0 .../comparison/scala3/ExtensionUnitTest.scala | 0 .../scala3/ImplicitConversionUnitTest.scala | 0 .../scala3/ImplicitParameterUnitTest.scala | 0 .../extensions/ExtensionsUnitTest.scala | 0 .../BasicIntersectionTypeUnitTest.scala | 0 .../DuckTypingUnitTest.scala | 0 .../InheritanceUnitTest.scala | 0 .../OverloadingUnitTest.scala | 0 .../CanEqualDeriveClauseUnitTest.scala | 0 .../CanEqualGivenInstanceUnitTest.scala | 0 .../MultiversalEqualityUnitTest.scala | 0 .../UniversalEqualityUnitTest.scala | 0 .../traits/ParameterizedTraitUnitTest.scala | 0 .../typesystem/CompoundTypesUnitTest.scala | 0 .../typesystem/OpaqueTypeAliasUnitTest.scala | 0 .../scala3-lang-2}/README.md | 0 .../scala3-lang-2}/build.sbt | 0 .../project/build.properties | 0 .../main/java/com/baeldung/JavaOperator.java | 0 .../com/baeldung/scala3/TuplesInScala.scala | 0 .../contextualabstractions/Givens.scala | 0 .../contextualabstractions/UsingClause.scala | 0 .../scala3/locally/LocallyBlockSample.scala | 0 .../scala3/macros/GenericMacros.scala | 0 .../scala3/macros/OddEvenMacros.scala | 0 .../baeldung/scala3/mainfeatures/App.scala | 0 .../MatchExpressionImprovements.scala | 0 .../matchtypes/FirstComponentOfScala2.scala | 0 .../scala3/matchtypes/MatchTypes.scala | 0 .../scala3/targetname/TargetNameSample.scala | 0 .../transparent/TrasparentTraitDemo.scala | 0 .../ThreadUnsafeAnnotationTest.scala | 0 .../GivensUsingClauseUnitTest.scala | 0 .../exportclause/ExportClauseUnitTest.scala | 0 .../scala3/locally/LocallyBlockTest.scala | 0 .../scala3/macros/GenericMacrosTest.scala | 0 .../scala3/macros/OddEvenMacrosTest.scala | 0 .../MatchExpressionImprovementstTest.scala | 0 .../FirstComponentOfScala2Spec.scala | 0 .../scala3/matchtypes/MatchTypesSpec.scala | 0 .../nonfatal/NonFatalExceptionsTest.scala | 0 .../scala3-lang-3}/README.md | 0 .../com/baeldung/scala/typelambdas/Main.scala | 0 .../scala/filters/FindFilterCollector.scala | 0 726 files changed, 27 insertions(+), 27 deletions(-) rename scala-core-collections/{ => scala-core-collections-1}/README.md (100%) rename scala-core-collections/{ => scala-core-collections-1}/src/main/scala-2/com/baeldung/scala/collections/Arrays.scala (100%) rename scala-core-collections/{ => scala-core-collections-1}/src/main/scala-2/com/baeldung/scala/collections/FoldingLists.scala (100%) rename scala-core-collections/{ => scala-core-collections-1}/src/main/scala-2/com/baeldung/scala/collections/IterateCollections.scala (100%) rename scala-core-collections/{ => scala-core-collections-1}/src/main/scala-2/com/baeldung/scala/collections/IterateMap.scala (100%) rename scala-core-collections/{ => scala-core-collections-1}/src/main/scala-2/com/baeldung/scala/collections/ParallelCollections.scala (100%) rename scala-core-collections/{ => scala-core-collections-1}/src/main/scala-2/com/baeldung/scala/flattening/Flattener.scala (100%) rename scala-core-collections/{ => scala-core-collections-1}/src/main/scala-2/com/baeldung/scala/mergemaps/CombineIterables.scala (100%) rename scala-core-collections/{ => scala-core-collections-1}/src/main/scala-2/com/baeldung/scala/removeduplicates/DuplicatesRemover.scala (100%) rename scala-core-collections/{ => scala-core-collections-1}/src/main/scala-2/com/baeldung/scala/splitlist/ListSplitter.scala (100%) rename scala-core-collections/{ => scala-core-collections-1}/src/test/java/com/baedung/scala/conversions/JavaApi.java (100%) rename scala-core-collections/{ => scala-core-collections-1}/src/test/scala-2/com/baedung/scala/collections/FoldingListsUnitTest.scala (100%) rename scala-core-collections/{ => scala-core-collections-1}/src/test/scala-2/com/baedung/scala/collections/IterateMapUnitTest.scala (100%) rename scala-core-collections/{ => scala-core-collections-1}/src/test/scala-2/com/baedung/scala/collections/ListConcatenationUnitTest.scala (100%) rename scala-core-collections/{ => scala-core-collections-1}/src/test/scala-2/com/baedung/scala/collections/MapKeyValue.scala (100%) rename scala-core-collections/{ => scala-core-collections-1}/src/test/scala-2/com/baedung/scala/collections/ParallelCollectionTest.scala (100%) rename scala-core-collections/{ => scala-core-collections-1}/src/test/scala-2/com/baedung/scala/conversions/ConversionWrappersUnitTest.scala (100%) rename scala-core-collections/{ => scala-core-collections-1}/src/test/scala-2/com/baedung/scala/conversions/JavaToScalaConversionsUnitTest.scala (100%) rename scala-core-collections/{ => scala-core-collections-1}/src/test/scala-2/com/baedung/scala/conversions/ScalaToJavaConversionsUnitTest.scala (100%) rename scala-core-collections/{ => scala-core-collections-1}/src/test/scala-2/com/baedung/scala/flattening/FlattenerSpec.scala (100%) rename scala-core-collections/{ => scala-core-collections-1}/src/test/scala-2/com/baedung/scala/mergemaps/MergeMapsUnitTest.scala (100%) rename scala-core-collections/{ => scala-core-collections-1}/src/test/scala-2/com/baedung/scala/splitlist/ListSplitterSpec.scala (100%) rename scala-core-collections/{ => scala-core-collections-1}/src/test/scala-2/com/baeldung/scala/removeduplicates/DuplicatesRemoverSpec.scala (100%) rename {scala-core-collections-2 => scala-core-collections/scala-core-collections-2}/README.md (100%) rename {scala-core-collections-2 => scala-core-collections/scala-core-collections-2}/src/main/scala-2/com/baeldung/scala/filtermap/FilterMap.scala (100%) rename {scala-core-collections-2 => scala-core-collections/scala-core-collections-2}/src/main/scala-2/com/baeldung/scala/firstmatching/Finder.scala (100%) rename {scala-core-collections-2 => scala-core-collections/scala-core-collections-2}/src/main/scala-2/com/baeldung/scala/flattening/Flattener.scala (100%) rename {scala-core-collections-2 => scala-core-collections/scala-core-collections-2}/src/main/scala-2/com/baeldung/scala/lastelement/Finder.scala (100%) rename {scala-core-collections-2 => scala-core-collections/scala-core-collections-2}/src/main/scala-2/com/baeldung/scala/lazylists/SimpleLazyList.scala (100%) rename {scala-core-collections-2 => scala-core-collections/scala-core-collections-2}/src/main/scala-2/com/baeldung/scala/lazylists/SimpleList.scala (100%) rename {scala-core-collections-2 => scala-core-collections/scala-core-collections-2}/src/main/scala-2/com/baeldung/scala/randomfixedsizesample/RandomFixedSizeSample.scala (100%) rename {scala-core-collections-2 => scala-core-collections/scala-core-collections-2}/src/main/scala-2/com/baeldung/scala/rotation/Rotator.scala (100%) rename {scala-core-collections-2 => scala-core-collections/scala-core-collections-2}/src/main/scala-2/com/baeldung/scala/sublist/SubListOfList.scala (100%) rename {scala-core-collections-2 => scala-core-collections/scala-core-collections-2}/src/test/scala-2/com/baeldung/scala/array/AppendAnElementToAnArrayUnitTest.scala (100%) rename {scala-core-collections-2 => scala-core-collections/scala-core-collections-2}/src/test/scala-2/com/baeldung/scala/filtermap/FilterMapSpec.scala (100%) rename {scala-core-collections-2 => scala-core-collections/scala-core-collections-2}/src/test/scala-2/com/baeldung/scala/firstmatching/FinderSpec.scala (100%) rename {scala-core-collections-2 => scala-core-collections/scala-core-collections-2}/src/test/scala-2/com/baeldung/scala/flattening/FlattenerSpec.scala (100%) rename {scala-core-collections-2 => scala-core-collections/scala-core-collections-2}/src/test/scala-2/com/baeldung/scala/lastelement/FinderSpec.scala (100%) rename {scala-core-collections-2 => scala-core-collections/scala-core-collections-2}/src/test/scala-2/com/baeldung/scala/lazylists/SimpleLazyListSpec.scala (100%) rename {scala-core-collections-2 => scala-core-collections/scala-core-collections-2}/src/test/scala-2/com/baeldung/scala/lazylists/SimpleListSpec.scala (100%) rename {scala-core-collections-2 => scala-core-collections/scala-core-collections-2}/src/test/scala-2/com/baeldung/scala/randomfixedsizesample/RandomFixedSizeSampleSpec.scala (100%) rename {scala-core-collections-2 => scala-core-collections/scala-core-collections-2}/src/test/scala-2/com/baeldung/scala/rotation/RotatorSpec.scala (100%) rename {scala-core-collections-2 => scala-core-collections/scala-core-collections-2}/src/test/scala-2/com/baeldung/scala/subarray/GetASubarrayUnitTest.scala (100%) rename {scala-core-collections-2 => scala-core-collections/scala-core-collections-2}/src/test/scala-2/com/baeldung/scala/sublist/SubListOfListSpec.scala (100%) rename {scala-core-collections-3 => scala-core-collections/scala-core-collections-3}/README.md (100%) rename {scala-core-collections-3 => scala-core-collections/scala-core-collections-3}/src/main/scala-2/com/baeldung/scala/commoncollections/ScalaCollections.scala (100%) rename {scala-core-collections-3 => scala-core-collections/scala-core-collections-3}/src/test/scala-2/com/baeldung/scala/commoncollections/ArrayBufferUnitTest.scala (100%) rename {scala-core-collections-3 => scala-core-collections/scala-core-collections-3}/src/test/scala-2/com/baeldung/scala/commoncollections/GetListItemsUnitTest.scala (100%) rename {scala-core-collections-3 => scala-core-collections/scala-core-collections-3}/src/test/scala-2/com/baeldung/scala/commoncollections/ListMapOperationsUnitTest.scala (100%) rename {scala-core-collections-3 => scala-core-collections/scala-core-collections-3}/src/test/scala-2/com/baeldung/scala/commoncollections/ListSetOperationsUnitTest.scala (100%) rename {scala-core-collections-3 => scala-core-collections/scala-core-collections-3}/src/test/scala-2/com/baeldung/scala/commoncollections/ScalaCollectionsUnitTest.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/README.md (100%) rename {scala-core-1 => scala-core/scala-core-1}/build.sbt (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/exceptionhandling/Calculator.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/exceptionhandling/Examples.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithEither.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithMonadError.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithOption.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTry.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTryOption.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithValidated.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyErrors.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyService.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/exceptionhandling/Resource.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/exceptionhandling/Session.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/exceptionhandling/User.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/exceptionhandling/ValidationErrors.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/forloop/ForLoop.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/higherorder/HigherOrderFunctions.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/introduction/ControlStructuresDemo.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/introduction/Employee.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/introduction/HelloWorld.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/introduction/IntSet.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/introduction/Utils.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/lazyval/LazyVal.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/partialfunctions/SquareRoot.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/partialfunctions/SwapIntegerSign.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/patternmatching/PatternMatching.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/sealedkeyword/AlgebraicDataType.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/sealedkeyword/SealedCaseObjectsAsEnum.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/sealedkeyword/SealedClassExample.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/sealedkeyword/SelaedExtendedDifferentFile.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/traits/Composition.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/traits/Mixing.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/traits/MixingAlgorithm.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/traits/Orchestration.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/traits/RecordLabel.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/traits/Score.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/traits/SoundProduction.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/traits/Vocals.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-2/com/baeldung/scala/tuples/Tuples.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-3/com/baeldung/scala/traits/Author.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-3/com/baeldung/scala/traits/MultipleInheritance.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-3/com/baeldung/scala/traits/Poet.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/main/scala-3/com/baeldung/scala/traits/Writer.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/test/scala-2/com/baeldung/scala/exceptionhandling/ExamplesUnitTest.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/test/scala-2/com/baeldung/scala/exceptionhandling/IdiomaticExceptionHandlingUnitTest.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/test/scala-2/com/baeldung/scala/forloop/ForLoopUnitTest.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/test/scala-2/com/baeldung/scala/higherorder/HigherOrderFunctionsExamplesUnitTest.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/test/scala-2/com/baeldung/scala/higherorder/HigherOrderFunctionsUnitTest.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/test/scala-2/com/baeldung/scala/introduction/ControlStructuresDemoUnitTest.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/test/scala-2/com/baeldung/scala/introduction/EmployeeUnitTest.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/test/scala-2/com/baeldung/scala/introduction/IntSetUnitTest.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/test/scala-2/com/baeldung/scala/introduction/UtilsUnitTest.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/test/scala-2/com/baeldung/scala/lazyval/LazyValUnitTest.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/test/scala-2/com/baeldung/scala/partialfunctions/SquareRootUnitTest.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/test/scala-2/com/baeldung/scala/partialfunctions/SwapIntegerSignUnitTest.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/test/scala-2/com/baeldung/scala/patternmatching/PatternMatchingUnitTest.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/test/scala-2/com/baeldung/scala/traits/ScoreUnitTest.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/test/scala-2/com/baeldung/scala/tuples/TuplesUnitTest.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/test/scala-3/com/baeldung/scala/traits/MultipleInheritanceUnitTest.scala (100%) rename {scala-core-1 => scala-core/scala-core-1}/src/test/scala-3/com/baeldung/scala/traits/TraitParametersUnitTest.scala (100%) rename {scala-core-2 => scala-core/scala-core-2}/README.md (100%) rename {scala-core-2 => scala-core/scala-core-2}/src/main/java/com/baedung/scala/forcomprehension/ForComprehension.java (100%) rename {scala-core-2 => scala-core/scala-core-2}/src/main/scala-2/com/baeldung/scala/concurrency/FutureAndPromise.scala (100%) rename {scala-core-2 => scala-core/scala-core-2}/src/main/scala-2/com/baeldung/scala/durationsugar/package.scala (100%) rename {scala-core-2 => scala-core/scala-core-2}/src/main/scala-2/com/baeldung/scala/exceptionhandling/ExceptionHandling.scala (100%) rename {scala-core-2 => scala-core/scala-core-2}/src/main/scala-2/com/baeldung/scala/extractorobject/RequestApp.scala (100%) rename {scala-core-2 => scala-core/scala-core-2}/src/main/scala-2/com/baeldung/scala/extractorobject/User.scala (100%) rename {scala-core-2 => scala-core/scala-core-2}/src/main/scala-2/com/baeldung/scala/forcomprehension/ForComprehension.scala (100%) rename {scala-core-2 => scala-core/scala-core-2}/src/main/scala-2/com/baeldung/scala/higherkindedtypes/HigherKindedTypes.scala (100%) rename {scala-core-2 => scala-core/scala-core-2}/src/main/scala-2/com/baeldung/scala/implicitclasses/Currency.scala (100%) rename {scala-core-2 => scala-core/scala-core-2}/src/main/scala-2/com/baeldung/scala/implicitclasses/Money.scala (100%) rename {scala-core-2 => scala-core/scala-core-2}/src/main/scala-2/com/baeldung/scala/implicitclasses/MoneySyntax.scala (100%) rename {scala-core-2 => scala-core/scala-core-2}/src/main/scala-2/com/baeldung/scala/namedanddefaultargs/NamedAndDefaultArgs.scala (100%) rename {scala-core-2 => scala-core/scala-core-2}/src/main/scala-2/com/baeldung/scala/selftype/SelfType.scala (100%) rename {scala-core-2 => scala-core/scala-core-2}/src/main/scala-2/com/baeldung/scala/underscore/UnderscoreUsages.scala (100%) rename {scala-core-2 => scala-core/scala-core-2}/src/test/scala-2/com/baeldung/scala/concurrency/FutureAndPromiseUnitTest.scala (100%) rename {scala-core-2 => scala-core/scala-core-2}/src/test/scala-2/com/baeldung/scala/durationsugar/DurationSugarUnitTest.scala (100%) rename {scala-core-2 => scala-core/scala-core-2}/src/test/scala-2/com/baeldung/scala/exceptionhandling/ExceptionHandlingUnitTest.scala (100%) rename {scala-core-2 => scala-core/scala-core-2}/src/test/scala-2/com/baeldung/scala/higherkindedtypes/HigherKindedTypesUnitTest.scala (100%) rename {scala-core-2 => scala-core/scala-core-2}/src/test/scala-2/com/baeldung/scala/implicitclasses/MoneyUnitTest.scala (100%) rename {scala-core-2 => scala-core/scala-core-2}/src/test/scala-2/com/baeldung/scala/namedanddefaultargs/NamedAndDefaultArgsUnitTest.scala (100%) rename {scala-core-2 => scala-core/scala-core-2}/src/test/scala-2/com/baeldung/scala/selftype/SelfTypeUnitTest.scala (100%) rename {scala-core-2 => scala-core/scala-core-2}/src/test/scala-2/com/baeldung/scala/underscore/UnderscoreUsagesUnitTest.scala (100%) rename {scala-core-3 => scala-core/scala-core-3}/README.md (100%) rename {scala-core-3 => scala-core/scala-core-3}/src/main/scala-2/com/baeldung/scala/accessmodifiers/Figure.scala (100%) rename {scala-core-3 => scala-core/scala-core-3}/src/main/scala-2/com/baeldung/scala/accessmodifiers/Star.scala (100%) rename {scala-core-3 => scala-core/scala-core-3}/src/main/scala-2/com/baeldung/scala/await/AwaitFuture.scala (100%) rename {scala-core-3 => scala-core/scala-core-3}/src/main/scala-2/com/baeldung/scala/companionobject/Task.scala (100%) rename {scala-core-3 => scala-core/scala-core-3}/src/main/scala-2/com/baeldung/scala/implicitparameter/ImplicitParameter.scala (100%) rename {scala-core-3 => scala-core/scala-core-3}/src/main/scala-2/com/baeldung/scala/iteratorsvsstreamsvsviews/NonStrictDataStructures.scala (100%) rename {scala-core-3 => scala-core/scala-core-3}/src/main/scala-2/com/baeldung/scala/options/OptionBuilder.scala (100%) rename {scala-core-3 => scala-core/scala-core-3}/src/main/scala-2/com/baeldung/scala/options/OptionExample.scala (100%) rename {scala-core-3 => scala-core/scala-core-3}/src/main/scala-2/com/baeldung/scala/options/Player.scala (100%) rename {scala-core-3 => scala-core/scala-core-3}/src/main/scala-2/com/baeldung/scala/options/Tournament.scala (100%) rename {scala-core-3 => scala-core/scala-core-3}/src/main/scala-2/com/baeldung/scala/scaladoc/Carnivore.scala (100%) rename {scala-core-3 => scala-core/scala-core-3}/src/main/scala-2/com/baeldung/scala/scaladoc/IntervalTimer.scala (100%) rename {scala-core-3 => scala-core/scala-core-3}/src/main/scala-2/com/baeldung/scala/scaladoc/TasmanianDevil.scala (100%) rename {scala-core-3 => scala-core/scala-core-3}/src/main/scala-2/com/baeldung/scala/scaladoc/package.scala (100%) rename {scala-core-3 => scala-core/scala-core-3}/src/main/scala-2/com/baeldung/scala/typecasts/ErrorHandling.scala (100%) rename {scala-core-3 => scala-core/scala-core-3}/src/main/scala-2/com/baeldung/scala/typecasts/TypeErasure.scala (100%) rename {scala-core-3 => scala-core/scala-core-3}/src/main/scala-2/com/baeldung/scala/typecasts/ValueTypeCasting.scala (100%) rename {scala-core-3 => scala-core/scala-core-3}/src/main/scala-2/com/baeldung/scala/typtag/ClassTagExample.scala (100%) rename {scala-core-3 => scala-core/scala-core-3}/src/main/scala-2/com/baeldung/scala/typtag/TypeTagExample.scala (100%) rename {scala-core-3 => scala-core/scala-core-3}/src/main/scala-2/com/baeldung/scala/typtag/WeakTypeTagExample.scala (100%) rename {scala-core-3 => scala-core/scala-core-3}/src/test/scala-2/com/baeldung/scala/accessmodifiers/AccessModifiersUnitTest.scala (100%) rename {scala-core-3 => scala-core/scala-core-3}/src/test/scala-2/com/baeldung/scala/await/AwaitFutureUnitTest.scala (100%) rename {scala-core-3 => scala-core/scala-core-3}/src/test/scala-2/com/baeldung/scala/companionobject/TaskUnitTest.scala (100%) rename {scala-core-3 => scala-core/scala-core-3}/src/test/scala-2/com/baeldung/scala/dataTypesAndOps/DatatypesAndOpsUnitTest.scala (100%) rename {scala-core-3 => scala-core/scala-core-3}/src/test/scala-2/com/baeldung/scala/implicitparameter/ImplicitParameterUnitTest.scala (100%) rename {scala-core-3 => scala-core/scala-core-3}/src/test/scala-2/com/baeldung/scala/iteratorsvsstreamsvsviews/IteratorVsStreamVsViewUnitTest.scala (100%) rename {scala-core-3 => scala-core/scala-core-3}/src/test/scala-2/com/baeldung/scala/options/OptionUnitTest.scala (100%) rename {scala-core-3 => scala-core/scala-core-3}/src/test/scala-2/com/baeldung/scala/options/OptionWhenUnlessUnitTest.scala (100%) rename {scala-core-3 => scala-core/scala-core-3}/src/test/scala-2/com/baeldung/scala/typecasts/TypeErasureUnitTest.scala (100%) rename {scala-core-3 => scala-core/scala-core-3}/src/test/scala-2/com/baeldung/scala/typetag/ClassTagExampleUnitTest.scala (100%) rename {scala-core-3 => scala-core/scala-core-3}/src/test/scala-2/com/baeldung/scala/typetag/TypeTagExampleUnitTest.scala (100%) rename {scala-core-3 => scala-core/scala-core-3}/src/test/scala-2/com/baeldung/scala/typetag/WeakTypeTagExampleUnitTest.scala (100%) rename {scala-core-4 => scala-core/scala-core-4}/README.md (100%) rename {scala-core-4 => scala-core/scala-core-4}/src/main/scala-2/com/baeldung/scala/assertvsrequire/AssertUsage.scala (100%) rename {scala-core-4 => scala-core/scala-core-4}/src/main/scala-2/com/baeldung/scala/assertvsrequire/RequireUsage.scala (100%) rename {scala-core-4 => scala-core/scala-core-4}/src/main/scala-2/com/baeldung/scala/constructors/Constructors.scala (100%) rename {scala-core-4 => scala-core/scala-core-4}/src/main/scala-2/com/baeldung/scala/future/FutureRecovery.scala (100%) rename {scala-core-4 => scala-core/scala-core-4}/src/main/scala-2/com/baeldung/scala/implicitly/ImplicitlyUsage.scala (100%) rename {scala-core-4 => scala-core/scala-core-4}/src/main/scala-2/com/baeldung/scala/pathdependenttypes/AwardPunishmentDisipline.scala (100%) rename {scala-core-4 => scala-core/scala-core-4}/src/main/scala-2/com/baeldung/scala/pathdependenttypes/KeyValueStore.scala (100%) rename {scala-core-4 => scala-core/scala-core-4}/src/main/scala-2/com/baeldung/scala/pathdependenttypes/PathDependentTypeInnerClasses.scala (100%) rename {scala-core-4 => scala-core/scala-core-4}/src/main/scala-2/com/baeldung/scala/structuraltypes/Quack.scala (100%) rename {scala-core-4 => scala-core/scala-core-4}/src/main/scala-2/com/baeldung/scala/structuraltypes/ResourceClosing.scala (100%) rename {scala-core-4 => scala-core/scala-core-4}/src/main/scala-2/com/baeldung/scala/switchannotation/LookupSwitchExample.scala (100%) rename {scala-core-4 => scala-core/scala-core-4}/src/main/scala-2/com/baeldung/scala/switchannotation/NotOptimizedExample.scala (100%) rename {scala-core-4 => scala-core/scala-core-4}/src/main/scala-2/com/baeldung/scala/switchannotation/TableSwitchExample.scala (100%) rename {scala-core-4 => scala-core/scala-core-4}/src/main/scala-2/com/baeldung/scala/typemembersalias/ListIntFunctions.scala (100%) rename {scala-core-4 => scala-core/scala-core-4}/src/main/scala-2/com/baeldung/scala/typemembersalias/Repeat.scala (100%) rename {scala-core-4 => scala-core/scala-core-4}/src/main/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionType.scala (100%) rename {scala-core-4 => scala-core/scala-core-4}/src/main/scala-2/com/baeldung/scala/uniontypes/EitherDisjointUnion.scala (100%) rename {scala-core-4 => scala-core/scala-core-4}/src/test/resources/animals (100%) rename {scala-core-4 => scala-core/scala-core-4}/src/test/scala-2/com/baeldung/scala/assertvsrequire/AssertUsageUnitTest.scala (100%) rename {scala-core-4 => scala-core/scala-core-4}/src/test/scala-2/com/baeldung/scala/assertvsrequire/RequireUsageUnitTest.scala (100%) rename {scala-core-4 => scala-core/scala-core-4}/src/test/scala-2/com/baeldung/scala/future/FutureRecoveryUnitTest.scala (100%) rename {scala-core-4 => scala-core/scala-core-4}/src/test/scala-2/com/baeldung/scala/implicitimports/ImplicitImportsUnitTest.scala (100%) rename {scala-core-4 => scala-core/scala-core-4}/src/test/scala-2/com/baeldung/scala/implicitly/ImplicitlyUsageUnitTest.scala (100%) rename {scala-core-4 => scala-core/scala-core-4}/src/test/scala-2/com/baeldung/scala/pathdependenttypes/KeyValueStoreUnitTest.scala (100%) rename {scala-core-4 => scala-core/scala-core-4}/src/test/scala-2/com/baeldung/scala/structuraltypes/DuckUnitTest.scala (100%) rename {scala-core-4 => scala-core/scala-core-4}/src/test/scala-2/com/baeldung/scala/structuraltypes/ResourceClosingUnitTest.scala (100%) rename {scala-core-4 => scala-core/scala-core-4}/src/test/scala-2/com/baeldung/scala/typemembersalias/ListIntFunctionsUnitTest.scala (100%) rename {scala-core-4 => scala-core/scala-core-4}/src/test/scala-2/com/baeldung/scala/typemembersalias/RepeatUnitTest.scala (100%) rename {scala-core-4 => scala-core/scala-core-4}/src/test/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionTypeUnitTest.scala (100%) rename {scala-core-4 => scala-core/scala-core-4}/src/test/scala-2/com/baeldung/scala/uniontypes/EitherDisjointUnionUnitTest.scala (100%) rename {scala-core-4 => scala-core/scala-core-4}/src/test/scala-2/com/baeldung/scala/withfilter/WithFilterVsFilterUnitTest.scala (100%) rename {scala-core-5 => scala-core/scala-core-5}/README.md (100%) rename {scala-core-5 => scala-core/scala-core-5}/src/main/scala-2/com/baeldung/scala/adt/Examples.scala (100%) rename {scala-core-5 => scala-core/scala-core-5}/src/main/scala-2/com/baeldung/scala/datesandtimes/JavaTime.scala (100%) rename {scala-core-5 => scala-core/scala-core-5}/src/main/scala-2/com/baeldung/scala/datesandtimes/JavaUtilDate.scala (100%) rename {scala-core-5 => scala-core/scala-core-5}/src/main/scala-2/com/baeldung/scala/datesandtimes/JodaTime.scala (100%) rename {scala-core-5 => scala-core/scala-core-5}/src/main/scala-2/com/baeldung/scala/datesandtimes/NScalaTime.scala (100%) rename {scala-core-5 => scala-core/scala-core-5}/src/main/scala-2/com/baeldung/scala/inlining/Inlining.scala (100%) rename {scala-core-5 => scala-core/scala-core-5}/src/main/scala-2/com/baeldung/scala/inlining/InliningWarning.scala (100%) rename {scala-core-5 => scala-core/scala-core-5}/src/main/scala-2/com/baeldung/scala/inlining/MegamorphicCallsite.scala (100%) rename {scala-core-5 => scala-core/scala-core-5}/src/main/scala-2/com/baeldung/scala/lambdas/IntTransformer.scala (100%) rename {scala-core-5 => scala-core/scala-core-5}/src/main/scala-2/com/baeldung/scala/listcreation/ListCreationMethods.scala (100%) rename {scala-core-5 => scala-core/scala-core-5}/src/main/scala-2/com/baeldung/scala/richwrappers/RichIntImplicits.scala (100%) rename {scala-core-5 => scala-core/scala-core-5}/src/main/scala-2/com/baeldung/scala/richwrappers/SimpleRichInt.scala (100%) rename {scala-core-5 => scala-core/scala-core-5}/src/main/scala-2/com/baeldung/scala/switchannotation/LookupSwitchExample.scala (100%) rename {scala-core-5 => scala-core/scala-core-5}/src/main/scala-2/com/baeldung/scala/switchannotation/NotOptimizedExample.scala (100%) rename {scala-core-5 => scala-core/scala-core-5}/src/main/scala-2/com/baeldung/scala/switchannotation/TableSwitchExample.scala (100%) rename {scala-core-5 => scala-core/scala-core-5}/src/main/scala-2/com/baeldung/scala/vectorbenefits/VectorAppendPrepend.scala (100%) rename {scala-core-5 => scala-core/scala-core-5}/src/main/scala-2/com/baeldung/scala/vectorbenefits/VectorBasics.scala (100%) rename {scala-core-5 => scala-core/scala-core-5}/src/main/scala-2/com/baeldung/scala/vectorbenefits/VectorHeadTailAccess.scala (100%) rename {scala-core-5 => scala-core/scala-core-5}/src/main/scala-2/com/baeldung/scala/vectorbenefits/VectorIteration.scala (100%) rename {scala-core-5 => scala-core/scala-core-5}/src/main/scala-2/com/baeldung/scala/vectorbenefits/VectorRandomAccess.scala (100%) rename {scala-core-5 => scala-core/scala-core-5}/src/test/scala-2/com/baeldung/scala/adt/ExamplesUnitTest.scala (100%) rename {scala-core-5 => scala-core/scala-core-5}/src/test/scala-2/com/baeldung/scala/datesandtimes/JavaTimeUnitTest.scala (100%) rename {scala-core-5 => scala-core/scala-core-5}/src/test/scala-2/com/baeldung/scala/datesandtimes/JavaUtilDateUnitTest.scala (100%) rename {scala-core-5 => scala-core/scala-core-5}/src/test/scala-2/com/baeldung/scala/datesandtimes/JodaTimeUnitTest.scala (100%) rename {scala-core-5 => scala-core/scala-core-5}/src/test/scala-2/com/baeldung/scala/datesandtimes/NScalaTimeUnitTest.scala (100%) rename {scala-core-5 => scala-core/scala-core-5}/src/test/scala-2/com/baeldung/scala/lambdas/LambdasUnitTest.scala (100%) rename {scala-core-5 => scala-core/scala-core-5}/src/test/scala-2/com/baeldung/scala/listcreation/ListCreationMethodsUnitTest.scala (100%) rename {scala-core-5 => scala-core/scala-core-5}/src/test/scala-2/com/baeldung/scala/regex/RegexUnitTest.scala (100%) rename {scala-core-5 => scala-core/scala-core-5}/src/test/scala-2/com/baeldung/scala/richwrappers/RichIntUnitTest.scala (100%) rename {scala-core-5 => scala-core/scala-core-5}/src/test/scala-2/com/baeldung/scala/richwrappers/RichWrappersUnitTest.scala (100%) rename {scala-core-5 => scala-core/scala-core-5}/src/test/scala-2/com/baeldung/scala/richwrappers/SimpleRichUnitTest.scala (100%) rename {scala-core-5 => scala-core/scala-core-5}/src/test/scala-2/com/baeldung/scala/sorting/SortingUnitTest.scala (100%) rename {scala-core-5 => scala-core/scala-core-5}/src/test/scala-2/com/baeldung/scala/vectorbenefits/VectorAppendPrependUnitTest.scala (100%) rename {scala-core-5 => scala-core/scala-core-5}/src/test/scala-2/com/baeldung/scala/vectorbenefits/VectorHeadTailAccessUnitTest.scala (100%) rename {scala-core-5 => scala-core/scala-core-5}/src/test/scala-2/com/baeldung/scala/vectorbenefits/VectorIterationUnitTest.scala (100%) rename {scala-core-6 => scala-core/scala-core-6}/README.md (100%) rename {scala-core-6 => scala-core/scala-core-6}/src/main/scala-2/com/baeldung/scala/break/BreakStatement.scala (100%) rename {scala-core-6 => scala-core/scala-core-6}/src/main/scala-2/com/baeldung/scala/fileio/FileIO.scala (100%) rename {scala-core-6 => scala-core/scala-core-6}/src/main/scala-2/com/baeldung/scala/functionalloops/FunctionalLoops.scala (100%) rename {scala-core-6 => scala-core/scala-core-6}/src/main/scala-2/com/baeldung/scala/functions/Functions.scala (100%) rename {scala-core-6 => scala-core/scala-core-6}/src/main/scala-2/com/baeldung/scala/futures/Futures.scala (100%) rename {scala-core-6 => scala-core/scala-core-6}/src/main/scala-2/com/baeldung/scala/implicitconversions/LengthUnit.scala (100%) rename {scala-core-6 => scala-core/scala-core-6}/src/main/scala-2/com/baeldung/scala/pimpmylib/PimpLibExample.scala (100%) rename {scala-core-6 => scala-core/scala-core-6}/src/main/scala-2/com/baeldung/scala/tailrec/StringLength.scala (100%) rename {scala-core-6 => scala-core/scala-core-6}/src/test/scala-2/com/baeldung/scala/implicitconversions/LengthUnitTest.scala (100%) rename {scala-core-6 => scala-core/scala-core-6}/src/test/scala-2/com/baeldung/scala/maps/MapsUnitTest.scala (100%) rename {scala-core-6 => scala-core/scala-core-6}/src/test/scala-2/com/baeldung/scala/pimpmylib/PimpLibExampleUnitTest.scala (100%) rename {scala-core-6 => scala-core/scala-core-6}/src/test/scala-2/com/baeldung/scala/ranges/RangeUnitTest.scala (100%) rename {scala-core-7 => scala-core/scala-core-7}/README.md (100%) rename {scala-core-7 => scala-core/scala-core-7}/src/main/scala-2/com/baeldung/scala/applyfunction/ApplyFunction.scala (100%) rename {scala-core-7 => scala-core/scala-core-7}/src/main/scala-2/com/baeldung/scala/argumentparsing/Args4J.scala (100%) rename {scala-core-7 => scala-core/scala-core-7}/src/main/scala-2/com/baeldung/scala/argumentparsing/Clist.scala (100%) rename {scala-core-7 => scala-core/scala-core-7}/src/main/scala-2/com/baeldung/scala/argumentparsing/PatternMatching.scala (100%) rename {scala-core-7 => scala-core/scala-core-7}/src/main/scala-2/com/baeldung/scala/argumentparsing/Scallop.scala (100%) rename {scala-core-7 => scala-core/scala-core-7}/src/main/scala-2/com/baeldung/scala/argumentparsing/ScallopPatternMatching.scala (100%) rename {scala-core-7 => scala-core/scala-core-7}/src/main/scala-2/com/baeldung/scala/argumentparsing/Scopt.scala (100%) rename {scala-core-7 => scala-core/scala-core-7}/src/main/scala-2/com/baeldung/scala/argumentparsing/Sliding.scala (100%) rename {scala-core-7 => scala-core/scala-core-7}/src/main/scala-2/com/baeldung/scala/arrayvswrappedarray/ArrayVsWrappedArray.scala (100%) rename {scala-core-7 => scala-core/scala-core-7}/src/main/scala-2/com/baeldung/scala/countchar/CountCharsInString.scala (100%) rename {scala-core-7 => scala-core/scala-core-7}/src/main/scala-2/com/baeldung/scala/productserializable/ColorInference.scala (100%) rename {scala-core-7 => scala-core/scala-core-7}/src/main/scala-2/com/baeldung/scala/return/ReturnExamples.scala (100%) rename {scala-core-7 => scala-core/scala-core-7}/src/main/scala-2/com/baeldung/scala/specialized/AllTypesSpecialized.scala (100%) rename {scala-core-7 => scala-core/scala-core-7}/src/main/scala-2/com/baeldung/scala/specialized/NotSpecialized.scala (100%) rename {scala-core-7 => scala-core/scala-core-7}/src/main/scala-2/com/baeldung/scala/specialized/OnlyTwoTypesSpecialized.scala (100%) rename {scala-core-7 => scala-core/scala-core-7}/src/main/scala-2/com/baeldung/scala/typeinference/TypeInferenceLimitations.scala (100%) rename {scala-core-7 => scala-core/scala-core-7}/src/main/scala-2/com/baeldung/scala/typeinference/TypeInferredFunctions.scala (100%) rename {scala-core-7 => scala-core/scala-core-7}/src/main/scala-2/com/baeldung/scala/typeinference/TypeInferredParameters.scala (100%) rename {scala-core-7 => scala-core/scala-core-7}/src/main/scala-2/com/baeldung/scala/typeinference/TypeInferredVariables.scala (100%) rename {scala-core-7 => scala-core/scala-core-7}/src/test/scala-2/com/baeldung/scala/arrays/CopyAnArrayToAnotherUnitTest.scala (100%) rename {scala-core-7 => scala-core/scala-core-7}/src/test/scala-2/com/baeldung/scala/arrays/InitializeAnArrayUnitTest.scala (100%) rename {scala-core-7 => scala-core/scala-core-7}/src/test/scala-2/com/baeldung/scala/countchar/CountCharsInStringUnitTest.scala (100%) rename {scala-core-7 => scala-core/scala-core-7}/src/test/scala-2/com/baeldung/scala/typeinference/TypeInferenceLimitationsTest.scala (100%) rename {scala-core-7 => scala-core/scala-core-7}/src/test/scala-2/com/baeldung/scala/typeinference/TypeInferredFunctionsTest.scala (100%) rename {scala-core-7 => scala-core/scala-core-7}/src/test/scala-2/com/baeldung/scala/typeinference/TypeInferredVariablesTest.scala (100%) rename {scala-core-8 => scala-core/scala-core-8}/README.md (100%) rename {scala-core-8 => scala-core/scala-core-8}/src/main/resources/application.conf (100%) rename {scala-core-8 => scala-core/scala-core-8}/src/main/scala-2/com/baeldung/scala/builderpattern/Guitar.scala (100%) rename {scala-core-8 => scala-core/scala-core-8}/src/main/scala-2/com/baeldung/scala/builderpattern/GuitarBuilder.scala (100%) rename {scala-core-8 => scala-core/scala-core-8}/src/main/scala-2/com/baeldung/scala/builderpattern/SafeGuitarBuilder.scala (100%) rename {scala-core-8 => scala-core/scala-core-8}/src/main/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDates.scala (100%) rename {scala-core-8 => scala-core/scala-core-8}/src/main/scala-2/com/baeldung/scala/duration/JavaToScalaDuration.scala (100%) rename {scala-core-8 => scala-core/scala-core-8}/src/main/scala-2/com/baeldung/scala/macros/GenericMacros.scala (100%) rename {scala-core-8 => scala-core/scala-core-8}/src/main/scala-2/com/baeldung/scala/macros/OddEvenMacros.scala (100%) rename {scala-core-8 => scala-core/scala-core-8}/src/main/scala-2/com/baeldung/scala/reverselists/ListReverser.scala (100%) rename {scala-core-8 => scala-core/scala-core-8}/src/test/scala-2/com/baeldung/scala/builderpattern/GuitarSpec.scala (100%) rename {scala-core-8 => scala-core/scala-core-8}/src/test/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDatesTest.scala (100%) rename {scala-core-8 => scala-core/scala-core-8}/src/test/scala-2/com/baeldung/scala/duration/DurationTest.scala (100%) rename {scala-core-8 => scala-core/scala-core-8}/src/test/scala-2/com/baeldung/scala/either/EitherTest.scala (100%) rename {scala-core-8 => scala-core/scala-core-8}/src/test/scala-2/com/baeldung/scala/macros/GenericMacrosTest.scala (100%) rename {scala-core-8 => scala-core/scala-core-8}/src/test/scala-2/com/baeldung/scala/macros/OddEvenMacrosTest.scala (100%) rename {scala-core-8 => scala-core/scala-core-8}/src/test/scala-2/com/baeldung/scala/reverselists/ListReverserSpec.scala (100%) rename {scala-core-8 => scala-core/scala-core-8}/src/test/scala/com/baeldung/scala/highorderfunctions/HighOrderFunctionsUnitTest.scala (100%) rename {scala-core-fp => scala-core/scala-core-fp}/README.md (100%) rename {scala-core-fp => scala-core/scala-core-fp}/src/main/scala-2/com/baeldung/scala/caseobjectsvsenums/CurrencyADT.scala (100%) rename {scala-core-fp => scala-core/scala-core-fp}/src/main/scala-2/com/baeldung/scala/caseobjectsvsenums/CurrencyEnum.scala (100%) rename {scala-core-fp => scala-core/scala-core-fp}/src/main/scala-2/com/baeldung/scala/firstclassfunctions/AnonymousFunctionInHOF.scala (100%) rename {scala-core-fp => scala-core/scala-core-fp}/src/main/scala-2/com/baeldung/scala/firstclassfunctions/Closure.scala (100%) rename {scala-core-fp => scala-core/scala-core-fp}/src/main/scala-2/com/baeldung/scala/firstclassfunctions/Currying.scala (100%) rename {scala-core-fp => scala-core/scala-core-fp}/src/main/scala-2/com/baeldung/scala/firstclassfunctions/FunctionAsArgumentInHOF.scala (100%) rename {scala-core-fp => scala-core/scala-core-fp}/src/main/scala-2/com/baeldung/scala/firstclassfunctions/FunctionAsResultInHOF.scala (100%) rename {scala-core-fp => scala-core/scala-core-fp}/src/main/scala-2/com/baeldung/scala/firstclassfunctions/PartiallyAppliedFunction.scala (100%) rename {scala-core-fp => scala-core/scala-core-fp}/src/main/scala-2/com/baeldung/scala/foldvsreduce/FoldLeftVsReduceLeft.scala (100%) rename {scala-core-fp => scala-core/scala-core-fp}/src/main/scala-2/com/baeldung/scala/monad/LazyMonad.scala (100%) rename {scala-core-fp => scala-core/scala-core-fp}/src/main/scala-2/com/baeldung/scala/monoid/ListMonoidInstance.scala (100%) rename {scala-core-fp => scala-core/scala-core-fp}/src/main/scala-2/com/baeldung/scala/monoid/MapMonoidInstance.scala (100%) rename {scala-core-fp => scala-core/scala-core-fp}/src/main/scala-2/com/baeldung/scala/monoid/Monoid.scala (100%) rename {scala-core-fp => scala-core/scala-core-fp}/src/main/scala-2/com/baeldung/scala/tagless/TaglessFinal.scala (100%) rename {scala-core-fp => scala-core/scala-core-fp}/src/main/scala-2/com/baeldung/scala/typeclasses/TypeClassExample.scala (100%) rename {scala-core-fp => scala-core/scala-core-fp}/src/test/scala-2/com/baeldung/scala/caseobjectsvsenums/CurrencyAdtUnitTest.scala (100%) rename {scala-core-fp => scala-core/scala-core-fp}/src/test/scala-2/com/baeldung/scala/caseobjectsvsenums/CurrencyEnumUnitTest.scala (100%) rename {scala-core-fp => scala-core/scala-core-fp}/src/test/scala-2/com/baeldung/scala/currying/CurryingUnitTest.scala (100%) rename {scala-core-fp => scala-core/scala-core-fp}/src/test/scala-2/com/baeldung/scala/firstclassfunctions/AnonymousFunctionInHOFUnitTest.scala (100%) rename {scala-core-fp => scala-core/scala-core-fp}/src/test/scala-2/com/baeldung/scala/firstclassfunctions/ClosureUnitTest.scala (100%) rename {scala-core-fp => scala-core/scala-core-fp}/src/test/scala-2/com/baeldung/scala/firstclassfunctions/CurryingUnitTest.scala (100%) rename {scala-core-fp => scala-core/scala-core-fp}/src/test/scala-2/com/baeldung/scala/firstclassfunctions/FunctionAsArgumentInHOFUnitTest.scala (100%) rename {scala-core-fp => scala-core/scala-core-fp}/src/test/scala-2/com/baeldung/scala/firstclassfunctions/FunctionAsResultInHOFUnitTest.scala (100%) rename {scala-core-fp => scala-core/scala-core-fp}/src/test/scala-2/com/baeldung/scala/firstclassfunctions/PartiallyAppliedFunctionUnitTest.scala (100%) rename {scala-core-fp => scala-core/scala-core-fp}/src/test/scala-2/com/baeldung/scala/foldvsreduce/FoldLeftVsReduceLeftUnitTest.scala (100%) rename {scala-core-fp => scala-core/scala-core-fp}/src/test/scala-2/com/baeldung/scala/functioncomposition/FunctionCompositionTest.scala (100%) rename {scala-core-fp => scala-core/scala-core-fp}/src/test/scala-2/com/baeldung/scala/functor/FunctorUnitTest.scala (100%) rename {scala-core-fp => scala-core/scala-core-fp}/src/test/scala-2/com/baeldung/scala/monad/LazyMonadUnitTest.scala (100%) rename {scala-core-fp => scala-core/scala-core-fp}/src/test/scala-2/com/baeldung/scala/monoid/MapMonoidUnitTest.scala (100%) rename {scala-core-fp => scala-core/scala-core-fp}/src/test/scala-2/com/baeldung/scala/monoid/WordFrequencyCounterUnitTest.scala (100%) rename {scala-core-fp => scala-core/scala-core-fp}/src/test/scala-2/com/baeldung/scala/tagless/TaglessFinalUnitTest.scala (100%) rename {scala-core-fp => scala-core/scala-core-fp}/src/test/scala-2/com/baeldung/scala/typeclasses/TypeClassExampleUnitTest.scala (100%) rename {scala-core-io => scala-core/scala-core-io}/README.md (100%) rename {scala-core-io => scala-core/scala-core-io}/src/main/scala-2/com/baeldung/scala/FileDeletion.scala (100%) rename {scala-core-io => scala-core/scala-core-io}/src/test/resources/com.baeldung.scala.io/four_lines_string.txt (100%) rename {scala-core-io => scala-core/scala-core-io}/src/test/resources/com.baeldung.scala.io/one_line_string.txt (100%) rename {scala-core-io => scala-core/scala-core-io}/src/test/scala-2/com/baeldung/scala/io/FileDeletionTest.scala (100%) rename {scala-core-io => scala-core/scala-core-io}/src/test/scala-2/com/baeldung/scala/io/SourceUnitTest.scala (100%) rename {scala-core-oop => scala-core/scala-core-oop}/README.md (100%) rename {scala-core-oop => scala-core/scala-core-oop}/src/main/scala-2/com/baeldung/scala/bounds/contextbound.scala (100%) rename {scala-core-oop => scala-core/scala-core-oop}/src/main/scala-2/com/baeldung/scala/bounds/conversion.scala (100%) rename {scala-core-oop => scala-core/scala-core-oop}/src/main/scala-2/com/baeldung/scala/bounds/implicitconversion.scala (100%) rename {scala-core-oop => scala-core/scala-core-oop}/src/main/scala-2/com/baeldung/scala/bounds/implicitobject.scala (100%) rename {scala-core-oop => scala-core/scala-core-oop}/src/main/scala-2/com/baeldung/scala/bounds/implicitvalues.scala (100%) rename {scala-core-oop => scala-core/scala-core-oop}/src/main/scala-2/com/baeldung/scala/bounds/multipleparameterlists.scala (100%) rename {scala-core-oop => scala-core/scala-core-oop}/src/main/scala-2/com/baeldung/scala/bounds/richobject.scala (100%) rename {scala-core-oop => scala-core/scala-core-oop}/src/main/scala-2/com/baeldung/scala/bounds/viewbound.scala (100%) rename {scala-core-oop => scala-core/scala-core-oop}/src/main/scala-2/com/baeldung/scala/caseobject/ObjectExample.scala (100%) rename {scala-core-oop => scala-core/scala-core-oop}/src/main/scala-2/com/baeldung/scala/classcompositionwithtraits/CarTraits.scala (100%) rename {scala-core-oop => scala-core/scala-core-oop}/src/main/scala-2/com/baeldung/scala/classvsobject/ClassExamples.scala (100%) rename {scala-core-oop => scala-core/scala-core-oop}/src/main/scala-2/com/baeldung/scala/classvsobject/ObjectExamples.scala (100%) rename {scala-core-oop => scala-core/scala-core-oop}/src/main/scala-2/com/baeldung/scala/enumerations/Fingers.scala (100%) rename {scala-core-oop => scala-core/scala-core-oop}/src/main/scala-2/com/baeldung/scala/enumerations/FingersOperation.scala (100%) rename {scala-core-oop => scala-core/scala-core-oop}/src/main/scala-2/com/baeldung/scala/generics/GenericsIntro.scala (100%) rename {scala-core-oop => scala-core/scala-core-oop}/src/main/scala-2/com/baeldung/scala/generics/Queue.scala (100%) rename {scala-core-oop => scala-core/scala-core-oop}/src/main/scala-2/com/baeldung/scala/lifting/Examples.scala (100%) rename {scala-core-oop => scala-core/scala-core-oop}/src/main/scala-2/com/baeldung/scala/oopinscala/OopConcepts.scala (100%) rename {scala-core-oop => scala-core/scala-core-oop}/src/main/scala-2/com/baeldung/scala/oopinscala/polymorphism/PolymorphismExamples.scala (100%) rename {scala-core-oop => scala-core/scala-core-oop}/src/main/scala-2/com/baeldung/scala/variance/Variance.scala (100%) rename {scala-core-oop => scala-core/scala-core-oop}/src/test/scala-2/com/baeldung/scala/caseobject/ObjectExampleUnitTest.scala (100%) rename {scala-core-oop => scala-core/scala-core-oop}/src/test/scala-2/com/baeldung/scala/classcompositionwithtraits/CarTraitsUnitTest.scala (100%) rename {scala-core-oop => scala-core/scala-core-oop}/src/test/scala-2/com/baeldung/scala/classvsobject/ClassExamplesUnitTest.scala (100%) rename {scala-core-oop => scala-core/scala-core-oop}/src/test/scala-2/com/baeldung/scala/classvsobject/ObjectExamplesUnitTest.scala (100%) rename {scala-core-oop => scala-core/scala-core-oop}/src/test/scala-2/com/baeldung/scala/enumerations/FingersOperationUnitTest.scala (100%) rename {scala-core-oop => scala-core/scala-core-oop}/src/test/scala-2/com/baeldung/scala/lifting/ExamplesUnitTest.scala (100%) rename {scala-core-oop => scala-core/scala-core-oop}/src/test/scala-2/com/baeldung/scala/oopinscala/OopConceptsUnitTest.scala (100%) rename {scala-core-oop => scala-core/scala-core-oop}/src/test/scala-2/com/baeldung/scala/oopinscala/polymorphism/PolymorphismExamplesUnitTest.scala (100%) rename {scala-core-oop => scala-core/scala-core-oop}/src/test/scala-2/com/baeldung/scala/variance/VarianceUnitTest.scala (100%) rename scala-lang/{ => scala-lang-1}/README.md (100%) rename scala-lang/{ => scala-lang-1}/project/build.properties (100%) rename scala-lang/{ => scala-lang-1}/src/main/scala-2/com/baeldung/scala/OuterStackedSample.scala (100%) rename scala-lang/{ => scala-lang-1}/src/main/scala-2/com/baeldung/scala/callbynameandvalue/CallByNameCallByValue.scala (100%) rename scala-lang/{ => scala-lang-1}/src/main/scala-2/com/baeldung/scala/conditional/ScalaConditionalExpressions.scala (100%) rename scala-lang/{ => scala-lang-1}/src/main/scala-2/com/baeldung/scala/equality/package.scala (100%) rename scala-lang/{ => scala-lang-1}/src/main/scala-2/com/baeldung/scala/functionsandmethods/FunctionsAndMethods.scala (100%) rename scala-lang/{ => scala-lang-1}/src/main/scala-2/com/baeldung/scala/mutability/ImmutabilityCar.scala (100%) rename scala-lang/{ => scala-lang-1}/src/main/scala-2/com/baeldung/scala/operators/ScalaOperators.scala (100%) rename scala-lang/{ => scala-lang-1}/src/main/scala-2/com/baeldung/scala/packageimport/Importing.scala (100%) rename scala-lang/{ => scala-lang-1}/src/main/scala-2/com/baeldung/scala/packageimport/InnerStackSample.scala (100%) rename scala-lang/{ => scala-lang-1}/src/main/scala-2/com/baeldung/scala/packageimport/package.scala (100%) rename scala-lang/{ => scala-lang-1}/src/main/scala-2/com/baeldung/scala/packageimport/stacking/StackedAccess.scala (100%) rename scala-lang/{ => scala-lang-1}/src/main/scala-2/com/baeldung/scala/packageimport/stacking/StackedPackage.scala (100%) rename scala-lang/{ => scala-lang-1}/src/main/scala-2/com/baeldung/scala/packageimport/vehicle/Bicycle.scala (100%) rename scala-lang/{ => scala-lang-1}/src/main/scala-2/com/baeldung/scala/packageimport/vehicle/Car.scala (100%) rename scala-lang/{ => scala-lang-1}/src/main/scala-2/com/baeldung/scala/packageimport/vehicle/Vehicle.scala (100%) rename scala-lang/{ => scala-lang-1}/src/main/scala-2/com/baeldung/scala/typehierarchy/TypeHierarchy.scala (100%) rename scala-lang/{ => scala-lang-1}/src/main/scala-2/defvarval/LazyValues.scala (100%) rename scala-lang/{ => scala-lang-1}/src/main/scala-2/defvarval/Methods.scala (100%) rename scala-lang/{ => scala-lang-1}/src/main/scala-2/defvarval/Values.scala (100%) rename scala-lang/{ => scala-lang-1}/src/main/scala-2/defvarval/Variables.scala (100%) rename scala-lang/{ => scala-lang-1}/src/test/scala-2/com/baeldung/scala/callbynameandvalue/CallByNameCallByValueUnitTest.scala (100%) rename scala-lang/{ => scala-lang-1}/src/test/scala-2/com/baeldung/scala/caseclasses/CaseClassesUnitTest.scala (100%) rename scala-lang/{ => scala-lang-1}/src/test/scala-2/com/baeldung/scala/conditional/ScalaConditionalExpressionsUnitTest.scala (100%) rename scala-lang/{ => scala-lang-1}/src/test/scala-2/com/baeldung/scala/equality/EqualityUnitTest.scala (100%) rename scala-lang/{ => scala-lang-1}/src/test/scala-2/com/baeldung/scala/functionsandmethods/FunctionsAndMethodsUnitTest.scala (100%) rename scala-lang/{ => scala-lang-1}/src/test/scala-2/com/baeldung/scala/mutability/ImmutabilityCarUnitTest.scala (100%) rename scala-lang/{ => scala-lang-1}/src/test/scala-2/com/baeldung/scala/mutability/ImmutableCollectionsUnitTest.scala (100%) rename scala-lang/{ => scala-lang-1}/src/test/scala-2/com/baeldung/scala/mutability/MutableCollectionsUnitTest.scala (100%) rename scala-lang/{ => scala-lang-1}/src/test/scala-2/com/baeldung/scala/typehierarchy/TypeHierarchyUnitTest.scala (100%) rename {scala-lang-2 => scala-lang/scala-lang-2}/README.md (100%) rename {scala-lang-2 => scala-lang/scala-lang-2}/src/main/scala-2/com/baeldung/scala/inheritance/Hierarchical.scala (100%) rename {scala-lang-2 => scala-lang/scala-lang-2}/src/main/scala-2/com/baeldung/scala/inheritance/Hybrid.scala (100%) rename {scala-lang-2 => scala-lang/scala-lang-2}/src/main/scala-2/com/baeldung/scala/inheritance/Multilevel.scala (100%) rename {scala-lang-2 => scala-lang/scala-lang-2}/src/main/scala-2/com/baeldung/scala/inheritance/Multiple.scala (100%) rename {scala-lang-2 => scala-lang/scala-lang-2}/src/main/scala-2/com/baeldung/scala/inheritance/Single.scala (100%) rename {scala-lang-2 => scala-lang/scala-lang-2}/src/main/scala-2/com/baeldung/scala/nested/Factorial.scala (100%) rename {scala-lang-2 => scala-lang/scala-lang-2}/src/main/scala-2/com/baeldung/scala/singletons/Counter.scala (100%) rename {scala-lang-2 => scala-lang/scala-lang-2}/src/main/scala-2/com/baeldung/scala/voidtypes/NilEmptyList.scala (100%) rename {scala-lang-2 => scala-lang/scala-lang-2}/src/main/scala-2/com/baeldung/scala/voidtypes/NoneEmptyOption.scala (100%) rename {scala-lang-2 => scala-lang/scala-lang-2}/src/main/scala-2/com/baeldung/scala/voidtypes/NothingTrait.scala (100%) rename {scala-lang-2 => scala-lang/scala-lang-2}/src/main/scala-2/com/baeldung/scala/voidtypes/NullTypeAndnullValue.scala (100%) rename {scala-lang-2 => scala-lang/scala-lang-2}/src/main/scala-2/com/baeldung/scala/voidtypes/UnitReturnType.scala (100%) rename {scala-lang-2 => scala-lang/scala-lang-2}/src/main/scala-2/com/baeldung/scala/withtrait/Animal.scala (100%) rename {scala-lang-2 => scala-lang/scala-lang-2}/src/main/scala-2/com/baeldung/scala/withtrait/Musician.scala (100%) rename {scala-lang-2 => scala-lang/scala-lang-2}/src/main/scala-2/com/baeldung/scala/withtrait/Person.scala (100%) rename {scala-lang-2 => scala-lang/scala-lang-2}/src/main/scala-2/com/baeldung/scala/withtrait/Politician.scala (100%) rename {scala-lang-2 => scala-lang/scala-lang-2}/src/test/scala-2/com/baeldung/scala/singletons/CounterUnitTest.scala (100%) rename {scala-lang-2 => scala-lang/scala-lang-2}/src/test/scala-2/com/baeldung/scala/voidtypes/NilEmptyListUnitTest.scala (100%) rename {scala-lang-2 => scala-lang/scala-lang-2}/src/test/scala-2/com/baeldung/scala/voidtypes/NoneEmptyOptionUnitTest.scala (100%) rename {scala-lang-2 => scala-lang/scala-lang-2}/src/test/scala-2/com/baeldung/scala/voidtypes/NothingTraitUnitTest.scala (100%) rename {scala-lang-2 => scala-lang/scala-lang-2}/src/test/scala-2/com/baeldung/scala/voidtypes/NullTypeAndNullValueUnitTest.scala (100%) rename {scala-lang-2 => scala-lang/scala-lang-2}/src/test/scala-2/com/baeldung/scala/voidtypes/UnitReturnTypeUnitTest.scala (100%) rename {scala-lang-2 => scala-lang/scala-lang-2}/src/test/scala-2/com/baeldung/scala/withtrait/WithTraitSpec.scala (100%) rename scala-libraries/{ => scala-libraries-1}/README.md (100%) rename scala-libraries/{ => scala-libraries-1}/src/finch/hello-world/build.sbt (100%) rename scala-libraries/{ => scala-libraries-1}/src/finch/hello-world/project/build.properties (100%) rename scala-libraries/{ => scala-libraries-1}/src/finch/hello-world/src/main/scala/com/baeldung/finch/helloWorld/Main.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/finch/todo/build.sbt (100%) rename scala-libraries/{ => scala-libraries-1}/src/finch/todo/project/build.properties (100%) rename scala-libraries/{ => scala-libraries-1}/src/finch/todo/src/main/scala/com/baeldung/finch/todo/Main.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/finch/todo/src/main/scala/com/baeldung/finch/todo/models/Todo.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/main/resources/application.conf (100%) rename scala-libraries/{ => scala-libraries-1}/src/main/scala-2/com/baeldung/scala/cats/Area.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/main/scala-2/com/baeldung/scala/cats/AreaInstances.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/main/scala-2/com/baeldung/scala/cats/ShapeArea.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/main/scala-2/com/baeldung/scala/cats/ShapeAreaSyntax.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/main/scala-2/com/baeldung/scala/cats/monoids/CollectionMonoid.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/main/scala-2/com/baeldung/scala/cats/semigroups/CollectionSemigroup.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/main/scala-2/com/baeldung/scala/cats/semigroups/CustomIntSemigroup.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/main/scala-2/com/baeldung/scala/cats/semigroups/IntSemigroup.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/main/scala-2/com/baeldung/scala/cats/show/CustomInstance.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/main/scala-2/com/baeldung/scala/cats/show/InterfaceSyntax.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/main/scala-2/com/baeldung/scala/cats/show/ShowImpl.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/main/scala-2/com/baeldung/scala/fs2/Fs2Examples.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/main/scala-2/com/baeldung/scala/monocle/OpticsExamples.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/main/scala-2/com/baeldung/scala/reactivemongo/MongoDBConnection.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/main/scala-2/com/baeldung/scala/scalaz/ScalazExamples.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/main/scala-2/com/baeldung/scala/scalaz/principles/ScalazPrinciplesExamples.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/main/scala-2/com/baeldung/scala/slick/Connection.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/main/scala-2/com/baeldung/scala/slick/Entities.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/main/scala-2/com/baeldung/scala/slick/SlickTables.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/main/scala-2/com/baeldung/scala/typedactors/AkkaTyped.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/test/resources/application.conf (100%) rename scala-libraries/{ => scala-libraries-1}/src/test/resources/fs2data.txt (100%) rename scala-libraries/{ => scala-libraries-1}/src/test/resources/logback-test.xml (100%) rename scala-libraries/{ => scala-libraries-1}/src/test/scala-2/com/baeldung/scala/cats/ShapeAreaSyntaxUnitTest.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/test/scala-2/com/baeldung/scala/cats/ShapeAreaUnitTest.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/test/scala-2/com/baeldung/scala/cats/monoids/CollectionMonoidUnitTest.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/test/scala-2/com/baeldung/scala/cats/semigroups/CollectionSemigroupUnitTest.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/test/scala-2/com/baeldung/scala/cats/semigroups/CustomIntSemigroupUnitTest.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/test/scala-2/com/baeldung/scala/cats/semigroups/IntSemigroupUnitTest.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/test/scala-2/com/baeldung/scala/cats/show/CustomInstanceUnitTest.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/test/scala-2/com/baeldung/scala/cats/show/InterfaceSyntaxUnitTest.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/test/scala-2/com/baeldung/scala/cats/show/ShowImplUnitTest.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/test/scala-2/com/baeldung/scala/fs2/FS2SampleTest.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/test/scala-2/com/baeldung/scala/monocle/OpticsExamplesUnitTest.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/test/scala-2/com/baeldung/scala/reactivemongo/MongoEntities.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/test/scala-2/com/baeldung/scala/reactivemongo/ReactiveMongoUnitTest.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/test/scala-2/com/baeldung/scala/scalaz/ScalazExamplesUnitTest.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/test/scala-2/com/baeldung/scala/scalaz/principles/ScalazPrinciplesExamplesUnitTest.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/test/scala-2/com/baeldung/scala/shapeless/ShapelessUnitTest.scala (100%) rename scala-libraries/{ => scala-libraries-1}/src/test/scala-2/com/baeldung/scala/slick/PlayerServiceUnitTest.scala (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/README.md (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/it/scala-2/com/baeldung/requests/RequestsScalaHttpClientLiveTest.scala (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/main/resources/application.conf (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/main/scala-2/com/baeldung/cache/service/AsyncQueryMemoizeService.scala (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/main/scala-2/com/baeldung/cache/service/CacheFlagService.scala (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/main/scala-2/com/baeldung/cache/service/CaffeineCacheConfig.scala (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/main/scala-2/com/baeldung/cache/service/CatsService.scala (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/main/scala-2/com/baeldung/cache/service/GenericCacheService.scala (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/main/scala-2/com/baeldung/cache/service/Models.scala (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/main/scala-2/com/baeldung/cache/service/ScalaCacheCachingBlock.scala (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/main/scala-2/com/baeldung/cache/service/SyncQueryCustomMemoizeKeyService.scala (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/main/scala-2/com/baeldung/cache/service/SyncQueryMemoizeService.scala (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/main/scala-2/com/baeldung/cache/service/SyncQueryService.scala (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/main/scala-2/com/baeldung/circe/JSONConversions.scala (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/main/scala-2/com/baeldung/date/DateParser.scala (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/main/scala-2/com/baeldung/elastic4s/Main.scala (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/main/scala-2/com/baeldung/enumeratum/Enums.scala (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/main/scala-2/com/baeldung/scala/monix/MonixTask.scala (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/main/scala-2/play_db/PlayDbExample.scala (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/test/scala-2/com/baeldung/akka/TestService.scala (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/test/scala-2/com/baeldung/akka/Tests.scala (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/test/scala-2/com/baeldung/cache/GenericCacheUnitTest.scala (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/test/scala-2/com/baeldung/cache/ScalaCacheAsyncUnitTest.scala (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/test/scala-2/com/baeldung/cache/ScalaCacheCachingBlockUnitTest.scala (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/test/scala-2/com/baeldung/cache/ScalaCacheCatsServiceUnitTest.scala (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/test/scala-2/com/baeldung/cache/ScalaCacheSyncUnitTest.scala (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/test/scala-2/com/baeldung/circe/JSONConversionsTest.scala (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/test/scala-2/com/baeldung/date/DateParserSpec.scala (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/test/scala-2/com/baeldung/enumeratum/EnumeratumUnitTest.scala (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/test/scala-2/com/baeldung/scala/circe/CirceUnitTest.scala (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/test/scala-2/com/baeldung/scala/circe/CustomDecoderUnitTest.scala (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/test/scala-2/com/baeldung/scala/monix/MonixTaskUnitTest.scala (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/test/scala-2/com/baeldung/scalacheck/CommandsUnitTest.scala (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/test/scala-2/com/baeldung/scalacheck/GeneratorsUnitTest.scala (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/test/scala-2/com/baeldung/scalacheck/PropertiesUnitTest.scala (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/test/scala-2/com/baeldung/scalacheck/PropertiesWithCustomParametersUnitTest.scala (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/test/scala-2/com/baeldung/scalacheck/model/Simple.scala (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/test/scala-2/com/baeldung/scalacheck/model/SystemUnderTest.scala (100%) rename {scala-libraries-2 => scala-libraries/scala-libraries-2}/src/test/scala-2/com/baeldung/scalacheck/model/TrafficLight.scala (100%) rename {scala-libraries-3 => scala-libraries/scala-libraries-3}/README.md (100%) rename {scala-libraries-3 => scala-libraries/scala-libraries-3}/src/main/resources/log4j2.xml (100%) rename {scala-libraries-3 => scala-libraries/scala-libraries-3}/src/main/scala-2/com/baeldung/scala/http4s/SimpleClient.scala (100%) rename {scala-libraries-3 => scala-libraries/scala-libraries-3}/src/main/scala-2/com/baeldung/scala/http4s/SimpleServer.scala (100%) rename {scala-libraries-3 => scala-libraries/scala-libraries-3}/src/main/scala-2/com/baeldung/scala/log4j/LoggingApp.scala (100%) rename {scala-libraries-3 => scala-libraries/scala-libraries-3}/src/main/scala-2/com/baeldung/scala/pureconfig/Configs.scala (100%) rename {scala-libraries-3 => scala-libraries/scala-libraries-3}/src/main/scala-2/com/baeldung/scala/retry/PrimeNumberRetry.scala (100%) rename {scala-libraries-3 => scala-libraries/scala-libraries-3}/src/tapir/build.sbt (100%) rename {scala-libraries-3 => scala-libraries/scala-libraries-3}/src/tapir/client/src/main/scala/com/baeldung/tapir/client/Client.scala (100%) rename {scala-libraries-3 => scala-libraries/scala-libraries-3}/src/tapir/endpoint/src/main/scala/com/baeldung/tapir/endpoint/AnimalEndpoints.scala (100%) rename {scala-libraries-3 => scala-libraries/scala-libraries-3}/src/tapir/project/build.properties (100%) rename {scala-libraries-3 => scala-libraries/scala-libraries-3}/src/tapir/server/src/main/scala/com/baeldung/tapir/server/BaseAkkaServer.scala (100%) rename {scala-libraries-3 => scala-libraries/scala-libraries-3}/src/tapir/server/src/main/scala/com/baeldung/tapir/server/Database.scala (100%) rename {scala-libraries-3 => scala-libraries/scala-libraries-3}/src/tapir/server/src/main/scala/com/baeldung/tapir/server/KittensServer.scala (100%) rename {scala-libraries-3 => scala-libraries/scala-libraries-3}/src/test/resources/application-default.conf (100%) rename {scala-libraries-3 => scala-libraries/scala-libraries-3}/src/test/resources/application.conf (100%) rename {scala-libraries-3 => scala-libraries/scala-libraries-3}/src/test/resources/database.conf (100%) rename {scala-libraries-3 => scala-libraries/scala-libraries-3}/src/test/resources/http.conf (100%) rename {scala-libraries-3 => scala-libraries/scala-libraries-3}/src/test/resources/main.conf (100%) rename {scala-libraries-3 => scala-libraries/scala-libraries-3}/src/test/resources/notification.conf (100%) rename {scala-libraries-3 => scala-libraries/scala-libraries-3}/src/test/scala-2/com/baeldung/scala/config/ConfigTest.scala (100%) rename {scala-libraries-3 => scala-libraries/scala-libraries-3}/src/test/scala-2/com/baeldung/scala/pureconfig/SampleConfigLoader.scala (100%) rename {scala-libraries-3 => scala-libraries/scala-libraries-3}/src/test/scala-2/com/baeldung/scala/retry/PrimeNumberRetryTest.scala (100%) rename {scala-libraries-3 => scala-libraries/scala-libraries-3}/src/test/scala-2/com/baeldung/scalamock/ScalamockFeaturesTest.scala (100%) rename {scala-libraries-3 => scala-libraries/scala-libraries-3}/src/test/scala-2/com/baeldung/scalamock/ScalamockFunctionTest.scala (100%) rename {scala-libraries-3 => scala-libraries/scala-libraries-3}/src/test/scala-2/com/baeldung/scalamock/ScalamockMockingStylesTest.scala (100%) rename {scala-libraries-3 => scala-libraries/scala-libraries-3}/src/test/scala-2/com/baeldung/scalamock/model/Models.scala (100%) rename {scala-libraries-3 => scala-libraries/scala-libraries-3}/src/test/scala-2/com/baeldung/scalamock/service/Services.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/README.md (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/it/resources/docker-compose.yml (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/it/resources/s3-test.txt (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/it/scala-2/com/baeldung/scala/pulsar4s/PulsarJsonSchemaManualTest.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/it/scala-2/com/baeldung/scala/pulsar4s/PulsarStringSchemaManualTest.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/it/scala-2/com/baeldung/scala/testcontainers/DockerComposeManualTest.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/it/scala-2/com/baeldung/scala/testcontainers/GenericContainerManualTest.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/it/scala-2/com/baeldung/scala/testcontainers/LocalstackModuleManualTest.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/main/resources/logback.xml (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/main/scala-2/com/baeldung/scala/awscala/Main.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/main/scala-2/com/baeldung/scala/logging/ScalaLoggingSample.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarConsumer.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarProducer.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarClient.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarConsumer.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarMessage.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarProducer.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/main/scala-2/com/baeldung/scala/testcontainers/SimpleS3Uploader.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/redis-intro/build.sbt (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/redis-intro/docker-compose.yml (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/redis-intro/project/Dependencies.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/redis-intro/project/build.properties (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/redis-intro/src/main/scala/com/baeldung/redis/cache/CacheThrough.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/redis-intro/src/main/scala/com/baeldung/redis/db/BooksDB.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/redis-intro/src/main/scala/com/baeldung/redis/db/VirtualDatabase.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/redis-intro/src/main/scala/com/baeldung/redis/geospatial/GeoPoints.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/redis-intro/src/main/scala/com/baeldung/redis/geospatial/Geospatial.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/redis-intro/src/main/scala/com/baeldung/redis/leaderboard/LeaderBoard.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/redis-intro/src/main/scala/com/baeldung/redis/leaderboard/model/EmployDB.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/redis-intro/src/main/scala/com/baeldung/redis/leaderboard/model/EmployeeKey.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/redis-intro/src/main/scala/com/baeldung/redis/pubsub/Publisher.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/redis-intro/src/main/scala/com/baeldung/redis/pubsub/Subscriber.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/redis-intro/src/main/scala/com/baeldung/redis/ratelimit/RateLimit.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/redis-intro/src/main/scala/com/baeldung/redis/util/RedisClients.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/redis-intro/src/main/scala/com/baeldung/redis/util/WithRedis.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/redis-intro/src/test/scala/com/baeldung/redis/HelloRedisSpec.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/redis-intro/src/test/scala/com/baeldung/redis/cache/CacheThroughSpec.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/redis-intro/src/test/scala/com/baeldung/redis/geospatial/GeospatialSpec.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/redis-intro/src/test/scala/com/baeldung/redis/leaderboard/LeaderboardSpec.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/redis-intro/src/test/scala/com/baeldung/redis/ratelimit/RateLimitSpec.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/redis-intro/src/test/scala/com/baeldung/redis/util/RedisSpec.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/test/scala-2/com/baeldung/scala/async/ScalaAsyncTest.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/test/scala-2/com/baeldung/scala/cats/writer/WriterMonadUnitTest.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/test/scala-2/com/baeldung/scala/skunk/Session.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/test/scala-2/com/baeldung/scala/utest/AsyncTest.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/test/scala-2/com/baeldung/scala/utest/BeforeAfterTest.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/test/scala-2/com/baeldung/scala/utest/ExceptionHandling.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/test/scala-2/com/baeldung/scala/utest/NestedTest.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/test/scala-2/com/baeldung/scala/utest/RetryTest.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/test/scala-2/com/baeldung/scala/utest/RetryTestSuite.scala (100%) rename {scala-libraries-4 => scala-libraries/scala-libraries-4}/src/test/scala-2/com/baeldung/scala/utest/SimpleUTest.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/README.md (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/main/resources/docker-compose.yml (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/main/resources/kafka-intro-avro.conf (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/main/resources/kafka-intro.conf (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/main/resources/log4j2.xml (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/main/scala-2/com/baeldung/scala/kafka/intro/common/Article.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/main/scala-2/com/baeldung/scala/kafka/intro/common/ClientConfig.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/main/scala-2/com/baeldung/scala/kafka/intro/common/SerdeConfig.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleAvroConsumer.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleJsonStringConsumer.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/AvroDeSerializer.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerConfig.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerUtils.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/JsonStringDeSerializer.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleAvroProducer.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleJsonStringProducer.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/Generator.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/AvroSerializer.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/JsonStringSerializer.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerConfig.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerUtils.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/main/scala-2/com/baeldung/scala/spire/Fractional.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/main/scala-2/com/baeldung/scala/spire/Integral.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/main/scala-2/com/baeldung/scala/spire/Numeric.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/main/scala-2/com/baeldung/scala/spire/groups/Semigroups.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/main/scala-2/com/baeldung/scala/spire/groups/TranscationGroup.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/main/scala-2/com/baeldung/scala/spire/macros/CFor.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/main/scala-2/com/baeldung/scala/spire/macros/LiteralNumberSyntax.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/main/scala-2/com/baeldung/scala/spire/monoids/AdditiveMonoid.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/main/scala-2/com/baeldung/scala/spire/numbers/Complexes.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/main/scala-2/com/baeldung/scala/spire/numbers/Intervals.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/main/scala-2/com/baeldung/scala/spire/numbers/Naturals.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/main/scala-2/com/baeldung/scala/spire/numbers/Rationals.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/main/scala-2/com/baeldung/scala/spire/numbers/Reals.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/main/scala-2/com/baeldung/scala/spire/rings/EuclideanRings.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/main/scala-2/com/baeldung/scala/spire/rings/Rings.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/test/scala-2/com/baeldung/scala/spire/FractionalUnitTest.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/test/scala-2/com/baeldung/scala/spire/IntegralUnitTest.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/test/scala-2/com/baeldung/scala/spire/NumericUnitTest.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/test/scala-2/com/baeldung/scala/spire/groups/TransactionGroupUnitTest.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/test/scala-2/com/baeldung/scala/spire/monoids/AdditiveMonoidUnitTest.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/test/scala-2/com/baeldung/scala/spire/rings/EuclideanRingUnitTest.scala (100%) rename {scala-libraries-5 => scala-libraries/scala-libraries-5}/src/test/scala-2/com/baeldung/scala/spire/rings/RingsUnitTest.scala (100%) rename {scala-libraries-6 => scala-libraries/scala-libraries-6}/src/main/scala-3/com/baeldung/circeyaml/YamlExample.scala (100%) rename {scala-libraries-6 => scala-libraries/scala-libraries-6}/src/test/scala-3/com/baeldung/circeyaml/YamlExampleSpec.scala (100%) rename {scala-libraries-os => scala-libraries/scala-libraries-os}/README.md (100%) rename {scala-libraries-os => scala-libraries/scala-libraries-os}/src/main/resources/log4j2.xml (100%) rename {scala-libraries-os => scala-libraries/scala-libraries-os}/src/main/scala-2/com/baeldung/scala/os/OsApp.scala (100%) rename {scala-libraries-os => scala-libraries/scala-libraries-os}/src/main/scala-2/com/baeldung/scala/os/ScalaSysApp.scala (100%) rename scala3-lang/{ => scala3-lang-1}/README.md (100%) rename {scala3-lang-2 => scala3-lang/scala3-lang-1}/project/build.properties (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/enum/ADTExample.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/enum/ColorExamples.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/implicits/ExtensionMethod.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/implicits/ImplicitConversion.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/implicits/ProvidingContextualEnvironment.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/implicits/WritingTypeclassInstances.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/Extension.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitConversion.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitParameter.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitlyMagic.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/Extension.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitConversion.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitParameter.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitlyMagic.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/implicits/extensions/StringExtensions.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/intersectiontypes/BasicIntersectionType.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/intersectiontypes/DuckTyping.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/intersectiontypes/Inheritance.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/intersectiontypes/Overloading.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/macros/inline/InlineCompilerValidation.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/macros/inline/InlineDef.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/macros/inline/InlineIf.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/macros/inline/InlineMatch.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/macros/inline/InlineParams.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/macros/inline/InlineVal.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/macros/inline/InlineValDef.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/macros/inline/TransparentInline.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/mainmethods/HelloWorld.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/mainmethods/HelloWorldObject.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/mainmethods/WithParameters.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/multiversalequality/CanEqualDeriveClause.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/multiversalequality/CanEqualGivenInstance.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/multiversalequality/MultiversalEquality.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/multiversalequality/UniversalEquality.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/openclasses/Album.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/openclasses/DeluxeEdition.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/quitesyntax/Example.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/traits/ParameterizedTrait.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/typesystem/CompoundTypes.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/main/scala/com/baeldung/scala3/typesystem/OpaqueTypeAlias.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/test/scala/com/baeldung/scala3/implicits/ExtensionMethodUnitTest.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/test/scala/com/baeldung/scala3/implicits/ImplicitConversionUnitTest.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/test/scala/com/baeldung/scala3/implicits/ProvidingContextualEnvironmentUnitTest.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ExtensionUnitTest.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitConversionUnitTest.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitParameterUnitTest.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ExtensionUnitTest.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitConversionUnitTest.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitParameterUnitTest.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/test/scala/com/baeldung/scala3/implicits/extensions/ExtensionsUnitTest.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/test/scala/com/baeldung/scala3/intersectiontypes/BasicIntersectionTypeUnitTest.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/test/scala/com/baeldung/scala3/intersectiontypes/DuckTypingUnitTest.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/test/scala/com/baeldung/scala3/intersectiontypes/InheritanceUnitTest.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/test/scala/com/baeldung/scala3/intersectiontypes/OverloadingUnitTest.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/test/scala/com/baeldung/scala3/multiversalequality/CanEqualDeriveClauseUnitTest.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/test/scala/com/baeldung/scala3/multiversalequality/CanEqualGivenInstanceUnitTest.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/test/scala/com/baeldung/scala3/multiversalequality/MultiversalEqualityUnitTest.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/test/scala/com/baeldung/scala3/multiversalequality/UniversalEqualityUnitTest.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/test/scala/com/baeldung/scala3/traits/ParameterizedTraitUnitTest.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/test/scala/com/baeldung/scala3/typesystem/CompoundTypesUnitTest.scala (100%) rename scala3-lang/{ => scala3-lang-1}/src/test/scala/com/baeldung/scala3/typesystem/OpaqueTypeAliasUnitTest.scala (100%) rename {scala3-lang-2 => scala3-lang/scala3-lang-2}/README.md (100%) rename {scala3-lang-2 => scala3-lang/scala3-lang-2}/build.sbt (100%) rename scala3-lang/{ => scala3-lang-2}/project/build.properties (100%) rename {scala3-lang-2 => scala3-lang/scala3-lang-2}/src/main/java/com/baeldung/JavaOperator.java (100%) rename {scala3-lang-2 => scala3-lang/scala3-lang-2}/src/main/scala/com/baeldung/scala3/TuplesInScala.scala (100%) rename {scala3-lang-2 => scala3-lang/scala3-lang-2}/src/main/scala/com/baeldung/scala3/contextualabstractions/Givens.scala (100%) rename {scala3-lang-2 => scala3-lang/scala3-lang-2}/src/main/scala/com/baeldung/scala3/contextualabstractions/UsingClause.scala (100%) rename {scala3-lang-2 => scala3-lang/scala3-lang-2}/src/main/scala/com/baeldung/scala3/locally/LocallyBlockSample.scala (100%) rename {scala3-lang-2 => scala3-lang/scala3-lang-2}/src/main/scala/com/baeldung/scala3/macros/GenericMacros.scala (100%) rename {scala3-lang-2 => scala3-lang/scala3-lang-2}/src/main/scala/com/baeldung/scala3/macros/OddEvenMacros.scala (100%) rename {scala3-lang-2 => scala3-lang/scala3-lang-2}/src/main/scala/com/baeldung/scala3/mainfeatures/App.scala (100%) rename {scala3-lang-2 => scala3-lang/scala3-lang-2}/src/main/scala/com/baeldung/scala3/matchexpressions/MatchExpressionImprovements.scala (100%) rename {scala3-lang-2 => scala3-lang/scala3-lang-2}/src/main/scala/com/baeldung/scala3/matchtypes/FirstComponentOfScala2.scala (100%) rename {scala3-lang-2 => scala3-lang/scala3-lang-2}/src/main/scala/com/baeldung/scala3/matchtypes/MatchTypes.scala (100%) rename {scala3-lang-2 => scala3-lang/scala3-lang-2}/src/main/scala/com/baeldung/scala3/targetname/TargetNameSample.scala (100%) rename {scala3-lang-2 => scala3-lang/scala3-lang-2}/src/main/scala/com/baeldung/scala3/transparent/TrasparentTraitDemo.scala (100%) rename {scala3-lang-2 => scala3-lang/scala3-lang-2}/src/test/scala/com/baeldung/scala3/annotations/ThreadUnsafeAnnotationTest.scala (100%) rename {scala3-lang-2 => scala3-lang/scala3-lang-2}/src/test/scala/com/baeldung/scala3/contextualabstractions/GivensUsingClauseUnitTest.scala (100%) rename {scala3-lang-2 => scala3-lang/scala3-lang-2}/src/test/scala/com/baeldung/scala3/exportclause/ExportClauseUnitTest.scala (100%) rename {scala3-lang-2 => scala3-lang/scala3-lang-2}/src/test/scala/com/baeldung/scala3/locally/LocallyBlockTest.scala (100%) rename {scala3-lang-2 => scala3-lang/scala3-lang-2}/src/test/scala/com/baeldung/scala3/macros/GenericMacrosTest.scala (100%) rename {scala3-lang-2 => scala3-lang/scala3-lang-2}/src/test/scala/com/baeldung/scala3/macros/OddEvenMacrosTest.scala (100%) rename {scala3-lang-2 => scala3-lang/scala3-lang-2}/src/test/scala/com/baeldung/scala3/matchexpressions/MatchExpressionImprovementstTest.scala (100%) rename {scala3-lang-2 => scala3-lang/scala3-lang-2}/src/test/scala/com/baeldung/scala3/matchtypes/FirstComponentOfScala2Spec.scala (100%) rename {scala3-lang-2 => scala3-lang/scala3-lang-2}/src/test/scala/com/baeldung/scala3/matchtypes/MatchTypesSpec.scala (100%) rename {scala3-lang-2 => scala3-lang/scala3-lang-2}/src/test/scala/com/baeldung/scala3/nonfatal/NonFatalExceptionsTest.scala (100%) rename {scala3-lang-3 => scala3-lang/scala3-lang-3}/README.md (100%) rename {scala3-lang-3 => scala3-lang/scala3-lang-3}/src/main/scala/com/baeldung/scala/typelambdas/Main.scala (100%) rename {scala3-lang-3 => scala3-lang/scala3-lang-3}/src/test/scala/com/baeldung/scala/filters/FindFilterCollector.scala (100%) diff --git a/build.sbt b/build.sbt index 6b7ef5267..33ef8b8f5 100644 --- a/build.sbt +++ b/build.sbt @@ -22,7 +22,7 @@ val scalaTestDeps = Seq( val scalaMock = "org.scalamock" %% "scalamock" % "5.2.0" % Test val zioVersion = "2.0.18" -lazy val scala_core_1 = (project in file("scala-core-1")) +lazy val scala_core_1 = (project in file("scala-core/scala-core-1")) .settings( name := "scala-core-1", libraryDependencies ++= @@ -32,7 +32,7 @@ lazy val scala_core_1 = (project in file("scala-core-1")) ) ++ scalaTestDeps ) -lazy val scala_core_2 = (project in file("scala-core-2")) +lazy val scala_core_2 = (project in file("scala-core/scala-core-2")) .settings( name := "scala-core-2", libraryDependencies ++= scalaTestDeps, @@ -40,7 +40,7 @@ lazy val scala_core_2 = (project in file("scala-core-2")) libraryDependencies += jUnitInterface ) -lazy val scala_core_3 = (project in file("scala-core-3")) +lazy val scala_core_3 = (project in file("scala-core/scala-core-3")) .settings( name := "scala-core-3", libraryDependencies ++= scalaTestDeps, @@ -49,7 +49,7 @@ lazy val scala_core_3 = (project in file("scala-core-3")) libraryDependencies += "org.scala-lang.modules" %% "scala-xml" % "2.2.0" ) -lazy val scala_core_4 = (project in file("scala-core-4")) +lazy val scala_core_4 = (project in file("scala-core/scala-core-4")) .settings( name := "scala-core-4", libraryDependencies ++= scalaTestDeps, @@ -57,7 +57,7 @@ lazy val scala_core_4 = (project in file("scala-core-4")) libraryDependencies += scalaReflection ) -lazy val scala_core_5 = (project in file("scala-core-5")) +lazy val scala_core_5 = (project in file("scala-core/scala-core-5")) .settings( name := "scala-core-5", libraryDependencies ++= scalaTestDeps, @@ -68,14 +68,14 @@ lazy val scala_core_5 = (project in file("scala-core-5")) libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "2.32.0" ) -lazy val scala_core_6 = (project in file("scala-core-6")) +lazy val scala_core_6 = (project in file("scala-core/scala-core-6")) .settings( name := "scala-core-6", libraryDependencies ++= scalaTestDeps, libraryDependencies += jUnitInterface ) -lazy val scala_core_7 = (project in file("scala-core-7")) +lazy val scala_core_7 = (project in file("scala-core/scala-core-7")) .settings( name := "scala-core-7", libraryDependencies ++= scalaTestDeps, @@ -87,7 +87,7 @@ lazy val scala_core_7 = (project in file("scala-core-7")) libraryDependencies += "args4j" % "args4j" % "2.33" ) -lazy val scala_core_8 = (project in file("scala-core-8")) +lazy val scala_core_8 = (project in file("scala-core/scala-core-8")) .settings( name := "scala-core-8", libraryDependencies += scalaReflection, @@ -98,7 +98,7 @@ lazy val scala_core_8 = (project in file("scala-core-8")) // scalacOptions += "-Ymacro-debug-lite" ) -lazy val scala_core_io = (project in file("scala-core-io")) +lazy val scala_core_io = (project in file("scala-core/scala-core-io")) .settings( name := "scala-core-io", libraryDependencies ++= scalaTestDeps, @@ -106,37 +106,37 @@ lazy val scala_core_io = (project in file("scala-core-io")) libraryDependencies += "org.scala-lang" % "scala-compiler" % scalaVersion.value ) -lazy val scala_core_oop = (project in file("scala-core-oop")) +lazy val scala_core_oop = (project in file("scala-core/scala-core-oop")) .settings( name := "scala-core-oop", libraryDependencies ++= Seq(catsEffect, jUnitInterface) ++ scalaTestDeps ) -lazy val scala_core_fp = (project in file("scala-core-fp")) +lazy val scala_core_fp = (project in file("scala-core/scala-core-fp")) .settings( name := "scala-core-fp", libraryDependencies ++= Seq(catsEffect, jUnitInterface) ++ scalaTestDeps ) -lazy val scala_lang = (project in file("scala-lang")) +lazy val scala_lang = (project in file("scala-lang/scala-lang-1")) .settings( - name := "scala-lang", + name := "scala-lang-1", libraryDependencies ++= Seq(jUnitInterface) ++ scalaTestDeps ) -lazy val scala_lang_2 = (project in file("scala-lang-2")) +lazy val scala_lang_2 = (project in file("scala-lang/scala-lang-2")) .settings( name := "scala-lang", libraryDependencies ++= Seq(jUnitInterface) ++ scalaTestDeps ) -lazy val scala_core_collections = (project in file("scala-core-collections")) +lazy val scala_core_collections = (project in file("scala-core-collections-1")) .settings( - name := "scala-core-collections", + name := "scala-core-collections-1", libraryDependencies ++= Seq( "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" ) ++ scalaTestDeps @@ -230,9 +230,9 @@ val AkkaVersion = "2.8.0" val AkkaHttpVersion = "10.5.0" val reactiveMongo = "1.0.10" -lazy val scala_libraries = (project in file("scala-libraries")) +lazy val scala_libraries_1 = (project in file("scala-libraries/scala-libraries-1")) .settings( - name := "scala-libraries", + name := "scala-libraries-1", libraryDependencies ++= scalaTestDeps, libraryDependencies ++= Seq( "com.github.julien-truffaut" %% "monocle-core" % monocleVersion, @@ -264,7 +264,7 @@ val sparkVersion = "3.5.0" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion val sparkSqlDep = "org.apache.spark" %% "spark-sql" % sparkVersion -lazy val scala_libraries_2 = (project in file("scala-libraries-2")) +lazy val scala_libraries_2 = (project in file("scala-libraries/scala-libraries-2")) .configs(IntegrationTest) .settings( name := "scala-libraries", @@ -308,7 +308,7 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) val http4sBlaze = "0.23.15" val http4sVersion = "0.23.23" val osLibVersion = "0.9.1" -lazy val scala_libraries_3 = (project in file("scala-libraries-3")) +lazy val scala_libraries_3 = (project in file("scala-libraries/scala-libraries-3")) .settings( name := "scala-libraries", libraryDependencies ++= scalaTestDeps, @@ -331,7 +331,7 @@ lazy val scala_libraries_3 = (project in file("scala-libraries-3")) libraryDependencies += "com.lihaoyi" %% "os-lib" % osLibVersion ) -lazy val scala_libraries_os = (project in file("scala-libraries-os")) +lazy val scala_libraries_os = (project in file("scala-libraries/scala-libraries-os")) .settings( name := "scala-libraries", libraryDependencies ++= scalaTestDeps, @@ -342,7 +342,7 @@ lazy val scala_libraries_os = (project in file("scala-libraries-os")) libraryDependencies += "com.lihaoyi" %% "os-lib" % osLibVersion ) -lazy val scala_libraries_4 = (project in file("scala-libraries-4")) +lazy val scala_libraries_4 = (project in file("scala-libraries/scala-libraries-4")) .configs(IntegrationTest) .settings( name := "scala-libraries-4", @@ -387,7 +387,7 @@ val log4jVersion = "2.20.0" val avro4sVersion = "4.1.1" val kafkaAvroSerializer = "7.5.1" -lazy val scala_libraries_5 = (project in file("scala-libraries-5")) +lazy val scala_libraries_5 = (project in file("scala-libraries/scala-libraries-5")) .settings( name := "scala-libraries-5", resolvers += "Kafka avro serializer" at "https://packages.confluent.io/maven", @@ -407,7 +407,7 @@ lazy val scala_libraries_5 = (project in file("scala-libraries-5")) ) ) -lazy val scala_libraries_6 = (project in file("scala-libraries-6")) +lazy val scala_libraries_6 = (project in file("scala-libraries/scala-libraries-6")) .settings( name := "scala-libraries-6", scalaVersion := scala3Version, @@ -435,17 +435,17 @@ lazy val scala_design_patterns = (project in file("scala-design-patterns")) libraryDependencies += "com.novocode" % "junit-interface" % "0.11" % Test ) -lazy val scala3_lang = (project in file("scala3-lang")).settings( +lazy val scala3_lang = (project in file("scala3-lang/scala3-lang-1")).settings( libraryDependencies ++= scalaTestDeps, scalaVersion := scala3Version ) -lazy val scala3_lang_2 = (project in file("scala3-lang-2")).settings( +lazy val scala3_lang_2 = (project in file("scala3-lang/scala3-lang-2")).settings( libraryDependencies ++= scalaTestDeps, scalaVersion := scala3Version ) -lazy val scala3_lang_3 = (project in file("scala3-lang-3")).settings( +lazy val scala3_lang_3 = (project in file("scala3-lang/scala3-lang-3")).settings( libraryDependencies ++= scalaTestDeps, scalaVersion := scala3Version ) diff --git a/scala-core-collections/README.md b/scala-core-collections/scala-core-collections-1/README.md similarity index 100% rename from scala-core-collections/README.md rename to scala-core-collections/scala-core-collections-1/README.md diff --git a/scala-core-collections/src/main/scala-2/com/baeldung/scala/collections/Arrays.scala b/scala-core-collections/scala-core-collections-1/src/main/scala-2/com/baeldung/scala/collections/Arrays.scala similarity index 100% rename from scala-core-collections/src/main/scala-2/com/baeldung/scala/collections/Arrays.scala rename to scala-core-collections/scala-core-collections-1/src/main/scala-2/com/baeldung/scala/collections/Arrays.scala diff --git a/scala-core-collections/src/main/scala-2/com/baeldung/scala/collections/FoldingLists.scala b/scala-core-collections/scala-core-collections-1/src/main/scala-2/com/baeldung/scala/collections/FoldingLists.scala similarity index 100% rename from scala-core-collections/src/main/scala-2/com/baeldung/scala/collections/FoldingLists.scala rename to scala-core-collections/scala-core-collections-1/src/main/scala-2/com/baeldung/scala/collections/FoldingLists.scala diff --git a/scala-core-collections/src/main/scala-2/com/baeldung/scala/collections/IterateCollections.scala b/scala-core-collections/scala-core-collections-1/src/main/scala-2/com/baeldung/scala/collections/IterateCollections.scala similarity index 100% rename from scala-core-collections/src/main/scala-2/com/baeldung/scala/collections/IterateCollections.scala rename to scala-core-collections/scala-core-collections-1/src/main/scala-2/com/baeldung/scala/collections/IterateCollections.scala diff --git a/scala-core-collections/src/main/scala-2/com/baeldung/scala/collections/IterateMap.scala b/scala-core-collections/scala-core-collections-1/src/main/scala-2/com/baeldung/scala/collections/IterateMap.scala similarity index 100% rename from scala-core-collections/src/main/scala-2/com/baeldung/scala/collections/IterateMap.scala rename to scala-core-collections/scala-core-collections-1/src/main/scala-2/com/baeldung/scala/collections/IterateMap.scala diff --git a/scala-core-collections/src/main/scala-2/com/baeldung/scala/collections/ParallelCollections.scala b/scala-core-collections/scala-core-collections-1/src/main/scala-2/com/baeldung/scala/collections/ParallelCollections.scala similarity index 100% rename from scala-core-collections/src/main/scala-2/com/baeldung/scala/collections/ParallelCollections.scala rename to scala-core-collections/scala-core-collections-1/src/main/scala-2/com/baeldung/scala/collections/ParallelCollections.scala diff --git a/scala-core-collections/src/main/scala-2/com/baeldung/scala/flattening/Flattener.scala b/scala-core-collections/scala-core-collections-1/src/main/scala-2/com/baeldung/scala/flattening/Flattener.scala similarity index 100% rename from scala-core-collections/src/main/scala-2/com/baeldung/scala/flattening/Flattener.scala rename to scala-core-collections/scala-core-collections-1/src/main/scala-2/com/baeldung/scala/flattening/Flattener.scala diff --git a/scala-core-collections/src/main/scala-2/com/baeldung/scala/mergemaps/CombineIterables.scala b/scala-core-collections/scala-core-collections-1/src/main/scala-2/com/baeldung/scala/mergemaps/CombineIterables.scala similarity index 100% rename from scala-core-collections/src/main/scala-2/com/baeldung/scala/mergemaps/CombineIterables.scala rename to scala-core-collections/scala-core-collections-1/src/main/scala-2/com/baeldung/scala/mergemaps/CombineIterables.scala diff --git a/scala-core-collections/src/main/scala-2/com/baeldung/scala/removeduplicates/DuplicatesRemover.scala b/scala-core-collections/scala-core-collections-1/src/main/scala-2/com/baeldung/scala/removeduplicates/DuplicatesRemover.scala similarity index 100% rename from scala-core-collections/src/main/scala-2/com/baeldung/scala/removeduplicates/DuplicatesRemover.scala rename to scala-core-collections/scala-core-collections-1/src/main/scala-2/com/baeldung/scala/removeduplicates/DuplicatesRemover.scala diff --git a/scala-core-collections/src/main/scala-2/com/baeldung/scala/splitlist/ListSplitter.scala b/scala-core-collections/scala-core-collections-1/src/main/scala-2/com/baeldung/scala/splitlist/ListSplitter.scala similarity index 100% rename from scala-core-collections/src/main/scala-2/com/baeldung/scala/splitlist/ListSplitter.scala rename to scala-core-collections/scala-core-collections-1/src/main/scala-2/com/baeldung/scala/splitlist/ListSplitter.scala diff --git a/scala-core-collections/src/test/java/com/baedung/scala/conversions/JavaApi.java b/scala-core-collections/scala-core-collections-1/src/test/java/com/baedung/scala/conversions/JavaApi.java similarity index 100% rename from scala-core-collections/src/test/java/com/baedung/scala/conversions/JavaApi.java rename to scala-core-collections/scala-core-collections-1/src/test/java/com/baedung/scala/conversions/JavaApi.java diff --git a/scala-core-collections/src/test/scala-2/com/baedung/scala/collections/FoldingListsUnitTest.scala b/scala-core-collections/scala-core-collections-1/src/test/scala-2/com/baedung/scala/collections/FoldingListsUnitTest.scala similarity index 100% rename from scala-core-collections/src/test/scala-2/com/baedung/scala/collections/FoldingListsUnitTest.scala rename to scala-core-collections/scala-core-collections-1/src/test/scala-2/com/baedung/scala/collections/FoldingListsUnitTest.scala diff --git a/scala-core-collections/src/test/scala-2/com/baedung/scala/collections/IterateMapUnitTest.scala b/scala-core-collections/scala-core-collections-1/src/test/scala-2/com/baedung/scala/collections/IterateMapUnitTest.scala similarity index 100% rename from scala-core-collections/src/test/scala-2/com/baedung/scala/collections/IterateMapUnitTest.scala rename to scala-core-collections/scala-core-collections-1/src/test/scala-2/com/baedung/scala/collections/IterateMapUnitTest.scala diff --git a/scala-core-collections/src/test/scala-2/com/baedung/scala/collections/ListConcatenationUnitTest.scala b/scala-core-collections/scala-core-collections-1/src/test/scala-2/com/baedung/scala/collections/ListConcatenationUnitTest.scala similarity index 100% rename from scala-core-collections/src/test/scala-2/com/baedung/scala/collections/ListConcatenationUnitTest.scala rename to scala-core-collections/scala-core-collections-1/src/test/scala-2/com/baedung/scala/collections/ListConcatenationUnitTest.scala diff --git a/scala-core-collections/src/test/scala-2/com/baedung/scala/collections/MapKeyValue.scala b/scala-core-collections/scala-core-collections-1/src/test/scala-2/com/baedung/scala/collections/MapKeyValue.scala similarity index 100% rename from scala-core-collections/src/test/scala-2/com/baedung/scala/collections/MapKeyValue.scala rename to scala-core-collections/scala-core-collections-1/src/test/scala-2/com/baedung/scala/collections/MapKeyValue.scala diff --git a/scala-core-collections/src/test/scala-2/com/baedung/scala/collections/ParallelCollectionTest.scala b/scala-core-collections/scala-core-collections-1/src/test/scala-2/com/baedung/scala/collections/ParallelCollectionTest.scala similarity index 100% rename from scala-core-collections/src/test/scala-2/com/baedung/scala/collections/ParallelCollectionTest.scala rename to scala-core-collections/scala-core-collections-1/src/test/scala-2/com/baedung/scala/collections/ParallelCollectionTest.scala diff --git a/scala-core-collections/src/test/scala-2/com/baedung/scala/conversions/ConversionWrappersUnitTest.scala b/scala-core-collections/scala-core-collections-1/src/test/scala-2/com/baedung/scala/conversions/ConversionWrappersUnitTest.scala similarity index 100% rename from scala-core-collections/src/test/scala-2/com/baedung/scala/conversions/ConversionWrappersUnitTest.scala rename to scala-core-collections/scala-core-collections-1/src/test/scala-2/com/baedung/scala/conversions/ConversionWrappersUnitTest.scala diff --git a/scala-core-collections/src/test/scala-2/com/baedung/scala/conversions/JavaToScalaConversionsUnitTest.scala b/scala-core-collections/scala-core-collections-1/src/test/scala-2/com/baedung/scala/conversions/JavaToScalaConversionsUnitTest.scala similarity index 100% rename from scala-core-collections/src/test/scala-2/com/baedung/scala/conversions/JavaToScalaConversionsUnitTest.scala rename to scala-core-collections/scala-core-collections-1/src/test/scala-2/com/baedung/scala/conversions/JavaToScalaConversionsUnitTest.scala diff --git a/scala-core-collections/src/test/scala-2/com/baedung/scala/conversions/ScalaToJavaConversionsUnitTest.scala b/scala-core-collections/scala-core-collections-1/src/test/scala-2/com/baedung/scala/conversions/ScalaToJavaConversionsUnitTest.scala similarity index 100% rename from scala-core-collections/src/test/scala-2/com/baedung/scala/conversions/ScalaToJavaConversionsUnitTest.scala rename to scala-core-collections/scala-core-collections-1/src/test/scala-2/com/baedung/scala/conversions/ScalaToJavaConversionsUnitTest.scala diff --git a/scala-core-collections/src/test/scala-2/com/baedung/scala/flattening/FlattenerSpec.scala b/scala-core-collections/scala-core-collections-1/src/test/scala-2/com/baedung/scala/flattening/FlattenerSpec.scala similarity index 100% rename from scala-core-collections/src/test/scala-2/com/baedung/scala/flattening/FlattenerSpec.scala rename to scala-core-collections/scala-core-collections-1/src/test/scala-2/com/baedung/scala/flattening/FlattenerSpec.scala diff --git a/scala-core-collections/src/test/scala-2/com/baedung/scala/mergemaps/MergeMapsUnitTest.scala b/scala-core-collections/scala-core-collections-1/src/test/scala-2/com/baedung/scala/mergemaps/MergeMapsUnitTest.scala similarity index 100% rename from scala-core-collections/src/test/scala-2/com/baedung/scala/mergemaps/MergeMapsUnitTest.scala rename to scala-core-collections/scala-core-collections-1/src/test/scala-2/com/baedung/scala/mergemaps/MergeMapsUnitTest.scala diff --git a/scala-core-collections/src/test/scala-2/com/baedung/scala/splitlist/ListSplitterSpec.scala b/scala-core-collections/scala-core-collections-1/src/test/scala-2/com/baedung/scala/splitlist/ListSplitterSpec.scala similarity index 100% rename from scala-core-collections/src/test/scala-2/com/baedung/scala/splitlist/ListSplitterSpec.scala rename to scala-core-collections/scala-core-collections-1/src/test/scala-2/com/baedung/scala/splitlist/ListSplitterSpec.scala diff --git a/scala-core-collections/src/test/scala-2/com/baeldung/scala/removeduplicates/DuplicatesRemoverSpec.scala b/scala-core-collections/scala-core-collections-1/src/test/scala-2/com/baeldung/scala/removeduplicates/DuplicatesRemoverSpec.scala similarity index 100% rename from scala-core-collections/src/test/scala-2/com/baeldung/scala/removeduplicates/DuplicatesRemoverSpec.scala rename to scala-core-collections/scala-core-collections-1/src/test/scala-2/com/baeldung/scala/removeduplicates/DuplicatesRemoverSpec.scala diff --git a/scala-core-collections-2/README.md b/scala-core-collections/scala-core-collections-2/README.md similarity index 100% rename from scala-core-collections-2/README.md rename to scala-core-collections/scala-core-collections-2/README.md diff --git a/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/filtermap/FilterMap.scala b/scala-core-collections/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/filtermap/FilterMap.scala similarity index 100% rename from scala-core-collections-2/src/main/scala-2/com/baeldung/scala/filtermap/FilterMap.scala rename to scala-core-collections/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/filtermap/FilterMap.scala diff --git a/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/firstmatching/Finder.scala b/scala-core-collections/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/firstmatching/Finder.scala similarity index 100% rename from scala-core-collections-2/src/main/scala-2/com/baeldung/scala/firstmatching/Finder.scala rename to scala-core-collections/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/firstmatching/Finder.scala diff --git a/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/flattening/Flattener.scala b/scala-core-collections/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/flattening/Flattener.scala similarity index 100% rename from scala-core-collections-2/src/main/scala-2/com/baeldung/scala/flattening/Flattener.scala rename to scala-core-collections/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/flattening/Flattener.scala diff --git a/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/lastelement/Finder.scala b/scala-core-collections/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/lastelement/Finder.scala similarity index 100% rename from scala-core-collections-2/src/main/scala-2/com/baeldung/scala/lastelement/Finder.scala rename to scala-core-collections/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/lastelement/Finder.scala diff --git a/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/lazylists/SimpleLazyList.scala b/scala-core-collections/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/lazylists/SimpleLazyList.scala similarity index 100% rename from scala-core-collections-2/src/main/scala-2/com/baeldung/scala/lazylists/SimpleLazyList.scala rename to scala-core-collections/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/lazylists/SimpleLazyList.scala diff --git a/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/lazylists/SimpleList.scala b/scala-core-collections/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/lazylists/SimpleList.scala similarity index 100% rename from scala-core-collections-2/src/main/scala-2/com/baeldung/scala/lazylists/SimpleList.scala rename to scala-core-collections/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/lazylists/SimpleList.scala diff --git a/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/randomfixedsizesample/RandomFixedSizeSample.scala b/scala-core-collections/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/randomfixedsizesample/RandomFixedSizeSample.scala similarity index 100% rename from scala-core-collections-2/src/main/scala-2/com/baeldung/scala/randomfixedsizesample/RandomFixedSizeSample.scala rename to scala-core-collections/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/randomfixedsizesample/RandomFixedSizeSample.scala diff --git a/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/rotation/Rotator.scala b/scala-core-collections/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/rotation/Rotator.scala similarity index 100% rename from scala-core-collections-2/src/main/scala-2/com/baeldung/scala/rotation/Rotator.scala rename to scala-core-collections/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/rotation/Rotator.scala diff --git a/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/sublist/SubListOfList.scala b/scala-core-collections/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/sublist/SubListOfList.scala similarity index 100% rename from scala-core-collections-2/src/main/scala-2/com/baeldung/scala/sublist/SubListOfList.scala rename to scala-core-collections/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/sublist/SubListOfList.scala diff --git a/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/array/AppendAnElementToAnArrayUnitTest.scala b/scala-core-collections/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/array/AppendAnElementToAnArrayUnitTest.scala similarity index 100% rename from scala-core-collections-2/src/test/scala-2/com/baeldung/scala/array/AppendAnElementToAnArrayUnitTest.scala rename to scala-core-collections/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/array/AppendAnElementToAnArrayUnitTest.scala diff --git a/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/filtermap/FilterMapSpec.scala b/scala-core-collections/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/filtermap/FilterMapSpec.scala similarity index 100% rename from scala-core-collections-2/src/test/scala-2/com/baeldung/scala/filtermap/FilterMapSpec.scala rename to scala-core-collections/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/filtermap/FilterMapSpec.scala diff --git a/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/firstmatching/FinderSpec.scala b/scala-core-collections/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/firstmatching/FinderSpec.scala similarity index 100% rename from scala-core-collections-2/src/test/scala-2/com/baeldung/scala/firstmatching/FinderSpec.scala rename to scala-core-collections/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/firstmatching/FinderSpec.scala diff --git a/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/flattening/FlattenerSpec.scala b/scala-core-collections/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/flattening/FlattenerSpec.scala similarity index 100% rename from scala-core-collections-2/src/test/scala-2/com/baeldung/scala/flattening/FlattenerSpec.scala rename to scala-core-collections/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/flattening/FlattenerSpec.scala diff --git a/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/lastelement/FinderSpec.scala b/scala-core-collections/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/lastelement/FinderSpec.scala similarity index 100% rename from scala-core-collections-2/src/test/scala-2/com/baeldung/scala/lastelement/FinderSpec.scala rename to scala-core-collections/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/lastelement/FinderSpec.scala diff --git a/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/lazylists/SimpleLazyListSpec.scala b/scala-core-collections/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/lazylists/SimpleLazyListSpec.scala similarity index 100% rename from scala-core-collections-2/src/test/scala-2/com/baeldung/scala/lazylists/SimpleLazyListSpec.scala rename to scala-core-collections/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/lazylists/SimpleLazyListSpec.scala diff --git a/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/lazylists/SimpleListSpec.scala b/scala-core-collections/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/lazylists/SimpleListSpec.scala similarity index 100% rename from scala-core-collections-2/src/test/scala-2/com/baeldung/scala/lazylists/SimpleListSpec.scala rename to scala-core-collections/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/lazylists/SimpleListSpec.scala diff --git a/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/randomfixedsizesample/RandomFixedSizeSampleSpec.scala b/scala-core-collections/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/randomfixedsizesample/RandomFixedSizeSampleSpec.scala similarity index 100% rename from scala-core-collections-2/src/test/scala-2/com/baeldung/scala/randomfixedsizesample/RandomFixedSizeSampleSpec.scala rename to scala-core-collections/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/randomfixedsizesample/RandomFixedSizeSampleSpec.scala diff --git a/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/rotation/RotatorSpec.scala b/scala-core-collections/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/rotation/RotatorSpec.scala similarity index 100% rename from scala-core-collections-2/src/test/scala-2/com/baeldung/scala/rotation/RotatorSpec.scala rename to scala-core-collections/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/rotation/RotatorSpec.scala diff --git a/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/subarray/GetASubarrayUnitTest.scala b/scala-core-collections/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/subarray/GetASubarrayUnitTest.scala similarity index 100% rename from scala-core-collections-2/src/test/scala-2/com/baeldung/scala/subarray/GetASubarrayUnitTest.scala rename to scala-core-collections/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/subarray/GetASubarrayUnitTest.scala diff --git a/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/sublist/SubListOfListSpec.scala b/scala-core-collections/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/sublist/SubListOfListSpec.scala similarity index 100% rename from scala-core-collections-2/src/test/scala-2/com/baeldung/scala/sublist/SubListOfListSpec.scala rename to scala-core-collections/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/sublist/SubListOfListSpec.scala diff --git a/scala-core-collections-3/README.md b/scala-core-collections/scala-core-collections-3/README.md similarity index 100% rename from scala-core-collections-3/README.md rename to scala-core-collections/scala-core-collections-3/README.md diff --git a/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/commoncollections/ScalaCollections.scala b/scala-core-collections/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/commoncollections/ScalaCollections.scala similarity index 100% rename from scala-core-collections-3/src/main/scala-2/com/baeldung/scala/commoncollections/ScalaCollections.scala rename to scala-core-collections/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/commoncollections/ScalaCollections.scala diff --git a/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/commoncollections/ArrayBufferUnitTest.scala b/scala-core-collections/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/commoncollections/ArrayBufferUnitTest.scala similarity index 100% rename from scala-core-collections-3/src/test/scala-2/com/baeldung/scala/commoncollections/ArrayBufferUnitTest.scala rename to scala-core-collections/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/commoncollections/ArrayBufferUnitTest.scala diff --git a/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/commoncollections/GetListItemsUnitTest.scala b/scala-core-collections/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/commoncollections/GetListItemsUnitTest.scala similarity index 100% rename from scala-core-collections-3/src/test/scala-2/com/baeldung/scala/commoncollections/GetListItemsUnitTest.scala rename to scala-core-collections/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/commoncollections/GetListItemsUnitTest.scala diff --git a/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/commoncollections/ListMapOperationsUnitTest.scala b/scala-core-collections/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/commoncollections/ListMapOperationsUnitTest.scala similarity index 100% rename from scala-core-collections-3/src/test/scala-2/com/baeldung/scala/commoncollections/ListMapOperationsUnitTest.scala rename to scala-core-collections/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/commoncollections/ListMapOperationsUnitTest.scala diff --git a/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/commoncollections/ListSetOperationsUnitTest.scala b/scala-core-collections/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/commoncollections/ListSetOperationsUnitTest.scala similarity index 100% rename from scala-core-collections-3/src/test/scala-2/com/baeldung/scala/commoncollections/ListSetOperationsUnitTest.scala rename to scala-core-collections/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/commoncollections/ListSetOperationsUnitTest.scala diff --git a/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/commoncollections/ScalaCollectionsUnitTest.scala b/scala-core-collections/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/commoncollections/ScalaCollectionsUnitTest.scala similarity index 100% rename from scala-core-collections-3/src/test/scala-2/com/baeldung/scala/commoncollections/ScalaCollectionsUnitTest.scala rename to scala-core-collections/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/commoncollections/ScalaCollectionsUnitTest.scala diff --git a/scala-core-1/README.md b/scala-core/scala-core-1/README.md similarity index 100% rename from scala-core-1/README.md rename to scala-core/scala-core-1/README.md diff --git a/scala-core-1/build.sbt b/scala-core/scala-core-1/build.sbt similarity index 100% rename from scala-core-1/build.sbt rename to scala-core/scala-core-1/build.sbt diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/Calculator.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/Calculator.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/Calculator.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/Calculator.scala diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/Examples.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/Examples.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/Examples.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/Examples.scala diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithEither.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithEither.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithEither.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithEither.scala diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithMonadError.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithMonadError.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithMonadError.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithMonadError.scala diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithOption.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithOption.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithOption.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithOption.scala diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTry.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTry.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTry.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTry.scala diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTryOption.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTryOption.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTryOption.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTryOption.scala diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithValidated.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithValidated.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithValidated.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithValidated.scala diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyErrors.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyErrors.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyErrors.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyErrors.scala diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyService.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyService.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyService.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyService.scala diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/Resource.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/Resource.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/Resource.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/Resource.scala diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/Session.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/Session.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/Session.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/Session.scala diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/User.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/User.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/User.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/User.scala diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/ValidationErrors.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/ValidationErrors.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/ValidationErrors.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/exceptionhandling/ValidationErrors.scala diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/forloop/ForLoop.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/forloop/ForLoop.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/forloop/ForLoop.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/forloop/ForLoop.scala diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/higherorder/HigherOrderFunctions.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/higherorder/HigherOrderFunctions.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/higherorder/HigherOrderFunctions.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/higherorder/HigherOrderFunctions.scala diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/introduction/ControlStructuresDemo.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/introduction/ControlStructuresDemo.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/introduction/ControlStructuresDemo.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/introduction/ControlStructuresDemo.scala diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/introduction/Employee.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/introduction/Employee.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/introduction/Employee.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/introduction/Employee.scala diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/introduction/HelloWorld.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/introduction/HelloWorld.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/introduction/HelloWorld.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/introduction/HelloWorld.scala diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/introduction/IntSet.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/introduction/IntSet.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/introduction/IntSet.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/introduction/IntSet.scala diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/introduction/Utils.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/introduction/Utils.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/introduction/Utils.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/introduction/Utils.scala diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/lazyval/LazyVal.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/lazyval/LazyVal.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/lazyval/LazyVal.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/lazyval/LazyVal.scala diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/partialfunctions/SquareRoot.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/partialfunctions/SquareRoot.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/partialfunctions/SquareRoot.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/partialfunctions/SquareRoot.scala diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/partialfunctions/SwapIntegerSign.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/partialfunctions/SwapIntegerSign.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/partialfunctions/SwapIntegerSign.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/partialfunctions/SwapIntegerSign.scala diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/patternmatching/PatternMatching.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/patternmatching/PatternMatching.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/patternmatching/PatternMatching.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/patternmatching/PatternMatching.scala diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/sealedkeyword/AlgebraicDataType.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/sealedkeyword/AlgebraicDataType.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/sealedkeyword/AlgebraicDataType.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/sealedkeyword/AlgebraicDataType.scala diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/sealedkeyword/SealedCaseObjectsAsEnum.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/sealedkeyword/SealedCaseObjectsAsEnum.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/sealedkeyword/SealedCaseObjectsAsEnum.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/sealedkeyword/SealedCaseObjectsAsEnum.scala diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/sealedkeyword/SealedClassExample.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/sealedkeyword/SealedClassExample.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/sealedkeyword/SealedClassExample.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/sealedkeyword/SealedClassExample.scala diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/sealedkeyword/SelaedExtendedDifferentFile.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/sealedkeyword/SelaedExtendedDifferentFile.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/sealedkeyword/SelaedExtendedDifferentFile.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/sealedkeyword/SelaedExtendedDifferentFile.scala diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/traits/Composition.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/traits/Composition.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/traits/Composition.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/traits/Composition.scala diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/traits/Mixing.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/traits/Mixing.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/traits/Mixing.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/traits/Mixing.scala diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/traits/MixingAlgorithm.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/traits/MixingAlgorithm.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/traits/MixingAlgorithm.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/traits/MixingAlgorithm.scala diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/traits/Orchestration.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/traits/Orchestration.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/traits/Orchestration.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/traits/Orchestration.scala diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/traits/RecordLabel.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/traits/RecordLabel.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/traits/RecordLabel.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/traits/RecordLabel.scala diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/traits/Score.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/traits/Score.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/traits/Score.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/traits/Score.scala diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/traits/SoundProduction.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/traits/SoundProduction.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/traits/SoundProduction.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/traits/SoundProduction.scala diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/traits/Vocals.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/traits/Vocals.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/traits/Vocals.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/traits/Vocals.scala diff --git a/scala-core-1/src/main/scala-2/com/baeldung/scala/tuples/Tuples.scala b/scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/tuples/Tuples.scala similarity index 100% rename from scala-core-1/src/main/scala-2/com/baeldung/scala/tuples/Tuples.scala rename to scala-core/scala-core-1/src/main/scala-2/com/baeldung/scala/tuples/Tuples.scala diff --git a/scala-core-1/src/main/scala-3/com/baeldung/scala/traits/Author.scala b/scala-core/scala-core-1/src/main/scala-3/com/baeldung/scala/traits/Author.scala similarity index 100% rename from scala-core-1/src/main/scala-3/com/baeldung/scala/traits/Author.scala rename to scala-core/scala-core-1/src/main/scala-3/com/baeldung/scala/traits/Author.scala diff --git a/scala-core-1/src/main/scala-3/com/baeldung/scala/traits/MultipleInheritance.scala b/scala-core/scala-core-1/src/main/scala-3/com/baeldung/scala/traits/MultipleInheritance.scala similarity index 100% rename from scala-core-1/src/main/scala-3/com/baeldung/scala/traits/MultipleInheritance.scala rename to scala-core/scala-core-1/src/main/scala-3/com/baeldung/scala/traits/MultipleInheritance.scala diff --git a/scala-core-1/src/main/scala-3/com/baeldung/scala/traits/Poet.scala b/scala-core/scala-core-1/src/main/scala-3/com/baeldung/scala/traits/Poet.scala similarity index 100% rename from scala-core-1/src/main/scala-3/com/baeldung/scala/traits/Poet.scala rename to scala-core/scala-core-1/src/main/scala-3/com/baeldung/scala/traits/Poet.scala diff --git a/scala-core-1/src/main/scala-3/com/baeldung/scala/traits/Writer.scala b/scala-core/scala-core-1/src/main/scala-3/com/baeldung/scala/traits/Writer.scala similarity index 100% rename from scala-core-1/src/main/scala-3/com/baeldung/scala/traits/Writer.scala rename to scala-core/scala-core-1/src/main/scala-3/com/baeldung/scala/traits/Writer.scala diff --git a/scala-core-1/src/test/scala-2/com/baeldung/scala/exceptionhandling/ExamplesUnitTest.scala b/scala-core/scala-core-1/src/test/scala-2/com/baeldung/scala/exceptionhandling/ExamplesUnitTest.scala similarity index 100% rename from scala-core-1/src/test/scala-2/com/baeldung/scala/exceptionhandling/ExamplesUnitTest.scala rename to scala-core/scala-core-1/src/test/scala-2/com/baeldung/scala/exceptionhandling/ExamplesUnitTest.scala diff --git a/scala-core-1/src/test/scala-2/com/baeldung/scala/exceptionhandling/IdiomaticExceptionHandlingUnitTest.scala b/scala-core/scala-core-1/src/test/scala-2/com/baeldung/scala/exceptionhandling/IdiomaticExceptionHandlingUnitTest.scala similarity index 100% rename from scala-core-1/src/test/scala-2/com/baeldung/scala/exceptionhandling/IdiomaticExceptionHandlingUnitTest.scala rename to scala-core/scala-core-1/src/test/scala-2/com/baeldung/scala/exceptionhandling/IdiomaticExceptionHandlingUnitTest.scala diff --git a/scala-core-1/src/test/scala-2/com/baeldung/scala/forloop/ForLoopUnitTest.scala b/scala-core/scala-core-1/src/test/scala-2/com/baeldung/scala/forloop/ForLoopUnitTest.scala similarity index 100% rename from scala-core-1/src/test/scala-2/com/baeldung/scala/forloop/ForLoopUnitTest.scala rename to scala-core/scala-core-1/src/test/scala-2/com/baeldung/scala/forloop/ForLoopUnitTest.scala diff --git a/scala-core-1/src/test/scala-2/com/baeldung/scala/higherorder/HigherOrderFunctionsExamplesUnitTest.scala b/scala-core/scala-core-1/src/test/scala-2/com/baeldung/scala/higherorder/HigherOrderFunctionsExamplesUnitTest.scala similarity index 100% rename from scala-core-1/src/test/scala-2/com/baeldung/scala/higherorder/HigherOrderFunctionsExamplesUnitTest.scala rename to scala-core/scala-core-1/src/test/scala-2/com/baeldung/scala/higherorder/HigherOrderFunctionsExamplesUnitTest.scala diff --git a/scala-core-1/src/test/scala-2/com/baeldung/scala/higherorder/HigherOrderFunctionsUnitTest.scala b/scala-core/scala-core-1/src/test/scala-2/com/baeldung/scala/higherorder/HigherOrderFunctionsUnitTest.scala similarity index 100% rename from scala-core-1/src/test/scala-2/com/baeldung/scala/higherorder/HigherOrderFunctionsUnitTest.scala rename to scala-core/scala-core-1/src/test/scala-2/com/baeldung/scala/higherorder/HigherOrderFunctionsUnitTest.scala diff --git a/scala-core-1/src/test/scala-2/com/baeldung/scala/introduction/ControlStructuresDemoUnitTest.scala b/scala-core/scala-core-1/src/test/scala-2/com/baeldung/scala/introduction/ControlStructuresDemoUnitTest.scala similarity index 100% rename from scala-core-1/src/test/scala-2/com/baeldung/scala/introduction/ControlStructuresDemoUnitTest.scala rename to scala-core/scala-core-1/src/test/scala-2/com/baeldung/scala/introduction/ControlStructuresDemoUnitTest.scala diff --git a/scala-core-1/src/test/scala-2/com/baeldung/scala/introduction/EmployeeUnitTest.scala b/scala-core/scala-core-1/src/test/scala-2/com/baeldung/scala/introduction/EmployeeUnitTest.scala similarity index 100% rename from scala-core-1/src/test/scala-2/com/baeldung/scala/introduction/EmployeeUnitTest.scala rename to scala-core/scala-core-1/src/test/scala-2/com/baeldung/scala/introduction/EmployeeUnitTest.scala diff --git a/scala-core-1/src/test/scala-2/com/baeldung/scala/introduction/IntSetUnitTest.scala b/scala-core/scala-core-1/src/test/scala-2/com/baeldung/scala/introduction/IntSetUnitTest.scala similarity index 100% rename from scala-core-1/src/test/scala-2/com/baeldung/scala/introduction/IntSetUnitTest.scala rename to scala-core/scala-core-1/src/test/scala-2/com/baeldung/scala/introduction/IntSetUnitTest.scala diff --git a/scala-core-1/src/test/scala-2/com/baeldung/scala/introduction/UtilsUnitTest.scala b/scala-core/scala-core-1/src/test/scala-2/com/baeldung/scala/introduction/UtilsUnitTest.scala similarity index 100% rename from scala-core-1/src/test/scala-2/com/baeldung/scala/introduction/UtilsUnitTest.scala rename to scala-core/scala-core-1/src/test/scala-2/com/baeldung/scala/introduction/UtilsUnitTest.scala diff --git a/scala-core-1/src/test/scala-2/com/baeldung/scala/lazyval/LazyValUnitTest.scala b/scala-core/scala-core-1/src/test/scala-2/com/baeldung/scala/lazyval/LazyValUnitTest.scala similarity index 100% rename from scala-core-1/src/test/scala-2/com/baeldung/scala/lazyval/LazyValUnitTest.scala rename to scala-core/scala-core-1/src/test/scala-2/com/baeldung/scala/lazyval/LazyValUnitTest.scala diff --git a/scala-core-1/src/test/scala-2/com/baeldung/scala/partialfunctions/SquareRootUnitTest.scala b/scala-core/scala-core-1/src/test/scala-2/com/baeldung/scala/partialfunctions/SquareRootUnitTest.scala similarity index 100% rename from scala-core-1/src/test/scala-2/com/baeldung/scala/partialfunctions/SquareRootUnitTest.scala rename to scala-core/scala-core-1/src/test/scala-2/com/baeldung/scala/partialfunctions/SquareRootUnitTest.scala diff --git a/scala-core-1/src/test/scala-2/com/baeldung/scala/partialfunctions/SwapIntegerSignUnitTest.scala b/scala-core/scala-core-1/src/test/scala-2/com/baeldung/scala/partialfunctions/SwapIntegerSignUnitTest.scala similarity index 100% rename from scala-core-1/src/test/scala-2/com/baeldung/scala/partialfunctions/SwapIntegerSignUnitTest.scala rename to scala-core/scala-core-1/src/test/scala-2/com/baeldung/scala/partialfunctions/SwapIntegerSignUnitTest.scala diff --git a/scala-core-1/src/test/scala-2/com/baeldung/scala/patternmatching/PatternMatchingUnitTest.scala b/scala-core/scala-core-1/src/test/scala-2/com/baeldung/scala/patternmatching/PatternMatchingUnitTest.scala similarity index 100% rename from scala-core-1/src/test/scala-2/com/baeldung/scala/patternmatching/PatternMatchingUnitTest.scala rename to scala-core/scala-core-1/src/test/scala-2/com/baeldung/scala/patternmatching/PatternMatchingUnitTest.scala diff --git a/scala-core-1/src/test/scala-2/com/baeldung/scala/traits/ScoreUnitTest.scala b/scala-core/scala-core-1/src/test/scala-2/com/baeldung/scala/traits/ScoreUnitTest.scala similarity index 100% rename from scala-core-1/src/test/scala-2/com/baeldung/scala/traits/ScoreUnitTest.scala rename to scala-core/scala-core-1/src/test/scala-2/com/baeldung/scala/traits/ScoreUnitTest.scala diff --git a/scala-core-1/src/test/scala-2/com/baeldung/scala/tuples/TuplesUnitTest.scala b/scala-core/scala-core-1/src/test/scala-2/com/baeldung/scala/tuples/TuplesUnitTest.scala similarity index 100% rename from scala-core-1/src/test/scala-2/com/baeldung/scala/tuples/TuplesUnitTest.scala rename to scala-core/scala-core-1/src/test/scala-2/com/baeldung/scala/tuples/TuplesUnitTest.scala diff --git a/scala-core-1/src/test/scala-3/com/baeldung/scala/traits/MultipleInheritanceUnitTest.scala b/scala-core/scala-core-1/src/test/scala-3/com/baeldung/scala/traits/MultipleInheritanceUnitTest.scala similarity index 100% rename from scala-core-1/src/test/scala-3/com/baeldung/scala/traits/MultipleInheritanceUnitTest.scala rename to scala-core/scala-core-1/src/test/scala-3/com/baeldung/scala/traits/MultipleInheritanceUnitTest.scala diff --git a/scala-core-1/src/test/scala-3/com/baeldung/scala/traits/TraitParametersUnitTest.scala b/scala-core/scala-core-1/src/test/scala-3/com/baeldung/scala/traits/TraitParametersUnitTest.scala similarity index 100% rename from scala-core-1/src/test/scala-3/com/baeldung/scala/traits/TraitParametersUnitTest.scala rename to scala-core/scala-core-1/src/test/scala-3/com/baeldung/scala/traits/TraitParametersUnitTest.scala diff --git a/scala-core-2/README.md b/scala-core/scala-core-2/README.md similarity index 100% rename from scala-core-2/README.md rename to scala-core/scala-core-2/README.md diff --git a/scala-core-2/src/main/java/com/baedung/scala/forcomprehension/ForComprehension.java b/scala-core/scala-core-2/src/main/java/com/baedung/scala/forcomprehension/ForComprehension.java similarity index 100% rename from scala-core-2/src/main/java/com/baedung/scala/forcomprehension/ForComprehension.java rename to scala-core/scala-core-2/src/main/java/com/baedung/scala/forcomprehension/ForComprehension.java diff --git a/scala-core-2/src/main/scala-2/com/baeldung/scala/concurrency/FutureAndPromise.scala b/scala-core/scala-core-2/src/main/scala-2/com/baeldung/scala/concurrency/FutureAndPromise.scala similarity index 100% rename from scala-core-2/src/main/scala-2/com/baeldung/scala/concurrency/FutureAndPromise.scala rename to scala-core/scala-core-2/src/main/scala-2/com/baeldung/scala/concurrency/FutureAndPromise.scala diff --git a/scala-core-2/src/main/scala-2/com/baeldung/scala/durationsugar/package.scala b/scala-core/scala-core-2/src/main/scala-2/com/baeldung/scala/durationsugar/package.scala similarity index 100% rename from scala-core-2/src/main/scala-2/com/baeldung/scala/durationsugar/package.scala rename to scala-core/scala-core-2/src/main/scala-2/com/baeldung/scala/durationsugar/package.scala diff --git a/scala-core-2/src/main/scala-2/com/baeldung/scala/exceptionhandling/ExceptionHandling.scala b/scala-core/scala-core-2/src/main/scala-2/com/baeldung/scala/exceptionhandling/ExceptionHandling.scala similarity index 100% rename from scala-core-2/src/main/scala-2/com/baeldung/scala/exceptionhandling/ExceptionHandling.scala rename to scala-core/scala-core-2/src/main/scala-2/com/baeldung/scala/exceptionhandling/ExceptionHandling.scala diff --git a/scala-core-2/src/main/scala-2/com/baeldung/scala/extractorobject/RequestApp.scala b/scala-core/scala-core-2/src/main/scala-2/com/baeldung/scala/extractorobject/RequestApp.scala similarity index 100% rename from scala-core-2/src/main/scala-2/com/baeldung/scala/extractorobject/RequestApp.scala rename to scala-core/scala-core-2/src/main/scala-2/com/baeldung/scala/extractorobject/RequestApp.scala diff --git a/scala-core-2/src/main/scala-2/com/baeldung/scala/extractorobject/User.scala b/scala-core/scala-core-2/src/main/scala-2/com/baeldung/scala/extractorobject/User.scala similarity index 100% rename from scala-core-2/src/main/scala-2/com/baeldung/scala/extractorobject/User.scala rename to scala-core/scala-core-2/src/main/scala-2/com/baeldung/scala/extractorobject/User.scala diff --git a/scala-core-2/src/main/scala-2/com/baeldung/scala/forcomprehension/ForComprehension.scala b/scala-core/scala-core-2/src/main/scala-2/com/baeldung/scala/forcomprehension/ForComprehension.scala similarity index 100% rename from scala-core-2/src/main/scala-2/com/baeldung/scala/forcomprehension/ForComprehension.scala rename to scala-core/scala-core-2/src/main/scala-2/com/baeldung/scala/forcomprehension/ForComprehension.scala diff --git a/scala-core-2/src/main/scala-2/com/baeldung/scala/higherkindedtypes/HigherKindedTypes.scala b/scala-core/scala-core-2/src/main/scala-2/com/baeldung/scala/higherkindedtypes/HigherKindedTypes.scala similarity index 100% rename from scala-core-2/src/main/scala-2/com/baeldung/scala/higherkindedtypes/HigherKindedTypes.scala rename to scala-core/scala-core-2/src/main/scala-2/com/baeldung/scala/higherkindedtypes/HigherKindedTypes.scala diff --git a/scala-core-2/src/main/scala-2/com/baeldung/scala/implicitclasses/Currency.scala b/scala-core/scala-core-2/src/main/scala-2/com/baeldung/scala/implicitclasses/Currency.scala similarity index 100% rename from scala-core-2/src/main/scala-2/com/baeldung/scala/implicitclasses/Currency.scala rename to scala-core/scala-core-2/src/main/scala-2/com/baeldung/scala/implicitclasses/Currency.scala diff --git a/scala-core-2/src/main/scala-2/com/baeldung/scala/implicitclasses/Money.scala b/scala-core/scala-core-2/src/main/scala-2/com/baeldung/scala/implicitclasses/Money.scala similarity index 100% rename from scala-core-2/src/main/scala-2/com/baeldung/scala/implicitclasses/Money.scala rename to scala-core/scala-core-2/src/main/scala-2/com/baeldung/scala/implicitclasses/Money.scala diff --git a/scala-core-2/src/main/scala-2/com/baeldung/scala/implicitclasses/MoneySyntax.scala b/scala-core/scala-core-2/src/main/scala-2/com/baeldung/scala/implicitclasses/MoneySyntax.scala similarity index 100% rename from scala-core-2/src/main/scala-2/com/baeldung/scala/implicitclasses/MoneySyntax.scala rename to scala-core/scala-core-2/src/main/scala-2/com/baeldung/scala/implicitclasses/MoneySyntax.scala diff --git a/scala-core-2/src/main/scala-2/com/baeldung/scala/namedanddefaultargs/NamedAndDefaultArgs.scala b/scala-core/scala-core-2/src/main/scala-2/com/baeldung/scala/namedanddefaultargs/NamedAndDefaultArgs.scala similarity index 100% rename from scala-core-2/src/main/scala-2/com/baeldung/scala/namedanddefaultargs/NamedAndDefaultArgs.scala rename to scala-core/scala-core-2/src/main/scala-2/com/baeldung/scala/namedanddefaultargs/NamedAndDefaultArgs.scala diff --git a/scala-core-2/src/main/scala-2/com/baeldung/scala/selftype/SelfType.scala b/scala-core/scala-core-2/src/main/scala-2/com/baeldung/scala/selftype/SelfType.scala similarity index 100% rename from scala-core-2/src/main/scala-2/com/baeldung/scala/selftype/SelfType.scala rename to scala-core/scala-core-2/src/main/scala-2/com/baeldung/scala/selftype/SelfType.scala diff --git a/scala-core-2/src/main/scala-2/com/baeldung/scala/underscore/UnderscoreUsages.scala b/scala-core/scala-core-2/src/main/scala-2/com/baeldung/scala/underscore/UnderscoreUsages.scala similarity index 100% rename from scala-core-2/src/main/scala-2/com/baeldung/scala/underscore/UnderscoreUsages.scala rename to scala-core/scala-core-2/src/main/scala-2/com/baeldung/scala/underscore/UnderscoreUsages.scala diff --git a/scala-core-2/src/test/scala-2/com/baeldung/scala/concurrency/FutureAndPromiseUnitTest.scala b/scala-core/scala-core-2/src/test/scala-2/com/baeldung/scala/concurrency/FutureAndPromiseUnitTest.scala similarity index 100% rename from scala-core-2/src/test/scala-2/com/baeldung/scala/concurrency/FutureAndPromiseUnitTest.scala rename to scala-core/scala-core-2/src/test/scala-2/com/baeldung/scala/concurrency/FutureAndPromiseUnitTest.scala diff --git a/scala-core-2/src/test/scala-2/com/baeldung/scala/durationsugar/DurationSugarUnitTest.scala b/scala-core/scala-core-2/src/test/scala-2/com/baeldung/scala/durationsugar/DurationSugarUnitTest.scala similarity index 100% rename from scala-core-2/src/test/scala-2/com/baeldung/scala/durationsugar/DurationSugarUnitTest.scala rename to scala-core/scala-core-2/src/test/scala-2/com/baeldung/scala/durationsugar/DurationSugarUnitTest.scala diff --git a/scala-core-2/src/test/scala-2/com/baeldung/scala/exceptionhandling/ExceptionHandlingUnitTest.scala b/scala-core/scala-core-2/src/test/scala-2/com/baeldung/scala/exceptionhandling/ExceptionHandlingUnitTest.scala similarity index 100% rename from scala-core-2/src/test/scala-2/com/baeldung/scala/exceptionhandling/ExceptionHandlingUnitTest.scala rename to scala-core/scala-core-2/src/test/scala-2/com/baeldung/scala/exceptionhandling/ExceptionHandlingUnitTest.scala diff --git a/scala-core-2/src/test/scala-2/com/baeldung/scala/higherkindedtypes/HigherKindedTypesUnitTest.scala b/scala-core/scala-core-2/src/test/scala-2/com/baeldung/scala/higherkindedtypes/HigherKindedTypesUnitTest.scala similarity index 100% rename from scala-core-2/src/test/scala-2/com/baeldung/scala/higherkindedtypes/HigherKindedTypesUnitTest.scala rename to scala-core/scala-core-2/src/test/scala-2/com/baeldung/scala/higherkindedtypes/HigherKindedTypesUnitTest.scala diff --git a/scala-core-2/src/test/scala-2/com/baeldung/scala/implicitclasses/MoneyUnitTest.scala b/scala-core/scala-core-2/src/test/scala-2/com/baeldung/scala/implicitclasses/MoneyUnitTest.scala similarity index 100% rename from scala-core-2/src/test/scala-2/com/baeldung/scala/implicitclasses/MoneyUnitTest.scala rename to scala-core/scala-core-2/src/test/scala-2/com/baeldung/scala/implicitclasses/MoneyUnitTest.scala diff --git a/scala-core-2/src/test/scala-2/com/baeldung/scala/namedanddefaultargs/NamedAndDefaultArgsUnitTest.scala b/scala-core/scala-core-2/src/test/scala-2/com/baeldung/scala/namedanddefaultargs/NamedAndDefaultArgsUnitTest.scala similarity index 100% rename from scala-core-2/src/test/scala-2/com/baeldung/scala/namedanddefaultargs/NamedAndDefaultArgsUnitTest.scala rename to scala-core/scala-core-2/src/test/scala-2/com/baeldung/scala/namedanddefaultargs/NamedAndDefaultArgsUnitTest.scala diff --git a/scala-core-2/src/test/scala-2/com/baeldung/scala/selftype/SelfTypeUnitTest.scala b/scala-core/scala-core-2/src/test/scala-2/com/baeldung/scala/selftype/SelfTypeUnitTest.scala similarity index 100% rename from scala-core-2/src/test/scala-2/com/baeldung/scala/selftype/SelfTypeUnitTest.scala rename to scala-core/scala-core-2/src/test/scala-2/com/baeldung/scala/selftype/SelfTypeUnitTest.scala diff --git a/scala-core-2/src/test/scala-2/com/baeldung/scala/underscore/UnderscoreUsagesUnitTest.scala b/scala-core/scala-core-2/src/test/scala-2/com/baeldung/scala/underscore/UnderscoreUsagesUnitTest.scala similarity index 100% rename from scala-core-2/src/test/scala-2/com/baeldung/scala/underscore/UnderscoreUsagesUnitTest.scala rename to scala-core/scala-core-2/src/test/scala-2/com/baeldung/scala/underscore/UnderscoreUsagesUnitTest.scala diff --git a/scala-core-3/README.md b/scala-core/scala-core-3/README.md similarity index 100% rename from scala-core-3/README.md rename to scala-core/scala-core-3/README.md diff --git a/scala-core-3/src/main/scala-2/com/baeldung/scala/accessmodifiers/Figure.scala b/scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/accessmodifiers/Figure.scala similarity index 100% rename from scala-core-3/src/main/scala-2/com/baeldung/scala/accessmodifiers/Figure.scala rename to scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/accessmodifiers/Figure.scala diff --git a/scala-core-3/src/main/scala-2/com/baeldung/scala/accessmodifiers/Star.scala b/scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/accessmodifiers/Star.scala similarity index 100% rename from scala-core-3/src/main/scala-2/com/baeldung/scala/accessmodifiers/Star.scala rename to scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/accessmodifiers/Star.scala diff --git a/scala-core-3/src/main/scala-2/com/baeldung/scala/await/AwaitFuture.scala b/scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/await/AwaitFuture.scala similarity index 100% rename from scala-core-3/src/main/scala-2/com/baeldung/scala/await/AwaitFuture.scala rename to scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/await/AwaitFuture.scala diff --git a/scala-core-3/src/main/scala-2/com/baeldung/scala/companionobject/Task.scala b/scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/companionobject/Task.scala similarity index 100% rename from scala-core-3/src/main/scala-2/com/baeldung/scala/companionobject/Task.scala rename to scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/companionobject/Task.scala diff --git a/scala-core-3/src/main/scala-2/com/baeldung/scala/implicitparameter/ImplicitParameter.scala b/scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/implicitparameter/ImplicitParameter.scala similarity index 100% rename from scala-core-3/src/main/scala-2/com/baeldung/scala/implicitparameter/ImplicitParameter.scala rename to scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/implicitparameter/ImplicitParameter.scala diff --git a/scala-core-3/src/main/scala-2/com/baeldung/scala/iteratorsvsstreamsvsviews/NonStrictDataStructures.scala b/scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/iteratorsvsstreamsvsviews/NonStrictDataStructures.scala similarity index 100% rename from scala-core-3/src/main/scala-2/com/baeldung/scala/iteratorsvsstreamsvsviews/NonStrictDataStructures.scala rename to scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/iteratorsvsstreamsvsviews/NonStrictDataStructures.scala diff --git a/scala-core-3/src/main/scala-2/com/baeldung/scala/options/OptionBuilder.scala b/scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/options/OptionBuilder.scala similarity index 100% rename from scala-core-3/src/main/scala-2/com/baeldung/scala/options/OptionBuilder.scala rename to scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/options/OptionBuilder.scala diff --git a/scala-core-3/src/main/scala-2/com/baeldung/scala/options/OptionExample.scala b/scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/options/OptionExample.scala similarity index 100% rename from scala-core-3/src/main/scala-2/com/baeldung/scala/options/OptionExample.scala rename to scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/options/OptionExample.scala diff --git a/scala-core-3/src/main/scala-2/com/baeldung/scala/options/Player.scala b/scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/options/Player.scala similarity index 100% rename from scala-core-3/src/main/scala-2/com/baeldung/scala/options/Player.scala rename to scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/options/Player.scala diff --git a/scala-core-3/src/main/scala-2/com/baeldung/scala/options/Tournament.scala b/scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/options/Tournament.scala similarity index 100% rename from scala-core-3/src/main/scala-2/com/baeldung/scala/options/Tournament.scala rename to scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/options/Tournament.scala diff --git a/scala-core-3/src/main/scala-2/com/baeldung/scala/scaladoc/Carnivore.scala b/scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/scaladoc/Carnivore.scala similarity index 100% rename from scala-core-3/src/main/scala-2/com/baeldung/scala/scaladoc/Carnivore.scala rename to scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/scaladoc/Carnivore.scala diff --git a/scala-core-3/src/main/scala-2/com/baeldung/scala/scaladoc/IntervalTimer.scala b/scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/scaladoc/IntervalTimer.scala similarity index 100% rename from scala-core-3/src/main/scala-2/com/baeldung/scala/scaladoc/IntervalTimer.scala rename to scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/scaladoc/IntervalTimer.scala diff --git a/scala-core-3/src/main/scala-2/com/baeldung/scala/scaladoc/TasmanianDevil.scala b/scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/scaladoc/TasmanianDevil.scala similarity index 100% rename from scala-core-3/src/main/scala-2/com/baeldung/scala/scaladoc/TasmanianDevil.scala rename to scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/scaladoc/TasmanianDevil.scala diff --git a/scala-core-3/src/main/scala-2/com/baeldung/scala/scaladoc/package.scala b/scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/scaladoc/package.scala similarity index 100% rename from scala-core-3/src/main/scala-2/com/baeldung/scala/scaladoc/package.scala rename to scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/scaladoc/package.scala diff --git a/scala-core-3/src/main/scala-2/com/baeldung/scala/typecasts/ErrorHandling.scala b/scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/typecasts/ErrorHandling.scala similarity index 100% rename from scala-core-3/src/main/scala-2/com/baeldung/scala/typecasts/ErrorHandling.scala rename to scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/typecasts/ErrorHandling.scala diff --git a/scala-core-3/src/main/scala-2/com/baeldung/scala/typecasts/TypeErasure.scala b/scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/typecasts/TypeErasure.scala similarity index 100% rename from scala-core-3/src/main/scala-2/com/baeldung/scala/typecasts/TypeErasure.scala rename to scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/typecasts/TypeErasure.scala diff --git a/scala-core-3/src/main/scala-2/com/baeldung/scala/typecasts/ValueTypeCasting.scala b/scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/typecasts/ValueTypeCasting.scala similarity index 100% rename from scala-core-3/src/main/scala-2/com/baeldung/scala/typecasts/ValueTypeCasting.scala rename to scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/typecasts/ValueTypeCasting.scala diff --git a/scala-core-3/src/main/scala-2/com/baeldung/scala/typtag/ClassTagExample.scala b/scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/typtag/ClassTagExample.scala similarity index 100% rename from scala-core-3/src/main/scala-2/com/baeldung/scala/typtag/ClassTagExample.scala rename to scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/typtag/ClassTagExample.scala diff --git a/scala-core-3/src/main/scala-2/com/baeldung/scala/typtag/TypeTagExample.scala b/scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/typtag/TypeTagExample.scala similarity index 100% rename from scala-core-3/src/main/scala-2/com/baeldung/scala/typtag/TypeTagExample.scala rename to scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/typtag/TypeTagExample.scala diff --git a/scala-core-3/src/main/scala-2/com/baeldung/scala/typtag/WeakTypeTagExample.scala b/scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/typtag/WeakTypeTagExample.scala similarity index 100% rename from scala-core-3/src/main/scala-2/com/baeldung/scala/typtag/WeakTypeTagExample.scala rename to scala-core/scala-core-3/src/main/scala-2/com/baeldung/scala/typtag/WeakTypeTagExample.scala diff --git a/scala-core-3/src/test/scala-2/com/baeldung/scala/accessmodifiers/AccessModifiersUnitTest.scala b/scala-core/scala-core-3/src/test/scala-2/com/baeldung/scala/accessmodifiers/AccessModifiersUnitTest.scala similarity index 100% rename from scala-core-3/src/test/scala-2/com/baeldung/scala/accessmodifiers/AccessModifiersUnitTest.scala rename to scala-core/scala-core-3/src/test/scala-2/com/baeldung/scala/accessmodifiers/AccessModifiersUnitTest.scala diff --git a/scala-core-3/src/test/scala-2/com/baeldung/scala/await/AwaitFutureUnitTest.scala b/scala-core/scala-core-3/src/test/scala-2/com/baeldung/scala/await/AwaitFutureUnitTest.scala similarity index 100% rename from scala-core-3/src/test/scala-2/com/baeldung/scala/await/AwaitFutureUnitTest.scala rename to scala-core/scala-core-3/src/test/scala-2/com/baeldung/scala/await/AwaitFutureUnitTest.scala diff --git a/scala-core-3/src/test/scala-2/com/baeldung/scala/companionobject/TaskUnitTest.scala b/scala-core/scala-core-3/src/test/scala-2/com/baeldung/scala/companionobject/TaskUnitTest.scala similarity index 100% rename from scala-core-3/src/test/scala-2/com/baeldung/scala/companionobject/TaskUnitTest.scala rename to scala-core/scala-core-3/src/test/scala-2/com/baeldung/scala/companionobject/TaskUnitTest.scala diff --git a/scala-core-3/src/test/scala-2/com/baeldung/scala/dataTypesAndOps/DatatypesAndOpsUnitTest.scala b/scala-core/scala-core-3/src/test/scala-2/com/baeldung/scala/dataTypesAndOps/DatatypesAndOpsUnitTest.scala similarity index 100% rename from scala-core-3/src/test/scala-2/com/baeldung/scala/dataTypesAndOps/DatatypesAndOpsUnitTest.scala rename to scala-core/scala-core-3/src/test/scala-2/com/baeldung/scala/dataTypesAndOps/DatatypesAndOpsUnitTest.scala diff --git a/scala-core-3/src/test/scala-2/com/baeldung/scala/implicitparameter/ImplicitParameterUnitTest.scala b/scala-core/scala-core-3/src/test/scala-2/com/baeldung/scala/implicitparameter/ImplicitParameterUnitTest.scala similarity index 100% rename from scala-core-3/src/test/scala-2/com/baeldung/scala/implicitparameter/ImplicitParameterUnitTest.scala rename to scala-core/scala-core-3/src/test/scala-2/com/baeldung/scala/implicitparameter/ImplicitParameterUnitTest.scala diff --git a/scala-core-3/src/test/scala-2/com/baeldung/scala/iteratorsvsstreamsvsviews/IteratorVsStreamVsViewUnitTest.scala b/scala-core/scala-core-3/src/test/scala-2/com/baeldung/scala/iteratorsvsstreamsvsviews/IteratorVsStreamVsViewUnitTest.scala similarity index 100% rename from scala-core-3/src/test/scala-2/com/baeldung/scala/iteratorsvsstreamsvsviews/IteratorVsStreamVsViewUnitTest.scala rename to scala-core/scala-core-3/src/test/scala-2/com/baeldung/scala/iteratorsvsstreamsvsviews/IteratorVsStreamVsViewUnitTest.scala diff --git a/scala-core-3/src/test/scala-2/com/baeldung/scala/options/OptionUnitTest.scala b/scala-core/scala-core-3/src/test/scala-2/com/baeldung/scala/options/OptionUnitTest.scala similarity index 100% rename from scala-core-3/src/test/scala-2/com/baeldung/scala/options/OptionUnitTest.scala rename to scala-core/scala-core-3/src/test/scala-2/com/baeldung/scala/options/OptionUnitTest.scala diff --git a/scala-core-3/src/test/scala-2/com/baeldung/scala/options/OptionWhenUnlessUnitTest.scala b/scala-core/scala-core-3/src/test/scala-2/com/baeldung/scala/options/OptionWhenUnlessUnitTest.scala similarity index 100% rename from scala-core-3/src/test/scala-2/com/baeldung/scala/options/OptionWhenUnlessUnitTest.scala rename to scala-core/scala-core-3/src/test/scala-2/com/baeldung/scala/options/OptionWhenUnlessUnitTest.scala diff --git a/scala-core-3/src/test/scala-2/com/baeldung/scala/typecasts/TypeErasureUnitTest.scala b/scala-core/scala-core-3/src/test/scala-2/com/baeldung/scala/typecasts/TypeErasureUnitTest.scala similarity index 100% rename from scala-core-3/src/test/scala-2/com/baeldung/scala/typecasts/TypeErasureUnitTest.scala rename to scala-core/scala-core-3/src/test/scala-2/com/baeldung/scala/typecasts/TypeErasureUnitTest.scala diff --git a/scala-core-3/src/test/scala-2/com/baeldung/scala/typetag/ClassTagExampleUnitTest.scala b/scala-core/scala-core-3/src/test/scala-2/com/baeldung/scala/typetag/ClassTagExampleUnitTest.scala similarity index 100% rename from scala-core-3/src/test/scala-2/com/baeldung/scala/typetag/ClassTagExampleUnitTest.scala rename to scala-core/scala-core-3/src/test/scala-2/com/baeldung/scala/typetag/ClassTagExampleUnitTest.scala diff --git a/scala-core-3/src/test/scala-2/com/baeldung/scala/typetag/TypeTagExampleUnitTest.scala b/scala-core/scala-core-3/src/test/scala-2/com/baeldung/scala/typetag/TypeTagExampleUnitTest.scala similarity index 100% rename from scala-core-3/src/test/scala-2/com/baeldung/scala/typetag/TypeTagExampleUnitTest.scala rename to scala-core/scala-core-3/src/test/scala-2/com/baeldung/scala/typetag/TypeTagExampleUnitTest.scala diff --git a/scala-core-3/src/test/scala-2/com/baeldung/scala/typetag/WeakTypeTagExampleUnitTest.scala b/scala-core/scala-core-3/src/test/scala-2/com/baeldung/scala/typetag/WeakTypeTagExampleUnitTest.scala similarity index 100% rename from scala-core-3/src/test/scala-2/com/baeldung/scala/typetag/WeakTypeTagExampleUnitTest.scala rename to scala-core/scala-core-3/src/test/scala-2/com/baeldung/scala/typetag/WeakTypeTagExampleUnitTest.scala diff --git a/scala-core-4/README.md b/scala-core/scala-core-4/README.md similarity index 100% rename from scala-core-4/README.md rename to scala-core/scala-core-4/README.md diff --git a/scala-core-4/src/main/scala-2/com/baeldung/scala/assertvsrequire/AssertUsage.scala b/scala-core/scala-core-4/src/main/scala-2/com/baeldung/scala/assertvsrequire/AssertUsage.scala similarity index 100% rename from scala-core-4/src/main/scala-2/com/baeldung/scala/assertvsrequire/AssertUsage.scala rename to scala-core/scala-core-4/src/main/scala-2/com/baeldung/scala/assertvsrequire/AssertUsage.scala diff --git a/scala-core-4/src/main/scala-2/com/baeldung/scala/assertvsrequire/RequireUsage.scala b/scala-core/scala-core-4/src/main/scala-2/com/baeldung/scala/assertvsrequire/RequireUsage.scala similarity index 100% rename from scala-core-4/src/main/scala-2/com/baeldung/scala/assertvsrequire/RequireUsage.scala rename to scala-core/scala-core-4/src/main/scala-2/com/baeldung/scala/assertvsrequire/RequireUsage.scala diff --git a/scala-core-4/src/main/scala-2/com/baeldung/scala/constructors/Constructors.scala b/scala-core/scala-core-4/src/main/scala-2/com/baeldung/scala/constructors/Constructors.scala similarity index 100% rename from scala-core-4/src/main/scala-2/com/baeldung/scala/constructors/Constructors.scala rename to scala-core/scala-core-4/src/main/scala-2/com/baeldung/scala/constructors/Constructors.scala diff --git a/scala-core-4/src/main/scala-2/com/baeldung/scala/future/FutureRecovery.scala b/scala-core/scala-core-4/src/main/scala-2/com/baeldung/scala/future/FutureRecovery.scala similarity index 100% rename from scala-core-4/src/main/scala-2/com/baeldung/scala/future/FutureRecovery.scala rename to scala-core/scala-core-4/src/main/scala-2/com/baeldung/scala/future/FutureRecovery.scala diff --git a/scala-core-4/src/main/scala-2/com/baeldung/scala/implicitly/ImplicitlyUsage.scala b/scala-core/scala-core-4/src/main/scala-2/com/baeldung/scala/implicitly/ImplicitlyUsage.scala similarity index 100% rename from scala-core-4/src/main/scala-2/com/baeldung/scala/implicitly/ImplicitlyUsage.scala rename to scala-core/scala-core-4/src/main/scala-2/com/baeldung/scala/implicitly/ImplicitlyUsage.scala diff --git a/scala-core-4/src/main/scala-2/com/baeldung/scala/pathdependenttypes/AwardPunishmentDisipline.scala b/scala-core/scala-core-4/src/main/scala-2/com/baeldung/scala/pathdependenttypes/AwardPunishmentDisipline.scala similarity index 100% rename from scala-core-4/src/main/scala-2/com/baeldung/scala/pathdependenttypes/AwardPunishmentDisipline.scala rename to scala-core/scala-core-4/src/main/scala-2/com/baeldung/scala/pathdependenttypes/AwardPunishmentDisipline.scala diff --git a/scala-core-4/src/main/scala-2/com/baeldung/scala/pathdependenttypes/KeyValueStore.scala b/scala-core/scala-core-4/src/main/scala-2/com/baeldung/scala/pathdependenttypes/KeyValueStore.scala similarity index 100% rename from scala-core-4/src/main/scala-2/com/baeldung/scala/pathdependenttypes/KeyValueStore.scala rename to scala-core/scala-core-4/src/main/scala-2/com/baeldung/scala/pathdependenttypes/KeyValueStore.scala diff --git a/scala-core-4/src/main/scala-2/com/baeldung/scala/pathdependenttypes/PathDependentTypeInnerClasses.scala b/scala-core/scala-core-4/src/main/scala-2/com/baeldung/scala/pathdependenttypes/PathDependentTypeInnerClasses.scala similarity index 100% rename from scala-core-4/src/main/scala-2/com/baeldung/scala/pathdependenttypes/PathDependentTypeInnerClasses.scala rename to scala-core/scala-core-4/src/main/scala-2/com/baeldung/scala/pathdependenttypes/PathDependentTypeInnerClasses.scala diff --git a/scala-core-4/src/main/scala-2/com/baeldung/scala/structuraltypes/Quack.scala b/scala-core/scala-core-4/src/main/scala-2/com/baeldung/scala/structuraltypes/Quack.scala similarity index 100% rename from scala-core-4/src/main/scala-2/com/baeldung/scala/structuraltypes/Quack.scala rename to scala-core/scala-core-4/src/main/scala-2/com/baeldung/scala/structuraltypes/Quack.scala diff --git a/scala-core-4/src/main/scala-2/com/baeldung/scala/structuraltypes/ResourceClosing.scala b/scala-core/scala-core-4/src/main/scala-2/com/baeldung/scala/structuraltypes/ResourceClosing.scala similarity index 100% rename from scala-core-4/src/main/scala-2/com/baeldung/scala/structuraltypes/ResourceClosing.scala rename to scala-core/scala-core-4/src/main/scala-2/com/baeldung/scala/structuraltypes/ResourceClosing.scala diff --git a/scala-core-4/src/main/scala-2/com/baeldung/scala/switchannotation/LookupSwitchExample.scala b/scala-core/scala-core-4/src/main/scala-2/com/baeldung/scala/switchannotation/LookupSwitchExample.scala similarity index 100% rename from scala-core-4/src/main/scala-2/com/baeldung/scala/switchannotation/LookupSwitchExample.scala rename to scala-core/scala-core-4/src/main/scala-2/com/baeldung/scala/switchannotation/LookupSwitchExample.scala diff --git a/scala-core-4/src/main/scala-2/com/baeldung/scala/switchannotation/NotOptimizedExample.scala b/scala-core/scala-core-4/src/main/scala-2/com/baeldung/scala/switchannotation/NotOptimizedExample.scala similarity index 100% rename from scala-core-4/src/main/scala-2/com/baeldung/scala/switchannotation/NotOptimizedExample.scala rename to scala-core/scala-core-4/src/main/scala-2/com/baeldung/scala/switchannotation/NotOptimizedExample.scala diff --git a/scala-core-4/src/main/scala-2/com/baeldung/scala/switchannotation/TableSwitchExample.scala b/scala-core/scala-core-4/src/main/scala-2/com/baeldung/scala/switchannotation/TableSwitchExample.scala similarity index 100% rename from scala-core-4/src/main/scala-2/com/baeldung/scala/switchannotation/TableSwitchExample.scala rename to scala-core/scala-core-4/src/main/scala-2/com/baeldung/scala/switchannotation/TableSwitchExample.scala diff --git a/scala-core-4/src/main/scala-2/com/baeldung/scala/typemembersalias/ListIntFunctions.scala b/scala-core/scala-core-4/src/main/scala-2/com/baeldung/scala/typemembersalias/ListIntFunctions.scala similarity index 100% rename from scala-core-4/src/main/scala-2/com/baeldung/scala/typemembersalias/ListIntFunctions.scala rename to scala-core/scala-core-4/src/main/scala-2/com/baeldung/scala/typemembersalias/ListIntFunctions.scala diff --git a/scala-core-4/src/main/scala-2/com/baeldung/scala/typemembersalias/Repeat.scala b/scala-core/scala-core-4/src/main/scala-2/com/baeldung/scala/typemembersalias/Repeat.scala similarity index 100% rename from scala-core-4/src/main/scala-2/com/baeldung/scala/typemembersalias/Repeat.scala rename to scala-core/scala-core-4/src/main/scala-2/com/baeldung/scala/typemembersalias/Repeat.scala diff --git a/scala-core-4/src/main/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionType.scala b/scala-core/scala-core-4/src/main/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionType.scala similarity index 100% rename from scala-core-4/src/main/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionType.scala rename to scala-core/scala-core-4/src/main/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionType.scala diff --git a/scala-core-4/src/main/scala-2/com/baeldung/scala/uniontypes/EitherDisjointUnion.scala b/scala-core/scala-core-4/src/main/scala-2/com/baeldung/scala/uniontypes/EitherDisjointUnion.scala similarity index 100% rename from scala-core-4/src/main/scala-2/com/baeldung/scala/uniontypes/EitherDisjointUnion.scala rename to scala-core/scala-core-4/src/main/scala-2/com/baeldung/scala/uniontypes/EitherDisjointUnion.scala diff --git a/scala-core-4/src/test/resources/animals b/scala-core/scala-core-4/src/test/resources/animals similarity index 100% rename from scala-core-4/src/test/resources/animals rename to scala-core/scala-core-4/src/test/resources/animals diff --git a/scala-core-4/src/test/scala-2/com/baeldung/scala/assertvsrequire/AssertUsageUnitTest.scala b/scala-core/scala-core-4/src/test/scala-2/com/baeldung/scala/assertvsrequire/AssertUsageUnitTest.scala similarity index 100% rename from scala-core-4/src/test/scala-2/com/baeldung/scala/assertvsrequire/AssertUsageUnitTest.scala rename to scala-core/scala-core-4/src/test/scala-2/com/baeldung/scala/assertvsrequire/AssertUsageUnitTest.scala diff --git a/scala-core-4/src/test/scala-2/com/baeldung/scala/assertvsrequire/RequireUsageUnitTest.scala b/scala-core/scala-core-4/src/test/scala-2/com/baeldung/scala/assertvsrequire/RequireUsageUnitTest.scala similarity index 100% rename from scala-core-4/src/test/scala-2/com/baeldung/scala/assertvsrequire/RequireUsageUnitTest.scala rename to scala-core/scala-core-4/src/test/scala-2/com/baeldung/scala/assertvsrequire/RequireUsageUnitTest.scala diff --git a/scala-core-4/src/test/scala-2/com/baeldung/scala/future/FutureRecoveryUnitTest.scala b/scala-core/scala-core-4/src/test/scala-2/com/baeldung/scala/future/FutureRecoveryUnitTest.scala similarity index 100% rename from scala-core-4/src/test/scala-2/com/baeldung/scala/future/FutureRecoveryUnitTest.scala rename to scala-core/scala-core-4/src/test/scala-2/com/baeldung/scala/future/FutureRecoveryUnitTest.scala diff --git a/scala-core-4/src/test/scala-2/com/baeldung/scala/implicitimports/ImplicitImportsUnitTest.scala b/scala-core/scala-core-4/src/test/scala-2/com/baeldung/scala/implicitimports/ImplicitImportsUnitTest.scala similarity index 100% rename from scala-core-4/src/test/scala-2/com/baeldung/scala/implicitimports/ImplicitImportsUnitTest.scala rename to scala-core/scala-core-4/src/test/scala-2/com/baeldung/scala/implicitimports/ImplicitImportsUnitTest.scala diff --git a/scala-core-4/src/test/scala-2/com/baeldung/scala/implicitly/ImplicitlyUsageUnitTest.scala b/scala-core/scala-core-4/src/test/scala-2/com/baeldung/scala/implicitly/ImplicitlyUsageUnitTest.scala similarity index 100% rename from scala-core-4/src/test/scala-2/com/baeldung/scala/implicitly/ImplicitlyUsageUnitTest.scala rename to scala-core/scala-core-4/src/test/scala-2/com/baeldung/scala/implicitly/ImplicitlyUsageUnitTest.scala diff --git a/scala-core-4/src/test/scala-2/com/baeldung/scala/pathdependenttypes/KeyValueStoreUnitTest.scala b/scala-core/scala-core-4/src/test/scala-2/com/baeldung/scala/pathdependenttypes/KeyValueStoreUnitTest.scala similarity index 100% rename from scala-core-4/src/test/scala-2/com/baeldung/scala/pathdependenttypes/KeyValueStoreUnitTest.scala rename to scala-core/scala-core-4/src/test/scala-2/com/baeldung/scala/pathdependenttypes/KeyValueStoreUnitTest.scala diff --git a/scala-core-4/src/test/scala-2/com/baeldung/scala/structuraltypes/DuckUnitTest.scala b/scala-core/scala-core-4/src/test/scala-2/com/baeldung/scala/structuraltypes/DuckUnitTest.scala similarity index 100% rename from scala-core-4/src/test/scala-2/com/baeldung/scala/structuraltypes/DuckUnitTest.scala rename to scala-core/scala-core-4/src/test/scala-2/com/baeldung/scala/structuraltypes/DuckUnitTest.scala diff --git a/scala-core-4/src/test/scala-2/com/baeldung/scala/structuraltypes/ResourceClosingUnitTest.scala b/scala-core/scala-core-4/src/test/scala-2/com/baeldung/scala/structuraltypes/ResourceClosingUnitTest.scala similarity index 100% rename from scala-core-4/src/test/scala-2/com/baeldung/scala/structuraltypes/ResourceClosingUnitTest.scala rename to scala-core/scala-core-4/src/test/scala-2/com/baeldung/scala/structuraltypes/ResourceClosingUnitTest.scala diff --git a/scala-core-4/src/test/scala-2/com/baeldung/scala/typemembersalias/ListIntFunctionsUnitTest.scala b/scala-core/scala-core-4/src/test/scala-2/com/baeldung/scala/typemembersalias/ListIntFunctionsUnitTest.scala similarity index 100% rename from scala-core-4/src/test/scala-2/com/baeldung/scala/typemembersalias/ListIntFunctionsUnitTest.scala rename to scala-core/scala-core-4/src/test/scala-2/com/baeldung/scala/typemembersalias/ListIntFunctionsUnitTest.scala diff --git a/scala-core-4/src/test/scala-2/com/baeldung/scala/typemembersalias/RepeatUnitTest.scala b/scala-core/scala-core-4/src/test/scala-2/com/baeldung/scala/typemembersalias/RepeatUnitTest.scala similarity index 100% rename from scala-core-4/src/test/scala-2/com/baeldung/scala/typemembersalias/RepeatUnitTest.scala rename to scala-core/scala-core-4/src/test/scala-2/com/baeldung/scala/typemembersalias/RepeatUnitTest.scala diff --git a/scala-core-4/src/test/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionTypeUnitTest.scala b/scala-core/scala-core-4/src/test/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionTypeUnitTest.scala similarity index 100% rename from scala-core-4/src/test/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionTypeUnitTest.scala rename to scala-core/scala-core-4/src/test/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionTypeUnitTest.scala diff --git a/scala-core-4/src/test/scala-2/com/baeldung/scala/uniontypes/EitherDisjointUnionUnitTest.scala b/scala-core/scala-core-4/src/test/scala-2/com/baeldung/scala/uniontypes/EitherDisjointUnionUnitTest.scala similarity index 100% rename from scala-core-4/src/test/scala-2/com/baeldung/scala/uniontypes/EitherDisjointUnionUnitTest.scala rename to scala-core/scala-core-4/src/test/scala-2/com/baeldung/scala/uniontypes/EitherDisjointUnionUnitTest.scala diff --git a/scala-core-4/src/test/scala-2/com/baeldung/scala/withfilter/WithFilterVsFilterUnitTest.scala b/scala-core/scala-core-4/src/test/scala-2/com/baeldung/scala/withfilter/WithFilterVsFilterUnitTest.scala similarity index 100% rename from scala-core-4/src/test/scala-2/com/baeldung/scala/withfilter/WithFilterVsFilterUnitTest.scala rename to scala-core/scala-core-4/src/test/scala-2/com/baeldung/scala/withfilter/WithFilterVsFilterUnitTest.scala diff --git a/scala-core-5/README.md b/scala-core/scala-core-5/README.md similarity index 100% rename from scala-core-5/README.md rename to scala-core/scala-core-5/README.md diff --git a/scala-core-5/src/main/scala-2/com/baeldung/scala/adt/Examples.scala b/scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/adt/Examples.scala similarity index 100% rename from scala-core-5/src/main/scala-2/com/baeldung/scala/adt/Examples.scala rename to scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/adt/Examples.scala diff --git a/scala-core-5/src/main/scala-2/com/baeldung/scala/datesandtimes/JavaTime.scala b/scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/datesandtimes/JavaTime.scala similarity index 100% rename from scala-core-5/src/main/scala-2/com/baeldung/scala/datesandtimes/JavaTime.scala rename to scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/datesandtimes/JavaTime.scala diff --git a/scala-core-5/src/main/scala-2/com/baeldung/scala/datesandtimes/JavaUtilDate.scala b/scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/datesandtimes/JavaUtilDate.scala similarity index 100% rename from scala-core-5/src/main/scala-2/com/baeldung/scala/datesandtimes/JavaUtilDate.scala rename to scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/datesandtimes/JavaUtilDate.scala diff --git a/scala-core-5/src/main/scala-2/com/baeldung/scala/datesandtimes/JodaTime.scala b/scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/datesandtimes/JodaTime.scala similarity index 100% rename from scala-core-5/src/main/scala-2/com/baeldung/scala/datesandtimes/JodaTime.scala rename to scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/datesandtimes/JodaTime.scala diff --git a/scala-core-5/src/main/scala-2/com/baeldung/scala/datesandtimes/NScalaTime.scala b/scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/datesandtimes/NScalaTime.scala similarity index 100% rename from scala-core-5/src/main/scala-2/com/baeldung/scala/datesandtimes/NScalaTime.scala rename to scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/datesandtimes/NScalaTime.scala diff --git a/scala-core-5/src/main/scala-2/com/baeldung/scala/inlining/Inlining.scala b/scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/inlining/Inlining.scala similarity index 100% rename from scala-core-5/src/main/scala-2/com/baeldung/scala/inlining/Inlining.scala rename to scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/inlining/Inlining.scala diff --git a/scala-core-5/src/main/scala-2/com/baeldung/scala/inlining/InliningWarning.scala b/scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/inlining/InliningWarning.scala similarity index 100% rename from scala-core-5/src/main/scala-2/com/baeldung/scala/inlining/InliningWarning.scala rename to scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/inlining/InliningWarning.scala diff --git a/scala-core-5/src/main/scala-2/com/baeldung/scala/inlining/MegamorphicCallsite.scala b/scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/inlining/MegamorphicCallsite.scala similarity index 100% rename from scala-core-5/src/main/scala-2/com/baeldung/scala/inlining/MegamorphicCallsite.scala rename to scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/inlining/MegamorphicCallsite.scala diff --git a/scala-core-5/src/main/scala-2/com/baeldung/scala/lambdas/IntTransformer.scala b/scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/lambdas/IntTransformer.scala similarity index 100% rename from scala-core-5/src/main/scala-2/com/baeldung/scala/lambdas/IntTransformer.scala rename to scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/lambdas/IntTransformer.scala diff --git a/scala-core-5/src/main/scala-2/com/baeldung/scala/listcreation/ListCreationMethods.scala b/scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/listcreation/ListCreationMethods.scala similarity index 100% rename from scala-core-5/src/main/scala-2/com/baeldung/scala/listcreation/ListCreationMethods.scala rename to scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/listcreation/ListCreationMethods.scala diff --git a/scala-core-5/src/main/scala-2/com/baeldung/scala/richwrappers/RichIntImplicits.scala b/scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/richwrappers/RichIntImplicits.scala similarity index 100% rename from scala-core-5/src/main/scala-2/com/baeldung/scala/richwrappers/RichIntImplicits.scala rename to scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/richwrappers/RichIntImplicits.scala diff --git a/scala-core-5/src/main/scala-2/com/baeldung/scala/richwrappers/SimpleRichInt.scala b/scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/richwrappers/SimpleRichInt.scala similarity index 100% rename from scala-core-5/src/main/scala-2/com/baeldung/scala/richwrappers/SimpleRichInt.scala rename to scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/richwrappers/SimpleRichInt.scala diff --git a/scala-core-5/src/main/scala-2/com/baeldung/scala/switchannotation/LookupSwitchExample.scala b/scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/switchannotation/LookupSwitchExample.scala similarity index 100% rename from scala-core-5/src/main/scala-2/com/baeldung/scala/switchannotation/LookupSwitchExample.scala rename to scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/switchannotation/LookupSwitchExample.scala diff --git a/scala-core-5/src/main/scala-2/com/baeldung/scala/switchannotation/NotOptimizedExample.scala b/scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/switchannotation/NotOptimizedExample.scala similarity index 100% rename from scala-core-5/src/main/scala-2/com/baeldung/scala/switchannotation/NotOptimizedExample.scala rename to scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/switchannotation/NotOptimizedExample.scala diff --git a/scala-core-5/src/main/scala-2/com/baeldung/scala/switchannotation/TableSwitchExample.scala b/scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/switchannotation/TableSwitchExample.scala similarity index 100% rename from scala-core-5/src/main/scala-2/com/baeldung/scala/switchannotation/TableSwitchExample.scala rename to scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/switchannotation/TableSwitchExample.scala diff --git a/scala-core-5/src/main/scala-2/com/baeldung/scala/vectorbenefits/VectorAppendPrepend.scala b/scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/vectorbenefits/VectorAppendPrepend.scala similarity index 100% rename from scala-core-5/src/main/scala-2/com/baeldung/scala/vectorbenefits/VectorAppendPrepend.scala rename to scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/vectorbenefits/VectorAppendPrepend.scala diff --git a/scala-core-5/src/main/scala-2/com/baeldung/scala/vectorbenefits/VectorBasics.scala b/scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/vectorbenefits/VectorBasics.scala similarity index 100% rename from scala-core-5/src/main/scala-2/com/baeldung/scala/vectorbenefits/VectorBasics.scala rename to scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/vectorbenefits/VectorBasics.scala diff --git a/scala-core-5/src/main/scala-2/com/baeldung/scala/vectorbenefits/VectorHeadTailAccess.scala b/scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/vectorbenefits/VectorHeadTailAccess.scala similarity index 100% rename from scala-core-5/src/main/scala-2/com/baeldung/scala/vectorbenefits/VectorHeadTailAccess.scala rename to scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/vectorbenefits/VectorHeadTailAccess.scala diff --git a/scala-core-5/src/main/scala-2/com/baeldung/scala/vectorbenefits/VectorIteration.scala b/scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/vectorbenefits/VectorIteration.scala similarity index 100% rename from scala-core-5/src/main/scala-2/com/baeldung/scala/vectorbenefits/VectorIteration.scala rename to scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/vectorbenefits/VectorIteration.scala diff --git a/scala-core-5/src/main/scala-2/com/baeldung/scala/vectorbenefits/VectorRandomAccess.scala b/scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/vectorbenefits/VectorRandomAccess.scala similarity index 100% rename from scala-core-5/src/main/scala-2/com/baeldung/scala/vectorbenefits/VectorRandomAccess.scala rename to scala-core/scala-core-5/src/main/scala-2/com/baeldung/scala/vectorbenefits/VectorRandomAccess.scala diff --git a/scala-core-5/src/test/scala-2/com/baeldung/scala/adt/ExamplesUnitTest.scala b/scala-core/scala-core-5/src/test/scala-2/com/baeldung/scala/adt/ExamplesUnitTest.scala similarity index 100% rename from scala-core-5/src/test/scala-2/com/baeldung/scala/adt/ExamplesUnitTest.scala rename to scala-core/scala-core-5/src/test/scala-2/com/baeldung/scala/adt/ExamplesUnitTest.scala diff --git a/scala-core-5/src/test/scala-2/com/baeldung/scala/datesandtimes/JavaTimeUnitTest.scala b/scala-core/scala-core-5/src/test/scala-2/com/baeldung/scala/datesandtimes/JavaTimeUnitTest.scala similarity index 100% rename from scala-core-5/src/test/scala-2/com/baeldung/scala/datesandtimes/JavaTimeUnitTest.scala rename to scala-core/scala-core-5/src/test/scala-2/com/baeldung/scala/datesandtimes/JavaTimeUnitTest.scala diff --git a/scala-core-5/src/test/scala-2/com/baeldung/scala/datesandtimes/JavaUtilDateUnitTest.scala b/scala-core/scala-core-5/src/test/scala-2/com/baeldung/scala/datesandtimes/JavaUtilDateUnitTest.scala similarity index 100% rename from scala-core-5/src/test/scala-2/com/baeldung/scala/datesandtimes/JavaUtilDateUnitTest.scala rename to scala-core/scala-core-5/src/test/scala-2/com/baeldung/scala/datesandtimes/JavaUtilDateUnitTest.scala diff --git a/scala-core-5/src/test/scala-2/com/baeldung/scala/datesandtimes/JodaTimeUnitTest.scala b/scala-core/scala-core-5/src/test/scala-2/com/baeldung/scala/datesandtimes/JodaTimeUnitTest.scala similarity index 100% rename from scala-core-5/src/test/scala-2/com/baeldung/scala/datesandtimes/JodaTimeUnitTest.scala rename to scala-core/scala-core-5/src/test/scala-2/com/baeldung/scala/datesandtimes/JodaTimeUnitTest.scala diff --git a/scala-core-5/src/test/scala-2/com/baeldung/scala/datesandtimes/NScalaTimeUnitTest.scala b/scala-core/scala-core-5/src/test/scala-2/com/baeldung/scala/datesandtimes/NScalaTimeUnitTest.scala similarity index 100% rename from scala-core-5/src/test/scala-2/com/baeldung/scala/datesandtimes/NScalaTimeUnitTest.scala rename to scala-core/scala-core-5/src/test/scala-2/com/baeldung/scala/datesandtimes/NScalaTimeUnitTest.scala diff --git a/scala-core-5/src/test/scala-2/com/baeldung/scala/lambdas/LambdasUnitTest.scala b/scala-core/scala-core-5/src/test/scala-2/com/baeldung/scala/lambdas/LambdasUnitTest.scala similarity index 100% rename from scala-core-5/src/test/scala-2/com/baeldung/scala/lambdas/LambdasUnitTest.scala rename to scala-core/scala-core-5/src/test/scala-2/com/baeldung/scala/lambdas/LambdasUnitTest.scala diff --git a/scala-core-5/src/test/scala-2/com/baeldung/scala/listcreation/ListCreationMethodsUnitTest.scala b/scala-core/scala-core-5/src/test/scala-2/com/baeldung/scala/listcreation/ListCreationMethodsUnitTest.scala similarity index 100% rename from scala-core-5/src/test/scala-2/com/baeldung/scala/listcreation/ListCreationMethodsUnitTest.scala rename to scala-core/scala-core-5/src/test/scala-2/com/baeldung/scala/listcreation/ListCreationMethodsUnitTest.scala diff --git a/scala-core-5/src/test/scala-2/com/baeldung/scala/regex/RegexUnitTest.scala b/scala-core/scala-core-5/src/test/scala-2/com/baeldung/scala/regex/RegexUnitTest.scala similarity index 100% rename from scala-core-5/src/test/scala-2/com/baeldung/scala/regex/RegexUnitTest.scala rename to scala-core/scala-core-5/src/test/scala-2/com/baeldung/scala/regex/RegexUnitTest.scala diff --git a/scala-core-5/src/test/scala-2/com/baeldung/scala/richwrappers/RichIntUnitTest.scala b/scala-core/scala-core-5/src/test/scala-2/com/baeldung/scala/richwrappers/RichIntUnitTest.scala similarity index 100% rename from scala-core-5/src/test/scala-2/com/baeldung/scala/richwrappers/RichIntUnitTest.scala rename to scala-core/scala-core-5/src/test/scala-2/com/baeldung/scala/richwrappers/RichIntUnitTest.scala diff --git a/scala-core-5/src/test/scala-2/com/baeldung/scala/richwrappers/RichWrappersUnitTest.scala b/scala-core/scala-core-5/src/test/scala-2/com/baeldung/scala/richwrappers/RichWrappersUnitTest.scala similarity index 100% rename from scala-core-5/src/test/scala-2/com/baeldung/scala/richwrappers/RichWrappersUnitTest.scala rename to scala-core/scala-core-5/src/test/scala-2/com/baeldung/scala/richwrappers/RichWrappersUnitTest.scala diff --git a/scala-core-5/src/test/scala-2/com/baeldung/scala/richwrappers/SimpleRichUnitTest.scala b/scala-core/scala-core-5/src/test/scala-2/com/baeldung/scala/richwrappers/SimpleRichUnitTest.scala similarity index 100% rename from scala-core-5/src/test/scala-2/com/baeldung/scala/richwrappers/SimpleRichUnitTest.scala rename to scala-core/scala-core-5/src/test/scala-2/com/baeldung/scala/richwrappers/SimpleRichUnitTest.scala diff --git a/scala-core-5/src/test/scala-2/com/baeldung/scala/sorting/SortingUnitTest.scala b/scala-core/scala-core-5/src/test/scala-2/com/baeldung/scala/sorting/SortingUnitTest.scala similarity index 100% rename from scala-core-5/src/test/scala-2/com/baeldung/scala/sorting/SortingUnitTest.scala rename to scala-core/scala-core-5/src/test/scala-2/com/baeldung/scala/sorting/SortingUnitTest.scala diff --git a/scala-core-5/src/test/scala-2/com/baeldung/scala/vectorbenefits/VectorAppendPrependUnitTest.scala b/scala-core/scala-core-5/src/test/scala-2/com/baeldung/scala/vectorbenefits/VectorAppendPrependUnitTest.scala similarity index 100% rename from scala-core-5/src/test/scala-2/com/baeldung/scala/vectorbenefits/VectorAppendPrependUnitTest.scala rename to scala-core/scala-core-5/src/test/scala-2/com/baeldung/scala/vectorbenefits/VectorAppendPrependUnitTest.scala diff --git a/scala-core-5/src/test/scala-2/com/baeldung/scala/vectorbenefits/VectorHeadTailAccessUnitTest.scala b/scala-core/scala-core-5/src/test/scala-2/com/baeldung/scala/vectorbenefits/VectorHeadTailAccessUnitTest.scala similarity index 100% rename from scala-core-5/src/test/scala-2/com/baeldung/scala/vectorbenefits/VectorHeadTailAccessUnitTest.scala rename to scala-core/scala-core-5/src/test/scala-2/com/baeldung/scala/vectorbenefits/VectorHeadTailAccessUnitTest.scala diff --git a/scala-core-5/src/test/scala-2/com/baeldung/scala/vectorbenefits/VectorIterationUnitTest.scala b/scala-core/scala-core-5/src/test/scala-2/com/baeldung/scala/vectorbenefits/VectorIterationUnitTest.scala similarity index 100% rename from scala-core-5/src/test/scala-2/com/baeldung/scala/vectorbenefits/VectorIterationUnitTest.scala rename to scala-core/scala-core-5/src/test/scala-2/com/baeldung/scala/vectorbenefits/VectorIterationUnitTest.scala diff --git a/scala-core-6/README.md b/scala-core/scala-core-6/README.md similarity index 100% rename from scala-core-6/README.md rename to scala-core/scala-core-6/README.md diff --git a/scala-core-6/src/main/scala-2/com/baeldung/scala/break/BreakStatement.scala b/scala-core/scala-core-6/src/main/scala-2/com/baeldung/scala/break/BreakStatement.scala similarity index 100% rename from scala-core-6/src/main/scala-2/com/baeldung/scala/break/BreakStatement.scala rename to scala-core/scala-core-6/src/main/scala-2/com/baeldung/scala/break/BreakStatement.scala diff --git a/scala-core-6/src/main/scala-2/com/baeldung/scala/fileio/FileIO.scala b/scala-core/scala-core-6/src/main/scala-2/com/baeldung/scala/fileio/FileIO.scala similarity index 100% rename from scala-core-6/src/main/scala-2/com/baeldung/scala/fileio/FileIO.scala rename to scala-core/scala-core-6/src/main/scala-2/com/baeldung/scala/fileio/FileIO.scala diff --git a/scala-core-6/src/main/scala-2/com/baeldung/scala/functionalloops/FunctionalLoops.scala b/scala-core/scala-core-6/src/main/scala-2/com/baeldung/scala/functionalloops/FunctionalLoops.scala similarity index 100% rename from scala-core-6/src/main/scala-2/com/baeldung/scala/functionalloops/FunctionalLoops.scala rename to scala-core/scala-core-6/src/main/scala-2/com/baeldung/scala/functionalloops/FunctionalLoops.scala diff --git a/scala-core-6/src/main/scala-2/com/baeldung/scala/functions/Functions.scala b/scala-core/scala-core-6/src/main/scala-2/com/baeldung/scala/functions/Functions.scala similarity index 100% rename from scala-core-6/src/main/scala-2/com/baeldung/scala/functions/Functions.scala rename to scala-core/scala-core-6/src/main/scala-2/com/baeldung/scala/functions/Functions.scala diff --git a/scala-core-6/src/main/scala-2/com/baeldung/scala/futures/Futures.scala b/scala-core/scala-core-6/src/main/scala-2/com/baeldung/scala/futures/Futures.scala similarity index 100% rename from scala-core-6/src/main/scala-2/com/baeldung/scala/futures/Futures.scala rename to scala-core/scala-core-6/src/main/scala-2/com/baeldung/scala/futures/Futures.scala diff --git a/scala-core-6/src/main/scala-2/com/baeldung/scala/implicitconversions/LengthUnit.scala b/scala-core/scala-core-6/src/main/scala-2/com/baeldung/scala/implicitconversions/LengthUnit.scala similarity index 100% rename from scala-core-6/src/main/scala-2/com/baeldung/scala/implicitconversions/LengthUnit.scala rename to scala-core/scala-core-6/src/main/scala-2/com/baeldung/scala/implicitconversions/LengthUnit.scala diff --git a/scala-core-6/src/main/scala-2/com/baeldung/scala/pimpmylib/PimpLibExample.scala b/scala-core/scala-core-6/src/main/scala-2/com/baeldung/scala/pimpmylib/PimpLibExample.scala similarity index 100% rename from scala-core-6/src/main/scala-2/com/baeldung/scala/pimpmylib/PimpLibExample.scala rename to scala-core/scala-core-6/src/main/scala-2/com/baeldung/scala/pimpmylib/PimpLibExample.scala diff --git a/scala-core-6/src/main/scala-2/com/baeldung/scala/tailrec/StringLength.scala b/scala-core/scala-core-6/src/main/scala-2/com/baeldung/scala/tailrec/StringLength.scala similarity index 100% rename from scala-core-6/src/main/scala-2/com/baeldung/scala/tailrec/StringLength.scala rename to scala-core/scala-core-6/src/main/scala-2/com/baeldung/scala/tailrec/StringLength.scala diff --git a/scala-core-6/src/test/scala-2/com/baeldung/scala/implicitconversions/LengthUnitTest.scala b/scala-core/scala-core-6/src/test/scala-2/com/baeldung/scala/implicitconversions/LengthUnitTest.scala similarity index 100% rename from scala-core-6/src/test/scala-2/com/baeldung/scala/implicitconversions/LengthUnitTest.scala rename to scala-core/scala-core-6/src/test/scala-2/com/baeldung/scala/implicitconversions/LengthUnitTest.scala diff --git a/scala-core-6/src/test/scala-2/com/baeldung/scala/maps/MapsUnitTest.scala b/scala-core/scala-core-6/src/test/scala-2/com/baeldung/scala/maps/MapsUnitTest.scala similarity index 100% rename from scala-core-6/src/test/scala-2/com/baeldung/scala/maps/MapsUnitTest.scala rename to scala-core/scala-core-6/src/test/scala-2/com/baeldung/scala/maps/MapsUnitTest.scala diff --git a/scala-core-6/src/test/scala-2/com/baeldung/scala/pimpmylib/PimpLibExampleUnitTest.scala b/scala-core/scala-core-6/src/test/scala-2/com/baeldung/scala/pimpmylib/PimpLibExampleUnitTest.scala similarity index 100% rename from scala-core-6/src/test/scala-2/com/baeldung/scala/pimpmylib/PimpLibExampleUnitTest.scala rename to scala-core/scala-core-6/src/test/scala-2/com/baeldung/scala/pimpmylib/PimpLibExampleUnitTest.scala diff --git a/scala-core-6/src/test/scala-2/com/baeldung/scala/ranges/RangeUnitTest.scala b/scala-core/scala-core-6/src/test/scala-2/com/baeldung/scala/ranges/RangeUnitTest.scala similarity index 100% rename from scala-core-6/src/test/scala-2/com/baeldung/scala/ranges/RangeUnitTest.scala rename to scala-core/scala-core-6/src/test/scala-2/com/baeldung/scala/ranges/RangeUnitTest.scala diff --git a/scala-core-7/README.md b/scala-core/scala-core-7/README.md similarity index 100% rename from scala-core-7/README.md rename to scala-core/scala-core-7/README.md diff --git a/scala-core-7/src/main/scala-2/com/baeldung/scala/applyfunction/ApplyFunction.scala b/scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/applyfunction/ApplyFunction.scala similarity index 100% rename from scala-core-7/src/main/scala-2/com/baeldung/scala/applyfunction/ApplyFunction.scala rename to scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/applyfunction/ApplyFunction.scala diff --git a/scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/Args4J.scala b/scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/Args4J.scala similarity index 100% rename from scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/Args4J.scala rename to scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/Args4J.scala diff --git a/scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/Clist.scala b/scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/Clist.scala similarity index 100% rename from scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/Clist.scala rename to scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/Clist.scala diff --git a/scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/PatternMatching.scala b/scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/PatternMatching.scala similarity index 100% rename from scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/PatternMatching.scala rename to scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/PatternMatching.scala diff --git a/scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/Scallop.scala b/scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/Scallop.scala similarity index 100% rename from scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/Scallop.scala rename to scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/Scallop.scala diff --git a/scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/ScallopPatternMatching.scala b/scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/ScallopPatternMatching.scala similarity index 100% rename from scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/ScallopPatternMatching.scala rename to scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/ScallopPatternMatching.scala diff --git a/scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/Scopt.scala b/scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/Scopt.scala similarity index 100% rename from scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/Scopt.scala rename to scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/Scopt.scala diff --git a/scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/Sliding.scala b/scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/Sliding.scala similarity index 100% rename from scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/Sliding.scala rename to scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/Sliding.scala diff --git a/scala-core-7/src/main/scala-2/com/baeldung/scala/arrayvswrappedarray/ArrayVsWrappedArray.scala b/scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/arrayvswrappedarray/ArrayVsWrappedArray.scala similarity index 100% rename from scala-core-7/src/main/scala-2/com/baeldung/scala/arrayvswrappedarray/ArrayVsWrappedArray.scala rename to scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/arrayvswrappedarray/ArrayVsWrappedArray.scala diff --git a/scala-core-7/src/main/scala-2/com/baeldung/scala/countchar/CountCharsInString.scala b/scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/countchar/CountCharsInString.scala similarity index 100% rename from scala-core-7/src/main/scala-2/com/baeldung/scala/countchar/CountCharsInString.scala rename to scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/countchar/CountCharsInString.scala diff --git a/scala-core-7/src/main/scala-2/com/baeldung/scala/productserializable/ColorInference.scala b/scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/productserializable/ColorInference.scala similarity index 100% rename from scala-core-7/src/main/scala-2/com/baeldung/scala/productserializable/ColorInference.scala rename to scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/productserializable/ColorInference.scala diff --git a/scala-core-7/src/main/scala-2/com/baeldung/scala/return/ReturnExamples.scala b/scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/return/ReturnExamples.scala similarity index 100% rename from scala-core-7/src/main/scala-2/com/baeldung/scala/return/ReturnExamples.scala rename to scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/return/ReturnExamples.scala diff --git a/scala-core-7/src/main/scala-2/com/baeldung/scala/specialized/AllTypesSpecialized.scala b/scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/specialized/AllTypesSpecialized.scala similarity index 100% rename from scala-core-7/src/main/scala-2/com/baeldung/scala/specialized/AllTypesSpecialized.scala rename to scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/specialized/AllTypesSpecialized.scala diff --git a/scala-core-7/src/main/scala-2/com/baeldung/scala/specialized/NotSpecialized.scala b/scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/specialized/NotSpecialized.scala similarity index 100% rename from scala-core-7/src/main/scala-2/com/baeldung/scala/specialized/NotSpecialized.scala rename to scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/specialized/NotSpecialized.scala diff --git a/scala-core-7/src/main/scala-2/com/baeldung/scala/specialized/OnlyTwoTypesSpecialized.scala b/scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/specialized/OnlyTwoTypesSpecialized.scala similarity index 100% rename from scala-core-7/src/main/scala-2/com/baeldung/scala/specialized/OnlyTwoTypesSpecialized.scala rename to scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/specialized/OnlyTwoTypesSpecialized.scala diff --git a/scala-core-7/src/main/scala-2/com/baeldung/scala/typeinference/TypeInferenceLimitations.scala b/scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/typeinference/TypeInferenceLimitations.scala similarity index 100% rename from scala-core-7/src/main/scala-2/com/baeldung/scala/typeinference/TypeInferenceLimitations.scala rename to scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/typeinference/TypeInferenceLimitations.scala diff --git a/scala-core-7/src/main/scala-2/com/baeldung/scala/typeinference/TypeInferredFunctions.scala b/scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/typeinference/TypeInferredFunctions.scala similarity index 100% rename from scala-core-7/src/main/scala-2/com/baeldung/scala/typeinference/TypeInferredFunctions.scala rename to scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/typeinference/TypeInferredFunctions.scala diff --git a/scala-core-7/src/main/scala-2/com/baeldung/scala/typeinference/TypeInferredParameters.scala b/scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/typeinference/TypeInferredParameters.scala similarity index 100% rename from scala-core-7/src/main/scala-2/com/baeldung/scala/typeinference/TypeInferredParameters.scala rename to scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/typeinference/TypeInferredParameters.scala diff --git a/scala-core-7/src/main/scala-2/com/baeldung/scala/typeinference/TypeInferredVariables.scala b/scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/typeinference/TypeInferredVariables.scala similarity index 100% rename from scala-core-7/src/main/scala-2/com/baeldung/scala/typeinference/TypeInferredVariables.scala rename to scala-core/scala-core-7/src/main/scala-2/com/baeldung/scala/typeinference/TypeInferredVariables.scala diff --git a/scala-core-7/src/test/scala-2/com/baeldung/scala/arrays/CopyAnArrayToAnotherUnitTest.scala b/scala-core/scala-core-7/src/test/scala-2/com/baeldung/scala/arrays/CopyAnArrayToAnotherUnitTest.scala similarity index 100% rename from scala-core-7/src/test/scala-2/com/baeldung/scala/arrays/CopyAnArrayToAnotherUnitTest.scala rename to scala-core/scala-core-7/src/test/scala-2/com/baeldung/scala/arrays/CopyAnArrayToAnotherUnitTest.scala diff --git a/scala-core-7/src/test/scala-2/com/baeldung/scala/arrays/InitializeAnArrayUnitTest.scala b/scala-core/scala-core-7/src/test/scala-2/com/baeldung/scala/arrays/InitializeAnArrayUnitTest.scala similarity index 100% rename from scala-core-7/src/test/scala-2/com/baeldung/scala/arrays/InitializeAnArrayUnitTest.scala rename to scala-core/scala-core-7/src/test/scala-2/com/baeldung/scala/arrays/InitializeAnArrayUnitTest.scala diff --git a/scala-core-7/src/test/scala-2/com/baeldung/scala/countchar/CountCharsInStringUnitTest.scala b/scala-core/scala-core-7/src/test/scala-2/com/baeldung/scala/countchar/CountCharsInStringUnitTest.scala similarity index 100% rename from scala-core-7/src/test/scala-2/com/baeldung/scala/countchar/CountCharsInStringUnitTest.scala rename to scala-core/scala-core-7/src/test/scala-2/com/baeldung/scala/countchar/CountCharsInStringUnitTest.scala diff --git a/scala-core-7/src/test/scala-2/com/baeldung/scala/typeinference/TypeInferenceLimitationsTest.scala b/scala-core/scala-core-7/src/test/scala-2/com/baeldung/scala/typeinference/TypeInferenceLimitationsTest.scala similarity index 100% rename from scala-core-7/src/test/scala-2/com/baeldung/scala/typeinference/TypeInferenceLimitationsTest.scala rename to scala-core/scala-core-7/src/test/scala-2/com/baeldung/scala/typeinference/TypeInferenceLimitationsTest.scala diff --git a/scala-core-7/src/test/scala-2/com/baeldung/scala/typeinference/TypeInferredFunctionsTest.scala b/scala-core/scala-core-7/src/test/scala-2/com/baeldung/scala/typeinference/TypeInferredFunctionsTest.scala similarity index 100% rename from scala-core-7/src/test/scala-2/com/baeldung/scala/typeinference/TypeInferredFunctionsTest.scala rename to scala-core/scala-core-7/src/test/scala-2/com/baeldung/scala/typeinference/TypeInferredFunctionsTest.scala diff --git a/scala-core-7/src/test/scala-2/com/baeldung/scala/typeinference/TypeInferredVariablesTest.scala b/scala-core/scala-core-7/src/test/scala-2/com/baeldung/scala/typeinference/TypeInferredVariablesTest.scala similarity index 100% rename from scala-core-7/src/test/scala-2/com/baeldung/scala/typeinference/TypeInferredVariablesTest.scala rename to scala-core/scala-core-7/src/test/scala-2/com/baeldung/scala/typeinference/TypeInferredVariablesTest.scala diff --git a/scala-core-8/README.md b/scala-core/scala-core-8/README.md similarity index 100% rename from scala-core-8/README.md rename to scala-core/scala-core-8/README.md diff --git a/scala-core-8/src/main/resources/application.conf b/scala-core/scala-core-8/src/main/resources/application.conf similarity index 100% rename from scala-core-8/src/main/resources/application.conf rename to scala-core/scala-core-8/src/main/resources/application.conf diff --git a/scala-core-8/src/main/scala-2/com/baeldung/scala/builderpattern/Guitar.scala b/scala-core/scala-core-8/src/main/scala-2/com/baeldung/scala/builderpattern/Guitar.scala similarity index 100% rename from scala-core-8/src/main/scala-2/com/baeldung/scala/builderpattern/Guitar.scala rename to scala-core/scala-core-8/src/main/scala-2/com/baeldung/scala/builderpattern/Guitar.scala diff --git a/scala-core-8/src/main/scala-2/com/baeldung/scala/builderpattern/GuitarBuilder.scala b/scala-core/scala-core-8/src/main/scala-2/com/baeldung/scala/builderpattern/GuitarBuilder.scala similarity index 100% rename from scala-core-8/src/main/scala-2/com/baeldung/scala/builderpattern/GuitarBuilder.scala rename to scala-core/scala-core-8/src/main/scala-2/com/baeldung/scala/builderpattern/GuitarBuilder.scala diff --git a/scala-core-8/src/main/scala-2/com/baeldung/scala/builderpattern/SafeGuitarBuilder.scala b/scala-core/scala-core-8/src/main/scala-2/com/baeldung/scala/builderpattern/SafeGuitarBuilder.scala similarity index 100% rename from scala-core-8/src/main/scala-2/com/baeldung/scala/builderpattern/SafeGuitarBuilder.scala rename to scala-core/scala-core-8/src/main/scala-2/com/baeldung/scala/builderpattern/SafeGuitarBuilder.scala diff --git a/scala-core-8/src/main/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDates.scala b/scala-core/scala-core-8/src/main/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDates.scala similarity index 100% rename from scala-core-8/src/main/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDates.scala rename to scala-core/scala-core-8/src/main/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDates.scala diff --git a/scala-core-8/src/main/scala-2/com/baeldung/scala/duration/JavaToScalaDuration.scala b/scala-core/scala-core-8/src/main/scala-2/com/baeldung/scala/duration/JavaToScalaDuration.scala similarity index 100% rename from scala-core-8/src/main/scala-2/com/baeldung/scala/duration/JavaToScalaDuration.scala rename to scala-core/scala-core-8/src/main/scala-2/com/baeldung/scala/duration/JavaToScalaDuration.scala diff --git a/scala-core-8/src/main/scala-2/com/baeldung/scala/macros/GenericMacros.scala b/scala-core/scala-core-8/src/main/scala-2/com/baeldung/scala/macros/GenericMacros.scala similarity index 100% rename from scala-core-8/src/main/scala-2/com/baeldung/scala/macros/GenericMacros.scala rename to scala-core/scala-core-8/src/main/scala-2/com/baeldung/scala/macros/GenericMacros.scala diff --git a/scala-core-8/src/main/scala-2/com/baeldung/scala/macros/OddEvenMacros.scala b/scala-core/scala-core-8/src/main/scala-2/com/baeldung/scala/macros/OddEvenMacros.scala similarity index 100% rename from scala-core-8/src/main/scala-2/com/baeldung/scala/macros/OddEvenMacros.scala rename to scala-core/scala-core-8/src/main/scala-2/com/baeldung/scala/macros/OddEvenMacros.scala diff --git a/scala-core-8/src/main/scala-2/com/baeldung/scala/reverselists/ListReverser.scala b/scala-core/scala-core-8/src/main/scala-2/com/baeldung/scala/reverselists/ListReverser.scala similarity index 100% rename from scala-core-8/src/main/scala-2/com/baeldung/scala/reverselists/ListReverser.scala rename to scala-core/scala-core-8/src/main/scala-2/com/baeldung/scala/reverselists/ListReverser.scala diff --git a/scala-core-8/src/test/scala-2/com/baeldung/scala/builderpattern/GuitarSpec.scala b/scala-core/scala-core-8/src/test/scala-2/com/baeldung/scala/builderpattern/GuitarSpec.scala similarity index 100% rename from scala-core-8/src/test/scala-2/com/baeldung/scala/builderpattern/GuitarSpec.scala rename to scala-core/scala-core-8/src/test/scala-2/com/baeldung/scala/builderpattern/GuitarSpec.scala diff --git a/scala-core-8/src/test/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDatesTest.scala b/scala-core/scala-core-8/src/test/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDatesTest.scala similarity index 100% rename from scala-core-8/src/test/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDatesTest.scala rename to scala-core/scala-core-8/src/test/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDatesTest.scala diff --git a/scala-core-8/src/test/scala-2/com/baeldung/scala/duration/DurationTest.scala b/scala-core/scala-core-8/src/test/scala-2/com/baeldung/scala/duration/DurationTest.scala similarity index 100% rename from scala-core-8/src/test/scala-2/com/baeldung/scala/duration/DurationTest.scala rename to scala-core/scala-core-8/src/test/scala-2/com/baeldung/scala/duration/DurationTest.scala diff --git a/scala-core-8/src/test/scala-2/com/baeldung/scala/either/EitherTest.scala b/scala-core/scala-core-8/src/test/scala-2/com/baeldung/scala/either/EitherTest.scala similarity index 100% rename from scala-core-8/src/test/scala-2/com/baeldung/scala/either/EitherTest.scala rename to scala-core/scala-core-8/src/test/scala-2/com/baeldung/scala/either/EitherTest.scala diff --git a/scala-core-8/src/test/scala-2/com/baeldung/scala/macros/GenericMacrosTest.scala b/scala-core/scala-core-8/src/test/scala-2/com/baeldung/scala/macros/GenericMacrosTest.scala similarity index 100% rename from scala-core-8/src/test/scala-2/com/baeldung/scala/macros/GenericMacrosTest.scala rename to scala-core/scala-core-8/src/test/scala-2/com/baeldung/scala/macros/GenericMacrosTest.scala diff --git a/scala-core-8/src/test/scala-2/com/baeldung/scala/macros/OddEvenMacrosTest.scala b/scala-core/scala-core-8/src/test/scala-2/com/baeldung/scala/macros/OddEvenMacrosTest.scala similarity index 100% rename from scala-core-8/src/test/scala-2/com/baeldung/scala/macros/OddEvenMacrosTest.scala rename to scala-core/scala-core-8/src/test/scala-2/com/baeldung/scala/macros/OddEvenMacrosTest.scala diff --git a/scala-core-8/src/test/scala-2/com/baeldung/scala/reverselists/ListReverserSpec.scala b/scala-core/scala-core-8/src/test/scala-2/com/baeldung/scala/reverselists/ListReverserSpec.scala similarity index 100% rename from scala-core-8/src/test/scala-2/com/baeldung/scala/reverselists/ListReverserSpec.scala rename to scala-core/scala-core-8/src/test/scala-2/com/baeldung/scala/reverselists/ListReverserSpec.scala diff --git a/scala-core-8/src/test/scala/com/baeldung/scala/highorderfunctions/HighOrderFunctionsUnitTest.scala b/scala-core/scala-core-8/src/test/scala/com/baeldung/scala/highorderfunctions/HighOrderFunctionsUnitTest.scala similarity index 100% rename from scala-core-8/src/test/scala/com/baeldung/scala/highorderfunctions/HighOrderFunctionsUnitTest.scala rename to scala-core/scala-core-8/src/test/scala/com/baeldung/scala/highorderfunctions/HighOrderFunctionsUnitTest.scala diff --git a/scala-core-fp/README.md b/scala-core/scala-core-fp/README.md similarity index 100% rename from scala-core-fp/README.md rename to scala-core/scala-core-fp/README.md diff --git a/scala-core-fp/src/main/scala-2/com/baeldung/scala/caseobjectsvsenums/CurrencyADT.scala b/scala-core/scala-core-fp/src/main/scala-2/com/baeldung/scala/caseobjectsvsenums/CurrencyADT.scala similarity index 100% rename from scala-core-fp/src/main/scala-2/com/baeldung/scala/caseobjectsvsenums/CurrencyADT.scala rename to scala-core/scala-core-fp/src/main/scala-2/com/baeldung/scala/caseobjectsvsenums/CurrencyADT.scala diff --git a/scala-core-fp/src/main/scala-2/com/baeldung/scala/caseobjectsvsenums/CurrencyEnum.scala b/scala-core/scala-core-fp/src/main/scala-2/com/baeldung/scala/caseobjectsvsenums/CurrencyEnum.scala similarity index 100% rename from scala-core-fp/src/main/scala-2/com/baeldung/scala/caseobjectsvsenums/CurrencyEnum.scala rename to scala-core/scala-core-fp/src/main/scala-2/com/baeldung/scala/caseobjectsvsenums/CurrencyEnum.scala diff --git a/scala-core-fp/src/main/scala-2/com/baeldung/scala/firstclassfunctions/AnonymousFunctionInHOF.scala b/scala-core/scala-core-fp/src/main/scala-2/com/baeldung/scala/firstclassfunctions/AnonymousFunctionInHOF.scala similarity index 100% rename from scala-core-fp/src/main/scala-2/com/baeldung/scala/firstclassfunctions/AnonymousFunctionInHOF.scala rename to scala-core/scala-core-fp/src/main/scala-2/com/baeldung/scala/firstclassfunctions/AnonymousFunctionInHOF.scala diff --git a/scala-core-fp/src/main/scala-2/com/baeldung/scala/firstclassfunctions/Closure.scala b/scala-core/scala-core-fp/src/main/scala-2/com/baeldung/scala/firstclassfunctions/Closure.scala similarity index 100% rename from scala-core-fp/src/main/scala-2/com/baeldung/scala/firstclassfunctions/Closure.scala rename to scala-core/scala-core-fp/src/main/scala-2/com/baeldung/scala/firstclassfunctions/Closure.scala diff --git a/scala-core-fp/src/main/scala-2/com/baeldung/scala/firstclassfunctions/Currying.scala b/scala-core/scala-core-fp/src/main/scala-2/com/baeldung/scala/firstclassfunctions/Currying.scala similarity index 100% rename from scala-core-fp/src/main/scala-2/com/baeldung/scala/firstclassfunctions/Currying.scala rename to scala-core/scala-core-fp/src/main/scala-2/com/baeldung/scala/firstclassfunctions/Currying.scala diff --git a/scala-core-fp/src/main/scala-2/com/baeldung/scala/firstclassfunctions/FunctionAsArgumentInHOF.scala b/scala-core/scala-core-fp/src/main/scala-2/com/baeldung/scala/firstclassfunctions/FunctionAsArgumentInHOF.scala similarity index 100% rename from scala-core-fp/src/main/scala-2/com/baeldung/scala/firstclassfunctions/FunctionAsArgumentInHOF.scala rename to scala-core/scala-core-fp/src/main/scala-2/com/baeldung/scala/firstclassfunctions/FunctionAsArgumentInHOF.scala diff --git a/scala-core-fp/src/main/scala-2/com/baeldung/scala/firstclassfunctions/FunctionAsResultInHOF.scala b/scala-core/scala-core-fp/src/main/scala-2/com/baeldung/scala/firstclassfunctions/FunctionAsResultInHOF.scala similarity index 100% rename from scala-core-fp/src/main/scala-2/com/baeldung/scala/firstclassfunctions/FunctionAsResultInHOF.scala rename to scala-core/scala-core-fp/src/main/scala-2/com/baeldung/scala/firstclassfunctions/FunctionAsResultInHOF.scala diff --git a/scala-core-fp/src/main/scala-2/com/baeldung/scala/firstclassfunctions/PartiallyAppliedFunction.scala b/scala-core/scala-core-fp/src/main/scala-2/com/baeldung/scala/firstclassfunctions/PartiallyAppliedFunction.scala similarity index 100% rename from scala-core-fp/src/main/scala-2/com/baeldung/scala/firstclassfunctions/PartiallyAppliedFunction.scala rename to scala-core/scala-core-fp/src/main/scala-2/com/baeldung/scala/firstclassfunctions/PartiallyAppliedFunction.scala diff --git a/scala-core-fp/src/main/scala-2/com/baeldung/scala/foldvsreduce/FoldLeftVsReduceLeft.scala b/scala-core/scala-core-fp/src/main/scala-2/com/baeldung/scala/foldvsreduce/FoldLeftVsReduceLeft.scala similarity index 100% rename from scala-core-fp/src/main/scala-2/com/baeldung/scala/foldvsreduce/FoldLeftVsReduceLeft.scala rename to scala-core/scala-core-fp/src/main/scala-2/com/baeldung/scala/foldvsreduce/FoldLeftVsReduceLeft.scala diff --git a/scala-core-fp/src/main/scala-2/com/baeldung/scala/monad/LazyMonad.scala b/scala-core/scala-core-fp/src/main/scala-2/com/baeldung/scala/monad/LazyMonad.scala similarity index 100% rename from scala-core-fp/src/main/scala-2/com/baeldung/scala/monad/LazyMonad.scala rename to scala-core/scala-core-fp/src/main/scala-2/com/baeldung/scala/monad/LazyMonad.scala diff --git a/scala-core-fp/src/main/scala-2/com/baeldung/scala/monoid/ListMonoidInstance.scala b/scala-core/scala-core-fp/src/main/scala-2/com/baeldung/scala/monoid/ListMonoidInstance.scala similarity index 100% rename from scala-core-fp/src/main/scala-2/com/baeldung/scala/monoid/ListMonoidInstance.scala rename to scala-core/scala-core-fp/src/main/scala-2/com/baeldung/scala/monoid/ListMonoidInstance.scala diff --git a/scala-core-fp/src/main/scala-2/com/baeldung/scala/monoid/MapMonoidInstance.scala b/scala-core/scala-core-fp/src/main/scala-2/com/baeldung/scala/monoid/MapMonoidInstance.scala similarity index 100% rename from scala-core-fp/src/main/scala-2/com/baeldung/scala/monoid/MapMonoidInstance.scala rename to scala-core/scala-core-fp/src/main/scala-2/com/baeldung/scala/monoid/MapMonoidInstance.scala diff --git a/scala-core-fp/src/main/scala-2/com/baeldung/scala/monoid/Monoid.scala b/scala-core/scala-core-fp/src/main/scala-2/com/baeldung/scala/monoid/Monoid.scala similarity index 100% rename from scala-core-fp/src/main/scala-2/com/baeldung/scala/monoid/Monoid.scala rename to scala-core/scala-core-fp/src/main/scala-2/com/baeldung/scala/monoid/Monoid.scala diff --git a/scala-core-fp/src/main/scala-2/com/baeldung/scala/tagless/TaglessFinal.scala b/scala-core/scala-core-fp/src/main/scala-2/com/baeldung/scala/tagless/TaglessFinal.scala similarity index 100% rename from scala-core-fp/src/main/scala-2/com/baeldung/scala/tagless/TaglessFinal.scala rename to scala-core/scala-core-fp/src/main/scala-2/com/baeldung/scala/tagless/TaglessFinal.scala diff --git a/scala-core-fp/src/main/scala-2/com/baeldung/scala/typeclasses/TypeClassExample.scala b/scala-core/scala-core-fp/src/main/scala-2/com/baeldung/scala/typeclasses/TypeClassExample.scala similarity index 100% rename from scala-core-fp/src/main/scala-2/com/baeldung/scala/typeclasses/TypeClassExample.scala rename to scala-core/scala-core-fp/src/main/scala-2/com/baeldung/scala/typeclasses/TypeClassExample.scala diff --git a/scala-core-fp/src/test/scala-2/com/baeldung/scala/caseobjectsvsenums/CurrencyAdtUnitTest.scala b/scala-core/scala-core-fp/src/test/scala-2/com/baeldung/scala/caseobjectsvsenums/CurrencyAdtUnitTest.scala similarity index 100% rename from scala-core-fp/src/test/scala-2/com/baeldung/scala/caseobjectsvsenums/CurrencyAdtUnitTest.scala rename to scala-core/scala-core-fp/src/test/scala-2/com/baeldung/scala/caseobjectsvsenums/CurrencyAdtUnitTest.scala diff --git a/scala-core-fp/src/test/scala-2/com/baeldung/scala/caseobjectsvsenums/CurrencyEnumUnitTest.scala b/scala-core/scala-core-fp/src/test/scala-2/com/baeldung/scala/caseobjectsvsenums/CurrencyEnumUnitTest.scala similarity index 100% rename from scala-core-fp/src/test/scala-2/com/baeldung/scala/caseobjectsvsenums/CurrencyEnumUnitTest.scala rename to scala-core/scala-core-fp/src/test/scala-2/com/baeldung/scala/caseobjectsvsenums/CurrencyEnumUnitTest.scala diff --git a/scala-core-fp/src/test/scala-2/com/baeldung/scala/currying/CurryingUnitTest.scala b/scala-core/scala-core-fp/src/test/scala-2/com/baeldung/scala/currying/CurryingUnitTest.scala similarity index 100% rename from scala-core-fp/src/test/scala-2/com/baeldung/scala/currying/CurryingUnitTest.scala rename to scala-core/scala-core-fp/src/test/scala-2/com/baeldung/scala/currying/CurryingUnitTest.scala diff --git a/scala-core-fp/src/test/scala-2/com/baeldung/scala/firstclassfunctions/AnonymousFunctionInHOFUnitTest.scala b/scala-core/scala-core-fp/src/test/scala-2/com/baeldung/scala/firstclassfunctions/AnonymousFunctionInHOFUnitTest.scala similarity index 100% rename from scala-core-fp/src/test/scala-2/com/baeldung/scala/firstclassfunctions/AnonymousFunctionInHOFUnitTest.scala rename to scala-core/scala-core-fp/src/test/scala-2/com/baeldung/scala/firstclassfunctions/AnonymousFunctionInHOFUnitTest.scala diff --git a/scala-core-fp/src/test/scala-2/com/baeldung/scala/firstclassfunctions/ClosureUnitTest.scala b/scala-core/scala-core-fp/src/test/scala-2/com/baeldung/scala/firstclassfunctions/ClosureUnitTest.scala similarity index 100% rename from scala-core-fp/src/test/scala-2/com/baeldung/scala/firstclassfunctions/ClosureUnitTest.scala rename to scala-core/scala-core-fp/src/test/scala-2/com/baeldung/scala/firstclassfunctions/ClosureUnitTest.scala diff --git a/scala-core-fp/src/test/scala-2/com/baeldung/scala/firstclassfunctions/CurryingUnitTest.scala b/scala-core/scala-core-fp/src/test/scala-2/com/baeldung/scala/firstclassfunctions/CurryingUnitTest.scala similarity index 100% rename from scala-core-fp/src/test/scala-2/com/baeldung/scala/firstclassfunctions/CurryingUnitTest.scala rename to scala-core/scala-core-fp/src/test/scala-2/com/baeldung/scala/firstclassfunctions/CurryingUnitTest.scala diff --git a/scala-core-fp/src/test/scala-2/com/baeldung/scala/firstclassfunctions/FunctionAsArgumentInHOFUnitTest.scala b/scala-core/scala-core-fp/src/test/scala-2/com/baeldung/scala/firstclassfunctions/FunctionAsArgumentInHOFUnitTest.scala similarity index 100% rename from scala-core-fp/src/test/scala-2/com/baeldung/scala/firstclassfunctions/FunctionAsArgumentInHOFUnitTest.scala rename to scala-core/scala-core-fp/src/test/scala-2/com/baeldung/scala/firstclassfunctions/FunctionAsArgumentInHOFUnitTest.scala diff --git a/scala-core-fp/src/test/scala-2/com/baeldung/scala/firstclassfunctions/FunctionAsResultInHOFUnitTest.scala b/scala-core/scala-core-fp/src/test/scala-2/com/baeldung/scala/firstclassfunctions/FunctionAsResultInHOFUnitTest.scala similarity index 100% rename from scala-core-fp/src/test/scala-2/com/baeldung/scala/firstclassfunctions/FunctionAsResultInHOFUnitTest.scala rename to scala-core/scala-core-fp/src/test/scala-2/com/baeldung/scala/firstclassfunctions/FunctionAsResultInHOFUnitTest.scala diff --git a/scala-core-fp/src/test/scala-2/com/baeldung/scala/firstclassfunctions/PartiallyAppliedFunctionUnitTest.scala b/scala-core/scala-core-fp/src/test/scala-2/com/baeldung/scala/firstclassfunctions/PartiallyAppliedFunctionUnitTest.scala similarity index 100% rename from scala-core-fp/src/test/scala-2/com/baeldung/scala/firstclassfunctions/PartiallyAppliedFunctionUnitTest.scala rename to scala-core/scala-core-fp/src/test/scala-2/com/baeldung/scala/firstclassfunctions/PartiallyAppliedFunctionUnitTest.scala diff --git a/scala-core-fp/src/test/scala-2/com/baeldung/scala/foldvsreduce/FoldLeftVsReduceLeftUnitTest.scala b/scala-core/scala-core-fp/src/test/scala-2/com/baeldung/scala/foldvsreduce/FoldLeftVsReduceLeftUnitTest.scala similarity index 100% rename from scala-core-fp/src/test/scala-2/com/baeldung/scala/foldvsreduce/FoldLeftVsReduceLeftUnitTest.scala rename to scala-core/scala-core-fp/src/test/scala-2/com/baeldung/scala/foldvsreduce/FoldLeftVsReduceLeftUnitTest.scala diff --git a/scala-core-fp/src/test/scala-2/com/baeldung/scala/functioncomposition/FunctionCompositionTest.scala b/scala-core/scala-core-fp/src/test/scala-2/com/baeldung/scala/functioncomposition/FunctionCompositionTest.scala similarity index 100% rename from scala-core-fp/src/test/scala-2/com/baeldung/scala/functioncomposition/FunctionCompositionTest.scala rename to scala-core/scala-core-fp/src/test/scala-2/com/baeldung/scala/functioncomposition/FunctionCompositionTest.scala diff --git a/scala-core-fp/src/test/scala-2/com/baeldung/scala/functor/FunctorUnitTest.scala b/scala-core/scala-core-fp/src/test/scala-2/com/baeldung/scala/functor/FunctorUnitTest.scala similarity index 100% rename from scala-core-fp/src/test/scala-2/com/baeldung/scala/functor/FunctorUnitTest.scala rename to scala-core/scala-core-fp/src/test/scala-2/com/baeldung/scala/functor/FunctorUnitTest.scala diff --git a/scala-core-fp/src/test/scala-2/com/baeldung/scala/monad/LazyMonadUnitTest.scala b/scala-core/scala-core-fp/src/test/scala-2/com/baeldung/scala/monad/LazyMonadUnitTest.scala similarity index 100% rename from scala-core-fp/src/test/scala-2/com/baeldung/scala/monad/LazyMonadUnitTest.scala rename to scala-core/scala-core-fp/src/test/scala-2/com/baeldung/scala/monad/LazyMonadUnitTest.scala diff --git a/scala-core-fp/src/test/scala-2/com/baeldung/scala/monoid/MapMonoidUnitTest.scala b/scala-core/scala-core-fp/src/test/scala-2/com/baeldung/scala/monoid/MapMonoidUnitTest.scala similarity index 100% rename from scala-core-fp/src/test/scala-2/com/baeldung/scala/monoid/MapMonoidUnitTest.scala rename to scala-core/scala-core-fp/src/test/scala-2/com/baeldung/scala/monoid/MapMonoidUnitTest.scala diff --git a/scala-core-fp/src/test/scala-2/com/baeldung/scala/monoid/WordFrequencyCounterUnitTest.scala b/scala-core/scala-core-fp/src/test/scala-2/com/baeldung/scala/monoid/WordFrequencyCounterUnitTest.scala similarity index 100% rename from scala-core-fp/src/test/scala-2/com/baeldung/scala/monoid/WordFrequencyCounterUnitTest.scala rename to scala-core/scala-core-fp/src/test/scala-2/com/baeldung/scala/monoid/WordFrequencyCounterUnitTest.scala diff --git a/scala-core-fp/src/test/scala-2/com/baeldung/scala/tagless/TaglessFinalUnitTest.scala b/scala-core/scala-core-fp/src/test/scala-2/com/baeldung/scala/tagless/TaglessFinalUnitTest.scala similarity index 100% rename from scala-core-fp/src/test/scala-2/com/baeldung/scala/tagless/TaglessFinalUnitTest.scala rename to scala-core/scala-core-fp/src/test/scala-2/com/baeldung/scala/tagless/TaglessFinalUnitTest.scala diff --git a/scala-core-fp/src/test/scala-2/com/baeldung/scala/typeclasses/TypeClassExampleUnitTest.scala b/scala-core/scala-core-fp/src/test/scala-2/com/baeldung/scala/typeclasses/TypeClassExampleUnitTest.scala similarity index 100% rename from scala-core-fp/src/test/scala-2/com/baeldung/scala/typeclasses/TypeClassExampleUnitTest.scala rename to scala-core/scala-core-fp/src/test/scala-2/com/baeldung/scala/typeclasses/TypeClassExampleUnitTest.scala diff --git a/scala-core-io/README.md b/scala-core/scala-core-io/README.md similarity index 100% rename from scala-core-io/README.md rename to scala-core/scala-core-io/README.md diff --git a/scala-core-io/src/main/scala-2/com/baeldung/scala/FileDeletion.scala b/scala-core/scala-core-io/src/main/scala-2/com/baeldung/scala/FileDeletion.scala similarity index 100% rename from scala-core-io/src/main/scala-2/com/baeldung/scala/FileDeletion.scala rename to scala-core/scala-core-io/src/main/scala-2/com/baeldung/scala/FileDeletion.scala diff --git a/scala-core-io/src/test/resources/com.baeldung.scala.io/four_lines_string.txt b/scala-core/scala-core-io/src/test/resources/com.baeldung.scala.io/four_lines_string.txt similarity index 100% rename from scala-core-io/src/test/resources/com.baeldung.scala.io/four_lines_string.txt rename to scala-core/scala-core-io/src/test/resources/com.baeldung.scala.io/four_lines_string.txt diff --git a/scala-core-io/src/test/resources/com.baeldung.scala.io/one_line_string.txt b/scala-core/scala-core-io/src/test/resources/com.baeldung.scala.io/one_line_string.txt similarity index 100% rename from scala-core-io/src/test/resources/com.baeldung.scala.io/one_line_string.txt rename to scala-core/scala-core-io/src/test/resources/com.baeldung.scala.io/one_line_string.txt diff --git a/scala-core-io/src/test/scala-2/com/baeldung/scala/io/FileDeletionTest.scala b/scala-core/scala-core-io/src/test/scala-2/com/baeldung/scala/io/FileDeletionTest.scala similarity index 100% rename from scala-core-io/src/test/scala-2/com/baeldung/scala/io/FileDeletionTest.scala rename to scala-core/scala-core-io/src/test/scala-2/com/baeldung/scala/io/FileDeletionTest.scala diff --git a/scala-core-io/src/test/scala-2/com/baeldung/scala/io/SourceUnitTest.scala b/scala-core/scala-core-io/src/test/scala-2/com/baeldung/scala/io/SourceUnitTest.scala similarity index 100% rename from scala-core-io/src/test/scala-2/com/baeldung/scala/io/SourceUnitTest.scala rename to scala-core/scala-core-io/src/test/scala-2/com/baeldung/scala/io/SourceUnitTest.scala diff --git a/scala-core-oop/README.md b/scala-core/scala-core-oop/README.md similarity index 100% rename from scala-core-oop/README.md rename to scala-core/scala-core-oop/README.md diff --git a/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/contextbound.scala b/scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/contextbound.scala similarity index 100% rename from scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/contextbound.scala rename to scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/contextbound.scala diff --git a/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/conversion.scala b/scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/conversion.scala similarity index 100% rename from scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/conversion.scala rename to scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/conversion.scala diff --git a/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/implicitconversion.scala b/scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/implicitconversion.scala similarity index 100% rename from scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/implicitconversion.scala rename to scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/implicitconversion.scala diff --git a/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/implicitobject.scala b/scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/implicitobject.scala similarity index 100% rename from scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/implicitobject.scala rename to scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/implicitobject.scala diff --git a/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/implicitvalues.scala b/scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/implicitvalues.scala similarity index 100% rename from scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/implicitvalues.scala rename to scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/implicitvalues.scala diff --git a/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/multipleparameterlists.scala b/scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/multipleparameterlists.scala similarity index 100% rename from scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/multipleparameterlists.scala rename to scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/multipleparameterlists.scala diff --git a/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/richobject.scala b/scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/richobject.scala similarity index 100% rename from scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/richobject.scala rename to scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/richobject.scala diff --git a/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/viewbound.scala b/scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/viewbound.scala similarity index 100% rename from scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/viewbound.scala rename to scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/viewbound.scala diff --git a/scala-core-oop/src/main/scala-2/com/baeldung/scala/caseobject/ObjectExample.scala b/scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/caseobject/ObjectExample.scala similarity index 100% rename from scala-core-oop/src/main/scala-2/com/baeldung/scala/caseobject/ObjectExample.scala rename to scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/caseobject/ObjectExample.scala diff --git a/scala-core-oop/src/main/scala-2/com/baeldung/scala/classcompositionwithtraits/CarTraits.scala b/scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/classcompositionwithtraits/CarTraits.scala similarity index 100% rename from scala-core-oop/src/main/scala-2/com/baeldung/scala/classcompositionwithtraits/CarTraits.scala rename to scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/classcompositionwithtraits/CarTraits.scala diff --git a/scala-core-oop/src/main/scala-2/com/baeldung/scala/classvsobject/ClassExamples.scala b/scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/classvsobject/ClassExamples.scala similarity index 100% rename from scala-core-oop/src/main/scala-2/com/baeldung/scala/classvsobject/ClassExamples.scala rename to scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/classvsobject/ClassExamples.scala diff --git a/scala-core-oop/src/main/scala-2/com/baeldung/scala/classvsobject/ObjectExamples.scala b/scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/classvsobject/ObjectExamples.scala similarity index 100% rename from scala-core-oop/src/main/scala-2/com/baeldung/scala/classvsobject/ObjectExamples.scala rename to scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/classvsobject/ObjectExamples.scala diff --git a/scala-core-oop/src/main/scala-2/com/baeldung/scala/enumerations/Fingers.scala b/scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/enumerations/Fingers.scala similarity index 100% rename from scala-core-oop/src/main/scala-2/com/baeldung/scala/enumerations/Fingers.scala rename to scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/enumerations/Fingers.scala diff --git a/scala-core-oop/src/main/scala-2/com/baeldung/scala/enumerations/FingersOperation.scala b/scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/enumerations/FingersOperation.scala similarity index 100% rename from scala-core-oop/src/main/scala-2/com/baeldung/scala/enumerations/FingersOperation.scala rename to scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/enumerations/FingersOperation.scala diff --git a/scala-core-oop/src/main/scala-2/com/baeldung/scala/generics/GenericsIntro.scala b/scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/generics/GenericsIntro.scala similarity index 100% rename from scala-core-oop/src/main/scala-2/com/baeldung/scala/generics/GenericsIntro.scala rename to scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/generics/GenericsIntro.scala diff --git a/scala-core-oop/src/main/scala-2/com/baeldung/scala/generics/Queue.scala b/scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/generics/Queue.scala similarity index 100% rename from scala-core-oop/src/main/scala-2/com/baeldung/scala/generics/Queue.scala rename to scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/generics/Queue.scala diff --git a/scala-core-oop/src/main/scala-2/com/baeldung/scala/lifting/Examples.scala b/scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/lifting/Examples.scala similarity index 100% rename from scala-core-oop/src/main/scala-2/com/baeldung/scala/lifting/Examples.scala rename to scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/lifting/Examples.scala diff --git a/scala-core-oop/src/main/scala-2/com/baeldung/scala/oopinscala/OopConcepts.scala b/scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/oopinscala/OopConcepts.scala similarity index 100% rename from scala-core-oop/src/main/scala-2/com/baeldung/scala/oopinscala/OopConcepts.scala rename to scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/oopinscala/OopConcepts.scala diff --git a/scala-core-oop/src/main/scala-2/com/baeldung/scala/oopinscala/polymorphism/PolymorphismExamples.scala b/scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/oopinscala/polymorphism/PolymorphismExamples.scala similarity index 100% rename from scala-core-oop/src/main/scala-2/com/baeldung/scala/oopinscala/polymorphism/PolymorphismExamples.scala rename to scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/oopinscala/polymorphism/PolymorphismExamples.scala diff --git a/scala-core-oop/src/main/scala-2/com/baeldung/scala/variance/Variance.scala b/scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/variance/Variance.scala similarity index 100% rename from scala-core-oop/src/main/scala-2/com/baeldung/scala/variance/Variance.scala rename to scala-core/scala-core-oop/src/main/scala-2/com/baeldung/scala/variance/Variance.scala diff --git a/scala-core-oop/src/test/scala-2/com/baeldung/scala/caseobject/ObjectExampleUnitTest.scala b/scala-core/scala-core-oop/src/test/scala-2/com/baeldung/scala/caseobject/ObjectExampleUnitTest.scala similarity index 100% rename from scala-core-oop/src/test/scala-2/com/baeldung/scala/caseobject/ObjectExampleUnitTest.scala rename to scala-core/scala-core-oop/src/test/scala-2/com/baeldung/scala/caseobject/ObjectExampleUnitTest.scala diff --git a/scala-core-oop/src/test/scala-2/com/baeldung/scala/classcompositionwithtraits/CarTraitsUnitTest.scala b/scala-core/scala-core-oop/src/test/scala-2/com/baeldung/scala/classcompositionwithtraits/CarTraitsUnitTest.scala similarity index 100% rename from scala-core-oop/src/test/scala-2/com/baeldung/scala/classcompositionwithtraits/CarTraitsUnitTest.scala rename to scala-core/scala-core-oop/src/test/scala-2/com/baeldung/scala/classcompositionwithtraits/CarTraitsUnitTest.scala diff --git a/scala-core-oop/src/test/scala-2/com/baeldung/scala/classvsobject/ClassExamplesUnitTest.scala b/scala-core/scala-core-oop/src/test/scala-2/com/baeldung/scala/classvsobject/ClassExamplesUnitTest.scala similarity index 100% rename from scala-core-oop/src/test/scala-2/com/baeldung/scala/classvsobject/ClassExamplesUnitTest.scala rename to scala-core/scala-core-oop/src/test/scala-2/com/baeldung/scala/classvsobject/ClassExamplesUnitTest.scala diff --git a/scala-core-oop/src/test/scala-2/com/baeldung/scala/classvsobject/ObjectExamplesUnitTest.scala b/scala-core/scala-core-oop/src/test/scala-2/com/baeldung/scala/classvsobject/ObjectExamplesUnitTest.scala similarity index 100% rename from scala-core-oop/src/test/scala-2/com/baeldung/scala/classvsobject/ObjectExamplesUnitTest.scala rename to scala-core/scala-core-oop/src/test/scala-2/com/baeldung/scala/classvsobject/ObjectExamplesUnitTest.scala diff --git a/scala-core-oop/src/test/scala-2/com/baeldung/scala/enumerations/FingersOperationUnitTest.scala b/scala-core/scala-core-oop/src/test/scala-2/com/baeldung/scala/enumerations/FingersOperationUnitTest.scala similarity index 100% rename from scala-core-oop/src/test/scala-2/com/baeldung/scala/enumerations/FingersOperationUnitTest.scala rename to scala-core/scala-core-oop/src/test/scala-2/com/baeldung/scala/enumerations/FingersOperationUnitTest.scala diff --git a/scala-core-oop/src/test/scala-2/com/baeldung/scala/lifting/ExamplesUnitTest.scala b/scala-core/scala-core-oop/src/test/scala-2/com/baeldung/scala/lifting/ExamplesUnitTest.scala similarity index 100% rename from scala-core-oop/src/test/scala-2/com/baeldung/scala/lifting/ExamplesUnitTest.scala rename to scala-core/scala-core-oop/src/test/scala-2/com/baeldung/scala/lifting/ExamplesUnitTest.scala diff --git a/scala-core-oop/src/test/scala-2/com/baeldung/scala/oopinscala/OopConceptsUnitTest.scala b/scala-core/scala-core-oop/src/test/scala-2/com/baeldung/scala/oopinscala/OopConceptsUnitTest.scala similarity index 100% rename from scala-core-oop/src/test/scala-2/com/baeldung/scala/oopinscala/OopConceptsUnitTest.scala rename to scala-core/scala-core-oop/src/test/scala-2/com/baeldung/scala/oopinscala/OopConceptsUnitTest.scala diff --git a/scala-core-oop/src/test/scala-2/com/baeldung/scala/oopinscala/polymorphism/PolymorphismExamplesUnitTest.scala b/scala-core/scala-core-oop/src/test/scala-2/com/baeldung/scala/oopinscala/polymorphism/PolymorphismExamplesUnitTest.scala similarity index 100% rename from scala-core-oop/src/test/scala-2/com/baeldung/scala/oopinscala/polymorphism/PolymorphismExamplesUnitTest.scala rename to scala-core/scala-core-oop/src/test/scala-2/com/baeldung/scala/oopinscala/polymorphism/PolymorphismExamplesUnitTest.scala diff --git a/scala-core-oop/src/test/scala-2/com/baeldung/scala/variance/VarianceUnitTest.scala b/scala-core/scala-core-oop/src/test/scala-2/com/baeldung/scala/variance/VarianceUnitTest.scala similarity index 100% rename from scala-core-oop/src/test/scala-2/com/baeldung/scala/variance/VarianceUnitTest.scala rename to scala-core/scala-core-oop/src/test/scala-2/com/baeldung/scala/variance/VarianceUnitTest.scala diff --git a/scala-lang/README.md b/scala-lang/scala-lang-1/README.md similarity index 100% rename from scala-lang/README.md rename to scala-lang/scala-lang-1/README.md diff --git a/scala-lang/project/build.properties b/scala-lang/scala-lang-1/project/build.properties similarity index 100% rename from scala-lang/project/build.properties rename to scala-lang/scala-lang-1/project/build.properties diff --git a/scala-lang/src/main/scala-2/com/baeldung/scala/OuterStackedSample.scala b/scala-lang/scala-lang-1/src/main/scala-2/com/baeldung/scala/OuterStackedSample.scala similarity index 100% rename from scala-lang/src/main/scala-2/com/baeldung/scala/OuterStackedSample.scala rename to scala-lang/scala-lang-1/src/main/scala-2/com/baeldung/scala/OuterStackedSample.scala diff --git a/scala-lang/src/main/scala-2/com/baeldung/scala/callbynameandvalue/CallByNameCallByValue.scala b/scala-lang/scala-lang-1/src/main/scala-2/com/baeldung/scala/callbynameandvalue/CallByNameCallByValue.scala similarity index 100% rename from scala-lang/src/main/scala-2/com/baeldung/scala/callbynameandvalue/CallByNameCallByValue.scala rename to scala-lang/scala-lang-1/src/main/scala-2/com/baeldung/scala/callbynameandvalue/CallByNameCallByValue.scala diff --git a/scala-lang/src/main/scala-2/com/baeldung/scala/conditional/ScalaConditionalExpressions.scala b/scala-lang/scala-lang-1/src/main/scala-2/com/baeldung/scala/conditional/ScalaConditionalExpressions.scala similarity index 100% rename from scala-lang/src/main/scala-2/com/baeldung/scala/conditional/ScalaConditionalExpressions.scala rename to scala-lang/scala-lang-1/src/main/scala-2/com/baeldung/scala/conditional/ScalaConditionalExpressions.scala diff --git a/scala-lang/src/main/scala-2/com/baeldung/scala/equality/package.scala b/scala-lang/scala-lang-1/src/main/scala-2/com/baeldung/scala/equality/package.scala similarity index 100% rename from scala-lang/src/main/scala-2/com/baeldung/scala/equality/package.scala rename to scala-lang/scala-lang-1/src/main/scala-2/com/baeldung/scala/equality/package.scala diff --git a/scala-lang/src/main/scala-2/com/baeldung/scala/functionsandmethods/FunctionsAndMethods.scala b/scala-lang/scala-lang-1/src/main/scala-2/com/baeldung/scala/functionsandmethods/FunctionsAndMethods.scala similarity index 100% rename from scala-lang/src/main/scala-2/com/baeldung/scala/functionsandmethods/FunctionsAndMethods.scala rename to scala-lang/scala-lang-1/src/main/scala-2/com/baeldung/scala/functionsandmethods/FunctionsAndMethods.scala diff --git a/scala-lang/src/main/scala-2/com/baeldung/scala/mutability/ImmutabilityCar.scala b/scala-lang/scala-lang-1/src/main/scala-2/com/baeldung/scala/mutability/ImmutabilityCar.scala similarity index 100% rename from scala-lang/src/main/scala-2/com/baeldung/scala/mutability/ImmutabilityCar.scala rename to scala-lang/scala-lang-1/src/main/scala-2/com/baeldung/scala/mutability/ImmutabilityCar.scala diff --git a/scala-lang/src/main/scala-2/com/baeldung/scala/operators/ScalaOperators.scala b/scala-lang/scala-lang-1/src/main/scala-2/com/baeldung/scala/operators/ScalaOperators.scala similarity index 100% rename from scala-lang/src/main/scala-2/com/baeldung/scala/operators/ScalaOperators.scala rename to scala-lang/scala-lang-1/src/main/scala-2/com/baeldung/scala/operators/ScalaOperators.scala diff --git a/scala-lang/src/main/scala-2/com/baeldung/scala/packageimport/Importing.scala b/scala-lang/scala-lang-1/src/main/scala-2/com/baeldung/scala/packageimport/Importing.scala similarity index 100% rename from scala-lang/src/main/scala-2/com/baeldung/scala/packageimport/Importing.scala rename to scala-lang/scala-lang-1/src/main/scala-2/com/baeldung/scala/packageimport/Importing.scala diff --git a/scala-lang/src/main/scala-2/com/baeldung/scala/packageimport/InnerStackSample.scala b/scala-lang/scala-lang-1/src/main/scala-2/com/baeldung/scala/packageimport/InnerStackSample.scala similarity index 100% rename from scala-lang/src/main/scala-2/com/baeldung/scala/packageimport/InnerStackSample.scala rename to scala-lang/scala-lang-1/src/main/scala-2/com/baeldung/scala/packageimport/InnerStackSample.scala diff --git a/scala-lang/src/main/scala-2/com/baeldung/scala/packageimport/package.scala b/scala-lang/scala-lang-1/src/main/scala-2/com/baeldung/scala/packageimport/package.scala similarity index 100% rename from scala-lang/src/main/scala-2/com/baeldung/scala/packageimport/package.scala rename to scala-lang/scala-lang-1/src/main/scala-2/com/baeldung/scala/packageimport/package.scala diff --git a/scala-lang/src/main/scala-2/com/baeldung/scala/packageimport/stacking/StackedAccess.scala b/scala-lang/scala-lang-1/src/main/scala-2/com/baeldung/scala/packageimport/stacking/StackedAccess.scala similarity index 100% rename from scala-lang/src/main/scala-2/com/baeldung/scala/packageimport/stacking/StackedAccess.scala rename to scala-lang/scala-lang-1/src/main/scala-2/com/baeldung/scala/packageimport/stacking/StackedAccess.scala diff --git a/scala-lang/src/main/scala-2/com/baeldung/scala/packageimport/stacking/StackedPackage.scala b/scala-lang/scala-lang-1/src/main/scala-2/com/baeldung/scala/packageimport/stacking/StackedPackage.scala similarity index 100% rename from scala-lang/src/main/scala-2/com/baeldung/scala/packageimport/stacking/StackedPackage.scala rename to scala-lang/scala-lang-1/src/main/scala-2/com/baeldung/scala/packageimport/stacking/StackedPackage.scala diff --git a/scala-lang/src/main/scala-2/com/baeldung/scala/packageimport/vehicle/Bicycle.scala b/scala-lang/scala-lang-1/src/main/scala-2/com/baeldung/scala/packageimport/vehicle/Bicycle.scala similarity index 100% rename from scala-lang/src/main/scala-2/com/baeldung/scala/packageimport/vehicle/Bicycle.scala rename to scala-lang/scala-lang-1/src/main/scala-2/com/baeldung/scala/packageimport/vehicle/Bicycle.scala diff --git a/scala-lang/src/main/scala-2/com/baeldung/scala/packageimport/vehicle/Car.scala b/scala-lang/scala-lang-1/src/main/scala-2/com/baeldung/scala/packageimport/vehicle/Car.scala similarity index 100% rename from scala-lang/src/main/scala-2/com/baeldung/scala/packageimport/vehicle/Car.scala rename to scala-lang/scala-lang-1/src/main/scala-2/com/baeldung/scala/packageimport/vehicle/Car.scala diff --git a/scala-lang/src/main/scala-2/com/baeldung/scala/packageimport/vehicle/Vehicle.scala b/scala-lang/scala-lang-1/src/main/scala-2/com/baeldung/scala/packageimport/vehicle/Vehicle.scala similarity index 100% rename from scala-lang/src/main/scala-2/com/baeldung/scala/packageimport/vehicle/Vehicle.scala rename to scala-lang/scala-lang-1/src/main/scala-2/com/baeldung/scala/packageimport/vehicle/Vehicle.scala diff --git a/scala-lang/src/main/scala-2/com/baeldung/scala/typehierarchy/TypeHierarchy.scala b/scala-lang/scala-lang-1/src/main/scala-2/com/baeldung/scala/typehierarchy/TypeHierarchy.scala similarity index 100% rename from scala-lang/src/main/scala-2/com/baeldung/scala/typehierarchy/TypeHierarchy.scala rename to scala-lang/scala-lang-1/src/main/scala-2/com/baeldung/scala/typehierarchy/TypeHierarchy.scala diff --git a/scala-lang/src/main/scala-2/defvarval/LazyValues.scala b/scala-lang/scala-lang-1/src/main/scala-2/defvarval/LazyValues.scala similarity index 100% rename from scala-lang/src/main/scala-2/defvarval/LazyValues.scala rename to scala-lang/scala-lang-1/src/main/scala-2/defvarval/LazyValues.scala diff --git a/scala-lang/src/main/scala-2/defvarval/Methods.scala b/scala-lang/scala-lang-1/src/main/scala-2/defvarval/Methods.scala similarity index 100% rename from scala-lang/src/main/scala-2/defvarval/Methods.scala rename to scala-lang/scala-lang-1/src/main/scala-2/defvarval/Methods.scala diff --git a/scala-lang/src/main/scala-2/defvarval/Values.scala b/scala-lang/scala-lang-1/src/main/scala-2/defvarval/Values.scala similarity index 100% rename from scala-lang/src/main/scala-2/defvarval/Values.scala rename to scala-lang/scala-lang-1/src/main/scala-2/defvarval/Values.scala diff --git a/scala-lang/src/main/scala-2/defvarval/Variables.scala b/scala-lang/scala-lang-1/src/main/scala-2/defvarval/Variables.scala similarity index 100% rename from scala-lang/src/main/scala-2/defvarval/Variables.scala rename to scala-lang/scala-lang-1/src/main/scala-2/defvarval/Variables.scala diff --git a/scala-lang/src/test/scala-2/com/baeldung/scala/callbynameandvalue/CallByNameCallByValueUnitTest.scala b/scala-lang/scala-lang-1/src/test/scala-2/com/baeldung/scala/callbynameandvalue/CallByNameCallByValueUnitTest.scala similarity index 100% rename from scala-lang/src/test/scala-2/com/baeldung/scala/callbynameandvalue/CallByNameCallByValueUnitTest.scala rename to scala-lang/scala-lang-1/src/test/scala-2/com/baeldung/scala/callbynameandvalue/CallByNameCallByValueUnitTest.scala diff --git a/scala-lang/src/test/scala-2/com/baeldung/scala/caseclasses/CaseClassesUnitTest.scala b/scala-lang/scala-lang-1/src/test/scala-2/com/baeldung/scala/caseclasses/CaseClassesUnitTest.scala similarity index 100% rename from scala-lang/src/test/scala-2/com/baeldung/scala/caseclasses/CaseClassesUnitTest.scala rename to scala-lang/scala-lang-1/src/test/scala-2/com/baeldung/scala/caseclasses/CaseClassesUnitTest.scala diff --git a/scala-lang/src/test/scala-2/com/baeldung/scala/conditional/ScalaConditionalExpressionsUnitTest.scala b/scala-lang/scala-lang-1/src/test/scala-2/com/baeldung/scala/conditional/ScalaConditionalExpressionsUnitTest.scala similarity index 100% rename from scala-lang/src/test/scala-2/com/baeldung/scala/conditional/ScalaConditionalExpressionsUnitTest.scala rename to scala-lang/scala-lang-1/src/test/scala-2/com/baeldung/scala/conditional/ScalaConditionalExpressionsUnitTest.scala diff --git a/scala-lang/src/test/scala-2/com/baeldung/scala/equality/EqualityUnitTest.scala b/scala-lang/scala-lang-1/src/test/scala-2/com/baeldung/scala/equality/EqualityUnitTest.scala similarity index 100% rename from scala-lang/src/test/scala-2/com/baeldung/scala/equality/EqualityUnitTest.scala rename to scala-lang/scala-lang-1/src/test/scala-2/com/baeldung/scala/equality/EqualityUnitTest.scala diff --git a/scala-lang/src/test/scala-2/com/baeldung/scala/functionsandmethods/FunctionsAndMethodsUnitTest.scala b/scala-lang/scala-lang-1/src/test/scala-2/com/baeldung/scala/functionsandmethods/FunctionsAndMethodsUnitTest.scala similarity index 100% rename from scala-lang/src/test/scala-2/com/baeldung/scala/functionsandmethods/FunctionsAndMethodsUnitTest.scala rename to scala-lang/scala-lang-1/src/test/scala-2/com/baeldung/scala/functionsandmethods/FunctionsAndMethodsUnitTest.scala diff --git a/scala-lang/src/test/scala-2/com/baeldung/scala/mutability/ImmutabilityCarUnitTest.scala b/scala-lang/scala-lang-1/src/test/scala-2/com/baeldung/scala/mutability/ImmutabilityCarUnitTest.scala similarity index 100% rename from scala-lang/src/test/scala-2/com/baeldung/scala/mutability/ImmutabilityCarUnitTest.scala rename to scala-lang/scala-lang-1/src/test/scala-2/com/baeldung/scala/mutability/ImmutabilityCarUnitTest.scala diff --git a/scala-lang/src/test/scala-2/com/baeldung/scala/mutability/ImmutableCollectionsUnitTest.scala b/scala-lang/scala-lang-1/src/test/scala-2/com/baeldung/scala/mutability/ImmutableCollectionsUnitTest.scala similarity index 100% rename from scala-lang/src/test/scala-2/com/baeldung/scala/mutability/ImmutableCollectionsUnitTest.scala rename to scala-lang/scala-lang-1/src/test/scala-2/com/baeldung/scala/mutability/ImmutableCollectionsUnitTest.scala diff --git a/scala-lang/src/test/scala-2/com/baeldung/scala/mutability/MutableCollectionsUnitTest.scala b/scala-lang/scala-lang-1/src/test/scala-2/com/baeldung/scala/mutability/MutableCollectionsUnitTest.scala similarity index 100% rename from scala-lang/src/test/scala-2/com/baeldung/scala/mutability/MutableCollectionsUnitTest.scala rename to scala-lang/scala-lang-1/src/test/scala-2/com/baeldung/scala/mutability/MutableCollectionsUnitTest.scala diff --git a/scala-lang/src/test/scala-2/com/baeldung/scala/typehierarchy/TypeHierarchyUnitTest.scala b/scala-lang/scala-lang-1/src/test/scala-2/com/baeldung/scala/typehierarchy/TypeHierarchyUnitTest.scala similarity index 100% rename from scala-lang/src/test/scala-2/com/baeldung/scala/typehierarchy/TypeHierarchyUnitTest.scala rename to scala-lang/scala-lang-1/src/test/scala-2/com/baeldung/scala/typehierarchy/TypeHierarchyUnitTest.scala diff --git a/scala-lang-2/README.md b/scala-lang/scala-lang-2/README.md similarity index 100% rename from scala-lang-2/README.md rename to scala-lang/scala-lang-2/README.md diff --git a/scala-lang-2/src/main/scala-2/com/baeldung/scala/inheritance/Hierarchical.scala b/scala-lang/scala-lang-2/src/main/scala-2/com/baeldung/scala/inheritance/Hierarchical.scala similarity index 100% rename from scala-lang-2/src/main/scala-2/com/baeldung/scala/inheritance/Hierarchical.scala rename to scala-lang/scala-lang-2/src/main/scala-2/com/baeldung/scala/inheritance/Hierarchical.scala diff --git a/scala-lang-2/src/main/scala-2/com/baeldung/scala/inheritance/Hybrid.scala b/scala-lang/scala-lang-2/src/main/scala-2/com/baeldung/scala/inheritance/Hybrid.scala similarity index 100% rename from scala-lang-2/src/main/scala-2/com/baeldung/scala/inheritance/Hybrid.scala rename to scala-lang/scala-lang-2/src/main/scala-2/com/baeldung/scala/inheritance/Hybrid.scala diff --git a/scala-lang-2/src/main/scala-2/com/baeldung/scala/inheritance/Multilevel.scala b/scala-lang/scala-lang-2/src/main/scala-2/com/baeldung/scala/inheritance/Multilevel.scala similarity index 100% rename from scala-lang-2/src/main/scala-2/com/baeldung/scala/inheritance/Multilevel.scala rename to scala-lang/scala-lang-2/src/main/scala-2/com/baeldung/scala/inheritance/Multilevel.scala diff --git a/scala-lang-2/src/main/scala-2/com/baeldung/scala/inheritance/Multiple.scala b/scala-lang/scala-lang-2/src/main/scala-2/com/baeldung/scala/inheritance/Multiple.scala similarity index 100% rename from scala-lang-2/src/main/scala-2/com/baeldung/scala/inheritance/Multiple.scala rename to scala-lang/scala-lang-2/src/main/scala-2/com/baeldung/scala/inheritance/Multiple.scala diff --git a/scala-lang-2/src/main/scala-2/com/baeldung/scala/inheritance/Single.scala b/scala-lang/scala-lang-2/src/main/scala-2/com/baeldung/scala/inheritance/Single.scala similarity index 100% rename from scala-lang-2/src/main/scala-2/com/baeldung/scala/inheritance/Single.scala rename to scala-lang/scala-lang-2/src/main/scala-2/com/baeldung/scala/inheritance/Single.scala diff --git a/scala-lang-2/src/main/scala-2/com/baeldung/scala/nested/Factorial.scala b/scala-lang/scala-lang-2/src/main/scala-2/com/baeldung/scala/nested/Factorial.scala similarity index 100% rename from scala-lang-2/src/main/scala-2/com/baeldung/scala/nested/Factorial.scala rename to scala-lang/scala-lang-2/src/main/scala-2/com/baeldung/scala/nested/Factorial.scala diff --git a/scala-lang-2/src/main/scala-2/com/baeldung/scala/singletons/Counter.scala b/scala-lang/scala-lang-2/src/main/scala-2/com/baeldung/scala/singletons/Counter.scala similarity index 100% rename from scala-lang-2/src/main/scala-2/com/baeldung/scala/singletons/Counter.scala rename to scala-lang/scala-lang-2/src/main/scala-2/com/baeldung/scala/singletons/Counter.scala diff --git a/scala-lang-2/src/main/scala-2/com/baeldung/scala/voidtypes/NilEmptyList.scala b/scala-lang/scala-lang-2/src/main/scala-2/com/baeldung/scala/voidtypes/NilEmptyList.scala similarity index 100% rename from scala-lang-2/src/main/scala-2/com/baeldung/scala/voidtypes/NilEmptyList.scala rename to scala-lang/scala-lang-2/src/main/scala-2/com/baeldung/scala/voidtypes/NilEmptyList.scala diff --git a/scala-lang-2/src/main/scala-2/com/baeldung/scala/voidtypes/NoneEmptyOption.scala b/scala-lang/scala-lang-2/src/main/scala-2/com/baeldung/scala/voidtypes/NoneEmptyOption.scala similarity index 100% rename from scala-lang-2/src/main/scala-2/com/baeldung/scala/voidtypes/NoneEmptyOption.scala rename to scala-lang/scala-lang-2/src/main/scala-2/com/baeldung/scala/voidtypes/NoneEmptyOption.scala diff --git a/scala-lang-2/src/main/scala-2/com/baeldung/scala/voidtypes/NothingTrait.scala b/scala-lang/scala-lang-2/src/main/scala-2/com/baeldung/scala/voidtypes/NothingTrait.scala similarity index 100% rename from scala-lang-2/src/main/scala-2/com/baeldung/scala/voidtypes/NothingTrait.scala rename to scala-lang/scala-lang-2/src/main/scala-2/com/baeldung/scala/voidtypes/NothingTrait.scala diff --git a/scala-lang-2/src/main/scala-2/com/baeldung/scala/voidtypes/NullTypeAndnullValue.scala b/scala-lang/scala-lang-2/src/main/scala-2/com/baeldung/scala/voidtypes/NullTypeAndnullValue.scala similarity index 100% rename from scala-lang-2/src/main/scala-2/com/baeldung/scala/voidtypes/NullTypeAndnullValue.scala rename to scala-lang/scala-lang-2/src/main/scala-2/com/baeldung/scala/voidtypes/NullTypeAndnullValue.scala diff --git a/scala-lang-2/src/main/scala-2/com/baeldung/scala/voidtypes/UnitReturnType.scala b/scala-lang/scala-lang-2/src/main/scala-2/com/baeldung/scala/voidtypes/UnitReturnType.scala similarity index 100% rename from scala-lang-2/src/main/scala-2/com/baeldung/scala/voidtypes/UnitReturnType.scala rename to scala-lang/scala-lang-2/src/main/scala-2/com/baeldung/scala/voidtypes/UnitReturnType.scala diff --git a/scala-lang-2/src/main/scala-2/com/baeldung/scala/withtrait/Animal.scala b/scala-lang/scala-lang-2/src/main/scala-2/com/baeldung/scala/withtrait/Animal.scala similarity index 100% rename from scala-lang-2/src/main/scala-2/com/baeldung/scala/withtrait/Animal.scala rename to scala-lang/scala-lang-2/src/main/scala-2/com/baeldung/scala/withtrait/Animal.scala diff --git a/scala-lang-2/src/main/scala-2/com/baeldung/scala/withtrait/Musician.scala b/scala-lang/scala-lang-2/src/main/scala-2/com/baeldung/scala/withtrait/Musician.scala similarity index 100% rename from scala-lang-2/src/main/scala-2/com/baeldung/scala/withtrait/Musician.scala rename to scala-lang/scala-lang-2/src/main/scala-2/com/baeldung/scala/withtrait/Musician.scala diff --git a/scala-lang-2/src/main/scala-2/com/baeldung/scala/withtrait/Person.scala b/scala-lang/scala-lang-2/src/main/scala-2/com/baeldung/scala/withtrait/Person.scala similarity index 100% rename from scala-lang-2/src/main/scala-2/com/baeldung/scala/withtrait/Person.scala rename to scala-lang/scala-lang-2/src/main/scala-2/com/baeldung/scala/withtrait/Person.scala diff --git a/scala-lang-2/src/main/scala-2/com/baeldung/scala/withtrait/Politician.scala b/scala-lang/scala-lang-2/src/main/scala-2/com/baeldung/scala/withtrait/Politician.scala similarity index 100% rename from scala-lang-2/src/main/scala-2/com/baeldung/scala/withtrait/Politician.scala rename to scala-lang/scala-lang-2/src/main/scala-2/com/baeldung/scala/withtrait/Politician.scala diff --git a/scala-lang-2/src/test/scala-2/com/baeldung/scala/singletons/CounterUnitTest.scala b/scala-lang/scala-lang-2/src/test/scala-2/com/baeldung/scala/singletons/CounterUnitTest.scala similarity index 100% rename from scala-lang-2/src/test/scala-2/com/baeldung/scala/singletons/CounterUnitTest.scala rename to scala-lang/scala-lang-2/src/test/scala-2/com/baeldung/scala/singletons/CounterUnitTest.scala diff --git a/scala-lang-2/src/test/scala-2/com/baeldung/scala/voidtypes/NilEmptyListUnitTest.scala b/scala-lang/scala-lang-2/src/test/scala-2/com/baeldung/scala/voidtypes/NilEmptyListUnitTest.scala similarity index 100% rename from scala-lang-2/src/test/scala-2/com/baeldung/scala/voidtypes/NilEmptyListUnitTest.scala rename to scala-lang/scala-lang-2/src/test/scala-2/com/baeldung/scala/voidtypes/NilEmptyListUnitTest.scala diff --git a/scala-lang-2/src/test/scala-2/com/baeldung/scala/voidtypes/NoneEmptyOptionUnitTest.scala b/scala-lang/scala-lang-2/src/test/scala-2/com/baeldung/scala/voidtypes/NoneEmptyOptionUnitTest.scala similarity index 100% rename from scala-lang-2/src/test/scala-2/com/baeldung/scala/voidtypes/NoneEmptyOptionUnitTest.scala rename to scala-lang/scala-lang-2/src/test/scala-2/com/baeldung/scala/voidtypes/NoneEmptyOptionUnitTest.scala diff --git a/scala-lang-2/src/test/scala-2/com/baeldung/scala/voidtypes/NothingTraitUnitTest.scala b/scala-lang/scala-lang-2/src/test/scala-2/com/baeldung/scala/voidtypes/NothingTraitUnitTest.scala similarity index 100% rename from scala-lang-2/src/test/scala-2/com/baeldung/scala/voidtypes/NothingTraitUnitTest.scala rename to scala-lang/scala-lang-2/src/test/scala-2/com/baeldung/scala/voidtypes/NothingTraitUnitTest.scala diff --git a/scala-lang-2/src/test/scala-2/com/baeldung/scala/voidtypes/NullTypeAndNullValueUnitTest.scala b/scala-lang/scala-lang-2/src/test/scala-2/com/baeldung/scala/voidtypes/NullTypeAndNullValueUnitTest.scala similarity index 100% rename from scala-lang-2/src/test/scala-2/com/baeldung/scala/voidtypes/NullTypeAndNullValueUnitTest.scala rename to scala-lang/scala-lang-2/src/test/scala-2/com/baeldung/scala/voidtypes/NullTypeAndNullValueUnitTest.scala diff --git a/scala-lang-2/src/test/scala-2/com/baeldung/scala/voidtypes/UnitReturnTypeUnitTest.scala b/scala-lang/scala-lang-2/src/test/scala-2/com/baeldung/scala/voidtypes/UnitReturnTypeUnitTest.scala similarity index 100% rename from scala-lang-2/src/test/scala-2/com/baeldung/scala/voidtypes/UnitReturnTypeUnitTest.scala rename to scala-lang/scala-lang-2/src/test/scala-2/com/baeldung/scala/voidtypes/UnitReturnTypeUnitTest.scala diff --git a/scala-lang-2/src/test/scala-2/com/baeldung/scala/withtrait/WithTraitSpec.scala b/scala-lang/scala-lang-2/src/test/scala-2/com/baeldung/scala/withtrait/WithTraitSpec.scala similarity index 100% rename from scala-lang-2/src/test/scala-2/com/baeldung/scala/withtrait/WithTraitSpec.scala rename to scala-lang/scala-lang-2/src/test/scala-2/com/baeldung/scala/withtrait/WithTraitSpec.scala diff --git a/scala-libraries/README.md b/scala-libraries/scala-libraries-1/README.md similarity index 100% rename from scala-libraries/README.md rename to scala-libraries/scala-libraries-1/README.md diff --git a/scala-libraries/src/finch/hello-world/build.sbt b/scala-libraries/scala-libraries-1/src/finch/hello-world/build.sbt similarity index 100% rename from scala-libraries/src/finch/hello-world/build.sbt rename to scala-libraries/scala-libraries-1/src/finch/hello-world/build.sbt diff --git a/scala-libraries/src/finch/hello-world/project/build.properties b/scala-libraries/scala-libraries-1/src/finch/hello-world/project/build.properties similarity index 100% rename from scala-libraries/src/finch/hello-world/project/build.properties rename to scala-libraries/scala-libraries-1/src/finch/hello-world/project/build.properties diff --git a/scala-libraries/src/finch/hello-world/src/main/scala/com/baeldung/finch/helloWorld/Main.scala b/scala-libraries/scala-libraries-1/src/finch/hello-world/src/main/scala/com/baeldung/finch/helloWorld/Main.scala similarity index 100% rename from scala-libraries/src/finch/hello-world/src/main/scala/com/baeldung/finch/helloWorld/Main.scala rename to scala-libraries/scala-libraries-1/src/finch/hello-world/src/main/scala/com/baeldung/finch/helloWorld/Main.scala diff --git a/scala-libraries/src/finch/todo/build.sbt b/scala-libraries/scala-libraries-1/src/finch/todo/build.sbt similarity index 100% rename from scala-libraries/src/finch/todo/build.sbt rename to scala-libraries/scala-libraries-1/src/finch/todo/build.sbt diff --git a/scala-libraries/src/finch/todo/project/build.properties b/scala-libraries/scala-libraries-1/src/finch/todo/project/build.properties similarity index 100% rename from scala-libraries/src/finch/todo/project/build.properties rename to scala-libraries/scala-libraries-1/src/finch/todo/project/build.properties diff --git a/scala-libraries/src/finch/todo/src/main/scala/com/baeldung/finch/todo/Main.scala b/scala-libraries/scala-libraries-1/src/finch/todo/src/main/scala/com/baeldung/finch/todo/Main.scala similarity index 100% rename from scala-libraries/src/finch/todo/src/main/scala/com/baeldung/finch/todo/Main.scala rename to scala-libraries/scala-libraries-1/src/finch/todo/src/main/scala/com/baeldung/finch/todo/Main.scala diff --git a/scala-libraries/src/finch/todo/src/main/scala/com/baeldung/finch/todo/models/Todo.scala b/scala-libraries/scala-libraries-1/src/finch/todo/src/main/scala/com/baeldung/finch/todo/models/Todo.scala similarity index 100% rename from scala-libraries/src/finch/todo/src/main/scala/com/baeldung/finch/todo/models/Todo.scala rename to scala-libraries/scala-libraries-1/src/finch/todo/src/main/scala/com/baeldung/finch/todo/models/Todo.scala diff --git a/scala-libraries/src/main/resources/application.conf b/scala-libraries/scala-libraries-1/src/main/resources/application.conf similarity index 100% rename from scala-libraries/src/main/resources/application.conf rename to scala-libraries/scala-libraries-1/src/main/resources/application.conf diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/cats/Area.scala b/scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/cats/Area.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/cats/Area.scala rename to scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/cats/Area.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/cats/AreaInstances.scala b/scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/cats/AreaInstances.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/cats/AreaInstances.scala rename to scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/cats/AreaInstances.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/cats/ShapeArea.scala b/scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/cats/ShapeArea.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/cats/ShapeArea.scala rename to scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/cats/ShapeArea.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/cats/ShapeAreaSyntax.scala b/scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/cats/ShapeAreaSyntax.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/cats/ShapeAreaSyntax.scala rename to scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/cats/ShapeAreaSyntax.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/cats/monoids/CollectionMonoid.scala b/scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/cats/monoids/CollectionMonoid.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/cats/monoids/CollectionMonoid.scala rename to scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/cats/monoids/CollectionMonoid.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/cats/semigroups/CollectionSemigroup.scala b/scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/cats/semigroups/CollectionSemigroup.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/cats/semigroups/CollectionSemigroup.scala rename to scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/cats/semigroups/CollectionSemigroup.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/cats/semigroups/CustomIntSemigroup.scala b/scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/cats/semigroups/CustomIntSemigroup.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/cats/semigroups/CustomIntSemigroup.scala rename to scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/cats/semigroups/CustomIntSemigroup.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/cats/semigroups/IntSemigroup.scala b/scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/cats/semigroups/IntSemigroup.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/cats/semigroups/IntSemigroup.scala rename to scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/cats/semigroups/IntSemigroup.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/cats/show/CustomInstance.scala b/scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/cats/show/CustomInstance.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/cats/show/CustomInstance.scala rename to scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/cats/show/CustomInstance.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/cats/show/InterfaceSyntax.scala b/scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/cats/show/InterfaceSyntax.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/cats/show/InterfaceSyntax.scala rename to scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/cats/show/InterfaceSyntax.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/cats/show/ShowImpl.scala b/scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/cats/show/ShowImpl.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/cats/show/ShowImpl.scala rename to scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/cats/show/ShowImpl.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/fs2/Fs2Examples.scala b/scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/fs2/Fs2Examples.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/fs2/Fs2Examples.scala rename to scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/fs2/Fs2Examples.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/monocle/OpticsExamples.scala b/scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/monocle/OpticsExamples.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/monocle/OpticsExamples.scala rename to scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/monocle/OpticsExamples.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/reactivemongo/MongoDBConnection.scala b/scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/reactivemongo/MongoDBConnection.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/reactivemongo/MongoDBConnection.scala rename to scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/reactivemongo/MongoDBConnection.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/scalaz/ScalazExamples.scala b/scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/scalaz/ScalazExamples.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/scalaz/ScalazExamples.scala rename to scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/scalaz/ScalazExamples.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/scalaz/principles/ScalazPrinciplesExamples.scala b/scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/scalaz/principles/ScalazPrinciplesExamples.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/scalaz/principles/ScalazPrinciplesExamples.scala rename to scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/scalaz/principles/ScalazPrinciplesExamples.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/slick/Connection.scala b/scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/slick/Connection.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/slick/Connection.scala rename to scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/slick/Connection.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/slick/Entities.scala b/scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/slick/Entities.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/slick/Entities.scala rename to scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/slick/Entities.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/slick/SlickTables.scala b/scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/slick/SlickTables.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/slick/SlickTables.scala rename to scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/slick/SlickTables.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/typedactors/AkkaTyped.scala b/scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/typedactors/AkkaTyped.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/typedactors/AkkaTyped.scala rename to scala-libraries/scala-libraries-1/src/main/scala-2/com/baeldung/scala/typedactors/AkkaTyped.scala diff --git a/scala-libraries/src/test/resources/application.conf b/scala-libraries/scala-libraries-1/src/test/resources/application.conf similarity index 100% rename from scala-libraries/src/test/resources/application.conf rename to scala-libraries/scala-libraries-1/src/test/resources/application.conf diff --git a/scala-libraries/src/test/resources/fs2data.txt b/scala-libraries/scala-libraries-1/src/test/resources/fs2data.txt similarity index 100% rename from scala-libraries/src/test/resources/fs2data.txt rename to scala-libraries/scala-libraries-1/src/test/resources/fs2data.txt diff --git a/scala-libraries/src/test/resources/logback-test.xml b/scala-libraries/scala-libraries-1/src/test/resources/logback-test.xml similarity index 100% rename from scala-libraries/src/test/resources/logback-test.xml rename to scala-libraries/scala-libraries-1/src/test/resources/logback-test.xml diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/cats/ShapeAreaSyntaxUnitTest.scala b/scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/cats/ShapeAreaSyntaxUnitTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/cats/ShapeAreaSyntaxUnitTest.scala rename to scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/cats/ShapeAreaSyntaxUnitTest.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/cats/ShapeAreaUnitTest.scala b/scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/cats/ShapeAreaUnitTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/cats/ShapeAreaUnitTest.scala rename to scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/cats/ShapeAreaUnitTest.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/cats/monoids/CollectionMonoidUnitTest.scala b/scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/cats/monoids/CollectionMonoidUnitTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/cats/monoids/CollectionMonoidUnitTest.scala rename to scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/cats/monoids/CollectionMonoidUnitTest.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/cats/semigroups/CollectionSemigroupUnitTest.scala b/scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/cats/semigroups/CollectionSemigroupUnitTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/cats/semigroups/CollectionSemigroupUnitTest.scala rename to scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/cats/semigroups/CollectionSemigroupUnitTest.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/cats/semigroups/CustomIntSemigroupUnitTest.scala b/scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/cats/semigroups/CustomIntSemigroupUnitTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/cats/semigroups/CustomIntSemigroupUnitTest.scala rename to scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/cats/semigroups/CustomIntSemigroupUnitTest.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/cats/semigroups/IntSemigroupUnitTest.scala b/scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/cats/semigroups/IntSemigroupUnitTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/cats/semigroups/IntSemigroupUnitTest.scala rename to scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/cats/semigroups/IntSemigroupUnitTest.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/cats/show/CustomInstanceUnitTest.scala b/scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/cats/show/CustomInstanceUnitTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/cats/show/CustomInstanceUnitTest.scala rename to scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/cats/show/CustomInstanceUnitTest.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/cats/show/InterfaceSyntaxUnitTest.scala b/scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/cats/show/InterfaceSyntaxUnitTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/cats/show/InterfaceSyntaxUnitTest.scala rename to scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/cats/show/InterfaceSyntaxUnitTest.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/cats/show/ShowImplUnitTest.scala b/scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/cats/show/ShowImplUnitTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/cats/show/ShowImplUnitTest.scala rename to scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/cats/show/ShowImplUnitTest.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/fs2/FS2SampleTest.scala b/scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/fs2/FS2SampleTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/fs2/FS2SampleTest.scala rename to scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/fs2/FS2SampleTest.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/monocle/OpticsExamplesUnitTest.scala b/scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/monocle/OpticsExamplesUnitTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/monocle/OpticsExamplesUnitTest.scala rename to scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/monocle/OpticsExamplesUnitTest.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/reactivemongo/MongoEntities.scala b/scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/reactivemongo/MongoEntities.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/reactivemongo/MongoEntities.scala rename to scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/reactivemongo/MongoEntities.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/reactivemongo/ReactiveMongoUnitTest.scala b/scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/reactivemongo/ReactiveMongoUnitTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/reactivemongo/ReactiveMongoUnitTest.scala rename to scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/reactivemongo/ReactiveMongoUnitTest.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/scalaz/ScalazExamplesUnitTest.scala b/scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/scalaz/ScalazExamplesUnitTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/scalaz/ScalazExamplesUnitTest.scala rename to scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/scalaz/ScalazExamplesUnitTest.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/scalaz/principles/ScalazPrinciplesExamplesUnitTest.scala b/scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/scalaz/principles/ScalazPrinciplesExamplesUnitTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/scalaz/principles/ScalazPrinciplesExamplesUnitTest.scala rename to scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/scalaz/principles/ScalazPrinciplesExamplesUnitTest.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/shapeless/ShapelessUnitTest.scala b/scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/shapeless/ShapelessUnitTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/shapeless/ShapelessUnitTest.scala rename to scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/shapeless/ShapelessUnitTest.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/slick/PlayerServiceUnitTest.scala b/scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/slick/PlayerServiceUnitTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/slick/PlayerServiceUnitTest.scala rename to scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/slick/PlayerServiceUnitTest.scala diff --git a/scala-libraries-2/README.md b/scala-libraries/scala-libraries-2/README.md similarity index 100% rename from scala-libraries-2/README.md rename to scala-libraries/scala-libraries-2/README.md diff --git a/scala-libraries-2/src/it/scala-2/com/baeldung/requests/RequestsScalaHttpClientLiveTest.scala b/scala-libraries/scala-libraries-2/src/it/scala-2/com/baeldung/requests/RequestsScalaHttpClientLiveTest.scala similarity index 100% rename from scala-libraries-2/src/it/scala-2/com/baeldung/requests/RequestsScalaHttpClientLiveTest.scala rename to scala-libraries/scala-libraries-2/src/it/scala-2/com/baeldung/requests/RequestsScalaHttpClientLiveTest.scala diff --git a/scala-libraries-2/src/main/resources/application.conf b/scala-libraries/scala-libraries-2/src/main/resources/application.conf similarity index 100% rename from scala-libraries-2/src/main/resources/application.conf rename to scala-libraries/scala-libraries-2/src/main/resources/application.conf diff --git a/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/AsyncQueryMemoizeService.scala b/scala-libraries/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/AsyncQueryMemoizeService.scala similarity index 100% rename from scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/AsyncQueryMemoizeService.scala rename to scala-libraries/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/AsyncQueryMemoizeService.scala diff --git a/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/CacheFlagService.scala b/scala-libraries/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/CacheFlagService.scala similarity index 100% rename from scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/CacheFlagService.scala rename to scala-libraries/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/CacheFlagService.scala diff --git a/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/CaffeineCacheConfig.scala b/scala-libraries/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/CaffeineCacheConfig.scala similarity index 100% rename from scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/CaffeineCacheConfig.scala rename to scala-libraries/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/CaffeineCacheConfig.scala diff --git a/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/CatsService.scala b/scala-libraries/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/CatsService.scala similarity index 100% rename from scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/CatsService.scala rename to scala-libraries/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/CatsService.scala diff --git a/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/GenericCacheService.scala b/scala-libraries/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/GenericCacheService.scala similarity index 100% rename from scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/GenericCacheService.scala rename to scala-libraries/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/GenericCacheService.scala diff --git a/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/Models.scala b/scala-libraries/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/Models.scala similarity index 100% rename from scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/Models.scala rename to scala-libraries/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/Models.scala diff --git a/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/ScalaCacheCachingBlock.scala b/scala-libraries/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/ScalaCacheCachingBlock.scala similarity index 100% rename from scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/ScalaCacheCachingBlock.scala rename to scala-libraries/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/ScalaCacheCachingBlock.scala diff --git a/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/SyncQueryCustomMemoizeKeyService.scala b/scala-libraries/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/SyncQueryCustomMemoizeKeyService.scala similarity index 100% rename from scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/SyncQueryCustomMemoizeKeyService.scala rename to scala-libraries/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/SyncQueryCustomMemoizeKeyService.scala diff --git a/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/SyncQueryMemoizeService.scala b/scala-libraries/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/SyncQueryMemoizeService.scala similarity index 100% rename from scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/SyncQueryMemoizeService.scala rename to scala-libraries/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/SyncQueryMemoizeService.scala diff --git a/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/SyncQueryService.scala b/scala-libraries/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/SyncQueryService.scala similarity index 100% rename from scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/SyncQueryService.scala rename to scala-libraries/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/SyncQueryService.scala diff --git a/scala-libraries-2/src/main/scala-2/com/baeldung/circe/JSONConversions.scala b/scala-libraries/scala-libraries-2/src/main/scala-2/com/baeldung/circe/JSONConversions.scala similarity index 100% rename from scala-libraries-2/src/main/scala-2/com/baeldung/circe/JSONConversions.scala rename to scala-libraries/scala-libraries-2/src/main/scala-2/com/baeldung/circe/JSONConversions.scala diff --git a/scala-libraries-2/src/main/scala-2/com/baeldung/date/DateParser.scala b/scala-libraries/scala-libraries-2/src/main/scala-2/com/baeldung/date/DateParser.scala similarity index 100% rename from scala-libraries-2/src/main/scala-2/com/baeldung/date/DateParser.scala rename to scala-libraries/scala-libraries-2/src/main/scala-2/com/baeldung/date/DateParser.scala diff --git a/scala-libraries-2/src/main/scala-2/com/baeldung/elastic4s/Main.scala b/scala-libraries/scala-libraries-2/src/main/scala-2/com/baeldung/elastic4s/Main.scala similarity index 100% rename from scala-libraries-2/src/main/scala-2/com/baeldung/elastic4s/Main.scala rename to scala-libraries/scala-libraries-2/src/main/scala-2/com/baeldung/elastic4s/Main.scala diff --git a/scala-libraries-2/src/main/scala-2/com/baeldung/enumeratum/Enums.scala b/scala-libraries/scala-libraries-2/src/main/scala-2/com/baeldung/enumeratum/Enums.scala similarity index 100% rename from scala-libraries-2/src/main/scala-2/com/baeldung/enumeratum/Enums.scala rename to scala-libraries/scala-libraries-2/src/main/scala-2/com/baeldung/enumeratum/Enums.scala diff --git a/scala-libraries-2/src/main/scala-2/com/baeldung/scala/monix/MonixTask.scala b/scala-libraries/scala-libraries-2/src/main/scala-2/com/baeldung/scala/monix/MonixTask.scala similarity index 100% rename from scala-libraries-2/src/main/scala-2/com/baeldung/scala/monix/MonixTask.scala rename to scala-libraries/scala-libraries-2/src/main/scala-2/com/baeldung/scala/monix/MonixTask.scala diff --git a/scala-libraries-2/src/main/scala-2/play_db/PlayDbExample.scala b/scala-libraries/scala-libraries-2/src/main/scala-2/play_db/PlayDbExample.scala similarity index 100% rename from scala-libraries-2/src/main/scala-2/play_db/PlayDbExample.scala rename to scala-libraries/scala-libraries-2/src/main/scala-2/play_db/PlayDbExample.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/akka/TestService.scala b/scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/akka/TestService.scala similarity index 100% rename from scala-libraries-2/src/test/scala-2/com/baeldung/akka/TestService.scala rename to scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/akka/TestService.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/akka/Tests.scala b/scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/akka/Tests.scala similarity index 100% rename from scala-libraries-2/src/test/scala-2/com/baeldung/akka/Tests.scala rename to scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/akka/Tests.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/cache/GenericCacheUnitTest.scala b/scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/cache/GenericCacheUnitTest.scala similarity index 100% rename from scala-libraries-2/src/test/scala-2/com/baeldung/cache/GenericCacheUnitTest.scala rename to scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/cache/GenericCacheUnitTest.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/cache/ScalaCacheAsyncUnitTest.scala b/scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/cache/ScalaCacheAsyncUnitTest.scala similarity index 100% rename from scala-libraries-2/src/test/scala-2/com/baeldung/cache/ScalaCacheAsyncUnitTest.scala rename to scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/cache/ScalaCacheAsyncUnitTest.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/cache/ScalaCacheCachingBlockUnitTest.scala b/scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/cache/ScalaCacheCachingBlockUnitTest.scala similarity index 100% rename from scala-libraries-2/src/test/scala-2/com/baeldung/cache/ScalaCacheCachingBlockUnitTest.scala rename to scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/cache/ScalaCacheCachingBlockUnitTest.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/cache/ScalaCacheCatsServiceUnitTest.scala b/scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/cache/ScalaCacheCatsServiceUnitTest.scala similarity index 100% rename from scala-libraries-2/src/test/scala-2/com/baeldung/cache/ScalaCacheCatsServiceUnitTest.scala rename to scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/cache/ScalaCacheCatsServiceUnitTest.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/cache/ScalaCacheSyncUnitTest.scala b/scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/cache/ScalaCacheSyncUnitTest.scala similarity index 100% rename from scala-libraries-2/src/test/scala-2/com/baeldung/cache/ScalaCacheSyncUnitTest.scala rename to scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/cache/ScalaCacheSyncUnitTest.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/circe/JSONConversionsTest.scala b/scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/circe/JSONConversionsTest.scala similarity index 100% rename from scala-libraries-2/src/test/scala-2/com/baeldung/circe/JSONConversionsTest.scala rename to scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/circe/JSONConversionsTest.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/date/DateParserSpec.scala b/scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/date/DateParserSpec.scala similarity index 100% rename from scala-libraries-2/src/test/scala-2/com/baeldung/date/DateParserSpec.scala rename to scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/date/DateParserSpec.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/enumeratum/EnumeratumUnitTest.scala b/scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/enumeratum/EnumeratumUnitTest.scala similarity index 100% rename from scala-libraries-2/src/test/scala-2/com/baeldung/enumeratum/EnumeratumUnitTest.scala rename to scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/enumeratum/EnumeratumUnitTest.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/scala/circe/CirceUnitTest.scala b/scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/scala/circe/CirceUnitTest.scala similarity index 100% rename from scala-libraries-2/src/test/scala-2/com/baeldung/scala/circe/CirceUnitTest.scala rename to scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/scala/circe/CirceUnitTest.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/scala/circe/CustomDecoderUnitTest.scala b/scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/scala/circe/CustomDecoderUnitTest.scala similarity index 100% rename from scala-libraries-2/src/test/scala-2/com/baeldung/scala/circe/CustomDecoderUnitTest.scala rename to scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/scala/circe/CustomDecoderUnitTest.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/scala/monix/MonixTaskUnitTest.scala b/scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/scala/monix/MonixTaskUnitTest.scala similarity index 100% rename from scala-libraries-2/src/test/scala-2/com/baeldung/scala/monix/MonixTaskUnitTest.scala rename to scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/scala/monix/MonixTaskUnitTest.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/CommandsUnitTest.scala b/scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/CommandsUnitTest.scala similarity index 100% rename from scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/CommandsUnitTest.scala rename to scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/CommandsUnitTest.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/GeneratorsUnitTest.scala b/scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/GeneratorsUnitTest.scala similarity index 100% rename from scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/GeneratorsUnitTest.scala rename to scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/GeneratorsUnitTest.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/PropertiesUnitTest.scala b/scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/PropertiesUnitTest.scala similarity index 100% rename from scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/PropertiesUnitTest.scala rename to scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/PropertiesUnitTest.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/PropertiesWithCustomParametersUnitTest.scala b/scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/PropertiesWithCustomParametersUnitTest.scala similarity index 100% rename from scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/PropertiesWithCustomParametersUnitTest.scala rename to scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/PropertiesWithCustomParametersUnitTest.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/model/Simple.scala b/scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/model/Simple.scala similarity index 100% rename from scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/model/Simple.scala rename to scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/model/Simple.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/model/SystemUnderTest.scala b/scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/model/SystemUnderTest.scala similarity index 100% rename from scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/model/SystemUnderTest.scala rename to scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/model/SystemUnderTest.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/model/TrafficLight.scala b/scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/model/TrafficLight.scala similarity index 100% rename from scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/model/TrafficLight.scala rename to scala-libraries/scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/model/TrafficLight.scala diff --git a/scala-libraries-3/README.md b/scala-libraries/scala-libraries-3/README.md similarity index 100% rename from scala-libraries-3/README.md rename to scala-libraries/scala-libraries-3/README.md diff --git a/scala-libraries-3/src/main/resources/log4j2.xml b/scala-libraries/scala-libraries-3/src/main/resources/log4j2.xml similarity index 100% rename from scala-libraries-3/src/main/resources/log4j2.xml rename to scala-libraries/scala-libraries-3/src/main/resources/log4j2.xml diff --git a/scala-libraries-3/src/main/scala-2/com/baeldung/scala/http4s/SimpleClient.scala b/scala-libraries/scala-libraries-3/src/main/scala-2/com/baeldung/scala/http4s/SimpleClient.scala similarity index 100% rename from scala-libraries-3/src/main/scala-2/com/baeldung/scala/http4s/SimpleClient.scala rename to scala-libraries/scala-libraries-3/src/main/scala-2/com/baeldung/scala/http4s/SimpleClient.scala diff --git a/scala-libraries-3/src/main/scala-2/com/baeldung/scala/http4s/SimpleServer.scala b/scala-libraries/scala-libraries-3/src/main/scala-2/com/baeldung/scala/http4s/SimpleServer.scala similarity index 100% rename from scala-libraries-3/src/main/scala-2/com/baeldung/scala/http4s/SimpleServer.scala rename to scala-libraries/scala-libraries-3/src/main/scala-2/com/baeldung/scala/http4s/SimpleServer.scala diff --git a/scala-libraries-3/src/main/scala-2/com/baeldung/scala/log4j/LoggingApp.scala b/scala-libraries/scala-libraries-3/src/main/scala-2/com/baeldung/scala/log4j/LoggingApp.scala similarity index 100% rename from scala-libraries-3/src/main/scala-2/com/baeldung/scala/log4j/LoggingApp.scala rename to scala-libraries/scala-libraries-3/src/main/scala-2/com/baeldung/scala/log4j/LoggingApp.scala diff --git a/scala-libraries-3/src/main/scala-2/com/baeldung/scala/pureconfig/Configs.scala b/scala-libraries/scala-libraries-3/src/main/scala-2/com/baeldung/scala/pureconfig/Configs.scala similarity index 100% rename from scala-libraries-3/src/main/scala-2/com/baeldung/scala/pureconfig/Configs.scala rename to scala-libraries/scala-libraries-3/src/main/scala-2/com/baeldung/scala/pureconfig/Configs.scala diff --git a/scala-libraries-3/src/main/scala-2/com/baeldung/scala/retry/PrimeNumberRetry.scala b/scala-libraries/scala-libraries-3/src/main/scala-2/com/baeldung/scala/retry/PrimeNumberRetry.scala similarity index 100% rename from scala-libraries-3/src/main/scala-2/com/baeldung/scala/retry/PrimeNumberRetry.scala rename to scala-libraries/scala-libraries-3/src/main/scala-2/com/baeldung/scala/retry/PrimeNumberRetry.scala diff --git a/scala-libraries-3/src/tapir/build.sbt b/scala-libraries/scala-libraries-3/src/tapir/build.sbt similarity index 100% rename from scala-libraries-3/src/tapir/build.sbt rename to scala-libraries/scala-libraries-3/src/tapir/build.sbt diff --git a/scala-libraries-3/src/tapir/client/src/main/scala/com/baeldung/tapir/client/Client.scala b/scala-libraries/scala-libraries-3/src/tapir/client/src/main/scala/com/baeldung/tapir/client/Client.scala similarity index 100% rename from scala-libraries-3/src/tapir/client/src/main/scala/com/baeldung/tapir/client/Client.scala rename to scala-libraries/scala-libraries-3/src/tapir/client/src/main/scala/com/baeldung/tapir/client/Client.scala diff --git a/scala-libraries-3/src/tapir/endpoint/src/main/scala/com/baeldung/tapir/endpoint/AnimalEndpoints.scala b/scala-libraries/scala-libraries-3/src/tapir/endpoint/src/main/scala/com/baeldung/tapir/endpoint/AnimalEndpoints.scala similarity index 100% rename from scala-libraries-3/src/tapir/endpoint/src/main/scala/com/baeldung/tapir/endpoint/AnimalEndpoints.scala rename to scala-libraries/scala-libraries-3/src/tapir/endpoint/src/main/scala/com/baeldung/tapir/endpoint/AnimalEndpoints.scala diff --git a/scala-libraries-3/src/tapir/project/build.properties b/scala-libraries/scala-libraries-3/src/tapir/project/build.properties similarity index 100% rename from scala-libraries-3/src/tapir/project/build.properties rename to scala-libraries/scala-libraries-3/src/tapir/project/build.properties diff --git a/scala-libraries-3/src/tapir/server/src/main/scala/com/baeldung/tapir/server/BaseAkkaServer.scala b/scala-libraries/scala-libraries-3/src/tapir/server/src/main/scala/com/baeldung/tapir/server/BaseAkkaServer.scala similarity index 100% rename from scala-libraries-3/src/tapir/server/src/main/scala/com/baeldung/tapir/server/BaseAkkaServer.scala rename to scala-libraries/scala-libraries-3/src/tapir/server/src/main/scala/com/baeldung/tapir/server/BaseAkkaServer.scala diff --git a/scala-libraries-3/src/tapir/server/src/main/scala/com/baeldung/tapir/server/Database.scala b/scala-libraries/scala-libraries-3/src/tapir/server/src/main/scala/com/baeldung/tapir/server/Database.scala similarity index 100% rename from scala-libraries-3/src/tapir/server/src/main/scala/com/baeldung/tapir/server/Database.scala rename to scala-libraries/scala-libraries-3/src/tapir/server/src/main/scala/com/baeldung/tapir/server/Database.scala diff --git a/scala-libraries-3/src/tapir/server/src/main/scala/com/baeldung/tapir/server/KittensServer.scala b/scala-libraries/scala-libraries-3/src/tapir/server/src/main/scala/com/baeldung/tapir/server/KittensServer.scala similarity index 100% rename from scala-libraries-3/src/tapir/server/src/main/scala/com/baeldung/tapir/server/KittensServer.scala rename to scala-libraries/scala-libraries-3/src/tapir/server/src/main/scala/com/baeldung/tapir/server/KittensServer.scala diff --git a/scala-libraries-3/src/test/resources/application-default.conf b/scala-libraries/scala-libraries-3/src/test/resources/application-default.conf similarity index 100% rename from scala-libraries-3/src/test/resources/application-default.conf rename to scala-libraries/scala-libraries-3/src/test/resources/application-default.conf diff --git a/scala-libraries-3/src/test/resources/application.conf b/scala-libraries/scala-libraries-3/src/test/resources/application.conf similarity index 100% rename from scala-libraries-3/src/test/resources/application.conf rename to scala-libraries/scala-libraries-3/src/test/resources/application.conf diff --git a/scala-libraries-3/src/test/resources/database.conf b/scala-libraries/scala-libraries-3/src/test/resources/database.conf similarity index 100% rename from scala-libraries-3/src/test/resources/database.conf rename to scala-libraries/scala-libraries-3/src/test/resources/database.conf diff --git a/scala-libraries-3/src/test/resources/http.conf b/scala-libraries/scala-libraries-3/src/test/resources/http.conf similarity index 100% rename from scala-libraries-3/src/test/resources/http.conf rename to scala-libraries/scala-libraries-3/src/test/resources/http.conf diff --git a/scala-libraries-3/src/test/resources/main.conf b/scala-libraries/scala-libraries-3/src/test/resources/main.conf similarity index 100% rename from scala-libraries-3/src/test/resources/main.conf rename to scala-libraries/scala-libraries-3/src/test/resources/main.conf diff --git a/scala-libraries-3/src/test/resources/notification.conf b/scala-libraries/scala-libraries-3/src/test/resources/notification.conf similarity index 100% rename from scala-libraries-3/src/test/resources/notification.conf rename to scala-libraries/scala-libraries-3/src/test/resources/notification.conf diff --git a/scala-libraries-3/src/test/scala-2/com/baeldung/scala/config/ConfigTest.scala b/scala-libraries/scala-libraries-3/src/test/scala-2/com/baeldung/scala/config/ConfigTest.scala similarity index 100% rename from scala-libraries-3/src/test/scala-2/com/baeldung/scala/config/ConfigTest.scala rename to scala-libraries/scala-libraries-3/src/test/scala-2/com/baeldung/scala/config/ConfigTest.scala diff --git a/scala-libraries-3/src/test/scala-2/com/baeldung/scala/pureconfig/SampleConfigLoader.scala b/scala-libraries/scala-libraries-3/src/test/scala-2/com/baeldung/scala/pureconfig/SampleConfigLoader.scala similarity index 100% rename from scala-libraries-3/src/test/scala-2/com/baeldung/scala/pureconfig/SampleConfigLoader.scala rename to scala-libraries/scala-libraries-3/src/test/scala-2/com/baeldung/scala/pureconfig/SampleConfigLoader.scala diff --git a/scala-libraries-3/src/test/scala-2/com/baeldung/scala/retry/PrimeNumberRetryTest.scala b/scala-libraries/scala-libraries-3/src/test/scala-2/com/baeldung/scala/retry/PrimeNumberRetryTest.scala similarity index 100% rename from scala-libraries-3/src/test/scala-2/com/baeldung/scala/retry/PrimeNumberRetryTest.scala rename to scala-libraries/scala-libraries-3/src/test/scala-2/com/baeldung/scala/retry/PrimeNumberRetryTest.scala diff --git a/scala-libraries-3/src/test/scala-2/com/baeldung/scalamock/ScalamockFeaturesTest.scala b/scala-libraries/scala-libraries-3/src/test/scala-2/com/baeldung/scalamock/ScalamockFeaturesTest.scala similarity index 100% rename from scala-libraries-3/src/test/scala-2/com/baeldung/scalamock/ScalamockFeaturesTest.scala rename to scala-libraries/scala-libraries-3/src/test/scala-2/com/baeldung/scalamock/ScalamockFeaturesTest.scala diff --git a/scala-libraries-3/src/test/scala-2/com/baeldung/scalamock/ScalamockFunctionTest.scala b/scala-libraries/scala-libraries-3/src/test/scala-2/com/baeldung/scalamock/ScalamockFunctionTest.scala similarity index 100% rename from scala-libraries-3/src/test/scala-2/com/baeldung/scalamock/ScalamockFunctionTest.scala rename to scala-libraries/scala-libraries-3/src/test/scala-2/com/baeldung/scalamock/ScalamockFunctionTest.scala diff --git a/scala-libraries-3/src/test/scala-2/com/baeldung/scalamock/ScalamockMockingStylesTest.scala b/scala-libraries/scala-libraries-3/src/test/scala-2/com/baeldung/scalamock/ScalamockMockingStylesTest.scala similarity index 100% rename from scala-libraries-3/src/test/scala-2/com/baeldung/scalamock/ScalamockMockingStylesTest.scala rename to scala-libraries/scala-libraries-3/src/test/scala-2/com/baeldung/scalamock/ScalamockMockingStylesTest.scala diff --git a/scala-libraries-3/src/test/scala-2/com/baeldung/scalamock/model/Models.scala b/scala-libraries/scala-libraries-3/src/test/scala-2/com/baeldung/scalamock/model/Models.scala similarity index 100% rename from scala-libraries-3/src/test/scala-2/com/baeldung/scalamock/model/Models.scala rename to scala-libraries/scala-libraries-3/src/test/scala-2/com/baeldung/scalamock/model/Models.scala diff --git a/scala-libraries-3/src/test/scala-2/com/baeldung/scalamock/service/Services.scala b/scala-libraries/scala-libraries-3/src/test/scala-2/com/baeldung/scalamock/service/Services.scala similarity index 100% rename from scala-libraries-3/src/test/scala-2/com/baeldung/scalamock/service/Services.scala rename to scala-libraries/scala-libraries-3/src/test/scala-2/com/baeldung/scalamock/service/Services.scala diff --git a/scala-libraries-4/README.md b/scala-libraries/scala-libraries-4/README.md similarity index 100% rename from scala-libraries-4/README.md rename to scala-libraries/scala-libraries-4/README.md diff --git a/scala-libraries-4/src/it/resources/docker-compose.yml b/scala-libraries/scala-libraries-4/src/it/resources/docker-compose.yml similarity index 100% rename from scala-libraries-4/src/it/resources/docker-compose.yml rename to scala-libraries/scala-libraries-4/src/it/resources/docker-compose.yml diff --git a/scala-libraries-4/src/it/resources/s3-test.txt b/scala-libraries/scala-libraries-4/src/it/resources/s3-test.txt similarity index 100% rename from scala-libraries-4/src/it/resources/s3-test.txt rename to scala-libraries/scala-libraries-4/src/it/resources/s3-test.txt diff --git a/scala-libraries-4/src/it/scala-2/com/baeldung/scala/pulsar4s/PulsarJsonSchemaManualTest.scala b/scala-libraries/scala-libraries-4/src/it/scala-2/com/baeldung/scala/pulsar4s/PulsarJsonSchemaManualTest.scala similarity index 100% rename from scala-libraries-4/src/it/scala-2/com/baeldung/scala/pulsar4s/PulsarJsonSchemaManualTest.scala rename to scala-libraries/scala-libraries-4/src/it/scala-2/com/baeldung/scala/pulsar4s/PulsarJsonSchemaManualTest.scala diff --git a/scala-libraries-4/src/it/scala-2/com/baeldung/scala/pulsar4s/PulsarStringSchemaManualTest.scala b/scala-libraries/scala-libraries-4/src/it/scala-2/com/baeldung/scala/pulsar4s/PulsarStringSchemaManualTest.scala similarity index 100% rename from scala-libraries-4/src/it/scala-2/com/baeldung/scala/pulsar4s/PulsarStringSchemaManualTest.scala rename to scala-libraries/scala-libraries-4/src/it/scala-2/com/baeldung/scala/pulsar4s/PulsarStringSchemaManualTest.scala diff --git a/scala-libraries-4/src/it/scala-2/com/baeldung/scala/testcontainers/DockerComposeManualTest.scala b/scala-libraries/scala-libraries-4/src/it/scala-2/com/baeldung/scala/testcontainers/DockerComposeManualTest.scala similarity index 100% rename from scala-libraries-4/src/it/scala-2/com/baeldung/scala/testcontainers/DockerComposeManualTest.scala rename to scala-libraries/scala-libraries-4/src/it/scala-2/com/baeldung/scala/testcontainers/DockerComposeManualTest.scala diff --git a/scala-libraries-4/src/it/scala-2/com/baeldung/scala/testcontainers/GenericContainerManualTest.scala b/scala-libraries/scala-libraries-4/src/it/scala-2/com/baeldung/scala/testcontainers/GenericContainerManualTest.scala similarity index 100% rename from scala-libraries-4/src/it/scala-2/com/baeldung/scala/testcontainers/GenericContainerManualTest.scala rename to scala-libraries/scala-libraries-4/src/it/scala-2/com/baeldung/scala/testcontainers/GenericContainerManualTest.scala diff --git a/scala-libraries-4/src/it/scala-2/com/baeldung/scala/testcontainers/LocalstackModuleManualTest.scala b/scala-libraries/scala-libraries-4/src/it/scala-2/com/baeldung/scala/testcontainers/LocalstackModuleManualTest.scala similarity index 100% rename from scala-libraries-4/src/it/scala-2/com/baeldung/scala/testcontainers/LocalstackModuleManualTest.scala rename to scala-libraries/scala-libraries-4/src/it/scala-2/com/baeldung/scala/testcontainers/LocalstackModuleManualTest.scala diff --git a/scala-libraries-4/src/main/resources/logback.xml b/scala-libraries/scala-libraries-4/src/main/resources/logback.xml similarity index 100% rename from scala-libraries-4/src/main/resources/logback.xml rename to scala-libraries/scala-libraries-4/src/main/resources/logback.xml diff --git a/scala-libraries-4/src/main/scala-2/com/baeldung/scala/awscala/Main.scala b/scala-libraries/scala-libraries-4/src/main/scala-2/com/baeldung/scala/awscala/Main.scala similarity index 100% rename from scala-libraries-4/src/main/scala-2/com/baeldung/scala/awscala/Main.scala rename to scala-libraries/scala-libraries-4/src/main/scala-2/com/baeldung/scala/awscala/Main.scala diff --git a/scala-libraries-4/src/main/scala-2/com/baeldung/scala/logging/ScalaLoggingSample.scala b/scala-libraries/scala-libraries-4/src/main/scala-2/com/baeldung/scala/logging/ScalaLoggingSample.scala similarity index 100% rename from scala-libraries-4/src/main/scala-2/com/baeldung/scala/logging/ScalaLoggingSample.scala rename to scala-libraries/scala-libraries-4/src/main/scala-2/com/baeldung/scala/logging/ScalaLoggingSample.scala diff --git a/scala-libraries-4/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarConsumer.scala b/scala-libraries/scala-libraries-4/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarConsumer.scala similarity index 100% rename from scala-libraries-4/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarConsumer.scala rename to scala-libraries/scala-libraries-4/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarConsumer.scala diff --git a/scala-libraries-4/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarProducer.scala b/scala-libraries/scala-libraries-4/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarProducer.scala similarity index 100% rename from scala-libraries-4/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarProducer.scala rename to scala-libraries/scala-libraries-4/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarProducer.scala diff --git a/scala-libraries-4/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarClient.scala b/scala-libraries/scala-libraries-4/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarClient.scala similarity index 100% rename from scala-libraries-4/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarClient.scala rename to scala-libraries/scala-libraries-4/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarClient.scala diff --git a/scala-libraries-4/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarConsumer.scala b/scala-libraries/scala-libraries-4/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarConsumer.scala similarity index 100% rename from scala-libraries-4/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarConsumer.scala rename to scala-libraries/scala-libraries-4/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarConsumer.scala diff --git a/scala-libraries-4/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarMessage.scala b/scala-libraries/scala-libraries-4/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarMessage.scala similarity index 100% rename from scala-libraries-4/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarMessage.scala rename to scala-libraries/scala-libraries-4/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarMessage.scala diff --git a/scala-libraries-4/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarProducer.scala b/scala-libraries/scala-libraries-4/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarProducer.scala similarity index 100% rename from scala-libraries-4/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarProducer.scala rename to scala-libraries/scala-libraries-4/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarProducer.scala diff --git a/scala-libraries-4/src/main/scala-2/com/baeldung/scala/testcontainers/SimpleS3Uploader.scala b/scala-libraries/scala-libraries-4/src/main/scala-2/com/baeldung/scala/testcontainers/SimpleS3Uploader.scala similarity index 100% rename from scala-libraries-4/src/main/scala-2/com/baeldung/scala/testcontainers/SimpleS3Uploader.scala rename to scala-libraries/scala-libraries-4/src/main/scala-2/com/baeldung/scala/testcontainers/SimpleS3Uploader.scala diff --git a/scala-libraries-4/src/redis-intro/build.sbt b/scala-libraries/scala-libraries-4/src/redis-intro/build.sbt similarity index 100% rename from scala-libraries-4/src/redis-intro/build.sbt rename to scala-libraries/scala-libraries-4/src/redis-intro/build.sbt diff --git a/scala-libraries-4/src/redis-intro/docker-compose.yml b/scala-libraries/scala-libraries-4/src/redis-intro/docker-compose.yml similarity index 100% rename from scala-libraries-4/src/redis-intro/docker-compose.yml rename to scala-libraries/scala-libraries-4/src/redis-intro/docker-compose.yml diff --git a/scala-libraries-4/src/redis-intro/project/Dependencies.scala b/scala-libraries/scala-libraries-4/src/redis-intro/project/Dependencies.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/project/Dependencies.scala rename to scala-libraries/scala-libraries-4/src/redis-intro/project/Dependencies.scala diff --git a/scala-libraries-4/src/redis-intro/project/build.properties b/scala-libraries/scala-libraries-4/src/redis-intro/project/build.properties similarity index 100% rename from scala-libraries-4/src/redis-intro/project/build.properties rename to scala-libraries/scala-libraries-4/src/redis-intro/project/build.properties diff --git a/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/cache/CacheThrough.scala b/scala-libraries/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/cache/CacheThrough.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/cache/CacheThrough.scala rename to scala-libraries/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/cache/CacheThrough.scala diff --git a/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/db/BooksDB.scala b/scala-libraries/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/db/BooksDB.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/db/BooksDB.scala rename to scala-libraries/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/db/BooksDB.scala diff --git a/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/db/VirtualDatabase.scala b/scala-libraries/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/db/VirtualDatabase.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/db/VirtualDatabase.scala rename to scala-libraries/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/db/VirtualDatabase.scala diff --git a/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/geospatial/GeoPoints.scala b/scala-libraries/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/geospatial/GeoPoints.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/geospatial/GeoPoints.scala rename to scala-libraries/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/geospatial/GeoPoints.scala diff --git a/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/geospatial/Geospatial.scala b/scala-libraries/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/geospatial/Geospatial.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/geospatial/Geospatial.scala rename to scala-libraries/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/geospatial/Geospatial.scala diff --git a/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/leaderboard/LeaderBoard.scala b/scala-libraries/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/leaderboard/LeaderBoard.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/leaderboard/LeaderBoard.scala rename to scala-libraries/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/leaderboard/LeaderBoard.scala diff --git a/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/leaderboard/model/EmployDB.scala b/scala-libraries/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/leaderboard/model/EmployDB.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/leaderboard/model/EmployDB.scala rename to scala-libraries/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/leaderboard/model/EmployDB.scala diff --git a/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/leaderboard/model/EmployeeKey.scala b/scala-libraries/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/leaderboard/model/EmployeeKey.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/leaderboard/model/EmployeeKey.scala rename to scala-libraries/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/leaderboard/model/EmployeeKey.scala diff --git a/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/pubsub/Publisher.scala b/scala-libraries/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/pubsub/Publisher.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/pubsub/Publisher.scala rename to scala-libraries/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/pubsub/Publisher.scala diff --git a/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/pubsub/Subscriber.scala b/scala-libraries/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/pubsub/Subscriber.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/pubsub/Subscriber.scala rename to scala-libraries/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/pubsub/Subscriber.scala diff --git a/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/ratelimit/RateLimit.scala b/scala-libraries/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/ratelimit/RateLimit.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/ratelimit/RateLimit.scala rename to scala-libraries/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/ratelimit/RateLimit.scala diff --git a/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/util/RedisClients.scala b/scala-libraries/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/util/RedisClients.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/util/RedisClients.scala rename to scala-libraries/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/util/RedisClients.scala diff --git a/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/util/WithRedis.scala b/scala-libraries/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/util/WithRedis.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/util/WithRedis.scala rename to scala-libraries/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/util/WithRedis.scala diff --git a/scala-libraries-4/src/redis-intro/src/test/scala/com/baeldung/redis/HelloRedisSpec.scala b/scala-libraries/scala-libraries-4/src/redis-intro/src/test/scala/com/baeldung/redis/HelloRedisSpec.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/test/scala/com/baeldung/redis/HelloRedisSpec.scala rename to scala-libraries/scala-libraries-4/src/redis-intro/src/test/scala/com/baeldung/redis/HelloRedisSpec.scala diff --git a/scala-libraries-4/src/redis-intro/src/test/scala/com/baeldung/redis/cache/CacheThroughSpec.scala b/scala-libraries/scala-libraries-4/src/redis-intro/src/test/scala/com/baeldung/redis/cache/CacheThroughSpec.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/test/scala/com/baeldung/redis/cache/CacheThroughSpec.scala rename to scala-libraries/scala-libraries-4/src/redis-intro/src/test/scala/com/baeldung/redis/cache/CacheThroughSpec.scala diff --git a/scala-libraries-4/src/redis-intro/src/test/scala/com/baeldung/redis/geospatial/GeospatialSpec.scala b/scala-libraries/scala-libraries-4/src/redis-intro/src/test/scala/com/baeldung/redis/geospatial/GeospatialSpec.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/test/scala/com/baeldung/redis/geospatial/GeospatialSpec.scala rename to scala-libraries/scala-libraries-4/src/redis-intro/src/test/scala/com/baeldung/redis/geospatial/GeospatialSpec.scala diff --git a/scala-libraries-4/src/redis-intro/src/test/scala/com/baeldung/redis/leaderboard/LeaderboardSpec.scala b/scala-libraries/scala-libraries-4/src/redis-intro/src/test/scala/com/baeldung/redis/leaderboard/LeaderboardSpec.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/test/scala/com/baeldung/redis/leaderboard/LeaderboardSpec.scala rename to scala-libraries/scala-libraries-4/src/redis-intro/src/test/scala/com/baeldung/redis/leaderboard/LeaderboardSpec.scala diff --git a/scala-libraries-4/src/redis-intro/src/test/scala/com/baeldung/redis/ratelimit/RateLimitSpec.scala b/scala-libraries/scala-libraries-4/src/redis-intro/src/test/scala/com/baeldung/redis/ratelimit/RateLimitSpec.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/test/scala/com/baeldung/redis/ratelimit/RateLimitSpec.scala rename to scala-libraries/scala-libraries-4/src/redis-intro/src/test/scala/com/baeldung/redis/ratelimit/RateLimitSpec.scala diff --git a/scala-libraries-4/src/redis-intro/src/test/scala/com/baeldung/redis/util/RedisSpec.scala b/scala-libraries/scala-libraries-4/src/redis-intro/src/test/scala/com/baeldung/redis/util/RedisSpec.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/test/scala/com/baeldung/redis/util/RedisSpec.scala rename to scala-libraries/scala-libraries-4/src/redis-intro/src/test/scala/com/baeldung/redis/util/RedisSpec.scala diff --git a/scala-libraries-4/src/test/scala-2/com/baeldung/scala/async/ScalaAsyncTest.scala b/scala-libraries/scala-libraries-4/src/test/scala-2/com/baeldung/scala/async/ScalaAsyncTest.scala similarity index 100% rename from scala-libraries-4/src/test/scala-2/com/baeldung/scala/async/ScalaAsyncTest.scala rename to scala-libraries/scala-libraries-4/src/test/scala-2/com/baeldung/scala/async/ScalaAsyncTest.scala diff --git a/scala-libraries-4/src/test/scala-2/com/baeldung/scala/cats/writer/WriterMonadUnitTest.scala b/scala-libraries/scala-libraries-4/src/test/scala-2/com/baeldung/scala/cats/writer/WriterMonadUnitTest.scala similarity index 100% rename from scala-libraries-4/src/test/scala-2/com/baeldung/scala/cats/writer/WriterMonadUnitTest.scala rename to scala-libraries/scala-libraries-4/src/test/scala-2/com/baeldung/scala/cats/writer/WriterMonadUnitTest.scala diff --git a/scala-libraries-4/src/test/scala-2/com/baeldung/scala/skunk/Session.scala b/scala-libraries/scala-libraries-4/src/test/scala-2/com/baeldung/scala/skunk/Session.scala similarity index 100% rename from scala-libraries-4/src/test/scala-2/com/baeldung/scala/skunk/Session.scala rename to scala-libraries/scala-libraries-4/src/test/scala-2/com/baeldung/scala/skunk/Session.scala diff --git a/scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/AsyncTest.scala b/scala-libraries/scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/AsyncTest.scala similarity index 100% rename from scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/AsyncTest.scala rename to scala-libraries/scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/AsyncTest.scala diff --git a/scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/BeforeAfterTest.scala b/scala-libraries/scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/BeforeAfterTest.scala similarity index 100% rename from scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/BeforeAfterTest.scala rename to scala-libraries/scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/BeforeAfterTest.scala diff --git a/scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/ExceptionHandling.scala b/scala-libraries/scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/ExceptionHandling.scala similarity index 100% rename from scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/ExceptionHandling.scala rename to scala-libraries/scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/ExceptionHandling.scala diff --git a/scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/NestedTest.scala b/scala-libraries/scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/NestedTest.scala similarity index 100% rename from scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/NestedTest.scala rename to scala-libraries/scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/NestedTest.scala diff --git a/scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/RetryTest.scala b/scala-libraries/scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/RetryTest.scala similarity index 100% rename from scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/RetryTest.scala rename to scala-libraries/scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/RetryTest.scala diff --git a/scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/RetryTestSuite.scala b/scala-libraries/scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/RetryTestSuite.scala similarity index 100% rename from scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/RetryTestSuite.scala rename to scala-libraries/scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/RetryTestSuite.scala diff --git a/scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/SimpleUTest.scala b/scala-libraries/scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/SimpleUTest.scala similarity index 100% rename from scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/SimpleUTest.scala rename to scala-libraries/scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/SimpleUTest.scala diff --git a/scala-libraries-5/README.md b/scala-libraries/scala-libraries-5/README.md similarity index 100% rename from scala-libraries-5/README.md rename to scala-libraries/scala-libraries-5/README.md diff --git a/scala-libraries-5/src/main/resources/docker-compose.yml b/scala-libraries/scala-libraries-5/src/main/resources/docker-compose.yml similarity index 100% rename from scala-libraries-5/src/main/resources/docker-compose.yml rename to scala-libraries/scala-libraries-5/src/main/resources/docker-compose.yml diff --git a/scala-libraries-5/src/main/resources/kafka-intro-avro.conf b/scala-libraries/scala-libraries-5/src/main/resources/kafka-intro-avro.conf similarity index 100% rename from scala-libraries-5/src/main/resources/kafka-intro-avro.conf rename to scala-libraries/scala-libraries-5/src/main/resources/kafka-intro-avro.conf diff --git a/scala-libraries-5/src/main/resources/kafka-intro.conf b/scala-libraries/scala-libraries-5/src/main/resources/kafka-intro.conf similarity index 100% rename from scala-libraries-5/src/main/resources/kafka-intro.conf rename to scala-libraries/scala-libraries-5/src/main/resources/kafka-intro.conf diff --git a/scala-libraries-5/src/main/resources/log4j2.xml b/scala-libraries/scala-libraries-5/src/main/resources/log4j2.xml similarity index 100% rename from scala-libraries-5/src/main/resources/log4j2.xml rename to scala-libraries/scala-libraries-5/src/main/resources/log4j2.xml diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/common/Article.scala b/scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/common/Article.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/common/Article.scala rename to scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/common/Article.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/common/ClientConfig.scala b/scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/common/ClientConfig.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/common/ClientConfig.scala rename to scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/common/ClientConfig.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/common/SerdeConfig.scala b/scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/common/SerdeConfig.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/common/SerdeConfig.scala rename to scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/common/SerdeConfig.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleAvroConsumer.scala b/scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleAvroConsumer.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleAvroConsumer.scala rename to scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleAvroConsumer.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleJsonStringConsumer.scala b/scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleJsonStringConsumer.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleJsonStringConsumer.scala rename to scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleJsonStringConsumer.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/AvroDeSerializer.scala b/scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/AvroDeSerializer.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/AvroDeSerializer.scala rename to scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/AvroDeSerializer.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerConfig.scala b/scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerConfig.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerConfig.scala rename to scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerConfig.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerUtils.scala b/scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerUtils.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerUtils.scala rename to scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerUtils.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/JsonStringDeSerializer.scala b/scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/JsonStringDeSerializer.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/JsonStringDeSerializer.scala rename to scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/JsonStringDeSerializer.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleAvroProducer.scala b/scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleAvroProducer.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleAvroProducer.scala rename to scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleAvroProducer.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleJsonStringProducer.scala b/scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleJsonStringProducer.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleJsonStringProducer.scala rename to scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleJsonStringProducer.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/Generator.scala b/scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/Generator.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/Generator.scala rename to scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/Generator.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/AvroSerializer.scala b/scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/AvroSerializer.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/AvroSerializer.scala rename to scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/AvroSerializer.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/JsonStringSerializer.scala b/scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/JsonStringSerializer.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/JsonStringSerializer.scala rename to scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/JsonStringSerializer.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerConfig.scala b/scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerConfig.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerConfig.scala rename to scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerConfig.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerUtils.scala b/scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerUtils.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerUtils.scala rename to scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerUtils.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/Fractional.scala b/scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/Fractional.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/Fractional.scala rename to scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/Fractional.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/Integral.scala b/scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/Integral.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/Integral.scala rename to scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/Integral.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/Numeric.scala b/scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/Numeric.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/Numeric.scala rename to scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/Numeric.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/groups/Semigroups.scala b/scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/groups/Semigroups.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/groups/Semigroups.scala rename to scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/groups/Semigroups.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/groups/TranscationGroup.scala b/scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/groups/TranscationGroup.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/groups/TranscationGroup.scala rename to scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/groups/TranscationGroup.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/macros/CFor.scala b/scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/macros/CFor.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/macros/CFor.scala rename to scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/macros/CFor.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/macros/LiteralNumberSyntax.scala b/scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/macros/LiteralNumberSyntax.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/macros/LiteralNumberSyntax.scala rename to scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/macros/LiteralNumberSyntax.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/monoids/AdditiveMonoid.scala b/scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/monoids/AdditiveMonoid.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/monoids/AdditiveMonoid.scala rename to scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/monoids/AdditiveMonoid.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/numbers/Complexes.scala b/scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/numbers/Complexes.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/numbers/Complexes.scala rename to scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/numbers/Complexes.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/numbers/Intervals.scala b/scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/numbers/Intervals.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/numbers/Intervals.scala rename to scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/numbers/Intervals.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/numbers/Naturals.scala b/scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/numbers/Naturals.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/numbers/Naturals.scala rename to scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/numbers/Naturals.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/numbers/Rationals.scala b/scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/numbers/Rationals.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/numbers/Rationals.scala rename to scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/numbers/Rationals.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/numbers/Reals.scala b/scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/numbers/Reals.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/numbers/Reals.scala rename to scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/numbers/Reals.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/rings/EuclideanRings.scala b/scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/rings/EuclideanRings.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/rings/EuclideanRings.scala rename to scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/rings/EuclideanRings.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/rings/Rings.scala b/scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/rings/Rings.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/rings/Rings.scala rename to scala-libraries/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/rings/Rings.scala diff --git a/scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/FractionalUnitTest.scala b/scala-libraries/scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/FractionalUnitTest.scala similarity index 100% rename from scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/FractionalUnitTest.scala rename to scala-libraries/scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/FractionalUnitTest.scala diff --git a/scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/IntegralUnitTest.scala b/scala-libraries/scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/IntegralUnitTest.scala similarity index 100% rename from scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/IntegralUnitTest.scala rename to scala-libraries/scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/IntegralUnitTest.scala diff --git a/scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/NumericUnitTest.scala b/scala-libraries/scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/NumericUnitTest.scala similarity index 100% rename from scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/NumericUnitTest.scala rename to scala-libraries/scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/NumericUnitTest.scala diff --git a/scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/groups/TransactionGroupUnitTest.scala b/scala-libraries/scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/groups/TransactionGroupUnitTest.scala similarity index 100% rename from scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/groups/TransactionGroupUnitTest.scala rename to scala-libraries/scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/groups/TransactionGroupUnitTest.scala diff --git a/scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/monoids/AdditiveMonoidUnitTest.scala b/scala-libraries/scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/monoids/AdditiveMonoidUnitTest.scala similarity index 100% rename from scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/monoids/AdditiveMonoidUnitTest.scala rename to scala-libraries/scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/monoids/AdditiveMonoidUnitTest.scala diff --git a/scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/rings/EuclideanRingUnitTest.scala b/scala-libraries/scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/rings/EuclideanRingUnitTest.scala similarity index 100% rename from scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/rings/EuclideanRingUnitTest.scala rename to scala-libraries/scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/rings/EuclideanRingUnitTest.scala diff --git a/scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/rings/RingsUnitTest.scala b/scala-libraries/scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/rings/RingsUnitTest.scala similarity index 100% rename from scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/rings/RingsUnitTest.scala rename to scala-libraries/scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/rings/RingsUnitTest.scala diff --git a/scala-libraries-6/src/main/scala-3/com/baeldung/circeyaml/YamlExample.scala b/scala-libraries/scala-libraries-6/src/main/scala-3/com/baeldung/circeyaml/YamlExample.scala similarity index 100% rename from scala-libraries-6/src/main/scala-3/com/baeldung/circeyaml/YamlExample.scala rename to scala-libraries/scala-libraries-6/src/main/scala-3/com/baeldung/circeyaml/YamlExample.scala diff --git a/scala-libraries-6/src/test/scala-3/com/baeldung/circeyaml/YamlExampleSpec.scala b/scala-libraries/scala-libraries-6/src/test/scala-3/com/baeldung/circeyaml/YamlExampleSpec.scala similarity index 100% rename from scala-libraries-6/src/test/scala-3/com/baeldung/circeyaml/YamlExampleSpec.scala rename to scala-libraries/scala-libraries-6/src/test/scala-3/com/baeldung/circeyaml/YamlExampleSpec.scala diff --git a/scala-libraries-os/README.md b/scala-libraries/scala-libraries-os/README.md similarity index 100% rename from scala-libraries-os/README.md rename to scala-libraries/scala-libraries-os/README.md diff --git a/scala-libraries-os/src/main/resources/log4j2.xml b/scala-libraries/scala-libraries-os/src/main/resources/log4j2.xml similarity index 100% rename from scala-libraries-os/src/main/resources/log4j2.xml rename to scala-libraries/scala-libraries-os/src/main/resources/log4j2.xml diff --git a/scala-libraries-os/src/main/scala-2/com/baeldung/scala/os/OsApp.scala b/scala-libraries/scala-libraries-os/src/main/scala-2/com/baeldung/scala/os/OsApp.scala similarity index 100% rename from scala-libraries-os/src/main/scala-2/com/baeldung/scala/os/OsApp.scala rename to scala-libraries/scala-libraries-os/src/main/scala-2/com/baeldung/scala/os/OsApp.scala diff --git a/scala-libraries-os/src/main/scala-2/com/baeldung/scala/os/ScalaSysApp.scala b/scala-libraries/scala-libraries-os/src/main/scala-2/com/baeldung/scala/os/ScalaSysApp.scala similarity index 100% rename from scala-libraries-os/src/main/scala-2/com/baeldung/scala/os/ScalaSysApp.scala rename to scala-libraries/scala-libraries-os/src/main/scala-2/com/baeldung/scala/os/ScalaSysApp.scala diff --git a/scala3-lang/README.md b/scala3-lang/scala3-lang-1/README.md similarity index 100% rename from scala3-lang/README.md rename to scala3-lang/scala3-lang-1/README.md diff --git a/scala3-lang-2/project/build.properties b/scala3-lang/scala3-lang-1/project/build.properties similarity index 100% rename from scala3-lang-2/project/build.properties rename to scala3-lang/scala3-lang-1/project/build.properties diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/enum/ADTExample.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/enum/ADTExample.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/enum/ADTExample.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/enum/ADTExample.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/enum/ColorExamples.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/enum/ColorExamples.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/enum/ColorExamples.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/enum/ColorExamples.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/ExtensionMethod.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/implicits/ExtensionMethod.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/implicits/ExtensionMethod.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/implicits/ExtensionMethod.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/ImplicitConversion.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/implicits/ImplicitConversion.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/implicits/ImplicitConversion.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/implicits/ImplicitConversion.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/ProvidingContextualEnvironment.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/implicits/ProvidingContextualEnvironment.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/implicits/ProvidingContextualEnvironment.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/implicits/ProvidingContextualEnvironment.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/WritingTypeclassInstances.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/implicits/WritingTypeclassInstances.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/implicits/WritingTypeclassInstances.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/implicits/WritingTypeclassInstances.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/Extension.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/Extension.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/Extension.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/Extension.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitConversion.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitConversion.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitConversion.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitConversion.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitParameter.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitParameter.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitParameter.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitParameter.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitlyMagic.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitlyMagic.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitlyMagic.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitlyMagic.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/Extension.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/Extension.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/Extension.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/Extension.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitConversion.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitConversion.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitConversion.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitConversion.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitParameter.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitParameter.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitParameter.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitParameter.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitlyMagic.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitlyMagic.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitlyMagic.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitlyMagic.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/extensions/StringExtensions.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/implicits/extensions/StringExtensions.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/implicits/extensions/StringExtensions.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/implicits/extensions/StringExtensions.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/intersectiontypes/BasicIntersectionType.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/intersectiontypes/BasicIntersectionType.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/intersectiontypes/BasicIntersectionType.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/intersectiontypes/BasicIntersectionType.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/intersectiontypes/DuckTyping.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/intersectiontypes/DuckTyping.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/intersectiontypes/DuckTyping.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/intersectiontypes/DuckTyping.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/intersectiontypes/Inheritance.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/intersectiontypes/Inheritance.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/intersectiontypes/Inheritance.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/intersectiontypes/Inheritance.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/intersectiontypes/Overloading.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/intersectiontypes/Overloading.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/intersectiontypes/Overloading.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/intersectiontypes/Overloading.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/macros/inline/InlineCompilerValidation.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/macros/inline/InlineCompilerValidation.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/macros/inline/InlineCompilerValidation.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/macros/inline/InlineCompilerValidation.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/macros/inline/InlineDef.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/macros/inline/InlineDef.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/macros/inline/InlineDef.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/macros/inline/InlineDef.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/macros/inline/InlineIf.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/macros/inline/InlineIf.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/macros/inline/InlineIf.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/macros/inline/InlineIf.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/macros/inline/InlineMatch.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/macros/inline/InlineMatch.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/macros/inline/InlineMatch.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/macros/inline/InlineMatch.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/macros/inline/InlineParams.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/macros/inline/InlineParams.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/macros/inline/InlineParams.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/macros/inline/InlineParams.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/macros/inline/InlineVal.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/macros/inline/InlineVal.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/macros/inline/InlineVal.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/macros/inline/InlineVal.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/macros/inline/InlineValDef.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/macros/inline/InlineValDef.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/macros/inline/InlineValDef.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/macros/inline/InlineValDef.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/macros/inline/TransparentInline.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/macros/inline/TransparentInline.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/macros/inline/TransparentInline.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/macros/inline/TransparentInline.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/mainmethods/HelloWorld.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/mainmethods/HelloWorld.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/mainmethods/HelloWorld.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/mainmethods/HelloWorld.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/mainmethods/HelloWorldObject.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/mainmethods/HelloWorldObject.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/mainmethods/HelloWorldObject.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/mainmethods/HelloWorldObject.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/mainmethods/WithParameters.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/mainmethods/WithParameters.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/mainmethods/WithParameters.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/mainmethods/WithParameters.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/multiversalequality/CanEqualDeriveClause.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/multiversalequality/CanEqualDeriveClause.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/multiversalequality/CanEqualDeriveClause.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/multiversalequality/CanEqualDeriveClause.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/multiversalequality/CanEqualGivenInstance.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/multiversalequality/CanEqualGivenInstance.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/multiversalequality/CanEqualGivenInstance.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/multiversalequality/CanEqualGivenInstance.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/multiversalequality/MultiversalEquality.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/multiversalequality/MultiversalEquality.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/multiversalequality/MultiversalEquality.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/multiversalequality/MultiversalEquality.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/multiversalequality/UniversalEquality.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/multiversalequality/UniversalEquality.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/multiversalequality/UniversalEquality.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/multiversalequality/UniversalEquality.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/openclasses/Album.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/openclasses/Album.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/openclasses/Album.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/openclasses/Album.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/openclasses/DeluxeEdition.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/openclasses/DeluxeEdition.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/openclasses/DeluxeEdition.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/openclasses/DeluxeEdition.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/quitesyntax/Example.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/quitesyntax/Example.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/quitesyntax/Example.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/quitesyntax/Example.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/traits/ParameterizedTrait.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/traits/ParameterizedTrait.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/traits/ParameterizedTrait.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/traits/ParameterizedTrait.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/typesystem/CompoundTypes.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/typesystem/CompoundTypes.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/typesystem/CompoundTypes.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/typesystem/CompoundTypes.scala diff --git a/scala3-lang/src/main/scala/com/baeldung/scala3/typesystem/OpaqueTypeAlias.scala b/scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/typesystem/OpaqueTypeAlias.scala similarity index 100% rename from scala3-lang/src/main/scala/com/baeldung/scala3/typesystem/OpaqueTypeAlias.scala rename to scala3-lang/scala3-lang-1/src/main/scala/com/baeldung/scala3/typesystem/OpaqueTypeAlias.scala diff --git a/scala3-lang/src/test/scala/com/baeldung/scala3/implicits/ExtensionMethodUnitTest.scala b/scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/implicits/ExtensionMethodUnitTest.scala similarity index 100% rename from scala3-lang/src/test/scala/com/baeldung/scala3/implicits/ExtensionMethodUnitTest.scala rename to scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/implicits/ExtensionMethodUnitTest.scala diff --git a/scala3-lang/src/test/scala/com/baeldung/scala3/implicits/ImplicitConversionUnitTest.scala b/scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/implicits/ImplicitConversionUnitTest.scala similarity index 100% rename from scala3-lang/src/test/scala/com/baeldung/scala3/implicits/ImplicitConversionUnitTest.scala rename to scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/implicits/ImplicitConversionUnitTest.scala diff --git a/scala3-lang/src/test/scala/com/baeldung/scala3/implicits/ProvidingContextualEnvironmentUnitTest.scala b/scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/implicits/ProvidingContextualEnvironmentUnitTest.scala similarity index 100% rename from scala3-lang/src/test/scala/com/baeldung/scala3/implicits/ProvidingContextualEnvironmentUnitTest.scala rename to scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/implicits/ProvidingContextualEnvironmentUnitTest.scala diff --git a/scala3-lang/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ExtensionUnitTest.scala b/scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ExtensionUnitTest.scala similarity index 100% rename from scala3-lang/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ExtensionUnitTest.scala rename to scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ExtensionUnitTest.scala diff --git a/scala3-lang/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitConversionUnitTest.scala b/scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitConversionUnitTest.scala similarity index 100% rename from scala3-lang/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitConversionUnitTest.scala rename to scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitConversionUnitTest.scala diff --git a/scala3-lang/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitParameterUnitTest.scala b/scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitParameterUnitTest.scala similarity index 100% rename from scala3-lang/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitParameterUnitTest.scala rename to scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitParameterUnitTest.scala diff --git a/scala3-lang/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ExtensionUnitTest.scala b/scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ExtensionUnitTest.scala similarity index 100% rename from scala3-lang/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ExtensionUnitTest.scala rename to scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ExtensionUnitTest.scala diff --git a/scala3-lang/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitConversionUnitTest.scala b/scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitConversionUnitTest.scala similarity index 100% rename from scala3-lang/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitConversionUnitTest.scala rename to scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitConversionUnitTest.scala diff --git a/scala3-lang/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitParameterUnitTest.scala b/scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitParameterUnitTest.scala similarity index 100% rename from scala3-lang/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitParameterUnitTest.scala rename to scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitParameterUnitTest.scala diff --git a/scala3-lang/src/test/scala/com/baeldung/scala3/implicits/extensions/ExtensionsUnitTest.scala b/scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/implicits/extensions/ExtensionsUnitTest.scala similarity index 100% rename from scala3-lang/src/test/scala/com/baeldung/scala3/implicits/extensions/ExtensionsUnitTest.scala rename to scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/implicits/extensions/ExtensionsUnitTest.scala diff --git a/scala3-lang/src/test/scala/com/baeldung/scala3/intersectiontypes/BasicIntersectionTypeUnitTest.scala b/scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/intersectiontypes/BasicIntersectionTypeUnitTest.scala similarity index 100% rename from scala3-lang/src/test/scala/com/baeldung/scala3/intersectiontypes/BasicIntersectionTypeUnitTest.scala rename to scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/intersectiontypes/BasicIntersectionTypeUnitTest.scala diff --git a/scala3-lang/src/test/scala/com/baeldung/scala3/intersectiontypes/DuckTypingUnitTest.scala b/scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/intersectiontypes/DuckTypingUnitTest.scala similarity index 100% rename from scala3-lang/src/test/scala/com/baeldung/scala3/intersectiontypes/DuckTypingUnitTest.scala rename to scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/intersectiontypes/DuckTypingUnitTest.scala diff --git a/scala3-lang/src/test/scala/com/baeldung/scala3/intersectiontypes/InheritanceUnitTest.scala b/scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/intersectiontypes/InheritanceUnitTest.scala similarity index 100% rename from scala3-lang/src/test/scala/com/baeldung/scala3/intersectiontypes/InheritanceUnitTest.scala rename to scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/intersectiontypes/InheritanceUnitTest.scala diff --git a/scala3-lang/src/test/scala/com/baeldung/scala3/intersectiontypes/OverloadingUnitTest.scala b/scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/intersectiontypes/OverloadingUnitTest.scala similarity index 100% rename from scala3-lang/src/test/scala/com/baeldung/scala3/intersectiontypes/OverloadingUnitTest.scala rename to scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/intersectiontypes/OverloadingUnitTest.scala diff --git a/scala3-lang/src/test/scala/com/baeldung/scala3/multiversalequality/CanEqualDeriveClauseUnitTest.scala b/scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/multiversalequality/CanEqualDeriveClauseUnitTest.scala similarity index 100% rename from scala3-lang/src/test/scala/com/baeldung/scala3/multiversalequality/CanEqualDeriveClauseUnitTest.scala rename to scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/multiversalequality/CanEqualDeriveClauseUnitTest.scala diff --git a/scala3-lang/src/test/scala/com/baeldung/scala3/multiversalequality/CanEqualGivenInstanceUnitTest.scala b/scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/multiversalequality/CanEqualGivenInstanceUnitTest.scala similarity index 100% rename from scala3-lang/src/test/scala/com/baeldung/scala3/multiversalequality/CanEqualGivenInstanceUnitTest.scala rename to scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/multiversalequality/CanEqualGivenInstanceUnitTest.scala diff --git a/scala3-lang/src/test/scala/com/baeldung/scala3/multiversalequality/MultiversalEqualityUnitTest.scala b/scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/multiversalequality/MultiversalEqualityUnitTest.scala similarity index 100% rename from scala3-lang/src/test/scala/com/baeldung/scala3/multiversalequality/MultiversalEqualityUnitTest.scala rename to scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/multiversalequality/MultiversalEqualityUnitTest.scala diff --git a/scala3-lang/src/test/scala/com/baeldung/scala3/multiversalequality/UniversalEqualityUnitTest.scala b/scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/multiversalequality/UniversalEqualityUnitTest.scala similarity index 100% rename from scala3-lang/src/test/scala/com/baeldung/scala3/multiversalequality/UniversalEqualityUnitTest.scala rename to scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/multiversalequality/UniversalEqualityUnitTest.scala diff --git a/scala3-lang/src/test/scala/com/baeldung/scala3/traits/ParameterizedTraitUnitTest.scala b/scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/traits/ParameterizedTraitUnitTest.scala similarity index 100% rename from scala3-lang/src/test/scala/com/baeldung/scala3/traits/ParameterizedTraitUnitTest.scala rename to scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/traits/ParameterizedTraitUnitTest.scala diff --git a/scala3-lang/src/test/scala/com/baeldung/scala3/typesystem/CompoundTypesUnitTest.scala b/scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/typesystem/CompoundTypesUnitTest.scala similarity index 100% rename from scala3-lang/src/test/scala/com/baeldung/scala3/typesystem/CompoundTypesUnitTest.scala rename to scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/typesystem/CompoundTypesUnitTest.scala diff --git a/scala3-lang/src/test/scala/com/baeldung/scala3/typesystem/OpaqueTypeAliasUnitTest.scala b/scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/typesystem/OpaqueTypeAliasUnitTest.scala similarity index 100% rename from scala3-lang/src/test/scala/com/baeldung/scala3/typesystem/OpaqueTypeAliasUnitTest.scala rename to scala3-lang/scala3-lang-1/src/test/scala/com/baeldung/scala3/typesystem/OpaqueTypeAliasUnitTest.scala diff --git a/scala3-lang-2/README.md b/scala3-lang/scala3-lang-2/README.md similarity index 100% rename from scala3-lang-2/README.md rename to scala3-lang/scala3-lang-2/README.md diff --git a/scala3-lang-2/build.sbt b/scala3-lang/scala3-lang-2/build.sbt similarity index 100% rename from scala3-lang-2/build.sbt rename to scala3-lang/scala3-lang-2/build.sbt diff --git a/scala3-lang/project/build.properties b/scala3-lang/scala3-lang-2/project/build.properties similarity index 100% rename from scala3-lang/project/build.properties rename to scala3-lang/scala3-lang-2/project/build.properties diff --git a/scala3-lang-2/src/main/java/com/baeldung/JavaOperator.java b/scala3-lang/scala3-lang-2/src/main/java/com/baeldung/JavaOperator.java similarity index 100% rename from scala3-lang-2/src/main/java/com/baeldung/JavaOperator.java rename to scala3-lang/scala3-lang-2/src/main/java/com/baeldung/JavaOperator.java diff --git a/scala3-lang-2/src/main/scala/com/baeldung/scala3/TuplesInScala.scala b/scala3-lang/scala3-lang-2/src/main/scala/com/baeldung/scala3/TuplesInScala.scala similarity index 100% rename from scala3-lang-2/src/main/scala/com/baeldung/scala3/TuplesInScala.scala rename to scala3-lang/scala3-lang-2/src/main/scala/com/baeldung/scala3/TuplesInScala.scala diff --git a/scala3-lang-2/src/main/scala/com/baeldung/scala3/contextualabstractions/Givens.scala b/scala3-lang/scala3-lang-2/src/main/scala/com/baeldung/scala3/contextualabstractions/Givens.scala similarity index 100% rename from scala3-lang-2/src/main/scala/com/baeldung/scala3/contextualabstractions/Givens.scala rename to scala3-lang/scala3-lang-2/src/main/scala/com/baeldung/scala3/contextualabstractions/Givens.scala diff --git a/scala3-lang-2/src/main/scala/com/baeldung/scala3/contextualabstractions/UsingClause.scala b/scala3-lang/scala3-lang-2/src/main/scala/com/baeldung/scala3/contextualabstractions/UsingClause.scala similarity index 100% rename from scala3-lang-2/src/main/scala/com/baeldung/scala3/contextualabstractions/UsingClause.scala rename to scala3-lang/scala3-lang-2/src/main/scala/com/baeldung/scala3/contextualabstractions/UsingClause.scala diff --git a/scala3-lang-2/src/main/scala/com/baeldung/scala3/locally/LocallyBlockSample.scala b/scala3-lang/scala3-lang-2/src/main/scala/com/baeldung/scala3/locally/LocallyBlockSample.scala similarity index 100% rename from scala3-lang-2/src/main/scala/com/baeldung/scala3/locally/LocallyBlockSample.scala rename to scala3-lang/scala3-lang-2/src/main/scala/com/baeldung/scala3/locally/LocallyBlockSample.scala diff --git a/scala3-lang-2/src/main/scala/com/baeldung/scala3/macros/GenericMacros.scala b/scala3-lang/scala3-lang-2/src/main/scala/com/baeldung/scala3/macros/GenericMacros.scala similarity index 100% rename from scala3-lang-2/src/main/scala/com/baeldung/scala3/macros/GenericMacros.scala rename to scala3-lang/scala3-lang-2/src/main/scala/com/baeldung/scala3/macros/GenericMacros.scala diff --git a/scala3-lang-2/src/main/scala/com/baeldung/scala3/macros/OddEvenMacros.scala b/scala3-lang/scala3-lang-2/src/main/scala/com/baeldung/scala3/macros/OddEvenMacros.scala similarity index 100% rename from scala3-lang-2/src/main/scala/com/baeldung/scala3/macros/OddEvenMacros.scala rename to scala3-lang/scala3-lang-2/src/main/scala/com/baeldung/scala3/macros/OddEvenMacros.scala diff --git a/scala3-lang-2/src/main/scala/com/baeldung/scala3/mainfeatures/App.scala b/scala3-lang/scala3-lang-2/src/main/scala/com/baeldung/scala3/mainfeatures/App.scala similarity index 100% rename from scala3-lang-2/src/main/scala/com/baeldung/scala3/mainfeatures/App.scala rename to scala3-lang/scala3-lang-2/src/main/scala/com/baeldung/scala3/mainfeatures/App.scala diff --git a/scala3-lang-2/src/main/scala/com/baeldung/scala3/matchexpressions/MatchExpressionImprovements.scala b/scala3-lang/scala3-lang-2/src/main/scala/com/baeldung/scala3/matchexpressions/MatchExpressionImprovements.scala similarity index 100% rename from scala3-lang-2/src/main/scala/com/baeldung/scala3/matchexpressions/MatchExpressionImprovements.scala rename to scala3-lang/scala3-lang-2/src/main/scala/com/baeldung/scala3/matchexpressions/MatchExpressionImprovements.scala diff --git a/scala3-lang-2/src/main/scala/com/baeldung/scala3/matchtypes/FirstComponentOfScala2.scala b/scala3-lang/scala3-lang-2/src/main/scala/com/baeldung/scala3/matchtypes/FirstComponentOfScala2.scala similarity index 100% rename from scala3-lang-2/src/main/scala/com/baeldung/scala3/matchtypes/FirstComponentOfScala2.scala rename to scala3-lang/scala3-lang-2/src/main/scala/com/baeldung/scala3/matchtypes/FirstComponentOfScala2.scala diff --git a/scala3-lang-2/src/main/scala/com/baeldung/scala3/matchtypes/MatchTypes.scala b/scala3-lang/scala3-lang-2/src/main/scala/com/baeldung/scala3/matchtypes/MatchTypes.scala similarity index 100% rename from scala3-lang-2/src/main/scala/com/baeldung/scala3/matchtypes/MatchTypes.scala rename to scala3-lang/scala3-lang-2/src/main/scala/com/baeldung/scala3/matchtypes/MatchTypes.scala diff --git a/scala3-lang-2/src/main/scala/com/baeldung/scala3/targetname/TargetNameSample.scala b/scala3-lang/scala3-lang-2/src/main/scala/com/baeldung/scala3/targetname/TargetNameSample.scala similarity index 100% rename from scala3-lang-2/src/main/scala/com/baeldung/scala3/targetname/TargetNameSample.scala rename to scala3-lang/scala3-lang-2/src/main/scala/com/baeldung/scala3/targetname/TargetNameSample.scala diff --git a/scala3-lang-2/src/main/scala/com/baeldung/scala3/transparent/TrasparentTraitDemo.scala b/scala3-lang/scala3-lang-2/src/main/scala/com/baeldung/scala3/transparent/TrasparentTraitDemo.scala similarity index 100% rename from scala3-lang-2/src/main/scala/com/baeldung/scala3/transparent/TrasparentTraitDemo.scala rename to scala3-lang/scala3-lang-2/src/main/scala/com/baeldung/scala3/transparent/TrasparentTraitDemo.scala diff --git a/scala3-lang-2/src/test/scala/com/baeldung/scala3/annotations/ThreadUnsafeAnnotationTest.scala b/scala3-lang/scala3-lang-2/src/test/scala/com/baeldung/scala3/annotations/ThreadUnsafeAnnotationTest.scala similarity index 100% rename from scala3-lang-2/src/test/scala/com/baeldung/scala3/annotations/ThreadUnsafeAnnotationTest.scala rename to scala3-lang/scala3-lang-2/src/test/scala/com/baeldung/scala3/annotations/ThreadUnsafeAnnotationTest.scala diff --git a/scala3-lang-2/src/test/scala/com/baeldung/scala3/contextualabstractions/GivensUsingClauseUnitTest.scala b/scala3-lang/scala3-lang-2/src/test/scala/com/baeldung/scala3/contextualabstractions/GivensUsingClauseUnitTest.scala similarity index 100% rename from scala3-lang-2/src/test/scala/com/baeldung/scala3/contextualabstractions/GivensUsingClauseUnitTest.scala rename to scala3-lang/scala3-lang-2/src/test/scala/com/baeldung/scala3/contextualabstractions/GivensUsingClauseUnitTest.scala diff --git a/scala3-lang-2/src/test/scala/com/baeldung/scala3/exportclause/ExportClauseUnitTest.scala b/scala3-lang/scala3-lang-2/src/test/scala/com/baeldung/scala3/exportclause/ExportClauseUnitTest.scala similarity index 100% rename from scala3-lang-2/src/test/scala/com/baeldung/scala3/exportclause/ExportClauseUnitTest.scala rename to scala3-lang/scala3-lang-2/src/test/scala/com/baeldung/scala3/exportclause/ExportClauseUnitTest.scala diff --git a/scala3-lang-2/src/test/scala/com/baeldung/scala3/locally/LocallyBlockTest.scala b/scala3-lang/scala3-lang-2/src/test/scala/com/baeldung/scala3/locally/LocallyBlockTest.scala similarity index 100% rename from scala3-lang-2/src/test/scala/com/baeldung/scala3/locally/LocallyBlockTest.scala rename to scala3-lang/scala3-lang-2/src/test/scala/com/baeldung/scala3/locally/LocallyBlockTest.scala diff --git a/scala3-lang-2/src/test/scala/com/baeldung/scala3/macros/GenericMacrosTest.scala b/scala3-lang/scala3-lang-2/src/test/scala/com/baeldung/scala3/macros/GenericMacrosTest.scala similarity index 100% rename from scala3-lang-2/src/test/scala/com/baeldung/scala3/macros/GenericMacrosTest.scala rename to scala3-lang/scala3-lang-2/src/test/scala/com/baeldung/scala3/macros/GenericMacrosTest.scala diff --git a/scala3-lang-2/src/test/scala/com/baeldung/scala3/macros/OddEvenMacrosTest.scala b/scala3-lang/scala3-lang-2/src/test/scala/com/baeldung/scala3/macros/OddEvenMacrosTest.scala similarity index 100% rename from scala3-lang-2/src/test/scala/com/baeldung/scala3/macros/OddEvenMacrosTest.scala rename to scala3-lang/scala3-lang-2/src/test/scala/com/baeldung/scala3/macros/OddEvenMacrosTest.scala diff --git a/scala3-lang-2/src/test/scala/com/baeldung/scala3/matchexpressions/MatchExpressionImprovementstTest.scala b/scala3-lang/scala3-lang-2/src/test/scala/com/baeldung/scala3/matchexpressions/MatchExpressionImprovementstTest.scala similarity index 100% rename from scala3-lang-2/src/test/scala/com/baeldung/scala3/matchexpressions/MatchExpressionImprovementstTest.scala rename to scala3-lang/scala3-lang-2/src/test/scala/com/baeldung/scala3/matchexpressions/MatchExpressionImprovementstTest.scala diff --git a/scala3-lang-2/src/test/scala/com/baeldung/scala3/matchtypes/FirstComponentOfScala2Spec.scala b/scala3-lang/scala3-lang-2/src/test/scala/com/baeldung/scala3/matchtypes/FirstComponentOfScala2Spec.scala similarity index 100% rename from scala3-lang-2/src/test/scala/com/baeldung/scala3/matchtypes/FirstComponentOfScala2Spec.scala rename to scala3-lang/scala3-lang-2/src/test/scala/com/baeldung/scala3/matchtypes/FirstComponentOfScala2Spec.scala diff --git a/scala3-lang-2/src/test/scala/com/baeldung/scala3/matchtypes/MatchTypesSpec.scala b/scala3-lang/scala3-lang-2/src/test/scala/com/baeldung/scala3/matchtypes/MatchTypesSpec.scala similarity index 100% rename from scala3-lang-2/src/test/scala/com/baeldung/scala3/matchtypes/MatchTypesSpec.scala rename to scala3-lang/scala3-lang-2/src/test/scala/com/baeldung/scala3/matchtypes/MatchTypesSpec.scala diff --git a/scala3-lang-2/src/test/scala/com/baeldung/scala3/nonfatal/NonFatalExceptionsTest.scala b/scala3-lang/scala3-lang-2/src/test/scala/com/baeldung/scala3/nonfatal/NonFatalExceptionsTest.scala similarity index 100% rename from scala3-lang-2/src/test/scala/com/baeldung/scala3/nonfatal/NonFatalExceptionsTest.scala rename to scala3-lang/scala3-lang-2/src/test/scala/com/baeldung/scala3/nonfatal/NonFatalExceptionsTest.scala diff --git a/scala3-lang-3/README.md b/scala3-lang/scala3-lang-3/README.md similarity index 100% rename from scala3-lang-3/README.md rename to scala3-lang/scala3-lang-3/README.md diff --git a/scala3-lang-3/src/main/scala/com/baeldung/scala/typelambdas/Main.scala b/scala3-lang/scala3-lang-3/src/main/scala/com/baeldung/scala/typelambdas/Main.scala similarity index 100% rename from scala3-lang-3/src/main/scala/com/baeldung/scala/typelambdas/Main.scala rename to scala3-lang/scala3-lang-3/src/main/scala/com/baeldung/scala/typelambdas/Main.scala diff --git a/scala3-lang-3/src/test/scala/com/baeldung/scala/filters/FindFilterCollector.scala b/scala3-lang/scala3-lang-3/src/test/scala/com/baeldung/scala/filters/FindFilterCollector.scala similarity index 100% rename from scala3-lang-3/src/test/scala/com/baeldung/scala/filters/FindFilterCollector.scala rename to scala3-lang/scala3-lang-3/src/test/scala/com/baeldung/scala/filters/FindFilterCollector.scala From fded4a62a12fcda20e4004edaa07d08f6af544f5 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sun, 5 Nov 2023 11:52:58 +0100 Subject: [PATCH 0085/1318] Corrected the path for scala-core-collections sub modules --- build.sbt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index 33ef8b8f5..8e54a46df 100644 --- a/build.sbt +++ b/build.sbt @@ -134,7 +134,7 @@ lazy val scala_lang_2 = (project in file("scala-lang/scala-lang-2")) Seq(jUnitInterface) ++ scalaTestDeps ) -lazy val scala_core_collections = (project in file("scala-core-collections-1")) +lazy val scala_core_collections = (project in file("scala-core-collections/scala-core-collections-1")) .settings( name := "scala-core-collections-1", libraryDependencies ++= Seq( @@ -143,13 +143,13 @@ lazy val scala_core_collections = (project in file("scala-core-collections-1")) ) lazy val scala_core_collections_2 = - (project in file("scala-core-collections-2")) + (project in file("scala-core-collections/scala-core-collections-2")) .settings( name := "scala-core-collections-2", libraryDependencies ++= scalaTestDeps ) lazy val scala_core_collections_3 = - (project in file("scala-core-collections-3")) + (project in file("scala-core-collections/scala-core-collections-3")) .settings( libraryDependencies ++= scalaTestDeps ) From 05b8272cc031209b265b6323faa7ca29e7818e8a Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sun, 5 Nov 2023 12:00:49 +0100 Subject: [PATCH 0086/1318] Fixed the path for the file used in test --- .../src/test/scala-2/com/baeldung/scala/fs2/FS2SampleTest.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/fs2/FS2SampleTest.scala b/scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/fs2/FS2SampleTest.scala index 7f42e58a2..c260b74a9 100644 --- a/scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/fs2/FS2SampleTest.scala +++ b/scala-libraries/scala-libraries-1/src/test/scala-2/com/baeldung/scala/fs2/FS2SampleTest.scala @@ -11,7 +11,7 @@ class FS2SampleTest extends AsyncFlatSpec with AsyncIOSpec with Matchers { it should "read from a file and calculate word count" in { val outFile = "wc-fs2-output.log" - val loc = "scala-libraries/src/test/resources/fs2data.txt" + val loc = "scala-libraries/scala-libraries-1/src/test/resources/fs2data.txt" val io = Fs2Examples.readAndWriteFile(loc, outFile).compile.drain val res = io.map { _ => Source.fromFile(outFile).getLines().toList From 298b794a3b8c2a704bcd96408436017f56e12ff4 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sun, 5 Nov 2023 20:46:51 +0100 Subject: [PATCH 0087/1318] Moved app-packaging sub module to scala-sbt --- {app-packaging => scala-sbt/app-packaging}/README.md | 0 {app-packaging => scala-sbt/app-packaging}/build.sbt | 0 .../app-packaging}/project/build.properties | 0 {app-packaging => scala-sbt/app-packaging}/project/plugins.sbt | 0 .../app-packaging}/scalacli-app/ScalaCliApp.scala | 0 .../src/main/scala/com/baeldung/packaging/Main.scala | 0 6 files changed, 0 insertions(+), 0 deletions(-) rename {app-packaging => scala-sbt/app-packaging}/README.md (100%) rename {app-packaging => scala-sbt/app-packaging}/build.sbt (100%) rename {app-packaging => scala-sbt/app-packaging}/project/build.properties (100%) rename {app-packaging => scala-sbt/app-packaging}/project/plugins.sbt (100%) rename {app-packaging => scala-sbt/app-packaging}/scalacli-app/ScalaCliApp.scala (100%) rename {app-packaging => scala-sbt/app-packaging}/src/main/scala/com/baeldung/packaging/Main.scala (100%) diff --git a/app-packaging/README.md b/scala-sbt/app-packaging/README.md similarity index 100% rename from app-packaging/README.md rename to scala-sbt/app-packaging/README.md diff --git a/app-packaging/build.sbt b/scala-sbt/app-packaging/build.sbt similarity index 100% rename from app-packaging/build.sbt rename to scala-sbt/app-packaging/build.sbt diff --git a/app-packaging/project/build.properties b/scala-sbt/app-packaging/project/build.properties similarity index 100% rename from app-packaging/project/build.properties rename to scala-sbt/app-packaging/project/build.properties diff --git a/app-packaging/project/plugins.sbt b/scala-sbt/app-packaging/project/plugins.sbt similarity index 100% rename from app-packaging/project/plugins.sbt rename to scala-sbt/app-packaging/project/plugins.sbt diff --git a/app-packaging/scalacli-app/ScalaCliApp.scala b/scala-sbt/app-packaging/scalacli-app/ScalaCliApp.scala similarity index 100% rename from app-packaging/scalacli-app/ScalaCliApp.scala rename to scala-sbt/app-packaging/scalacli-app/ScalaCliApp.scala diff --git a/app-packaging/src/main/scala/com/baeldung/packaging/Main.scala b/scala-sbt/app-packaging/src/main/scala/com/baeldung/packaging/Main.scala similarity index 100% rename from app-packaging/src/main/scala/com/baeldung/packaging/Main.scala rename to scala-sbt/app-packaging/src/main/scala/com/baeldung/packaging/Main.scala From f35c0d6683add13b18fd5bd23bcd6d41a4457574 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Mon, 6 Nov 2023 18:16:27 +0100 Subject: [PATCH 0088/1318] Moved Map articles to an independent sub-module --- build.sbt | 7 +++++++ scala-core-collections/scala-core-collections-2/README.md | 1 - scala-core-collections/scala-core-collections-3/README.md | 1 - scala-core-collections/scala-core-map/README.md | 7 +++++++ .../com/baeldung/scala/collections/IterateMap.scala | 0 .../scala-2/com/baeldung/scala/filtermap/FilterMap.scala | 0 .../com/baeldung/scala/mergemaps/CombineIterables.scala | 0 .../baeldung}/scala/collections/IterateMapUnitTest.scala | 3 +-- .../com/baeldung}/scala/collections/MapKeyValue.scala | 2 +- .../commoncollections/ListMapOperationsUnitTest.scala | 0 .../com/baeldung/scala/filtermap/FilterMapSpec.scala | 0 .../com/baeldung}/scala/mergemaps/MergeMapsUnitTest.scala | 3 +-- 12 files changed, 17 insertions(+), 7 deletions(-) create mode 100644 scala-core-collections/scala-core-map/README.md rename scala-core-collections/{scala-core-collections-1 => scala-core-map}/src/main/scala-2/com/baeldung/scala/collections/IterateMap.scala (100%) rename scala-core-collections/{scala-core-collections-2 => scala-core-map}/src/main/scala-2/com/baeldung/scala/filtermap/FilterMap.scala (100%) rename scala-core-collections/{scala-core-collections-1 => scala-core-map}/src/main/scala-2/com/baeldung/scala/mergemaps/CombineIterables.scala (100%) rename scala-core-collections/{scala-core-collections-1/src/test/scala-2/com/baedung => scala-core-map/src/test/scala-2/com/baeldung}/scala/collections/IterateMapUnitTest.scala (81%) rename scala-core-collections/{scala-core-collections-1/src/test/scala-2/com/baedung => scala-core-map/src/test/scala-2/com/baeldung}/scala/collections/MapKeyValue.scala (97%) rename scala-core-collections/{scala-core-collections-3 => scala-core-map}/src/test/scala-2/com/baeldung/scala/commoncollections/ListMapOperationsUnitTest.scala (100%) rename scala-core-collections/{scala-core-collections-2 => scala-core-map}/src/test/scala-2/com/baeldung/scala/filtermap/FilterMapSpec.scala (100%) rename scala-core-collections/{scala-core-collections-1/src/test/scala-2/com/baedung => scala-core-map/src/test/scala-2/com/baeldung}/scala/mergemaps/MergeMapsUnitTest.scala (89%) diff --git a/build.sbt b/build.sbt index 8e54a46df..d9d9784d2 100644 --- a/build.sbt +++ b/build.sbt @@ -148,12 +148,19 @@ lazy val scala_core_collections_2 = name := "scala-core-collections-2", libraryDependencies ++= scalaTestDeps ) + lazy val scala_core_collections_3 = (project in file("scala-core-collections/scala-core-collections-3")) .settings( libraryDependencies ++= scalaTestDeps ) +lazy val scala_core_map = + (project in file("scala-core-collections/scala-core-map")) + .settings( + libraryDependencies ++= scalaTestDeps + ) + lazy val scala_test = (project in file("scala-test")) .settings( name := "scala-test", diff --git a/scala-core-collections/scala-core-collections-2/README.md b/scala-core-collections/scala-core-collections-2/README.md index 0a6456398..33e4b0f61 100644 --- a/scala-core-collections/scala-core-collections-2/README.md +++ b/scala-core-collections/scala-core-collections-2/README.md @@ -1,7 +1,6 @@ ## Relevant Articles - [Find the Last Occurrence of an Element in a List](https://www.baeldung.com/scala/last-occurrence-in-list) - [Rotating a Scala Collection](https://www.baeldung.com/scala/rotate-collection) -- [Filter “None” Values From a Map](https://www.baeldung.com/scala/filter-none-from-map) - [Check if a List Is a Sublist of Another List](https://www.baeldung.com/scala/check-if-list-is-sublist) - [Get a Subarray in Scala](https://www.baeldung.com/scala/extract-subarray) - [Finding the First Element Matching a Condition in a Collection](https://www.baeldung.com/scala/find-first-match-in-collection) diff --git a/scala-core-collections/scala-core-collections-3/README.md b/scala-core-collections/scala-core-collections-3/README.md index d606d06a9..4514848fa 100644 --- a/scala-core-collections/scala-core-collections-3/README.md +++ b/scala-core-collections/scala-core-collections-3/README.md @@ -1,5 +1,4 @@ - [Guide to Scala Collections](https://www.baeldung.com/scala/collections) -- [Guide to Scala ListSet](https://www.baeldung.com/scala/listset) - [Guide to Scala ListMap](https://www.baeldung.com/scala/listmap) ## Relevant Articles diff --git a/scala-core-collections/scala-core-map/README.md b/scala-core-collections/scala-core-map/README.md new file mode 100644 index 000000000..e020f8d72 --- /dev/null +++ b/scala-core-collections/scala-core-map/README.md @@ -0,0 +1,7 @@ +### Relevant Articles: + +- [Iterating Over a Scala Map](https://www.baeldung.com/scala/iterate-map) +- [Map Both Keys and Values of a Scala Map](https://www.baeldung.com/scala/map-keys-values) +- [Merge Two Maps in Scala](https://www.baeldung.com/scala/merge-two-maps) +- [Filter “None” Values From a Map](https://www.baeldung.com/scala/filter-none-from-map) +- [Guide to Scala ListSet](https://www.baeldung.com/scala/listset) \ No newline at end of file diff --git a/scala-core-collections/scala-core-collections-1/src/main/scala-2/com/baeldung/scala/collections/IterateMap.scala b/scala-core-collections/scala-core-map/src/main/scala-2/com/baeldung/scala/collections/IterateMap.scala similarity index 100% rename from scala-core-collections/scala-core-collections-1/src/main/scala-2/com/baeldung/scala/collections/IterateMap.scala rename to scala-core-collections/scala-core-map/src/main/scala-2/com/baeldung/scala/collections/IterateMap.scala diff --git a/scala-core-collections/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/filtermap/FilterMap.scala b/scala-core-collections/scala-core-map/src/main/scala-2/com/baeldung/scala/filtermap/FilterMap.scala similarity index 100% rename from scala-core-collections/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/filtermap/FilterMap.scala rename to scala-core-collections/scala-core-map/src/main/scala-2/com/baeldung/scala/filtermap/FilterMap.scala diff --git a/scala-core-collections/scala-core-collections-1/src/main/scala-2/com/baeldung/scala/mergemaps/CombineIterables.scala b/scala-core-collections/scala-core-map/src/main/scala-2/com/baeldung/scala/mergemaps/CombineIterables.scala similarity index 100% rename from scala-core-collections/scala-core-collections-1/src/main/scala-2/com/baeldung/scala/mergemaps/CombineIterables.scala rename to scala-core-collections/scala-core-map/src/main/scala-2/com/baeldung/scala/mergemaps/CombineIterables.scala diff --git a/scala-core-collections/scala-core-collections-1/src/test/scala-2/com/baedung/scala/collections/IterateMapUnitTest.scala b/scala-core-collections/scala-core-map/src/test/scala-2/com/baeldung/scala/collections/IterateMapUnitTest.scala similarity index 81% rename from scala-core-collections/scala-core-collections-1/src/test/scala-2/com/baedung/scala/collections/IterateMapUnitTest.scala rename to scala-core-collections/scala-core-map/src/test/scala-2/com/baeldung/scala/collections/IterateMapUnitTest.scala index 5d6478d3d..1dceade57 100644 --- a/scala-core-collections/scala-core-collections-1/src/test/scala-2/com/baedung/scala/collections/IterateMapUnitTest.scala +++ b/scala-core-collections/scala-core-map/src/test/scala-2/com/baeldung/scala/collections/IterateMapUnitTest.scala @@ -1,7 +1,6 @@ -package com.baedung.scala.collections +package com.baeldung.scala.collections import org.scalatest.flatspec.AnyFlatSpec -import com.baeldung.scala.collections.IterateMap class IterateMapUnitTest extends AnyFlatSpec { "Keys" should "return four chars" in { diff --git a/scala-core-collections/scala-core-collections-1/src/test/scala-2/com/baedung/scala/collections/MapKeyValue.scala b/scala-core-collections/scala-core-map/src/test/scala-2/com/baeldung/scala/collections/MapKeyValue.scala similarity index 97% rename from scala-core-collections/scala-core-collections-1/src/test/scala-2/com/baedung/scala/collections/MapKeyValue.scala rename to scala-core-collections/scala-core-map/src/test/scala-2/com/baeldung/scala/collections/MapKeyValue.scala index 9d601e873..c720e2909 100644 --- a/scala-core-collections/scala-core-collections-1/src/test/scala-2/com/baedung/scala/collections/MapKeyValue.scala +++ b/scala-core-collections/scala-core-map/src/test/scala-2/com/baeldung/scala/collections/MapKeyValue.scala @@ -1,4 +1,4 @@ -package com.baedung.scala.collections +package com.baeldung.scala.collections import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpec diff --git a/scala-core-collections/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/commoncollections/ListMapOperationsUnitTest.scala b/scala-core-collections/scala-core-map/src/test/scala-2/com/baeldung/scala/commoncollections/ListMapOperationsUnitTest.scala similarity index 100% rename from scala-core-collections/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/commoncollections/ListMapOperationsUnitTest.scala rename to scala-core-collections/scala-core-map/src/test/scala-2/com/baeldung/scala/commoncollections/ListMapOperationsUnitTest.scala diff --git a/scala-core-collections/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/filtermap/FilterMapSpec.scala b/scala-core-collections/scala-core-map/src/test/scala-2/com/baeldung/scala/filtermap/FilterMapSpec.scala similarity index 100% rename from scala-core-collections/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/filtermap/FilterMapSpec.scala rename to scala-core-collections/scala-core-map/src/test/scala-2/com/baeldung/scala/filtermap/FilterMapSpec.scala diff --git a/scala-core-collections/scala-core-collections-1/src/test/scala-2/com/baedung/scala/mergemaps/MergeMapsUnitTest.scala b/scala-core-collections/scala-core-map/src/test/scala-2/com/baeldung/scala/mergemaps/MergeMapsUnitTest.scala similarity index 89% rename from scala-core-collections/scala-core-collections-1/src/test/scala-2/com/baedung/scala/mergemaps/MergeMapsUnitTest.scala rename to scala-core-collections/scala-core-map/src/test/scala-2/com/baeldung/scala/mergemaps/MergeMapsUnitTest.scala index a6f463501..bca95fa6d 100644 --- a/scala-core-collections/scala-core-collections-1/src/test/scala-2/com/baedung/scala/mergemaps/MergeMapsUnitTest.scala +++ b/scala-core-collections/scala-core-map/src/test/scala-2/com/baeldung/scala/mergemaps/MergeMapsUnitTest.scala @@ -1,6 +1,5 @@ -package com.baedung.scala.mergemaps +package com.baeldung.scala.mergemaps -import com.baeldung.scala.mergemaps.CombineIterables import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers From 4463502bdba4a3c0370282534aedb397f6e7011e Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 7 Nov 2023 20:20:19 +0100 Subject: [PATCH 0089/1318] Added sbt-scoverage plugin to calculate the coverage and test count --- project/plugins.sbt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/project/plugins.sbt b/project/plugins.sbt index fb489e82d..eb81f1426 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -16,3 +16,5 @@ libraryDependencies += "org.scala-js" %% "scalajs-env-jsdom-nodejs" % "1.0.0" resolvers += Resolver.jcenterRepo addSbtPlugin("net.aichler" % "sbt-jupiter-interface" % "0.8.3") + +addSbtPlugin("org.scoverage" % "sbt-scoverage" % "2.0.9") \ No newline at end of file From 4b75a7308394d9e4698d87c01a06b6c24963e759 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 7 Nov 2023 20:43:13 +0100 Subject: [PATCH 0090/1318] enable scoverage --- build.sbt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/build.sbt b/build.sbt index d9d9784d2..97a4ceba5 100644 --- a/build.sbt +++ b/build.sbt @@ -567,3 +567,5 @@ lazy val playGroup = (project in file("play-scala")) //lazy val scalajs = project in file("scala-js") lazy val scalatra = project in file("scalatra") lazy val benchmark = project in file("specialized-benchmark") + +coverageEnabled := true \ No newline at end of file From 5cce635a75795887f18d749fce0f4608d2e46b48 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 7 Nov 2023 21:25:46 +0100 Subject: [PATCH 0091/1318] Removed scoverage --- build.sbt | 2 -- project/plugins.sbt | 2 -- 2 files changed, 4 deletions(-) diff --git a/build.sbt b/build.sbt index 97a4ceba5..d9d9784d2 100644 --- a/build.sbt +++ b/build.sbt @@ -567,5 +567,3 @@ lazy val playGroup = (project in file("play-scala")) //lazy val scalajs = project in file("scala-js") lazy val scalatra = project in file("scalatra") lazy val benchmark = project in file("specialized-benchmark") - -coverageEnabled := true \ No newline at end of file diff --git a/project/plugins.sbt b/project/plugins.sbt index eb81f1426..fb489e82d 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -16,5 +16,3 @@ libraryDependencies += "org.scala-js" %% "scalajs-env-jsdom-nodejs" % "1.0.0" resolvers += Resolver.jcenterRepo addSbtPlugin("net.aichler" % "sbt-jupiter-interface" % "0.8.3") - -addSbtPlugin("org.scoverage" % "sbt-scoverage" % "2.0.9") \ No newline at end of file From 4920c7ca95e62ff51567eccc8d77875c262c387e Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 8 Nov 2023 08:56:30 +0100 Subject: [PATCH 0092/1318] Updated slick-play version --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d9d9784d2..0a1b34183 100644 --- a/build.sbt +++ b/build.sbt @@ -288,7 +288,7 @@ lazy val scala_libraries_2 = (project in file("scala-libraries/scala-libraries-2 "com.beachape" %% "enumeratum" % "1.7.3" ), libraryDependencies ++= Seq( - "com.typesafe.play" %% "play-slick" % "5.1.0", + "com.typesafe.play" %% "play-slick" % "5.2.0-RC1", "org.postgresql" % "postgresql" % "42.6.0" ), libraryDependencies ++= Seq( From 718390ddf0818ce4bf7b993d81c2ab903fe4afaf Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 8 Nov 2023 19:54:19 +0100 Subject: [PATCH 0093/1318] Renamed package --- .../SlidingGroupedTest.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename scala3-lang-3/src/test/scala/com/baeldung/scala/{sliding_grouped => slidinggrouped}/SlidingGroupedTest.scala (97%) diff --git a/scala3-lang-3/src/test/scala/com/baeldung/scala/sliding_grouped/SlidingGroupedTest.scala b/scala3-lang-3/src/test/scala/com/baeldung/scala/slidinggrouped/SlidingGroupedTest.scala similarity index 97% rename from scala3-lang-3/src/test/scala/com/baeldung/scala/sliding_grouped/SlidingGroupedTest.scala rename to scala3-lang-3/src/test/scala/com/baeldung/scala/slidinggrouped/SlidingGroupedTest.scala index 70cbfab33..11f112005 100644 --- a/scala3-lang-3/src/test/scala/com/baeldung/scala/sliding_grouped/SlidingGroupedTest.scala +++ b/scala3-lang-3/src/test/scala/com/baeldung/scala/slidinggrouped/SlidingGroupedTest.scala @@ -1,4 +1,4 @@ -package com.baeldung.scala.sliding_grouped +package com.baeldung.scala.slidinggrouped import org.scalatest.wordspec.AnyWordSpec From 660f88ec532709b725602acb46c5e4b5a47baaca Mon Sep 17 00:00:00 2001 From: Oscar Mauricio Forero Carrillo Date: Fri, 10 Nov 2023 13:17:59 +0100 Subject: [PATCH 0094/1318] SCALA-558: Code for the article (#941) --- .../src/main/resources/GOOG.csv | 447 ++++++++++++++++++ .../OptimizedMovingAverage.scala | 46 ++ .../movingaverage/SlidingMovingAverage.scala | 48 ++ 3 files changed, 541 insertions(+) create mode 100644 scala-core-collections-3/src/main/resources/GOOG.csv create mode 100644 scala-core-collections-3/src/main/scala-2/com/baeldung/scala/movingaverage/OptimizedMovingAverage.scala create mode 100644 scala-core-collections-3/src/main/scala-2/com/baeldung/scala/movingaverage/SlidingMovingAverage.scala diff --git a/scala-core-collections-3/src/main/resources/GOOG.csv b/scala-core-collections-3/src/main/resources/GOOG.csv new file mode 100644 index 000000000..bb59948ed --- /dev/null +++ b/scala-core-collections-3/src/main/resources/GOOG.csv @@ -0,0 +1,447 @@ +Date,Open,High,Low,Close,Adj Close,Volume +2022-01-03,144.475494,145.550003,143.502502,145.074493,145.074493,25214000 +2022-01-04,145.550507,146.610001,143.816147,144.416504,144.416504,22928000 +2022-01-05,144.181000,144.298004,137.523499,137.653503,137.653503,49642000 +2022-01-06,137.497498,139.686005,136.763504,137.550995,137.550995,29050000 +2022-01-07,137.904999,138.254745,135.789001,137.004501,137.004501,19408000 +2022-01-10,135.098999,138.639999,133.140503,138.574005,138.574005,34096000 +2022-01-11,138.180496,140.329498,136.813507,140.017502,140.017502,23502000 +2022-01-12,141.554504,142.814255,141.112000,141.647995,141.647995,23642000 +2022-01-13,141.840500,143.185501,138.914001,139.130997,139.130997,26566000 +2022-01-14,137.500000,141.200500,137.500000,139.786499,139.786499,23826000 +2022-01-18,136.600006,137.391495,135.617004,136.290497,136.290497,27382000 +2022-01-19,136.938507,138.399506,135.500000,135.651993,135.651993,20796000 +2022-01-20,136.514008,137.912003,133.144501,133.506500,133.506500,21930000 +2022-01-21,133.011993,134.760498,130.001007,130.091995,130.091995,41920000 +2022-01-24,126.027496,130.778503,124.641953,130.371994,130.371994,55148000 +2022-01-25,128.435501,129.338501,126.377998,126.735497,126.735497,36008000 +2022-01-26,130.592499,132.807495,127.153503,129.240005,129.240005,39630000 +2022-01-27,131.360992,132.609955,128.945007,129.121002,129.121002,30248000 +2022-01-28,130.000000,133.370499,128.694504,133.289505,133.289505,30518000 +2022-01-31,134.197998,135.843506,132.274002,135.698502,135.698502,34056000 +2022-02-01,137.835007,138.199997,134.568253,137.878494,137.878494,51204000 +2022-02-02,151.863495,152.100006,145.557495,148.036499,148.036499,89750000 +2022-02-03,145.294998,149.117706,142.205002,142.650497,142.650497,56930000 +2022-02-04,143.016998,144.535248,139.817505,143.016006,143.016006,49224000 +2022-02-07,143.709000,143.846497,138.699005,138.938004,138.938004,44610000 +2022-02-08,138.991257,139.837097,136.873001,139.212997,139.212997,34256000 +2022-02-09,140.849747,142.175507,140.376999,141.453003,141.453003,28628000 +2022-02-10,139.500000,141.431000,138.050003,138.602493,138.602493,33018000 +2022-02-11,138.750000,139.283249,133.288498,134.130005,134.130005,38808000 +2022-02-14,133.365494,136.166504,133.302002,135.300003,135.300003,26792000 +2022-02-15,137.471497,137.899994,135.539505,136.425507,136.425507,26578000 +2022-02-16,136.430496,137.945999,134.823654,137.487503,137.487503,25610000 +2022-02-17,136.149994,136.839493,132.201996,132.308502,132.308502,30968000 +2022-02-18,133.037506,133.824005,130.307053,130.467499,130.467499,31858000 +2022-02-22,129.985001,131.900757,127.740997,129.402496,129.402496,38906000 +2022-02-23,131.078506,131.748993,127.503502,127.584999,127.584999,26432000 +2022-02-24,125.000000,133.037003,124.764503,132.673492,132.673492,43166000 +2022-02-25,133.525497,135.389008,131.764999,134.519501,134.519501,26236000 +2022-02-28,133.284500,135.640503,132.825256,134.891006,134.891006,29676000 +2022-03-01,134.479996,136.110992,133.378494,134.167999,134.167999,24640000 +2022-03-02,134.608246,135.615494,133.432495,134.751495,134.751495,23966000 +2022-03-03,135.978500,136.713806,133.431000,134.307999,134.307999,19780000 +2022-03-04,133.382507,134.199005,130.408493,132.121994,132.121994,24446000 +2022-03-07,131.904007,131.904007,126.410004,126.464500,126.464500,39178000 +2022-03-08,126.250504,131.246506,125.860748,127.278503,127.278503,35250000 +2022-03-09,131.399994,134.198502,130.087997,133.865997,133.865997,32258000 +2022-03-10,131.462494,133.538498,131.401001,132.682007,132.682007,24266000 +2022-03-11,133.999496,134.199997,130.296494,130.475494,130.475494,26600000 +2022-03-14,130.572998,131.026001,126.413002,126.740997,126.740997,30254000 +2022-03-15,127.741501,130.517242,126.568001,129.660507,129.660507,30292000 +2022-03-16,131.000000,133.770996,129.201004,133.690506,133.690506,32058000 +2022-03-17,133.320999,134.739502,132.718994,134.600494,134.600494,23994000 +2022-03-18,133.884003,136.913498,132.932007,136.801498,136.801498,45900000 +2022-03-21,136.847504,137.582504,134.611496,136.478500,136.478500,26632000 +2022-03-22,136.500000,141.500000,136.500000,140.277496,140.277496,29776000 +2022-03-23,139.138504,140.024994,138.166504,138.503494,138.503494,25302000 +2022-03-24,139.272507,141.396500,138.039398,141.311996,141.311996,20544000 +2022-03-25,141.753998,141.959503,139.699493,141.521500,141.521500,19270000 +2022-03-28,140.684494,141.976501,139.828156,141.949997,141.949997,23774000 +2022-03-29,143.160507,144.162506,142.483994,143.250000,143.250000,28678000 +2022-03-30,142.869995,143.480499,142.167999,142.644501,142.644501,21046000 +2022-03-31,142.448502,142.644501,139.619003,139.649506,139.649506,29516000 +2022-04-01,140.009995,140.949997,138.796997,140.699997,140.699997,23480000 +2022-04-04,140.824493,144.043747,140.824493,143.642502,143.642502,19076000 +2022-04-05,143.399506,143.589996,140.943497,141.063004,141.063004,19256000 +2022-04-06,139.161499,139.848495,136.418106,137.175995,137.175995,23574000 +2022-04-07,136.617996,137.701508,134.857254,136.464996,136.464996,19448000 +2022-04-08,136.250000,136.250000,133.752502,134.010498,134.010498,16434000 +2022-04-11,132.899994,132.939194,129.617493,129.796494,129.796494,24188000 +2022-04-12,132.423492,132.423492,127.575996,128.374496,128.374496,23004000 +2022-04-13,128.626495,130.655746,128.438599,130.285995,130.285995,19542000 +2022-04-14,130.649506,130.710251,127.111504,127.252998,127.252998,23484000 +2022-04-18,127.410004,128.712006,126.578453,127.960999,127.960999,14918000 +2022-04-19,128.076996,130.903748,127.451500,130.531006,130.531006,22720000 +2022-04-20,131.283997,131.923492,127.894051,128.245499,128.245499,22610000 +2022-04-21,129.350006,130.307495,124.650002,124.937500,124.937500,30158000 +2022-04-22,125.000000,125.452003,119.140503,119.613998,119.613998,46410000 +2022-04-25,119.429497,123.278000,118.769249,123.250000,123.250000,34522000 +2022-04-26,122.750000,122.750000,119.161850,119.505997,119.505997,49394000 +2022-04-27,114.373001,117.500000,113.124252,115.020500,115.020500,62238000 +2022-04-28,117.114998,120.438499,115.143898,119.411499,119.411499,36790000 +2022-04-29,117.578003,118.959999,114.694000,114.966499,114.966499,33694000 +2022-05-02,113.906502,117.339500,113.399498,117.156998,117.156998,30280000 +2022-05-03,116.764999,119.300003,116.626999,118.129501,118.129501,21216000 +2022-05-04,118.003502,123.142998,115.738503,122.574997,122.574997,33232000 +2022-05-05,120.220497,121.233253,115.182503,116.746498,116.746498,43090000 +2022-05-06,115.518997,117.498497,114.142998,115.660004,115.660004,35310000 +2022-05-09,113.303497,115.562897,112.551498,113.084000,113.084000,34520000 +2022-05-10,116.040497,116.691002,113.383301,114.584503,114.584503,31158000 +2022-05-11,113.710503,116.670998,113.650002,113.960999,113.960999,36502000 +2022-05-12,111.938004,114.856499,110.113503,113.161003,113.161003,41464000 +2022-05-13,114.845497,118.084999,114.000000,116.515503,116.515503,29738000 +2022-05-16,115.384003,116.607498,114.334999,114.792503,114.792503,23282000 +2022-05-17,117.227501,117.227501,115.337502,116.701500,116.701500,21576000 +2022-05-18,115.237503,115.695648,112.141998,112.401001,112.401001,27982000 +2022-05-19,111.841003,113.587502,110.468002,110.745499,110.745499,29192000 +2022-05-20,112.085503,112.550003,106.373001,109.313004,109.313004,37586000 +2022-05-23,110.103996,112.005501,109.154251,111.666496,111.666496,31558000 +2022-05-24,106.377502,106.394997,102.208000,105.926003,105.926003,60386000 +2022-05-25,105.141998,106.544701,104.211250,105.839500,105.839500,37900000 +2022-05-26,106.050499,108.955254,105.487999,108.295998,108.295998,30288000 +2022-05-27,109.788498,112.867996,109.550003,112.799004,112.799004,29924000 +2022-05-31,113.079002,116.433502,112.572502,114.039001,114.039001,51302000 +2022-06-01,114.931503,117.399002,113.550499,114.137001,114.137001,28630000 +2022-06-02,114.188004,117.898003,113.307999,117.746002,117.746002,27472000 +2022-06-03,115.992500,116.364502,113.667999,114.564003,114.564003,25052000 +2022-06-06,116.742500,119.398499,116.528297,117.010498,117.010498,23786000 +2022-06-07,115.648003,117.748650,115.125504,117.229500,117.229500,26414000 +2022-06-08,116.876503,118.646004,116.696747,117.237999,117.237999,22544000 +2022-06-09,116.341499,118.349998,114.866997,114.917999,114.917999,23142000 +2022-06-10,112.781250,113.497002,110.861000,111.427498,111.427498,31324000 +2022-06-13,107.445999,109.218498,106.588051,106.876503,106.876503,36756000 +2022-06-14,106.889999,108.457497,106.351997,107.194000,107.194000,25480000 +2022-06-15,108.899498,112.063004,108.118752,110.390503,110.390503,33192000 +2022-06-16,108.149498,109.290497,105.792503,106.636002,106.636002,35314000 +2022-06-17,106.535004,109.249496,105.628548,107.865501,107.865501,43516000 +2022-06-21,109.702003,112.672997,109.293503,112.014999,112.014999,39010000 +2022-06-22,111.163002,113.769501,110.724297,112.033997,112.033997,23922000 +2022-06-23,112.949997,113.196503,111.028999,112.684502,112.684502,24710000 +2022-06-24,113.602997,118.637497,113.602997,118.538002,118.538002,39122000 +2022-06-27,118.934998,119.250000,116.000748,116.622498,116.622498,32840000 +2022-06-28,116.350998,117.856499,112.444000,112.571503,112.571503,28232000 +2022-06-29,112.148499,113.664497,111.554001,112.256500,112.256500,18628000 +2022-06-30,110.499496,111.329803,107.309998,109.372498,109.372498,38046000 +2022-07-01,108.336998,109.806351,107.105003,109.081001,109.081001,31028000 +2022-07-05,107.514503,114.052597,106.249496,113.887001,113.887001,36398000 +2022-07-06,114.092003,116.351997,112.250504,115.213501,115.213501,28852000 +2022-07-07,116.008003,119.862000,115.533997,119.306000,119.306000,32184000 +2022-07-08,117.550003,120.434998,117.514000,120.168503,120.168503,29082000 +2022-07-11,118.650002,118.794502,116.234497,116.522499,116.522499,26718000 +2022-07-12,116.838501,117.849503,114.614998,114.849503,114.849503,24970000 +2022-07-13,112.639000,115.156998,111.822998,112.186996,112.186996,38958000 +2022-07-14,110.825996,111.987503,109.325500,111.440002,111.440002,32366000 +2022-07-15,112.962997,114.000504,111.822502,112.766998,112.766998,34330000 +2022-07-18,113.440002,114.800003,109.300003,109.910004,109.910004,33354000 +2022-07-19,111.730003,114.809998,110.500000,114.620003,114.620003,30992300 +2022-07-20,114.059998,116.330002,113.260002,114.699997,114.699997,26780100 +2022-07-21,115.089996,115.209999,111.910004,115.040001,115.040001,27267800 +2022-07-22,111.809998,113.180000,107.599998,108.360001,108.360001,44455300 +2022-07-25,108.879997,110.580002,107.010002,108.209999,108.209999,28289900 +2022-07-26,107.430000,107.739998,104.760002,105.440002,105.440002,36626600 +2022-07-27,109.599998,114.400002,108.419998,113.599998,113.599998,41474600 +2022-07-28,112.800003,114.699997,111.850998,114.589996,114.589996,23303800 +2022-07-29,113.400002,116.900002,113.230003,116.639999,116.639999,31336200 +2022-08-01,115.529999,117.120003,114.690002,115.480003,115.480003,22856200 +2022-08-02,114.430000,117.080002,114.260002,115.900002,115.900002,17911000 +2022-08-03,116.339996,119.419998,116.150002,118.779999,118.779999,25302800 +2022-08-04,118.300003,119.500000,117.709999,118.870003,118.870003,15757700 +2022-08-05,116.930000,118.860001,116.709999,118.220001,118.220001,15615700 +2022-08-08,119.120003,120.860001,117.830002,118.139999,118.139999,17061100 +2022-08-09,117.989998,118.199997,116.559998,117.500000,117.500000,15424300 +2022-08-10,119.589996,121.779999,119.360001,120.650002,120.650002,20497000 +2022-08-11,122.080002,122.339996,119.550003,119.820000,119.820000,16671600 +2022-08-12,121.160004,122.650002,120.400002,122.650002,122.650002,16121100 +2022-08-15,122.209999,123.260002,121.570000,122.879997,122.879997,15525000 +2022-08-16,122.320000,123.227997,121.535004,122.510002,122.510002,15626200 +2022-08-17,120.930000,122.150002,120.199997,120.320000,120.320000,17589200 +2022-08-18,120.230003,121.690002,119.550003,120.860001,120.860001,15652000 +2022-08-19,119.870003,120.000000,117.669998,118.120003,118.120003,20187000 +2022-08-22,116.099998,116.500000,114.669998,115.070000,115.070000,19316000 +2022-08-23,114.320000,115.930000,114.300003,114.769997,114.769997,14390700 +2022-08-24,114.449997,115.717003,113.779999,114.699997,114.699997,16051200 +2022-08-25,115.150002,117.779999,115.050003,117.699997,117.699997,14874700 +2022-08-26,115.809998,116.599998,111.220001,111.300003,111.300003,31698700 +2022-08-29,110.779999,111.959999,109.809998,110.339996,110.339996,20386100 +2022-08-30,111.029999,111.370003,108.800003,109.910004,109.910004,20548200 +2022-08-31,111.629997,111.769997,109.050003,109.150002,109.150002,25898000 +2022-09-01,109.199997,111.220001,108.190002,110.550003,110.550003,22784400 +2022-09-02,111.339996,111.675003,108.129997,108.680000,108.680000,20618100 +2022-09-06,108.135002,108.879997,106.510002,107.480003,107.480003,20565100 +2022-09-07,107.760002,110.989998,107.614998,110.480003,110.480003,22987200 +2022-09-08,109.180000,110.580002,108.059998,109.419998,109.419998,21660700 +2022-09-09,110.050003,112.000000,110.000000,111.779999,111.779999,21732900 +2022-09-12,111.989998,112.639999,110.930000,111.870003,111.870003,19732900 +2022-09-13,108.889999,109.370003,105.000000,105.309998,105.309998,33015000 +2022-09-14,105.440002,106.099998,104.500000,105.870003,105.870003,22115800 +2022-09-15,105.010002,106.209999,103.309998,103.900002,103.900002,26494900 +2022-09-16,102.970001,104.029999,101.855003,103.629997,103.629997,64540100 +2022-09-19,102.540001,104.019997,102.370003,103.849998,103.849998,19738600 +2022-09-20,102.879997,103.169998,101.120003,101.830002,101.830002,24001700 +2022-09-21,102.239998,103.489998,99.989998,100.010002,100.010002,26596800 +2022-09-22,99.449997,101.680000,99.410004,100.570000,100.570000,21272700 +2022-09-23,100.059998,100.110001,98.010002,99.169998,99.169998,25657000 +2022-09-26,98.610001,100.440002,98.379997,98.809998,98.809998,22437900 +2022-09-27,99.910004,100.459999,97.339996,98.089996,98.089996,24225000 +2022-09-28,98.019997,101.400002,97.800003,100.739998,100.739998,24617000 +2022-09-29,99.300003,99.300003,96.519997,98.089996,98.089996,21921500 +2022-09-30,97.730003,99.494003,96.029999,96.150002,96.150002,26277800 +2022-10-03,97.220001,99.970001,97.019997,99.300003,99.300003,24840000 +2022-10-04,101.040001,102.720001,101.040001,102.410004,102.410004,22580900 +2022-10-05,100.690002,102.739998,99.739998,102.220001,102.220001,18475500 +2022-10-06,101.500000,103.730003,101.500000,102.239998,102.239998,17156200 +2022-10-07,100.650002,101.419998,99.209999,99.570000,99.570000,24249900 +2022-10-10,99.849998,99.989998,97.870003,98.709999,98.709999,16529900 +2022-10-11,98.250000,100.120003,97.250000,98.050003,98.050003,21617700 +2022-10-12,98.269997,99.648003,97.669998,98.300003,98.300003,17343400 +2022-10-13,95.930000,100.529999,95.269997,99.709999,99.709999,32812200 +2022-10-14,100.625000,101.290001,97.029999,97.180000,97.180000,22624800 +2022-10-17,99.519997,101.769997,99.510002,100.779999,100.779999,23311600 +2022-10-18,103.940002,104.220001,100.650002,101.389999,101.389999,21610500 +2022-10-19,100.699997,101.658997,99.635002,100.290001,100.290001,21573700 +2022-10-20,100.820000,103.000000,99.970001,100.529999,100.529999,25125100 +2022-10-21,98.459999,101.620003,98.230003,101.480003,101.480003,28988700 +2022-10-24,102.089996,103.099998,100.300003,102.970001,102.970001,24680800 +2022-10-25,103.300003,105.099998,103.019997,104.930000,104.930000,29910200 +2022-10-26,96.760002,98.540001,94.570000,94.820000,94.820000,71504300 +2022-10-27,94.309998,95.169998,91.900002,92.599998,92.599998,54036500 +2022-10-28,92.529999,96.860001,92.322998,96.580002,96.580002,35696900 +2022-10-31,95.779999,96.349998,94.379997,94.660004,94.660004,29868700 +2022-11-01,95.589996,96.165001,90.430000,90.500000,90.500000,43220600 +2022-11-02,90.910004,91.300003,87.010002,87.070000,87.070000,43553600 +2022-11-03,86.345001,86.550003,83.449997,83.489998,83.489998,48510400 +2022-11-04,85.510002,86.730003,83.879997,86.699997,86.699997,40173300 +2022-11-07,87.339996,88.940002,86.959999,88.650002,88.650002,26899900 +2022-11-08,89.160004,90.404999,87.650002,88.910004,88.910004,30172000 +2022-11-09,88.544998,89.489998,87.360001,87.400002,87.400002,26743900 +2022-11-10,92.339996,94.550003,91.650002,94.169998,94.169998,42371200 +2022-11-11,94.709999,97.360001,94.160004,96.730003,96.730003,30569100 +2022-11-14,95.500000,97.180000,95.112999,96.029999,96.029999,24170100 +2022-11-15,98.669998,100.419998,97.019997,98.720001,98.720001,31831000 +2022-11-16,98.019997,99.849998,97.902000,98.989998,98.989998,24660200 +2022-11-17,97.180000,99.480003,97.099998,98.500000,98.500000,21818700 +2022-11-18,99.010002,99.160004,96.739998,97.800003,97.800003,24969900 +2022-11-21,97.559998,98.720001,95.669998,95.830002,95.830002,18696900 +2022-11-22,96.160004,97.547997,94.410004,97.330002,97.330002,18868900 +2022-11-23,97.339996,99.069000,97.339996,98.820000,98.820000,17568900 +2022-11-25,98.464996,98.940002,97.529999,97.599998,97.599998,8567800 +2022-11-28,97.199997,97.830002,95.889999,96.250000,96.250000,19974500 +2022-11-29,96.000000,96.389999,94.389999,95.440002,95.440002,20220000 +2022-11-30,95.120003,101.449997,94.669998,101.449997,101.449997,39888100 +2022-12-01,101.400002,102.589996,100.669998,101.279999,101.279999,21771500 +2022-12-02,99.370003,101.150002,99.169998,100.830002,100.830002,18821500 +2022-12-05,99.815002,101.750000,99.355003,99.870003,99.870003,19955500 +2022-12-06,99.669998,100.209999,96.760002,97.309998,97.309998,20877600 +2022-12-07,96.769997,97.309998,95.025002,95.150002,95.150002,26647900 +2022-12-08,95.690002,95.870003,93.800003,93.949997,93.949997,25593200 +2022-12-09,93.900002,94.489998,93.019997,93.070000,93.070000,21885300 +2022-12-12,93.089996,93.875000,91.900002,93.559998,93.559998,27380900 +2022-12-13,98.070000,99.800003,95.379997,95.849998,95.849998,34788500 +2022-12-14,95.540001,97.220001,93.940002,95.309998,95.309998,26452900 +2022-12-15,93.540001,94.029999,90.430000,91.199997,91.199997,28298800 +2022-12-16,91.199997,91.750000,90.010002,90.860001,90.860001,48485500 +2022-12-19,90.879997,91.199997,88.925003,89.150002,89.150002,23020500 +2022-12-20,88.730003,89.779999,88.040001,89.629997,89.629997,21976800 +2022-12-21,89.730003,90.915001,88.910004,90.250000,90.250000,20336400 +2022-12-22,88.930000,89.180000,86.940002,88.260002,88.260002,23656100 +2022-12-23,87.620003,90.099998,87.620003,89.809998,89.809998,17815000 +2022-12-27,89.309998,89.500000,87.535004,87.930000,87.930000,15470900 +2022-12-28,87.500000,88.519997,86.370003,86.459999,86.459999,17879600 +2022-12-29,87.029999,89.364998,86.989998,88.949997,88.949997,18280700 +2022-12-30,87.364998,88.830002,87.029999,88.730003,88.730003,19190300 +2023-01-03,89.830002,91.550003,89.019997,89.699997,89.699997,20738500 +2023-01-04,91.010002,91.239998,87.800003,88.709999,88.709999,27046500 +2023-01-05,88.070000,88.209999,86.559998,86.769997,86.769997,23136100 +2023-01-06,87.360001,88.470001,85.570000,88.160004,88.160004,26612600 +2023-01-09,89.195000,90.830002,88.580002,88.800003,88.800003,22996700 +2023-01-10,86.720001,89.474998,86.699997,89.239998,89.239998,22855600 +2023-01-11,90.059998,92.449997,89.739998,92.260002,92.260002,25998800 +2023-01-12,92.400002,92.620003,90.570000,91.910004,91.910004,22754200 +2023-01-13,91.528000,92.980003,90.930000,92.800003,92.800003,18630700 +2023-01-17,92.779999,92.970001,90.839996,92.160004,92.160004,22935800 +2023-01-18,92.940002,93.587997,91.400002,91.779999,91.779999,19641600 +2023-01-19,91.389999,94.400002,91.379997,93.910004,93.910004,28707700 +2023-01-20,95.949997,99.419998,95.910004,99.279999,99.279999,53704800 +2023-01-23,99.129997,101.400002,98.750000,101.209999,101.209999,31791800 +2023-01-24,99.550003,101.089996,98.699997,99.209999,99.209999,27391400 +2023-01-25,97.199997,97.720001,95.262001,96.730003,96.730003,31000900 +2023-01-26,98.279999,99.209999,96.820000,99.160004,99.160004,24542100 +2023-01-27,99.050003,101.580002,98.970001,100.709999,100.709999,29020400 +2023-01-30,98.745003,99.408997,97.519997,97.949997,97.949997,24365100 +2023-01-31,97.860001,99.910004,97.790001,99.870003,99.870003,22306800 +2023-02-01,99.739998,102.190002,98.419998,101.430000,101.430000,26392600 +2023-02-02,106.790001,108.820000,106.540001,108.800003,108.800003,46622600 +2023-02-03,103.510002,108.019997,103.300003,105.220001,105.220001,36823400 +2023-02-06,102.684998,104.699997,102.209999,103.470001,103.470001,25573000 +2023-02-07,103.629997,108.669998,103.547997,108.040001,108.040001,33738800 +2023-02-08,102.690002,103.580002,98.455002,100.000000,100.000000,73546000 +2023-02-09,100.540001,100.610001,93.860001,95.459999,95.459999,97798600 +2023-02-10,95.739998,97.019997,94.529999,94.860001,94.860001,49325300 +2023-02-13,95.010002,95.349998,94.050003,95.000000,95.000000,43116600 +2023-02-14,94.660004,95.175003,92.650002,94.949997,94.949997,42513100 +2023-02-15,94.739998,97.339996,94.360001,97.099998,97.099998,36964500 +2023-02-16,95.540001,97.879997,94.970001,95.779999,95.779999,35642100 +2023-02-17,95.070000,95.750000,93.449997,94.589996,94.589996,31095100 +2023-02-21,93.239998,93.415001,92.000000,92.050003,92.050003,28367200 +2023-02-22,91.933998,92.360001,90.870003,91.800003,91.800003,29891100 +2023-02-23,92.129997,92.129997,90.010002,91.070000,91.070000,32423700 +2023-02-24,89.629997,90.129997,88.860001,89.349998,89.349998,31295600 +2023-02-27,90.089996,90.449997,89.610001,90.099998,90.099998,22724300 +2023-02-28,89.540001,91.449997,89.519997,90.300003,90.300003,30546900 +2023-03-01,90.160004,91.199997,89.849998,90.510002,90.510002,26323900 +2023-03-02,89.860001,92.480003,89.769997,92.309998,92.309998,23328600 +2023-03-03,92.739998,94.110001,92.660004,94.019997,94.019997,30242500 +2023-03-06,94.360001,96.300003,94.300003,95.580002,95.580002,28288200 +2023-03-07,95.419998,96.089996,93.844002,94.169998,94.169998,24101500 +2023-03-08,94.404999,96.239998,94.404999,94.650002,94.650002,25395200 +2023-03-09,94.489998,95.919998,92.355003,92.660004,92.660004,24438900 +2023-03-10,92.500000,93.180000,90.800003,91.010002,91.010002,32850100 +2023-03-13,90.565002,93.080002,89.940002,91.660004,91.660004,31508600 +2023-03-14,93.070000,94.830002,92.779999,94.250000,94.250000,32303900 +2023-03-15,93.540001,97.250000,93.040001,96.550003,96.550003,38367300 +2023-03-16,96.570000,101.970001,95.870003,101.070000,101.070000,54499500 +2023-03-17,100.839996,103.489998,100.750000,102.459999,102.459999,76140300 +2023-03-20,101.059998,102.580002,100.790001,101.930000,101.930000,26033900 +2023-03-21,101.980003,105.959999,101.860001,105.839996,105.839996,33122800 +2023-03-22,105.139999,107.510002,104.209999,104.220001,104.220001,32336900 +2023-03-23,105.889999,107.100998,105.410004,106.260002,106.260002,31385800 +2023-03-24,105.739998,106.160004,104.739998,106.059998,106.059998,25236200 +2023-03-27,105.320000,105.400002,102.629997,103.059998,103.059998,25393400 +2023-03-28,103.000000,103.000000,100.279999,101.360001,101.360001,24913500 +2023-03-29,102.720001,102.820000,101.029999,101.900002,101.900002,26148300 +2023-03-30,101.440002,101.610001,100.290001,101.320000,101.320000,25009800 +2023-03-31,101.709999,104.190002,101.440002,104.000000,104.000000,28108000 +2023-04-03,102.669998,104.949997,102.379997,104.910004,104.910004,20719900 +2023-04-04,104.839996,106.099998,104.599998,105.120003,105.120003,20377200 +2023-04-05,106.120003,106.540001,104.101997,104.949997,104.949997,21864200 +2023-04-06,105.769997,109.629997,104.815002,108.900002,108.900002,34684200 +2023-04-10,107.389999,107.970001,105.599998,106.949997,106.949997,19741500 +2023-04-11,106.919998,107.220001,105.279999,106.120003,106.120003,18721300 +2023-04-12,107.389999,107.586998,104.970001,105.220001,105.220001,22761600 +2023-04-13,106.470001,108.264999,106.440002,108.190002,108.190002,21650700 +2023-04-14,107.690002,109.580002,107.589996,109.459999,109.459999,20758700 +2023-04-17,105.430000,106.709999,105.320000,106.419998,106.419998,29043400 +2023-04-18,107.000000,107.050003,104.779999,105.120003,105.120003,17641400 +2023-04-19,104.214996,105.724998,103.800003,105.019997,105.019997,16732000 +2023-04-20,104.650002,106.888000,104.639999,105.900002,105.900002,22515300 +2023-04-21,106.089996,106.639999,105.485001,105.910004,105.910004,22379000 +2023-04-24,106.050003,107.320000,105.360001,106.779999,106.779999,21410900 +2023-04-25,106.610001,107.440002,104.559998,104.610001,104.610001,31408100 +2023-04-26,105.559998,107.019997,103.269997,104.449997,104.449997,37068200 +2023-04-27,105.230003,109.150002,104.419998,108.370003,108.370003,38235200 +2023-04-28,107.800003,108.290001,106.040001,108.220001,108.220001,23957900 +2023-05-01,107.720001,108.680000,107.500000,107.709999,107.709999,20926300 +2023-05-02,107.660004,107.730003,104.500000,105.980003,105.980003,20343100 +2023-05-03,106.220001,108.129997,105.620003,106.120003,106.120003,17116300 +2023-05-04,106.160004,106.300003,104.699997,105.209999,105.209999,19780600 +2023-05-05,105.320000,106.440002,104.738998,106.214996,106.214996,20705300 +2023-05-08,105.794998,108.419998,105.790001,108.239998,108.239998,17266000 +2023-05-09,108.779999,110.595001,107.724998,107.940002,107.940002,24782400 +2023-05-10,108.550003,113.510002,108.480003,112.279999,112.279999,47533500 +2023-05-11,115.860001,118.440002,114.930000,116.900002,116.900002,57115100 +2023-05-12,117.000000,118.260002,116.550003,117.919998,117.919998,31272500 +2023-05-15,116.489998,118.794998,116.480003,116.959999,116.959999,22107900 +2023-05-16,116.830002,121.199997,116.830002,120.089996,120.089996,32370100 +2023-05-17,120.180000,122.279999,119.459999,121.480003,121.480003,26659600 +2023-05-18,121.559998,123.900002,121.489998,123.519997,123.519997,27014500 +2023-05-19,124.199997,126.478996,122.720001,123.250000,123.250000,30251300 +2023-05-22,123.510002,127.050003,123.449997,125.870003,125.870003,29760200 +2023-05-23,124.930000,125.419998,123.050003,123.290001,123.290001,24477900 +2023-05-24,121.879997,122.750000,120.750000,121.639999,121.639999,23087900 +2023-05-25,125.209999,125.980003,122.900002,124.349998,124.349998,33812700 +2023-05-26,124.065002,126.000000,123.290001,125.430000,125.430000,25154700 +2023-05-30,126.290001,126.379997,122.889999,124.639999,124.639999,27230700 +2023-05-31,123.699997,124.900002,123.099998,123.370003,123.370003,41548800 +2023-06-01,123.500000,125.040001,123.300003,124.370003,124.370003,25017700 +2023-06-02,124.489998,126.745003,124.349998,125.230003,125.230003,19362400 +2023-06-05,124.610001,127.989998,124.379997,126.629997,126.629997,22672500 +2023-06-06,126.599998,128.880005,125.970001,127.910004,127.910004,19450100 +2023-06-07,127.574997,129.550003,122.629997,122.940002,122.940002,34179300 +2023-06-08,122.584999,123.730003,122.010002,122.669998,122.669998,24815000 +2023-06-09,122.559998,124.285004,122.419998,122.870003,122.870003,20304500 +2023-06-12,123.394997,124.750000,122.349998,124.349998,124.349998,22255700 +2023-06-13,125.650002,125.860001,123.845001,124.430000,124.430000,19287700 +2023-06-14,123.800003,124.790001,122.160004,124.379997,124.379997,24659600 +2023-06-15,123.879997,126.160004,123.139999,125.790001,125.790001,24517100 +2023-06-16,126.699997,126.699997,123.790001,124.059998,124.059998,56686800 +2023-06-20,123.535004,125.175003,122.830002,123.849998,123.849998,22698000 +2023-06-21,123.235001,123.410004,120.860001,121.260002,121.260002,22612000 +2023-06-22,120.660004,123.934998,119.599998,123.870003,123.870003,20781900 +2023-06-23,122.040001,123.440002,121.860001,123.019997,123.019997,29542900 +2023-06-26,121.466003,122.720001,118.989998,119.089996,119.089996,23185000 +2023-06-27,117.839996,119.894997,116.910004,119.010002,119.010002,27221700 +2023-06-28,117.959999,121.269997,117.599998,121.080002,121.080002,19753100 +2023-06-29,120.089996,120.910004,119.209999,120.010002,120.010002,18517500 +2023-06-30,121.099998,122.029999,120.879997,120.970001,120.970001,23865800 +2023-07-03,120.320000,121.019997,119.705002,120.559998,120.559998,13888300 +2023-07-05,120.059998,123.370003,120.059998,122.629997,122.629997,17830300 +2023-07-06,120.639999,121.150002,119.250000,120.930000,120.930000,17732500 +2023-07-07,120.889999,121.750000,120.089996,120.139999,120.139999,20982400 +2023-07-10,119.070000,119.070000,116.639999,116.870003,116.870003,32960100 +2023-07-11,116.760002,118.224998,115.830002,117.709999,117.709999,18286600 +2023-07-12,119.300003,120.959999,119.000000,119.620003,119.620003,22059600 +2023-07-13,121.540001,125.334999,121.059998,124.830002,124.830002,31535900 +2023-07-14,125.129997,127.089996,124.900002,125.699997,125.699997,20482800 +2023-07-17,126.059998,127.279999,124.500000,125.059998,125.059998,20675300 +2023-07-18,124.904999,124.989998,123.300003,124.080002,124.080002,21071200 +2023-07-19,124.790001,125.470001,122.470001,122.779999,122.779999,22313800 +2023-07-20,122.120003,124.699997,118.684998,119.529999,119.529999,27541700 +2023-07-21,120.870003,121.300003,119.070000,120.309998,120.309998,56498100 +2023-07-24,121.926003,123.349998,121.379997,121.879997,121.879997,22276100 +2023-07-25,121.879997,123.690002,121.529999,122.790001,122.790001,31820800 +2023-07-26,130.360001,131.369995,128.710007,129.660004,129.660004,46216900 +2023-07-27,131.800003,133.600006,129.179993,129.869995,129.869995,35931600 +2023-07-28,130.970001,134.070007,130.919998,133.009995,133.009995,26971000 +2023-07-31,133.009995,133.830002,132.130005,133.110001,133.110001,18381900 +2023-08-01,130.854996,132.919998,130.750000,131.889999,131.889999,22154300 +2023-08-02,129.839996,130.419998,127.849998,128.639999,128.639999,22705800 +2023-08-03,128.369995,129.770004,127.775002,128.770004,128.770004,15018100 +2023-08-04,129.600006,131.929993,128.315002,128.539993,128.539993,20509500 +2023-08-07,129.509995,132.059998,129.429993,131.940002,131.940002,17621000 +2023-08-08,130.979996,131.940002,130.130005,131.839996,131.839996,16836000 +2023-08-09,132.190002,132.470001,129.505005,130.149994,130.149994,17745200 +2023-08-10,131.970001,132.647003,130.035004,130.210007,130.210007,17855700 +2023-08-11,129.201996,130.440002,128.750000,130.169998,130.169998,15191500 +2023-08-14,129.850006,131.910004,129.589996,131.830002,131.830002,17526200 +2023-08-15,131.589996,131.990005,129.819000,130.270004,130.270004,14769200 +2023-08-16,129.279999,130.897995,128.460007,129.110001,129.110001,17548400 +2023-08-17,130.449997,132.490997,129.850006,130.460007,130.460007,23665600 +2023-08-18,129.059998,129.830002,127.000000,128.110001,128.110001,23619400 +2023-08-21,127.849998,129.259995,127.160004,128.929993,128.929993,21851100 +2023-08-22,129.130005,130.949997,128.925003,129.690002,129.690002,15569400 +2023-08-23,130.850006,134.070007,130.509995,133.210007,133.210007,26497000 +2023-08-24,134.727005,134.970001,130.300003,130.419998,130.419998,18680400 +2023-08-25,130.139999,131.399994,128.039993,130.690002,130.690002,20678100 +2023-08-28,132.080002,133.240005,130.850006,131.789993,131.789993,16715500 +2023-08-29,132.998001,137.294998,132.979996,135.490005,135.490005,30803300 +2023-08-30,135.570007,137.250000,135.020996,136.929993,136.929993,21773400 +2023-08-31,137.050003,138.399994,136.820007,137.350006,137.350006,28147900 +2023-09-01,138.429993,138.580002,135.940002,136.800003,136.800003,16665700 +2023-09-05,136.440002,137.369995,135.559998,136.710007,136.710007,17730200 +2023-09-06,137.014999,137.479996,134.690002,135.369995,135.369995,15814300 +2023-09-07,134.600006,136.580002,133.960007,136.199997,136.199997,16976000 +2023-09-08,135.869995,137.514999,135.869995,137.199997,137.199997,17810700 +2023-09-11,137.380005,138.264008,136.550003,137.740005,137.740005,17180800 +2023-09-12,137.130005,137.639999,135.929993,136.070007,136.070007,15212900 +2023-09-13,135.899994,137.699997,134.929993,137.500000,137.500000,16394900 +2023-09-14,138.389999,139.550003,137.059998,138.990005,138.990005,19064600 +2023-09-15,138.800003,139.360001,137.179993,138.300003,138.300003,48947600 +2023-09-18,137.630005,139.929993,137.630005,138.960007,138.960007,16233600 +2023-09-19,138.250000,139.175003,137.500000,138.830002,138.830002,15479100 +2023-09-20,138.830002,138.839996,134.520004,134.589996,134.589996,21473500 +2023-09-21,132.389999,133.190002,131.089996,131.360001,131.360001,22042700 +2023-09-22,131.679993,133.009995,130.509995,131.250000,131.250000,17348700 +2023-09-25,130.770004,132.220001,130.029999,132.169998,132.169998,14650000 +2023-09-26,130.914001,131.404999,128.190002,129.449997,129.449997,20378800 +2023-09-27,129.440002,131.720001,129.380005,131.460007,131.460007,18764200 +2023-09-28,130.690002,134.179993,130.690002,133.130005,133.130005,18201400 +2023-09-29,134.080002,134.889999,131.320007,131.850006,131.850006,23224200 +2023-10-02,132.154999,135.360001,132.065002,135.169998,135.169998,19210400 +2023-10-03,134.929993,135.240005,132.815002,133.300003,133.300003,19628700 +2023-10-04,133.660004,136.570007,133.429993,136.270004,136.270004,22848000 +2023-10-05,136.130005,136.500000,134.455002,135.990005,135.990005,15922900 +2023-10-06,134.940002,139.186005,134.940002,138.729996,138.729996,20819300 +2023-10-09,137.990005,139.970001,136.699997,139.500000,139.500000,16599100 +2023-10-10,139.509995,140.740005,138.429993,139.199997,139.199997,19554900 +2023-10-11,139.850006,142.220001,139.839996,141.699997,141.699997,19203633 \ No newline at end of file diff --git a/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/movingaverage/OptimizedMovingAverage.scala b/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/movingaverage/OptimizedMovingAverage.scala new file mode 100644 index 000000000..69286f131 --- /dev/null +++ b/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/movingaverage/OptimizedMovingAverage.scala @@ -0,0 +1,46 @@ +package com.baeldung.scala.movingaverage + +import scala.collection.immutable.Queue +import scala.io.Source + +object OptimizedMovingAverage { + def main(args: Array[String]): Unit = { + val stream = getClass.getResourceAsStream("/GOOG.csv") + val lines = Source.fromInputStream(stream).getLines().drop(1) + val stockPrices = lines.map { line => + val Array(date, _, _, _, _, close, _) = line.split(",") + StockPrice(date, close.toDouble) + }.toList + + val windowSize = 60 + + val optimizedSMA = stockPrices + .foldLeft((Queue.empty[Double], List.empty[StockPrice], 0.0)) { + case ((queue, averages, sum), StockPrice(date, price)) => + val newQueue = queue.enqueue(price) + val newSum = sum + price + + if (newQueue.size > windowSize) { + val (oldest, remainingQueue) = newQueue.dequeue + val newAverage = (newSum - oldest) / windowSize + ( + remainingQueue, + StockPrice(date, newAverage) :: averages, + newSum - oldest + ) + } else if (newQueue.size == windowSize) { + val newAverage = newSum / windowSize + (newQueue, StockPrice(date, newAverage) :: averages, newSum) + } else { + (newQueue, averages, newSum) + } + } + ._2 + .reverse + + println("Optimized 30-day Simple Moving Averages:") + optimizedSMA.foreach { case StockPrice(date, average) => + println(s"$date: $average") + } + } +} diff --git a/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/movingaverage/SlidingMovingAverage.scala b/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/movingaverage/SlidingMovingAverage.scala new file mode 100644 index 000000000..d70581e41 --- /dev/null +++ b/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/movingaverage/SlidingMovingAverage.scala @@ -0,0 +1,48 @@ +package com.baeldung.scala.movingaverage + +case class StockPrice(date: String, price: Double) + +object SlidingMovingAverage extends App { + + // Sample stock prices + val stockPrices = List( + StockPrice("2021-01-01", 1.2), + StockPrice("2021-01-02", 1.3), + StockPrice("2021-01-03", 1.4), + StockPrice("2021-01-04", 1.5), + StockPrice("2021-01-05", 1.6) + ) + + val windowSize = 3 + + // Simple Moving Average (SMA) + val sma = stockPrices + .sliding(windowSize) + .map { window => + val average = window.map(_.price).sum / window.size + val lastDate = window.last.date + StockPrice(lastDate, average) + } + .toList + + // Weighted Moving Average (WMA) + val weights = List(0.1, 0.2, 0.7) + val wma = stockPrices + .sliding(windowSize) + .map { window => + val weightedSum = (window.map(_.price) zip weights).map { + case (price, weight) => + price * weight + }.sum + val lastDate = window.last.date + StockPrice(lastDate, weightedSum) + } + .toList + + // Output the results + println("Simple Moving Average:") + sma.foreach(println) + + println("\nWeighted Moving Average:") + wma.foreach(println) +} From 3cad2aa5bb005a750a45bfad217b18a802ac68ca Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 10 Nov 2023 17:54:41 +0100 Subject: [PATCH 0095/1318] Corrected the path of file used in test --- .../src/test/scala-2/com/baeldung/scala/fs2/FS2SampleTest.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/fs2/FS2SampleTest.scala b/scala-libraries/src/test/scala-2/com/baeldung/scala/fs2/FS2SampleTest.scala index c260b74a9..7f42e58a2 100644 --- a/scala-libraries/src/test/scala-2/com/baeldung/scala/fs2/FS2SampleTest.scala +++ b/scala-libraries/src/test/scala-2/com/baeldung/scala/fs2/FS2SampleTest.scala @@ -11,7 +11,7 @@ class FS2SampleTest extends AsyncFlatSpec with AsyncIOSpec with Matchers { it should "read from a file and calculate word count" in { val outFile = "wc-fs2-output.log" - val loc = "scala-libraries/scala-libraries-1/src/test/resources/fs2data.txt" + val loc = "scala-libraries/src/test/resources/fs2data.txt" val io = Fs2Examples.readAndWriteFile(loc, outFile).compile.drain val res = io.map { _ => Source.fromFile(outFile).getLines().toList From 713b862c73d65edbb278e9a2e3d3b5ac59abe424 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 10 Nov 2023 19:54:43 +0100 Subject: [PATCH 0096/1318] Merged from master --- .../com/baeldung/scala/slidinggrouped/SlidingGroupedTest.scala | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {scala3-lang-3 => scala-lang-modules/scala3-lang-3}/src/test/scala/com/baeldung/scala/slidinggrouped/SlidingGroupedTest.scala (100%) diff --git a/scala3-lang-3/src/test/scala/com/baeldung/scala/slidinggrouped/SlidingGroupedTest.scala b/scala-lang-modules/scala3-lang-3/src/test/scala/com/baeldung/scala/slidinggrouped/SlidingGroupedTest.scala similarity index 100% rename from scala3-lang-3/src/test/scala/com/baeldung/scala/slidinggrouped/SlidingGroupedTest.scala rename to scala-lang-modules/scala3-lang-3/src/test/scala/com/baeldung/scala/slidinggrouped/SlidingGroupedTest.scala From 8713f7febe8350f3fdeede22c29dce2e5c99b742 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 10 Nov 2023 21:33:49 +0100 Subject: [PATCH 0097/1318] Upgraded play to 3.0 and fixed imports --- build.sbt | 4 +++- play-scala/application-tests/build.sbt | 2 +- play-scala/async-tasks/app/actors/ActorsModule.scala | 4 ++-- play-scala/async-tasks/app/actors/AsyncTaskInActor.scala | 3 ++- .../async-tasks/app/controllers/AsyncTaskController.scala | 2 +- .../test/errors/CustomErrorHandlerUnitTest.scala | 2 +- .../app/guice/filter/LoggingFilter.scala | 2 +- project/plugins.sbt | 8 ++++++-- 8 files changed, 17 insertions(+), 10 deletions(-) diff --git a/build.sbt b/build.sbt index f2e2b48bc..76bbf4572 100644 --- a/build.sbt +++ b/build.sbt @@ -281,7 +281,7 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) "com.beachape" %% "enumeratum" % "1.7.3" ), libraryDependencies ++= Seq( - "com.typesafe.play" %% "play-slick" % "5.1.0", + "com.typesafe.play" %% "play-slick" % "5.2.0-RC2", "org.postgresql" % "postgresql" % "42.6.0" ), libraryDependencies ++= Seq( @@ -560,3 +560,5 @@ lazy val playGroup = (project in file("play-scala")) //lazy val scalajs = project in file("scala-js") lazy val scalatra = project in file("scalatra") lazy val benchmark = project in file("specialized-benchmark") + +ThisBuild / libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always diff --git a/play-scala/application-tests/build.sbt b/play-scala/application-tests/build.sbt index f086b4918..5e7ce063a 100644 --- a/play-scala/application-tests/build.sbt +++ b/play-scala/application-tests/build.sbt @@ -12,5 +12,5 @@ libraryDependencies += "com.h2database" % "h2" % "1.4.200" libraryDependencies += "org.postgresql" % "postgresql" % "42.2.27" libraryDependencies += "com.typesafe.play" %% "play-slick" % "5.2.0-RC2" libraryDependencies += "com.typesafe.play" %% "play-slick-evolutions" % "5.2.0-RC2" -libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "6.0.0" % Test +libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.0" % Test libraryDependencies += "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % Test diff --git a/play-scala/async-tasks/app/actors/ActorsModule.scala b/play-scala/async-tasks/app/actors/ActorsModule.scala index 8492d6c05..d3f91fc27 100644 --- a/play-scala/async-tasks/app/actors/ActorsModule.scala +++ b/play-scala/async-tasks/app/actors/ActorsModule.scala @@ -1,9 +1,9 @@ package actors import com.google.inject.AbstractModule -import play.libs.akka.AkkaGuiceSupport +import play.libs.pekko.PekkoGuiceSupport -class ActorsModule extends AbstractModule with AkkaGuiceSupport { +class ActorsModule extends AbstractModule with PekkoGuiceSupport { override def configure(): Unit = { bindActor(classOf[AsyncTaskInActor], "async-job-actor") } diff --git a/play-scala/async-tasks/app/actors/AsyncTaskInActor.scala b/play-scala/async-tasks/app/actors/AsyncTaskInActor.scala index f1957dadb..c9720c6f5 100644 --- a/play-scala/async-tasks/app/actors/AsyncTaskInActor.scala +++ b/play-scala/async-tasks/app/actors/AsyncTaskInActor.scala @@ -1,6 +1,7 @@ package actors -import akka.actor.Actor + +import org.apache.pekko.actor.Actor import java.time.LocalDateTime diff --git a/play-scala/async-tasks/app/controllers/AsyncTaskController.scala b/play-scala/async-tasks/app/controllers/AsyncTaskController.scala index ba6b8c788..44667ca7d 100644 --- a/play-scala/async-tasks/app/controllers/AsyncTaskController.scala +++ b/play-scala/async-tasks/app/controllers/AsyncTaskController.scala @@ -1,6 +1,6 @@ package controllers -import akka.actor.{ActorRef, ActorSystem} +import org.apache.pekko.actor.{ActorRef, ActorSystem} import javax.inject._ import play.api.mvc.{Action, AnyContent, BaseController, ControllerComponents} diff --git a/play-scala/custom-error-handling/test/errors/CustomErrorHandlerUnitTest.scala b/play-scala/custom-error-handling/test/errors/CustomErrorHandlerUnitTest.scala index 2f803c464..3e5babcb4 100644 --- a/play-scala/custom-error-handling/test/errors/CustomErrorHandlerUnitTest.scala +++ b/play-scala/custom-error-handling/test/errors/CustomErrorHandlerUnitTest.scala @@ -1,6 +1,6 @@ package errors -import akka.http.scaladsl.model.StatusCodes +import org.apache.pekko.http.scaladsl.model.StatusCodes import org.scalatest.concurrent.Eventually import org.scalatestplus.play.PlaySpec import org.scalatestplus.play.guice.GuiceOneAppPerTest diff --git a/play-scala/dependency-injection/app/guice/filter/LoggingFilter.scala b/play-scala/dependency-injection/app/guice/filter/LoggingFilter.scala index a17471a1e..23f5db584 100644 --- a/play-scala/dependency-injection/app/guice/filter/LoggingFilter.scala +++ b/play-scala/dependency-injection/app/guice/filter/LoggingFilter.scala @@ -1,6 +1,6 @@ package guice.filter -import akka.stream.Materializer +import org.apache.pekko.stream.Materializer import play.api.Logger import play.api.mvc.{Filter, RequestHeader, Result} import play.api.routing.{HandlerDef, Router} diff --git a/project/plugins.sbt b/project/plugins.sbt index fb489e82d..78df7b3cb 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -5,9 +5,11 @@ addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.13.0") addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.2.1") libraryDependencies += "ai.kien" %% "python-native-libs" % "0.2.4" -addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.9.0") -addSbtPlugin("com.typesafe.play" % "sbt-twirl" % "1.6.2") +// Make sure to keep the play plugin in sync with the sub modules under play-scala group +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.0") + +addSbtPlugin("org.playframework.twirl" % "sbt-twirl" % "2.0.1") addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "4.2.1") addSbtPlugin("pl.project13.scala" % "sbt-jmh" % "0.4.3") @@ -16,3 +18,5 @@ libraryDependencies += "org.scala-js" %% "scalajs-env-jsdom-nodejs" % "1.0.0" resolvers += Resolver.jcenterRepo addSbtPlugin("net.aichler" % "sbt-jupiter-interface" % "0.8.3") + +ThisBuild / libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always From 3c139a226856ab12810ab08ddd5499e984af3c39 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 10 Nov 2023 21:50:08 +0100 Subject: [PATCH 0098/1318] Scalafmt run --- play-scala/async-tasks/app/actors/AsyncTaskInActor.scala | 1 - 1 file changed, 1 deletion(-) diff --git a/play-scala/async-tasks/app/actors/AsyncTaskInActor.scala b/play-scala/async-tasks/app/actors/AsyncTaskInActor.scala index c9720c6f5..fe4159302 100644 --- a/play-scala/async-tasks/app/actors/AsyncTaskInActor.scala +++ b/play-scala/async-tasks/app/actors/AsyncTaskInActor.scala @@ -1,6 +1,5 @@ package actors - import org.apache.pekko.actor.Actor import java.time.LocalDateTime From 26fde375ea3737c34c884f6e202793704c8758f4 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 11 Nov 2023 00:14:29 +0000 Subject: [PATCH 0099/1318] Update fs2-core, fs2-io from 3.9.2 to 3.9.3 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index f2e2b48bc..f1ce55d0e 100644 --- a/build.sbt +++ b/build.sbt @@ -225,7 +225,7 @@ val monocleVersion = "2.1.0" val slickVersion = "3.4.1" val shapelessVersion = "2.3.10" val scalazVersion = "7.3.7" -val fs2Version = "3.9.2" +val fs2Version = "3.9.3" val AkkaVersion = "2.8.0" val AkkaHttpVersion = "10.5.0" val reactiveMongo = "1.0.10" From 1ec425f420296a154d95ed4963edc36e21f59a86 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 11 Nov 2023 00:14:46 +0000 Subject: [PATCH 0100/1318] Update aws-java-sdk-s3 from 1.12.580 to 1.12.587 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index f2e2b48bc..3275b1c00 100644 --- a/build.sbt +++ b/build.sbt @@ -366,7 +366,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) ), libraryDependencies ++= Seq( "software.amazon.awssdk" % "s3" % "2.21.14", - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.580" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.587" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.0" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.0" % IntegrationTest ), From 1f006ef367156b2f3c58198f422dffba9c2ee53d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 11 Nov 2023 00:14:57 +0000 Subject: [PATCH 0101/1318] Update os-lib from 0.9.1 to 0.9.2 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index f2e2b48bc..5f6666962 100644 --- a/build.sbt +++ b/build.sbt @@ -307,7 +307,7 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) val http4sBlaze = "0.23.15" val http4sVersion = "0.23.23" -val osLibVersion = "0.9.1" +val osLibVersion = "0.9.2" lazy val scala_libraries_3 = (project in file("scala-libraries-3")) .settings( name := "scala-libraries", From d16ff95772fcc9aa7859fe0016a7bd3e67017031 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 11 Nov 2023 00:15:12 +0000 Subject: [PATCH 0102/1318] Update utest from 0.8.1 to 0.8.2 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index f2e2b48bc..4ce667910 100644 --- a/build.sbt +++ b/build.sbt @@ -347,7 +347,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) .settings( name := "scala-libraries-4", scalaVersion := scalaV, - libraryDependencies += "com.lihaoyi" %% "utest" % "0.8.1" % "test", + libraryDependencies += "com.lihaoyi" %% "utest" % "0.8.2" % "test", testFrameworks += new TestFramework("utest.runner.Framework"), libraryDependencies ++= scalaTestDeps .map(_.withConfigurations(Some("it,test"))), From 2e91a9084092d039b6681e2914037259e72d72e8 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 11 Nov 2023 00:15:30 +0000 Subject: [PATCH 0103/1318] Update elastic4s-client-esjava, ... from 8.9.4 to 8.9.5 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index f2e2b48bc..a6639eb71 100644 --- a/build.sbt +++ b/build.sbt @@ -258,7 +258,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) val circeVersion = "0.14.6" val monixVersion = "3.4.1" -val elastic4sVersion = "8.9.4" +val elastic4sVersion = "8.9.5" val sparkVersion = "3.5.0" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion From c45f4098ed918ddb3b73c21fb7d452eb7dbec68c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 11 Nov 2023 00:15:47 +0000 Subject: [PATCH 0104/1318] Update de.flapdoodle.embed.mongo from 4.9.3 to 4.10.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index f2e2b48bc..69be82d7f 100644 --- a/build.sbt +++ b/build.sbt @@ -10,7 +10,7 @@ val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.2" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.2" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV val logback = "ch.qos.logback" % "logback-classic" % "1.4.11" -val embedMongoVersion = "4.9.3" +val embedMongoVersion = "4.10.1" val scalaTestDeps = Seq( "org.scalatest" %% "scalatest" % "3.2.17" % Test, From b463e49fde9a945b9356e1c6aa0151376856886c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 11 Nov 2023 00:15:58 +0000 Subject: [PATCH 0105/1318] Update zio, zio-streams, zio-test-sbt from 2.0.18 to 2.0.19 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index f2e2b48bc..fdf3c2778 100644 --- a/build.sbt +++ b/build.sbt @@ -20,7 +20,7 @@ val scalaTestDeps = Seq( ) val scalaMock = "org.scalamock" %% "scalamock" % "5.2.0" % Test -val zioVersion = "2.0.18" +val zioVersion = "2.0.19" lazy val scala_core = (project in file("scala-core")) .settings( From c50545128f3809bf6a3d11e65024009c9099a38e Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 11 Nov 2023 00:16:14 +0000 Subject: [PATCH 0106/1318] Update kafka-avro-serializer from 7.5.1 to 7.5.2 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index f2e2b48bc..2afdefe9e 100644 --- a/build.sbt +++ b/build.sbt @@ -385,7 +385,7 @@ val jackSonVersion = "2.15.3" val log4jApiScalaVersion = "13.0.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.1" -val kafkaAvroSerializer = "7.5.1" +val kafkaAvroSerializer = "7.5.2" lazy val scala_libraries_5 = (project in file("scala-libraries-5")) .settings( From fd4b80ea51921da3ff5819ad313aa115b5b15c2d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 11 Nov 2023 00:16:38 +0000 Subject: [PATCH 0107/1318] Update kafka-clients from 7.5.1-ce to 7.5.2-ce --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index f2e2b48bc..c8478c3bc 100644 --- a/build.sbt +++ b/build.sbt @@ -379,7 +379,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) ) val spireVersion = "0.18.0" -val kafkaVersion = "7.5.1-ce" +val kafkaVersion = "7.5.2-ce" val pureconfigVersion = "0.17.4" val jackSonVersion = "2.15.3" val log4jApiScalaVersion = "13.0.0" From 9403c042e91d90db6dbb9bd16d70e362ebdf9eee Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 11 Nov 2023 00:16:49 +0000 Subject: [PATCH 0108/1318] Update mongo-scala-driver from 4.11.0 to 4.11.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index f2e2b48bc..4088ae70d 100644 --- a/build.sbt +++ b/build.sbt @@ -173,7 +173,7 @@ lazy val scala_akka_dependencies: Seq[ModuleID] = Seq( "com.typesafe.akka" %% "akka-actor-testkit-typed" % AkkaVersion % Test, "com.lightbend.akka" %% "akka-stream-alpakka-mongodb" % "5.0.0", "com.typesafe.akka" %% "akka-stream" % AkkaVersion, - "org.mongodb.scala" %% "mongo-scala-driver" % "4.11.0", + "org.mongodb.scala" %% "mongo-scala-driver" % "4.11.1", "com.lightbend.akka" %% "akka-stream-alpakka-file" % "5.0.0", jUnitInterface, embeddedMongo % Test, From ed026223128f8aef141a472c663b58d84c1cdff5 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 11 Nov 2023 00:17:06 +0000 Subject: [PATCH 0109/1318] Update scallop from 5.0.0 to 5.0.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index f2e2b48bc..4d7cf058a 100644 --- a/build.sbt +++ b/build.sbt @@ -81,7 +81,7 @@ lazy val scala_core_7 = (project in file("scala-core-7")) libraryDependencies ++= scalaTestDeps, libraryDependencies += jUnitInterface, libraryDependencies += "com.github.scopt" %% "scopt" % "4.1.0", - libraryDependencies += "org.rogach" %% "scallop" % "5.0.0", + libraryDependencies += "org.rogach" %% "scallop" % "5.0.1", libraryDependencies += "org.backuity.clist" %% "clist-core" % "3.5.1", libraryDependencies += "org.backuity.clist" %% "clist-macros" % "3.5.1" % "provided", libraryDependencies += "args4j" % "args4j" % "2.33" From 20050f87985cfe0e3021cd100e803a0a2e2ff14e Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 11 Nov 2023 00:17:45 +0000 Subject: [PATCH 0110/1318] Update scalaz-core from 7.3.7 to 7.3.8 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index f2e2b48bc..c548ab50e 100644 --- a/build.sbt +++ b/build.sbt @@ -224,7 +224,7 @@ lazy val scala_akka_2 = (project in file("scala-akka-2")) val monocleVersion = "2.1.0" val slickVersion = "3.4.1" val shapelessVersion = "2.3.10" -val scalazVersion = "7.3.7" +val scalazVersion = "7.3.8" val fs2Version = "3.9.2" val AkkaVersion = "2.8.0" val AkkaHttpVersion = "10.5.0" From 6f888d05387b1ffcc6fa95a8e41aae81d73a56af Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 11 Nov 2023 00:18:06 +0000 Subject: [PATCH 0111/1318] Update s3 from 2.21.14 to 2.21.21 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index f2e2b48bc..413b5b87e 100644 --- a/build.sbt +++ b/build.sbt @@ -365,7 +365,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "org.testcontainers" % "pulsar" % "1.19.1" % IntegrationTest ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "s3" % "2.21.14", + "software.amazon.awssdk" % "s3" % "2.21.21", "com.amazonaws" % "aws-java-sdk-s3" % "1.12.580" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.0" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.0" % IntegrationTest From 7bfc2af78236f521e5f95dc33e70758a45ffeba0 Mon Sep 17 00:00:00 2001 From: edizor <113095366+edizor@users.noreply.github.com> Date: Sat, 11 Nov 2023 09:19:13 +0800 Subject: [PATCH 0112/1318] Create README.md [skip ci] --- scala-libraries-6/README.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 scala-libraries-6/README.md diff --git a/scala-libraries-6/README.md b/scala-libraries-6/README.md new file mode 100644 index 000000000..136390fc9 --- /dev/null +++ b/scala-libraries-6/README.md @@ -0,0 +1,2 @@ +## Relevant Articles +- [Handling YAML in Scala 3](https://www.baeldung.com/scala/yaml-scala-3) From fe106a5be6d5fb718ed4518813b973226a5b9ed6 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 11 Nov 2023 10:00:46 +0100 Subject: [PATCH 0113/1318] Updated scalatest-play version --- play-scala/custom-error-handling/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/play-scala/custom-error-handling/build.sbt b/play-scala/custom-error-handling/build.sbt index feb3d5af0..c3575dff5 100644 --- a/play-scala/custom-error-handling/build.sbt +++ b/play-scala/custom-error-handling/build.sbt @@ -8,4 +8,4 @@ enablePlugins(PlayScala) scalaVersion := ScalaVersions.scala2Version libraryDependencies += guice -libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "5.0.0" % Test +libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.0" % Test From a0181c9e2fa23d8917b2a9a9f69a03f503621c86 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 11 Nov 2023 11:54:04 +0100 Subject: [PATCH 0114/1318] Upgraded scalatest-play in all other modules --- play-scala/caching-in-play/build.sbt | 2 +- play-scala/configuration-access/build.sbt | 2 +- play-scala/dependency-injection/build.sbt | 2 +- play-scala/introduction-to-play/build.sbt | 2 +- play-scala/play-static-assets/build.sbt | 2 +- play-scala/play-templates/build.sbt | 2 +- play-scala/rest-api/build.sbt | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/play-scala/caching-in-play/build.sbt b/play-scala/caching-in-play/build.sbt index d0e24fe33..faa3e3f7b 100644 --- a/play-scala/caching-in-play/build.sbt +++ b/play-scala/caching-in-play/build.sbt @@ -10,7 +10,7 @@ scalaVersion := ScalaVersions.scala2Version libraryDependencies += guice libraryDependencies += caffeine libraryDependencies += ws -libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "5.0.0" % Test +libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.0" % Test libraryDependencies += "org.mockito" % "mockito-core" % "5.7.0" % Test PlayKeys.devSettings += "play.server.http.port" -> "9000" diff --git a/play-scala/configuration-access/build.sbt b/play-scala/configuration-access/build.sbt index 74dc224e2..0962fad04 100644 --- a/play-scala/configuration-access/build.sbt +++ b/play-scala/configuration-access/build.sbt @@ -8,7 +8,7 @@ enablePlugins(PlayScala) scalaVersion := ScalaVersions.scala2Version libraryDependencies += guice -libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "5.0.0" % Test +libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.0" % Test libraryDependencies += "org.mockito" % "mockito-scala_2.13" % "1.17.29" % Test // Adds additional packages into Twirl diff --git a/play-scala/dependency-injection/build.sbt b/play-scala/dependency-injection/build.sbt index e3836abd7..99cfd0a8d 100644 --- a/play-scala/dependency-injection/build.sbt +++ b/play-scala/dependency-injection/build.sbt @@ -7,6 +7,6 @@ enablePlugins(PlayScala) scalaVersion := ScalaVersions.scala2Version libraryDependencies += guice -libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "5.0.0" % Test +libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.0" % Test libraryDependencies += "com.softwaremill.macwire" %% "macros" % "2.5.9" % Provided libraryDependencies += "com.softwaremill.macwire" %% "util" % "2.5.9" diff --git a/play-scala/introduction-to-play/build.sbt b/play-scala/introduction-to-play/build.sbt index 7f836edcd..c6e9b0f68 100644 --- a/play-scala/introduction-to-play/build.sbt +++ b/play-scala/introduction-to-play/build.sbt @@ -8,4 +8,4 @@ enablePlugins(PlayScala) scalaVersion := ScalaVersions.scala2Version libraryDependencies += guice -libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "5.0.0" % Test +libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.0" % Test diff --git a/play-scala/play-static-assets/build.sbt b/play-scala/play-static-assets/build.sbt index 80a89c06b..05bd08267 100644 --- a/play-scala/play-static-assets/build.sbt +++ b/play-scala/play-static-assets/build.sbt @@ -10,7 +10,7 @@ enablePlugins(SbtWeb) scalaVersion := "2.13.12" libraryDependencies += guice -libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "5.1.0" % Test +libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.0" % Test libraryDependencies += "org.webjars.bower" % "bootstrap-sass" % "3.3.7" // See https://github.com/sbt/sbt-js-engine/issues/68 diff --git a/play-scala/play-templates/build.sbt b/play-scala/play-templates/build.sbt index 0fd477d67..20846a58e 100644 --- a/play-scala/play-templates/build.sbt +++ b/play-scala/play-templates/build.sbt @@ -8,4 +8,4 @@ enablePlugins(PlayScala) scalaVersion := ScalaVersions.scala2Version libraryDependencies += guice -libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "5.0.0" % Test +libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.0" % Test diff --git a/play-scala/rest-api/build.sbt b/play-scala/rest-api/build.sbt index 970cfb2b3..79e55e81a 100644 --- a/play-scala/rest-api/build.sbt +++ b/play-scala/rest-api/build.sbt @@ -8,7 +8,7 @@ enablePlugins(PlayScala) scalaVersion := ScalaVersions.scala2Version libraryDependencies += guice -libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "5.0.0" % Test +libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.0" % Test // Adds additional packages into Twirl //TwirlKeys.templateImports += "com.baeldung.controllers._" From 7e02c7facdbd4f1d67139388408b9250ee1d59fb Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 11 Nov 2023 12:24:37 +0100 Subject: [PATCH 0115/1318] fixed compilation error in tests --- .../guice/service/ServiceWithRemoteCallTest.scala | 11 +++-------- .../macwire/service/ServiceWithRemoteCallTest.scala | 4 ++-- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/play-scala/dependency-injection/test/guice/service/ServiceWithRemoteCallTest.scala b/play-scala/dependency-injection/test/guice/service/ServiceWithRemoteCallTest.scala index cfb3ec06e..c199e6457 100644 --- a/play-scala/dependency-injection/test/guice/service/ServiceWithRemoteCallTest.scala +++ b/play-scala/dependency-injection/test/guice/service/ServiceWithRemoteCallTest.scala @@ -1,18 +1,13 @@ package guice.service -import guice.modules.{ - ApiModule, - MockApiModule, - ServiceModule, - ServiceWithRemoteCall -} -import org.scalatest.{WordSpec, fixture} +import guice.modules.{ApiModule, MockApiModule, ServiceModule, ServiceWithRemoteCall} +import org.scalatest.wordspec.FixtureAnyWordSpecLike import org.scalatestplus.play.MixedFixtures import play.api.inject.guice.GuiceApplicationBuilder class ServiceWithRemoteCallTest extends MixedFixtures - with fixture.WordSpecLike { + with FixtureAnyWordSpecLike { "ServiceWithRemoteCall call" should { "invoke mock when remote api is mocked" in { diff --git a/play-scala/dependency-injection/test/macwire/service/ServiceWithRemoteCallTest.scala b/play-scala/dependency-injection/test/macwire/service/ServiceWithRemoteCallTest.scala index 444f637a3..9d8904f1e 100644 --- a/play-scala/dependency-injection/test/macwire/service/ServiceWithRemoteCallTest.scala +++ b/play-scala/dependency-injection/test/macwire/service/ServiceWithRemoteCallTest.scala @@ -1,9 +1,9 @@ package macwire.service import macwire.components.{ApiComponents, MockApiComponents, ServiceComponents} -import org.scalatest.WordSpec +import org.scalatest.wordspec.AnyWordSpec -class ServiceWithRemoteCallTest extends WordSpec { +class ServiceWithRemoteCallTest extends AnyWordSpec { "ServiceWithRemoteCall call" should { From 21c9643a64d6cfc601637384ca581e9dfd50e524 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 11 Nov 2023 12:39:46 +0100 Subject: [PATCH 0116/1318] Sclafmt fixed --- .../test/guice/service/ServiceWithRemoteCallTest.scala | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/play-scala/dependency-injection/test/guice/service/ServiceWithRemoteCallTest.scala b/play-scala/dependency-injection/test/guice/service/ServiceWithRemoteCallTest.scala index c199e6457..c00e553e7 100644 --- a/play-scala/dependency-injection/test/guice/service/ServiceWithRemoteCallTest.scala +++ b/play-scala/dependency-injection/test/guice/service/ServiceWithRemoteCallTest.scala @@ -1,6 +1,11 @@ package guice.service -import guice.modules.{ApiModule, MockApiModule, ServiceModule, ServiceWithRemoteCall} +import guice.modules.{ + ApiModule, + MockApiModule, + ServiceModule, + ServiceWithRemoteCall +} import org.scalatest.wordspec.FixtureAnyWordSpecLike import org.scalatestplus.play.MixedFixtures import play.api.inject.guice.GuiceApplicationBuilder From 15a433bcb4cfd4a8c6f48f9c271347ea28d3f081 Mon Sep 17 00:00:00 2001 From: Oscar Mauricio Forero Carrillo Date: Sat, 11 Nov 2023 16:05:36 +0100 Subject: [PATCH 0117/1318] Scala 642: Code for the LRU Cache article (#996) * SCALA-642: Ignore .scala-build folder created when working with VS Codium and Scala 3 * SCALA-642: Code for the article --- .gitignore | 1 + build.sbt | 5 ++ .../com/baeldung/scala/caching/LRUCache.scala | 32 ++++++++ .../baeldung/scala/caching/LRUCacheSpec.scala | 82 +++++++++++++++++++ 4 files changed, 120 insertions(+) create mode 100644 scala3-lang-collections/src/main/scala/com/baeldung/scala/caching/LRUCache.scala create mode 100644 scala3-lang-collections/src/test/scala/com/baeldung/scala/caching/LRUCacheSpec.scala diff --git a/.gitignore b/.gitignore index bb0e28e6c..097fc3294 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,7 @@ project/plugins/project/ # Scala-IDE specific .scala_dependencies +.scala-build .worksheet .idea !/project/Versions.scala diff --git a/build.sbt b/build.sbt index cd9b4b385..ea02a9c4b 100644 --- a/build.sbt +++ b/build.sbt @@ -452,6 +452,11 @@ lazy val scala3_lang_3 = (project in file("scala3-lang-3")).settings( scalaVersion := scala3Version ) +lazy val scala3_lang_collections = (project in file("scala3-lang-collections")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version +) + lazy val cats_effects = (project in file("cats-effects")) .settings( name := "cats-effects", diff --git a/scala3-lang-collections/src/main/scala/com/baeldung/scala/caching/LRUCache.scala b/scala3-lang-collections/src/main/scala/com/baeldung/scala/caching/LRUCache.scala new file mode 100644 index 000000000..15337eb25 --- /dev/null +++ b/scala3-lang-collections/src/main/scala/com/baeldung/scala/caching/LRUCache.scala @@ -0,0 +1,32 @@ +package com.baeldung.scala.caching + +import scala.collection.mutable + +class LRUCache[K, V](val capacity: Int): + require(capacity >= 1, "A Cache of negative or 0 capacity makes no sense") + private val cache = mutable.LinkedHashMap.empty[K, V] + + private def evict(): Unit = { + cache.remove(cache.head._1) // Evict the least recently used item + } + + def get(key: K): Option[V] = synchronized { + // When reading, we attempt to remove the value + cache.remove(key) match + case Some(value) => + cache.put( + key, + value + ) // Put it back at the end to indicate recent access + Some(value) + case None => None + } + + def put(key: K, value: V): Unit = synchronized { + cache.remove(key) match + case _ if cache.size >= capacity => + evict() + cache.put(key, value) // Add new element at the end + case _ => + cache.put(key, value) + } diff --git a/scala3-lang-collections/src/test/scala/com/baeldung/scala/caching/LRUCacheSpec.scala b/scala3-lang-collections/src/test/scala/com/baeldung/scala/caching/LRUCacheSpec.scala new file mode 100644 index 000000000..58290474a --- /dev/null +++ b/scala3-lang-collections/src/test/scala/com/baeldung/scala/caching/LRUCacheSpec.scala @@ -0,0 +1,82 @@ +package com.baeldung.scala.caching + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers + +class LRUCacheSpec extends AnyFlatSpec with Matchers: + + "An LRU Cache" should "throw IllegalArgumentException if created with zero or negative size" in { + an[IllegalArgumentException] should be thrownBy { + new LRUCache[Int, String](0) + } + + an[IllegalArgumentException] should be thrownBy { + new LRUCache[Int, String](-1) + } + } + + it should "handle a cache size of 1 correctly" in { + val cache = new LRUCache[String, Int](1) + cache.put("key1", 1) + cache.get("key1") should be(Some(1)) + + // Adding another element should evict "key1" + cache.put("key2", 2) + cache.get("key1") should be(None) + cache.get("key2") should be(Some(2)) + + // Accessing "key2" and then adding a new key should evict "key2" + cache.get("key2") + cache.put("key3", 3) + cache.get("key2") should be(None) + cache.get("key3") should be(Some(3)) + } + + it should "return None for missing values" in { + val cache = new LRUCache[String, Int](2) + cache.get("missing") should be(None) + } + + it should "return the value for a key if present" in { + val cache = new LRUCache[String, Int](2) + cache.put("key1", 1) + cache.get("key1") should be(Some(1)) + } + + it should "evict the least recently used item when exceeding maxSize" in { + val cache = new LRUCache[String, Int](2) + cache.put("key1", 1) + cache.put("key2", 2) + cache.put("key3", 3) // This should evict "key1" + + cache.get("key1") should be(None) + cache.get("key2") should be(Some(2)) + cache.get("key3") should be(Some(3)) + } + + it should "update the position of a key when accessed" in { + val cache = new LRUCache[String, Int](2) + cache.put("key1", 1) + cache.put("key2", 2) + cache.get("key1") // This should move "key1" to the end + cache.put("key3", 3) // This should evict "key2" + + cache.get("key1") should be(Some(1)) + cache.get("key2") should be(None) + cache.get("key3") should be(Some(3)) + } + + it should "update the position of a key when updated" in { + val cache = new LRUCache[String, Int](2) + cache.put("key1", 1) + cache.put("key2", 2) + cache.put( + "key1", + 10 + ) // This should update "key1" value and move it to the end + cache.put("key3", 3) // This should evict "key2" + + cache.get("key1") should be(Some(10)) + cache.get("key2") should be(None) + cache.get("key3") should be(Some(3)) + } From 5bc5f82f679c6bef68857132b8f8f6e1647ed3ac Mon Sep 17 00:00:00 2001 From: Oscar Mauricio Forero Carrillo Date: Tue, 14 Nov 2023 22:19:29 +0100 Subject: [PATCH 0118/1318] Scala 593 (#942) * SCALA-558: Code for the article * KeywordCounter --- .gitignore | 1 + .../src/main/resources/GOOG.csv | 447 ++++++++++++++++++ .../CircularBufferFixedSizeList.scala | 48 ++ .../scala/fixedsizelist/FixedSizeList.scala | 27 ++ .../OptimizedMovingAverage.scala | 46 ++ .../movingaverage/SlidingMovingAverage.scala | 48 ++ .../CircularBufferFixedSizeListSpec.scala | 41 ++ .../fixedsizelist/FixedSizeListSpec.scala | 41 ++ 8 files changed, 699 insertions(+) create mode 100644 scala-core-collections-3/src/main/resources/GOOG.csv create mode 100644 scala-core-collections-3/src/main/scala-2/com/baeldung/scala/fixedsizelist/CircularBufferFixedSizeList.scala create mode 100644 scala-core-collections-3/src/main/scala-2/com/baeldung/scala/fixedsizelist/FixedSizeList.scala create mode 100644 scala-core-collections-3/src/main/scala-2/com/baeldung/scala/movingaverage/OptimizedMovingAverage.scala create mode 100644 scala-core-collections-3/src/main/scala-2/com/baeldung/scala/movingaverage/SlidingMovingAverage.scala create mode 100644 scala-core-collections-3/src/test/scala-2/com/baeldung/scala/fixedsizelist/CircularBufferFixedSizeListSpec.scala create mode 100644 scala-core-collections-3/src/test/scala-2/com/baeldung/scala/fixedsizelist/FixedSizeListSpec.scala diff --git a/.gitignore b/.gitignore index 097fc3294..51ee9845e 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ lib_managed/ src_managed/ project/boot/ project/plugins/project/ +**/.scala-build/ # Scala-IDE specific .scala_dependencies diff --git a/scala-core-collections-3/src/main/resources/GOOG.csv b/scala-core-collections-3/src/main/resources/GOOG.csv new file mode 100644 index 000000000..bb59948ed --- /dev/null +++ b/scala-core-collections-3/src/main/resources/GOOG.csv @@ -0,0 +1,447 @@ +Date,Open,High,Low,Close,Adj Close,Volume +2022-01-03,144.475494,145.550003,143.502502,145.074493,145.074493,25214000 +2022-01-04,145.550507,146.610001,143.816147,144.416504,144.416504,22928000 +2022-01-05,144.181000,144.298004,137.523499,137.653503,137.653503,49642000 +2022-01-06,137.497498,139.686005,136.763504,137.550995,137.550995,29050000 +2022-01-07,137.904999,138.254745,135.789001,137.004501,137.004501,19408000 +2022-01-10,135.098999,138.639999,133.140503,138.574005,138.574005,34096000 +2022-01-11,138.180496,140.329498,136.813507,140.017502,140.017502,23502000 +2022-01-12,141.554504,142.814255,141.112000,141.647995,141.647995,23642000 +2022-01-13,141.840500,143.185501,138.914001,139.130997,139.130997,26566000 +2022-01-14,137.500000,141.200500,137.500000,139.786499,139.786499,23826000 +2022-01-18,136.600006,137.391495,135.617004,136.290497,136.290497,27382000 +2022-01-19,136.938507,138.399506,135.500000,135.651993,135.651993,20796000 +2022-01-20,136.514008,137.912003,133.144501,133.506500,133.506500,21930000 +2022-01-21,133.011993,134.760498,130.001007,130.091995,130.091995,41920000 +2022-01-24,126.027496,130.778503,124.641953,130.371994,130.371994,55148000 +2022-01-25,128.435501,129.338501,126.377998,126.735497,126.735497,36008000 +2022-01-26,130.592499,132.807495,127.153503,129.240005,129.240005,39630000 +2022-01-27,131.360992,132.609955,128.945007,129.121002,129.121002,30248000 +2022-01-28,130.000000,133.370499,128.694504,133.289505,133.289505,30518000 +2022-01-31,134.197998,135.843506,132.274002,135.698502,135.698502,34056000 +2022-02-01,137.835007,138.199997,134.568253,137.878494,137.878494,51204000 +2022-02-02,151.863495,152.100006,145.557495,148.036499,148.036499,89750000 +2022-02-03,145.294998,149.117706,142.205002,142.650497,142.650497,56930000 +2022-02-04,143.016998,144.535248,139.817505,143.016006,143.016006,49224000 +2022-02-07,143.709000,143.846497,138.699005,138.938004,138.938004,44610000 +2022-02-08,138.991257,139.837097,136.873001,139.212997,139.212997,34256000 +2022-02-09,140.849747,142.175507,140.376999,141.453003,141.453003,28628000 +2022-02-10,139.500000,141.431000,138.050003,138.602493,138.602493,33018000 +2022-02-11,138.750000,139.283249,133.288498,134.130005,134.130005,38808000 +2022-02-14,133.365494,136.166504,133.302002,135.300003,135.300003,26792000 +2022-02-15,137.471497,137.899994,135.539505,136.425507,136.425507,26578000 +2022-02-16,136.430496,137.945999,134.823654,137.487503,137.487503,25610000 +2022-02-17,136.149994,136.839493,132.201996,132.308502,132.308502,30968000 +2022-02-18,133.037506,133.824005,130.307053,130.467499,130.467499,31858000 +2022-02-22,129.985001,131.900757,127.740997,129.402496,129.402496,38906000 +2022-02-23,131.078506,131.748993,127.503502,127.584999,127.584999,26432000 +2022-02-24,125.000000,133.037003,124.764503,132.673492,132.673492,43166000 +2022-02-25,133.525497,135.389008,131.764999,134.519501,134.519501,26236000 +2022-02-28,133.284500,135.640503,132.825256,134.891006,134.891006,29676000 +2022-03-01,134.479996,136.110992,133.378494,134.167999,134.167999,24640000 +2022-03-02,134.608246,135.615494,133.432495,134.751495,134.751495,23966000 +2022-03-03,135.978500,136.713806,133.431000,134.307999,134.307999,19780000 +2022-03-04,133.382507,134.199005,130.408493,132.121994,132.121994,24446000 +2022-03-07,131.904007,131.904007,126.410004,126.464500,126.464500,39178000 +2022-03-08,126.250504,131.246506,125.860748,127.278503,127.278503,35250000 +2022-03-09,131.399994,134.198502,130.087997,133.865997,133.865997,32258000 +2022-03-10,131.462494,133.538498,131.401001,132.682007,132.682007,24266000 +2022-03-11,133.999496,134.199997,130.296494,130.475494,130.475494,26600000 +2022-03-14,130.572998,131.026001,126.413002,126.740997,126.740997,30254000 +2022-03-15,127.741501,130.517242,126.568001,129.660507,129.660507,30292000 +2022-03-16,131.000000,133.770996,129.201004,133.690506,133.690506,32058000 +2022-03-17,133.320999,134.739502,132.718994,134.600494,134.600494,23994000 +2022-03-18,133.884003,136.913498,132.932007,136.801498,136.801498,45900000 +2022-03-21,136.847504,137.582504,134.611496,136.478500,136.478500,26632000 +2022-03-22,136.500000,141.500000,136.500000,140.277496,140.277496,29776000 +2022-03-23,139.138504,140.024994,138.166504,138.503494,138.503494,25302000 +2022-03-24,139.272507,141.396500,138.039398,141.311996,141.311996,20544000 +2022-03-25,141.753998,141.959503,139.699493,141.521500,141.521500,19270000 +2022-03-28,140.684494,141.976501,139.828156,141.949997,141.949997,23774000 +2022-03-29,143.160507,144.162506,142.483994,143.250000,143.250000,28678000 +2022-03-30,142.869995,143.480499,142.167999,142.644501,142.644501,21046000 +2022-03-31,142.448502,142.644501,139.619003,139.649506,139.649506,29516000 +2022-04-01,140.009995,140.949997,138.796997,140.699997,140.699997,23480000 +2022-04-04,140.824493,144.043747,140.824493,143.642502,143.642502,19076000 +2022-04-05,143.399506,143.589996,140.943497,141.063004,141.063004,19256000 +2022-04-06,139.161499,139.848495,136.418106,137.175995,137.175995,23574000 +2022-04-07,136.617996,137.701508,134.857254,136.464996,136.464996,19448000 +2022-04-08,136.250000,136.250000,133.752502,134.010498,134.010498,16434000 +2022-04-11,132.899994,132.939194,129.617493,129.796494,129.796494,24188000 +2022-04-12,132.423492,132.423492,127.575996,128.374496,128.374496,23004000 +2022-04-13,128.626495,130.655746,128.438599,130.285995,130.285995,19542000 +2022-04-14,130.649506,130.710251,127.111504,127.252998,127.252998,23484000 +2022-04-18,127.410004,128.712006,126.578453,127.960999,127.960999,14918000 +2022-04-19,128.076996,130.903748,127.451500,130.531006,130.531006,22720000 +2022-04-20,131.283997,131.923492,127.894051,128.245499,128.245499,22610000 +2022-04-21,129.350006,130.307495,124.650002,124.937500,124.937500,30158000 +2022-04-22,125.000000,125.452003,119.140503,119.613998,119.613998,46410000 +2022-04-25,119.429497,123.278000,118.769249,123.250000,123.250000,34522000 +2022-04-26,122.750000,122.750000,119.161850,119.505997,119.505997,49394000 +2022-04-27,114.373001,117.500000,113.124252,115.020500,115.020500,62238000 +2022-04-28,117.114998,120.438499,115.143898,119.411499,119.411499,36790000 +2022-04-29,117.578003,118.959999,114.694000,114.966499,114.966499,33694000 +2022-05-02,113.906502,117.339500,113.399498,117.156998,117.156998,30280000 +2022-05-03,116.764999,119.300003,116.626999,118.129501,118.129501,21216000 +2022-05-04,118.003502,123.142998,115.738503,122.574997,122.574997,33232000 +2022-05-05,120.220497,121.233253,115.182503,116.746498,116.746498,43090000 +2022-05-06,115.518997,117.498497,114.142998,115.660004,115.660004,35310000 +2022-05-09,113.303497,115.562897,112.551498,113.084000,113.084000,34520000 +2022-05-10,116.040497,116.691002,113.383301,114.584503,114.584503,31158000 +2022-05-11,113.710503,116.670998,113.650002,113.960999,113.960999,36502000 +2022-05-12,111.938004,114.856499,110.113503,113.161003,113.161003,41464000 +2022-05-13,114.845497,118.084999,114.000000,116.515503,116.515503,29738000 +2022-05-16,115.384003,116.607498,114.334999,114.792503,114.792503,23282000 +2022-05-17,117.227501,117.227501,115.337502,116.701500,116.701500,21576000 +2022-05-18,115.237503,115.695648,112.141998,112.401001,112.401001,27982000 +2022-05-19,111.841003,113.587502,110.468002,110.745499,110.745499,29192000 +2022-05-20,112.085503,112.550003,106.373001,109.313004,109.313004,37586000 +2022-05-23,110.103996,112.005501,109.154251,111.666496,111.666496,31558000 +2022-05-24,106.377502,106.394997,102.208000,105.926003,105.926003,60386000 +2022-05-25,105.141998,106.544701,104.211250,105.839500,105.839500,37900000 +2022-05-26,106.050499,108.955254,105.487999,108.295998,108.295998,30288000 +2022-05-27,109.788498,112.867996,109.550003,112.799004,112.799004,29924000 +2022-05-31,113.079002,116.433502,112.572502,114.039001,114.039001,51302000 +2022-06-01,114.931503,117.399002,113.550499,114.137001,114.137001,28630000 +2022-06-02,114.188004,117.898003,113.307999,117.746002,117.746002,27472000 +2022-06-03,115.992500,116.364502,113.667999,114.564003,114.564003,25052000 +2022-06-06,116.742500,119.398499,116.528297,117.010498,117.010498,23786000 +2022-06-07,115.648003,117.748650,115.125504,117.229500,117.229500,26414000 +2022-06-08,116.876503,118.646004,116.696747,117.237999,117.237999,22544000 +2022-06-09,116.341499,118.349998,114.866997,114.917999,114.917999,23142000 +2022-06-10,112.781250,113.497002,110.861000,111.427498,111.427498,31324000 +2022-06-13,107.445999,109.218498,106.588051,106.876503,106.876503,36756000 +2022-06-14,106.889999,108.457497,106.351997,107.194000,107.194000,25480000 +2022-06-15,108.899498,112.063004,108.118752,110.390503,110.390503,33192000 +2022-06-16,108.149498,109.290497,105.792503,106.636002,106.636002,35314000 +2022-06-17,106.535004,109.249496,105.628548,107.865501,107.865501,43516000 +2022-06-21,109.702003,112.672997,109.293503,112.014999,112.014999,39010000 +2022-06-22,111.163002,113.769501,110.724297,112.033997,112.033997,23922000 +2022-06-23,112.949997,113.196503,111.028999,112.684502,112.684502,24710000 +2022-06-24,113.602997,118.637497,113.602997,118.538002,118.538002,39122000 +2022-06-27,118.934998,119.250000,116.000748,116.622498,116.622498,32840000 +2022-06-28,116.350998,117.856499,112.444000,112.571503,112.571503,28232000 +2022-06-29,112.148499,113.664497,111.554001,112.256500,112.256500,18628000 +2022-06-30,110.499496,111.329803,107.309998,109.372498,109.372498,38046000 +2022-07-01,108.336998,109.806351,107.105003,109.081001,109.081001,31028000 +2022-07-05,107.514503,114.052597,106.249496,113.887001,113.887001,36398000 +2022-07-06,114.092003,116.351997,112.250504,115.213501,115.213501,28852000 +2022-07-07,116.008003,119.862000,115.533997,119.306000,119.306000,32184000 +2022-07-08,117.550003,120.434998,117.514000,120.168503,120.168503,29082000 +2022-07-11,118.650002,118.794502,116.234497,116.522499,116.522499,26718000 +2022-07-12,116.838501,117.849503,114.614998,114.849503,114.849503,24970000 +2022-07-13,112.639000,115.156998,111.822998,112.186996,112.186996,38958000 +2022-07-14,110.825996,111.987503,109.325500,111.440002,111.440002,32366000 +2022-07-15,112.962997,114.000504,111.822502,112.766998,112.766998,34330000 +2022-07-18,113.440002,114.800003,109.300003,109.910004,109.910004,33354000 +2022-07-19,111.730003,114.809998,110.500000,114.620003,114.620003,30992300 +2022-07-20,114.059998,116.330002,113.260002,114.699997,114.699997,26780100 +2022-07-21,115.089996,115.209999,111.910004,115.040001,115.040001,27267800 +2022-07-22,111.809998,113.180000,107.599998,108.360001,108.360001,44455300 +2022-07-25,108.879997,110.580002,107.010002,108.209999,108.209999,28289900 +2022-07-26,107.430000,107.739998,104.760002,105.440002,105.440002,36626600 +2022-07-27,109.599998,114.400002,108.419998,113.599998,113.599998,41474600 +2022-07-28,112.800003,114.699997,111.850998,114.589996,114.589996,23303800 +2022-07-29,113.400002,116.900002,113.230003,116.639999,116.639999,31336200 +2022-08-01,115.529999,117.120003,114.690002,115.480003,115.480003,22856200 +2022-08-02,114.430000,117.080002,114.260002,115.900002,115.900002,17911000 +2022-08-03,116.339996,119.419998,116.150002,118.779999,118.779999,25302800 +2022-08-04,118.300003,119.500000,117.709999,118.870003,118.870003,15757700 +2022-08-05,116.930000,118.860001,116.709999,118.220001,118.220001,15615700 +2022-08-08,119.120003,120.860001,117.830002,118.139999,118.139999,17061100 +2022-08-09,117.989998,118.199997,116.559998,117.500000,117.500000,15424300 +2022-08-10,119.589996,121.779999,119.360001,120.650002,120.650002,20497000 +2022-08-11,122.080002,122.339996,119.550003,119.820000,119.820000,16671600 +2022-08-12,121.160004,122.650002,120.400002,122.650002,122.650002,16121100 +2022-08-15,122.209999,123.260002,121.570000,122.879997,122.879997,15525000 +2022-08-16,122.320000,123.227997,121.535004,122.510002,122.510002,15626200 +2022-08-17,120.930000,122.150002,120.199997,120.320000,120.320000,17589200 +2022-08-18,120.230003,121.690002,119.550003,120.860001,120.860001,15652000 +2022-08-19,119.870003,120.000000,117.669998,118.120003,118.120003,20187000 +2022-08-22,116.099998,116.500000,114.669998,115.070000,115.070000,19316000 +2022-08-23,114.320000,115.930000,114.300003,114.769997,114.769997,14390700 +2022-08-24,114.449997,115.717003,113.779999,114.699997,114.699997,16051200 +2022-08-25,115.150002,117.779999,115.050003,117.699997,117.699997,14874700 +2022-08-26,115.809998,116.599998,111.220001,111.300003,111.300003,31698700 +2022-08-29,110.779999,111.959999,109.809998,110.339996,110.339996,20386100 +2022-08-30,111.029999,111.370003,108.800003,109.910004,109.910004,20548200 +2022-08-31,111.629997,111.769997,109.050003,109.150002,109.150002,25898000 +2022-09-01,109.199997,111.220001,108.190002,110.550003,110.550003,22784400 +2022-09-02,111.339996,111.675003,108.129997,108.680000,108.680000,20618100 +2022-09-06,108.135002,108.879997,106.510002,107.480003,107.480003,20565100 +2022-09-07,107.760002,110.989998,107.614998,110.480003,110.480003,22987200 +2022-09-08,109.180000,110.580002,108.059998,109.419998,109.419998,21660700 +2022-09-09,110.050003,112.000000,110.000000,111.779999,111.779999,21732900 +2022-09-12,111.989998,112.639999,110.930000,111.870003,111.870003,19732900 +2022-09-13,108.889999,109.370003,105.000000,105.309998,105.309998,33015000 +2022-09-14,105.440002,106.099998,104.500000,105.870003,105.870003,22115800 +2022-09-15,105.010002,106.209999,103.309998,103.900002,103.900002,26494900 +2022-09-16,102.970001,104.029999,101.855003,103.629997,103.629997,64540100 +2022-09-19,102.540001,104.019997,102.370003,103.849998,103.849998,19738600 +2022-09-20,102.879997,103.169998,101.120003,101.830002,101.830002,24001700 +2022-09-21,102.239998,103.489998,99.989998,100.010002,100.010002,26596800 +2022-09-22,99.449997,101.680000,99.410004,100.570000,100.570000,21272700 +2022-09-23,100.059998,100.110001,98.010002,99.169998,99.169998,25657000 +2022-09-26,98.610001,100.440002,98.379997,98.809998,98.809998,22437900 +2022-09-27,99.910004,100.459999,97.339996,98.089996,98.089996,24225000 +2022-09-28,98.019997,101.400002,97.800003,100.739998,100.739998,24617000 +2022-09-29,99.300003,99.300003,96.519997,98.089996,98.089996,21921500 +2022-09-30,97.730003,99.494003,96.029999,96.150002,96.150002,26277800 +2022-10-03,97.220001,99.970001,97.019997,99.300003,99.300003,24840000 +2022-10-04,101.040001,102.720001,101.040001,102.410004,102.410004,22580900 +2022-10-05,100.690002,102.739998,99.739998,102.220001,102.220001,18475500 +2022-10-06,101.500000,103.730003,101.500000,102.239998,102.239998,17156200 +2022-10-07,100.650002,101.419998,99.209999,99.570000,99.570000,24249900 +2022-10-10,99.849998,99.989998,97.870003,98.709999,98.709999,16529900 +2022-10-11,98.250000,100.120003,97.250000,98.050003,98.050003,21617700 +2022-10-12,98.269997,99.648003,97.669998,98.300003,98.300003,17343400 +2022-10-13,95.930000,100.529999,95.269997,99.709999,99.709999,32812200 +2022-10-14,100.625000,101.290001,97.029999,97.180000,97.180000,22624800 +2022-10-17,99.519997,101.769997,99.510002,100.779999,100.779999,23311600 +2022-10-18,103.940002,104.220001,100.650002,101.389999,101.389999,21610500 +2022-10-19,100.699997,101.658997,99.635002,100.290001,100.290001,21573700 +2022-10-20,100.820000,103.000000,99.970001,100.529999,100.529999,25125100 +2022-10-21,98.459999,101.620003,98.230003,101.480003,101.480003,28988700 +2022-10-24,102.089996,103.099998,100.300003,102.970001,102.970001,24680800 +2022-10-25,103.300003,105.099998,103.019997,104.930000,104.930000,29910200 +2022-10-26,96.760002,98.540001,94.570000,94.820000,94.820000,71504300 +2022-10-27,94.309998,95.169998,91.900002,92.599998,92.599998,54036500 +2022-10-28,92.529999,96.860001,92.322998,96.580002,96.580002,35696900 +2022-10-31,95.779999,96.349998,94.379997,94.660004,94.660004,29868700 +2022-11-01,95.589996,96.165001,90.430000,90.500000,90.500000,43220600 +2022-11-02,90.910004,91.300003,87.010002,87.070000,87.070000,43553600 +2022-11-03,86.345001,86.550003,83.449997,83.489998,83.489998,48510400 +2022-11-04,85.510002,86.730003,83.879997,86.699997,86.699997,40173300 +2022-11-07,87.339996,88.940002,86.959999,88.650002,88.650002,26899900 +2022-11-08,89.160004,90.404999,87.650002,88.910004,88.910004,30172000 +2022-11-09,88.544998,89.489998,87.360001,87.400002,87.400002,26743900 +2022-11-10,92.339996,94.550003,91.650002,94.169998,94.169998,42371200 +2022-11-11,94.709999,97.360001,94.160004,96.730003,96.730003,30569100 +2022-11-14,95.500000,97.180000,95.112999,96.029999,96.029999,24170100 +2022-11-15,98.669998,100.419998,97.019997,98.720001,98.720001,31831000 +2022-11-16,98.019997,99.849998,97.902000,98.989998,98.989998,24660200 +2022-11-17,97.180000,99.480003,97.099998,98.500000,98.500000,21818700 +2022-11-18,99.010002,99.160004,96.739998,97.800003,97.800003,24969900 +2022-11-21,97.559998,98.720001,95.669998,95.830002,95.830002,18696900 +2022-11-22,96.160004,97.547997,94.410004,97.330002,97.330002,18868900 +2022-11-23,97.339996,99.069000,97.339996,98.820000,98.820000,17568900 +2022-11-25,98.464996,98.940002,97.529999,97.599998,97.599998,8567800 +2022-11-28,97.199997,97.830002,95.889999,96.250000,96.250000,19974500 +2022-11-29,96.000000,96.389999,94.389999,95.440002,95.440002,20220000 +2022-11-30,95.120003,101.449997,94.669998,101.449997,101.449997,39888100 +2022-12-01,101.400002,102.589996,100.669998,101.279999,101.279999,21771500 +2022-12-02,99.370003,101.150002,99.169998,100.830002,100.830002,18821500 +2022-12-05,99.815002,101.750000,99.355003,99.870003,99.870003,19955500 +2022-12-06,99.669998,100.209999,96.760002,97.309998,97.309998,20877600 +2022-12-07,96.769997,97.309998,95.025002,95.150002,95.150002,26647900 +2022-12-08,95.690002,95.870003,93.800003,93.949997,93.949997,25593200 +2022-12-09,93.900002,94.489998,93.019997,93.070000,93.070000,21885300 +2022-12-12,93.089996,93.875000,91.900002,93.559998,93.559998,27380900 +2022-12-13,98.070000,99.800003,95.379997,95.849998,95.849998,34788500 +2022-12-14,95.540001,97.220001,93.940002,95.309998,95.309998,26452900 +2022-12-15,93.540001,94.029999,90.430000,91.199997,91.199997,28298800 +2022-12-16,91.199997,91.750000,90.010002,90.860001,90.860001,48485500 +2022-12-19,90.879997,91.199997,88.925003,89.150002,89.150002,23020500 +2022-12-20,88.730003,89.779999,88.040001,89.629997,89.629997,21976800 +2022-12-21,89.730003,90.915001,88.910004,90.250000,90.250000,20336400 +2022-12-22,88.930000,89.180000,86.940002,88.260002,88.260002,23656100 +2022-12-23,87.620003,90.099998,87.620003,89.809998,89.809998,17815000 +2022-12-27,89.309998,89.500000,87.535004,87.930000,87.930000,15470900 +2022-12-28,87.500000,88.519997,86.370003,86.459999,86.459999,17879600 +2022-12-29,87.029999,89.364998,86.989998,88.949997,88.949997,18280700 +2022-12-30,87.364998,88.830002,87.029999,88.730003,88.730003,19190300 +2023-01-03,89.830002,91.550003,89.019997,89.699997,89.699997,20738500 +2023-01-04,91.010002,91.239998,87.800003,88.709999,88.709999,27046500 +2023-01-05,88.070000,88.209999,86.559998,86.769997,86.769997,23136100 +2023-01-06,87.360001,88.470001,85.570000,88.160004,88.160004,26612600 +2023-01-09,89.195000,90.830002,88.580002,88.800003,88.800003,22996700 +2023-01-10,86.720001,89.474998,86.699997,89.239998,89.239998,22855600 +2023-01-11,90.059998,92.449997,89.739998,92.260002,92.260002,25998800 +2023-01-12,92.400002,92.620003,90.570000,91.910004,91.910004,22754200 +2023-01-13,91.528000,92.980003,90.930000,92.800003,92.800003,18630700 +2023-01-17,92.779999,92.970001,90.839996,92.160004,92.160004,22935800 +2023-01-18,92.940002,93.587997,91.400002,91.779999,91.779999,19641600 +2023-01-19,91.389999,94.400002,91.379997,93.910004,93.910004,28707700 +2023-01-20,95.949997,99.419998,95.910004,99.279999,99.279999,53704800 +2023-01-23,99.129997,101.400002,98.750000,101.209999,101.209999,31791800 +2023-01-24,99.550003,101.089996,98.699997,99.209999,99.209999,27391400 +2023-01-25,97.199997,97.720001,95.262001,96.730003,96.730003,31000900 +2023-01-26,98.279999,99.209999,96.820000,99.160004,99.160004,24542100 +2023-01-27,99.050003,101.580002,98.970001,100.709999,100.709999,29020400 +2023-01-30,98.745003,99.408997,97.519997,97.949997,97.949997,24365100 +2023-01-31,97.860001,99.910004,97.790001,99.870003,99.870003,22306800 +2023-02-01,99.739998,102.190002,98.419998,101.430000,101.430000,26392600 +2023-02-02,106.790001,108.820000,106.540001,108.800003,108.800003,46622600 +2023-02-03,103.510002,108.019997,103.300003,105.220001,105.220001,36823400 +2023-02-06,102.684998,104.699997,102.209999,103.470001,103.470001,25573000 +2023-02-07,103.629997,108.669998,103.547997,108.040001,108.040001,33738800 +2023-02-08,102.690002,103.580002,98.455002,100.000000,100.000000,73546000 +2023-02-09,100.540001,100.610001,93.860001,95.459999,95.459999,97798600 +2023-02-10,95.739998,97.019997,94.529999,94.860001,94.860001,49325300 +2023-02-13,95.010002,95.349998,94.050003,95.000000,95.000000,43116600 +2023-02-14,94.660004,95.175003,92.650002,94.949997,94.949997,42513100 +2023-02-15,94.739998,97.339996,94.360001,97.099998,97.099998,36964500 +2023-02-16,95.540001,97.879997,94.970001,95.779999,95.779999,35642100 +2023-02-17,95.070000,95.750000,93.449997,94.589996,94.589996,31095100 +2023-02-21,93.239998,93.415001,92.000000,92.050003,92.050003,28367200 +2023-02-22,91.933998,92.360001,90.870003,91.800003,91.800003,29891100 +2023-02-23,92.129997,92.129997,90.010002,91.070000,91.070000,32423700 +2023-02-24,89.629997,90.129997,88.860001,89.349998,89.349998,31295600 +2023-02-27,90.089996,90.449997,89.610001,90.099998,90.099998,22724300 +2023-02-28,89.540001,91.449997,89.519997,90.300003,90.300003,30546900 +2023-03-01,90.160004,91.199997,89.849998,90.510002,90.510002,26323900 +2023-03-02,89.860001,92.480003,89.769997,92.309998,92.309998,23328600 +2023-03-03,92.739998,94.110001,92.660004,94.019997,94.019997,30242500 +2023-03-06,94.360001,96.300003,94.300003,95.580002,95.580002,28288200 +2023-03-07,95.419998,96.089996,93.844002,94.169998,94.169998,24101500 +2023-03-08,94.404999,96.239998,94.404999,94.650002,94.650002,25395200 +2023-03-09,94.489998,95.919998,92.355003,92.660004,92.660004,24438900 +2023-03-10,92.500000,93.180000,90.800003,91.010002,91.010002,32850100 +2023-03-13,90.565002,93.080002,89.940002,91.660004,91.660004,31508600 +2023-03-14,93.070000,94.830002,92.779999,94.250000,94.250000,32303900 +2023-03-15,93.540001,97.250000,93.040001,96.550003,96.550003,38367300 +2023-03-16,96.570000,101.970001,95.870003,101.070000,101.070000,54499500 +2023-03-17,100.839996,103.489998,100.750000,102.459999,102.459999,76140300 +2023-03-20,101.059998,102.580002,100.790001,101.930000,101.930000,26033900 +2023-03-21,101.980003,105.959999,101.860001,105.839996,105.839996,33122800 +2023-03-22,105.139999,107.510002,104.209999,104.220001,104.220001,32336900 +2023-03-23,105.889999,107.100998,105.410004,106.260002,106.260002,31385800 +2023-03-24,105.739998,106.160004,104.739998,106.059998,106.059998,25236200 +2023-03-27,105.320000,105.400002,102.629997,103.059998,103.059998,25393400 +2023-03-28,103.000000,103.000000,100.279999,101.360001,101.360001,24913500 +2023-03-29,102.720001,102.820000,101.029999,101.900002,101.900002,26148300 +2023-03-30,101.440002,101.610001,100.290001,101.320000,101.320000,25009800 +2023-03-31,101.709999,104.190002,101.440002,104.000000,104.000000,28108000 +2023-04-03,102.669998,104.949997,102.379997,104.910004,104.910004,20719900 +2023-04-04,104.839996,106.099998,104.599998,105.120003,105.120003,20377200 +2023-04-05,106.120003,106.540001,104.101997,104.949997,104.949997,21864200 +2023-04-06,105.769997,109.629997,104.815002,108.900002,108.900002,34684200 +2023-04-10,107.389999,107.970001,105.599998,106.949997,106.949997,19741500 +2023-04-11,106.919998,107.220001,105.279999,106.120003,106.120003,18721300 +2023-04-12,107.389999,107.586998,104.970001,105.220001,105.220001,22761600 +2023-04-13,106.470001,108.264999,106.440002,108.190002,108.190002,21650700 +2023-04-14,107.690002,109.580002,107.589996,109.459999,109.459999,20758700 +2023-04-17,105.430000,106.709999,105.320000,106.419998,106.419998,29043400 +2023-04-18,107.000000,107.050003,104.779999,105.120003,105.120003,17641400 +2023-04-19,104.214996,105.724998,103.800003,105.019997,105.019997,16732000 +2023-04-20,104.650002,106.888000,104.639999,105.900002,105.900002,22515300 +2023-04-21,106.089996,106.639999,105.485001,105.910004,105.910004,22379000 +2023-04-24,106.050003,107.320000,105.360001,106.779999,106.779999,21410900 +2023-04-25,106.610001,107.440002,104.559998,104.610001,104.610001,31408100 +2023-04-26,105.559998,107.019997,103.269997,104.449997,104.449997,37068200 +2023-04-27,105.230003,109.150002,104.419998,108.370003,108.370003,38235200 +2023-04-28,107.800003,108.290001,106.040001,108.220001,108.220001,23957900 +2023-05-01,107.720001,108.680000,107.500000,107.709999,107.709999,20926300 +2023-05-02,107.660004,107.730003,104.500000,105.980003,105.980003,20343100 +2023-05-03,106.220001,108.129997,105.620003,106.120003,106.120003,17116300 +2023-05-04,106.160004,106.300003,104.699997,105.209999,105.209999,19780600 +2023-05-05,105.320000,106.440002,104.738998,106.214996,106.214996,20705300 +2023-05-08,105.794998,108.419998,105.790001,108.239998,108.239998,17266000 +2023-05-09,108.779999,110.595001,107.724998,107.940002,107.940002,24782400 +2023-05-10,108.550003,113.510002,108.480003,112.279999,112.279999,47533500 +2023-05-11,115.860001,118.440002,114.930000,116.900002,116.900002,57115100 +2023-05-12,117.000000,118.260002,116.550003,117.919998,117.919998,31272500 +2023-05-15,116.489998,118.794998,116.480003,116.959999,116.959999,22107900 +2023-05-16,116.830002,121.199997,116.830002,120.089996,120.089996,32370100 +2023-05-17,120.180000,122.279999,119.459999,121.480003,121.480003,26659600 +2023-05-18,121.559998,123.900002,121.489998,123.519997,123.519997,27014500 +2023-05-19,124.199997,126.478996,122.720001,123.250000,123.250000,30251300 +2023-05-22,123.510002,127.050003,123.449997,125.870003,125.870003,29760200 +2023-05-23,124.930000,125.419998,123.050003,123.290001,123.290001,24477900 +2023-05-24,121.879997,122.750000,120.750000,121.639999,121.639999,23087900 +2023-05-25,125.209999,125.980003,122.900002,124.349998,124.349998,33812700 +2023-05-26,124.065002,126.000000,123.290001,125.430000,125.430000,25154700 +2023-05-30,126.290001,126.379997,122.889999,124.639999,124.639999,27230700 +2023-05-31,123.699997,124.900002,123.099998,123.370003,123.370003,41548800 +2023-06-01,123.500000,125.040001,123.300003,124.370003,124.370003,25017700 +2023-06-02,124.489998,126.745003,124.349998,125.230003,125.230003,19362400 +2023-06-05,124.610001,127.989998,124.379997,126.629997,126.629997,22672500 +2023-06-06,126.599998,128.880005,125.970001,127.910004,127.910004,19450100 +2023-06-07,127.574997,129.550003,122.629997,122.940002,122.940002,34179300 +2023-06-08,122.584999,123.730003,122.010002,122.669998,122.669998,24815000 +2023-06-09,122.559998,124.285004,122.419998,122.870003,122.870003,20304500 +2023-06-12,123.394997,124.750000,122.349998,124.349998,124.349998,22255700 +2023-06-13,125.650002,125.860001,123.845001,124.430000,124.430000,19287700 +2023-06-14,123.800003,124.790001,122.160004,124.379997,124.379997,24659600 +2023-06-15,123.879997,126.160004,123.139999,125.790001,125.790001,24517100 +2023-06-16,126.699997,126.699997,123.790001,124.059998,124.059998,56686800 +2023-06-20,123.535004,125.175003,122.830002,123.849998,123.849998,22698000 +2023-06-21,123.235001,123.410004,120.860001,121.260002,121.260002,22612000 +2023-06-22,120.660004,123.934998,119.599998,123.870003,123.870003,20781900 +2023-06-23,122.040001,123.440002,121.860001,123.019997,123.019997,29542900 +2023-06-26,121.466003,122.720001,118.989998,119.089996,119.089996,23185000 +2023-06-27,117.839996,119.894997,116.910004,119.010002,119.010002,27221700 +2023-06-28,117.959999,121.269997,117.599998,121.080002,121.080002,19753100 +2023-06-29,120.089996,120.910004,119.209999,120.010002,120.010002,18517500 +2023-06-30,121.099998,122.029999,120.879997,120.970001,120.970001,23865800 +2023-07-03,120.320000,121.019997,119.705002,120.559998,120.559998,13888300 +2023-07-05,120.059998,123.370003,120.059998,122.629997,122.629997,17830300 +2023-07-06,120.639999,121.150002,119.250000,120.930000,120.930000,17732500 +2023-07-07,120.889999,121.750000,120.089996,120.139999,120.139999,20982400 +2023-07-10,119.070000,119.070000,116.639999,116.870003,116.870003,32960100 +2023-07-11,116.760002,118.224998,115.830002,117.709999,117.709999,18286600 +2023-07-12,119.300003,120.959999,119.000000,119.620003,119.620003,22059600 +2023-07-13,121.540001,125.334999,121.059998,124.830002,124.830002,31535900 +2023-07-14,125.129997,127.089996,124.900002,125.699997,125.699997,20482800 +2023-07-17,126.059998,127.279999,124.500000,125.059998,125.059998,20675300 +2023-07-18,124.904999,124.989998,123.300003,124.080002,124.080002,21071200 +2023-07-19,124.790001,125.470001,122.470001,122.779999,122.779999,22313800 +2023-07-20,122.120003,124.699997,118.684998,119.529999,119.529999,27541700 +2023-07-21,120.870003,121.300003,119.070000,120.309998,120.309998,56498100 +2023-07-24,121.926003,123.349998,121.379997,121.879997,121.879997,22276100 +2023-07-25,121.879997,123.690002,121.529999,122.790001,122.790001,31820800 +2023-07-26,130.360001,131.369995,128.710007,129.660004,129.660004,46216900 +2023-07-27,131.800003,133.600006,129.179993,129.869995,129.869995,35931600 +2023-07-28,130.970001,134.070007,130.919998,133.009995,133.009995,26971000 +2023-07-31,133.009995,133.830002,132.130005,133.110001,133.110001,18381900 +2023-08-01,130.854996,132.919998,130.750000,131.889999,131.889999,22154300 +2023-08-02,129.839996,130.419998,127.849998,128.639999,128.639999,22705800 +2023-08-03,128.369995,129.770004,127.775002,128.770004,128.770004,15018100 +2023-08-04,129.600006,131.929993,128.315002,128.539993,128.539993,20509500 +2023-08-07,129.509995,132.059998,129.429993,131.940002,131.940002,17621000 +2023-08-08,130.979996,131.940002,130.130005,131.839996,131.839996,16836000 +2023-08-09,132.190002,132.470001,129.505005,130.149994,130.149994,17745200 +2023-08-10,131.970001,132.647003,130.035004,130.210007,130.210007,17855700 +2023-08-11,129.201996,130.440002,128.750000,130.169998,130.169998,15191500 +2023-08-14,129.850006,131.910004,129.589996,131.830002,131.830002,17526200 +2023-08-15,131.589996,131.990005,129.819000,130.270004,130.270004,14769200 +2023-08-16,129.279999,130.897995,128.460007,129.110001,129.110001,17548400 +2023-08-17,130.449997,132.490997,129.850006,130.460007,130.460007,23665600 +2023-08-18,129.059998,129.830002,127.000000,128.110001,128.110001,23619400 +2023-08-21,127.849998,129.259995,127.160004,128.929993,128.929993,21851100 +2023-08-22,129.130005,130.949997,128.925003,129.690002,129.690002,15569400 +2023-08-23,130.850006,134.070007,130.509995,133.210007,133.210007,26497000 +2023-08-24,134.727005,134.970001,130.300003,130.419998,130.419998,18680400 +2023-08-25,130.139999,131.399994,128.039993,130.690002,130.690002,20678100 +2023-08-28,132.080002,133.240005,130.850006,131.789993,131.789993,16715500 +2023-08-29,132.998001,137.294998,132.979996,135.490005,135.490005,30803300 +2023-08-30,135.570007,137.250000,135.020996,136.929993,136.929993,21773400 +2023-08-31,137.050003,138.399994,136.820007,137.350006,137.350006,28147900 +2023-09-01,138.429993,138.580002,135.940002,136.800003,136.800003,16665700 +2023-09-05,136.440002,137.369995,135.559998,136.710007,136.710007,17730200 +2023-09-06,137.014999,137.479996,134.690002,135.369995,135.369995,15814300 +2023-09-07,134.600006,136.580002,133.960007,136.199997,136.199997,16976000 +2023-09-08,135.869995,137.514999,135.869995,137.199997,137.199997,17810700 +2023-09-11,137.380005,138.264008,136.550003,137.740005,137.740005,17180800 +2023-09-12,137.130005,137.639999,135.929993,136.070007,136.070007,15212900 +2023-09-13,135.899994,137.699997,134.929993,137.500000,137.500000,16394900 +2023-09-14,138.389999,139.550003,137.059998,138.990005,138.990005,19064600 +2023-09-15,138.800003,139.360001,137.179993,138.300003,138.300003,48947600 +2023-09-18,137.630005,139.929993,137.630005,138.960007,138.960007,16233600 +2023-09-19,138.250000,139.175003,137.500000,138.830002,138.830002,15479100 +2023-09-20,138.830002,138.839996,134.520004,134.589996,134.589996,21473500 +2023-09-21,132.389999,133.190002,131.089996,131.360001,131.360001,22042700 +2023-09-22,131.679993,133.009995,130.509995,131.250000,131.250000,17348700 +2023-09-25,130.770004,132.220001,130.029999,132.169998,132.169998,14650000 +2023-09-26,130.914001,131.404999,128.190002,129.449997,129.449997,20378800 +2023-09-27,129.440002,131.720001,129.380005,131.460007,131.460007,18764200 +2023-09-28,130.690002,134.179993,130.690002,133.130005,133.130005,18201400 +2023-09-29,134.080002,134.889999,131.320007,131.850006,131.850006,23224200 +2023-10-02,132.154999,135.360001,132.065002,135.169998,135.169998,19210400 +2023-10-03,134.929993,135.240005,132.815002,133.300003,133.300003,19628700 +2023-10-04,133.660004,136.570007,133.429993,136.270004,136.270004,22848000 +2023-10-05,136.130005,136.500000,134.455002,135.990005,135.990005,15922900 +2023-10-06,134.940002,139.186005,134.940002,138.729996,138.729996,20819300 +2023-10-09,137.990005,139.970001,136.699997,139.500000,139.500000,16599100 +2023-10-10,139.509995,140.740005,138.429993,139.199997,139.199997,19554900 +2023-10-11,139.850006,142.220001,139.839996,141.699997,141.699997,19203633 \ No newline at end of file diff --git a/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/fixedsizelist/CircularBufferFixedSizeList.scala b/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/fixedsizelist/CircularBufferFixedSizeList.scala new file mode 100644 index 000000000..bb5223275 --- /dev/null +++ b/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/fixedsizelist/CircularBufferFixedSizeList.scala @@ -0,0 +1,48 @@ +package com.baeldung.scala.fixedsizelist + +class CircularBufferFixedSizeList[A](val maxSize: Int) extends Iterable[A] { + private val buffer = Array.ofDim[Any](maxSize) + private var start = 0 + private var end = 0 + + def add(element: A): Unit = { + buffer(end) = element + end = (end + 1) % maxSize + + if (end == start) { + start = (start + 1) % maxSize + } + } + + def get(index: Int): Option[A] = { + if (index >= 0 && index < size) { + Some(buffer((start + index) % maxSize).asInstanceOf[A]) + } else { + None + } + } + + override def size: Int = { + if (end >= start) end - start + else maxSize - start + end + } + + override def isEmpty: Boolean = start == end + + override def iterator: Iterator[A] = new Iterator[A] { + private var pos = start + + override def hasNext: Boolean = pos != end + + override def next(): A = { + val elem = buffer(pos).asInstanceOf[A] + pos = (pos + 1) % maxSize + elem + } + } +} + +object CircularBufferFixedSizeList { + def apply[A](maxSize: Int): CircularBufferFixedSizeList[A] = + new CircularBufferFixedSizeList[A](maxSize) +} diff --git a/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/fixedsizelist/FixedSizeList.scala b/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/fixedsizelist/FixedSizeList.scala new file mode 100644 index 000000000..be234f816 --- /dev/null +++ b/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/fixedsizelist/FixedSizeList.scala @@ -0,0 +1,27 @@ +package com.baeldung.scala.fixedsizelist + +class FixedSizeList[A](val maxSize: Int) extends Iterable[A] { + private val internalList = scala.collection.mutable.Queue[A]() + + def add(element: A): Unit = { + internalList.enqueue(element) + if (internalList.size > maxSize) { + internalList.dequeue() + } + } + + def get(index: Int): Option[A] = { + if (index >= 0 && index < internalList.size) Some(internalList(index)) + else None + } + + override def size: Int = internalList.size + + override def isEmpty: Boolean = internalList.isEmpty + + override def iterator: Iterator[A] = internalList.iterator +} + +object FixedSizeList { + def apply[A](maxSize: Int): FixedSizeList[A] = new FixedSizeList[A](maxSize) +} diff --git a/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/movingaverage/OptimizedMovingAverage.scala b/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/movingaverage/OptimizedMovingAverage.scala new file mode 100644 index 000000000..58d279a21 --- /dev/null +++ b/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/movingaverage/OptimizedMovingAverage.scala @@ -0,0 +1,46 @@ +package com.baeldung.scala.movingaverage + +import scala.collection.immutable.Queue +import scala.io.Source + +object OptimizedMovingAverage { + def main(args: Array[String]): Unit = { + val stream = getClass.getResourceAsStream("/GOOG.csv") + val lines = Source.fromInputStream(stream).getLines().drop(1) + val stockPrices = lines.map { line => + val Array(date, _, _, _, _, close, _) = line.split(",") + StockPrice(date, close.toDouble) + }.toList + + val windowSize = 30 + + val optimizedSMA = stockPrices + .foldLeft((Queue.empty[Double], List.empty[StockPrice], 0.0)) { + case ((queue, averages, sum), StockPrice(date, price)) => + val newQueue = queue.enqueue(price) + val newSum = sum + price + + if (newQueue.size > windowSize) { + val (oldest, remainingQueue) = newQueue.dequeue + val newAverage = (newSum - oldest) / windowSize + ( + remainingQueue, + StockPrice(date, newAverage) :: averages, + newSum - oldest + ) + } else if (newQueue.size == windowSize) { + val newAverage = newSum / windowSize + (newQueue, StockPrice(date, newAverage) :: averages, newSum) + } else { + (newQueue, averages, newSum) + } + } + ._2 + .reverse + + println("Optimized 30-day Simple Moving Averages:") + optimizedSMA.foreach { case StockPrice(date, average) => + println(s"$date: $average") + } + } +} diff --git a/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/movingaverage/SlidingMovingAverage.scala b/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/movingaverage/SlidingMovingAverage.scala new file mode 100644 index 000000000..d70581e41 --- /dev/null +++ b/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/movingaverage/SlidingMovingAverage.scala @@ -0,0 +1,48 @@ +package com.baeldung.scala.movingaverage + +case class StockPrice(date: String, price: Double) + +object SlidingMovingAverage extends App { + + // Sample stock prices + val stockPrices = List( + StockPrice("2021-01-01", 1.2), + StockPrice("2021-01-02", 1.3), + StockPrice("2021-01-03", 1.4), + StockPrice("2021-01-04", 1.5), + StockPrice("2021-01-05", 1.6) + ) + + val windowSize = 3 + + // Simple Moving Average (SMA) + val sma = stockPrices + .sliding(windowSize) + .map { window => + val average = window.map(_.price).sum / window.size + val lastDate = window.last.date + StockPrice(lastDate, average) + } + .toList + + // Weighted Moving Average (WMA) + val weights = List(0.1, 0.2, 0.7) + val wma = stockPrices + .sliding(windowSize) + .map { window => + val weightedSum = (window.map(_.price) zip weights).map { + case (price, weight) => + price * weight + }.sum + val lastDate = window.last.date + StockPrice(lastDate, weightedSum) + } + .toList + + // Output the results + println("Simple Moving Average:") + sma.foreach(println) + + println("\nWeighted Moving Average:") + wma.foreach(println) +} diff --git a/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/fixedsizelist/CircularBufferFixedSizeListSpec.scala b/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/fixedsizelist/CircularBufferFixedSizeListSpec.scala new file mode 100644 index 000000000..262284cfe --- /dev/null +++ b/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/fixedsizelist/CircularBufferFixedSizeListSpec.scala @@ -0,0 +1,41 @@ +package com.baeldung.scala.fixedsizelist + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers + +class CircularBufferFixedSizeListSpec extends AnyFlatSpec with Matchers { + "A CircularBufferFixedSizeListSpec" should "limit its size to the specified maximum" in { + val list = FixedSizeList[Int](3) + list.add(1) + list.add(2) + list.add(3) + list.add(4) + list.size should be(3) + list.get(0) should be(Some(2)) + } + + it should "be empty when created" in { + val list = FixedSizeList[Int](3) + list.isEmpty should be(true) + } + + it should "be mappable" in { + val list = FixedSizeList[Int](3) + list.add(1) + list.add(2) + list.add(3) + list.map(_ * 2) should contain theSameElementsAs Seq(2, 4, 6) + } + + it should "be iterable" in { + val expected = List(1, 2, 3) + val list = FixedSizeList[Int](3) + list.add(1) + list.add(2) + list.add(3) + + for ((e, i) <- list.zipWithIndex) { + e should be(expected(i)) + } + } +} diff --git a/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/fixedsizelist/FixedSizeListSpec.scala b/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/fixedsizelist/FixedSizeListSpec.scala new file mode 100644 index 000000000..e6c10fe06 --- /dev/null +++ b/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/fixedsizelist/FixedSizeListSpec.scala @@ -0,0 +1,41 @@ +package com.baeldung.scala.fixedsizelist + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers + +class FixedSizeListSpec extends AnyFlatSpec with Matchers { + "A FixedSizeList" should "limit its size to the specified maximum" in { + val list = FixedSizeList[Int](3) + list.add(1) + list.add(2) + list.add(3) + list.add(4) + list.size should be(3) + list.get(0) should be(Some(2)) + } + + it should "be empty when created" in { + val list = FixedSizeList[Int](3) + list.isEmpty should be(true) + } + + it should "be mappable" in { + val list = FixedSizeList[Int](3) + list.add(1) + list.add(2) + list.add(3) + list.map(_ * 2) should contain theSameElementsAs Seq(2, 4, 6) + } + + it should "be iterable" in { + val expected = List(1, 2, 3) + val list = FixedSizeList[Int](3) + list.add(1) + list.add(2) + list.add(3) + + for ((e, i) <- list.zipWithIndex) { + e should be(expected(i)) + } + } +} From dd783e63efd1165985c11f5d84eaedbc6c90421a Mon Sep 17 00:00:00 2001 From: Callum Date: Wed, 15 Nov 2023 21:24:43 +0000 Subject: [PATCH 0119/1318] [SCALA-591] - Read in CSV file with akka-streams (#1014) Co-authored-by: Callum Gibbons --- build.sbt | 1 + .../src/main/readingcsv/ReadingCSV.scala | 45 ++++++++++++ .../src/test/readingcsv/ReadingCSVTest.scala | 72 +++++++++++++++++++ .../src/test/resources/readingcsv.csv | 5 ++ 4 files changed, 123 insertions(+) create mode 100644 scala-akka-2/src/main/readingcsv/ReadingCSV.scala create mode 100644 scala-akka-2/src/test/readingcsv/ReadingCSVTest.scala create mode 100644 scala-akka-2/src/test/resources/readingcsv.csv diff --git a/build.sbt b/build.sbt index 9cc86fc92..02413a591 100644 --- a/build.sbt +++ b/build.sbt @@ -221,6 +221,7 @@ lazy val scala_akka_2 = (project in file("scala-akka-2")) "com.typesafe.akka" %% "akka-discovery" % AkkaVersion, "com.typesafe.akka" %% "akka-http-spray-json" % AkkaHttpVersion, "com.typesafe.akka" %% "akka-http-testkit" % AkkaHttpVersion, + "com.lightbend.akka" %% "akka-stream-alpakka-csv" % "5.0.0", "com.lightbend.akka" %% "akka-stream-alpakka-sse" % "5.0.0", "com.typesafe.akka" %% "akka-persistence-typed" % AkkaVersion, "com.typesafe.akka" %% "akka-actor-testkit-typed" % AkkaVersion % "it,test", diff --git a/scala-akka-2/src/main/readingcsv/ReadingCSV.scala b/scala-akka-2/src/main/readingcsv/ReadingCSV.scala new file mode 100644 index 000000000..4f223ade1 --- /dev/null +++ b/scala-akka-2/src/main/readingcsv/ReadingCSV.scala @@ -0,0 +1,45 @@ +import akka.NotUsed +import akka.stream.{IOResult, Materializer} +import akka.stream.scaladsl.{FileIO, Framing, Source} +import akka.util.ByteString +import akka.stream.alpakka.csv.scaladsl.{CsvParsing, CsvToMap} + +import java.nio.file.Paths +import scala.concurrent.Future + +object ReadingCSV { + + def read( + path: String + )(implicit mat: Materializer): Source[String, Future[IOResult]] = { + FileIO + .fromPath(Paths.get(path)) + .via(Framing.delimiter(ByteString("\n"), 256, true).map(_.utf8String)) + } + + def readFromString( + csvString: String + )(implicit mat: Materializer): Source[String, NotUsed] = { + Source + .single(ByteString(csvString)) + .via(Framing.delimiter(ByteString("\n"), 256, true).map(_.utf8String)) + } + + def readWithAlpakka( + path: String + )(implicit mat: Materializer): Source[List[String], Future[IOResult]] = { + FileIO + .fromPath(Paths.get(path)) + .via(CsvParsing.lineScanner()) + .map(_.map(_.utf8String)) + } + + def readWithAlpakkaAsMap(path: String)(implicit + mat: Materializer + ): Source[Map[String, String], Future[IOResult]] = { + FileIO + .fromPath(Paths.get(path)) + .via(CsvParsing.lineScanner()) + .via(CsvToMap.toMapAsStrings()) + } +} diff --git a/scala-akka-2/src/test/readingcsv/ReadingCSVTest.scala b/scala-akka-2/src/test/readingcsv/ReadingCSVTest.scala new file mode 100644 index 000000000..06c6d06a8 --- /dev/null +++ b/scala-akka-2/src/test/readingcsv/ReadingCSVTest.scala @@ -0,0 +1,72 @@ +import akka.actor.ActorSystem +import akka.stream.Materializer +import akka.stream.testkit.scaladsl.TestSink +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers + +class ReadingCSVTest extends AnyFlatSpec with Matchers { + implicit val system: ActorSystem = ActorSystem("ReadingCSVTest") + implicit val materializer = Materializer.createMaterializer(system) + + "read" should "read csv correctly" in { + ReadingCSV + .read("src/test/resources/readingcsv.csv") + .runWith(TestSink[String]()) + .request(5) + .expectNext( + """"Name","Age"""", + """"Bob",24""", + """"Jane",47""", + """"Imran",32""", + """"Trisha",50""" + ) + .expectComplete() + } + + "readFromString" should "read csv correctly" in { + ReadingCSV + .readFromString(""""Name","Age" + |"Bob",24 + |"Jane",47 + |"Imran",32 + |"Trisha",50""".stripMargin) + .runWith(TestSink[String]()) + .request(5) + .expectNext( + """"Name","Age"""", + """"Bob",24""", + """"Jane",47""", + """"Imran",32""", + """"Trisha",50""" + ) + .expectComplete() + } + + "readWithAlpakka" should "read csv correctly" in { + ReadingCSV + .readWithAlpakka("src/test/resources/readingcsv.csv") + .runWith(TestSink[List[String]]()) + .request(5) + .expectNext( + List("Name", "Age"), + List("Bob", "24"), + List("Jane", "47"), + List("Imran", "32"), + List("Trisha", "50") + ) + .expectComplete() + } + "readWithAlpakkaAsMap" should "read csv correctly" in { + ReadingCSV + .readWithAlpakkaAsMap("src/test/resources/readingcsv.csv") + .runWith(TestSink[Map[String, String]]()) + .request(5) + .expectNext( + Map("Name" -> "Bob", "Age" -> "24"), + Map("Name" -> "Jane", "Age" -> "47"), + Map("Name" -> "Imran", "Age" -> "32"), + Map("Name" -> "Trisha", "Age" -> "50") + ) + .expectComplete() + } +} diff --git a/scala-akka-2/src/test/resources/readingcsv.csv b/scala-akka-2/src/test/resources/readingcsv.csv new file mode 100644 index 000000000..aba2614ba --- /dev/null +++ b/scala-akka-2/src/test/resources/readingcsv.csv @@ -0,0 +1,5 @@ +"Name","Age" +"Bob",24 +"Jane",47 +"Imran",32 +"Trisha",50 \ No newline at end of file From e83d04b0f9eb6c9922c66b509b949280fefa8f29 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 18 Nov 2023 09:58:24 +0100 Subject: [PATCH 0120/1318] Added sample code for the generation of dates between a range --- .../scala/dates/DateListGenerator.scala | 37 +++++++++++++++++++ .../dates/DateListGeneratorUnitTest.scala | 17 +++++++++ 2 files changed, 54 insertions(+) create mode 100644 scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/dates/DateListGenerator.scala create mode 100644 scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/dates/DateListGeneratorUnitTest.scala diff --git a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/dates/DateListGenerator.scala b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/dates/DateListGenerator.scala new file mode 100644 index 000000000..c6a22736c --- /dev/null +++ b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/dates/DateListGenerator.scala @@ -0,0 +1,37 @@ +package com.baeldung.scala.dates + +import java.time.LocalDate +import java.time.temporal.ChronoUnit +import scala.annotation.tailrec + +object DateListGenerator { + + def recursiveDateList(startDate: LocalDate, endDate: LocalDate) = { + @tailrec + def findNextDate( + currentDate: LocalDate, + accDates: List[LocalDate] + ): List[LocalDate] = { + if (currentDate.isAfter(endDate)) { + accDates + } else { + findNextDate(currentDate.plusDays(1), accDates :+ currentDate) + } + } + findNextDate(startDate, Nil) + } + + def foldLeftDateList(startDate: LocalDate, endDate: LocalDate) = { + val noOfDays = ChronoUnit.DAYS.between(startDate, endDate) + 1 + (0 until noOfDays.toInt).foldLeft(List.empty[LocalDate]) { (acc, incr) => + acc :+ startDate.plusDays(incr) + } + } + + def iteratorDateList(startDate: LocalDate, endDate: LocalDate) = { + Iterator + .iterate(startDate)(_.plusDays(1)) + .takeWhile(!_.isAfter(endDate)) + .toList + } +} diff --git a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/dates/DateListGeneratorUnitTest.scala b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/dates/DateListGeneratorUnitTest.scala new file mode 100644 index 000000000..5e280e0e6 --- /dev/null +++ b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/dates/DateListGeneratorUnitTest.scala @@ -0,0 +1,17 @@ +package com.baeldung.scala.dates + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers +import org.scalatest.wordspec.AnyWordSpec + +import java.time.LocalDate +import scala.annotation.tailrec + +class DateListGeneratorUnitTest extends AnyWordSpec with Matchers { + + it should { + "generate a list of dates between a range using recursion" in { + + } + } +} From 930039f4af97a14e7475cdc3e2a7d81137a40f97 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 18 Nov 2023 10:54:44 +0100 Subject: [PATCH 0121/1318] converted tests into table driven test --- .../scala/dates/DateListGenerator.scala | 20 +++++- .../dates/DateListGeneratorUnitTest.scala | 64 +++++++++++++++++-- 2 files changed, 76 insertions(+), 8 deletions(-) diff --git a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/dates/DateListGenerator.scala b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/dates/DateListGenerator.scala index c6a22736c..bb3886851 100644 --- a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/dates/DateListGenerator.scala +++ b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/dates/DateListGenerator.scala @@ -6,7 +6,7 @@ import scala.annotation.tailrec object DateListGenerator { - def recursiveDateList(startDate: LocalDate, endDate: LocalDate) = { + def recursiveDateList(startDate: LocalDate, endDate: LocalDate): List[LocalDate] = { @tailrec def findNextDate( currentDate: LocalDate, @@ -21,17 +21,31 @@ object DateListGenerator { findNextDate(startDate, Nil) } - def foldLeftDateList(startDate: LocalDate, endDate: LocalDate) = { + def foldLeftDateList(startDate: LocalDate, endDate: LocalDate): List[LocalDate] = { val noOfDays = ChronoUnit.DAYS.between(startDate, endDate) + 1 (0 until noOfDays.toInt).foldLeft(List.empty[LocalDate]) { (acc, incr) => acc :+ startDate.plusDays(incr) } } - def iteratorDateList(startDate: LocalDate, endDate: LocalDate) = { + def iteratorDateList(startDate: LocalDate, endDate: LocalDate): List[LocalDate] = { Iterator .iterate(startDate)(_.plusDays(1)) .takeWhile(!_.isAfter(endDate)) .toList } + + def tabulateDateList(startDate: LocalDate, endDate: LocalDate): List[LocalDate] = { + val noOfDays = ChronoUnit.DAYS.between(startDate, endDate) + 1 + List.tabulate(noOfDays.toInt)(startDate.plusDays(_)) + } + + def dateListEpochDays(startDate: LocalDate, endDate: LocalDate): List[LocalDate] = { + startDate.toEpochDay.to(endDate.toEpochDay).map(LocalDate.ofEpochDay).toList + } + + def dateListDaysBetween(startDate: LocalDate, endDate: LocalDate): List[LocalDate] = { + val noOfDays = ChronoUnit.DAYS.between(startDate, endDate) + 1 + (0 until noOfDays.toInt).map(startDate.plusDays(_)).toList + } } diff --git a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/dates/DateListGeneratorUnitTest.scala b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/dates/DateListGeneratorUnitTest.scala index 5e280e0e6..2cae444b6 100644 --- a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/dates/DateListGeneratorUnitTest.scala +++ b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/dates/DateListGeneratorUnitTest.scala @@ -2,16 +2,70 @@ package com.baeldung.scala.dates import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers -import org.scalatest.wordspec.AnyWordSpec +import org.scalatest.prop.TableDrivenPropertyChecks import java.time.LocalDate -import scala.annotation.tailrec -class DateListGeneratorUnitTest extends AnyWordSpec with Matchers { +class DateListGeneratorUnitTest + extends AnyFlatSpec + with Matchers + with TableDrivenPropertyChecks { - it should { - "generate a list of dates between a range using recursion" in { + private val start = LocalDate.parse("2023-10-28") + private val end = LocalDate.parse("2023-11-03") + private val expectedResult = List( + "2023-10-28", + "2023-10-29", + "2023-10-30", + "2023-10-31", + "2023-11-01", + "2023-11-02", + "2023-11-03" + ).map(LocalDate.parse) + + private val inOutTable = Table( + ("startDate", "endDate", "expectedOutput", "message"), + (start, end, expectedResult, "1 week"), + (start, start, List(start), "start and end as start"), + (end, end, List(end), "start and end as end"), + (start, start.minusDays(1), List.empty, "end before start") + ) + + forAll(inOutTable) { (startDate, endDate, expectedDates, prefix) => + + it should s"[${prefix}] generate a list of dates between a range using recursion" in { + val recDateList = DateListGenerator.recursiveDateList(startDate, endDate) + assert(recDateList == expectedDates) + } + + it should s"[${prefix}] generate a list of dates between a range using foldLeft" in { + val foldedDateList = + DateListGenerator.foldLeftDateList(startDate, endDate) + assert(foldedDateList == expectedDates) + } + + it should s"[${prefix}] generate a list of dates between a range using iterator" in { + val iteratorDates = DateListGenerator.iteratorDateList(startDate, endDate) + assert(iteratorDates == expectedDates) } + + it should s"[${prefix}] generate a list of dates between a range using tabulator" in { + val tabulateDateList = + DateListGenerator.tabulateDateList(startDate, endDate) + assert(tabulateDateList == expectedDates) + } + + it should s"[${prefix}] generate a list of dates between a range using epoch days" in { + val datesEpoch = DateListGenerator.dateListEpochDays(startDate, endDate) + assert(datesEpoch == expectedDates) + } + + it should s"[${prefix}] generate a list of dates between a range using daysBetween" in { + val dates = DateListGenerator.dateListDaysBetween(startDate, endDate) + assert(dates == expectedDates) + } + } + } From 23730ea6476a0816c3ac414f232484d2c6eb0bec Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 18 Nov 2023 10:55:14 +0100 Subject: [PATCH 0122/1318] Ran scalafmt --- .../scala/dates/DateListGenerator.scala | 30 +++++++++++++++---- 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/dates/DateListGenerator.scala b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/dates/DateListGenerator.scala index bb3886851..cb7805e88 100644 --- a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/dates/DateListGenerator.scala +++ b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/dates/DateListGenerator.scala @@ -6,7 +6,10 @@ import scala.annotation.tailrec object DateListGenerator { - def recursiveDateList(startDate: LocalDate, endDate: LocalDate): List[LocalDate] = { + def recursiveDateList( + startDate: LocalDate, + endDate: LocalDate + ): List[LocalDate] = { @tailrec def findNextDate( currentDate: LocalDate, @@ -21,30 +24,45 @@ object DateListGenerator { findNextDate(startDate, Nil) } - def foldLeftDateList(startDate: LocalDate, endDate: LocalDate): List[LocalDate] = { + def foldLeftDateList( + startDate: LocalDate, + endDate: LocalDate + ): List[LocalDate] = { val noOfDays = ChronoUnit.DAYS.between(startDate, endDate) + 1 (0 until noOfDays.toInt).foldLeft(List.empty[LocalDate]) { (acc, incr) => acc :+ startDate.plusDays(incr) } } - def iteratorDateList(startDate: LocalDate, endDate: LocalDate): List[LocalDate] = { + def iteratorDateList( + startDate: LocalDate, + endDate: LocalDate + ): List[LocalDate] = { Iterator .iterate(startDate)(_.plusDays(1)) .takeWhile(!_.isAfter(endDate)) .toList } - def tabulateDateList(startDate: LocalDate, endDate: LocalDate): List[LocalDate] = { + def tabulateDateList( + startDate: LocalDate, + endDate: LocalDate + ): List[LocalDate] = { val noOfDays = ChronoUnit.DAYS.between(startDate, endDate) + 1 List.tabulate(noOfDays.toInt)(startDate.plusDays(_)) } - def dateListEpochDays(startDate: LocalDate, endDate: LocalDate): List[LocalDate] = { + def dateListEpochDays( + startDate: LocalDate, + endDate: LocalDate + ): List[LocalDate] = { startDate.toEpochDay.to(endDate.toEpochDay).map(LocalDate.ofEpochDay).toList } - def dateListDaysBetween(startDate: LocalDate, endDate: LocalDate): List[LocalDate] = { + def dateListDaysBetween( + startDate: LocalDate, + endDate: LocalDate + ): List[LocalDate] = { val noOfDays = ChronoUnit.DAYS.between(startDate, endDate) + 1 (0 until noOfDays.toInt).map(startDate.plusDays(_)).toList } From b7ca6cf66d32b0d0a0ffbc5a4457f70db25982c6 Mon Sep 17 00:00:00 2001 From: edizor <113095366+edizor@users.noreply.github.com> Date: Sat, 18 Nov 2023 19:52:19 +0800 Subject: [PATCH 0123/1318] Update README.md [skip ci] --- zio/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/zio/README.md b/zio/README.md index fe03f82ee..d190aeea1 100644 --- a/zio/README.md +++ b/zio/README.md @@ -8,3 +8,4 @@ - [Repeat and Retry in ZIO](https://www.baeldung.com/scala/zio-repeat-retry) - [Introduction to Fibers in ZIO](https://www.baeldung.com/scala/zio-fibers-tutorial) - [Error Handling in ZIO](https://www.baeldung.com/scala/zio-error-handling) +- [Introduction to ZIO-HTTP](https://www.baeldung.com/scala/zio-http) From 60699e089e393e6728b864b911b012de496a3e4b Mon Sep 17 00:00:00 2001 From: Loredana Crusoveanu Date: Sat, 18 Nov 2023 17:50:12 +0200 Subject: [PATCH 0124/1318] Update README.md --- .../scala-core-collections/README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/scala-core-collections-modules/scala-core-collections/README.md b/scala-core-collections-modules/scala-core-collections/README.md index ca65111c7..8832b7506 100644 --- a/scala-core-collections-modules/scala-core-collections/README.md +++ b/scala-core-collections-modules/scala-core-collections/README.md @@ -4,10 +4,7 @@ - [Converting Java Collections to Scala Collections](https://www.baeldung.com/scala/convert-java-collections) - [Folding Lists in Scala](https://www.baeldung.com/scala/folding-lists) - [List Concatenation Operators in Scala](https://www.baeldung.com/scala/list-concatenation-operators) -- [Iterating Over a Scala Map](https://www.baeldung.com/scala/iterate-map) - [Remove Duplicates in a Scala List](https://www.baeldung.com/scala/list-remove-duplicates) - [Guide to Arrays in Scala](https://www.baeldung.com/scala/arrays-guide) -- [Map Both Keys and Values of a Scala Map](https://www.baeldung.com/scala/map-keys-values) - [Split List by Fixed Number of Elements](https://www.baeldung.com/scala/split-list-by-fixed-number-of-elements) -- [Merge Two Maps in Scala](https://www.baeldung.com/scala/merge-two-maps) - [Different Ways To Iterate Over Collections in Scala](https://www.baeldung.com/scala/collections-iterators) From 8281c6693b71d11761ae99a11fe4c3696ef213c7 Mon Sep 17 00:00:00 2001 From: edizor <113095366+edizor@users.noreply.github.com> Date: Sun, 19 Nov 2023 04:45:14 +0800 Subject: [PATCH 0125/1318] Update README.md [skip ci] --- scala-lang-modules/scala3-lang-3/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-lang-modules/scala3-lang-3/README.md b/scala-lang-modules/scala3-lang-3/README.md index 5c435282d..75ebf0230 100644 --- a/scala-lang-modules/scala3-lang-3/README.md +++ b/scala-lang-modules/scala3-lang-3/README.md @@ -1,3 +1,4 @@ ## Relevant Articles - [Different Ways to Filter Elements From a Scala Collection](https://www.baeldung.com/scala/filter-collections) - [Type Lambdas in Scala 3](https://www.baeldung.com/scala/type-lambdas-scala-3) +- [Using the sliding() and grouped() Methods With Scala Collections](https://www.baeldung.com/scala/sliding-grouped-methods-with-collections) From 3cfd3c8ac98783456cf516f65065b60d5f373b1a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 19 Nov 2023 00:16:18 +0000 Subject: [PATCH 0126/1318] Update aws-java-sdk-s3 from 1.12.587 to 1.12.592 --- build.sbt | 53 +++++++++++++++++++++++++++++------------------------ 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/build.sbt b/build.sbt index 02413a591..a0f3ea716 100644 --- a/build.sbt +++ b/build.sbt @@ -134,13 +134,14 @@ lazy val scala_lang_2 = (project in file("scala-lang-modules/scala-lang-2")) Seq(jUnitInterface) ++ scalaTestDeps ) -lazy val scala_core_collections = (project in file("scala-core-collections-modules/scala-core-collections")) - .settings( - name := "scala-core-collections", - libraryDependencies ++= Seq( - "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" - ) ++ scalaTestDeps - ) +lazy val scala_core_collections = + (project in file("scala-core-collections-modules/scala-core-collections")) + .settings( + name := "scala-core-collections", + libraryDependencies ++= Seq( + "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" + ) ++ scalaTestDeps + ) lazy val scala_core_collections_2 = (project in file("scala-core-collections-modules/scala-core-collections-2")) @@ -376,7 +377,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "software.amazon.awssdk" % "s3" % "2.21.21" ), libraryDependencies ++= Seq( - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.587" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.592" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.0" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.0" % IntegrationTest ), @@ -445,25 +446,29 @@ lazy val scala_design_patterns = (project in file("scala-design-patterns")) libraryDependencies += "com.novocode" % "junit-interface" % "0.11" % Test ) -lazy val scala3_lang = (project in file("scala-lang-modules/scala3-lang")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version -) +lazy val scala3_lang = + (project in file("scala-lang-modules/scala3-lang")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) -lazy val scala3_lang_2 = (project in file("scala-lang-modules/scala3-lang-2")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version -) +lazy val scala3_lang_2 = + (project in file("scala-lang-modules/scala3-lang-2")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) -lazy val scala3_lang_3 = (project in file("scala-lang-modules/scala3-lang-3")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version -) +lazy val scala3_lang_3 = + (project in file("scala-lang-modules/scala3-lang-3")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) -lazy val scala3_lang_collections = (project in file("scala3-lang-collections")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version -) +lazy val scala3_lang_collections = + (project in file("scala3-lang-collections")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) lazy val cats_effects = (project in file("cats-effects")) .settings( From e5087cf51c7906859b896051834fb24740dfc575 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 19 Nov 2023 00:16:30 +0000 Subject: [PATCH 0127/1318] Update jackson-databind from 2.15.3 to 2.16.0 --- build.sbt | 53 +++++++++++++++++++++++++++++------------------------ 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/build.sbt b/build.sbt index 02413a591..475e25036 100644 --- a/build.sbt +++ b/build.sbt @@ -134,13 +134,14 @@ lazy val scala_lang_2 = (project in file("scala-lang-modules/scala-lang-2")) Seq(jUnitInterface) ++ scalaTestDeps ) -lazy val scala_core_collections = (project in file("scala-core-collections-modules/scala-core-collections")) - .settings( - name := "scala-core-collections", - libraryDependencies ++= Seq( - "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" - ) ++ scalaTestDeps - ) +lazy val scala_core_collections = + (project in file("scala-core-collections-modules/scala-core-collections")) + .settings( + name := "scala-core-collections", + libraryDependencies ++= Seq( + "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" + ) ++ scalaTestDeps + ) lazy val scala_core_collections_2 = (project in file("scala-core-collections-modules/scala-core-collections-2")) @@ -391,7 +392,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) val spireVersion = "0.18.0" val kafkaVersion = "7.5.2-ce" val pureconfigVersion = "0.17.4" -val jackSonVersion = "2.15.3" +val jackSonVersion = "2.16.0" val log4jApiScalaVersion = "13.0.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.1" @@ -445,25 +446,29 @@ lazy val scala_design_patterns = (project in file("scala-design-patterns")) libraryDependencies += "com.novocode" % "junit-interface" % "0.11" % Test ) -lazy val scala3_lang = (project in file("scala-lang-modules/scala3-lang")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version -) +lazy val scala3_lang = + (project in file("scala-lang-modules/scala3-lang")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) -lazy val scala3_lang_2 = (project in file("scala-lang-modules/scala3-lang-2")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version -) +lazy val scala3_lang_2 = + (project in file("scala-lang-modules/scala3-lang-2")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) -lazy val scala3_lang_3 = (project in file("scala-lang-modules/scala3-lang-3")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version -) +lazy val scala3_lang_3 = + (project in file("scala-lang-modules/scala3-lang-3")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) -lazy val scala3_lang_collections = (project in file("scala3-lang-collections")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version -) +lazy val scala3_lang_collections = + (project in file("scala3-lang-collections")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) lazy val cats_effects = (project in file("cats-effects")) .settings( From cfbfa7744ed9cb90e5009e514a481c295e456913 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 19 Nov 2023 00:16:50 +0000 Subject: [PATCH 0128/1318] Update jackson-datatype-jsr310 from 2.15.3 to 2.16.0 --- build.sbt | 53 +++++++++++++++++++++++++++++------------------------ 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/build.sbt b/build.sbt index 02413a591..475e25036 100644 --- a/build.sbt +++ b/build.sbt @@ -134,13 +134,14 @@ lazy val scala_lang_2 = (project in file("scala-lang-modules/scala-lang-2")) Seq(jUnitInterface) ++ scalaTestDeps ) -lazy val scala_core_collections = (project in file("scala-core-collections-modules/scala-core-collections")) - .settings( - name := "scala-core-collections", - libraryDependencies ++= Seq( - "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" - ) ++ scalaTestDeps - ) +lazy val scala_core_collections = + (project in file("scala-core-collections-modules/scala-core-collections")) + .settings( + name := "scala-core-collections", + libraryDependencies ++= Seq( + "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" + ) ++ scalaTestDeps + ) lazy val scala_core_collections_2 = (project in file("scala-core-collections-modules/scala-core-collections-2")) @@ -391,7 +392,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) val spireVersion = "0.18.0" val kafkaVersion = "7.5.2-ce" val pureconfigVersion = "0.17.4" -val jackSonVersion = "2.15.3" +val jackSonVersion = "2.16.0" val log4jApiScalaVersion = "13.0.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.1" @@ -445,25 +446,29 @@ lazy val scala_design_patterns = (project in file("scala-design-patterns")) libraryDependencies += "com.novocode" % "junit-interface" % "0.11" % Test ) -lazy val scala3_lang = (project in file("scala-lang-modules/scala3-lang")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version -) +lazy val scala3_lang = + (project in file("scala-lang-modules/scala3-lang")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) -lazy val scala3_lang_2 = (project in file("scala-lang-modules/scala3-lang-2")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version -) +lazy val scala3_lang_2 = + (project in file("scala-lang-modules/scala3-lang-2")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) -lazy val scala3_lang_3 = (project in file("scala-lang-modules/scala3-lang-3")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version -) +lazy val scala3_lang_3 = + (project in file("scala-lang-modules/scala3-lang-3")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) -lazy val scala3_lang_collections = (project in file("scala3-lang-collections")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version -) +lazy val scala3_lang_collections = + (project in file("scala3-lang-collections")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) lazy val cats_effects = (project in file("cats-effects")) .settings( From db2908331860fe8b917644cc74c6104a4c4935d3 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 19 Nov 2023 00:17:07 +0000 Subject: [PATCH 0129/1318] Update jackson-module-scala from 2.15.3 to 2.16.0 --- build.sbt | 53 +++++++++++++++++++++++++++++------------------------ 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/build.sbt b/build.sbt index 02413a591..475e25036 100644 --- a/build.sbt +++ b/build.sbt @@ -134,13 +134,14 @@ lazy val scala_lang_2 = (project in file("scala-lang-modules/scala-lang-2")) Seq(jUnitInterface) ++ scalaTestDeps ) -lazy val scala_core_collections = (project in file("scala-core-collections-modules/scala-core-collections")) - .settings( - name := "scala-core-collections", - libraryDependencies ++= Seq( - "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" - ) ++ scalaTestDeps - ) +lazy val scala_core_collections = + (project in file("scala-core-collections-modules/scala-core-collections")) + .settings( + name := "scala-core-collections", + libraryDependencies ++= Seq( + "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" + ) ++ scalaTestDeps + ) lazy val scala_core_collections_2 = (project in file("scala-core-collections-modules/scala-core-collections-2")) @@ -391,7 +392,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) val spireVersion = "0.18.0" val kafkaVersion = "7.5.2-ce" val pureconfigVersion = "0.17.4" -val jackSonVersion = "2.15.3" +val jackSonVersion = "2.16.0" val log4jApiScalaVersion = "13.0.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.1" @@ -445,25 +446,29 @@ lazy val scala_design_patterns = (project in file("scala-design-patterns")) libraryDependencies += "com.novocode" % "junit-interface" % "0.11" % Test ) -lazy val scala3_lang = (project in file("scala-lang-modules/scala3-lang")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version -) +lazy val scala3_lang = + (project in file("scala-lang-modules/scala3-lang")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) -lazy val scala3_lang_2 = (project in file("scala-lang-modules/scala3-lang-2")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version -) +lazy val scala3_lang_2 = + (project in file("scala-lang-modules/scala3-lang-2")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) -lazy val scala3_lang_3 = (project in file("scala-lang-modules/scala3-lang-3")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version -) +lazy val scala3_lang_3 = + (project in file("scala-lang-modules/scala3-lang-3")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) -lazy val scala3_lang_collections = (project in file("scala3-lang-collections")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version -) +lazy val scala3_lang_collections = + (project in file("scala3-lang-collections")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) lazy val cats_effects = (project in file("cats-effects")) .settings( From ae3be9c61ebff0dea4dbc4eb5af00ff3308f192d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 19 Nov 2023 00:17:24 +0000 Subject: [PATCH 0130/1318] Update elastic4s-client-esjava, ... from 8.9.5 to 8.11.1 --- build.sbt | 53 +++++++++++++++++++++++++++++------------------------ 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/build.sbt b/build.sbt index 02413a591..c93245177 100644 --- a/build.sbt +++ b/build.sbt @@ -134,13 +134,14 @@ lazy val scala_lang_2 = (project in file("scala-lang-modules/scala-lang-2")) Seq(jUnitInterface) ++ scalaTestDeps ) -lazy val scala_core_collections = (project in file("scala-core-collections-modules/scala-core-collections")) - .settings( - name := "scala-core-collections", - libraryDependencies ++= Seq( - "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" - ) ++ scalaTestDeps - ) +lazy val scala_core_collections = + (project in file("scala-core-collections-modules/scala-core-collections")) + .settings( + name := "scala-core-collections", + libraryDependencies ++= Seq( + "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" + ) ++ scalaTestDeps + ) lazy val scala_core_collections_2 = (project in file("scala-core-collections-modules/scala-core-collections-2")) @@ -266,7 +267,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) val circeVersion = "0.14.6" val monixVersion = "3.4.1" -val elastic4sVersion = "8.9.5" +val elastic4sVersion = "8.11.1" val sparkVersion = "3.5.0" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion @@ -445,25 +446,29 @@ lazy val scala_design_patterns = (project in file("scala-design-patterns")) libraryDependencies += "com.novocode" % "junit-interface" % "0.11" % Test ) -lazy val scala3_lang = (project in file("scala-lang-modules/scala3-lang")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version -) +lazy val scala3_lang = + (project in file("scala-lang-modules/scala3-lang")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) -lazy val scala3_lang_2 = (project in file("scala-lang-modules/scala3-lang-2")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version -) +lazy val scala3_lang_2 = + (project in file("scala-lang-modules/scala3-lang-2")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) -lazy val scala3_lang_3 = (project in file("scala-lang-modules/scala3-lang-3")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version -) +lazy val scala3_lang_3 = + (project in file("scala-lang-modules/scala3-lang-3")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) -lazy val scala3_lang_collections = (project in file("scala3-lang-collections")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version -) +lazy val scala3_lang_collections = + (project in file("scala3-lang-collections")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) lazy val cats_effects = (project in file("cats-effects")) .settings( From 1a21ce085954efb62bf1face8cfec4d31098b83f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 19 Nov 2023 00:17:56 +0000 Subject: [PATCH 0131/1318] Update sbt-twirl, twirl-api from 1.6.2 to 1.6.3 --- scalatra/project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scalatra/project/plugins.sbt b/scalatra/project/plugins.sbt index 4b98272d2..7d53349c3 100644 --- a/scalatra/project/plugins.sbt +++ b/scalatra/project/plugins.sbt @@ -1,3 +1,3 @@ -addSbtPlugin("com.typesafe.play" % "sbt-twirl" % "1.6.2") +addSbtPlugin("com.typesafe.play" % "sbt-twirl" % "1.6.3") addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "4.2.4") libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always From 1f00e36086315744ef733afe223b7bd455cc6156 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 19 Nov 2023 00:18:12 +0000 Subject: [PATCH 0132/1318] Update de.flapdoodle.embed.mongo from 4.10.1 to 4.10.2 --- build.sbt | 53 +++++++++++++++++++++++++++++------------------------ 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/build.sbt b/build.sbt index 02413a591..7b78aa7b3 100644 --- a/build.sbt +++ b/build.sbt @@ -10,7 +10,7 @@ val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.2" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.2" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV val logback = "ch.qos.logback" % "logback-classic" % "1.4.11" -val embedMongoVersion = "4.10.1" +val embedMongoVersion = "4.10.2" val scalaTestDeps = Seq( "org.scalatest" %% "scalatest" % "3.2.17" % Test, @@ -134,13 +134,14 @@ lazy val scala_lang_2 = (project in file("scala-lang-modules/scala-lang-2")) Seq(jUnitInterface) ++ scalaTestDeps ) -lazy val scala_core_collections = (project in file("scala-core-collections-modules/scala-core-collections")) - .settings( - name := "scala-core-collections", - libraryDependencies ++= Seq( - "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" - ) ++ scalaTestDeps - ) +lazy val scala_core_collections = + (project in file("scala-core-collections-modules/scala-core-collections")) + .settings( + name := "scala-core-collections", + libraryDependencies ++= Seq( + "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" + ) ++ scalaTestDeps + ) lazy val scala_core_collections_2 = (project in file("scala-core-collections-modules/scala-core-collections-2")) @@ -445,25 +446,29 @@ lazy val scala_design_patterns = (project in file("scala-design-patterns")) libraryDependencies += "com.novocode" % "junit-interface" % "0.11" % Test ) -lazy val scala3_lang = (project in file("scala-lang-modules/scala3-lang")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version -) +lazy val scala3_lang = + (project in file("scala-lang-modules/scala3-lang")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) -lazy val scala3_lang_2 = (project in file("scala-lang-modules/scala3-lang-2")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version -) +lazy val scala3_lang_2 = + (project in file("scala-lang-modules/scala3-lang-2")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) -lazy val scala3_lang_3 = (project in file("scala-lang-modules/scala3-lang-3")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version -) +lazy val scala3_lang_3 = + (project in file("scala-lang-modules/scala3-lang-3")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) -lazy val scala3_lang_collections = (project in file("scala3-lang-collections")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version -) +lazy val scala3_lang_collections = + (project in file("scala3-lang-collections")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) lazy val cats_effects = (project in file("cats-effects")) .settings( From 9288eeaae617c538c6d869350003b38f35a00a14 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 19 Nov 2023 00:18:37 +0000 Subject: [PATCH 0133/1318] Update zio-json from 0.6.0 to 0.6.2 --- zio/build.sbt | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/zio/build.sbt b/zio/build.sbt index aa2e6e6a5..addb1109c 100644 --- a/zio/build.sbt +++ b/zio/build.sbt @@ -3,19 +3,19 @@ val scala3Version = "3.3.0" scalaVersion := scala3Version libraryDependencies ++= Seq( - "dev.zio" %% "zio" % "2.0.15", - "dev.zio" %% "zio-json" % "0.6.0", - "dev.zio" %% "zio-http" % "3.0.0-RC2", - "io.getquill" %% "quill-zio" % "4.6.0", - "io.getquill" %% "quill-jdbc-zio" % "4.6.0", - "com.h2database" % "h2" % "2.2.220" + "dev.zio" %% "zio" % "2.0.15", + "dev.zio" %% "zio-json" % "0.6.2", + "dev.zio" %% "zio-http" % "3.0.0-RC2", + "io.getquill" %% "quill-zio" % "4.6.0", + "io.getquill" %% "quill-jdbc-zio" % "4.6.0", + "com.h2database" % "h2" % "2.2.220" ) libraryDependencies ++= Seq( - "dev.zio" %% "zio-test" % "2.0.16" % Test, - "dev.zio" %% "zio-test-sbt" % "2.0.16" % Test, - "dev.zio" %% "zio-test-magnolia" % "2.0.16" % Test, - "dev.zio" %% "zio-http-testkit" % "3.0.0-RC2" % Test, + "dev.zio" %% "zio-test" % "2.0.16" % Test, + "dev.zio" %% "zio-test-sbt" % "2.0.16" % Test, + "dev.zio" %% "zio-test-magnolia" % "2.0.16" % Test, + "dev.zio" %% "zio-http-testkit" % "3.0.0-RC2" % Test ) testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework") From ba2497f6af7d52e7d294e8e0093533333bd1b868 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 19 Nov 2023 00:18:52 +0000 Subject: [PATCH 0134/1318] Update zio-test, zio-test-magnolia from 2.0.16 to 2.0.19 --- zio/build.sbt | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/zio/build.sbt b/zio/build.sbt index aa2e6e6a5..0c49ff556 100644 --- a/zio/build.sbt +++ b/zio/build.sbt @@ -3,19 +3,19 @@ val scala3Version = "3.3.0" scalaVersion := scala3Version libraryDependencies ++= Seq( - "dev.zio" %% "zio" % "2.0.15", - "dev.zio" %% "zio-json" % "0.6.0", - "dev.zio" %% "zio-http" % "3.0.0-RC2", - "io.getquill" %% "quill-zio" % "4.6.0", - "io.getquill" %% "quill-jdbc-zio" % "4.6.0", - "com.h2database" % "h2" % "2.2.220" + "dev.zio" %% "zio" % "2.0.15", + "dev.zio" %% "zio-json" % "0.6.0", + "dev.zio" %% "zio-http" % "3.0.0-RC2", + "io.getquill" %% "quill-zio" % "4.6.0", + "io.getquill" %% "quill-jdbc-zio" % "4.6.0", + "com.h2database" % "h2" % "2.2.220" ) libraryDependencies ++= Seq( - "dev.zio" %% "zio-test" % "2.0.16" % Test, - "dev.zio" %% "zio-test-sbt" % "2.0.16" % Test, - "dev.zio" %% "zio-test-magnolia" % "2.0.16" % Test, - "dev.zio" %% "zio-http-testkit" % "3.0.0-RC2" % Test, + "dev.zio" %% "zio-test" % "2.0.19" % Test, + "dev.zio" %% "zio-test-sbt" % "2.0.16" % Test, + "dev.zio" %% "zio-test-magnolia" % "2.0.19" % Test, + "dev.zio" %% "zio-http-testkit" % "3.0.0-RC2" % Test ) testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework") From 612965913606c001a9d061f211066ffc5e889205 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 19 Nov 2023 00:19:19 +0000 Subject: [PATCH 0135/1318] Update http4s-dsl from 0.23.23 to 0.23.24 --- build.sbt | 53 +++++++++++++++++++++++++++++------------------------ 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/build.sbt b/build.sbt index 02413a591..de9b5cbb8 100644 --- a/build.sbt +++ b/build.sbt @@ -134,13 +134,14 @@ lazy val scala_lang_2 = (project in file("scala-lang-modules/scala-lang-2")) Seq(jUnitInterface) ++ scalaTestDeps ) -lazy val scala_core_collections = (project in file("scala-core-collections-modules/scala-core-collections")) - .settings( - name := "scala-core-collections", - libraryDependencies ++= Seq( - "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" - ) ++ scalaTestDeps - ) +lazy val scala_core_collections = + (project in file("scala-core-collections-modules/scala-core-collections")) + .settings( + name := "scala-core-collections", + libraryDependencies ++= Seq( + "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" + ) ++ scalaTestDeps + ) lazy val scala_core_collections_2 = (project in file("scala-core-collections-modules/scala-core-collections-2")) @@ -314,7 +315,7 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) ) val http4sBlaze = "0.23.15" -val http4sVersion = "0.23.23" +val http4sVersion = "0.23.24" val osLibVersion = "0.9.2" lazy val scala_libraries_3 = (project in file("scala-libraries-3")) .settings( @@ -445,25 +446,29 @@ lazy val scala_design_patterns = (project in file("scala-design-patterns")) libraryDependencies += "com.novocode" % "junit-interface" % "0.11" % Test ) -lazy val scala3_lang = (project in file("scala-lang-modules/scala3-lang")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version -) +lazy val scala3_lang = + (project in file("scala-lang-modules/scala3-lang")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) -lazy val scala3_lang_2 = (project in file("scala-lang-modules/scala3-lang-2")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version -) +lazy val scala3_lang_2 = + (project in file("scala-lang-modules/scala3-lang-2")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) -lazy val scala3_lang_3 = (project in file("scala-lang-modules/scala3-lang-3")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version -) +lazy val scala3_lang_3 = + (project in file("scala-lang-modules/scala3-lang-3")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) -lazy val scala3_lang_collections = (project in file("scala3-lang-collections")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version -) +lazy val scala3_lang_collections = + (project in file("scala3-lang-collections")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) lazy val cats_effects = (project in file("cats-effects")) .settings( From 77a99db2f11eec90ffc6e4e83585bb631891899e Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 19 Nov 2023 00:20:03 +0000 Subject: [PATCH 0136/1318] Update pulsar from 1.19.1 to 1.19.2 --- build.sbt | 53 +++++++++++++++++++++++++++++------------------------ 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/build.sbt b/build.sbt index 02413a591..72aef2d11 100644 --- a/build.sbt +++ b/build.sbt @@ -134,13 +134,14 @@ lazy val scala_lang_2 = (project in file("scala-lang-modules/scala-lang-2")) Seq(jUnitInterface) ++ scalaTestDeps ) -lazy val scala_core_collections = (project in file("scala-core-collections-modules/scala-core-collections")) - .settings( - name := "scala-core-collections", - libraryDependencies ++= Seq( - "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" - ) ++ scalaTestDeps - ) +lazy val scala_core_collections = + (project in file("scala-core-collections-modules/scala-core-collections")) + .settings( + name := "scala-core-collections", + libraryDependencies ++= Seq( + "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" + ) ++ scalaTestDeps + ) lazy val scala_core_collections_2 = (project in file("scala-core-collections-modules/scala-core-collections-2")) @@ -370,7 +371,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) libraryDependencies ++= Seq( "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.9.0", "com.clever-cloud.pulsar4s" %% "pulsar4s-jackson" % "2.9.0", - "org.testcontainers" % "pulsar" % "1.19.1" % IntegrationTest + "org.testcontainers" % "pulsar" % "1.19.2" % IntegrationTest ), libraryDependencies ++= Seq( "software.amazon.awssdk" % "s3" % "2.21.21" @@ -445,25 +446,29 @@ lazy val scala_design_patterns = (project in file("scala-design-patterns")) libraryDependencies += "com.novocode" % "junit-interface" % "0.11" % Test ) -lazy val scala3_lang = (project in file("scala-lang-modules/scala3-lang")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version -) +lazy val scala3_lang = + (project in file("scala-lang-modules/scala3-lang")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) -lazy val scala3_lang_2 = (project in file("scala-lang-modules/scala3-lang-2")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version -) +lazy val scala3_lang_2 = + (project in file("scala-lang-modules/scala3-lang-2")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) -lazy val scala3_lang_3 = (project in file("scala-lang-modules/scala3-lang-3")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version -) +lazy val scala3_lang_3 = + (project in file("scala-lang-modules/scala3-lang-3")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) -lazy val scala3_lang_collections = (project in file("scala3-lang-collections")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version -) +lazy val scala3_lang_collections = + (project in file("scala3-lang-collections")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) lazy val cats_effects = (project in file("cats-effects")) .settings( From dfbd3e2f0639c47ea3f98bfdb946891e97d04fc2 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 19 Nov 2023 00:20:20 +0000 Subject: [PATCH 0137/1318] Update s3 from 2.21.21 to 2.21.26 --- build.sbt | 53 +++++++++++++++++++++++++++++------------------------ 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/build.sbt b/build.sbt index 02413a591..1d397a3f7 100644 --- a/build.sbt +++ b/build.sbt @@ -134,13 +134,14 @@ lazy val scala_lang_2 = (project in file("scala-lang-modules/scala-lang-2")) Seq(jUnitInterface) ++ scalaTestDeps ) -lazy val scala_core_collections = (project in file("scala-core-collections-modules/scala-core-collections")) - .settings( - name := "scala-core-collections", - libraryDependencies ++= Seq( - "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" - ) ++ scalaTestDeps - ) +lazy val scala_core_collections = + (project in file("scala-core-collections-modules/scala-core-collections")) + .settings( + name := "scala-core-collections", + libraryDependencies ++= Seq( + "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" + ) ++ scalaTestDeps + ) lazy val scala_core_collections_2 = (project in file("scala-core-collections-modules/scala-core-collections-2")) @@ -373,7 +374,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "org.testcontainers" % "pulsar" % "1.19.1" % IntegrationTest ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "s3" % "2.21.21" + "software.amazon.awssdk" % "s3" % "2.21.26" ), libraryDependencies ++= Seq( "com.amazonaws" % "aws-java-sdk-s3" % "1.12.587" % IntegrationTest, @@ -445,25 +446,29 @@ lazy val scala_design_patterns = (project in file("scala-design-patterns")) libraryDependencies += "com.novocode" % "junit-interface" % "0.11" % Test ) -lazy val scala3_lang = (project in file("scala-lang-modules/scala3-lang")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version -) +lazy val scala3_lang = + (project in file("scala-lang-modules/scala3-lang")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) -lazy val scala3_lang_2 = (project in file("scala-lang-modules/scala3-lang-2")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version -) +lazy val scala3_lang_2 = + (project in file("scala-lang-modules/scala3-lang-2")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) -lazy val scala3_lang_3 = (project in file("scala-lang-modules/scala3-lang-3")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version -) +lazy val scala3_lang_3 = + (project in file("scala-lang-modules/scala3-lang-3")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) -lazy val scala3_lang_collections = (project in file("scala3-lang-collections")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version -) +lazy val scala3_lang_collections = + (project in file("scala3-lang-collections")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) lazy val cats_effects = (project in file("cats-effects")) .settings( From 5ef789089e8c70ac408b9ed26a485a7c16c8fe9b Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 19 Nov 2023 00:17:42 +0000 Subject: [PATCH 0138/1318] Update play-slick, play-slick-evolutions from 5.2.0-RC2 to 5.2.0 --- build.sbt | 2 +- play-scala/application-tests/build.sbt | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index 426f1e58e..6e08c8ead 100644 --- a/build.sbt +++ b/build.sbt @@ -290,7 +290,7 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) "com.beachape" %% "enumeratum" % "1.7.3" ), libraryDependencies ++= Seq( - "com.typesafe.play" %% "play-slick" % "5.2.0-RC2", + "com.typesafe.play" %% "play-slick" % "5.2.0", "org.postgresql" % "postgresql" % "42.6.0" ), libraryDependencies ++= Seq( diff --git a/play-scala/application-tests/build.sbt b/play-scala/application-tests/build.sbt index 5e7ce063a..fab03cc48 100644 --- a/play-scala/application-tests/build.sbt +++ b/play-scala/application-tests/build.sbt @@ -10,7 +10,7 @@ scalaVersion := ScalaVersions.scala2Version libraryDependencies += guice libraryDependencies += "com.h2database" % "h2" % "1.4.200" libraryDependencies += "org.postgresql" % "postgresql" % "42.2.27" -libraryDependencies += "com.typesafe.play" %% "play-slick" % "5.2.0-RC2" -libraryDependencies += "com.typesafe.play" %% "play-slick-evolutions" % "5.2.0-RC2" +libraryDependencies += "com.typesafe.play" %% "play-slick" % "5.2.0" +libraryDependencies += "com.typesafe.play" %% "play-slick-evolutions" % "5.2.0" libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.0" % Test libraryDependencies += "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % Test From cf34da3ea3ff79d4dc84001da16d864e95aec7b0 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 22 Nov 2023 20:22:47 +0100 Subject: [PATCH 0139/1318] Moved some of the code into correct sub modules --- .../src/main/resources/GOOG.csv | 447 ------------------ .../CircularBufferFixedSizeList.scala | 0 .../fixedsizelist/FixedSizeList.scala | 0 .../OptimizedMovingAverage.scala | 0 .../movingaverage/SlidingMovingAverage.scala | 0 .../CircularBufferFixedSizeListSpec.scala | 0 .../fixedsizelist/FixedSizeListSpec.scala | 0 .../immutablearrays/ImmutableArraySpec.scala | 0 8 files changed, 447 deletions(-) delete mode 100644 scala-core-collections-3/src/main/resources/GOOG.csv rename {scala-core-collections-3/src/main/scala-2/com/baeldung/scala => scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung}/fixedsizelist/CircularBufferFixedSizeList.scala (100%) rename {scala-core-collections-3/src/main/scala-2/com/baeldung/scala => scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung}/fixedsizelist/FixedSizeList.scala (100%) rename {scala-core-collections-3/src/main/scala-2/com/baeldung/scala => scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung}/movingaverage/OptimizedMovingAverage.scala (100%) rename {scala-core-collections-3/src/main/scala-2/com/baeldung/scala => scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung}/movingaverage/SlidingMovingAverage.scala (100%) rename {scala-core-collections-3 => scala-core-collections-modules/scala-core-collections-3}/src/test/scala-2/com/baeldung/scala/fixedsizelist/CircularBufferFixedSizeListSpec.scala (100%) rename {scala-core-collections-3 => scala-core-collections-modules/scala-core-collections-3}/src/test/scala-2/com/baeldung/scala/fixedsizelist/FixedSizeListSpec.scala (100%) rename {scala3-lang-3 => scala-lang-modules/scala3-lang-3}/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala (100%) diff --git a/scala-core-collections-3/src/main/resources/GOOG.csv b/scala-core-collections-3/src/main/resources/GOOG.csv deleted file mode 100644 index bb59948ed..000000000 --- a/scala-core-collections-3/src/main/resources/GOOG.csv +++ /dev/null @@ -1,447 +0,0 @@ -Date,Open,High,Low,Close,Adj Close,Volume -2022-01-03,144.475494,145.550003,143.502502,145.074493,145.074493,25214000 -2022-01-04,145.550507,146.610001,143.816147,144.416504,144.416504,22928000 -2022-01-05,144.181000,144.298004,137.523499,137.653503,137.653503,49642000 -2022-01-06,137.497498,139.686005,136.763504,137.550995,137.550995,29050000 -2022-01-07,137.904999,138.254745,135.789001,137.004501,137.004501,19408000 -2022-01-10,135.098999,138.639999,133.140503,138.574005,138.574005,34096000 -2022-01-11,138.180496,140.329498,136.813507,140.017502,140.017502,23502000 -2022-01-12,141.554504,142.814255,141.112000,141.647995,141.647995,23642000 -2022-01-13,141.840500,143.185501,138.914001,139.130997,139.130997,26566000 -2022-01-14,137.500000,141.200500,137.500000,139.786499,139.786499,23826000 -2022-01-18,136.600006,137.391495,135.617004,136.290497,136.290497,27382000 -2022-01-19,136.938507,138.399506,135.500000,135.651993,135.651993,20796000 -2022-01-20,136.514008,137.912003,133.144501,133.506500,133.506500,21930000 -2022-01-21,133.011993,134.760498,130.001007,130.091995,130.091995,41920000 -2022-01-24,126.027496,130.778503,124.641953,130.371994,130.371994,55148000 -2022-01-25,128.435501,129.338501,126.377998,126.735497,126.735497,36008000 -2022-01-26,130.592499,132.807495,127.153503,129.240005,129.240005,39630000 -2022-01-27,131.360992,132.609955,128.945007,129.121002,129.121002,30248000 -2022-01-28,130.000000,133.370499,128.694504,133.289505,133.289505,30518000 -2022-01-31,134.197998,135.843506,132.274002,135.698502,135.698502,34056000 -2022-02-01,137.835007,138.199997,134.568253,137.878494,137.878494,51204000 -2022-02-02,151.863495,152.100006,145.557495,148.036499,148.036499,89750000 -2022-02-03,145.294998,149.117706,142.205002,142.650497,142.650497,56930000 -2022-02-04,143.016998,144.535248,139.817505,143.016006,143.016006,49224000 -2022-02-07,143.709000,143.846497,138.699005,138.938004,138.938004,44610000 -2022-02-08,138.991257,139.837097,136.873001,139.212997,139.212997,34256000 -2022-02-09,140.849747,142.175507,140.376999,141.453003,141.453003,28628000 -2022-02-10,139.500000,141.431000,138.050003,138.602493,138.602493,33018000 -2022-02-11,138.750000,139.283249,133.288498,134.130005,134.130005,38808000 -2022-02-14,133.365494,136.166504,133.302002,135.300003,135.300003,26792000 -2022-02-15,137.471497,137.899994,135.539505,136.425507,136.425507,26578000 -2022-02-16,136.430496,137.945999,134.823654,137.487503,137.487503,25610000 -2022-02-17,136.149994,136.839493,132.201996,132.308502,132.308502,30968000 -2022-02-18,133.037506,133.824005,130.307053,130.467499,130.467499,31858000 -2022-02-22,129.985001,131.900757,127.740997,129.402496,129.402496,38906000 -2022-02-23,131.078506,131.748993,127.503502,127.584999,127.584999,26432000 -2022-02-24,125.000000,133.037003,124.764503,132.673492,132.673492,43166000 -2022-02-25,133.525497,135.389008,131.764999,134.519501,134.519501,26236000 -2022-02-28,133.284500,135.640503,132.825256,134.891006,134.891006,29676000 -2022-03-01,134.479996,136.110992,133.378494,134.167999,134.167999,24640000 -2022-03-02,134.608246,135.615494,133.432495,134.751495,134.751495,23966000 -2022-03-03,135.978500,136.713806,133.431000,134.307999,134.307999,19780000 -2022-03-04,133.382507,134.199005,130.408493,132.121994,132.121994,24446000 -2022-03-07,131.904007,131.904007,126.410004,126.464500,126.464500,39178000 -2022-03-08,126.250504,131.246506,125.860748,127.278503,127.278503,35250000 -2022-03-09,131.399994,134.198502,130.087997,133.865997,133.865997,32258000 -2022-03-10,131.462494,133.538498,131.401001,132.682007,132.682007,24266000 -2022-03-11,133.999496,134.199997,130.296494,130.475494,130.475494,26600000 -2022-03-14,130.572998,131.026001,126.413002,126.740997,126.740997,30254000 -2022-03-15,127.741501,130.517242,126.568001,129.660507,129.660507,30292000 -2022-03-16,131.000000,133.770996,129.201004,133.690506,133.690506,32058000 -2022-03-17,133.320999,134.739502,132.718994,134.600494,134.600494,23994000 -2022-03-18,133.884003,136.913498,132.932007,136.801498,136.801498,45900000 -2022-03-21,136.847504,137.582504,134.611496,136.478500,136.478500,26632000 -2022-03-22,136.500000,141.500000,136.500000,140.277496,140.277496,29776000 -2022-03-23,139.138504,140.024994,138.166504,138.503494,138.503494,25302000 -2022-03-24,139.272507,141.396500,138.039398,141.311996,141.311996,20544000 -2022-03-25,141.753998,141.959503,139.699493,141.521500,141.521500,19270000 -2022-03-28,140.684494,141.976501,139.828156,141.949997,141.949997,23774000 -2022-03-29,143.160507,144.162506,142.483994,143.250000,143.250000,28678000 -2022-03-30,142.869995,143.480499,142.167999,142.644501,142.644501,21046000 -2022-03-31,142.448502,142.644501,139.619003,139.649506,139.649506,29516000 -2022-04-01,140.009995,140.949997,138.796997,140.699997,140.699997,23480000 -2022-04-04,140.824493,144.043747,140.824493,143.642502,143.642502,19076000 -2022-04-05,143.399506,143.589996,140.943497,141.063004,141.063004,19256000 -2022-04-06,139.161499,139.848495,136.418106,137.175995,137.175995,23574000 -2022-04-07,136.617996,137.701508,134.857254,136.464996,136.464996,19448000 -2022-04-08,136.250000,136.250000,133.752502,134.010498,134.010498,16434000 -2022-04-11,132.899994,132.939194,129.617493,129.796494,129.796494,24188000 -2022-04-12,132.423492,132.423492,127.575996,128.374496,128.374496,23004000 -2022-04-13,128.626495,130.655746,128.438599,130.285995,130.285995,19542000 -2022-04-14,130.649506,130.710251,127.111504,127.252998,127.252998,23484000 -2022-04-18,127.410004,128.712006,126.578453,127.960999,127.960999,14918000 -2022-04-19,128.076996,130.903748,127.451500,130.531006,130.531006,22720000 -2022-04-20,131.283997,131.923492,127.894051,128.245499,128.245499,22610000 -2022-04-21,129.350006,130.307495,124.650002,124.937500,124.937500,30158000 -2022-04-22,125.000000,125.452003,119.140503,119.613998,119.613998,46410000 -2022-04-25,119.429497,123.278000,118.769249,123.250000,123.250000,34522000 -2022-04-26,122.750000,122.750000,119.161850,119.505997,119.505997,49394000 -2022-04-27,114.373001,117.500000,113.124252,115.020500,115.020500,62238000 -2022-04-28,117.114998,120.438499,115.143898,119.411499,119.411499,36790000 -2022-04-29,117.578003,118.959999,114.694000,114.966499,114.966499,33694000 -2022-05-02,113.906502,117.339500,113.399498,117.156998,117.156998,30280000 -2022-05-03,116.764999,119.300003,116.626999,118.129501,118.129501,21216000 -2022-05-04,118.003502,123.142998,115.738503,122.574997,122.574997,33232000 -2022-05-05,120.220497,121.233253,115.182503,116.746498,116.746498,43090000 -2022-05-06,115.518997,117.498497,114.142998,115.660004,115.660004,35310000 -2022-05-09,113.303497,115.562897,112.551498,113.084000,113.084000,34520000 -2022-05-10,116.040497,116.691002,113.383301,114.584503,114.584503,31158000 -2022-05-11,113.710503,116.670998,113.650002,113.960999,113.960999,36502000 -2022-05-12,111.938004,114.856499,110.113503,113.161003,113.161003,41464000 -2022-05-13,114.845497,118.084999,114.000000,116.515503,116.515503,29738000 -2022-05-16,115.384003,116.607498,114.334999,114.792503,114.792503,23282000 -2022-05-17,117.227501,117.227501,115.337502,116.701500,116.701500,21576000 -2022-05-18,115.237503,115.695648,112.141998,112.401001,112.401001,27982000 -2022-05-19,111.841003,113.587502,110.468002,110.745499,110.745499,29192000 -2022-05-20,112.085503,112.550003,106.373001,109.313004,109.313004,37586000 -2022-05-23,110.103996,112.005501,109.154251,111.666496,111.666496,31558000 -2022-05-24,106.377502,106.394997,102.208000,105.926003,105.926003,60386000 -2022-05-25,105.141998,106.544701,104.211250,105.839500,105.839500,37900000 -2022-05-26,106.050499,108.955254,105.487999,108.295998,108.295998,30288000 -2022-05-27,109.788498,112.867996,109.550003,112.799004,112.799004,29924000 -2022-05-31,113.079002,116.433502,112.572502,114.039001,114.039001,51302000 -2022-06-01,114.931503,117.399002,113.550499,114.137001,114.137001,28630000 -2022-06-02,114.188004,117.898003,113.307999,117.746002,117.746002,27472000 -2022-06-03,115.992500,116.364502,113.667999,114.564003,114.564003,25052000 -2022-06-06,116.742500,119.398499,116.528297,117.010498,117.010498,23786000 -2022-06-07,115.648003,117.748650,115.125504,117.229500,117.229500,26414000 -2022-06-08,116.876503,118.646004,116.696747,117.237999,117.237999,22544000 -2022-06-09,116.341499,118.349998,114.866997,114.917999,114.917999,23142000 -2022-06-10,112.781250,113.497002,110.861000,111.427498,111.427498,31324000 -2022-06-13,107.445999,109.218498,106.588051,106.876503,106.876503,36756000 -2022-06-14,106.889999,108.457497,106.351997,107.194000,107.194000,25480000 -2022-06-15,108.899498,112.063004,108.118752,110.390503,110.390503,33192000 -2022-06-16,108.149498,109.290497,105.792503,106.636002,106.636002,35314000 -2022-06-17,106.535004,109.249496,105.628548,107.865501,107.865501,43516000 -2022-06-21,109.702003,112.672997,109.293503,112.014999,112.014999,39010000 -2022-06-22,111.163002,113.769501,110.724297,112.033997,112.033997,23922000 -2022-06-23,112.949997,113.196503,111.028999,112.684502,112.684502,24710000 -2022-06-24,113.602997,118.637497,113.602997,118.538002,118.538002,39122000 -2022-06-27,118.934998,119.250000,116.000748,116.622498,116.622498,32840000 -2022-06-28,116.350998,117.856499,112.444000,112.571503,112.571503,28232000 -2022-06-29,112.148499,113.664497,111.554001,112.256500,112.256500,18628000 -2022-06-30,110.499496,111.329803,107.309998,109.372498,109.372498,38046000 -2022-07-01,108.336998,109.806351,107.105003,109.081001,109.081001,31028000 -2022-07-05,107.514503,114.052597,106.249496,113.887001,113.887001,36398000 -2022-07-06,114.092003,116.351997,112.250504,115.213501,115.213501,28852000 -2022-07-07,116.008003,119.862000,115.533997,119.306000,119.306000,32184000 -2022-07-08,117.550003,120.434998,117.514000,120.168503,120.168503,29082000 -2022-07-11,118.650002,118.794502,116.234497,116.522499,116.522499,26718000 -2022-07-12,116.838501,117.849503,114.614998,114.849503,114.849503,24970000 -2022-07-13,112.639000,115.156998,111.822998,112.186996,112.186996,38958000 -2022-07-14,110.825996,111.987503,109.325500,111.440002,111.440002,32366000 -2022-07-15,112.962997,114.000504,111.822502,112.766998,112.766998,34330000 -2022-07-18,113.440002,114.800003,109.300003,109.910004,109.910004,33354000 -2022-07-19,111.730003,114.809998,110.500000,114.620003,114.620003,30992300 -2022-07-20,114.059998,116.330002,113.260002,114.699997,114.699997,26780100 -2022-07-21,115.089996,115.209999,111.910004,115.040001,115.040001,27267800 -2022-07-22,111.809998,113.180000,107.599998,108.360001,108.360001,44455300 -2022-07-25,108.879997,110.580002,107.010002,108.209999,108.209999,28289900 -2022-07-26,107.430000,107.739998,104.760002,105.440002,105.440002,36626600 -2022-07-27,109.599998,114.400002,108.419998,113.599998,113.599998,41474600 -2022-07-28,112.800003,114.699997,111.850998,114.589996,114.589996,23303800 -2022-07-29,113.400002,116.900002,113.230003,116.639999,116.639999,31336200 -2022-08-01,115.529999,117.120003,114.690002,115.480003,115.480003,22856200 -2022-08-02,114.430000,117.080002,114.260002,115.900002,115.900002,17911000 -2022-08-03,116.339996,119.419998,116.150002,118.779999,118.779999,25302800 -2022-08-04,118.300003,119.500000,117.709999,118.870003,118.870003,15757700 -2022-08-05,116.930000,118.860001,116.709999,118.220001,118.220001,15615700 -2022-08-08,119.120003,120.860001,117.830002,118.139999,118.139999,17061100 -2022-08-09,117.989998,118.199997,116.559998,117.500000,117.500000,15424300 -2022-08-10,119.589996,121.779999,119.360001,120.650002,120.650002,20497000 -2022-08-11,122.080002,122.339996,119.550003,119.820000,119.820000,16671600 -2022-08-12,121.160004,122.650002,120.400002,122.650002,122.650002,16121100 -2022-08-15,122.209999,123.260002,121.570000,122.879997,122.879997,15525000 -2022-08-16,122.320000,123.227997,121.535004,122.510002,122.510002,15626200 -2022-08-17,120.930000,122.150002,120.199997,120.320000,120.320000,17589200 -2022-08-18,120.230003,121.690002,119.550003,120.860001,120.860001,15652000 -2022-08-19,119.870003,120.000000,117.669998,118.120003,118.120003,20187000 -2022-08-22,116.099998,116.500000,114.669998,115.070000,115.070000,19316000 -2022-08-23,114.320000,115.930000,114.300003,114.769997,114.769997,14390700 -2022-08-24,114.449997,115.717003,113.779999,114.699997,114.699997,16051200 -2022-08-25,115.150002,117.779999,115.050003,117.699997,117.699997,14874700 -2022-08-26,115.809998,116.599998,111.220001,111.300003,111.300003,31698700 -2022-08-29,110.779999,111.959999,109.809998,110.339996,110.339996,20386100 -2022-08-30,111.029999,111.370003,108.800003,109.910004,109.910004,20548200 -2022-08-31,111.629997,111.769997,109.050003,109.150002,109.150002,25898000 -2022-09-01,109.199997,111.220001,108.190002,110.550003,110.550003,22784400 -2022-09-02,111.339996,111.675003,108.129997,108.680000,108.680000,20618100 -2022-09-06,108.135002,108.879997,106.510002,107.480003,107.480003,20565100 -2022-09-07,107.760002,110.989998,107.614998,110.480003,110.480003,22987200 -2022-09-08,109.180000,110.580002,108.059998,109.419998,109.419998,21660700 -2022-09-09,110.050003,112.000000,110.000000,111.779999,111.779999,21732900 -2022-09-12,111.989998,112.639999,110.930000,111.870003,111.870003,19732900 -2022-09-13,108.889999,109.370003,105.000000,105.309998,105.309998,33015000 -2022-09-14,105.440002,106.099998,104.500000,105.870003,105.870003,22115800 -2022-09-15,105.010002,106.209999,103.309998,103.900002,103.900002,26494900 -2022-09-16,102.970001,104.029999,101.855003,103.629997,103.629997,64540100 -2022-09-19,102.540001,104.019997,102.370003,103.849998,103.849998,19738600 -2022-09-20,102.879997,103.169998,101.120003,101.830002,101.830002,24001700 -2022-09-21,102.239998,103.489998,99.989998,100.010002,100.010002,26596800 -2022-09-22,99.449997,101.680000,99.410004,100.570000,100.570000,21272700 -2022-09-23,100.059998,100.110001,98.010002,99.169998,99.169998,25657000 -2022-09-26,98.610001,100.440002,98.379997,98.809998,98.809998,22437900 -2022-09-27,99.910004,100.459999,97.339996,98.089996,98.089996,24225000 -2022-09-28,98.019997,101.400002,97.800003,100.739998,100.739998,24617000 -2022-09-29,99.300003,99.300003,96.519997,98.089996,98.089996,21921500 -2022-09-30,97.730003,99.494003,96.029999,96.150002,96.150002,26277800 -2022-10-03,97.220001,99.970001,97.019997,99.300003,99.300003,24840000 -2022-10-04,101.040001,102.720001,101.040001,102.410004,102.410004,22580900 -2022-10-05,100.690002,102.739998,99.739998,102.220001,102.220001,18475500 -2022-10-06,101.500000,103.730003,101.500000,102.239998,102.239998,17156200 -2022-10-07,100.650002,101.419998,99.209999,99.570000,99.570000,24249900 -2022-10-10,99.849998,99.989998,97.870003,98.709999,98.709999,16529900 -2022-10-11,98.250000,100.120003,97.250000,98.050003,98.050003,21617700 -2022-10-12,98.269997,99.648003,97.669998,98.300003,98.300003,17343400 -2022-10-13,95.930000,100.529999,95.269997,99.709999,99.709999,32812200 -2022-10-14,100.625000,101.290001,97.029999,97.180000,97.180000,22624800 -2022-10-17,99.519997,101.769997,99.510002,100.779999,100.779999,23311600 -2022-10-18,103.940002,104.220001,100.650002,101.389999,101.389999,21610500 -2022-10-19,100.699997,101.658997,99.635002,100.290001,100.290001,21573700 -2022-10-20,100.820000,103.000000,99.970001,100.529999,100.529999,25125100 -2022-10-21,98.459999,101.620003,98.230003,101.480003,101.480003,28988700 -2022-10-24,102.089996,103.099998,100.300003,102.970001,102.970001,24680800 -2022-10-25,103.300003,105.099998,103.019997,104.930000,104.930000,29910200 -2022-10-26,96.760002,98.540001,94.570000,94.820000,94.820000,71504300 -2022-10-27,94.309998,95.169998,91.900002,92.599998,92.599998,54036500 -2022-10-28,92.529999,96.860001,92.322998,96.580002,96.580002,35696900 -2022-10-31,95.779999,96.349998,94.379997,94.660004,94.660004,29868700 -2022-11-01,95.589996,96.165001,90.430000,90.500000,90.500000,43220600 -2022-11-02,90.910004,91.300003,87.010002,87.070000,87.070000,43553600 -2022-11-03,86.345001,86.550003,83.449997,83.489998,83.489998,48510400 -2022-11-04,85.510002,86.730003,83.879997,86.699997,86.699997,40173300 -2022-11-07,87.339996,88.940002,86.959999,88.650002,88.650002,26899900 -2022-11-08,89.160004,90.404999,87.650002,88.910004,88.910004,30172000 -2022-11-09,88.544998,89.489998,87.360001,87.400002,87.400002,26743900 -2022-11-10,92.339996,94.550003,91.650002,94.169998,94.169998,42371200 -2022-11-11,94.709999,97.360001,94.160004,96.730003,96.730003,30569100 -2022-11-14,95.500000,97.180000,95.112999,96.029999,96.029999,24170100 -2022-11-15,98.669998,100.419998,97.019997,98.720001,98.720001,31831000 -2022-11-16,98.019997,99.849998,97.902000,98.989998,98.989998,24660200 -2022-11-17,97.180000,99.480003,97.099998,98.500000,98.500000,21818700 -2022-11-18,99.010002,99.160004,96.739998,97.800003,97.800003,24969900 -2022-11-21,97.559998,98.720001,95.669998,95.830002,95.830002,18696900 -2022-11-22,96.160004,97.547997,94.410004,97.330002,97.330002,18868900 -2022-11-23,97.339996,99.069000,97.339996,98.820000,98.820000,17568900 -2022-11-25,98.464996,98.940002,97.529999,97.599998,97.599998,8567800 -2022-11-28,97.199997,97.830002,95.889999,96.250000,96.250000,19974500 -2022-11-29,96.000000,96.389999,94.389999,95.440002,95.440002,20220000 -2022-11-30,95.120003,101.449997,94.669998,101.449997,101.449997,39888100 -2022-12-01,101.400002,102.589996,100.669998,101.279999,101.279999,21771500 -2022-12-02,99.370003,101.150002,99.169998,100.830002,100.830002,18821500 -2022-12-05,99.815002,101.750000,99.355003,99.870003,99.870003,19955500 -2022-12-06,99.669998,100.209999,96.760002,97.309998,97.309998,20877600 -2022-12-07,96.769997,97.309998,95.025002,95.150002,95.150002,26647900 -2022-12-08,95.690002,95.870003,93.800003,93.949997,93.949997,25593200 -2022-12-09,93.900002,94.489998,93.019997,93.070000,93.070000,21885300 -2022-12-12,93.089996,93.875000,91.900002,93.559998,93.559998,27380900 -2022-12-13,98.070000,99.800003,95.379997,95.849998,95.849998,34788500 -2022-12-14,95.540001,97.220001,93.940002,95.309998,95.309998,26452900 -2022-12-15,93.540001,94.029999,90.430000,91.199997,91.199997,28298800 -2022-12-16,91.199997,91.750000,90.010002,90.860001,90.860001,48485500 -2022-12-19,90.879997,91.199997,88.925003,89.150002,89.150002,23020500 -2022-12-20,88.730003,89.779999,88.040001,89.629997,89.629997,21976800 -2022-12-21,89.730003,90.915001,88.910004,90.250000,90.250000,20336400 -2022-12-22,88.930000,89.180000,86.940002,88.260002,88.260002,23656100 -2022-12-23,87.620003,90.099998,87.620003,89.809998,89.809998,17815000 -2022-12-27,89.309998,89.500000,87.535004,87.930000,87.930000,15470900 -2022-12-28,87.500000,88.519997,86.370003,86.459999,86.459999,17879600 -2022-12-29,87.029999,89.364998,86.989998,88.949997,88.949997,18280700 -2022-12-30,87.364998,88.830002,87.029999,88.730003,88.730003,19190300 -2023-01-03,89.830002,91.550003,89.019997,89.699997,89.699997,20738500 -2023-01-04,91.010002,91.239998,87.800003,88.709999,88.709999,27046500 -2023-01-05,88.070000,88.209999,86.559998,86.769997,86.769997,23136100 -2023-01-06,87.360001,88.470001,85.570000,88.160004,88.160004,26612600 -2023-01-09,89.195000,90.830002,88.580002,88.800003,88.800003,22996700 -2023-01-10,86.720001,89.474998,86.699997,89.239998,89.239998,22855600 -2023-01-11,90.059998,92.449997,89.739998,92.260002,92.260002,25998800 -2023-01-12,92.400002,92.620003,90.570000,91.910004,91.910004,22754200 -2023-01-13,91.528000,92.980003,90.930000,92.800003,92.800003,18630700 -2023-01-17,92.779999,92.970001,90.839996,92.160004,92.160004,22935800 -2023-01-18,92.940002,93.587997,91.400002,91.779999,91.779999,19641600 -2023-01-19,91.389999,94.400002,91.379997,93.910004,93.910004,28707700 -2023-01-20,95.949997,99.419998,95.910004,99.279999,99.279999,53704800 -2023-01-23,99.129997,101.400002,98.750000,101.209999,101.209999,31791800 -2023-01-24,99.550003,101.089996,98.699997,99.209999,99.209999,27391400 -2023-01-25,97.199997,97.720001,95.262001,96.730003,96.730003,31000900 -2023-01-26,98.279999,99.209999,96.820000,99.160004,99.160004,24542100 -2023-01-27,99.050003,101.580002,98.970001,100.709999,100.709999,29020400 -2023-01-30,98.745003,99.408997,97.519997,97.949997,97.949997,24365100 -2023-01-31,97.860001,99.910004,97.790001,99.870003,99.870003,22306800 -2023-02-01,99.739998,102.190002,98.419998,101.430000,101.430000,26392600 -2023-02-02,106.790001,108.820000,106.540001,108.800003,108.800003,46622600 -2023-02-03,103.510002,108.019997,103.300003,105.220001,105.220001,36823400 -2023-02-06,102.684998,104.699997,102.209999,103.470001,103.470001,25573000 -2023-02-07,103.629997,108.669998,103.547997,108.040001,108.040001,33738800 -2023-02-08,102.690002,103.580002,98.455002,100.000000,100.000000,73546000 -2023-02-09,100.540001,100.610001,93.860001,95.459999,95.459999,97798600 -2023-02-10,95.739998,97.019997,94.529999,94.860001,94.860001,49325300 -2023-02-13,95.010002,95.349998,94.050003,95.000000,95.000000,43116600 -2023-02-14,94.660004,95.175003,92.650002,94.949997,94.949997,42513100 -2023-02-15,94.739998,97.339996,94.360001,97.099998,97.099998,36964500 -2023-02-16,95.540001,97.879997,94.970001,95.779999,95.779999,35642100 -2023-02-17,95.070000,95.750000,93.449997,94.589996,94.589996,31095100 -2023-02-21,93.239998,93.415001,92.000000,92.050003,92.050003,28367200 -2023-02-22,91.933998,92.360001,90.870003,91.800003,91.800003,29891100 -2023-02-23,92.129997,92.129997,90.010002,91.070000,91.070000,32423700 -2023-02-24,89.629997,90.129997,88.860001,89.349998,89.349998,31295600 -2023-02-27,90.089996,90.449997,89.610001,90.099998,90.099998,22724300 -2023-02-28,89.540001,91.449997,89.519997,90.300003,90.300003,30546900 -2023-03-01,90.160004,91.199997,89.849998,90.510002,90.510002,26323900 -2023-03-02,89.860001,92.480003,89.769997,92.309998,92.309998,23328600 -2023-03-03,92.739998,94.110001,92.660004,94.019997,94.019997,30242500 -2023-03-06,94.360001,96.300003,94.300003,95.580002,95.580002,28288200 -2023-03-07,95.419998,96.089996,93.844002,94.169998,94.169998,24101500 -2023-03-08,94.404999,96.239998,94.404999,94.650002,94.650002,25395200 -2023-03-09,94.489998,95.919998,92.355003,92.660004,92.660004,24438900 -2023-03-10,92.500000,93.180000,90.800003,91.010002,91.010002,32850100 -2023-03-13,90.565002,93.080002,89.940002,91.660004,91.660004,31508600 -2023-03-14,93.070000,94.830002,92.779999,94.250000,94.250000,32303900 -2023-03-15,93.540001,97.250000,93.040001,96.550003,96.550003,38367300 -2023-03-16,96.570000,101.970001,95.870003,101.070000,101.070000,54499500 -2023-03-17,100.839996,103.489998,100.750000,102.459999,102.459999,76140300 -2023-03-20,101.059998,102.580002,100.790001,101.930000,101.930000,26033900 -2023-03-21,101.980003,105.959999,101.860001,105.839996,105.839996,33122800 -2023-03-22,105.139999,107.510002,104.209999,104.220001,104.220001,32336900 -2023-03-23,105.889999,107.100998,105.410004,106.260002,106.260002,31385800 -2023-03-24,105.739998,106.160004,104.739998,106.059998,106.059998,25236200 -2023-03-27,105.320000,105.400002,102.629997,103.059998,103.059998,25393400 -2023-03-28,103.000000,103.000000,100.279999,101.360001,101.360001,24913500 -2023-03-29,102.720001,102.820000,101.029999,101.900002,101.900002,26148300 -2023-03-30,101.440002,101.610001,100.290001,101.320000,101.320000,25009800 -2023-03-31,101.709999,104.190002,101.440002,104.000000,104.000000,28108000 -2023-04-03,102.669998,104.949997,102.379997,104.910004,104.910004,20719900 -2023-04-04,104.839996,106.099998,104.599998,105.120003,105.120003,20377200 -2023-04-05,106.120003,106.540001,104.101997,104.949997,104.949997,21864200 -2023-04-06,105.769997,109.629997,104.815002,108.900002,108.900002,34684200 -2023-04-10,107.389999,107.970001,105.599998,106.949997,106.949997,19741500 -2023-04-11,106.919998,107.220001,105.279999,106.120003,106.120003,18721300 -2023-04-12,107.389999,107.586998,104.970001,105.220001,105.220001,22761600 -2023-04-13,106.470001,108.264999,106.440002,108.190002,108.190002,21650700 -2023-04-14,107.690002,109.580002,107.589996,109.459999,109.459999,20758700 -2023-04-17,105.430000,106.709999,105.320000,106.419998,106.419998,29043400 -2023-04-18,107.000000,107.050003,104.779999,105.120003,105.120003,17641400 -2023-04-19,104.214996,105.724998,103.800003,105.019997,105.019997,16732000 -2023-04-20,104.650002,106.888000,104.639999,105.900002,105.900002,22515300 -2023-04-21,106.089996,106.639999,105.485001,105.910004,105.910004,22379000 -2023-04-24,106.050003,107.320000,105.360001,106.779999,106.779999,21410900 -2023-04-25,106.610001,107.440002,104.559998,104.610001,104.610001,31408100 -2023-04-26,105.559998,107.019997,103.269997,104.449997,104.449997,37068200 -2023-04-27,105.230003,109.150002,104.419998,108.370003,108.370003,38235200 -2023-04-28,107.800003,108.290001,106.040001,108.220001,108.220001,23957900 -2023-05-01,107.720001,108.680000,107.500000,107.709999,107.709999,20926300 -2023-05-02,107.660004,107.730003,104.500000,105.980003,105.980003,20343100 -2023-05-03,106.220001,108.129997,105.620003,106.120003,106.120003,17116300 -2023-05-04,106.160004,106.300003,104.699997,105.209999,105.209999,19780600 -2023-05-05,105.320000,106.440002,104.738998,106.214996,106.214996,20705300 -2023-05-08,105.794998,108.419998,105.790001,108.239998,108.239998,17266000 -2023-05-09,108.779999,110.595001,107.724998,107.940002,107.940002,24782400 -2023-05-10,108.550003,113.510002,108.480003,112.279999,112.279999,47533500 -2023-05-11,115.860001,118.440002,114.930000,116.900002,116.900002,57115100 -2023-05-12,117.000000,118.260002,116.550003,117.919998,117.919998,31272500 -2023-05-15,116.489998,118.794998,116.480003,116.959999,116.959999,22107900 -2023-05-16,116.830002,121.199997,116.830002,120.089996,120.089996,32370100 -2023-05-17,120.180000,122.279999,119.459999,121.480003,121.480003,26659600 -2023-05-18,121.559998,123.900002,121.489998,123.519997,123.519997,27014500 -2023-05-19,124.199997,126.478996,122.720001,123.250000,123.250000,30251300 -2023-05-22,123.510002,127.050003,123.449997,125.870003,125.870003,29760200 -2023-05-23,124.930000,125.419998,123.050003,123.290001,123.290001,24477900 -2023-05-24,121.879997,122.750000,120.750000,121.639999,121.639999,23087900 -2023-05-25,125.209999,125.980003,122.900002,124.349998,124.349998,33812700 -2023-05-26,124.065002,126.000000,123.290001,125.430000,125.430000,25154700 -2023-05-30,126.290001,126.379997,122.889999,124.639999,124.639999,27230700 -2023-05-31,123.699997,124.900002,123.099998,123.370003,123.370003,41548800 -2023-06-01,123.500000,125.040001,123.300003,124.370003,124.370003,25017700 -2023-06-02,124.489998,126.745003,124.349998,125.230003,125.230003,19362400 -2023-06-05,124.610001,127.989998,124.379997,126.629997,126.629997,22672500 -2023-06-06,126.599998,128.880005,125.970001,127.910004,127.910004,19450100 -2023-06-07,127.574997,129.550003,122.629997,122.940002,122.940002,34179300 -2023-06-08,122.584999,123.730003,122.010002,122.669998,122.669998,24815000 -2023-06-09,122.559998,124.285004,122.419998,122.870003,122.870003,20304500 -2023-06-12,123.394997,124.750000,122.349998,124.349998,124.349998,22255700 -2023-06-13,125.650002,125.860001,123.845001,124.430000,124.430000,19287700 -2023-06-14,123.800003,124.790001,122.160004,124.379997,124.379997,24659600 -2023-06-15,123.879997,126.160004,123.139999,125.790001,125.790001,24517100 -2023-06-16,126.699997,126.699997,123.790001,124.059998,124.059998,56686800 -2023-06-20,123.535004,125.175003,122.830002,123.849998,123.849998,22698000 -2023-06-21,123.235001,123.410004,120.860001,121.260002,121.260002,22612000 -2023-06-22,120.660004,123.934998,119.599998,123.870003,123.870003,20781900 -2023-06-23,122.040001,123.440002,121.860001,123.019997,123.019997,29542900 -2023-06-26,121.466003,122.720001,118.989998,119.089996,119.089996,23185000 -2023-06-27,117.839996,119.894997,116.910004,119.010002,119.010002,27221700 -2023-06-28,117.959999,121.269997,117.599998,121.080002,121.080002,19753100 -2023-06-29,120.089996,120.910004,119.209999,120.010002,120.010002,18517500 -2023-06-30,121.099998,122.029999,120.879997,120.970001,120.970001,23865800 -2023-07-03,120.320000,121.019997,119.705002,120.559998,120.559998,13888300 -2023-07-05,120.059998,123.370003,120.059998,122.629997,122.629997,17830300 -2023-07-06,120.639999,121.150002,119.250000,120.930000,120.930000,17732500 -2023-07-07,120.889999,121.750000,120.089996,120.139999,120.139999,20982400 -2023-07-10,119.070000,119.070000,116.639999,116.870003,116.870003,32960100 -2023-07-11,116.760002,118.224998,115.830002,117.709999,117.709999,18286600 -2023-07-12,119.300003,120.959999,119.000000,119.620003,119.620003,22059600 -2023-07-13,121.540001,125.334999,121.059998,124.830002,124.830002,31535900 -2023-07-14,125.129997,127.089996,124.900002,125.699997,125.699997,20482800 -2023-07-17,126.059998,127.279999,124.500000,125.059998,125.059998,20675300 -2023-07-18,124.904999,124.989998,123.300003,124.080002,124.080002,21071200 -2023-07-19,124.790001,125.470001,122.470001,122.779999,122.779999,22313800 -2023-07-20,122.120003,124.699997,118.684998,119.529999,119.529999,27541700 -2023-07-21,120.870003,121.300003,119.070000,120.309998,120.309998,56498100 -2023-07-24,121.926003,123.349998,121.379997,121.879997,121.879997,22276100 -2023-07-25,121.879997,123.690002,121.529999,122.790001,122.790001,31820800 -2023-07-26,130.360001,131.369995,128.710007,129.660004,129.660004,46216900 -2023-07-27,131.800003,133.600006,129.179993,129.869995,129.869995,35931600 -2023-07-28,130.970001,134.070007,130.919998,133.009995,133.009995,26971000 -2023-07-31,133.009995,133.830002,132.130005,133.110001,133.110001,18381900 -2023-08-01,130.854996,132.919998,130.750000,131.889999,131.889999,22154300 -2023-08-02,129.839996,130.419998,127.849998,128.639999,128.639999,22705800 -2023-08-03,128.369995,129.770004,127.775002,128.770004,128.770004,15018100 -2023-08-04,129.600006,131.929993,128.315002,128.539993,128.539993,20509500 -2023-08-07,129.509995,132.059998,129.429993,131.940002,131.940002,17621000 -2023-08-08,130.979996,131.940002,130.130005,131.839996,131.839996,16836000 -2023-08-09,132.190002,132.470001,129.505005,130.149994,130.149994,17745200 -2023-08-10,131.970001,132.647003,130.035004,130.210007,130.210007,17855700 -2023-08-11,129.201996,130.440002,128.750000,130.169998,130.169998,15191500 -2023-08-14,129.850006,131.910004,129.589996,131.830002,131.830002,17526200 -2023-08-15,131.589996,131.990005,129.819000,130.270004,130.270004,14769200 -2023-08-16,129.279999,130.897995,128.460007,129.110001,129.110001,17548400 -2023-08-17,130.449997,132.490997,129.850006,130.460007,130.460007,23665600 -2023-08-18,129.059998,129.830002,127.000000,128.110001,128.110001,23619400 -2023-08-21,127.849998,129.259995,127.160004,128.929993,128.929993,21851100 -2023-08-22,129.130005,130.949997,128.925003,129.690002,129.690002,15569400 -2023-08-23,130.850006,134.070007,130.509995,133.210007,133.210007,26497000 -2023-08-24,134.727005,134.970001,130.300003,130.419998,130.419998,18680400 -2023-08-25,130.139999,131.399994,128.039993,130.690002,130.690002,20678100 -2023-08-28,132.080002,133.240005,130.850006,131.789993,131.789993,16715500 -2023-08-29,132.998001,137.294998,132.979996,135.490005,135.490005,30803300 -2023-08-30,135.570007,137.250000,135.020996,136.929993,136.929993,21773400 -2023-08-31,137.050003,138.399994,136.820007,137.350006,137.350006,28147900 -2023-09-01,138.429993,138.580002,135.940002,136.800003,136.800003,16665700 -2023-09-05,136.440002,137.369995,135.559998,136.710007,136.710007,17730200 -2023-09-06,137.014999,137.479996,134.690002,135.369995,135.369995,15814300 -2023-09-07,134.600006,136.580002,133.960007,136.199997,136.199997,16976000 -2023-09-08,135.869995,137.514999,135.869995,137.199997,137.199997,17810700 -2023-09-11,137.380005,138.264008,136.550003,137.740005,137.740005,17180800 -2023-09-12,137.130005,137.639999,135.929993,136.070007,136.070007,15212900 -2023-09-13,135.899994,137.699997,134.929993,137.500000,137.500000,16394900 -2023-09-14,138.389999,139.550003,137.059998,138.990005,138.990005,19064600 -2023-09-15,138.800003,139.360001,137.179993,138.300003,138.300003,48947600 -2023-09-18,137.630005,139.929993,137.630005,138.960007,138.960007,16233600 -2023-09-19,138.250000,139.175003,137.500000,138.830002,138.830002,15479100 -2023-09-20,138.830002,138.839996,134.520004,134.589996,134.589996,21473500 -2023-09-21,132.389999,133.190002,131.089996,131.360001,131.360001,22042700 -2023-09-22,131.679993,133.009995,130.509995,131.250000,131.250000,17348700 -2023-09-25,130.770004,132.220001,130.029999,132.169998,132.169998,14650000 -2023-09-26,130.914001,131.404999,128.190002,129.449997,129.449997,20378800 -2023-09-27,129.440002,131.720001,129.380005,131.460007,131.460007,18764200 -2023-09-28,130.690002,134.179993,130.690002,133.130005,133.130005,18201400 -2023-09-29,134.080002,134.889999,131.320007,131.850006,131.850006,23224200 -2023-10-02,132.154999,135.360001,132.065002,135.169998,135.169998,19210400 -2023-10-03,134.929993,135.240005,132.815002,133.300003,133.300003,19628700 -2023-10-04,133.660004,136.570007,133.429993,136.270004,136.270004,22848000 -2023-10-05,136.130005,136.500000,134.455002,135.990005,135.990005,15922900 -2023-10-06,134.940002,139.186005,134.940002,138.729996,138.729996,20819300 -2023-10-09,137.990005,139.970001,136.699997,139.500000,139.500000,16599100 -2023-10-10,139.509995,140.740005,138.429993,139.199997,139.199997,19554900 -2023-10-11,139.850006,142.220001,139.839996,141.699997,141.699997,19203633 \ No newline at end of file diff --git a/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/fixedsizelist/CircularBufferFixedSizeList.scala b/scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung/fixedsizelist/CircularBufferFixedSizeList.scala similarity index 100% rename from scala-core-collections-3/src/main/scala-2/com/baeldung/scala/fixedsizelist/CircularBufferFixedSizeList.scala rename to scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung/fixedsizelist/CircularBufferFixedSizeList.scala diff --git a/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/fixedsizelist/FixedSizeList.scala b/scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung/fixedsizelist/FixedSizeList.scala similarity index 100% rename from scala-core-collections-3/src/main/scala-2/com/baeldung/scala/fixedsizelist/FixedSizeList.scala rename to scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung/fixedsizelist/FixedSizeList.scala diff --git a/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/movingaverage/OptimizedMovingAverage.scala b/scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung/movingaverage/OptimizedMovingAverage.scala similarity index 100% rename from scala-core-collections-3/src/main/scala-2/com/baeldung/scala/movingaverage/OptimizedMovingAverage.scala rename to scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung/movingaverage/OptimizedMovingAverage.scala diff --git a/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/movingaverage/SlidingMovingAverage.scala b/scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung/movingaverage/SlidingMovingAverage.scala similarity index 100% rename from scala-core-collections-3/src/main/scala-2/com/baeldung/scala/movingaverage/SlidingMovingAverage.scala rename to scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung/movingaverage/SlidingMovingAverage.scala diff --git a/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/fixedsizelist/CircularBufferFixedSizeListSpec.scala b/scala-core-collections-modules/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/fixedsizelist/CircularBufferFixedSizeListSpec.scala similarity index 100% rename from scala-core-collections-3/src/test/scala-2/com/baeldung/scala/fixedsizelist/CircularBufferFixedSizeListSpec.scala rename to scala-core-collections-modules/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/fixedsizelist/CircularBufferFixedSizeListSpec.scala diff --git a/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/fixedsizelist/FixedSizeListSpec.scala b/scala-core-collections-modules/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/fixedsizelist/FixedSizeListSpec.scala similarity index 100% rename from scala-core-collections-3/src/test/scala-2/com/baeldung/scala/fixedsizelist/FixedSizeListSpec.scala rename to scala-core-collections-modules/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/fixedsizelist/FixedSizeListSpec.scala diff --git a/scala3-lang-3/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala b/scala-lang-modules/scala3-lang-3/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala similarity index 100% rename from scala3-lang-3/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala rename to scala-lang-modules/scala3-lang-3/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala From 04c3b1460bd9016ac00622bd7e25ce34f26990e2 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Thu, 23 Nov 2023 16:37:50 +0100 Subject: [PATCH 0140/1318] fixed compilation error --- .../OptimizedMovingAverage.scala | 46 ------------------ .../movingaverage/SlidingMovingAverage.scala | 48 ------------------- .../CircularBufferFixedSizeList.scala | 0 .../fixedsizelist/FixedSizeList.scala | 0 4 files changed, 94 deletions(-) delete mode 100644 scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung/movingaverage/OptimizedMovingAverage.scala delete mode 100644 scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung/movingaverage/SlidingMovingAverage.scala rename scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung/{ => scala}/fixedsizelist/CircularBufferFixedSizeList.scala (100%) rename scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung/{ => scala}/fixedsizelist/FixedSizeList.scala (100%) diff --git a/scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung/movingaverage/OptimizedMovingAverage.scala b/scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung/movingaverage/OptimizedMovingAverage.scala deleted file mode 100644 index 58d279a21..000000000 --- a/scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung/movingaverage/OptimizedMovingAverage.scala +++ /dev/null @@ -1,46 +0,0 @@ -package com.baeldung.scala.movingaverage - -import scala.collection.immutable.Queue -import scala.io.Source - -object OptimizedMovingAverage { - def main(args: Array[String]): Unit = { - val stream = getClass.getResourceAsStream("/GOOG.csv") - val lines = Source.fromInputStream(stream).getLines().drop(1) - val stockPrices = lines.map { line => - val Array(date, _, _, _, _, close, _) = line.split(",") - StockPrice(date, close.toDouble) - }.toList - - val windowSize = 30 - - val optimizedSMA = stockPrices - .foldLeft((Queue.empty[Double], List.empty[StockPrice], 0.0)) { - case ((queue, averages, sum), StockPrice(date, price)) => - val newQueue = queue.enqueue(price) - val newSum = sum + price - - if (newQueue.size > windowSize) { - val (oldest, remainingQueue) = newQueue.dequeue - val newAverage = (newSum - oldest) / windowSize - ( - remainingQueue, - StockPrice(date, newAverage) :: averages, - newSum - oldest - ) - } else if (newQueue.size == windowSize) { - val newAverage = newSum / windowSize - (newQueue, StockPrice(date, newAverage) :: averages, newSum) - } else { - (newQueue, averages, newSum) - } - } - ._2 - .reverse - - println("Optimized 30-day Simple Moving Averages:") - optimizedSMA.foreach { case StockPrice(date, average) => - println(s"$date: $average") - } - } -} diff --git a/scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung/movingaverage/SlidingMovingAverage.scala b/scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung/movingaverage/SlidingMovingAverage.scala deleted file mode 100644 index d70581e41..000000000 --- a/scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung/movingaverage/SlidingMovingAverage.scala +++ /dev/null @@ -1,48 +0,0 @@ -package com.baeldung.scala.movingaverage - -case class StockPrice(date: String, price: Double) - -object SlidingMovingAverage extends App { - - // Sample stock prices - val stockPrices = List( - StockPrice("2021-01-01", 1.2), - StockPrice("2021-01-02", 1.3), - StockPrice("2021-01-03", 1.4), - StockPrice("2021-01-04", 1.5), - StockPrice("2021-01-05", 1.6) - ) - - val windowSize = 3 - - // Simple Moving Average (SMA) - val sma = stockPrices - .sliding(windowSize) - .map { window => - val average = window.map(_.price).sum / window.size - val lastDate = window.last.date - StockPrice(lastDate, average) - } - .toList - - // Weighted Moving Average (WMA) - val weights = List(0.1, 0.2, 0.7) - val wma = stockPrices - .sliding(windowSize) - .map { window => - val weightedSum = (window.map(_.price) zip weights).map { - case (price, weight) => - price * weight - }.sum - val lastDate = window.last.date - StockPrice(lastDate, weightedSum) - } - .toList - - // Output the results - println("Simple Moving Average:") - sma.foreach(println) - - println("\nWeighted Moving Average:") - wma.foreach(println) -} diff --git a/scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung/fixedsizelist/CircularBufferFixedSizeList.scala b/scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/fixedsizelist/CircularBufferFixedSizeList.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung/fixedsizelist/CircularBufferFixedSizeList.scala rename to scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/fixedsizelist/CircularBufferFixedSizeList.scala diff --git a/scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung/fixedsizelist/FixedSizeList.scala b/scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/fixedsizelist/FixedSizeList.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung/fixedsizelist/FixedSizeList.scala rename to scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/fixedsizelist/FixedSizeList.scala From 8dc5b4afdd906a57dbf27e721c029abd0192595b Mon Sep 17 00:00:00 2001 From: edizor <113095366+edizor@users.noreply.github.com> Date: Fri, 24 Nov 2023 22:24:25 +0800 Subject: [PATCH 0141/1318] Create README.md [skip ci] --- scala3-lang-3/README.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 scala3-lang-3/README.md diff --git a/scala3-lang-3/README.md b/scala3-lang-3/README.md new file mode 100644 index 000000000..6c6df2ec9 --- /dev/null +++ b/scala3-lang-3/README.md @@ -0,0 +1,2 @@ +## Relevant Articles +- [Immutable Arrays in Scala 3 Using IArray](https://www.baeldung.com/scala/iarray-immutable-arrays) From c2393409aac2e98ba9ffeda215143ba9935db4cb Mon Sep 17 00:00:00 2001 From: edizor <113095366+edizor@users.noreply.github.com> Date: Fri, 24 Nov 2023 22:32:57 +0800 Subject: [PATCH 0142/1318] Update README.md [skip ci] --- cats-effects/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/cats-effects/README.md b/cats-effects/README.md index 98d8ae4c0..8c485c217 100644 --- a/cats-effects/README.md +++ b/cats-effects/README.md @@ -5,3 +5,4 @@ - [Difference Between delay, defer, and deferred in Cats Effect](https://www.baeldung.com/scala/cats-effect-delay-defer-vs-deferred) - [Resource Handling in Cats Effect](https://www.baeldung.com/scala/cats-effect-resource-handling) - [Difference Between flatMap(), flatTap(), evalMap() and evalTap() in Cats Effect](https://www.baeldung.com/scala/cats-effect) +- [Error Handling in Cats Effect](https://www.baeldung.com/scala/cats-effect-error-handling) From 7a0aa645ca0771ec9c6838ccf08937a302e84d86 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 26 Nov 2023 20:28:55 +0000 Subject: [PATCH 0143/1318] Update aws-java-sdk-s3 from 1.12.592 to 1.12.595 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 99fccda93..993f3837c 100644 --- a/build.sbt +++ b/build.sbt @@ -377,7 +377,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "software.amazon.awssdk" % "s3" % "2.21.26" ), libraryDependencies ++= Seq( - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.592" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.595" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.0" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.0" % IntegrationTest ), From 52202955fb16c9459b4f1d7754a4438578f60509 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 26 Nov 2023 20:29:06 +0000 Subject: [PATCH 0144/1318] Update play-slick, play-slick-evolutions from 5.2.0 to 6.0.0 --- build.sbt | 2 +- play-scala/application-tests/build.sbt | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index 99fccda93..2ddff0c2b 100644 --- a/build.sbt +++ b/build.sbt @@ -290,7 +290,7 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) "com.beachape" %% "enumeratum" % "1.7.3" ), libraryDependencies ++= Seq( - "com.typesafe.play" %% "play-slick" % "5.2.0", + "org.playframework" %% "play-slick" % "6.0.0", "org.postgresql" % "postgresql" % "42.6.0" ), libraryDependencies ++= Seq( diff --git a/play-scala/application-tests/build.sbt b/play-scala/application-tests/build.sbt index fab03cc48..a20452e62 100644 --- a/play-scala/application-tests/build.sbt +++ b/play-scala/application-tests/build.sbt @@ -10,7 +10,7 @@ scalaVersion := ScalaVersions.scala2Version libraryDependencies += guice libraryDependencies += "com.h2database" % "h2" % "1.4.200" libraryDependencies += "org.postgresql" % "postgresql" % "42.2.27" -libraryDependencies += "com.typesafe.play" %% "play-slick" % "5.2.0" -libraryDependencies += "com.typesafe.play" %% "play-slick-evolutions" % "5.2.0" +libraryDependencies += "org.playframework" %% "play-slick" % "6.0.0" +libraryDependencies += "org.playframework" %% "play-slick-evolutions" % "6.0.0" libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.0" % Test libraryDependencies += "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % Test From 1a41b9f70a76cf71552e363faf2eb5d7644da48d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 26 Nov 2023 20:29:19 +0000 Subject: [PATCH 0145/1318] Update sbt-twirl, twirl-api from 1.6.3 to 2.0.2 --- scalatra/project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scalatra/project/plugins.sbt b/scalatra/project/plugins.sbt index 7d53349c3..b730f99b9 100644 --- a/scalatra/project/plugins.sbt +++ b/scalatra/project/plugins.sbt @@ -1,3 +1,3 @@ -addSbtPlugin("com.typesafe.play" % "sbt-twirl" % "1.6.3") +addSbtPlugin("org.playframework.twirl" % "sbt-twirl" % "2.0.2") addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "4.2.4") libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always From dcc426141f23cf45c4a8b8f0da5e7cb96834aec5 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 26 Nov 2023 20:29:35 +0000 Subject: [PATCH 0146/1318] Update de.flapdoodle.embed.mongo from 4.10.2 to 4.11.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 99fccda93..fc5d844b3 100644 --- a/build.sbt +++ b/build.sbt @@ -10,7 +10,7 @@ val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.2" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.2" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV val logback = "ch.qos.logback" % "logback-classic" % "1.4.11" -val embedMongoVersion = "4.10.2" +val embedMongoVersion = "4.11.1" val scalaTestDeps = Seq( "org.scalatest" %% "scalatest" % "3.2.17" % Test, From 3f62c723e70035e148b2804a9ce4b42c37bdbcae Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 26 Nov 2023 20:29:46 +0000 Subject: [PATCH 0147/1318] Update log4j-core from 2.21.1 to 2.22.0 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 99fccda93..a39a1068c 100644 --- a/build.sbt +++ b/build.sbt @@ -335,7 +335,7 @@ lazy val scala_libraries_3 = (project in file("scala-libraries-3")) libraryDependencies += "com.softwaremill.retry" %% "retry" % "0.3.6", libraryDependencies ++= Seq( "org.apache.logging.log4j" %% "log4j-api-scala" % "13.0.0", - "org.apache.logging.log4j" % "log4j-core" % "2.21.1" % Runtime + "org.apache.logging.log4j" % "log4j-core" % "2.22.0" % Runtime ), libraryDependencies += "com.lihaoyi" %% "os-lib" % osLibVersion ) @@ -346,7 +346,7 @@ lazy val scala_libraries_os = (project in file("scala-libraries-os")) libraryDependencies ++= scalaTestDeps, libraryDependencies ++= Seq( "org.apache.logging.log4j" %% "log4j-api-scala" % "13.0.0", - "org.apache.logging.log4j" % "log4j-core" % "2.21.1" % Runtime + "org.apache.logging.log4j" % "log4j-core" % "2.22.0" % Runtime ), libraryDependencies += "com.lihaoyi" %% "os-lib" % osLibVersion ) From 1352a3bbea54fdb47d3a1c39df781ce67cc02499 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 26 Nov 2023 20:30:02 +0000 Subject: [PATCH 0148/1318] Update mockito-scala_2.13 from 1.17.29 to 1.17.30 --- play-scala/configuration-access/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/play-scala/configuration-access/build.sbt b/play-scala/configuration-access/build.sbt index 0962fad04..d4d2c1d59 100644 --- a/play-scala/configuration-access/build.sbt +++ b/play-scala/configuration-access/build.sbt @@ -9,7 +9,7 @@ scalaVersion := ScalaVersions.scala2Version libraryDependencies += guice libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.0" % Test -libraryDependencies += "org.mockito" % "mockito-scala_2.13" % "1.17.29" % Test +libraryDependencies += "org.mockito" % "mockito-scala_2.13" % "1.17.30" % Test // Adds additional packages into Twirl //TwirlKeys.templateImports += "com.baeldung.controllers._" From 13b289f3ae26ee5a38e23565bf91baf423b71dfa Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 26 Nov 2023 20:30:19 +0000 Subject: [PATCH 0149/1318] Update postgresql from 42.6.0 to 42.7.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 99fccda93..7c6f46822 100644 --- a/build.sbt +++ b/build.sbt @@ -291,7 +291,7 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) ), libraryDependencies ++= Seq( "com.typesafe.play" %% "play-slick" % "5.2.0", - "org.postgresql" % "postgresql" % "42.6.0" + "org.postgresql" % "postgresql" % "42.7.0" ), libraryDependencies ++= Seq( "io.monix" %% "monix" % monixVersion From d19b0b606ec1b370c6e794a1f437ab863a2283a3 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 26 Nov 2023 20:30:38 +0000 Subject: [PATCH 0150/1318] Update pulsar from 1.19.2 to 1.19.3 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 99fccda93..dcb42b282 100644 --- a/build.sbt +++ b/build.sbt @@ -371,7 +371,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) libraryDependencies ++= Seq( "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.9.0", "com.clever-cloud.pulsar4s" %% "pulsar4s-jackson" % "2.9.0", - "org.testcontainers" % "pulsar" % "1.19.2" % IntegrationTest + "org.testcontainers" % "pulsar" % "1.19.3" % IntegrationTest ), libraryDependencies ++= Seq( "software.amazon.awssdk" % "s3" % "2.21.26" From 980ab82b06ab6b0b6ecf78248e1fa3c19e964e5a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 26 Nov 2023 20:31:05 +0000 Subject: [PATCH 0151/1318] Update skunk-core from 0.6.1 to 0.6.2 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 99fccda93..2bc556df9 100644 --- a/build.sbt +++ b/build.sbt @@ -363,7 +363,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) libraryDependencies ++= Seq( "org.scala-lang.modules" %% "scala-async" % "1.0.1", scalaReflection % Provided, - "org.tpolecat" %% "skunk-core" % "0.6.1", + "org.tpolecat" %% "skunk-core" % "0.6.2", logback, "com.typesafe.scala-logging" %% "scala-logging" % "3.9.5", "org.typelevel" %% "cats-core" % "2.10.0" From a6e358ffc67fe26fac0474c4d4c6b31343dbd0e5 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 26 Nov 2023 20:31:21 +0000 Subject: [PATCH 0152/1318] Update s3 from 2.21.26 to 2.21.29 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 99fccda93..3a2072209 100644 --- a/build.sbt +++ b/build.sbt @@ -374,7 +374,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "org.testcontainers" % "pulsar" % "1.19.2" % IntegrationTest ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "s3" % "2.21.26" + "software.amazon.awssdk" % "s3" % "2.21.29" ), libraryDependencies ++= Seq( "com.amazonaws" % "aws-java-sdk-s3" % "1.12.592" % IntegrationTest, From 96483570e8fe42117ab7d13f0423885344780842 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 27 Nov 2023 00:15:11 +0000 Subject: [PATCH 0153/1318] Revert commit(s) 52202955 --- build.sbt | 2 +- play-scala/application-tests/build.sbt | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index 2ddff0c2b..99fccda93 100644 --- a/build.sbt +++ b/build.sbt @@ -290,7 +290,7 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) "com.beachape" %% "enumeratum" % "1.7.3" ), libraryDependencies ++= Seq( - "org.playframework" %% "play-slick" % "6.0.0", + "com.typesafe.play" %% "play-slick" % "5.2.0", "org.postgresql" % "postgresql" % "42.6.0" ), libraryDependencies ++= Seq( diff --git a/play-scala/application-tests/build.sbt b/play-scala/application-tests/build.sbt index a20452e62..fab03cc48 100644 --- a/play-scala/application-tests/build.sbt +++ b/play-scala/application-tests/build.sbt @@ -10,7 +10,7 @@ scalaVersion := ScalaVersions.scala2Version libraryDependencies += guice libraryDependencies += "com.h2database" % "h2" % "1.4.200" libraryDependencies += "org.postgresql" % "postgresql" % "42.2.27" -libraryDependencies += "org.playframework" %% "play-slick" % "6.0.0" -libraryDependencies += "org.playframework" %% "play-slick-evolutions" % "6.0.0" +libraryDependencies += "com.typesafe.play" %% "play-slick" % "5.2.0" +libraryDependencies += "com.typesafe.play" %% "play-slick-evolutions" % "5.2.0" libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.0" % Test libraryDependencies += "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % Test From 1552034577fdc4544c6a81b24cbac4c23105f9c7 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 27 Nov 2023 00:15:20 +0000 Subject: [PATCH 0154/1318] Update play-slick, play-slick-evolutions from 5.2.0 to 6.0.0 --- build.sbt | 2 +- play-scala/application-tests/build.sbt | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index 1b00187a8..c74c3b60c 100644 --- a/build.sbt +++ b/build.sbt @@ -290,7 +290,7 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) "com.beachape" %% "enumeratum" % "1.7.3" ), libraryDependencies ++= Seq( - "com.typesafe.play" %% "play-slick" % "5.2.0", + "org.playframework" %% "play-slick" % "6.0.0", "org.postgresql" % "postgresql" % "42.7.0" ), libraryDependencies ++= Seq( diff --git a/play-scala/application-tests/build.sbt b/play-scala/application-tests/build.sbt index fab03cc48..a20452e62 100644 --- a/play-scala/application-tests/build.sbt +++ b/play-scala/application-tests/build.sbt @@ -10,7 +10,7 @@ scalaVersion := ScalaVersions.scala2Version libraryDependencies += guice libraryDependencies += "com.h2database" % "h2" % "1.4.200" libraryDependencies += "org.postgresql" % "postgresql" % "42.2.27" -libraryDependencies += "com.typesafe.play" %% "play-slick" % "5.2.0" -libraryDependencies += "com.typesafe.play" %% "play-slick-evolutions" % "5.2.0" +libraryDependencies += "org.playframework" %% "play-slick" % "6.0.0" +libraryDependencies += "org.playframework" %% "play-slick-evolutions" % "6.0.0" libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.0" % Test libraryDependencies += "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % Test From b6e51ae076358d5ee5079b4804da6efa60656be6 Mon Sep 17 00:00:00 2001 From: Loredana Crusoveanu Date: Tue, 28 Nov 2023 11:40:16 +0200 Subject: [PATCH 0155/1318] Update README.md --- .../scala-core-collections-3/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scala-core-collections-modules/scala-core-collections-3/README.md b/scala-core-collections-modules/scala-core-collections-3/README.md index 4514848fa..43a65870b 100644 --- a/scala-core-collections-modules/scala-core-collections-3/README.md +++ b/scala-core-collections-modules/scala-core-collections-3/README.md @@ -1,7 +1,7 @@ +## Relevant Articles + - [Guide to Scala Collections](https://www.baeldung.com/scala/collections) - [Guide to Scala ListMap](https://www.baeldung.com/scala/listmap) - -## Relevant Articles - [Get a List Item by Index in Scala](https://www.baeldung.com/scala/list-get-item-by-index) - [Moving Averages in Scala: A Tale of Two Approaches](https://www.baeldung.com/scala/moving-averages) - [Implement a Fixed-Size List in Scala](https://www.baeldung.com/scala/list-finite-size) From 8184a867b6d69643d7d88d7d0961998351b1a45e Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 28 Nov 2023 21:35:00 +0100 Subject: [PATCH 0156/1318] Corrected readme location --- scala-lang-modules/scala3-lang-3/README.md | 2 ++ scala3-lang-3/README.md | 2 -- 2 files changed, 2 insertions(+), 2 deletions(-) delete mode 100644 scala3-lang-3/README.md diff --git a/scala-lang-modules/scala3-lang-3/README.md b/scala-lang-modules/scala3-lang-3/README.md index 75ebf0230..9e15e60d4 100644 --- a/scala-lang-modules/scala3-lang-3/README.md +++ b/scala-lang-modules/scala3-lang-3/README.md @@ -2,3 +2,5 @@ - [Different Ways to Filter Elements From a Scala Collection](https://www.baeldung.com/scala/filter-collections) - [Type Lambdas in Scala 3](https://www.baeldung.com/scala/type-lambdas-scala-3) - [Using the sliding() and grouped() Methods With Scala Collections](https://www.baeldung.com/scala/sliding-grouped-methods-with-collections) +- [Immutable Arrays in Scala 3 Using IArray](https://www.baeldung.com/scala/iarray-immutable-arrays) + diff --git a/scala3-lang-3/README.md b/scala3-lang-3/README.md deleted file mode 100644 index 6c6df2ec9..000000000 --- a/scala3-lang-3/README.md +++ /dev/null @@ -1,2 +0,0 @@ -## Relevant Articles -- [Immutable Arrays in Scala 3 Using IArray](https://www.baeldung.com/scala/iarray-immutable-arrays) From d82526046fc6f6b351ef647a458db08bd5f54138 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 29 Nov 2023 08:52:12 +0100 Subject: [PATCH 0157/1318] Separate module for Scala Date operations --- build.sbt | 6 ++++++ scala-core-modules/scala-core-8/README.md | 2 -- scala-core-modules/scala-core-dates/README.md | 10 ++++++++++ .../com/baeldung/scala/datesandtimes/JavaTime.scala | 0 .../baeldung/scala/datesandtimes/JavaUtilDate.scala | 0 .../com/baeldung/scala/datesandtimes/JodaTime.scala | 0 .../com/baeldung/scala/datesandtimes/NScalaTime.scala | 0 .../scala/differencedates/DifferenceBetweenDates.scala | 0 .../baeldung/scala/duration/JavaToScalaDuration.scala | 0 .../scala/datesandtimes/JavaTimeUnitTest.scala | 0 .../scala/datesandtimes/JavaUtilDateUnitTest.scala | 0 .../scala/datesandtimes/JodaTimeUnitTest.scala | 0 .../scala/datesandtimes/NScalaTimeUnitTest.scala | 0 .../differencedates/DifferenceBetweenDatesTest.scala | 1 - .../com/baeldung/scala/duration/DurationTest.scala | 4 ---- 15 files changed, 16 insertions(+), 7 deletions(-) create mode 100644 scala-core-modules/scala-core-dates/README.md rename scala-core-modules/{scala-core-5 => scala-core-dates}/src/main/scala-2/com/baeldung/scala/datesandtimes/JavaTime.scala (100%) rename scala-core-modules/{scala-core-5 => scala-core-dates}/src/main/scala-2/com/baeldung/scala/datesandtimes/JavaUtilDate.scala (100%) rename scala-core-modules/{scala-core-5 => scala-core-dates}/src/main/scala-2/com/baeldung/scala/datesandtimes/JodaTime.scala (100%) rename scala-core-modules/{scala-core-5 => scala-core-dates}/src/main/scala-2/com/baeldung/scala/datesandtimes/NScalaTime.scala (100%) rename scala-core-modules/{scala-core-8 => scala-core-dates}/src/main/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDates.scala (100%) rename scala-core-modules/{scala-core-8 => scala-core-dates}/src/main/scala-2/com/baeldung/scala/duration/JavaToScalaDuration.scala (100%) rename scala-core-modules/{scala-core-5 => scala-core-dates}/src/test/scala-2/com/baeldung/scala/datesandtimes/JavaTimeUnitTest.scala (100%) rename scala-core-modules/{scala-core-5 => scala-core-dates}/src/test/scala-2/com/baeldung/scala/datesandtimes/JavaUtilDateUnitTest.scala (100%) rename scala-core-modules/{scala-core-5 => scala-core-dates}/src/test/scala-2/com/baeldung/scala/datesandtimes/JodaTimeUnitTest.scala (100%) rename scala-core-modules/{scala-core-5 => scala-core-dates}/src/test/scala-2/com/baeldung/scala/datesandtimes/NScalaTimeUnitTest.scala (100%) rename scala-core-modules/{scala-core-8 => scala-core-dates}/src/test/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDatesTest.scala (97%) rename scala-core-modules/{scala-core-8 => scala-core-dates}/src/test/scala-2/com/baeldung/scala/duration/DurationTest.scala (92%) diff --git a/build.sbt b/build.sbt index 95573abb0..10883381c 100644 --- a/build.sbt +++ b/build.sbt @@ -120,6 +120,12 @@ lazy val scala_core_fp = (project in file("scala-core-modules/scala-core-fp")) Seq(catsEffect, jUnitInterface) ++ scalaTestDeps ) +lazy val scala_core_dates = (project in file("scala-core-modules/scala-core-dates")) + .settings( + name := "scala-core-dates", + libraryDependencies ++= scalaTestDeps + ) + lazy val scala_lang = (project in file("scala-lang-modules/scala-lang")) .settings( name := "scala-lang", diff --git a/scala-core-modules/scala-core-8/README.md b/scala-core-modules/scala-core-8/README.md index 979172813..6424ab01a 100644 --- a/scala-core-modules/scala-core-8/README.md +++ b/scala-core-modules/scala-core-8/README.md @@ -3,8 +3,6 @@ - [Introduction to Scala Macros](https://www.baeldung.com/scala/scala2-macros) - [Introduction to Macros in Scala 2](https://www.baeldung.com/scala/scala2-macros) - [The Builder Pattern in Scala](https://www.baeldung.com/scala/builder-pattern) -- [Guide to Scala Duration and FiniteDuration](https://www.baeldung.com/scala/duration-finiteduration) -- [Get Difference Between Two Dates](https://www.baeldung.com/scala/difference-between-two-dates) - [The Either Type in Scala](https://www.baeldung.com/scala/either-type) - [Understanding the Differences: reduceLeft, reduceRight, foldLeft, foldRight, scanLeft, and scanRight in Scala](https://www.baeldung.com/scala/reduce-fold-scan-left-right) - [Different Ways to Reverse a Sequence in Scala](https://www.baeldung.com/scala/reverse-sequence) diff --git a/scala-core-modules/scala-core-dates/README.md b/scala-core-modules/scala-core-dates/README.md new file mode 100644 index 000000000..687a60796 --- /dev/null +++ b/scala-core-modules/scala-core-dates/README.md @@ -0,0 +1,10 @@ +## Core Scala + +This module contains articles about Scala's date features. + +### Relevant Articles: + +- [Working With Dates and Times in Scala](https://www.baeldung.com/scala/date-time) +- [Guide to Scala Duration and FiniteDuration](https://www.baeldung.com/scala/duration-finiteduration) +- [Get Difference Between Two Dates](https://www.baeldung.com/scala/difference-between-two-dates) +- [Convert Epoch Milliseconds to DateTime in Scala](https://www.baeldung.com/scala/epoch-milliseconds-datetime) \ No newline at end of file diff --git a/scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/datesandtimes/JavaTime.scala b/scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/datesandtimes/JavaTime.scala similarity index 100% rename from scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/datesandtimes/JavaTime.scala rename to scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/datesandtimes/JavaTime.scala diff --git a/scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/datesandtimes/JavaUtilDate.scala b/scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/datesandtimes/JavaUtilDate.scala similarity index 100% rename from scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/datesandtimes/JavaUtilDate.scala rename to scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/datesandtimes/JavaUtilDate.scala diff --git a/scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/datesandtimes/JodaTime.scala b/scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/datesandtimes/JodaTime.scala similarity index 100% rename from scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/datesandtimes/JodaTime.scala rename to scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/datesandtimes/JodaTime.scala diff --git a/scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/datesandtimes/NScalaTime.scala b/scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/datesandtimes/NScalaTime.scala similarity index 100% rename from scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/datesandtimes/NScalaTime.scala rename to scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/datesandtimes/NScalaTime.scala diff --git a/scala-core-modules/scala-core-8/src/main/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDates.scala b/scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDates.scala similarity index 100% rename from scala-core-modules/scala-core-8/src/main/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDates.scala rename to scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDates.scala diff --git a/scala-core-modules/scala-core-8/src/main/scala-2/com/baeldung/scala/duration/JavaToScalaDuration.scala b/scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/duration/JavaToScalaDuration.scala similarity index 100% rename from scala-core-modules/scala-core-8/src/main/scala-2/com/baeldung/scala/duration/JavaToScalaDuration.scala rename to scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/duration/JavaToScalaDuration.scala diff --git a/scala-core-modules/scala-core-5/src/test/scala-2/com/baeldung/scala/datesandtimes/JavaTimeUnitTest.scala b/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/datesandtimes/JavaTimeUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-5/src/test/scala-2/com/baeldung/scala/datesandtimes/JavaTimeUnitTest.scala rename to scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/datesandtimes/JavaTimeUnitTest.scala diff --git a/scala-core-modules/scala-core-5/src/test/scala-2/com/baeldung/scala/datesandtimes/JavaUtilDateUnitTest.scala b/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/datesandtimes/JavaUtilDateUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-5/src/test/scala-2/com/baeldung/scala/datesandtimes/JavaUtilDateUnitTest.scala rename to scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/datesandtimes/JavaUtilDateUnitTest.scala diff --git a/scala-core-modules/scala-core-5/src/test/scala-2/com/baeldung/scala/datesandtimes/JodaTimeUnitTest.scala b/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/datesandtimes/JodaTimeUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-5/src/test/scala-2/com/baeldung/scala/datesandtimes/JodaTimeUnitTest.scala rename to scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/datesandtimes/JodaTimeUnitTest.scala diff --git a/scala-core-modules/scala-core-5/src/test/scala-2/com/baeldung/scala/datesandtimes/NScalaTimeUnitTest.scala b/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/datesandtimes/NScalaTimeUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-5/src/test/scala-2/com/baeldung/scala/datesandtimes/NScalaTimeUnitTest.scala rename to scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/datesandtimes/NScalaTimeUnitTest.scala diff --git a/scala-core-modules/scala-core-8/src/test/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDatesTest.scala b/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDatesTest.scala similarity index 97% rename from scala-core-modules/scala-core-8/src/test/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDatesTest.scala rename to scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDatesTest.scala index a95f823f8..304035588 100644 --- a/scala-core-modules/scala-core-8/src/test/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDatesTest.scala +++ b/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDatesTest.scala @@ -1,7 +1,6 @@ package com.baeldung.scala.differencedates import org.scalatest.wordspec.AnyWordSpec -import com.baeldung.scala.differencedates.DifferenceBetweenDates._ import org.scalatest.matchers.should.Matchers import java.time.temporal.ChronoUnit diff --git a/scala-core-modules/scala-core-8/src/test/scala-2/com/baeldung/scala/duration/DurationTest.scala b/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/duration/DurationTest.scala similarity index 92% rename from scala-core-modules/scala-core-8/src/test/scala-2/com/baeldung/scala/duration/DurationTest.scala rename to scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/duration/DurationTest.scala index 39731b144..c7c2714b5 100644 --- a/scala-core-modules/scala-core-8/src/test/scala-2/com/baeldung/scala/duration/DurationTest.scala +++ b/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/duration/DurationTest.scala @@ -6,10 +6,6 @@ import java.time.Duration import java.time.temporal.ChronoUnit import java.util.concurrent.TimeUnit import scala.concurrent.duration.{FiniteDuration, HOURS} -import com.baeldung.scala.duration.JavaToScalaDuration.{ - asFiniteDuration, - asFiniteDurationFromConf -} import scala.jdk.DurationConverters.JavaDurationOps From 15cfcd618dfa4325ddc457e5e54189e51ba8ae54 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 29 Nov 2023 08:54:28 +0100 Subject: [PATCH 0158/1318] removed one link from readme --- scala-core-modules/scala-core-5/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/scala-core-modules/scala-core-5/README.md b/scala-core-modules/scala-core-5/README.md index 8fa68480b..d55dc020b 100644 --- a/scala-core-modules/scala-core-5/README.md +++ b/scala-core-modules/scala-core-5/README.md @@ -7,7 +7,6 @@ This module contains articles about Scala's core features. - [@switch Annotation in Scala](https://www.baeldung.com/scala/switch-annotation) - [Benefits of Using Vector in Scala](https://www.baeldung.com/scala/vector-benefits) - [Rich Wrappers in Scala](https://www.baeldung.com/scala/rich-wrappers) -- [Working With Dates and Times in Scala](https://www.baeldung.com/scala/date-time) - [@inline and @noinline in Scala](https://www.baeldung.com/scala/inline-noinline-annotations) - [Lambda Expressions in Scala](https://www.baeldung.com/scala/lambda-expressions) - [Algebraic Data Types in Scala](https://www.baeldung.com/scala/algebraic-data-types) From 19664bcb1188d5fc4b5ce110b332687d4aed0f32 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 29 Nov 2023 08:59:20 +0100 Subject: [PATCH 0159/1318] Moved one more date article code to dates module --- scala-core-modules/scala-core-dates/README.md | 3 ++- .../src/main/scala-2/com/baeldung/scala}/date/DateParser.scala | 2 +- .../test/scala-2/com/baeldung/scala}/date/DateParserSpec.scala | 2 +- scala-libraries-2/README.md | 3 +-- 4 files changed, 5 insertions(+), 5 deletions(-) rename {scala-libraries-2/src/main/scala-2/com/baeldung => scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala}/date/DateParser.scala (96%) rename {scala-libraries-2/src/test/scala-2/com/baeldung => scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala}/date/DateParserSpec.scala (98%) diff --git a/scala-core-modules/scala-core-dates/README.md b/scala-core-modules/scala-core-dates/README.md index 687a60796..df08f9428 100644 --- a/scala-core-modules/scala-core-dates/README.md +++ b/scala-core-modules/scala-core-dates/README.md @@ -7,4 +7,5 @@ This module contains articles about Scala's date features. - [Working With Dates and Times in Scala](https://www.baeldung.com/scala/date-time) - [Guide to Scala Duration and FiniteDuration](https://www.baeldung.com/scala/duration-finiteduration) - [Get Difference Between Two Dates](https://www.baeldung.com/scala/difference-between-two-dates) -- [Convert Epoch Milliseconds to DateTime in Scala](https://www.baeldung.com/scala/epoch-milliseconds-datetime) \ No newline at end of file +- [Convert Epoch Milliseconds to DateTime in Scala](https://www.baeldung.com/scala/epoch-milliseconds-datetime) +- [Convert a String to Date in Scala](https://www.baeldung.com/scala/string-to-date) diff --git a/scala-libraries-2/src/main/scala-2/com/baeldung/date/DateParser.scala b/scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/date/DateParser.scala similarity index 96% rename from scala-libraries-2/src/main/scala-2/com/baeldung/date/DateParser.scala rename to scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/date/DateParser.scala index 9a4e66feb..1e52621fe 100644 --- a/scala-libraries-2/src/main/scala-2/com/baeldung/date/DateParser.scala +++ b/scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/date/DateParser.scala @@ -1,4 +1,4 @@ -package com.baeldung.date +package com.baeldung.scala.date import java.util.GregorianCalendar import scala.util.Try diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/date/DateParserSpec.scala b/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/date/DateParserSpec.scala similarity index 98% rename from scala-libraries-2/src/test/scala-2/com/baeldung/date/DateParserSpec.scala rename to scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/date/DateParserSpec.scala index 0de6aa4eb..b3c42f093 100644 --- a/scala-libraries-2/src/test/scala-2/com/baeldung/date/DateParserSpec.scala +++ b/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/date/DateParserSpec.scala @@ -1,4 +1,4 @@ -package com.baeldung.date +package com.baeldung.scala.date import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpec diff --git a/scala-libraries-2/README.md b/scala-libraries-2/README.md index 5032084e1..1341f7073 100644 --- a/scala-libraries-2/README.md +++ b/scala-libraries-2/README.md @@ -8,5 +8,4 @@ - [Introduction to ScalaCheck](https://www.baeldung.com/scala/scalacheck) - [Simple REST Requests Using Requests-Scala](https://www.baeldung.com/scala/rest-with-requests-scala) - [Better Enumerations in Scala Using Enumeratum](https://www.baeldung.com/scala/enumeratum) -- [Guide to elastic4s – Elasticsearch Scala Client](https://www.baeldung.com/scala/elastic4s-elasticsearch-client) -- [Convert a String to Date in Scala](https://www.baeldung.com/scala/string-to-date) +- [Guide to elastic4s – Elasticsearch Scala Client](https://www.baeldung.com/scala/elastic4s-elasticsearch-client) \ No newline at end of file From 2c5c7f331e1c2ecdd78d789269e1e0b71682f7ea Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 29 Nov 2023 09:13:03 +0100 Subject: [PATCH 0160/1318] added date libraries to date module --- build.sbt | 10 +++++----- .../differencedates/DifferenceBetweenDatesTest.scala | 1 + .../com/baeldung/scala/duration/DurationTest.scala | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/build.sbt b/build.sbt index 10883381c..6c33761ba 100644 --- a/build.sbt +++ b/build.sbt @@ -62,10 +62,7 @@ lazy val scala_core_5 = (project in file("scala-core-modules/scala-core-5")) name := "scala-core-5", libraryDependencies ++= scalaTestDeps, libraryDependencies += jUnitInterface, - libraryDependencies += scalaReflection, - libraryDependencies += "joda-time" % "joda-time" % "2.12.5", - libraryDependencies += "org.joda" % "joda-convert" % "2.2.3", - libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "2.32.0" + libraryDependencies += scalaReflection ) lazy val scala_core_6 = (project in file("scala-core-modules/scala-core-6")) @@ -123,7 +120,10 @@ lazy val scala_core_fp = (project in file("scala-core-modules/scala-core-fp")) lazy val scala_core_dates = (project in file("scala-core-modules/scala-core-dates")) .settings( name := "scala-core-dates", - libraryDependencies ++= scalaTestDeps + libraryDependencies ++= scalaTestDeps, + libraryDependencies += "joda-time" % "joda-time" % "2.12.5", + libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "2.32.0", + libraryDependencies += "com.typesafe" % "config" % "1.4.3", ) lazy val scala_lang = (project in file("scala-lang-modules/scala-lang")) diff --git a/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDatesTest.scala b/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDatesTest.scala index 304035588..6a4303182 100644 --- a/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDatesTest.scala +++ b/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDatesTest.scala @@ -5,6 +5,7 @@ import org.scalatest.matchers.should.Matchers import java.time.temporal.ChronoUnit import java.time.{LocalDate, Period} +import DifferenceBetweenDates._ class DifferenceBetweenDatesTest extends AnyWordSpec with Matchers { diff --git a/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/duration/DurationTest.scala b/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/duration/DurationTest.scala index c7c2714b5..1d09d06be 100644 --- a/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/duration/DurationTest.scala +++ b/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/duration/DurationTest.scala @@ -1,12 +1,12 @@ package com.baeldung.scala.duration +import com.baeldung.scala.duration.JavaToScalaDuration.{asFiniteDuration, asFiniteDurationFromConf} import org.scalatest.funsuite.AnyFunSuite import java.time.Duration import java.time.temporal.ChronoUnit import java.util.concurrent.TimeUnit import scala.concurrent.duration.{FiniteDuration, HOURS} - import scala.jdk.DurationConverters.JavaDurationOps class DurationTest extends AnyFunSuite { From cb98cb7a693a195286775a821d3972aca226e122 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 29 Nov 2023 17:13:11 +0100 Subject: [PATCH 0161/1318] Scalafmt --- .../scala-2/com/baeldung/scala/duration/DurationTest.scala | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/duration/DurationTest.scala b/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/duration/DurationTest.scala index 1d09d06be..dddf81230 100644 --- a/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/duration/DurationTest.scala +++ b/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/duration/DurationTest.scala @@ -1,6 +1,9 @@ package com.baeldung.scala.duration -import com.baeldung.scala.duration.JavaToScalaDuration.{asFiniteDuration, asFiniteDurationFromConf} +import com.baeldung.scala.duration.JavaToScalaDuration.{ + asFiniteDuration, + asFiniteDurationFromConf +} import org.scalatest.funsuite.AnyFunSuite import java.time.Duration From 9cd4c752c6bae8f2f91cbc986183757be975329f Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 29 Nov 2023 17:28:42 +0100 Subject: [PATCH 0162/1318] Moved config to correct path --- .../src/main/resources/application.conf | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename scala-core-modules/{scala-core-8 => scala-core-dates}/src/main/resources/application.conf (100%) diff --git a/scala-core-modules/scala-core-8/src/main/resources/application.conf b/scala-core-modules/scala-core-dates/src/main/resources/application.conf similarity index 100% rename from scala-core-modules/scala-core-8/src/main/resources/application.conf rename to scala-core-modules/scala-core-dates/src/main/resources/application.conf From 6183637554ad7d231ba9f6d6b4c27242e73242c2 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Thu, 30 Nov 2023 08:40:48 +0100 Subject: [PATCH 0163/1318] Moved date listing article code to date module --- .../main/scala/com/baeldung/scala/dates/DateListGenerator.scala | 0 .../com/baeldung/scala/dates/DateListGeneratorUnitTest.scala | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename scala-core-modules/{scala-core-8 => scala-core-dates}/src/main/scala/com/baeldung/scala/dates/DateListGenerator.scala (100%) rename scala-core-modules/{scala-core-8 => scala-core-dates}/src/test/scala/com/baeldung/scala/dates/DateListGeneratorUnitTest.scala (100%) diff --git a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/dates/DateListGenerator.scala b/scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/dates/DateListGenerator.scala similarity index 100% rename from scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/dates/DateListGenerator.scala rename to scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/dates/DateListGenerator.scala diff --git a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/dates/DateListGeneratorUnitTest.scala b/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/dates/DateListGeneratorUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/dates/DateListGeneratorUnitTest.scala rename to scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/dates/DateListGeneratorUnitTest.scala From 76b965a6550a7afd6ab6f04af33df30cd9428731 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Thu, 30 Nov 2023 18:27:35 +0100 Subject: [PATCH 0164/1318] Migrated scala-core-2 module to scala 3 --- build.sbt | 4 ++-- .../com/baeldung/scala/concurrency/FutureAndPromise.scala | 0 .../com/baeldung/scala/durationsugar/package.scala | 0 .../baeldung/scala/exceptionhandling/ExceptionHandling.scala | 0 .../com/baeldung/scala/extractorobject/RequestApp.scala | 0 .../com/baeldung/scala/extractorobject/User.scala | 0 .../baeldung/scala/forcomprehension/ForComprehension.scala | 0 .../baeldung/scala/higherkindedtypes/HigherKindedTypes.scala | 0 .../com/baeldung/scala/implicitclasses/Currency.scala | 0 .../com/baeldung/scala/implicitclasses/Money.scala | 0 .../com/baeldung/scala/implicitclasses/MoneySyntax.scala | 0 .../scala/namedanddefaultargs/NamedAndDefaultArgs.scala | 0 .../com/baeldung/scala/selftype/SelfType.scala | 0 .../com/baeldung/scala/underscore/UnderscoreUsages.scala | 4 ++-- .../baeldung/scala/concurrency/FutureAndPromiseUnitTest.scala | 0 .../baeldung/scala/durationsugar/DurationSugarUnitTest.scala | 0 .../scala/exceptionhandling/ExceptionHandlingUnitTest.scala | 0 .../scala/higherkindedtypes/HigherKindedTypesUnitTest.scala | 0 .../com/baeldung/scala/implicitclasses/MoneyUnitTest.scala | 0 .../namedanddefaultargs/NamedAndDefaultArgsUnitTest.scala | 0 .../com/baeldung/scala/selftype/SelfTypeUnitTest.scala | 0 .../baeldung/scala/underscore/UnderscoreUsagesUnitTest.scala | 0 22 files changed, 4 insertions(+), 4 deletions(-) rename scala-core-modules/scala-core-2/src/main/{scala-2 => scala}/com/baeldung/scala/concurrency/FutureAndPromise.scala (100%) rename scala-core-modules/scala-core-2/src/main/{scala-2 => scala}/com/baeldung/scala/durationsugar/package.scala (100%) rename scala-core-modules/scala-core-2/src/main/{scala-2 => scala}/com/baeldung/scala/exceptionhandling/ExceptionHandling.scala (100%) rename scala-core-modules/scala-core-2/src/main/{scala-2 => scala}/com/baeldung/scala/extractorobject/RequestApp.scala (100%) rename scala-core-modules/scala-core-2/src/main/{scala-2 => scala}/com/baeldung/scala/extractorobject/User.scala (100%) rename scala-core-modules/scala-core-2/src/main/{scala-2 => scala}/com/baeldung/scala/forcomprehension/ForComprehension.scala (100%) rename scala-core-modules/scala-core-2/src/main/{scala-2 => scala}/com/baeldung/scala/higherkindedtypes/HigherKindedTypes.scala (100%) rename scala-core-modules/scala-core-2/src/main/{scala-2 => scala}/com/baeldung/scala/implicitclasses/Currency.scala (100%) rename scala-core-modules/scala-core-2/src/main/{scala-2 => scala}/com/baeldung/scala/implicitclasses/Money.scala (100%) rename scala-core-modules/scala-core-2/src/main/{scala-2 => scala}/com/baeldung/scala/implicitclasses/MoneySyntax.scala (100%) rename scala-core-modules/scala-core-2/src/main/{scala-2 => scala}/com/baeldung/scala/namedanddefaultargs/NamedAndDefaultArgs.scala (100%) rename scala-core-modules/scala-core-2/src/main/{scala-2 => scala}/com/baeldung/scala/selftype/SelfType.scala (100%) rename scala-core-modules/scala-core-2/src/main/{scala-2 => scala}/com/baeldung/scala/underscore/UnderscoreUsages.scala (88%) rename scala-core-modules/scala-core-2/src/test/{scala-2 => scala}/com/baeldung/scala/concurrency/FutureAndPromiseUnitTest.scala (100%) rename scala-core-modules/scala-core-2/src/test/{scala-2 => scala}/com/baeldung/scala/durationsugar/DurationSugarUnitTest.scala (100%) rename scala-core-modules/scala-core-2/src/test/{scala-2 => scala}/com/baeldung/scala/exceptionhandling/ExceptionHandlingUnitTest.scala (100%) rename scala-core-modules/scala-core-2/src/test/{scala-2 => scala}/com/baeldung/scala/higherkindedtypes/HigherKindedTypesUnitTest.scala (100%) rename scala-core-modules/scala-core-2/src/test/{scala-2 => scala}/com/baeldung/scala/implicitclasses/MoneyUnitTest.scala (100%) rename scala-core-modules/scala-core-2/src/test/{scala-2 => scala}/com/baeldung/scala/namedanddefaultargs/NamedAndDefaultArgsUnitTest.scala (100%) rename scala-core-modules/scala-core-2/src/test/{scala-2 => scala}/com/baeldung/scala/selftype/SelfTypeUnitTest.scala (100%) rename scala-core-modules/scala-core-2/src/test/{scala-2 => scala}/com/baeldung/scala/underscore/UnderscoreUsagesUnitTest.scala (100%) diff --git a/build.sbt b/build.sbt index 6c33761ba..f77b77ec3 100644 --- a/build.sbt +++ b/build.sbt @@ -36,8 +36,8 @@ lazy val scala_core_2 = (project in file("scala-core-modules/scala-core-2")) .settings( name := "scala-core-2", libraryDependencies ++= scalaTestDeps, - libraryDependencies += scalaMock, - libraryDependencies += jUnitInterface + libraryDependencies += jUnitInterface, + scalaVersion := scala3Version ) lazy val scala_core_3 = (project in file("scala-core-modules/scala-core-3")) diff --git a/scala-core-modules/scala-core-2/src/main/scala-2/com/baeldung/scala/concurrency/FutureAndPromise.scala b/scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/concurrency/FutureAndPromise.scala similarity index 100% rename from scala-core-modules/scala-core-2/src/main/scala-2/com/baeldung/scala/concurrency/FutureAndPromise.scala rename to scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/concurrency/FutureAndPromise.scala diff --git a/scala-core-modules/scala-core-2/src/main/scala-2/com/baeldung/scala/durationsugar/package.scala b/scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/durationsugar/package.scala similarity index 100% rename from scala-core-modules/scala-core-2/src/main/scala-2/com/baeldung/scala/durationsugar/package.scala rename to scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/durationsugar/package.scala diff --git a/scala-core-modules/scala-core-2/src/main/scala-2/com/baeldung/scala/exceptionhandling/ExceptionHandling.scala b/scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/exceptionhandling/ExceptionHandling.scala similarity index 100% rename from scala-core-modules/scala-core-2/src/main/scala-2/com/baeldung/scala/exceptionhandling/ExceptionHandling.scala rename to scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/exceptionhandling/ExceptionHandling.scala diff --git a/scala-core-modules/scala-core-2/src/main/scala-2/com/baeldung/scala/extractorobject/RequestApp.scala b/scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/extractorobject/RequestApp.scala similarity index 100% rename from scala-core-modules/scala-core-2/src/main/scala-2/com/baeldung/scala/extractorobject/RequestApp.scala rename to scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/extractorobject/RequestApp.scala diff --git a/scala-core-modules/scala-core-2/src/main/scala-2/com/baeldung/scala/extractorobject/User.scala b/scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/extractorobject/User.scala similarity index 100% rename from scala-core-modules/scala-core-2/src/main/scala-2/com/baeldung/scala/extractorobject/User.scala rename to scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/extractorobject/User.scala diff --git a/scala-core-modules/scala-core-2/src/main/scala-2/com/baeldung/scala/forcomprehension/ForComprehension.scala b/scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/forcomprehension/ForComprehension.scala similarity index 100% rename from scala-core-modules/scala-core-2/src/main/scala-2/com/baeldung/scala/forcomprehension/ForComprehension.scala rename to scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/forcomprehension/ForComprehension.scala diff --git a/scala-core-modules/scala-core-2/src/main/scala-2/com/baeldung/scala/higherkindedtypes/HigherKindedTypes.scala b/scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/higherkindedtypes/HigherKindedTypes.scala similarity index 100% rename from scala-core-modules/scala-core-2/src/main/scala-2/com/baeldung/scala/higherkindedtypes/HigherKindedTypes.scala rename to scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/higherkindedtypes/HigherKindedTypes.scala diff --git a/scala-core-modules/scala-core-2/src/main/scala-2/com/baeldung/scala/implicitclasses/Currency.scala b/scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/implicitclasses/Currency.scala similarity index 100% rename from scala-core-modules/scala-core-2/src/main/scala-2/com/baeldung/scala/implicitclasses/Currency.scala rename to scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/implicitclasses/Currency.scala diff --git a/scala-core-modules/scala-core-2/src/main/scala-2/com/baeldung/scala/implicitclasses/Money.scala b/scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/implicitclasses/Money.scala similarity index 100% rename from scala-core-modules/scala-core-2/src/main/scala-2/com/baeldung/scala/implicitclasses/Money.scala rename to scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/implicitclasses/Money.scala diff --git a/scala-core-modules/scala-core-2/src/main/scala-2/com/baeldung/scala/implicitclasses/MoneySyntax.scala b/scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/implicitclasses/MoneySyntax.scala similarity index 100% rename from scala-core-modules/scala-core-2/src/main/scala-2/com/baeldung/scala/implicitclasses/MoneySyntax.scala rename to scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/implicitclasses/MoneySyntax.scala diff --git a/scala-core-modules/scala-core-2/src/main/scala-2/com/baeldung/scala/namedanddefaultargs/NamedAndDefaultArgs.scala b/scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/namedanddefaultargs/NamedAndDefaultArgs.scala similarity index 100% rename from scala-core-modules/scala-core-2/src/main/scala-2/com/baeldung/scala/namedanddefaultargs/NamedAndDefaultArgs.scala rename to scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/namedanddefaultargs/NamedAndDefaultArgs.scala diff --git a/scala-core-modules/scala-core-2/src/main/scala-2/com/baeldung/scala/selftype/SelfType.scala b/scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/selftype/SelfType.scala similarity index 100% rename from scala-core-modules/scala-core-2/src/main/scala-2/com/baeldung/scala/selftype/SelfType.scala rename to scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/selftype/SelfType.scala diff --git a/scala-core-modules/scala-core-2/src/main/scala-2/com/baeldung/scala/underscore/UnderscoreUsages.scala b/scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/underscore/UnderscoreUsages.scala similarity index 88% rename from scala-core-modules/scala-core-2/src/main/scala-2/com/baeldung/scala/underscore/UnderscoreUsages.scala rename to scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/underscore/UnderscoreUsages.scala index 7068166b0..157b6cda5 100644 --- a/scala-core-modules/scala-core-2/src/main/scala-2/com/baeldung/scala/underscore/UnderscoreUsages.scala +++ b/scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/underscore/UnderscoreUsages.scala @@ -36,11 +36,11 @@ object UnderscoreUsages { def list_++(list: List[_]): List[_] = List.concat(list, list) trait ObjectContainer[T[_]] { // higher kinded type parameter - def checkIfEmpty(collection: T[_]): Boolean + def checkIfEmpty[A](collection: T[A]): Boolean } object SeqContainer extends ObjectContainer[Seq] { - override def checkIfEmpty(collection: Seq[_]): Boolean = + override def checkIfEmpty[A](collection: Seq[A]): Boolean = !collection.nonEmpty } diff --git a/scala-core-modules/scala-core-2/src/test/scala-2/com/baeldung/scala/concurrency/FutureAndPromiseUnitTest.scala b/scala-core-modules/scala-core-2/src/test/scala/com/baeldung/scala/concurrency/FutureAndPromiseUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-2/src/test/scala-2/com/baeldung/scala/concurrency/FutureAndPromiseUnitTest.scala rename to scala-core-modules/scala-core-2/src/test/scala/com/baeldung/scala/concurrency/FutureAndPromiseUnitTest.scala diff --git a/scala-core-modules/scala-core-2/src/test/scala-2/com/baeldung/scala/durationsugar/DurationSugarUnitTest.scala b/scala-core-modules/scala-core-2/src/test/scala/com/baeldung/scala/durationsugar/DurationSugarUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-2/src/test/scala-2/com/baeldung/scala/durationsugar/DurationSugarUnitTest.scala rename to scala-core-modules/scala-core-2/src/test/scala/com/baeldung/scala/durationsugar/DurationSugarUnitTest.scala diff --git a/scala-core-modules/scala-core-2/src/test/scala-2/com/baeldung/scala/exceptionhandling/ExceptionHandlingUnitTest.scala b/scala-core-modules/scala-core-2/src/test/scala/com/baeldung/scala/exceptionhandling/ExceptionHandlingUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-2/src/test/scala-2/com/baeldung/scala/exceptionhandling/ExceptionHandlingUnitTest.scala rename to scala-core-modules/scala-core-2/src/test/scala/com/baeldung/scala/exceptionhandling/ExceptionHandlingUnitTest.scala diff --git a/scala-core-modules/scala-core-2/src/test/scala-2/com/baeldung/scala/higherkindedtypes/HigherKindedTypesUnitTest.scala b/scala-core-modules/scala-core-2/src/test/scala/com/baeldung/scala/higherkindedtypes/HigherKindedTypesUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-2/src/test/scala-2/com/baeldung/scala/higherkindedtypes/HigherKindedTypesUnitTest.scala rename to scala-core-modules/scala-core-2/src/test/scala/com/baeldung/scala/higherkindedtypes/HigherKindedTypesUnitTest.scala diff --git a/scala-core-modules/scala-core-2/src/test/scala-2/com/baeldung/scala/implicitclasses/MoneyUnitTest.scala b/scala-core-modules/scala-core-2/src/test/scala/com/baeldung/scala/implicitclasses/MoneyUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-2/src/test/scala-2/com/baeldung/scala/implicitclasses/MoneyUnitTest.scala rename to scala-core-modules/scala-core-2/src/test/scala/com/baeldung/scala/implicitclasses/MoneyUnitTest.scala diff --git a/scala-core-modules/scala-core-2/src/test/scala-2/com/baeldung/scala/namedanddefaultargs/NamedAndDefaultArgsUnitTest.scala b/scala-core-modules/scala-core-2/src/test/scala/com/baeldung/scala/namedanddefaultargs/NamedAndDefaultArgsUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-2/src/test/scala-2/com/baeldung/scala/namedanddefaultargs/NamedAndDefaultArgsUnitTest.scala rename to scala-core-modules/scala-core-2/src/test/scala/com/baeldung/scala/namedanddefaultargs/NamedAndDefaultArgsUnitTest.scala diff --git a/scala-core-modules/scala-core-2/src/test/scala-2/com/baeldung/scala/selftype/SelfTypeUnitTest.scala b/scala-core-modules/scala-core-2/src/test/scala/com/baeldung/scala/selftype/SelfTypeUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-2/src/test/scala-2/com/baeldung/scala/selftype/SelfTypeUnitTest.scala rename to scala-core-modules/scala-core-2/src/test/scala/com/baeldung/scala/selftype/SelfTypeUnitTest.scala diff --git a/scala-core-modules/scala-core-2/src/test/scala-2/com/baeldung/scala/underscore/UnderscoreUsagesUnitTest.scala b/scala-core-modules/scala-core-2/src/test/scala/com/baeldung/scala/underscore/UnderscoreUsagesUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-2/src/test/scala-2/com/baeldung/scala/underscore/UnderscoreUsagesUnitTest.scala rename to scala-core-modules/scala-core-2/src/test/scala/com/baeldung/scala/underscore/UnderscoreUsagesUnitTest.scala From 1422fb98b36f326a0b03a001a189519339ba4ad5 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 2 Dec 2023 09:58:43 +0100 Subject: [PATCH 0165/1318] Migrated scala-core-collections to scala 3 --- build.sbt | 4 ++++ .../com/baeldung/scala/firstmatching/Finder.scala | 0 .../com/baeldung/scala/flattening/Flattener.scala | 0 .../com/baeldung/scala/lastelement/Finder.scala | 0 .../com/baeldung/scala/lazylists/SimpleLazyList.scala | 0 .../com/baeldung/scala/lazylists/SimpleList.scala | 0 .../scala/randomfixedsizesample/RandomFixedSizeSample.scala | 0 .../com/baeldung/scala/rotation/Rotator.scala | 0 .../com/baeldung/scala/sublist/SubListOfList.scala | 0 .../scala/array/AppendAnElementToAnArrayUnitTest.scala | 0 .../com/baeldung/scala/firstmatching/FinderSpec.scala | 0 .../com/baeldung/scala/flattening/FlattenerSpec.scala | 0 .../com/baeldung/scala/lastelement/FinderSpec.scala | 0 .../com/baeldung/scala/lazylists/SimpleLazyListSpec.scala | 0 .../com/baeldung/scala/lazylists/SimpleListSpec.scala | 0 .../randomfixedsizesample/RandomFixedSizeSampleSpec.scala | 0 .../com/baeldung/scala/rotation/RotatorSpec.scala | 0 .../com/baeldung/scala/subarray/GetASubarrayUnitTest.scala | 0 .../com/baeldung/scala/sublist/SubListOfListSpec.scala | 0 .../baeldung/scala/commoncollections/ScalaCollections.scala | 0 .../scala/fixedsizelist/CircularBufferFixedSizeList.scala | 0 .../com/baeldung/scala/fixedsizelist/FixedSizeList.scala | 0 .../baeldung/scala/movingaverage/OptimizedMovingAverage.scala | 0 .../baeldung/scala/movingaverage/SlidingMovingAverage.scala | 0 .../scala/commoncollections/ArrayBufferUnitTest.scala | 0 .../scala/commoncollections/GetListItemsUnitTest.scala | 0 .../scala/commoncollections/ListSetOperationsUnitTest.scala | 0 .../scala/commoncollections/ScalaCollectionsUnitTest.scala | 0 .../scala/fixedsizelist/CircularBufferFixedSizeListSpec.scala | 0 .../com/baeldung/scala/fixedsizelist/FixedSizeListSpec.scala | 0 .../com/baeldung/scala/collections/Arrays.scala | 0 .../com/baeldung/scala/collections/FoldingLists.scala | 0 .../com/baeldung/scala/collections/IterateCollections.scala | 0 .../com/baeldung/scala/collections/ParallelCollections.scala | 0 .../com/baeldung/scala/flattening/Flattener.scala | 0 .../baeldung/scala/removeduplicates/DuplicatesRemover.scala | 0 .../com/baeldung/scala/splitlist/ListSplitter.scala | 0 .../com/baedung/scala/collections/FoldingListsUnitTest.scala | 0 .../baedung/scala/collections/ListConcatenationUnitTest.scala | 0 .../baedung/scala/collections/ParallelCollectionTest.scala | 0 .../scala/conversions/ConversionWrappersUnitTest.scala | 0 .../scala/conversions/JavaToScalaConversionsUnitTest.scala | 0 .../scala/conversions/ScalaToJavaConversionsUnitTest.scala | 0 .../com/baedung/scala/flattening/FlattenerSpec.scala | 0 .../com/baedung/scala/splitlist/ListSplitterSpec.scala | 0 .../scala/removeduplicates/DuplicatesRemoverSpec.scala | 0 .../com/baeldung/scala/collections/IterateMap.scala | 0 .../com/baeldung/scala/filtermap/FilterMap.scala | 0 .../com/baeldung/scala/mergemaps/CombineIterables.scala | 0 .../com/baeldung/scala/collections/IterateMapUnitTest.scala | 0 .../com/baeldung/scala/collections/MapKeyValue.scala | 0 .../scala/commoncollections/ListMapOperationsUnitTest.scala | 0 .../com/baeldung/scala/filtermap/FilterMapSpec.scala | 0 .../com/baeldung/scala/mergemaps/MergeMapsUnitTest.scala | 0 54 files changed, 4 insertions(+) rename scala-core-collections-modules/scala-core-collections-2/src/main/{scala-2 => scala}/com/baeldung/scala/firstmatching/Finder.scala (100%) rename scala-core-collections-modules/scala-core-collections-2/src/main/{scala-2 => scala}/com/baeldung/scala/flattening/Flattener.scala (100%) rename scala-core-collections-modules/scala-core-collections-2/src/main/{scala-2 => scala}/com/baeldung/scala/lastelement/Finder.scala (100%) rename scala-core-collections-modules/scala-core-collections-2/src/main/{scala-2 => scala}/com/baeldung/scala/lazylists/SimpleLazyList.scala (100%) rename scala-core-collections-modules/scala-core-collections-2/src/main/{scala-2 => scala}/com/baeldung/scala/lazylists/SimpleList.scala (100%) rename scala-core-collections-modules/scala-core-collections-2/src/main/{scala-2 => scala}/com/baeldung/scala/randomfixedsizesample/RandomFixedSizeSample.scala (100%) rename scala-core-collections-modules/scala-core-collections-2/src/main/{scala-2 => scala}/com/baeldung/scala/rotation/Rotator.scala (100%) rename scala-core-collections-modules/scala-core-collections-2/src/main/{scala-2 => scala}/com/baeldung/scala/sublist/SubListOfList.scala (100%) rename scala-core-collections-modules/scala-core-collections-2/src/test/{scala-2 => scala}/com/baeldung/scala/array/AppendAnElementToAnArrayUnitTest.scala (100%) rename scala-core-collections-modules/scala-core-collections-2/src/test/{scala-2 => scala}/com/baeldung/scala/firstmatching/FinderSpec.scala (100%) rename scala-core-collections-modules/scala-core-collections-2/src/test/{scala-2 => scala}/com/baeldung/scala/flattening/FlattenerSpec.scala (100%) rename scala-core-collections-modules/scala-core-collections-2/src/test/{scala-2 => scala}/com/baeldung/scala/lastelement/FinderSpec.scala (100%) rename scala-core-collections-modules/scala-core-collections-2/src/test/{scala-2 => scala}/com/baeldung/scala/lazylists/SimpleLazyListSpec.scala (100%) rename scala-core-collections-modules/scala-core-collections-2/src/test/{scala-2 => scala}/com/baeldung/scala/lazylists/SimpleListSpec.scala (100%) rename scala-core-collections-modules/scala-core-collections-2/src/test/{scala-2 => scala}/com/baeldung/scala/randomfixedsizesample/RandomFixedSizeSampleSpec.scala (100%) rename scala-core-collections-modules/scala-core-collections-2/src/test/{scala-2 => scala}/com/baeldung/scala/rotation/RotatorSpec.scala (100%) rename scala-core-collections-modules/scala-core-collections-2/src/test/{scala-2 => scala}/com/baeldung/scala/subarray/GetASubarrayUnitTest.scala (100%) rename scala-core-collections-modules/scala-core-collections-2/src/test/{scala-2 => scala}/com/baeldung/scala/sublist/SubListOfListSpec.scala (100%) rename scala-core-collections-modules/scala-core-collections-3/src/main/{scala-2 => scala}/com/baeldung/scala/commoncollections/ScalaCollections.scala (100%) rename scala-core-collections-modules/scala-core-collections-3/src/main/{scala-2 => scala}/com/baeldung/scala/fixedsizelist/CircularBufferFixedSizeList.scala (100%) rename scala-core-collections-modules/scala-core-collections-3/src/main/{scala-2 => scala}/com/baeldung/scala/fixedsizelist/FixedSizeList.scala (100%) rename scala-core-collections-modules/scala-core-collections-3/src/main/{scala-2 => scala}/com/baeldung/scala/movingaverage/OptimizedMovingAverage.scala (100%) rename scala-core-collections-modules/scala-core-collections-3/src/main/{scala-2 => scala}/com/baeldung/scala/movingaverage/SlidingMovingAverage.scala (100%) rename scala-core-collections-modules/scala-core-collections-3/src/test/{scala-2 => scala}/com/baeldung/scala/commoncollections/ArrayBufferUnitTest.scala (100%) rename scala-core-collections-modules/scala-core-collections-3/src/test/{scala-2 => scala}/com/baeldung/scala/commoncollections/GetListItemsUnitTest.scala (100%) rename scala-core-collections-modules/scala-core-collections-3/src/test/{scala-2 => scala}/com/baeldung/scala/commoncollections/ListSetOperationsUnitTest.scala (100%) rename scala-core-collections-modules/scala-core-collections-3/src/test/{scala-2 => scala}/com/baeldung/scala/commoncollections/ScalaCollectionsUnitTest.scala (100%) rename scala-core-collections-modules/scala-core-collections-3/src/test/{scala-2 => scala}/com/baeldung/scala/fixedsizelist/CircularBufferFixedSizeListSpec.scala (100%) rename scala-core-collections-modules/scala-core-collections-3/src/test/{scala-2 => scala}/com/baeldung/scala/fixedsizelist/FixedSizeListSpec.scala (100%) rename scala-core-collections-modules/scala-core-collections/src/main/{scala-2 => scala}/com/baeldung/scala/collections/Arrays.scala (100%) rename scala-core-collections-modules/scala-core-collections/src/main/{scala-2 => scala}/com/baeldung/scala/collections/FoldingLists.scala (100%) rename scala-core-collections-modules/scala-core-collections/src/main/{scala-2 => scala}/com/baeldung/scala/collections/IterateCollections.scala (100%) rename scala-core-collections-modules/scala-core-collections/src/main/{scala-2 => scala}/com/baeldung/scala/collections/ParallelCollections.scala (100%) rename scala-core-collections-modules/scala-core-collections/src/main/{scala-2 => scala}/com/baeldung/scala/flattening/Flattener.scala (100%) rename scala-core-collections-modules/scala-core-collections/src/main/{scala-2 => scala}/com/baeldung/scala/removeduplicates/DuplicatesRemover.scala (100%) rename scala-core-collections-modules/scala-core-collections/src/main/{scala-2 => scala}/com/baeldung/scala/splitlist/ListSplitter.scala (100%) rename scala-core-collections-modules/scala-core-collections/src/test/{scala-2 => scala}/com/baedung/scala/collections/FoldingListsUnitTest.scala (100%) rename scala-core-collections-modules/scala-core-collections/src/test/{scala-2 => scala}/com/baedung/scala/collections/ListConcatenationUnitTest.scala (100%) rename scala-core-collections-modules/scala-core-collections/src/test/{scala-2 => scala}/com/baedung/scala/collections/ParallelCollectionTest.scala (100%) rename scala-core-collections-modules/scala-core-collections/src/test/{scala-2 => scala}/com/baedung/scala/conversions/ConversionWrappersUnitTest.scala (100%) rename scala-core-collections-modules/scala-core-collections/src/test/{scala-2 => scala}/com/baedung/scala/conversions/JavaToScalaConversionsUnitTest.scala (100%) rename scala-core-collections-modules/scala-core-collections/src/test/{scala-2 => scala}/com/baedung/scala/conversions/ScalaToJavaConversionsUnitTest.scala (100%) rename scala-core-collections-modules/scala-core-collections/src/test/{scala-2 => scala}/com/baedung/scala/flattening/FlattenerSpec.scala (100%) rename scala-core-collections-modules/scala-core-collections/src/test/{scala-2 => scala}/com/baedung/scala/splitlist/ListSplitterSpec.scala (100%) rename scala-core-collections-modules/scala-core-collections/src/test/{scala-2 => scala}/com/baeldung/scala/removeduplicates/DuplicatesRemoverSpec.scala (100%) rename scala-core-collections-modules/scala-core-map/src/main/{scala-2 => scala}/com/baeldung/scala/collections/IterateMap.scala (100%) rename scala-core-collections-modules/scala-core-map/src/main/{scala-2 => scala}/com/baeldung/scala/filtermap/FilterMap.scala (100%) rename scala-core-collections-modules/scala-core-map/src/main/{scala-2 => scala}/com/baeldung/scala/mergemaps/CombineIterables.scala (100%) rename scala-core-collections-modules/scala-core-map/src/test/{scala-2 => scala}/com/baeldung/scala/collections/IterateMapUnitTest.scala (100%) rename scala-core-collections-modules/scala-core-map/src/test/{scala-2 => scala}/com/baeldung/scala/collections/MapKeyValue.scala (100%) rename scala-core-collections-modules/scala-core-map/src/test/{scala-2 => scala}/com/baeldung/scala/commoncollections/ListMapOperationsUnitTest.scala (100%) rename scala-core-collections-modules/scala-core-map/src/test/{scala-2 => scala}/com/baeldung/scala/filtermap/FilterMapSpec.scala (100%) rename scala-core-collections-modules/scala-core-map/src/test/{scala-2 => scala}/com/baeldung/scala/mergemaps/MergeMapsUnitTest.scala (100%) diff --git a/build.sbt b/build.sbt index f77b77ec3..e34d9e36c 100644 --- a/build.sbt +++ b/build.sbt @@ -144,6 +144,7 @@ lazy val scala_core_collections = (project in file("scala-core-collections-modules/scala-core-collections")) .settings( name := "scala-core-collections", + scalaVersion := scala3Version, libraryDependencies ++= Seq( "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" ) ++ scalaTestDeps @@ -153,18 +154,21 @@ lazy val scala_core_collections_2 = (project in file("scala-core-collections-modules/scala-core-collections-2")) .settings( name := "scala-core-collections-2", + scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps ) lazy val scala_core_collections_3 = (project in file("scala-core-collections-modules/scala-core-collections-3")) .settings( + scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps ) lazy val scala_core_map = (project in file("scala-core-collections-modules/scala-core-map")) .settings( + scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps ) diff --git a/scala-core-collections-modules/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/firstmatching/Finder.scala b/scala-core-collections-modules/scala-core-collections-2/src/main/scala/com/baeldung/scala/firstmatching/Finder.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/firstmatching/Finder.scala rename to scala-core-collections-modules/scala-core-collections-2/src/main/scala/com/baeldung/scala/firstmatching/Finder.scala diff --git a/scala-core-collections-modules/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/flattening/Flattener.scala b/scala-core-collections-modules/scala-core-collections-2/src/main/scala/com/baeldung/scala/flattening/Flattener.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/flattening/Flattener.scala rename to scala-core-collections-modules/scala-core-collections-2/src/main/scala/com/baeldung/scala/flattening/Flattener.scala diff --git a/scala-core-collections-modules/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/lastelement/Finder.scala b/scala-core-collections-modules/scala-core-collections-2/src/main/scala/com/baeldung/scala/lastelement/Finder.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/lastelement/Finder.scala rename to scala-core-collections-modules/scala-core-collections-2/src/main/scala/com/baeldung/scala/lastelement/Finder.scala diff --git a/scala-core-collections-modules/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/lazylists/SimpleLazyList.scala b/scala-core-collections-modules/scala-core-collections-2/src/main/scala/com/baeldung/scala/lazylists/SimpleLazyList.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/lazylists/SimpleLazyList.scala rename to scala-core-collections-modules/scala-core-collections-2/src/main/scala/com/baeldung/scala/lazylists/SimpleLazyList.scala diff --git a/scala-core-collections-modules/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/lazylists/SimpleList.scala b/scala-core-collections-modules/scala-core-collections-2/src/main/scala/com/baeldung/scala/lazylists/SimpleList.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/lazylists/SimpleList.scala rename to scala-core-collections-modules/scala-core-collections-2/src/main/scala/com/baeldung/scala/lazylists/SimpleList.scala diff --git a/scala-core-collections-modules/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/randomfixedsizesample/RandomFixedSizeSample.scala b/scala-core-collections-modules/scala-core-collections-2/src/main/scala/com/baeldung/scala/randomfixedsizesample/RandomFixedSizeSample.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/randomfixedsizesample/RandomFixedSizeSample.scala rename to scala-core-collections-modules/scala-core-collections-2/src/main/scala/com/baeldung/scala/randomfixedsizesample/RandomFixedSizeSample.scala diff --git a/scala-core-collections-modules/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/rotation/Rotator.scala b/scala-core-collections-modules/scala-core-collections-2/src/main/scala/com/baeldung/scala/rotation/Rotator.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/rotation/Rotator.scala rename to scala-core-collections-modules/scala-core-collections-2/src/main/scala/com/baeldung/scala/rotation/Rotator.scala diff --git a/scala-core-collections-modules/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/sublist/SubListOfList.scala b/scala-core-collections-modules/scala-core-collections-2/src/main/scala/com/baeldung/scala/sublist/SubListOfList.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections-2/src/main/scala-2/com/baeldung/scala/sublist/SubListOfList.scala rename to scala-core-collections-modules/scala-core-collections-2/src/main/scala/com/baeldung/scala/sublist/SubListOfList.scala diff --git a/scala-core-collections-modules/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/array/AppendAnElementToAnArrayUnitTest.scala b/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/array/AppendAnElementToAnArrayUnitTest.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/array/AppendAnElementToAnArrayUnitTest.scala rename to scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/array/AppendAnElementToAnArrayUnitTest.scala diff --git a/scala-core-collections-modules/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/firstmatching/FinderSpec.scala b/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/firstmatching/FinderSpec.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/firstmatching/FinderSpec.scala rename to scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/firstmatching/FinderSpec.scala diff --git a/scala-core-collections-modules/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/flattening/FlattenerSpec.scala b/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/flattening/FlattenerSpec.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/flattening/FlattenerSpec.scala rename to scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/flattening/FlattenerSpec.scala diff --git a/scala-core-collections-modules/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/lastelement/FinderSpec.scala b/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/lastelement/FinderSpec.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/lastelement/FinderSpec.scala rename to scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/lastelement/FinderSpec.scala diff --git a/scala-core-collections-modules/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/lazylists/SimpleLazyListSpec.scala b/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/lazylists/SimpleLazyListSpec.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/lazylists/SimpleLazyListSpec.scala rename to scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/lazylists/SimpleLazyListSpec.scala diff --git a/scala-core-collections-modules/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/lazylists/SimpleListSpec.scala b/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/lazylists/SimpleListSpec.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/lazylists/SimpleListSpec.scala rename to scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/lazylists/SimpleListSpec.scala diff --git a/scala-core-collections-modules/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/randomfixedsizesample/RandomFixedSizeSampleSpec.scala b/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/randomfixedsizesample/RandomFixedSizeSampleSpec.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/randomfixedsizesample/RandomFixedSizeSampleSpec.scala rename to scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/randomfixedsizesample/RandomFixedSizeSampleSpec.scala diff --git a/scala-core-collections-modules/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/rotation/RotatorSpec.scala b/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/rotation/RotatorSpec.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/rotation/RotatorSpec.scala rename to scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/rotation/RotatorSpec.scala diff --git a/scala-core-collections-modules/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/subarray/GetASubarrayUnitTest.scala b/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/subarray/GetASubarrayUnitTest.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/subarray/GetASubarrayUnitTest.scala rename to scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/subarray/GetASubarrayUnitTest.scala diff --git a/scala-core-collections-modules/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/sublist/SubListOfListSpec.scala b/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/sublist/SubListOfListSpec.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections-2/src/test/scala-2/com/baeldung/scala/sublist/SubListOfListSpec.scala rename to scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/sublist/SubListOfListSpec.scala diff --git a/scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/commoncollections/ScalaCollections.scala b/scala-core-collections-modules/scala-core-collections-3/src/main/scala/com/baeldung/scala/commoncollections/ScalaCollections.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/commoncollections/ScalaCollections.scala rename to scala-core-collections-modules/scala-core-collections-3/src/main/scala/com/baeldung/scala/commoncollections/ScalaCollections.scala diff --git a/scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/fixedsizelist/CircularBufferFixedSizeList.scala b/scala-core-collections-modules/scala-core-collections-3/src/main/scala/com/baeldung/scala/fixedsizelist/CircularBufferFixedSizeList.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/fixedsizelist/CircularBufferFixedSizeList.scala rename to scala-core-collections-modules/scala-core-collections-3/src/main/scala/com/baeldung/scala/fixedsizelist/CircularBufferFixedSizeList.scala diff --git a/scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/fixedsizelist/FixedSizeList.scala b/scala-core-collections-modules/scala-core-collections-3/src/main/scala/com/baeldung/scala/fixedsizelist/FixedSizeList.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/fixedsizelist/FixedSizeList.scala rename to scala-core-collections-modules/scala-core-collections-3/src/main/scala/com/baeldung/scala/fixedsizelist/FixedSizeList.scala diff --git a/scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/movingaverage/OptimizedMovingAverage.scala b/scala-core-collections-modules/scala-core-collections-3/src/main/scala/com/baeldung/scala/movingaverage/OptimizedMovingAverage.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/movingaverage/OptimizedMovingAverage.scala rename to scala-core-collections-modules/scala-core-collections-3/src/main/scala/com/baeldung/scala/movingaverage/OptimizedMovingAverage.scala diff --git a/scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/movingaverage/SlidingMovingAverage.scala b/scala-core-collections-modules/scala-core-collections-3/src/main/scala/com/baeldung/scala/movingaverage/SlidingMovingAverage.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections-3/src/main/scala-2/com/baeldung/scala/movingaverage/SlidingMovingAverage.scala rename to scala-core-collections-modules/scala-core-collections-3/src/main/scala/com/baeldung/scala/movingaverage/SlidingMovingAverage.scala diff --git a/scala-core-collections-modules/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/commoncollections/ArrayBufferUnitTest.scala b/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/commoncollections/ArrayBufferUnitTest.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/commoncollections/ArrayBufferUnitTest.scala rename to scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/commoncollections/ArrayBufferUnitTest.scala diff --git a/scala-core-collections-modules/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/commoncollections/GetListItemsUnitTest.scala b/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/commoncollections/GetListItemsUnitTest.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/commoncollections/GetListItemsUnitTest.scala rename to scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/commoncollections/GetListItemsUnitTest.scala diff --git a/scala-core-collections-modules/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/commoncollections/ListSetOperationsUnitTest.scala b/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/commoncollections/ListSetOperationsUnitTest.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/commoncollections/ListSetOperationsUnitTest.scala rename to scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/commoncollections/ListSetOperationsUnitTest.scala diff --git a/scala-core-collections-modules/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/commoncollections/ScalaCollectionsUnitTest.scala b/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/commoncollections/ScalaCollectionsUnitTest.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/commoncollections/ScalaCollectionsUnitTest.scala rename to scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/commoncollections/ScalaCollectionsUnitTest.scala diff --git a/scala-core-collections-modules/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/fixedsizelist/CircularBufferFixedSizeListSpec.scala b/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/fixedsizelist/CircularBufferFixedSizeListSpec.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/fixedsizelist/CircularBufferFixedSizeListSpec.scala rename to scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/fixedsizelist/CircularBufferFixedSizeListSpec.scala diff --git a/scala-core-collections-modules/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/fixedsizelist/FixedSizeListSpec.scala b/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/fixedsizelist/FixedSizeListSpec.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections-3/src/test/scala-2/com/baeldung/scala/fixedsizelist/FixedSizeListSpec.scala rename to scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/fixedsizelist/FixedSizeListSpec.scala diff --git a/scala-core-collections-modules/scala-core-collections/src/main/scala-2/com/baeldung/scala/collections/Arrays.scala b/scala-core-collections-modules/scala-core-collections/src/main/scala/com/baeldung/scala/collections/Arrays.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections/src/main/scala-2/com/baeldung/scala/collections/Arrays.scala rename to scala-core-collections-modules/scala-core-collections/src/main/scala/com/baeldung/scala/collections/Arrays.scala diff --git a/scala-core-collections-modules/scala-core-collections/src/main/scala-2/com/baeldung/scala/collections/FoldingLists.scala b/scala-core-collections-modules/scala-core-collections/src/main/scala/com/baeldung/scala/collections/FoldingLists.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections/src/main/scala-2/com/baeldung/scala/collections/FoldingLists.scala rename to scala-core-collections-modules/scala-core-collections/src/main/scala/com/baeldung/scala/collections/FoldingLists.scala diff --git a/scala-core-collections-modules/scala-core-collections/src/main/scala-2/com/baeldung/scala/collections/IterateCollections.scala b/scala-core-collections-modules/scala-core-collections/src/main/scala/com/baeldung/scala/collections/IterateCollections.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections/src/main/scala-2/com/baeldung/scala/collections/IterateCollections.scala rename to scala-core-collections-modules/scala-core-collections/src/main/scala/com/baeldung/scala/collections/IterateCollections.scala diff --git a/scala-core-collections-modules/scala-core-collections/src/main/scala-2/com/baeldung/scala/collections/ParallelCollections.scala b/scala-core-collections-modules/scala-core-collections/src/main/scala/com/baeldung/scala/collections/ParallelCollections.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections/src/main/scala-2/com/baeldung/scala/collections/ParallelCollections.scala rename to scala-core-collections-modules/scala-core-collections/src/main/scala/com/baeldung/scala/collections/ParallelCollections.scala diff --git a/scala-core-collections-modules/scala-core-collections/src/main/scala-2/com/baeldung/scala/flattening/Flattener.scala b/scala-core-collections-modules/scala-core-collections/src/main/scala/com/baeldung/scala/flattening/Flattener.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections/src/main/scala-2/com/baeldung/scala/flattening/Flattener.scala rename to scala-core-collections-modules/scala-core-collections/src/main/scala/com/baeldung/scala/flattening/Flattener.scala diff --git a/scala-core-collections-modules/scala-core-collections/src/main/scala-2/com/baeldung/scala/removeduplicates/DuplicatesRemover.scala b/scala-core-collections-modules/scala-core-collections/src/main/scala/com/baeldung/scala/removeduplicates/DuplicatesRemover.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections/src/main/scala-2/com/baeldung/scala/removeduplicates/DuplicatesRemover.scala rename to scala-core-collections-modules/scala-core-collections/src/main/scala/com/baeldung/scala/removeduplicates/DuplicatesRemover.scala diff --git a/scala-core-collections-modules/scala-core-collections/src/main/scala-2/com/baeldung/scala/splitlist/ListSplitter.scala b/scala-core-collections-modules/scala-core-collections/src/main/scala/com/baeldung/scala/splitlist/ListSplitter.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections/src/main/scala-2/com/baeldung/scala/splitlist/ListSplitter.scala rename to scala-core-collections-modules/scala-core-collections/src/main/scala/com/baeldung/scala/splitlist/ListSplitter.scala diff --git a/scala-core-collections-modules/scala-core-collections/src/test/scala-2/com/baedung/scala/collections/FoldingListsUnitTest.scala b/scala-core-collections-modules/scala-core-collections/src/test/scala/com/baedung/scala/collections/FoldingListsUnitTest.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections/src/test/scala-2/com/baedung/scala/collections/FoldingListsUnitTest.scala rename to scala-core-collections-modules/scala-core-collections/src/test/scala/com/baedung/scala/collections/FoldingListsUnitTest.scala diff --git a/scala-core-collections-modules/scala-core-collections/src/test/scala-2/com/baedung/scala/collections/ListConcatenationUnitTest.scala b/scala-core-collections-modules/scala-core-collections/src/test/scala/com/baedung/scala/collections/ListConcatenationUnitTest.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections/src/test/scala-2/com/baedung/scala/collections/ListConcatenationUnitTest.scala rename to scala-core-collections-modules/scala-core-collections/src/test/scala/com/baedung/scala/collections/ListConcatenationUnitTest.scala diff --git a/scala-core-collections-modules/scala-core-collections/src/test/scala-2/com/baedung/scala/collections/ParallelCollectionTest.scala b/scala-core-collections-modules/scala-core-collections/src/test/scala/com/baedung/scala/collections/ParallelCollectionTest.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections/src/test/scala-2/com/baedung/scala/collections/ParallelCollectionTest.scala rename to scala-core-collections-modules/scala-core-collections/src/test/scala/com/baedung/scala/collections/ParallelCollectionTest.scala diff --git a/scala-core-collections-modules/scala-core-collections/src/test/scala-2/com/baedung/scala/conversions/ConversionWrappersUnitTest.scala b/scala-core-collections-modules/scala-core-collections/src/test/scala/com/baedung/scala/conversions/ConversionWrappersUnitTest.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections/src/test/scala-2/com/baedung/scala/conversions/ConversionWrappersUnitTest.scala rename to scala-core-collections-modules/scala-core-collections/src/test/scala/com/baedung/scala/conversions/ConversionWrappersUnitTest.scala diff --git a/scala-core-collections-modules/scala-core-collections/src/test/scala-2/com/baedung/scala/conversions/JavaToScalaConversionsUnitTest.scala b/scala-core-collections-modules/scala-core-collections/src/test/scala/com/baedung/scala/conversions/JavaToScalaConversionsUnitTest.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections/src/test/scala-2/com/baedung/scala/conversions/JavaToScalaConversionsUnitTest.scala rename to scala-core-collections-modules/scala-core-collections/src/test/scala/com/baedung/scala/conversions/JavaToScalaConversionsUnitTest.scala diff --git a/scala-core-collections-modules/scala-core-collections/src/test/scala-2/com/baedung/scala/conversions/ScalaToJavaConversionsUnitTest.scala b/scala-core-collections-modules/scala-core-collections/src/test/scala/com/baedung/scala/conversions/ScalaToJavaConversionsUnitTest.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections/src/test/scala-2/com/baedung/scala/conversions/ScalaToJavaConversionsUnitTest.scala rename to scala-core-collections-modules/scala-core-collections/src/test/scala/com/baedung/scala/conversions/ScalaToJavaConversionsUnitTest.scala diff --git a/scala-core-collections-modules/scala-core-collections/src/test/scala-2/com/baedung/scala/flattening/FlattenerSpec.scala b/scala-core-collections-modules/scala-core-collections/src/test/scala/com/baedung/scala/flattening/FlattenerSpec.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections/src/test/scala-2/com/baedung/scala/flattening/FlattenerSpec.scala rename to scala-core-collections-modules/scala-core-collections/src/test/scala/com/baedung/scala/flattening/FlattenerSpec.scala diff --git a/scala-core-collections-modules/scala-core-collections/src/test/scala-2/com/baedung/scala/splitlist/ListSplitterSpec.scala b/scala-core-collections-modules/scala-core-collections/src/test/scala/com/baedung/scala/splitlist/ListSplitterSpec.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections/src/test/scala-2/com/baedung/scala/splitlist/ListSplitterSpec.scala rename to scala-core-collections-modules/scala-core-collections/src/test/scala/com/baedung/scala/splitlist/ListSplitterSpec.scala diff --git a/scala-core-collections-modules/scala-core-collections/src/test/scala-2/com/baeldung/scala/removeduplicates/DuplicatesRemoverSpec.scala b/scala-core-collections-modules/scala-core-collections/src/test/scala/com/baeldung/scala/removeduplicates/DuplicatesRemoverSpec.scala similarity index 100% rename from scala-core-collections-modules/scala-core-collections/src/test/scala-2/com/baeldung/scala/removeduplicates/DuplicatesRemoverSpec.scala rename to scala-core-collections-modules/scala-core-collections/src/test/scala/com/baeldung/scala/removeduplicates/DuplicatesRemoverSpec.scala diff --git a/scala-core-collections-modules/scala-core-map/src/main/scala-2/com/baeldung/scala/collections/IterateMap.scala b/scala-core-collections-modules/scala-core-map/src/main/scala/com/baeldung/scala/collections/IterateMap.scala similarity index 100% rename from scala-core-collections-modules/scala-core-map/src/main/scala-2/com/baeldung/scala/collections/IterateMap.scala rename to scala-core-collections-modules/scala-core-map/src/main/scala/com/baeldung/scala/collections/IterateMap.scala diff --git a/scala-core-collections-modules/scala-core-map/src/main/scala-2/com/baeldung/scala/filtermap/FilterMap.scala b/scala-core-collections-modules/scala-core-map/src/main/scala/com/baeldung/scala/filtermap/FilterMap.scala similarity index 100% rename from scala-core-collections-modules/scala-core-map/src/main/scala-2/com/baeldung/scala/filtermap/FilterMap.scala rename to scala-core-collections-modules/scala-core-map/src/main/scala/com/baeldung/scala/filtermap/FilterMap.scala diff --git a/scala-core-collections-modules/scala-core-map/src/main/scala-2/com/baeldung/scala/mergemaps/CombineIterables.scala b/scala-core-collections-modules/scala-core-map/src/main/scala/com/baeldung/scala/mergemaps/CombineIterables.scala similarity index 100% rename from scala-core-collections-modules/scala-core-map/src/main/scala-2/com/baeldung/scala/mergemaps/CombineIterables.scala rename to scala-core-collections-modules/scala-core-map/src/main/scala/com/baeldung/scala/mergemaps/CombineIterables.scala diff --git a/scala-core-collections-modules/scala-core-map/src/test/scala-2/com/baeldung/scala/collections/IterateMapUnitTest.scala b/scala-core-collections-modules/scala-core-map/src/test/scala/com/baeldung/scala/collections/IterateMapUnitTest.scala similarity index 100% rename from scala-core-collections-modules/scala-core-map/src/test/scala-2/com/baeldung/scala/collections/IterateMapUnitTest.scala rename to scala-core-collections-modules/scala-core-map/src/test/scala/com/baeldung/scala/collections/IterateMapUnitTest.scala diff --git a/scala-core-collections-modules/scala-core-map/src/test/scala-2/com/baeldung/scala/collections/MapKeyValue.scala b/scala-core-collections-modules/scala-core-map/src/test/scala/com/baeldung/scala/collections/MapKeyValue.scala similarity index 100% rename from scala-core-collections-modules/scala-core-map/src/test/scala-2/com/baeldung/scala/collections/MapKeyValue.scala rename to scala-core-collections-modules/scala-core-map/src/test/scala/com/baeldung/scala/collections/MapKeyValue.scala diff --git a/scala-core-collections-modules/scala-core-map/src/test/scala-2/com/baeldung/scala/commoncollections/ListMapOperationsUnitTest.scala b/scala-core-collections-modules/scala-core-map/src/test/scala/com/baeldung/scala/commoncollections/ListMapOperationsUnitTest.scala similarity index 100% rename from scala-core-collections-modules/scala-core-map/src/test/scala-2/com/baeldung/scala/commoncollections/ListMapOperationsUnitTest.scala rename to scala-core-collections-modules/scala-core-map/src/test/scala/com/baeldung/scala/commoncollections/ListMapOperationsUnitTest.scala diff --git a/scala-core-collections-modules/scala-core-map/src/test/scala-2/com/baeldung/scala/filtermap/FilterMapSpec.scala b/scala-core-collections-modules/scala-core-map/src/test/scala/com/baeldung/scala/filtermap/FilterMapSpec.scala similarity index 100% rename from scala-core-collections-modules/scala-core-map/src/test/scala-2/com/baeldung/scala/filtermap/FilterMapSpec.scala rename to scala-core-collections-modules/scala-core-map/src/test/scala/com/baeldung/scala/filtermap/FilterMapSpec.scala diff --git a/scala-core-collections-modules/scala-core-map/src/test/scala-2/com/baeldung/scala/mergemaps/MergeMapsUnitTest.scala b/scala-core-collections-modules/scala-core-map/src/test/scala/com/baeldung/scala/mergemaps/MergeMapsUnitTest.scala similarity index 100% rename from scala-core-collections-modules/scala-core-map/src/test/scala-2/com/baeldung/scala/mergemaps/MergeMapsUnitTest.scala rename to scala-core-collections-modules/scala-core-map/src/test/scala/com/baeldung/scala/mergemaps/MergeMapsUnitTest.scala From d79d4dccc6f9fae27d9d8820e83228f204f739b7 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 2 Dec 2023 10:42:25 +0100 Subject: [PATCH 0166/1318] Fixed compilation error with lamba parenthesis --- .../test/scala/com/baeldung/scala/collections/MapKeyValue.scala | 2 +- .../test/scala/com/baeldung/scala/filtermap/FilterMapSpec.scala | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scala-core-collections-modules/scala-core-map/src/test/scala/com/baeldung/scala/collections/MapKeyValue.scala b/scala-core-collections-modules/scala-core-map/src/test/scala/com/baeldung/scala/collections/MapKeyValue.scala index c720e2909..4c04a7d35 100644 --- a/scala-core-collections-modules/scala-core-map/src/test/scala/com/baeldung/scala/collections/MapKeyValue.scala +++ b/scala-core-collections-modules/scala-core-map/src/test/scala/com/baeldung/scala/collections/MapKeyValue.scala @@ -7,7 +7,7 @@ class MapKeyValue extends AnyWordSpec with Matchers { "Map::map" should { "map both keys and values to a new Iterable" in { val m = Map(1 -> "A", 2 -> "B") - val f = { t: (Int, String) => s"${t._1}${t._2}" } + val f = { (t: (Int, String)) => s"${t._1}${t._2}" } (m map f) shouldBe Iterable("1A", "2B") } diff --git a/scala-core-collections-modules/scala-core-map/src/test/scala/com/baeldung/scala/filtermap/FilterMapSpec.scala b/scala-core-collections-modules/scala-core-map/src/test/scala/com/baeldung/scala/filtermap/FilterMapSpec.scala index c78e70041..42d735bfc 100644 --- a/scala-core-collections-modules/scala-core-map/src/test/scala/com/baeldung/scala/filtermap/FilterMapSpec.scala +++ b/scala-core-collections-modules/scala-core-map/src/test/scala/com/baeldung/scala/filtermap/FilterMapSpec.scala @@ -23,7 +23,7 @@ class FilterMapSpec filterKeysSet.toMap, withFilterMap.map(x => x) ) - forAll(filteredMapTable) { map: Map[Rank, Option[String]] => + forAll(filteredMapTable) { (map: Map[Rank, Option[String]]) => map.valuesIterator.exists(_.contains(None)) shouldBe false } } From 8de20c07307b4352096396a20796e3aa8b5ad37d Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 2 Dec 2023 12:34:08 +0100 Subject: [PATCH 0167/1318] Migrated scala-string modules to scala 3 --- build.sbt | 1 + .../com/baeldung/scala/strings/bytes/ByteArrayToString.scala | 0 .../com/baeldung/scala/strings/camelcase/StringWrapper.scala | 0 .../scala/strings/definition/DefiningStringsExamples.scala | 0 .../scala/strings/interpolation/CustomInterpolatorObj.scala | 0 .../baeldung/scala/strings/keywordsearch/KeywordCounter.scala | 0 .../com/baeldung/scala/strings/bytes/ByteArrayToStringTest.scala | 0 .../com/baeldung/scala/strings/camelcase/CamelCaseSpec.scala | 0 .../scala/strings/comparison/StringComparisonUnitTest.scala | 0 .../interpolation/strings/definition/UsingRegexUnitTest.scala | 0 .../strings/interpolation/CustomInterpolatorObjUnitTest.scala | 0 .../strings/interpolation/EscapeUsingMetaCharUnitTest.scala | 0 .../scala/strings/keywordsearch/KeywordMatchingSpec.scala | 0 13 files changed, 1 insertion(+) rename scala-strings/src/main/{scala-2 => scala}/com/baeldung/scala/strings/bytes/ByteArrayToString.scala (100%) rename scala-strings/src/main/{scala-2 => scala}/com/baeldung/scala/strings/camelcase/StringWrapper.scala (100%) rename scala-strings/src/main/{scala-2 => scala}/com/baeldung/scala/strings/definition/DefiningStringsExamples.scala (100%) rename scala-strings/src/main/{scala-2 => scala}/com/baeldung/scala/strings/interpolation/CustomInterpolatorObj.scala (100%) rename scala-strings/src/main/{scala-2 => scala}/com/baeldung/scala/strings/keywordsearch/KeywordCounter.scala (100%) rename scala-strings/src/test/{scala-2 => scala}/com/baeldung/scala/strings/bytes/ByteArrayToStringTest.scala (100%) rename scala-strings/src/test/{scala-2 => scala}/com/baeldung/scala/strings/camelcase/CamelCaseSpec.scala (100%) rename scala-strings/src/test/{scala-2 => scala}/com/baeldung/scala/strings/comparison/StringComparisonUnitTest.scala (100%) rename scala-strings/src/test/{scala-2 => scala}/com/baeldung/scala/strings/interpolation/strings/definition/UsingRegexUnitTest.scala (100%) rename scala-strings/src/test/{scala-2 => scala}/com/baeldung/scala/strings/interpolation/strings/interpolation/CustomInterpolatorObjUnitTest.scala (100%) rename scala-strings/src/test/{scala-2 => scala}/com/baeldung/scala/strings/interpolation/strings/interpolation/EscapeUsingMetaCharUnitTest.scala (100%) rename scala-strings/src/test/{scala-2 => scala}/com/baeldung/scala/strings/keywordsearch/KeywordMatchingSpec.scala (100%) diff --git a/build.sbt b/build.sbt index e34d9e36c..4ab8d0c5a 100644 --- a/build.sbt +++ b/build.sbt @@ -443,6 +443,7 @@ lazy val scala_libraries_6 = (project in file("scala-libraries-6")) lazy val scala_strings = (project in file("scala-strings")) .settings( name := "scala-strings", + scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps, libraryDependencies += jUnitInterface, libraryDependencies += "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" diff --git a/scala-strings/src/main/scala-2/com/baeldung/scala/strings/bytes/ByteArrayToString.scala b/scala-strings/src/main/scala/com/baeldung/scala/strings/bytes/ByteArrayToString.scala similarity index 100% rename from scala-strings/src/main/scala-2/com/baeldung/scala/strings/bytes/ByteArrayToString.scala rename to scala-strings/src/main/scala/com/baeldung/scala/strings/bytes/ByteArrayToString.scala diff --git a/scala-strings/src/main/scala-2/com/baeldung/scala/strings/camelcase/StringWrapper.scala b/scala-strings/src/main/scala/com/baeldung/scala/strings/camelcase/StringWrapper.scala similarity index 100% rename from scala-strings/src/main/scala-2/com/baeldung/scala/strings/camelcase/StringWrapper.scala rename to scala-strings/src/main/scala/com/baeldung/scala/strings/camelcase/StringWrapper.scala diff --git a/scala-strings/src/main/scala-2/com/baeldung/scala/strings/definition/DefiningStringsExamples.scala b/scala-strings/src/main/scala/com/baeldung/scala/strings/definition/DefiningStringsExamples.scala similarity index 100% rename from scala-strings/src/main/scala-2/com/baeldung/scala/strings/definition/DefiningStringsExamples.scala rename to scala-strings/src/main/scala/com/baeldung/scala/strings/definition/DefiningStringsExamples.scala diff --git a/scala-strings/src/main/scala-2/com/baeldung/scala/strings/interpolation/CustomInterpolatorObj.scala b/scala-strings/src/main/scala/com/baeldung/scala/strings/interpolation/CustomInterpolatorObj.scala similarity index 100% rename from scala-strings/src/main/scala-2/com/baeldung/scala/strings/interpolation/CustomInterpolatorObj.scala rename to scala-strings/src/main/scala/com/baeldung/scala/strings/interpolation/CustomInterpolatorObj.scala diff --git a/scala-strings/src/main/scala-2/com/baeldung/scala/strings/keywordsearch/KeywordCounter.scala b/scala-strings/src/main/scala/com/baeldung/scala/strings/keywordsearch/KeywordCounter.scala similarity index 100% rename from scala-strings/src/main/scala-2/com/baeldung/scala/strings/keywordsearch/KeywordCounter.scala rename to scala-strings/src/main/scala/com/baeldung/scala/strings/keywordsearch/KeywordCounter.scala diff --git a/scala-strings/src/test/scala-2/com/baeldung/scala/strings/bytes/ByteArrayToStringTest.scala b/scala-strings/src/test/scala/com/baeldung/scala/strings/bytes/ByteArrayToStringTest.scala similarity index 100% rename from scala-strings/src/test/scala-2/com/baeldung/scala/strings/bytes/ByteArrayToStringTest.scala rename to scala-strings/src/test/scala/com/baeldung/scala/strings/bytes/ByteArrayToStringTest.scala diff --git a/scala-strings/src/test/scala-2/com/baeldung/scala/strings/camelcase/CamelCaseSpec.scala b/scala-strings/src/test/scala/com/baeldung/scala/strings/camelcase/CamelCaseSpec.scala similarity index 100% rename from scala-strings/src/test/scala-2/com/baeldung/scala/strings/camelcase/CamelCaseSpec.scala rename to scala-strings/src/test/scala/com/baeldung/scala/strings/camelcase/CamelCaseSpec.scala diff --git a/scala-strings/src/test/scala-2/com/baeldung/scala/strings/comparison/StringComparisonUnitTest.scala b/scala-strings/src/test/scala/com/baeldung/scala/strings/comparison/StringComparisonUnitTest.scala similarity index 100% rename from scala-strings/src/test/scala-2/com/baeldung/scala/strings/comparison/StringComparisonUnitTest.scala rename to scala-strings/src/test/scala/com/baeldung/scala/strings/comparison/StringComparisonUnitTest.scala diff --git a/scala-strings/src/test/scala-2/com/baeldung/scala/strings/interpolation/strings/definition/UsingRegexUnitTest.scala b/scala-strings/src/test/scala/com/baeldung/scala/strings/interpolation/strings/definition/UsingRegexUnitTest.scala similarity index 100% rename from scala-strings/src/test/scala-2/com/baeldung/scala/strings/interpolation/strings/definition/UsingRegexUnitTest.scala rename to scala-strings/src/test/scala/com/baeldung/scala/strings/interpolation/strings/definition/UsingRegexUnitTest.scala diff --git a/scala-strings/src/test/scala-2/com/baeldung/scala/strings/interpolation/strings/interpolation/CustomInterpolatorObjUnitTest.scala b/scala-strings/src/test/scala/com/baeldung/scala/strings/interpolation/strings/interpolation/CustomInterpolatorObjUnitTest.scala similarity index 100% rename from scala-strings/src/test/scala-2/com/baeldung/scala/strings/interpolation/strings/interpolation/CustomInterpolatorObjUnitTest.scala rename to scala-strings/src/test/scala/com/baeldung/scala/strings/interpolation/strings/interpolation/CustomInterpolatorObjUnitTest.scala diff --git a/scala-strings/src/test/scala-2/com/baeldung/scala/strings/interpolation/strings/interpolation/EscapeUsingMetaCharUnitTest.scala b/scala-strings/src/test/scala/com/baeldung/scala/strings/interpolation/strings/interpolation/EscapeUsingMetaCharUnitTest.scala similarity index 100% rename from scala-strings/src/test/scala-2/com/baeldung/scala/strings/interpolation/strings/interpolation/EscapeUsingMetaCharUnitTest.scala rename to scala-strings/src/test/scala/com/baeldung/scala/strings/interpolation/strings/interpolation/EscapeUsingMetaCharUnitTest.scala diff --git a/scala-strings/src/test/scala-2/com/baeldung/scala/strings/keywordsearch/KeywordMatchingSpec.scala b/scala-strings/src/test/scala/com/baeldung/scala/strings/keywordsearch/KeywordMatchingSpec.scala similarity index 100% rename from scala-strings/src/test/scala-2/com/baeldung/scala/strings/keywordsearch/KeywordMatchingSpec.scala rename to scala-strings/src/test/scala/com/baeldung/scala/strings/keywordsearch/KeywordMatchingSpec.scala From 34616a217e4e09908b1de2032d252fd1d9bea27b Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 2 Dec 2023 13:00:09 +0100 Subject: [PATCH 0168/1318] used = for unit methods to support scala 3 --- build.sbt | 1 + .../com/baeldung/scala/junit4/IntJunitTests.scala | 4 ++-- .../com/baeldung/scala/junit4/STAssertionsTests.scala | 4 ++-- .../com/baeldung/scala/junit4/StringJunitTests.scala | 2 +- .../com/baeldung/scala/junit4/TypesTestSuite.scala | 0 5 files changed, 6 insertions(+), 5 deletions(-) rename scala-test-junit4/src/test/{scala-2 => scala}/com/baeldung/scala/junit4/IntJunitTests.scala (74%) rename scala-test-junit4/src/test/{scala-2 => scala}/com/baeldung/scala/junit4/STAssertionsTests.scala (88%) rename scala-test-junit4/src/test/{scala-2 => scala}/com/baeldung/scala/junit4/StringJunitTests.scala (80%) rename scala-test-junit4/src/test/{scala-2 => scala}/com/baeldung/scala/junit4/TypesTestSuite.scala (100%) diff --git a/build.sbt b/build.sbt index 4ab8d0c5a..539f87fdb 100644 --- a/build.sbt +++ b/build.sbt @@ -201,6 +201,7 @@ lazy val scala_akka_dependencies: Seq[ModuleID] = Seq( lazy val scala_test_junit4 = (project in file("scala-test-junit4")) .settings( name := "scala-test-junit4", + scalaVersion := scala3Version, libraryDependencies ++= Seq( "org.scalatestplus" %% "junit-4-13" % "3.2.17.0" % Test, diff --git a/scala-test-junit4/src/test/scala-2/com/baeldung/scala/junit4/IntJunitTests.scala b/scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/IntJunitTests.scala similarity index 74% rename from scala-test-junit4/src/test/scala-2/com/baeldung/scala/junit4/IntJunitTests.scala rename to scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/IntJunitTests.scala index 53be1ac73..98cd06d1b 100644 --- a/scala-test-junit4/src/test/scala-2/com/baeldung/scala/junit4/IntJunitTests.scala +++ b/scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/IntJunitTests.scala @@ -6,12 +6,12 @@ import org.junit.Assert._ class IntJunitTests { @Test - def testOneIsPositive { + def testOneIsPositive = { assertTrue(1 > 0) } @Test - def testMinusOneIsNegative { + def testMinusOneIsNegative = { assertTrue(-1 < 0) } } diff --git a/scala-test-junit4/src/test/scala-2/com/baeldung/scala/junit4/STAssertionsTests.scala b/scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/STAssertionsTests.scala similarity index 88% rename from scala-test-junit4/src/test/scala-2/com/baeldung/scala/junit4/STAssertionsTests.scala rename to scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/STAssertionsTests.scala index 7767dc4d5..4a0f1fb27 100644 --- a/scala-test-junit4/src/test/scala-2/com/baeldung/scala/junit4/STAssertionsTests.scala +++ b/scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/STAssertionsTests.scala @@ -8,7 +8,7 @@ class STAssertionsTests extends AssertionsForJUnit { private final val myInt = 1 @Test - def testAssertJUnitStyle() { + def testAssertJUnitStyle() = { assertEquals(myInt, 1) assertTrue(myInt > 0) @@ -21,7 +21,7 @@ class STAssertionsTests extends AssertionsForJUnit { } @Test - def testAssertScalaTestStyle() { + def testAssertScalaTestStyle() = { assert(myInt == 1) assert(myInt.isValidInt) intercept[ArithmeticException] { diff --git a/scala-test-junit4/src/test/scala-2/com/baeldung/scala/junit4/StringJunitTests.scala b/scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/StringJunitTests.scala similarity index 80% rename from scala-test-junit4/src/test/scala-2/com/baeldung/scala/junit4/StringJunitTests.scala rename to scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/StringJunitTests.scala index 8d1feb6bd..95e9a9d63 100644 --- a/scala-test-junit4/src/test/scala-2/com/baeldung/scala/junit4/StringJunitTests.scala +++ b/scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/StringJunitTests.scala @@ -6,7 +6,7 @@ import org.junit.Assert._ class StringJunitTests { @Test - def testEmptyStringLengthIsZero { + def testEmptyStringLengthIsZero = { assertEquals("".length, 0) } } diff --git a/scala-test-junit4/src/test/scala-2/com/baeldung/scala/junit4/TypesTestSuite.scala b/scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/TypesTestSuite.scala similarity index 100% rename from scala-test-junit4/src/test/scala-2/com/baeldung/scala/junit4/TypesTestSuite.scala rename to scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/TypesTestSuite.scala From 4788dd8502b16f30f9fed58116a056ab19e13633 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 2 Dec 2023 13:20:53 +0100 Subject: [PATCH 0169/1318] deleted unused module scala-test-junit5 --- build.sbt | 17 +++++++++-------- scala-test-junit5/README.md | 3 --- scala-test-junit5/build.sbt | 10 ---------- scala-test-junit5/project/plugins.sbt | 1 - .../com/baeldung/junit5/ExampleTests.scala | 12 ------------ 5 files changed, 9 insertions(+), 34 deletions(-) delete mode 100644 scala-test-junit5/README.md delete mode 100644 scala-test-junit5/build.sbt delete mode 100644 scala-test-junit5/project/plugins.sbt delete mode 100644 scala-test-junit5/src/test/scala-2/com/baeldung/junit5/ExampleTests.scala diff --git a/build.sbt b/build.sbt index 539f87fdb..0123a2125 100644 --- a/build.sbt +++ b/build.sbt @@ -117,14 +117,15 @@ lazy val scala_core_fp = (project in file("scala-core-modules/scala-core-fp")) Seq(catsEffect, jUnitInterface) ++ scalaTestDeps ) -lazy val scala_core_dates = (project in file("scala-core-modules/scala-core-dates")) - .settings( - name := "scala-core-dates", - libraryDependencies ++= scalaTestDeps, - libraryDependencies += "joda-time" % "joda-time" % "2.12.5", - libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "2.32.0", - libraryDependencies += "com.typesafe" % "config" % "1.4.3", - ) +lazy val scala_core_dates = + (project in file("scala-core-modules/scala-core-dates")) + .settings( + name := "scala-core-dates", + libraryDependencies ++= scalaTestDeps, + libraryDependencies += "joda-time" % "joda-time" % "2.12.5", + libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "2.32.0", + libraryDependencies += "com.typesafe" % "config" % "1.4.3" + ) lazy val scala_lang = (project in file("scala-lang-modules/scala-lang")) .settings( diff --git a/scala-test-junit5/README.md b/scala-test-junit5/README.md deleted file mode 100644 index d28942203..000000000 --- a/scala-test-junit5/README.md +++ /dev/null @@ -1,3 +0,0 @@ -### Relevant Articles: - -- [Testing Scala with JUnit](https://www.baeldung.com/scala/junit-testing) diff --git a/scala-test-junit5/build.sbt b/scala-test-junit5/build.sbt deleted file mode 100644 index 3163ad18d..000000000 --- a/scala-test-junit5/build.sbt +++ /dev/null @@ -1,10 +0,0 @@ -name := "scala-test-junit-5" -organization := "com.baeldung" - -version := "1.0-SNAPSHOT" - -scalaVersion := "2.13.12" - -resolvers += Resolver.jcenterRepo - -libraryDependencies += "net.aichler" % "jupiter-interface" % JupiterKeys.jupiterVersion.value % Test diff --git a/scala-test-junit5/project/plugins.sbt b/scala-test-junit5/project/plugins.sbt deleted file mode 100644 index 8b1378917..000000000 --- a/scala-test-junit5/project/plugins.sbt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/scala-test-junit5/src/test/scala-2/com/baeldung/junit5/ExampleTests.scala b/scala-test-junit5/src/test/scala-2/com/baeldung/junit5/ExampleTests.scala deleted file mode 100644 index 7f32c5e8c..000000000 --- a/scala-test-junit5/src/test/scala-2/com/baeldung/junit5/ExampleTests.scala +++ /dev/null @@ -1,12 +0,0 @@ -package com.baeldung.junit5 - -import org.junit.jupiter.api.Disabled -import org.junit.jupiter.api.Test - -class ExampleTests { - - @Disabled("Not implemented yet") - @Test - def testNotImplemented() {} - -} From b91adec182429f2cc418e4125606cbe20b9208f5 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 2 Dec 2023 13:27:01 +0100 Subject: [PATCH 0170/1318] Set explicit unit return type in junit test --- .../scala/com/baeldung/scala/junit4/STAssertionsTests.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/STAssertionsTests.scala b/scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/STAssertionsTests.scala index 4a0f1fb27..9ebf27dd9 100644 --- a/scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/STAssertionsTests.scala +++ b/scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/STAssertionsTests.scala @@ -8,7 +8,7 @@ class STAssertionsTests extends AssertionsForJUnit { private final val myInt = 1 @Test - def testAssertJUnitStyle() = { + def testAssertJUnitStyle(): Unit = { assertEquals(myInt, 1) assertTrue(myInt > 0) @@ -21,7 +21,7 @@ class STAssertionsTests extends AssertionsForJUnit { } @Test - def testAssertScalaTestStyle() = { + def testAssertScalaTestStyle(): Unit = { assert(myInt == 1) assert(myInt.isValidInt) intercept[ArithmeticException] { From c884c8140d685e0bdccd868b4ce9cd8d9569a914 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 2 Dec 2023 14:25:20 +0100 Subject: [PATCH 0171/1318] Migrated doobie module to scala 3 --- build.sbt | 1 + .../com/baeldung/scala/doobie/DoobieFragments.scala | 0 .../com/baeldung/scala/doobie/DoobieQuickStart.scala | 0 3 files changed, 1 insertion(+) rename doobie/src/main/{scala-2 => scala}/com/baeldung/scala/doobie/DoobieFragments.scala (100%) rename doobie/src/main/{scala-2 => scala}/com/baeldung/scala/doobie/DoobieQuickStart.scala (100%) diff --git a/build.sbt b/build.sbt index 0123a2125..39788ce4f 100644 --- a/build.sbt +++ b/build.sbt @@ -504,6 +504,7 @@ lazy val zio = (project in file("zio")) lazy val doobie = (project in file("doobie")) .settings( name := "doobie", + scalaVersion := scala3Version, libraryDependencies += "org.tpolecat" %% "doobie-core" % "1.0.0-RC2", libraryDependencies += "org.tpolecat" %% "doobie-postgres" % "1.0.0-RC2" ) diff --git a/doobie/src/main/scala-2/com/baeldung/scala/doobie/DoobieFragments.scala b/doobie/src/main/scala/com/baeldung/scala/doobie/DoobieFragments.scala similarity index 100% rename from doobie/src/main/scala-2/com/baeldung/scala/doobie/DoobieFragments.scala rename to doobie/src/main/scala/com/baeldung/scala/doobie/DoobieFragments.scala diff --git a/doobie/src/main/scala-2/com/baeldung/scala/doobie/DoobieQuickStart.scala b/doobie/src/main/scala/com/baeldung/scala/doobie/DoobieQuickStart.scala similarity index 100% rename from doobie/src/main/scala-2/com/baeldung/scala/doobie/DoobieQuickStart.scala rename to doobie/src/main/scala/com/baeldung/scala/doobie/DoobieQuickStart.scala From 939c746345f023a0d47c3e18a04a2114ea5cf395 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 2 Dec 2023 14:53:01 +0100 Subject: [PATCH 0172/1318] Upgraded cats-effects module to scala 3 --- build.sbt | 1 + .../baeldung/scala/catseffects/ErrorHandling.scala | 0 .../com/baeldung/scala/catseffects/LazyIO.scala | 0 .../baeldung/scala/catseffects/MissileLaucher.scala | 0 .../baeldung/scala/catseffects/NotParallelApp.scala | 0 .../baeldung/scala/catseffects/ParallelApp.scala | 0 .../baeldung/scala/catseffects/SequenceApp.scala | 0 .../baeldung/scala/catseffects/Substitution.scala | 0 .../baeldung/scala/catseffects/TraverseApp.scala | 0 .../com/baeldung/scala/catseffects/Utils.scala | 0 .../baeldung/scala/differences/Differences.scala | 0 .../baeldung/scala/differences/FlatEvalDiff.scala | 2 +- .../com/baeldung/scala/fibers/Fibers.scala | 0 .../com/baeldung/scala/fibers/IOExtensions.scala | 0 .../baeldung/scala/resources/ResourceHandling.scala | 0 .../scala/catseffects/ErrorHandlingSpec.scala | 13 ++++++------- 16 files changed, 8 insertions(+), 8 deletions(-) rename cats-effects/src/main/{scala-2 => scala}/com/baeldung/scala/catseffects/ErrorHandling.scala (100%) rename cats-effects/src/main/{scala-2 => scala}/com/baeldung/scala/catseffects/LazyIO.scala (100%) rename cats-effects/src/main/{scala-2 => scala}/com/baeldung/scala/catseffects/MissileLaucher.scala (100%) rename cats-effects/src/main/{scala-2 => scala}/com/baeldung/scala/catseffects/NotParallelApp.scala (100%) rename cats-effects/src/main/{scala-2 => scala}/com/baeldung/scala/catseffects/ParallelApp.scala (100%) rename cats-effects/src/main/{scala-2 => scala}/com/baeldung/scala/catseffects/SequenceApp.scala (100%) rename cats-effects/src/main/{scala-2 => scala}/com/baeldung/scala/catseffects/Substitution.scala (100%) rename cats-effects/src/main/{scala-2 => scala}/com/baeldung/scala/catseffects/TraverseApp.scala (100%) rename cats-effects/src/main/{scala-2 => scala}/com/baeldung/scala/catseffects/Utils.scala (100%) rename cats-effects/src/main/{scala-2 => scala}/com/baeldung/scala/differences/Differences.scala (100%) rename cats-effects/src/main/{scala-2 => scala}/com/baeldung/scala/differences/FlatEvalDiff.scala (97%) rename cats-effects/src/main/{scala-2 => scala}/com/baeldung/scala/fibers/Fibers.scala (100%) rename cats-effects/src/main/{scala-2 => scala}/com/baeldung/scala/fibers/IOExtensions.scala (100%) rename cats-effects/src/main/{scala-2 => scala}/com/baeldung/scala/resources/ResourceHandling.scala (100%) diff --git a/build.sbt b/build.sbt index 39788ce4f..bdd45ed87 100644 --- a/build.sbt +++ b/build.sbt @@ -486,6 +486,7 @@ lazy val scala3_lang_collections = lazy val cats_effects = (project in file("cats-effects")) .settings( name := "cats-effects", + scalaVersion := scala3Version, libraryDependencies += catsEffect, libraryDependencies += "org.typelevel" %% "munit-cats-effect-3" % "1.0.7" % Test, libraryDependencies ++= scalaTestDeps, diff --git a/cats-effects/src/main/scala-2/com/baeldung/scala/catseffects/ErrorHandling.scala b/cats-effects/src/main/scala/com/baeldung/scala/catseffects/ErrorHandling.scala similarity index 100% rename from cats-effects/src/main/scala-2/com/baeldung/scala/catseffects/ErrorHandling.scala rename to cats-effects/src/main/scala/com/baeldung/scala/catseffects/ErrorHandling.scala diff --git a/cats-effects/src/main/scala-2/com/baeldung/scala/catseffects/LazyIO.scala b/cats-effects/src/main/scala/com/baeldung/scala/catseffects/LazyIO.scala similarity index 100% rename from cats-effects/src/main/scala-2/com/baeldung/scala/catseffects/LazyIO.scala rename to cats-effects/src/main/scala/com/baeldung/scala/catseffects/LazyIO.scala diff --git a/cats-effects/src/main/scala-2/com/baeldung/scala/catseffects/MissileLaucher.scala b/cats-effects/src/main/scala/com/baeldung/scala/catseffects/MissileLaucher.scala similarity index 100% rename from cats-effects/src/main/scala-2/com/baeldung/scala/catseffects/MissileLaucher.scala rename to cats-effects/src/main/scala/com/baeldung/scala/catseffects/MissileLaucher.scala diff --git a/cats-effects/src/main/scala-2/com/baeldung/scala/catseffects/NotParallelApp.scala b/cats-effects/src/main/scala/com/baeldung/scala/catseffects/NotParallelApp.scala similarity index 100% rename from cats-effects/src/main/scala-2/com/baeldung/scala/catseffects/NotParallelApp.scala rename to cats-effects/src/main/scala/com/baeldung/scala/catseffects/NotParallelApp.scala diff --git a/cats-effects/src/main/scala-2/com/baeldung/scala/catseffects/ParallelApp.scala b/cats-effects/src/main/scala/com/baeldung/scala/catseffects/ParallelApp.scala similarity index 100% rename from cats-effects/src/main/scala-2/com/baeldung/scala/catseffects/ParallelApp.scala rename to cats-effects/src/main/scala/com/baeldung/scala/catseffects/ParallelApp.scala diff --git a/cats-effects/src/main/scala-2/com/baeldung/scala/catseffects/SequenceApp.scala b/cats-effects/src/main/scala/com/baeldung/scala/catseffects/SequenceApp.scala similarity index 100% rename from cats-effects/src/main/scala-2/com/baeldung/scala/catseffects/SequenceApp.scala rename to cats-effects/src/main/scala/com/baeldung/scala/catseffects/SequenceApp.scala diff --git a/cats-effects/src/main/scala-2/com/baeldung/scala/catseffects/Substitution.scala b/cats-effects/src/main/scala/com/baeldung/scala/catseffects/Substitution.scala similarity index 100% rename from cats-effects/src/main/scala-2/com/baeldung/scala/catseffects/Substitution.scala rename to cats-effects/src/main/scala/com/baeldung/scala/catseffects/Substitution.scala diff --git a/cats-effects/src/main/scala-2/com/baeldung/scala/catseffects/TraverseApp.scala b/cats-effects/src/main/scala/com/baeldung/scala/catseffects/TraverseApp.scala similarity index 100% rename from cats-effects/src/main/scala-2/com/baeldung/scala/catseffects/TraverseApp.scala rename to cats-effects/src/main/scala/com/baeldung/scala/catseffects/TraverseApp.scala diff --git a/cats-effects/src/main/scala-2/com/baeldung/scala/catseffects/Utils.scala b/cats-effects/src/main/scala/com/baeldung/scala/catseffects/Utils.scala similarity index 100% rename from cats-effects/src/main/scala-2/com/baeldung/scala/catseffects/Utils.scala rename to cats-effects/src/main/scala/com/baeldung/scala/catseffects/Utils.scala diff --git a/cats-effects/src/main/scala-2/com/baeldung/scala/differences/Differences.scala b/cats-effects/src/main/scala/com/baeldung/scala/differences/Differences.scala similarity index 100% rename from cats-effects/src/main/scala-2/com/baeldung/scala/differences/Differences.scala rename to cats-effects/src/main/scala/com/baeldung/scala/differences/Differences.scala diff --git a/cats-effects/src/main/scala-2/com/baeldung/scala/differences/FlatEvalDiff.scala b/cats-effects/src/main/scala/com/baeldung/scala/differences/FlatEvalDiff.scala similarity index 97% rename from cats-effects/src/main/scala-2/com/baeldung/scala/differences/FlatEvalDiff.scala rename to cats-effects/src/main/scala/com/baeldung/scala/differences/FlatEvalDiff.scala index 188c90b18..c83f231f0 100644 --- a/cats-effects/src/main/scala-2/com/baeldung/scala/differences/FlatEvalDiff.scala +++ b/cats-effects/src/main/scala/com/baeldung/scala/differences/FlatEvalDiff.scala @@ -32,7 +32,7 @@ object FlatEvalDiff extends IOApp.Simple { } val resource: Resource[IO, SimpleConnection] = - Resource.make(acquireResource)(releaseResource) + Resource.make(acquireResource())(releaseResource) val simpleResourceData: IO[Unit] = resource.use(simpleConn => IO.println("Result using Simple Resource")) diff --git a/cats-effects/src/main/scala-2/com/baeldung/scala/fibers/Fibers.scala b/cats-effects/src/main/scala/com/baeldung/scala/fibers/Fibers.scala similarity index 100% rename from cats-effects/src/main/scala-2/com/baeldung/scala/fibers/Fibers.scala rename to cats-effects/src/main/scala/com/baeldung/scala/fibers/Fibers.scala diff --git a/cats-effects/src/main/scala-2/com/baeldung/scala/fibers/IOExtensions.scala b/cats-effects/src/main/scala/com/baeldung/scala/fibers/IOExtensions.scala similarity index 100% rename from cats-effects/src/main/scala-2/com/baeldung/scala/fibers/IOExtensions.scala rename to cats-effects/src/main/scala/com/baeldung/scala/fibers/IOExtensions.scala diff --git a/cats-effects/src/main/scala-2/com/baeldung/scala/resources/ResourceHandling.scala b/cats-effects/src/main/scala/com/baeldung/scala/resources/ResourceHandling.scala similarity index 100% rename from cats-effects/src/main/scala-2/com/baeldung/scala/resources/ResourceHandling.scala rename to cats-effects/src/main/scala/com/baeldung/scala/resources/ResourceHandling.scala diff --git a/cats-effects/src/test/scala/com/baeldung/scala/catseffects/ErrorHandlingSpec.scala b/cats-effects/src/test/scala/com/baeldung/scala/catseffects/ErrorHandlingSpec.scala index 9d0866f41..77ff28e01 100644 --- a/cats-effects/src/test/scala/com/baeldung/scala/catseffects/ErrorHandlingSpec.scala +++ b/cats-effects/src/test/scala/com/baeldung/scala/catseffects/ErrorHandlingSpec.scala @@ -205,18 +205,19 @@ class ErrorHandlingSpec extends AnyWordSpec with Matchers { def calculateOrRaise[F[_]](f: => Int)(implicit me: MonadThrow[F] - ): F[Int] = + ): F[Int] = { calculate(f).attemptTap { case Left(_) => new RuntimeException("Calculation failed").raiseError[F, Unit] case Right(_) => ().pure[F] } + } - val resInvalid = calculateOrRaise[IO](5 / 0).attempt - val resValid = calculateOrRaise[IO](5 / 1) + val resInvalid = calculateOrRaise[IO](5 / 0).attempt + val resValid = calculateOrRaise[IO](5 / 1) - resInvalid.unsafeRunSync().isLeft shouldBe true - resValid.unsafeRunSync() shouldBe 5 + resInvalid.unsafeRunSync().isLeft shouldBe true + resValid.unsafeRunSync() shouldBe 5 } "if recover throws the error, then this error will be returned" in { @@ -289,8 +290,6 @@ class ErrorHandlingSpec extends AnyWordSpec with Matchers { case InvalidInput => IO.pure("Invalid input") } - implicit val i = implicitly[MonadError[IO, Throwable]] - resNone.unsafeRunSync() shouldBe "Not found" resEmpty.unsafeRunSync() shouldBe "Invalid input" } From c33a85b530a2c1268da575fc199420c908a4a2be Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 2 Dec 2023 14:58:12 +0100 Subject: [PATCH 0173/1318] Moved scalaversion for zio to main build.sbt --- build.sbt | 1 + zio/build.sbt | 4 ---- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/build.sbt b/build.sbt index bdd45ed87..1269f01e5 100644 --- a/build.sbt +++ b/build.sbt @@ -496,6 +496,7 @@ lazy val cats_effects = (project in file("cats-effects")) lazy val zio = (project in file("zio")) .settings( name := "zio", + scalaVersion := scala3Version, libraryDependencies += "dev.zio" %% "zio" % zioVersion, libraryDependencies += "dev.zio" %% "zio-streams" % zioVersion, libraryDependencies += "dev.zio" %% "zio-test-sbt" % zioVersion % Test, diff --git a/zio/build.sbt b/zio/build.sbt index 205011296..340afe151 100644 --- a/zio/build.sbt +++ b/zio/build.sbt @@ -1,7 +1,3 @@ -val scala3Version = "3.3.0" - -scalaVersion := scala3Version - libraryDependencies ++= Seq( "dev.zio" %% "zio" % "2.0.15", "dev.zio" %% "zio-json" % "0.6.2", From d8dda2d30709bbe8a3881b66469f7d6436c2fc39 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 2 Dec 2023 21:16:51 +0100 Subject: [PATCH 0174/1318] Migrated scala-lang to scala3 --- build.sbt | 1 + .../com/baeldung/scala/OuterStackedSample.scala | 0 .../scala/callbynameandvalue/CallByNameCallByValue.scala | 0 .../baeldung/scala/conditional/ScalaConditionalExpressions.scala | 0 .../{scala-2 => scala}/com/baeldung/scala/equality/package.scala | 0 .../baeldung/scala/functionsandmethods/FunctionsAndMethods.scala | 0 .../com/baeldung/scala/mutability/ImmutabilityCar.scala | 0 .../com/baeldung/scala/operators/ScalaOperators.scala | 0 .../com/baeldung/scala/packageimport/Importing.scala | 0 .../com/baeldung/scala/packageimport/InnerStackSample.scala | 0 .../com/baeldung/scala/packageimport/package.scala | 0 .../baeldung/scala/packageimport/stacking/StackedAccess.scala | 0 .../baeldung/scala/packageimport/stacking/StackedPackage.scala | 0 .../com/baeldung/scala/packageimport/vehicle/Bicycle.scala | 0 .../com/baeldung/scala/packageimport/vehicle/Car.scala | 0 .../com/baeldung/scala/packageimport/vehicle/Vehicle.scala | 0 .../com/baeldung/scala/typehierarchy/TypeHierarchy.scala | 0 .../src/main/{scala-2 => scala}/defvarval/LazyValues.scala | 0 .../src/main/{scala-2 => scala}/defvarval/Methods.scala | 0 .../src/main/{scala-2 => scala}/defvarval/Values.scala | 0 .../src/main/{scala-2 => scala}/defvarval/Variables.scala | 0 .../scala/callbynameandvalue/CallByNameCallByValueUnitTest.scala | 0 .../com/baeldung/scala/caseclasses/CaseClassesUnitTest.scala | 0 .../scala/conditional/ScalaConditionalExpressionsUnitTest.scala | 0 .../com/baeldung/scala/equality/EqualityUnitTest.scala | 0 .../scala/functionsandmethods/FunctionsAndMethodsUnitTest.scala | 0 .../com/baeldung/scala/mutability/ImmutabilityCarUnitTest.scala | 0 .../baeldung/scala/mutability/ImmutableCollectionsUnitTest.scala | 0 .../baeldung/scala/mutability/MutableCollectionsUnitTest.scala | 0 .../com/baeldung/scala/typehierarchy/TypeHierarchyUnitTest.scala | 0 30 files changed, 1 insertion(+) rename scala-lang-modules/scala-lang/src/main/{scala-2 => scala}/com/baeldung/scala/OuterStackedSample.scala (100%) rename scala-lang-modules/scala-lang/src/main/{scala-2 => scala}/com/baeldung/scala/callbynameandvalue/CallByNameCallByValue.scala (100%) rename scala-lang-modules/scala-lang/src/main/{scala-2 => scala}/com/baeldung/scala/conditional/ScalaConditionalExpressions.scala (100%) rename scala-lang-modules/scala-lang/src/main/{scala-2 => scala}/com/baeldung/scala/equality/package.scala (100%) rename scala-lang-modules/scala-lang/src/main/{scala-2 => scala}/com/baeldung/scala/functionsandmethods/FunctionsAndMethods.scala (100%) rename scala-lang-modules/scala-lang/src/main/{scala-2 => scala}/com/baeldung/scala/mutability/ImmutabilityCar.scala (100%) rename scala-lang-modules/scala-lang/src/main/{scala-2 => scala}/com/baeldung/scala/operators/ScalaOperators.scala (100%) rename scala-lang-modules/scala-lang/src/main/{scala-2 => scala}/com/baeldung/scala/packageimport/Importing.scala (100%) rename scala-lang-modules/scala-lang/src/main/{scala-2 => scala}/com/baeldung/scala/packageimport/InnerStackSample.scala (100%) rename scala-lang-modules/scala-lang/src/main/{scala-2 => scala}/com/baeldung/scala/packageimport/package.scala (100%) rename scala-lang-modules/scala-lang/src/main/{scala-2 => scala}/com/baeldung/scala/packageimport/stacking/StackedAccess.scala (100%) rename scala-lang-modules/scala-lang/src/main/{scala-2 => scala}/com/baeldung/scala/packageimport/stacking/StackedPackage.scala (100%) rename scala-lang-modules/scala-lang/src/main/{scala-2 => scala}/com/baeldung/scala/packageimport/vehicle/Bicycle.scala (100%) rename scala-lang-modules/scala-lang/src/main/{scala-2 => scala}/com/baeldung/scala/packageimport/vehicle/Car.scala (100%) rename scala-lang-modules/scala-lang/src/main/{scala-2 => scala}/com/baeldung/scala/packageimport/vehicle/Vehicle.scala (100%) rename scala-lang-modules/scala-lang/src/main/{scala-2 => scala}/com/baeldung/scala/typehierarchy/TypeHierarchy.scala (100%) rename scala-lang-modules/scala-lang/src/main/{scala-2 => scala}/defvarval/LazyValues.scala (100%) rename scala-lang-modules/scala-lang/src/main/{scala-2 => scala}/defvarval/Methods.scala (100%) rename scala-lang-modules/scala-lang/src/main/{scala-2 => scala}/defvarval/Values.scala (100%) rename scala-lang-modules/scala-lang/src/main/{scala-2 => scala}/defvarval/Variables.scala (100%) rename scala-lang-modules/scala-lang/src/test/{scala-2 => scala}/com/baeldung/scala/callbynameandvalue/CallByNameCallByValueUnitTest.scala (100%) rename scala-lang-modules/scala-lang/src/test/{scala-2 => scala}/com/baeldung/scala/caseclasses/CaseClassesUnitTest.scala (100%) rename scala-lang-modules/scala-lang/src/test/{scala-2 => scala}/com/baeldung/scala/conditional/ScalaConditionalExpressionsUnitTest.scala (100%) rename scala-lang-modules/scala-lang/src/test/{scala-2 => scala}/com/baeldung/scala/equality/EqualityUnitTest.scala (100%) rename scala-lang-modules/scala-lang/src/test/{scala-2 => scala}/com/baeldung/scala/functionsandmethods/FunctionsAndMethodsUnitTest.scala (100%) rename scala-lang-modules/scala-lang/src/test/{scala-2 => scala}/com/baeldung/scala/mutability/ImmutabilityCarUnitTest.scala (100%) rename scala-lang-modules/scala-lang/src/test/{scala-2 => scala}/com/baeldung/scala/mutability/ImmutableCollectionsUnitTest.scala (100%) rename scala-lang-modules/scala-lang/src/test/{scala-2 => scala}/com/baeldung/scala/mutability/MutableCollectionsUnitTest.scala (100%) rename scala-lang-modules/scala-lang/src/test/{scala-2 => scala}/com/baeldung/scala/typehierarchy/TypeHierarchyUnitTest.scala (100%) diff --git a/build.sbt b/build.sbt index 1269f01e5..b057107b9 100644 --- a/build.sbt +++ b/build.sbt @@ -130,6 +130,7 @@ lazy val scala_core_dates = lazy val scala_lang = (project in file("scala-lang-modules/scala-lang")) .settings( name := "scala-lang", + scalaVersion := scala3Version, libraryDependencies ++= Seq(jUnitInterface) ++ scalaTestDeps ) diff --git a/scala-lang-modules/scala-lang/src/main/scala-2/com/baeldung/scala/OuterStackedSample.scala b/scala-lang-modules/scala-lang/src/main/scala/com/baeldung/scala/OuterStackedSample.scala similarity index 100% rename from scala-lang-modules/scala-lang/src/main/scala-2/com/baeldung/scala/OuterStackedSample.scala rename to scala-lang-modules/scala-lang/src/main/scala/com/baeldung/scala/OuterStackedSample.scala diff --git a/scala-lang-modules/scala-lang/src/main/scala-2/com/baeldung/scala/callbynameandvalue/CallByNameCallByValue.scala b/scala-lang-modules/scala-lang/src/main/scala/com/baeldung/scala/callbynameandvalue/CallByNameCallByValue.scala similarity index 100% rename from scala-lang-modules/scala-lang/src/main/scala-2/com/baeldung/scala/callbynameandvalue/CallByNameCallByValue.scala rename to scala-lang-modules/scala-lang/src/main/scala/com/baeldung/scala/callbynameandvalue/CallByNameCallByValue.scala diff --git a/scala-lang-modules/scala-lang/src/main/scala-2/com/baeldung/scala/conditional/ScalaConditionalExpressions.scala b/scala-lang-modules/scala-lang/src/main/scala/com/baeldung/scala/conditional/ScalaConditionalExpressions.scala similarity index 100% rename from scala-lang-modules/scala-lang/src/main/scala-2/com/baeldung/scala/conditional/ScalaConditionalExpressions.scala rename to scala-lang-modules/scala-lang/src/main/scala/com/baeldung/scala/conditional/ScalaConditionalExpressions.scala diff --git a/scala-lang-modules/scala-lang/src/main/scala-2/com/baeldung/scala/equality/package.scala b/scala-lang-modules/scala-lang/src/main/scala/com/baeldung/scala/equality/package.scala similarity index 100% rename from scala-lang-modules/scala-lang/src/main/scala-2/com/baeldung/scala/equality/package.scala rename to scala-lang-modules/scala-lang/src/main/scala/com/baeldung/scala/equality/package.scala diff --git a/scala-lang-modules/scala-lang/src/main/scala-2/com/baeldung/scala/functionsandmethods/FunctionsAndMethods.scala b/scala-lang-modules/scala-lang/src/main/scala/com/baeldung/scala/functionsandmethods/FunctionsAndMethods.scala similarity index 100% rename from scala-lang-modules/scala-lang/src/main/scala-2/com/baeldung/scala/functionsandmethods/FunctionsAndMethods.scala rename to scala-lang-modules/scala-lang/src/main/scala/com/baeldung/scala/functionsandmethods/FunctionsAndMethods.scala diff --git a/scala-lang-modules/scala-lang/src/main/scala-2/com/baeldung/scala/mutability/ImmutabilityCar.scala b/scala-lang-modules/scala-lang/src/main/scala/com/baeldung/scala/mutability/ImmutabilityCar.scala similarity index 100% rename from scala-lang-modules/scala-lang/src/main/scala-2/com/baeldung/scala/mutability/ImmutabilityCar.scala rename to scala-lang-modules/scala-lang/src/main/scala/com/baeldung/scala/mutability/ImmutabilityCar.scala diff --git a/scala-lang-modules/scala-lang/src/main/scala-2/com/baeldung/scala/operators/ScalaOperators.scala b/scala-lang-modules/scala-lang/src/main/scala/com/baeldung/scala/operators/ScalaOperators.scala similarity index 100% rename from scala-lang-modules/scala-lang/src/main/scala-2/com/baeldung/scala/operators/ScalaOperators.scala rename to scala-lang-modules/scala-lang/src/main/scala/com/baeldung/scala/operators/ScalaOperators.scala diff --git a/scala-lang-modules/scala-lang/src/main/scala-2/com/baeldung/scala/packageimport/Importing.scala b/scala-lang-modules/scala-lang/src/main/scala/com/baeldung/scala/packageimport/Importing.scala similarity index 100% rename from scala-lang-modules/scala-lang/src/main/scala-2/com/baeldung/scala/packageimport/Importing.scala rename to scala-lang-modules/scala-lang/src/main/scala/com/baeldung/scala/packageimport/Importing.scala diff --git a/scala-lang-modules/scala-lang/src/main/scala-2/com/baeldung/scala/packageimport/InnerStackSample.scala b/scala-lang-modules/scala-lang/src/main/scala/com/baeldung/scala/packageimport/InnerStackSample.scala similarity index 100% rename from scala-lang-modules/scala-lang/src/main/scala-2/com/baeldung/scala/packageimport/InnerStackSample.scala rename to scala-lang-modules/scala-lang/src/main/scala/com/baeldung/scala/packageimport/InnerStackSample.scala diff --git a/scala-lang-modules/scala-lang/src/main/scala-2/com/baeldung/scala/packageimport/package.scala b/scala-lang-modules/scala-lang/src/main/scala/com/baeldung/scala/packageimport/package.scala similarity index 100% rename from scala-lang-modules/scala-lang/src/main/scala-2/com/baeldung/scala/packageimport/package.scala rename to scala-lang-modules/scala-lang/src/main/scala/com/baeldung/scala/packageimport/package.scala diff --git a/scala-lang-modules/scala-lang/src/main/scala-2/com/baeldung/scala/packageimport/stacking/StackedAccess.scala b/scala-lang-modules/scala-lang/src/main/scala/com/baeldung/scala/packageimport/stacking/StackedAccess.scala similarity index 100% rename from scala-lang-modules/scala-lang/src/main/scala-2/com/baeldung/scala/packageimport/stacking/StackedAccess.scala rename to scala-lang-modules/scala-lang/src/main/scala/com/baeldung/scala/packageimport/stacking/StackedAccess.scala diff --git a/scala-lang-modules/scala-lang/src/main/scala-2/com/baeldung/scala/packageimport/stacking/StackedPackage.scala b/scala-lang-modules/scala-lang/src/main/scala/com/baeldung/scala/packageimport/stacking/StackedPackage.scala similarity index 100% rename from scala-lang-modules/scala-lang/src/main/scala-2/com/baeldung/scala/packageimport/stacking/StackedPackage.scala rename to scala-lang-modules/scala-lang/src/main/scala/com/baeldung/scala/packageimport/stacking/StackedPackage.scala diff --git a/scala-lang-modules/scala-lang/src/main/scala-2/com/baeldung/scala/packageimport/vehicle/Bicycle.scala b/scala-lang-modules/scala-lang/src/main/scala/com/baeldung/scala/packageimport/vehicle/Bicycle.scala similarity index 100% rename from scala-lang-modules/scala-lang/src/main/scala-2/com/baeldung/scala/packageimport/vehicle/Bicycle.scala rename to scala-lang-modules/scala-lang/src/main/scala/com/baeldung/scala/packageimport/vehicle/Bicycle.scala diff --git a/scala-lang-modules/scala-lang/src/main/scala-2/com/baeldung/scala/packageimport/vehicle/Car.scala b/scala-lang-modules/scala-lang/src/main/scala/com/baeldung/scala/packageimport/vehicle/Car.scala similarity index 100% rename from scala-lang-modules/scala-lang/src/main/scala-2/com/baeldung/scala/packageimport/vehicle/Car.scala rename to scala-lang-modules/scala-lang/src/main/scala/com/baeldung/scala/packageimport/vehicle/Car.scala diff --git a/scala-lang-modules/scala-lang/src/main/scala-2/com/baeldung/scala/packageimport/vehicle/Vehicle.scala b/scala-lang-modules/scala-lang/src/main/scala/com/baeldung/scala/packageimport/vehicle/Vehicle.scala similarity index 100% rename from scala-lang-modules/scala-lang/src/main/scala-2/com/baeldung/scala/packageimport/vehicle/Vehicle.scala rename to scala-lang-modules/scala-lang/src/main/scala/com/baeldung/scala/packageimport/vehicle/Vehicle.scala diff --git a/scala-lang-modules/scala-lang/src/main/scala-2/com/baeldung/scala/typehierarchy/TypeHierarchy.scala b/scala-lang-modules/scala-lang/src/main/scala/com/baeldung/scala/typehierarchy/TypeHierarchy.scala similarity index 100% rename from scala-lang-modules/scala-lang/src/main/scala-2/com/baeldung/scala/typehierarchy/TypeHierarchy.scala rename to scala-lang-modules/scala-lang/src/main/scala/com/baeldung/scala/typehierarchy/TypeHierarchy.scala diff --git a/scala-lang-modules/scala-lang/src/main/scala-2/defvarval/LazyValues.scala b/scala-lang-modules/scala-lang/src/main/scala/defvarval/LazyValues.scala similarity index 100% rename from scala-lang-modules/scala-lang/src/main/scala-2/defvarval/LazyValues.scala rename to scala-lang-modules/scala-lang/src/main/scala/defvarval/LazyValues.scala diff --git a/scala-lang-modules/scala-lang/src/main/scala-2/defvarval/Methods.scala b/scala-lang-modules/scala-lang/src/main/scala/defvarval/Methods.scala similarity index 100% rename from scala-lang-modules/scala-lang/src/main/scala-2/defvarval/Methods.scala rename to scala-lang-modules/scala-lang/src/main/scala/defvarval/Methods.scala diff --git a/scala-lang-modules/scala-lang/src/main/scala-2/defvarval/Values.scala b/scala-lang-modules/scala-lang/src/main/scala/defvarval/Values.scala similarity index 100% rename from scala-lang-modules/scala-lang/src/main/scala-2/defvarval/Values.scala rename to scala-lang-modules/scala-lang/src/main/scala/defvarval/Values.scala diff --git a/scala-lang-modules/scala-lang/src/main/scala-2/defvarval/Variables.scala b/scala-lang-modules/scala-lang/src/main/scala/defvarval/Variables.scala similarity index 100% rename from scala-lang-modules/scala-lang/src/main/scala-2/defvarval/Variables.scala rename to scala-lang-modules/scala-lang/src/main/scala/defvarval/Variables.scala diff --git a/scala-lang-modules/scala-lang/src/test/scala-2/com/baeldung/scala/callbynameandvalue/CallByNameCallByValueUnitTest.scala b/scala-lang-modules/scala-lang/src/test/scala/com/baeldung/scala/callbynameandvalue/CallByNameCallByValueUnitTest.scala similarity index 100% rename from scala-lang-modules/scala-lang/src/test/scala-2/com/baeldung/scala/callbynameandvalue/CallByNameCallByValueUnitTest.scala rename to scala-lang-modules/scala-lang/src/test/scala/com/baeldung/scala/callbynameandvalue/CallByNameCallByValueUnitTest.scala diff --git a/scala-lang-modules/scala-lang/src/test/scala-2/com/baeldung/scala/caseclasses/CaseClassesUnitTest.scala b/scala-lang-modules/scala-lang/src/test/scala/com/baeldung/scala/caseclasses/CaseClassesUnitTest.scala similarity index 100% rename from scala-lang-modules/scala-lang/src/test/scala-2/com/baeldung/scala/caseclasses/CaseClassesUnitTest.scala rename to scala-lang-modules/scala-lang/src/test/scala/com/baeldung/scala/caseclasses/CaseClassesUnitTest.scala diff --git a/scala-lang-modules/scala-lang/src/test/scala-2/com/baeldung/scala/conditional/ScalaConditionalExpressionsUnitTest.scala b/scala-lang-modules/scala-lang/src/test/scala/com/baeldung/scala/conditional/ScalaConditionalExpressionsUnitTest.scala similarity index 100% rename from scala-lang-modules/scala-lang/src/test/scala-2/com/baeldung/scala/conditional/ScalaConditionalExpressionsUnitTest.scala rename to scala-lang-modules/scala-lang/src/test/scala/com/baeldung/scala/conditional/ScalaConditionalExpressionsUnitTest.scala diff --git a/scala-lang-modules/scala-lang/src/test/scala-2/com/baeldung/scala/equality/EqualityUnitTest.scala b/scala-lang-modules/scala-lang/src/test/scala/com/baeldung/scala/equality/EqualityUnitTest.scala similarity index 100% rename from scala-lang-modules/scala-lang/src/test/scala-2/com/baeldung/scala/equality/EqualityUnitTest.scala rename to scala-lang-modules/scala-lang/src/test/scala/com/baeldung/scala/equality/EqualityUnitTest.scala diff --git a/scala-lang-modules/scala-lang/src/test/scala-2/com/baeldung/scala/functionsandmethods/FunctionsAndMethodsUnitTest.scala b/scala-lang-modules/scala-lang/src/test/scala/com/baeldung/scala/functionsandmethods/FunctionsAndMethodsUnitTest.scala similarity index 100% rename from scala-lang-modules/scala-lang/src/test/scala-2/com/baeldung/scala/functionsandmethods/FunctionsAndMethodsUnitTest.scala rename to scala-lang-modules/scala-lang/src/test/scala/com/baeldung/scala/functionsandmethods/FunctionsAndMethodsUnitTest.scala diff --git a/scala-lang-modules/scala-lang/src/test/scala-2/com/baeldung/scala/mutability/ImmutabilityCarUnitTest.scala b/scala-lang-modules/scala-lang/src/test/scala/com/baeldung/scala/mutability/ImmutabilityCarUnitTest.scala similarity index 100% rename from scala-lang-modules/scala-lang/src/test/scala-2/com/baeldung/scala/mutability/ImmutabilityCarUnitTest.scala rename to scala-lang-modules/scala-lang/src/test/scala/com/baeldung/scala/mutability/ImmutabilityCarUnitTest.scala diff --git a/scala-lang-modules/scala-lang/src/test/scala-2/com/baeldung/scala/mutability/ImmutableCollectionsUnitTest.scala b/scala-lang-modules/scala-lang/src/test/scala/com/baeldung/scala/mutability/ImmutableCollectionsUnitTest.scala similarity index 100% rename from scala-lang-modules/scala-lang/src/test/scala-2/com/baeldung/scala/mutability/ImmutableCollectionsUnitTest.scala rename to scala-lang-modules/scala-lang/src/test/scala/com/baeldung/scala/mutability/ImmutableCollectionsUnitTest.scala diff --git a/scala-lang-modules/scala-lang/src/test/scala-2/com/baeldung/scala/mutability/MutableCollectionsUnitTest.scala b/scala-lang-modules/scala-lang/src/test/scala/com/baeldung/scala/mutability/MutableCollectionsUnitTest.scala similarity index 100% rename from scala-lang-modules/scala-lang/src/test/scala-2/com/baeldung/scala/mutability/MutableCollectionsUnitTest.scala rename to scala-lang-modules/scala-lang/src/test/scala/com/baeldung/scala/mutability/MutableCollectionsUnitTest.scala diff --git a/scala-lang-modules/scala-lang/src/test/scala-2/com/baeldung/scala/typehierarchy/TypeHierarchyUnitTest.scala b/scala-lang-modules/scala-lang/src/test/scala/com/baeldung/scala/typehierarchy/TypeHierarchyUnitTest.scala similarity index 100% rename from scala-lang-modules/scala-lang/src/test/scala-2/com/baeldung/scala/typehierarchy/TypeHierarchyUnitTest.scala rename to scala-lang-modules/scala-lang/src/test/scala/com/baeldung/scala/typehierarchy/TypeHierarchyUnitTest.scala From b5731eaa5a9e6687d6a21350fbc3675518f43bb1 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 2 Dec 2023 21:38:11 +0100 Subject: [PATCH 0175/1318] Migrated scala-lang-2 to scala3 --- build.sbt | 3 ++- .../com/baeldung/scala/inheritance/Hierarchical.scala | 0 .../com/baeldung/scala/inheritance/Hybrid.scala | 0 .../com/baeldung/scala/inheritance/Multilevel.scala | 0 .../com/baeldung/scala/inheritance/Multiple.scala | 0 .../com/baeldung/scala/inheritance/Single.scala | 0 .../com/baeldung/scala/nested/Factorial.scala | 0 .../com/baeldung/scala/singletons/Counter.scala | 0 .../com/baeldung/scala/voidtypes/NilEmptyList.scala | 0 .../com/baeldung/scala/voidtypes/NoneEmptyOption.scala | 0 .../com/baeldung/scala/voidtypes/NothingTrait.scala | 0 .../com/baeldung/scala/voidtypes/NullTypeAndnullValue.scala | 0 .../com/baeldung/scala/voidtypes/UnitReturnType.scala | 2 +- .../com/baeldung/scala/withtrait/Animal.scala | 0 .../com/baeldung/scala/withtrait/Musician.scala | 0 .../com/baeldung/scala/withtrait/Person.scala | 0 .../com/baeldung/scala/withtrait/Politician.scala | 0 .../com/baeldung/scala/singletons/CounterUnitTest.scala | 0 .../com/baeldung/scala/voidtypes/NilEmptyListUnitTest.scala | 0 .../com/baeldung/scala/voidtypes/NoneEmptyOptionUnitTest.scala | 0 .../com/baeldung/scala/voidtypes/NothingTraitUnitTest.scala | 0 .../scala/voidtypes/NullTypeAndNullValueUnitTest.scala | 0 .../com/baeldung/scala/voidtypes/UnitReturnTypeUnitTest.scala | 0 .../com/baeldung/scala/withtrait/WithTraitSpec.scala | 0 24 files changed, 3 insertions(+), 2 deletions(-) rename scala-lang-modules/scala-lang-2/src/main/{scala-2 => scala}/com/baeldung/scala/inheritance/Hierarchical.scala (100%) rename scala-lang-modules/scala-lang-2/src/main/{scala-2 => scala}/com/baeldung/scala/inheritance/Hybrid.scala (100%) rename scala-lang-modules/scala-lang-2/src/main/{scala-2 => scala}/com/baeldung/scala/inheritance/Multilevel.scala (100%) rename scala-lang-modules/scala-lang-2/src/main/{scala-2 => scala}/com/baeldung/scala/inheritance/Multiple.scala (100%) rename scala-lang-modules/scala-lang-2/src/main/{scala-2 => scala}/com/baeldung/scala/inheritance/Single.scala (100%) rename scala-lang-modules/scala-lang-2/src/main/{scala-2 => scala}/com/baeldung/scala/nested/Factorial.scala (100%) rename scala-lang-modules/scala-lang-2/src/main/{scala-2 => scala}/com/baeldung/scala/singletons/Counter.scala (100%) rename scala-lang-modules/scala-lang-2/src/main/{scala-2 => scala}/com/baeldung/scala/voidtypes/NilEmptyList.scala (100%) rename scala-lang-modules/scala-lang-2/src/main/{scala-2 => scala}/com/baeldung/scala/voidtypes/NoneEmptyOption.scala (100%) rename scala-lang-modules/scala-lang-2/src/main/{scala-2 => scala}/com/baeldung/scala/voidtypes/NothingTrait.scala (100%) rename scala-lang-modules/scala-lang-2/src/main/{scala-2 => scala}/com/baeldung/scala/voidtypes/NullTypeAndnullValue.scala (100%) rename scala-lang-modules/scala-lang-2/src/main/{scala-2 => scala}/com/baeldung/scala/voidtypes/UnitReturnType.scala (90%) rename scala-lang-modules/scala-lang-2/src/main/{scala-2 => scala}/com/baeldung/scala/withtrait/Animal.scala (100%) rename scala-lang-modules/scala-lang-2/src/main/{scala-2 => scala}/com/baeldung/scala/withtrait/Musician.scala (100%) rename scala-lang-modules/scala-lang-2/src/main/{scala-2 => scala}/com/baeldung/scala/withtrait/Person.scala (100%) rename scala-lang-modules/scala-lang-2/src/main/{scala-2 => scala}/com/baeldung/scala/withtrait/Politician.scala (100%) rename scala-lang-modules/scala-lang-2/src/test/{scala-2 => scala}/com/baeldung/scala/singletons/CounterUnitTest.scala (100%) rename scala-lang-modules/scala-lang-2/src/test/{scala-2 => scala}/com/baeldung/scala/voidtypes/NilEmptyListUnitTest.scala (100%) rename scala-lang-modules/scala-lang-2/src/test/{scala-2 => scala}/com/baeldung/scala/voidtypes/NoneEmptyOptionUnitTest.scala (100%) rename scala-lang-modules/scala-lang-2/src/test/{scala-2 => scala}/com/baeldung/scala/voidtypes/NothingTraitUnitTest.scala (100%) rename scala-lang-modules/scala-lang-2/src/test/{scala-2 => scala}/com/baeldung/scala/voidtypes/NullTypeAndNullValueUnitTest.scala (100%) rename scala-lang-modules/scala-lang-2/src/test/{scala-2 => scala}/com/baeldung/scala/voidtypes/UnitReturnTypeUnitTest.scala (100%) rename scala-lang-modules/scala-lang-2/src/test/{scala-2 => scala}/com/baeldung/scala/withtrait/WithTraitSpec.scala (100%) diff --git a/build.sbt b/build.sbt index b057107b9..58904c942 100644 --- a/build.sbt +++ b/build.sbt @@ -137,7 +137,8 @@ lazy val scala_lang = (project in file("scala-lang-modules/scala-lang")) lazy val scala_lang_2 = (project in file("scala-lang-modules/scala-lang-2")) .settings( - name := "scala-lang", + name := "scala-lang-2", + scalaVersion := scala3Version, libraryDependencies ++= Seq(jUnitInterface) ++ scalaTestDeps ) diff --git a/scala-lang-modules/scala-lang-2/src/main/scala-2/com/baeldung/scala/inheritance/Hierarchical.scala b/scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/inheritance/Hierarchical.scala similarity index 100% rename from scala-lang-modules/scala-lang-2/src/main/scala-2/com/baeldung/scala/inheritance/Hierarchical.scala rename to scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/inheritance/Hierarchical.scala diff --git a/scala-lang-modules/scala-lang-2/src/main/scala-2/com/baeldung/scala/inheritance/Hybrid.scala b/scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/inheritance/Hybrid.scala similarity index 100% rename from scala-lang-modules/scala-lang-2/src/main/scala-2/com/baeldung/scala/inheritance/Hybrid.scala rename to scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/inheritance/Hybrid.scala diff --git a/scala-lang-modules/scala-lang-2/src/main/scala-2/com/baeldung/scala/inheritance/Multilevel.scala b/scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/inheritance/Multilevel.scala similarity index 100% rename from scala-lang-modules/scala-lang-2/src/main/scala-2/com/baeldung/scala/inheritance/Multilevel.scala rename to scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/inheritance/Multilevel.scala diff --git a/scala-lang-modules/scala-lang-2/src/main/scala-2/com/baeldung/scala/inheritance/Multiple.scala b/scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/inheritance/Multiple.scala similarity index 100% rename from scala-lang-modules/scala-lang-2/src/main/scala-2/com/baeldung/scala/inheritance/Multiple.scala rename to scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/inheritance/Multiple.scala diff --git a/scala-lang-modules/scala-lang-2/src/main/scala-2/com/baeldung/scala/inheritance/Single.scala b/scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/inheritance/Single.scala similarity index 100% rename from scala-lang-modules/scala-lang-2/src/main/scala-2/com/baeldung/scala/inheritance/Single.scala rename to scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/inheritance/Single.scala diff --git a/scala-lang-modules/scala-lang-2/src/main/scala-2/com/baeldung/scala/nested/Factorial.scala b/scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/nested/Factorial.scala similarity index 100% rename from scala-lang-modules/scala-lang-2/src/main/scala-2/com/baeldung/scala/nested/Factorial.scala rename to scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/nested/Factorial.scala diff --git a/scala-lang-modules/scala-lang-2/src/main/scala-2/com/baeldung/scala/singletons/Counter.scala b/scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/singletons/Counter.scala similarity index 100% rename from scala-lang-modules/scala-lang-2/src/main/scala-2/com/baeldung/scala/singletons/Counter.scala rename to scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/singletons/Counter.scala diff --git a/scala-lang-modules/scala-lang-2/src/main/scala-2/com/baeldung/scala/voidtypes/NilEmptyList.scala b/scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/voidtypes/NilEmptyList.scala similarity index 100% rename from scala-lang-modules/scala-lang-2/src/main/scala-2/com/baeldung/scala/voidtypes/NilEmptyList.scala rename to scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/voidtypes/NilEmptyList.scala diff --git a/scala-lang-modules/scala-lang-2/src/main/scala-2/com/baeldung/scala/voidtypes/NoneEmptyOption.scala b/scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/voidtypes/NoneEmptyOption.scala similarity index 100% rename from scala-lang-modules/scala-lang-2/src/main/scala-2/com/baeldung/scala/voidtypes/NoneEmptyOption.scala rename to scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/voidtypes/NoneEmptyOption.scala diff --git a/scala-lang-modules/scala-lang-2/src/main/scala-2/com/baeldung/scala/voidtypes/NothingTrait.scala b/scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/voidtypes/NothingTrait.scala similarity index 100% rename from scala-lang-modules/scala-lang-2/src/main/scala-2/com/baeldung/scala/voidtypes/NothingTrait.scala rename to scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/voidtypes/NothingTrait.scala diff --git a/scala-lang-modules/scala-lang-2/src/main/scala-2/com/baeldung/scala/voidtypes/NullTypeAndnullValue.scala b/scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/voidtypes/NullTypeAndnullValue.scala similarity index 100% rename from scala-lang-modules/scala-lang-2/src/main/scala-2/com/baeldung/scala/voidtypes/NullTypeAndnullValue.scala rename to scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/voidtypes/NullTypeAndnullValue.scala diff --git a/scala-lang-modules/scala-lang-2/src/main/scala-2/com/baeldung/scala/voidtypes/UnitReturnType.scala b/scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/voidtypes/UnitReturnType.scala similarity index 90% rename from scala-lang-modules/scala-lang-2/src/main/scala-2/com/baeldung/scala/voidtypes/UnitReturnType.scala rename to scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/voidtypes/UnitReturnType.scala index 5b06a383e..2b18aae32 100644 --- a/scala-lang-modules/scala-lang-2/src/main/scala-2/com/baeldung/scala/voidtypes/UnitReturnType.scala +++ b/scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/voidtypes/UnitReturnType.scala @@ -9,7 +9,7 @@ object UnitReturnType extends App { } println("result of function returning Unit: %s".format(functionReturnUnit)) - def functionReturnImplicitUnit { + def functionReturnImplicitUnit: Unit = { s""" do something, don't return anything """ diff --git a/scala-lang-modules/scala-lang-2/src/main/scala-2/com/baeldung/scala/withtrait/Animal.scala b/scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/withtrait/Animal.scala similarity index 100% rename from scala-lang-modules/scala-lang-2/src/main/scala-2/com/baeldung/scala/withtrait/Animal.scala rename to scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/withtrait/Animal.scala diff --git a/scala-lang-modules/scala-lang-2/src/main/scala-2/com/baeldung/scala/withtrait/Musician.scala b/scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/withtrait/Musician.scala similarity index 100% rename from scala-lang-modules/scala-lang-2/src/main/scala-2/com/baeldung/scala/withtrait/Musician.scala rename to scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/withtrait/Musician.scala diff --git a/scala-lang-modules/scala-lang-2/src/main/scala-2/com/baeldung/scala/withtrait/Person.scala b/scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/withtrait/Person.scala similarity index 100% rename from scala-lang-modules/scala-lang-2/src/main/scala-2/com/baeldung/scala/withtrait/Person.scala rename to scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/withtrait/Person.scala diff --git a/scala-lang-modules/scala-lang-2/src/main/scala-2/com/baeldung/scala/withtrait/Politician.scala b/scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/withtrait/Politician.scala similarity index 100% rename from scala-lang-modules/scala-lang-2/src/main/scala-2/com/baeldung/scala/withtrait/Politician.scala rename to scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/withtrait/Politician.scala diff --git a/scala-lang-modules/scala-lang-2/src/test/scala-2/com/baeldung/scala/singletons/CounterUnitTest.scala b/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/singletons/CounterUnitTest.scala similarity index 100% rename from scala-lang-modules/scala-lang-2/src/test/scala-2/com/baeldung/scala/singletons/CounterUnitTest.scala rename to scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/singletons/CounterUnitTest.scala diff --git a/scala-lang-modules/scala-lang-2/src/test/scala-2/com/baeldung/scala/voidtypes/NilEmptyListUnitTest.scala b/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/voidtypes/NilEmptyListUnitTest.scala similarity index 100% rename from scala-lang-modules/scala-lang-2/src/test/scala-2/com/baeldung/scala/voidtypes/NilEmptyListUnitTest.scala rename to scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/voidtypes/NilEmptyListUnitTest.scala diff --git a/scala-lang-modules/scala-lang-2/src/test/scala-2/com/baeldung/scala/voidtypes/NoneEmptyOptionUnitTest.scala b/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/voidtypes/NoneEmptyOptionUnitTest.scala similarity index 100% rename from scala-lang-modules/scala-lang-2/src/test/scala-2/com/baeldung/scala/voidtypes/NoneEmptyOptionUnitTest.scala rename to scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/voidtypes/NoneEmptyOptionUnitTest.scala diff --git a/scala-lang-modules/scala-lang-2/src/test/scala-2/com/baeldung/scala/voidtypes/NothingTraitUnitTest.scala b/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/voidtypes/NothingTraitUnitTest.scala similarity index 100% rename from scala-lang-modules/scala-lang-2/src/test/scala-2/com/baeldung/scala/voidtypes/NothingTraitUnitTest.scala rename to scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/voidtypes/NothingTraitUnitTest.scala diff --git a/scala-lang-modules/scala-lang-2/src/test/scala-2/com/baeldung/scala/voidtypes/NullTypeAndNullValueUnitTest.scala b/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/voidtypes/NullTypeAndNullValueUnitTest.scala similarity index 100% rename from scala-lang-modules/scala-lang-2/src/test/scala-2/com/baeldung/scala/voidtypes/NullTypeAndNullValueUnitTest.scala rename to scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/voidtypes/NullTypeAndNullValueUnitTest.scala diff --git a/scala-lang-modules/scala-lang-2/src/test/scala-2/com/baeldung/scala/voidtypes/UnitReturnTypeUnitTest.scala b/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/voidtypes/UnitReturnTypeUnitTest.scala similarity index 100% rename from scala-lang-modules/scala-lang-2/src/test/scala-2/com/baeldung/scala/voidtypes/UnitReturnTypeUnitTest.scala rename to scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/voidtypes/UnitReturnTypeUnitTest.scala diff --git a/scala-lang-modules/scala-lang-2/src/test/scala-2/com/baeldung/scala/withtrait/WithTraitSpec.scala b/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/withtrait/WithTraitSpec.scala similarity index 100% rename from scala-lang-modules/scala-lang-2/src/test/scala-2/com/baeldung/scala/withtrait/WithTraitSpec.scala rename to scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/withtrait/WithTraitSpec.scala From 4231225b8032e6bb4d2dda7fc1b26debf905e813 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sun, 3 Dec 2023 09:44:08 +0100 Subject: [PATCH 0176/1318] scala-core-fp module migrated to Scala 3 --- build.sbt | 1 + .../caseobjectsvsenums/CurrencyADT.scala | 0 .../caseobjectsvsenums/CurrencyEnum.scala | 0 .../AnonymousFunctionInHOF.scala | 0 .../scala/firstclassfunctions/Closure.scala | 0 .../scala/firstclassfunctions/Currying.scala | 0 .../FunctionAsArgumentInHOF.scala | 0 .../FunctionAsResultInHOF.scala | 0 .../PartiallyAppliedFunction.scala | 0 .../foldvsreduce/FoldLeftVsReduceLeft.scala | 0 .../com/baeldung/scala/monad/LazyMonad.scala | 0 .../scala/monoid/ListMonoidInstance.scala | 0 .../scala/monoid/MapMonoidInstance.scala | 0 .../com/baeldung/scala/monoid/Monoid.scala | 0 .../baeldung/scala/tagless/TaglessFinal.scala | 0 .../scala/typeclasses/TypeClassExample.scala | 0 .../CurrencyAdtUnitTest.scala | 0 .../CurrencyEnumUnitTest.scala | 0 .../scala/currying/CurryingUnitTest.scala | 20 +++++++++---------- .../AnonymousFunctionInHOFUnitTest.scala | 0 .../firstclassfunctions/ClosureUnitTest.scala | 0 .../CurryingUnitTest.scala | 0 .../FunctionAsArgumentInHOFUnitTest.scala | 0 .../FunctionAsResultInHOFUnitTest.scala | 0 .../PartiallyAppliedFunctionUnitTest.scala | 0 .../FoldLeftVsReduceLeftUnitTest.scala | 0 .../FunctionCompositionTest.scala | 0 .../scala/functor/FunctorUnitTest.scala | 0 .../scala/monad/LazyMonadUnitTest.scala | 0 .../scala/monoid/MapMonoidUnitTest.scala | 0 .../monoid/WordFrequencyCounterUnitTest.scala | 0 .../scala/tagless/TaglessFinalUnitTest.scala | 0 .../TypeClassExampleUnitTest.scala | 0 33 files changed, 11 insertions(+), 10 deletions(-) rename scala-core-modules/scala-core-fp/src/main/{scala-2 => scala}/com/baeldung/scala/caseobjectsvsenums/CurrencyADT.scala (100%) rename scala-core-modules/scala-core-fp/src/main/{scala-2 => scala}/com/baeldung/scala/caseobjectsvsenums/CurrencyEnum.scala (100%) rename scala-core-modules/scala-core-fp/src/main/{scala-2 => scala}/com/baeldung/scala/firstclassfunctions/AnonymousFunctionInHOF.scala (100%) rename scala-core-modules/scala-core-fp/src/main/{scala-2 => scala}/com/baeldung/scala/firstclassfunctions/Closure.scala (100%) rename scala-core-modules/scala-core-fp/src/main/{scala-2 => scala}/com/baeldung/scala/firstclassfunctions/Currying.scala (100%) rename scala-core-modules/scala-core-fp/src/main/{scala-2 => scala}/com/baeldung/scala/firstclassfunctions/FunctionAsArgumentInHOF.scala (100%) rename scala-core-modules/scala-core-fp/src/main/{scala-2 => scala}/com/baeldung/scala/firstclassfunctions/FunctionAsResultInHOF.scala (100%) rename scala-core-modules/scala-core-fp/src/main/{scala-2 => scala}/com/baeldung/scala/firstclassfunctions/PartiallyAppliedFunction.scala (100%) rename scala-core-modules/scala-core-fp/src/main/{scala-2 => scala}/com/baeldung/scala/foldvsreduce/FoldLeftVsReduceLeft.scala (100%) rename scala-core-modules/scala-core-fp/src/main/{scala-2 => scala}/com/baeldung/scala/monad/LazyMonad.scala (100%) rename scala-core-modules/scala-core-fp/src/main/{scala-2 => scala}/com/baeldung/scala/monoid/ListMonoidInstance.scala (100%) rename scala-core-modules/scala-core-fp/src/main/{scala-2 => scala}/com/baeldung/scala/monoid/MapMonoidInstance.scala (100%) rename scala-core-modules/scala-core-fp/src/main/{scala-2 => scala}/com/baeldung/scala/monoid/Monoid.scala (100%) rename scala-core-modules/scala-core-fp/src/main/{scala-2 => scala}/com/baeldung/scala/tagless/TaglessFinal.scala (100%) rename scala-core-modules/scala-core-fp/src/main/{scala-2 => scala}/com/baeldung/scala/typeclasses/TypeClassExample.scala (100%) rename scala-core-modules/scala-core-fp/src/test/{scala-2 => scala}/com/baeldung/scala/caseobjectsvsenums/CurrencyAdtUnitTest.scala (100%) rename scala-core-modules/scala-core-fp/src/test/{scala-2 => scala}/com/baeldung/scala/caseobjectsvsenums/CurrencyEnumUnitTest.scala (100%) rename scala-core-modules/scala-core-fp/src/test/{scala-2 => scala}/com/baeldung/scala/currying/CurryingUnitTest.scala (91%) rename scala-core-modules/scala-core-fp/src/test/{scala-2 => scala}/com/baeldung/scala/firstclassfunctions/AnonymousFunctionInHOFUnitTest.scala (100%) rename scala-core-modules/scala-core-fp/src/test/{scala-2 => scala}/com/baeldung/scala/firstclassfunctions/ClosureUnitTest.scala (100%) rename scala-core-modules/scala-core-fp/src/test/{scala-2 => scala}/com/baeldung/scala/firstclassfunctions/CurryingUnitTest.scala (100%) rename scala-core-modules/scala-core-fp/src/test/{scala-2 => scala}/com/baeldung/scala/firstclassfunctions/FunctionAsArgumentInHOFUnitTest.scala (100%) rename scala-core-modules/scala-core-fp/src/test/{scala-2 => scala}/com/baeldung/scala/firstclassfunctions/FunctionAsResultInHOFUnitTest.scala (100%) rename scala-core-modules/scala-core-fp/src/test/{scala-2 => scala}/com/baeldung/scala/firstclassfunctions/PartiallyAppliedFunctionUnitTest.scala (100%) rename scala-core-modules/scala-core-fp/src/test/{scala-2 => scala}/com/baeldung/scala/foldvsreduce/FoldLeftVsReduceLeftUnitTest.scala (100%) rename scala-core-modules/scala-core-fp/src/test/{scala-2 => scala}/com/baeldung/scala/functioncomposition/FunctionCompositionTest.scala (100%) rename scala-core-modules/scala-core-fp/src/test/{scala-2 => scala}/com/baeldung/scala/functor/FunctorUnitTest.scala (100%) rename scala-core-modules/scala-core-fp/src/test/{scala-2 => scala}/com/baeldung/scala/monad/LazyMonadUnitTest.scala (100%) rename scala-core-modules/scala-core-fp/src/test/{scala-2 => scala}/com/baeldung/scala/monoid/MapMonoidUnitTest.scala (100%) rename scala-core-modules/scala-core-fp/src/test/{scala-2 => scala}/com/baeldung/scala/monoid/WordFrequencyCounterUnitTest.scala (100%) rename scala-core-modules/scala-core-fp/src/test/{scala-2 => scala}/com/baeldung/scala/tagless/TaglessFinalUnitTest.scala (100%) rename scala-core-modules/scala-core-fp/src/test/{scala-2 => scala}/com/baeldung/scala/typeclasses/TypeClassExampleUnitTest.scala (100%) diff --git a/build.sbt b/build.sbt index 58904c942..a5a493bcb 100644 --- a/build.sbt +++ b/build.sbt @@ -113,6 +113,7 @@ lazy val scala_core_oop = (project in file("scala-core-modules/scala-core-oop")) lazy val scala_core_fp = (project in file("scala-core-modules/scala-core-fp")) .settings( name := "scala-core-fp", + scalaVersion := scala3Version, libraryDependencies ++= Seq(catsEffect, jUnitInterface) ++ scalaTestDeps ) diff --git a/scala-core-modules/scala-core-fp/src/main/scala-2/com/baeldung/scala/caseobjectsvsenums/CurrencyADT.scala b/scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/caseobjectsvsenums/CurrencyADT.scala similarity index 100% rename from scala-core-modules/scala-core-fp/src/main/scala-2/com/baeldung/scala/caseobjectsvsenums/CurrencyADT.scala rename to scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/caseobjectsvsenums/CurrencyADT.scala diff --git a/scala-core-modules/scala-core-fp/src/main/scala-2/com/baeldung/scala/caseobjectsvsenums/CurrencyEnum.scala b/scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/caseobjectsvsenums/CurrencyEnum.scala similarity index 100% rename from scala-core-modules/scala-core-fp/src/main/scala-2/com/baeldung/scala/caseobjectsvsenums/CurrencyEnum.scala rename to scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/caseobjectsvsenums/CurrencyEnum.scala diff --git a/scala-core-modules/scala-core-fp/src/main/scala-2/com/baeldung/scala/firstclassfunctions/AnonymousFunctionInHOF.scala b/scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/firstclassfunctions/AnonymousFunctionInHOF.scala similarity index 100% rename from scala-core-modules/scala-core-fp/src/main/scala-2/com/baeldung/scala/firstclassfunctions/AnonymousFunctionInHOF.scala rename to scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/firstclassfunctions/AnonymousFunctionInHOF.scala diff --git a/scala-core-modules/scala-core-fp/src/main/scala-2/com/baeldung/scala/firstclassfunctions/Closure.scala b/scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/firstclassfunctions/Closure.scala similarity index 100% rename from scala-core-modules/scala-core-fp/src/main/scala-2/com/baeldung/scala/firstclassfunctions/Closure.scala rename to scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/firstclassfunctions/Closure.scala diff --git a/scala-core-modules/scala-core-fp/src/main/scala-2/com/baeldung/scala/firstclassfunctions/Currying.scala b/scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/firstclassfunctions/Currying.scala similarity index 100% rename from scala-core-modules/scala-core-fp/src/main/scala-2/com/baeldung/scala/firstclassfunctions/Currying.scala rename to scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/firstclassfunctions/Currying.scala diff --git a/scala-core-modules/scala-core-fp/src/main/scala-2/com/baeldung/scala/firstclassfunctions/FunctionAsArgumentInHOF.scala b/scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/firstclassfunctions/FunctionAsArgumentInHOF.scala similarity index 100% rename from scala-core-modules/scala-core-fp/src/main/scala-2/com/baeldung/scala/firstclassfunctions/FunctionAsArgumentInHOF.scala rename to scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/firstclassfunctions/FunctionAsArgumentInHOF.scala diff --git a/scala-core-modules/scala-core-fp/src/main/scala-2/com/baeldung/scala/firstclassfunctions/FunctionAsResultInHOF.scala b/scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/firstclassfunctions/FunctionAsResultInHOF.scala similarity index 100% rename from scala-core-modules/scala-core-fp/src/main/scala-2/com/baeldung/scala/firstclassfunctions/FunctionAsResultInHOF.scala rename to scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/firstclassfunctions/FunctionAsResultInHOF.scala diff --git a/scala-core-modules/scala-core-fp/src/main/scala-2/com/baeldung/scala/firstclassfunctions/PartiallyAppliedFunction.scala b/scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/firstclassfunctions/PartiallyAppliedFunction.scala similarity index 100% rename from scala-core-modules/scala-core-fp/src/main/scala-2/com/baeldung/scala/firstclassfunctions/PartiallyAppliedFunction.scala rename to scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/firstclassfunctions/PartiallyAppliedFunction.scala diff --git a/scala-core-modules/scala-core-fp/src/main/scala-2/com/baeldung/scala/foldvsreduce/FoldLeftVsReduceLeft.scala b/scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/foldvsreduce/FoldLeftVsReduceLeft.scala similarity index 100% rename from scala-core-modules/scala-core-fp/src/main/scala-2/com/baeldung/scala/foldvsreduce/FoldLeftVsReduceLeft.scala rename to scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/foldvsreduce/FoldLeftVsReduceLeft.scala diff --git a/scala-core-modules/scala-core-fp/src/main/scala-2/com/baeldung/scala/monad/LazyMonad.scala b/scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/monad/LazyMonad.scala similarity index 100% rename from scala-core-modules/scala-core-fp/src/main/scala-2/com/baeldung/scala/monad/LazyMonad.scala rename to scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/monad/LazyMonad.scala diff --git a/scala-core-modules/scala-core-fp/src/main/scala-2/com/baeldung/scala/monoid/ListMonoidInstance.scala b/scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/monoid/ListMonoidInstance.scala similarity index 100% rename from scala-core-modules/scala-core-fp/src/main/scala-2/com/baeldung/scala/monoid/ListMonoidInstance.scala rename to scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/monoid/ListMonoidInstance.scala diff --git a/scala-core-modules/scala-core-fp/src/main/scala-2/com/baeldung/scala/monoid/MapMonoidInstance.scala b/scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/monoid/MapMonoidInstance.scala similarity index 100% rename from scala-core-modules/scala-core-fp/src/main/scala-2/com/baeldung/scala/monoid/MapMonoidInstance.scala rename to scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/monoid/MapMonoidInstance.scala diff --git a/scala-core-modules/scala-core-fp/src/main/scala-2/com/baeldung/scala/monoid/Monoid.scala b/scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/monoid/Monoid.scala similarity index 100% rename from scala-core-modules/scala-core-fp/src/main/scala-2/com/baeldung/scala/monoid/Monoid.scala rename to scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/monoid/Monoid.scala diff --git a/scala-core-modules/scala-core-fp/src/main/scala-2/com/baeldung/scala/tagless/TaglessFinal.scala b/scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/tagless/TaglessFinal.scala similarity index 100% rename from scala-core-modules/scala-core-fp/src/main/scala-2/com/baeldung/scala/tagless/TaglessFinal.scala rename to scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/tagless/TaglessFinal.scala diff --git a/scala-core-modules/scala-core-fp/src/main/scala-2/com/baeldung/scala/typeclasses/TypeClassExample.scala b/scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/typeclasses/TypeClassExample.scala similarity index 100% rename from scala-core-modules/scala-core-fp/src/main/scala-2/com/baeldung/scala/typeclasses/TypeClassExample.scala rename to scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/typeclasses/TypeClassExample.scala diff --git a/scala-core-modules/scala-core-fp/src/test/scala-2/com/baeldung/scala/caseobjectsvsenums/CurrencyAdtUnitTest.scala b/scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/caseobjectsvsenums/CurrencyAdtUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-fp/src/test/scala-2/com/baeldung/scala/caseobjectsvsenums/CurrencyAdtUnitTest.scala rename to scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/caseobjectsvsenums/CurrencyAdtUnitTest.scala diff --git a/scala-core-modules/scala-core-fp/src/test/scala-2/com/baeldung/scala/caseobjectsvsenums/CurrencyEnumUnitTest.scala b/scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/caseobjectsvsenums/CurrencyEnumUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-fp/src/test/scala-2/com/baeldung/scala/caseobjectsvsenums/CurrencyEnumUnitTest.scala rename to scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/caseobjectsvsenums/CurrencyEnumUnitTest.scala diff --git a/scala-core-modules/scala-core-fp/src/test/scala-2/com/baeldung/scala/currying/CurryingUnitTest.scala b/scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/currying/CurryingUnitTest.scala similarity index 91% rename from scala-core-modules/scala-core-fp/src/test/scala-2/com/baeldung/scala/currying/CurryingUnitTest.scala rename to scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/currying/CurryingUnitTest.scala index 52affb620..89afb5c65 100644 --- a/scala-core-modules/scala-core-fp/src/test/scala-2/com/baeldung/scala/currying/CurryingUnitTest.scala +++ b/scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/currying/CurryingUnitTest.scala @@ -6,7 +6,7 @@ import org.scalatest.matchers.should.Matchers class CurryingUnitTest extends Matchers { @Test - def givenMultipleArgumentsFunction_whenCurried_thenReturnCurriedFunction() { + def givenMultipleArgumentsFunction_whenCurried_thenReturnCurriedFunction() = { val sum: (Int, Int) => Int = (x, y) => x + y val curriedSum: Int => Int => Int = sum.curried @@ -15,7 +15,7 @@ class CurryingUnitTest extends Matchers { } @Test - def givenMultipleArgumentsMethod_whenCurried_thenReturnCurriedFunction() { + def givenMultipleArgumentsMethod_whenCurried_thenReturnCurriedFunction() = { def sum(x: Int, y: Int): Int = x + y val curriedSum: Int => Int => Int = (sum _).curried @@ -25,7 +25,7 @@ class CurryingUnitTest extends Matchers { } @Test - def givenMultipleArgumentListsMethod_whenCurried_thenReturnCurriedFunction() { + def givenMultipleArgumentListsMethod_whenCurried_thenReturnCurriedFunction() = { def sum(x: Int)(y: Int): Int = x + y val curriedSum: Int => Int => Int = sum @@ -35,7 +35,7 @@ class CurryingUnitTest extends Matchers { } @Test - def givenCurriedFunction_whenPartialApplied_thenReturnLowerArityFunction() { + def givenCurriedFunction_whenPartialApplied_thenReturnLowerArityFunction() = { val sum: Int => Int => Int = x => y => x + y val increment: Int => Int = sum(1) @@ -43,7 +43,7 @@ class CurryingUnitTest extends Matchers { } @Test - def givenMultipleArgumentListsMethod_whenPartialApplied_thenReturnLowerArityMethod() { + def givenMultipleArgumentListsMethod_whenPartialApplied_thenReturnLowerArityMethod() = { def sum(x: Int)(y: Int): Int = x + y val increment: Int => Int = sum(1) @@ -52,7 +52,7 @@ class CurryingUnitTest extends Matchers { } @Test - def givenMultipleArgumentsFindMethod_whenCalled_thenPredicateFunctionNeedsExplicitType() { + def givenMultipleArgumentsFindMethod_whenCalled_thenPredicateFunctionNeedsExplicitType() = { def find[A](xs: List[A], predicate: A => Boolean): Option[A] = { xs match { case Nil => None @@ -65,7 +65,7 @@ class CurryingUnitTest extends Matchers { } @Test - def givenMultipleArgumentListFindMethod_whenCalled_thenPredicateFunctionDoesNotNeedExplicitType() { + def givenMultipleArgumentListFindMethod_whenCalled_thenPredicateFunctionDoesNotNeedExplicitType() = { def find[A](xs: List[A])(predicate: A => Boolean): Option[A] = { xs match { case Nil => None @@ -78,7 +78,7 @@ class CurryingUnitTest extends Matchers { } @Test - def givenGenericMultipleArgumentListSumMethod_whenPartialApplied_thenReturnSimpleMethods() { + def givenGenericMultipleArgumentListSumMethod_whenPartialApplied_thenReturnSimpleMethods() = { def sumF(f: Int => Int)(x: Int, y: Int): Int = f(x) + f(y) val sum: (Int, Int) => Int = sumF(identity) val sumSquare: (Int, Int) => Int = sumF(x => x * x) @@ -92,7 +92,7 @@ class CurryingUnitTest extends Matchers { } @Test - def givenMultipleArgumentsFunction_whenUseItAsOneArgumentFunction_thenNeedsExplicitArgumentPassing() { + def givenMultipleArgumentsFunction_whenUseItAsOneArgumentFunction_thenNeedsExplicitArgumentPassing() = { val sum: (Int, Int) => Int = (x, y) => x + y val numbers: List[Int] = List(1, 2, 3) @@ -100,7 +100,7 @@ class CurryingUnitTest extends Matchers { } @Test - def givenCurriedFunction_whenUseItAsOneArgumentFunction_thenDoesNotNeedExplicitArgumentPassing() { + def givenCurriedFunction_whenUseItAsOneArgumentFunction_thenDoesNotNeedExplicitArgumentPassing() = { val curriedSum: Int => Int => Int = x => y => x + y val numbers: List[Int] = List(1, 2, 3) diff --git a/scala-core-modules/scala-core-fp/src/test/scala-2/com/baeldung/scala/firstclassfunctions/AnonymousFunctionInHOFUnitTest.scala b/scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/firstclassfunctions/AnonymousFunctionInHOFUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-fp/src/test/scala-2/com/baeldung/scala/firstclassfunctions/AnonymousFunctionInHOFUnitTest.scala rename to scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/firstclassfunctions/AnonymousFunctionInHOFUnitTest.scala diff --git a/scala-core-modules/scala-core-fp/src/test/scala-2/com/baeldung/scala/firstclassfunctions/ClosureUnitTest.scala b/scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/firstclassfunctions/ClosureUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-fp/src/test/scala-2/com/baeldung/scala/firstclassfunctions/ClosureUnitTest.scala rename to scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/firstclassfunctions/ClosureUnitTest.scala diff --git a/scala-core-modules/scala-core-fp/src/test/scala-2/com/baeldung/scala/firstclassfunctions/CurryingUnitTest.scala b/scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/firstclassfunctions/CurryingUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-fp/src/test/scala-2/com/baeldung/scala/firstclassfunctions/CurryingUnitTest.scala rename to scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/firstclassfunctions/CurryingUnitTest.scala diff --git a/scala-core-modules/scala-core-fp/src/test/scala-2/com/baeldung/scala/firstclassfunctions/FunctionAsArgumentInHOFUnitTest.scala b/scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/firstclassfunctions/FunctionAsArgumentInHOFUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-fp/src/test/scala-2/com/baeldung/scala/firstclassfunctions/FunctionAsArgumentInHOFUnitTest.scala rename to scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/firstclassfunctions/FunctionAsArgumentInHOFUnitTest.scala diff --git a/scala-core-modules/scala-core-fp/src/test/scala-2/com/baeldung/scala/firstclassfunctions/FunctionAsResultInHOFUnitTest.scala b/scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/firstclassfunctions/FunctionAsResultInHOFUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-fp/src/test/scala-2/com/baeldung/scala/firstclassfunctions/FunctionAsResultInHOFUnitTest.scala rename to scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/firstclassfunctions/FunctionAsResultInHOFUnitTest.scala diff --git a/scala-core-modules/scala-core-fp/src/test/scala-2/com/baeldung/scala/firstclassfunctions/PartiallyAppliedFunctionUnitTest.scala b/scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/firstclassfunctions/PartiallyAppliedFunctionUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-fp/src/test/scala-2/com/baeldung/scala/firstclassfunctions/PartiallyAppliedFunctionUnitTest.scala rename to scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/firstclassfunctions/PartiallyAppliedFunctionUnitTest.scala diff --git a/scala-core-modules/scala-core-fp/src/test/scala-2/com/baeldung/scala/foldvsreduce/FoldLeftVsReduceLeftUnitTest.scala b/scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/foldvsreduce/FoldLeftVsReduceLeftUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-fp/src/test/scala-2/com/baeldung/scala/foldvsreduce/FoldLeftVsReduceLeftUnitTest.scala rename to scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/foldvsreduce/FoldLeftVsReduceLeftUnitTest.scala diff --git a/scala-core-modules/scala-core-fp/src/test/scala-2/com/baeldung/scala/functioncomposition/FunctionCompositionTest.scala b/scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/functioncomposition/FunctionCompositionTest.scala similarity index 100% rename from scala-core-modules/scala-core-fp/src/test/scala-2/com/baeldung/scala/functioncomposition/FunctionCompositionTest.scala rename to scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/functioncomposition/FunctionCompositionTest.scala diff --git a/scala-core-modules/scala-core-fp/src/test/scala-2/com/baeldung/scala/functor/FunctorUnitTest.scala b/scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/functor/FunctorUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-fp/src/test/scala-2/com/baeldung/scala/functor/FunctorUnitTest.scala rename to scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/functor/FunctorUnitTest.scala diff --git a/scala-core-modules/scala-core-fp/src/test/scala-2/com/baeldung/scala/monad/LazyMonadUnitTest.scala b/scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/monad/LazyMonadUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-fp/src/test/scala-2/com/baeldung/scala/monad/LazyMonadUnitTest.scala rename to scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/monad/LazyMonadUnitTest.scala diff --git a/scala-core-modules/scala-core-fp/src/test/scala-2/com/baeldung/scala/monoid/MapMonoidUnitTest.scala b/scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/monoid/MapMonoidUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-fp/src/test/scala-2/com/baeldung/scala/monoid/MapMonoidUnitTest.scala rename to scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/monoid/MapMonoidUnitTest.scala diff --git a/scala-core-modules/scala-core-fp/src/test/scala-2/com/baeldung/scala/monoid/WordFrequencyCounterUnitTest.scala b/scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/monoid/WordFrequencyCounterUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-fp/src/test/scala-2/com/baeldung/scala/monoid/WordFrequencyCounterUnitTest.scala rename to scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/monoid/WordFrequencyCounterUnitTest.scala diff --git a/scala-core-modules/scala-core-fp/src/test/scala-2/com/baeldung/scala/tagless/TaglessFinalUnitTest.scala b/scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/tagless/TaglessFinalUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-fp/src/test/scala-2/com/baeldung/scala/tagless/TaglessFinalUnitTest.scala rename to scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/tagless/TaglessFinalUnitTest.scala diff --git a/scala-core-modules/scala-core-fp/src/test/scala-2/com/baeldung/scala/typeclasses/TypeClassExampleUnitTest.scala b/scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/typeclasses/TypeClassExampleUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-fp/src/test/scala-2/com/baeldung/scala/typeclasses/TypeClassExampleUnitTest.scala rename to scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/typeclasses/TypeClassExampleUnitTest.scala From bce08ca2ba8cbfaf8e732d8cc8d9920d416fa8fc Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sun, 3 Dec 2023 09:50:05 +0100 Subject: [PATCH 0177/1318] Migrated scala-core-dates module to scala 3 --- build.sbt | 1 + 1 file changed, 1 insertion(+) diff --git a/build.sbt b/build.sbt index a5a493bcb..8e116208e 100644 --- a/build.sbt +++ b/build.sbt @@ -122,6 +122,7 @@ lazy val scala_core_dates = (project in file("scala-core-modules/scala-core-dates")) .settings( name := "scala-core-dates", + scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps, libraryDependencies += "joda-time" % "joda-time" % "2.12.5", libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "2.32.0", From 16a8afdef4f6eb792167cd67f6702d7ae26853de Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sun, 3 Dec 2023 16:17:15 +0100 Subject: [PATCH 0178/1318] Fixed test issue due to non-unit return type --- .../scala/currying/CurryingUnitTest.scala | 30 ++++++++++++------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/currying/CurryingUnitTest.scala b/scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/currying/CurryingUnitTest.scala index 89afb5c65..44cee0f5b 100644 --- a/scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/currying/CurryingUnitTest.scala +++ b/scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/currying/CurryingUnitTest.scala @@ -6,7 +6,8 @@ import org.scalatest.matchers.should.Matchers class CurryingUnitTest extends Matchers { @Test - def givenMultipleArgumentsFunction_whenCurried_thenReturnCurriedFunction() = { + def givenMultipleArgumentsFunction_whenCurried_thenReturnCurriedFunction() + : Unit = { val sum: (Int, Int) => Int = (x, y) => x + y val curriedSum: Int => Int => Int = sum.curried @@ -15,7 +16,8 @@ class CurryingUnitTest extends Matchers { } @Test - def givenMultipleArgumentsMethod_whenCurried_thenReturnCurriedFunction() = { + def givenMultipleArgumentsMethod_whenCurried_thenReturnCurriedFunction() + : Unit = { def sum(x: Int, y: Int): Int = x + y val curriedSum: Int => Int => Int = (sum _).curried @@ -25,7 +27,8 @@ class CurryingUnitTest extends Matchers { } @Test - def givenMultipleArgumentListsMethod_whenCurried_thenReturnCurriedFunction() = { + def givenMultipleArgumentListsMethod_whenCurried_thenReturnCurriedFunction() + : Unit = { def sum(x: Int)(y: Int): Int = x + y val curriedSum: Int => Int => Int = sum @@ -35,7 +38,8 @@ class CurryingUnitTest extends Matchers { } @Test - def givenCurriedFunction_whenPartialApplied_thenReturnLowerArityFunction() = { + def givenCurriedFunction_whenPartialApplied_thenReturnLowerArityFunction() + : Unit = { val sum: Int => Int => Int = x => y => x + y val increment: Int => Int = sum(1) @@ -43,7 +47,8 @@ class CurryingUnitTest extends Matchers { } @Test - def givenMultipleArgumentListsMethod_whenPartialApplied_thenReturnLowerArityMethod() = { + def givenMultipleArgumentListsMethod_whenPartialApplied_thenReturnLowerArityMethod() + : Unit = { def sum(x: Int)(y: Int): Int = x + y val increment: Int => Int = sum(1) @@ -52,7 +57,8 @@ class CurryingUnitTest extends Matchers { } @Test - def givenMultipleArgumentsFindMethod_whenCalled_thenPredicateFunctionNeedsExplicitType() = { + def givenMultipleArgumentsFindMethod_whenCalled_thenPredicateFunctionNeedsExplicitType() + : Unit = { def find[A](xs: List[A], predicate: A => Boolean): Option[A] = { xs match { case Nil => None @@ -65,7 +71,8 @@ class CurryingUnitTest extends Matchers { } @Test - def givenMultipleArgumentListFindMethod_whenCalled_thenPredicateFunctionDoesNotNeedExplicitType() = { + def givenMultipleArgumentListFindMethod_whenCalled_thenPredicateFunctionDoesNotNeedExplicitType() + : Unit = { def find[A](xs: List[A])(predicate: A => Boolean): Option[A] = { xs match { case Nil => None @@ -78,7 +85,8 @@ class CurryingUnitTest extends Matchers { } @Test - def givenGenericMultipleArgumentListSumMethod_whenPartialApplied_thenReturnSimpleMethods() = { + def givenGenericMultipleArgumentListSumMethod_whenPartialApplied_thenReturnSimpleMethods() + : Unit = { def sumF(f: Int => Int)(x: Int, y: Int): Int = f(x) + f(y) val sum: (Int, Int) => Int = sumF(identity) val sumSquare: (Int, Int) => Int = sumF(x => x * x) @@ -92,7 +100,8 @@ class CurryingUnitTest extends Matchers { } @Test - def givenMultipleArgumentsFunction_whenUseItAsOneArgumentFunction_thenNeedsExplicitArgumentPassing() = { + def givenMultipleArgumentsFunction_whenUseItAsOneArgumentFunction_thenNeedsExplicitArgumentPassing() + : Unit = { val sum: (Int, Int) => Int = (x, y) => x + y val numbers: List[Int] = List(1, 2, 3) @@ -100,7 +109,8 @@ class CurryingUnitTest extends Matchers { } @Test - def givenCurriedFunction_whenUseItAsOneArgumentFunction_thenDoesNotNeedExplicitArgumentPassing() = { + def givenCurriedFunction_whenUseItAsOneArgumentFunction_thenDoesNotNeedExplicitArgumentPassing() + : Unit = { val curriedSum: Int => Int => Int = x => y => x + y val numbers: List[Int] = List(1, 2, 3) From 9be562e5334953c036a0abe7d2911e63c4278c29 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 4 Dec 2023 00:14:07 +0000 Subject: [PATCH 0179/1318] Update logback-classic from 1.4.11 to 1.4.14 --- build.sbt | 19 ++++++++++--------- scalatra/build.sbt | 2 +- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/build.sbt b/build.sbt index 6c33761ba..f7d2f2a52 100644 --- a/build.sbt +++ b/build.sbt @@ -9,7 +9,7 @@ val jUnitInterface = "com.github.sbt" % "junit-interface" % "0.13.3" % "test" val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.2" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.2" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV -val logback = "ch.qos.logback" % "logback-classic" % "1.4.11" +val logback = "ch.qos.logback" % "logback-classic" % "1.4.14" val embedMongoVersion = "4.11.1" val scalaTestDeps = Seq( @@ -117,14 +117,15 @@ lazy val scala_core_fp = (project in file("scala-core-modules/scala-core-fp")) Seq(catsEffect, jUnitInterface) ++ scalaTestDeps ) -lazy val scala_core_dates = (project in file("scala-core-modules/scala-core-dates")) - .settings( - name := "scala-core-dates", - libraryDependencies ++= scalaTestDeps, - libraryDependencies += "joda-time" % "joda-time" % "2.12.5", - libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "2.32.0", - libraryDependencies += "com.typesafe" % "config" % "1.4.3", - ) +lazy val scala_core_dates = + (project in file("scala-core-modules/scala-core-dates")) + .settings( + name := "scala-core-dates", + libraryDependencies ++= scalaTestDeps, + libraryDependencies += "joda-time" % "joda-time" % "2.12.5", + libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "2.32.0", + libraryDependencies += "com.typesafe" % "config" % "1.4.3" + ) lazy val scala_lang = (project in file("scala-lang-modules/scala-lang")) .settings( diff --git a/scalatra/build.sbt b/scalatra/build.sbt index 6211a680f..1a75828ac 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -8,7 +8,7 @@ version := "0.1.0-SNAPSHOT" libraryDependencies ++= Seq( "org.scalatra" %% "scalatra" % ScalatraVersion, "org.scalatra" %% "scalatra-scalatest" % ScalatraVersion % "test", - "ch.qos.logback" % "logback-classic" % "1.4.11" % "runtime", + "ch.qos.logback" % "logback-classic" % "1.4.14" % "runtime", "org.eclipse.jetty" % "jetty-webapp" % "11.0.18" % "container", "javax.servlet" % "javax.servlet-api" % "4.0.1" % "provided", "org.scalatra" %% "scalatra-auth" % ScalatraVersion, From 7aff35ee11c7f0927726c060a0fbac6d3dc54e3d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 4 Dec 2023 00:14:25 +0000 Subject: [PATCH 0180/1318] Update aws-java-sdk-s3 from 1.12.595 to 1.12.604 --- build.sbt | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/build.sbt b/build.sbt index 6c33761ba..dc0ce2d57 100644 --- a/build.sbt +++ b/build.sbt @@ -117,14 +117,15 @@ lazy val scala_core_fp = (project in file("scala-core-modules/scala-core-fp")) Seq(catsEffect, jUnitInterface) ++ scalaTestDeps ) -lazy val scala_core_dates = (project in file("scala-core-modules/scala-core-dates")) - .settings( - name := "scala-core-dates", - libraryDependencies ++= scalaTestDeps, - libraryDependencies += "joda-time" % "joda-time" % "2.12.5", - libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "2.32.0", - libraryDependencies += "com.typesafe" % "config" % "1.4.3", - ) +lazy val scala_core_dates = + (project in file("scala-core-modules/scala-core-dates")) + .settings( + name := "scala-core-dates", + libraryDependencies ++= scalaTestDeps, + libraryDependencies += "joda-time" % "joda-time" % "2.12.5", + libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "2.32.0", + libraryDependencies += "com.typesafe" % "config" % "1.4.3" + ) lazy val scala_lang = (project in file("scala-lang-modules/scala-lang")) .settings( @@ -383,7 +384,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "software.amazon.awssdk" % "s3" % "2.21.29" ), libraryDependencies ++= Seq( - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.595" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.604" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.0" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.0" % IntegrationTest ), From f4cd76e9304623f3757a2dabe90d948604e481d5 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 4 Dec 2023 00:14:36 +0000 Subject: [PATCH 0181/1318] Update elastic4s-client-esjava, ... from 8.11.1 to 8.11.3 --- build.sbt | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/build.sbt b/build.sbt index 6c33761ba..f97997540 100644 --- a/build.sbt +++ b/build.sbt @@ -117,14 +117,15 @@ lazy val scala_core_fp = (project in file("scala-core-modules/scala-core-fp")) Seq(catsEffect, jUnitInterface) ++ scalaTestDeps ) -lazy val scala_core_dates = (project in file("scala-core-modules/scala-core-dates")) - .settings( - name := "scala-core-dates", - libraryDependencies ++= scalaTestDeps, - libraryDependencies += "joda-time" % "joda-time" % "2.12.5", - libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "2.32.0", - libraryDependencies += "com.typesafe" % "config" % "1.4.3", - ) +lazy val scala_core_dates = + (project in file("scala-core-modules/scala-core-dates")) + .settings( + name := "scala-core-dates", + libraryDependencies ++= scalaTestDeps, + libraryDependencies += "joda-time" % "joda-time" % "2.12.5", + libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "2.32.0", + libraryDependencies += "com.typesafe" % "config" % "1.4.3" + ) lazy val scala_lang = (project in file("scala-lang-modules/scala-lang")) .settings( @@ -273,7 +274,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) val circeVersion = "0.14.6" val monixVersion = "3.4.1" -val elastic4sVersion = "8.11.1" +val elastic4sVersion = "8.11.3" val sparkVersion = "3.5.0" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion From 2ce2d4c3353bb66ec01108daced1ef48fb3489c4 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 4 Dec 2023 00:15:06 +0000 Subject: [PATCH 0182/1318] Update json4s-jackson from 4.0.6 to 4.0.7 --- scalatra/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scalatra/build.sbt b/scalatra/build.sbt index 6211a680f..bc219d1d9 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -13,7 +13,7 @@ libraryDependencies ++= Seq( "javax.servlet" % "javax.servlet-api" % "4.0.1" % "provided", "org.scalatra" %% "scalatra-auth" % ScalatraVersion, "org.scalatra" %% "scalatra-json" % "2.8.4", - "org.json4s" %% "json4s-jackson" % "4.0.6", + "org.json4s" %% "json4s-jackson" % "4.0.7", "com.typesafe.slick" %% "slick" % "3.4.1", "com.h2database" % "h2" % "2.1.214", "com.mchange" % "c3p0" % "0.9.5.5" From b4fa83bbc78940c2a45a3e3a898ca375fd02b802 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 4 Dec 2023 00:15:20 +0000 Subject: [PATCH 0183/1318] Update mockito-core from 5.7.0 to 5.8.0 --- play-scala/caching-in-play/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/play-scala/caching-in-play/build.sbt b/play-scala/caching-in-play/build.sbt index faa3e3f7b..e77c4b543 100644 --- a/play-scala/caching-in-play/build.sbt +++ b/play-scala/caching-in-play/build.sbt @@ -11,6 +11,6 @@ libraryDependencies += guice libraryDependencies += caffeine libraryDependencies += ws libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.0" % Test -libraryDependencies += "org.mockito" % "mockito-core" % "5.7.0" % Test +libraryDependencies += "org.mockito" % "mockito-core" % "5.8.0" % Test PlayKeys.devSettings += "play.server.http.port" -> "9000" From 786d2a6131469b2265c46bc51c17d3d1c952335c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 4 Dec 2023 00:15:39 +0000 Subject: [PATCH 0184/1318] Update s3 from 2.21.29 to 2.21.37 --- build.sbt | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/build.sbt b/build.sbt index 6c33761ba..9ef3a17ae 100644 --- a/build.sbt +++ b/build.sbt @@ -117,14 +117,15 @@ lazy val scala_core_fp = (project in file("scala-core-modules/scala-core-fp")) Seq(catsEffect, jUnitInterface) ++ scalaTestDeps ) -lazy val scala_core_dates = (project in file("scala-core-modules/scala-core-dates")) - .settings( - name := "scala-core-dates", - libraryDependencies ++= scalaTestDeps, - libraryDependencies += "joda-time" % "joda-time" % "2.12.5", - libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "2.32.0", - libraryDependencies += "com.typesafe" % "config" % "1.4.3", - ) +lazy val scala_core_dates = + (project in file("scala-core-modules/scala-core-dates")) + .settings( + name := "scala-core-dates", + libraryDependencies ++= scalaTestDeps, + libraryDependencies += "joda-time" % "joda-time" % "2.12.5", + libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "2.32.0", + libraryDependencies += "com.typesafe" % "config" % "1.4.3" + ) lazy val scala_lang = (project in file("scala-lang-modules/scala-lang")) .settings( @@ -380,7 +381,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "org.testcontainers" % "pulsar" % "1.19.3" % IntegrationTest ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "s3" % "2.21.29" + "software.amazon.awssdk" % "s3" % "2.21.37" ), libraryDependencies ++= Seq( "com.amazonaws" % "aws-java-sdk-s3" % "1.12.595" % IntegrationTest, From 20dbccbb3af9362d99e09c969291a16e156a2a69 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 5 Dec 2023 20:58:17 +0100 Subject: [PATCH 0185/1318] created new scala2 module and moved code and article related to typetag into it --- build.sbt | 9 +++++++++ .../com/baeldung/scala/accessmodifiers/Figure.scala | 0 .../com/baeldung/scala/accessmodifiers/Star.scala | 0 .../com/baeldung/scala/await/AwaitFuture.scala | 0 .../com/baeldung/scala/companionobject/Task.scala | 0 .../scala/implicitparameter/ImplicitParameter.scala | 0 .../NonStrictDataStructures.scala | 0 .../com/baeldung/scala/options/OptionBuilder.scala | 0 .../com/baeldung/scala/options/OptionExample.scala | 0 .../com/baeldung/scala/options/Player.scala | 0 .../com/baeldung/scala/options/Tournament.scala | 0 .../com/baeldung/scala/scaladoc/Carnivore.scala | 0 .../com/baeldung/scala/scaladoc/IntervalTimer.scala | 0 .../com/baeldung/scala/scaladoc/TasmanianDevil.scala | 0 .../com/baeldung/scala/scaladoc/package.scala | 0 .../com/baeldung/scala/typecasts/ErrorHandling.scala | 0 .../com/baeldung/scala/typecasts/TypeErasure.scala | 0 .../com/baeldung/scala/typecasts/ValueTypeCasting.scala | 0 .../scala/accessmodifiers/AccessModifiersUnitTest.scala | 0 .../com/baeldung/scala/await/AwaitFutureUnitTest.scala | 0 .../baeldung/scala/companionobject/TaskUnitTest.scala | 6 +++--- .../scala/dataTypesAndOps/DatatypesAndOpsUnitTest.scala | 0 .../implicitparameter/ImplicitParameterUnitTest.scala | 0 .../IteratorVsStreamVsViewUnitTest.scala | 0 .../com/baeldung/scala/options/OptionUnitTest.scala | 0 .../scala/options/OptionWhenUnlessUnitTest.scala | 0 .../baeldung/scala/typecasts/TypeErasureUnitTest.scala | 0 .../com/baeldung/scala/typtag/ClassTagExample.scala | 0 .../com/baeldung/scala/typtag/TypeTagExample.scala | 0 .../com/baeldung/scala/typtag/WeakTypeTagExample.scala | 0 .../baeldung/scala/typetag/ClassTagExampleUnitTest.scala | 2 +- .../baeldung/scala/typetag/TypeTagExampleUnitTest.scala | 3 ++- .../scala/typetag/WeakTypeTagExampleUnitTest.scala | 2 +- 33 files changed, 16 insertions(+), 6 deletions(-) rename scala-core-modules/scala-core-3/src/main/{scala-2 => scala}/com/baeldung/scala/accessmodifiers/Figure.scala (100%) rename scala-core-modules/scala-core-3/src/main/{scala-2 => scala}/com/baeldung/scala/accessmodifiers/Star.scala (100%) rename scala-core-modules/scala-core-3/src/main/{scala-2 => scala}/com/baeldung/scala/await/AwaitFuture.scala (100%) rename scala-core-modules/scala-core-3/src/main/{scala-2 => scala}/com/baeldung/scala/companionobject/Task.scala (100%) rename scala-core-modules/scala-core-3/src/main/{scala-2 => scala}/com/baeldung/scala/implicitparameter/ImplicitParameter.scala (100%) rename scala-core-modules/scala-core-3/src/main/{scala-2 => scala}/com/baeldung/scala/iteratorsvsstreamsvsviews/NonStrictDataStructures.scala (100%) rename scala-core-modules/scala-core-3/src/main/{scala-2 => scala}/com/baeldung/scala/options/OptionBuilder.scala (100%) rename scala-core-modules/scala-core-3/src/main/{scala-2 => scala}/com/baeldung/scala/options/OptionExample.scala (100%) rename scala-core-modules/scala-core-3/src/main/{scala-2 => scala}/com/baeldung/scala/options/Player.scala (100%) rename scala-core-modules/scala-core-3/src/main/{scala-2 => scala}/com/baeldung/scala/options/Tournament.scala (100%) rename scala-core-modules/scala-core-3/src/main/{scala-2 => scala}/com/baeldung/scala/scaladoc/Carnivore.scala (100%) rename scala-core-modules/scala-core-3/src/main/{scala-2 => scala}/com/baeldung/scala/scaladoc/IntervalTimer.scala (100%) rename scala-core-modules/scala-core-3/src/main/{scala-2 => scala}/com/baeldung/scala/scaladoc/TasmanianDevil.scala (100%) rename scala-core-modules/scala-core-3/src/main/{scala-2 => scala}/com/baeldung/scala/scaladoc/package.scala (100%) rename scala-core-modules/scala-core-3/src/main/{scala-2 => scala}/com/baeldung/scala/typecasts/ErrorHandling.scala (100%) rename scala-core-modules/scala-core-3/src/main/{scala-2 => scala}/com/baeldung/scala/typecasts/TypeErasure.scala (100%) rename scala-core-modules/scala-core-3/src/main/{scala-2 => scala}/com/baeldung/scala/typecasts/ValueTypeCasting.scala (100%) rename scala-core-modules/scala-core-3/src/test/{scala-2 => scala}/com/baeldung/scala/accessmodifiers/AccessModifiersUnitTest.scala (100%) rename scala-core-modules/scala-core-3/src/test/{scala-2 => scala}/com/baeldung/scala/await/AwaitFutureUnitTest.scala (100%) rename scala-core-modules/scala-core-3/src/test/{scala-2 => scala}/com/baeldung/scala/companionobject/TaskUnitTest.scala (87%) rename scala-core-modules/scala-core-3/src/test/{scala-2 => scala}/com/baeldung/scala/dataTypesAndOps/DatatypesAndOpsUnitTest.scala (100%) rename scala-core-modules/scala-core-3/src/test/{scala-2 => scala}/com/baeldung/scala/implicitparameter/ImplicitParameterUnitTest.scala (100%) rename scala-core-modules/scala-core-3/src/test/{scala-2 => scala}/com/baeldung/scala/iteratorsvsstreamsvsviews/IteratorVsStreamVsViewUnitTest.scala (100%) rename scala-core-modules/scala-core-3/src/test/{scala-2 => scala}/com/baeldung/scala/options/OptionUnitTest.scala (100%) rename scala-core-modules/scala-core-3/src/test/{scala-2 => scala}/com/baeldung/scala/options/OptionWhenUnlessUnitTest.scala (100%) rename scala-core-modules/scala-core-3/src/test/{scala-2 => scala}/com/baeldung/scala/typecasts/TypeErasureUnitTest.scala (100%) rename scala-core-modules/{scala-core-3 => scala2-core}/src/main/scala-2/com/baeldung/scala/typtag/ClassTagExample.scala (100%) rename scala-core-modules/{scala-core-3 => scala2-core}/src/main/scala-2/com/baeldung/scala/typtag/TypeTagExample.scala (100%) rename scala-core-modules/{scala-core-3 => scala2-core}/src/main/scala-2/com/baeldung/scala/typtag/WeakTypeTagExample.scala (100%) rename scala-core-modules/{scala-core-3 => scala2-core}/src/test/scala-2/com/baeldung/scala/typetag/ClassTagExampleUnitTest.scala (92%) rename scala-core-modules/{scala-core-3 => scala2-core}/src/test/scala-2/com/baeldung/scala/typetag/TypeTagExampleUnitTest.scala (91%) rename scala-core-modules/{scala-core-3 => scala2-core}/src/test/scala-2/com/baeldung/scala/typetag/WeakTypeTagExampleUnitTest.scala (89%) diff --git a/build.sbt b/build.sbt index 637709e49..59bce421c 100644 --- a/build.sbt +++ b/build.sbt @@ -43,6 +43,15 @@ lazy val scala_core_2 = (project in file("scala-core-modules/scala-core-2")) lazy val scala_core_3 = (project in file("scala-core-modules/scala-core-3")) .settings( name := "scala-core-3", + scalaVersion := scala3Version, + libraryDependencies ++= scalaTestDeps, + libraryDependencies += jUnitInterface, + libraryDependencies += "org.scala-lang.modules" %% "scala-xml" % "2.2.0" + ) + +lazy val scala2_core = (project in file("scala-core-modules/scala2-core")) + .settings( + name := "scala2-core", libraryDependencies ++= scalaTestDeps, libraryDependencies += jUnitInterface, libraryDependencies += scalaReflection, diff --git a/scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/accessmodifiers/Figure.scala b/scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/accessmodifiers/Figure.scala similarity index 100% rename from scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/accessmodifiers/Figure.scala rename to scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/accessmodifiers/Figure.scala diff --git a/scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/accessmodifiers/Star.scala b/scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/accessmodifiers/Star.scala similarity index 100% rename from scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/accessmodifiers/Star.scala rename to scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/accessmodifiers/Star.scala diff --git a/scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/await/AwaitFuture.scala b/scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/await/AwaitFuture.scala similarity index 100% rename from scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/await/AwaitFuture.scala rename to scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/await/AwaitFuture.scala diff --git a/scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/companionobject/Task.scala b/scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/companionobject/Task.scala similarity index 100% rename from scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/companionobject/Task.scala rename to scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/companionobject/Task.scala diff --git a/scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/implicitparameter/ImplicitParameter.scala b/scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/implicitparameter/ImplicitParameter.scala similarity index 100% rename from scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/implicitparameter/ImplicitParameter.scala rename to scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/implicitparameter/ImplicitParameter.scala diff --git a/scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/iteratorsvsstreamsvsviews/NonStrictDataStructures.scala b/scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/iteratorsvsstreamsvsviews/NonStrictDataStructures.scala similarity index 100% rename from scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/iteratorsvsstreamsvsviews/NonStrictDataStructures.scala rename to scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/iteratorsvsstreamsvsviews/NonStrictDataStructures.scala diff --git a/scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/options/OptionBuilder.scala b/scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/options/OptionBuilder.scala similarity index 100% rename from scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/options/OptionBuilder.scala rename to scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/options/OptionBuilder.scala diff --git a/scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/options/OptionExample.scala b/scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/options/OptionExample.scala similarity index 100% rename from scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/options/OptionExample.scala rename to scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/options/OptionExample.scala diff --git a/scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/options/Player.scala b/scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/options/Player.scala similarity index 100% rename from scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/options/Player.scala rename to scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/options/Player.scala diff --git a/scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/options/Tournament.scala b/scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/options/Tournament.scala similarity index 100% rename from scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/options/Tournament.scala rename to scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/options/Tournament.scala diff --git a/scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/scaladoc/Carnivore.scala b/scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/scaladoc/Carnivore.scala similarity index 100% rename from scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/scaladoc/Carnivore.scala rename to scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/scaladoc/Carnivore.scala diff --git a/scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/scaladoc/IntervalTimer.scala b/scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/scaladoc/IntervalTimer.scala similarity index 100% rename from scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/scaladoc/IntervalTimer.scala rename to scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/scaladoc/IntervalTimer.scala diff --git a/scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/scaladoc/TasmanianDevil.scala b/scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/scaladoc/TasmanianDevil.scala similarity index 100% rename from scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/scaladoc/TasmanianDevil.scala rename to scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/scaladoc/TasmanianDevil.scala diff --git a/scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/scaladoc/package.scala b/scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/scaladoc/package.scala similarity index 100% rename from scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/scaladoc/package.scala rename to scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/scaladoc/package.scala diff --git a/scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/typecasts/ErrorHandling.scala b/scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/typecasts/ErrorHandling.scala similarity index 100% rename from scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/typecasts/ErrorHandling.scala rename to scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/typecasts/ErrorHandling.scala diff --git a/scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/typecasts/TypeErasure.scala b/scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/typecasts/TypeErasure.scala similarity index 100% rename from scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/typecasts/TypeErasure.scala rename to scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/typecasts/TypeErasure.scala diff --git a/scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/typecasts/ValueTypeCasting.scala b/scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/typecasts/ValueTypeCasting.scala similarity index 100% rename from scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/typecasts/ValueTypeCasting.scala rename to scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/typecasts/ValueTypeCasting.scala diff --git a/scala-core-modules/scala-core-3/src/test/scala-2/com/baeldung/scala/accessmodifiers/AccessModifiersUnitTest.scala b/scala-core-modules/scala-core-3/src/test/scala/com/baeldung/scala/accessmodifiers/AccessModifiersUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-3/src/test/scala-2/com/baeldung/scala/accessmodifiers/AccessModifiersUnitTest.scala rename to scala-core-modules/scala-core-3/src/test/scala/com/baeldung/scala/accessmodifiers/AccessModifiersUnitTest.scala diff --git a/scala-core-modules/scala-core-3/src/test/scala-2/com/baeldung/scala/await/AwaitFutureUnitTest.scala b/scala-core-modules/scala-core-3/src/test/scala/com/baeldung/scala/await/AwaitFutureUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-3/src/test/scala-2/com/baeldung/scala/await/AwaitFutureUnitTest.scala rename to scala-core-modules/scala-core-3/src/test/scala/com/baeldung/scala/await/AwaitFutureUnitTest.scala diff --git a/scala-core-modules/scala-core-3/src/test/scala-2/com/baeldung/scala/companionobject/TaskUnitTest.scala b/scala-core-modules/scala-core-3/src/test/scala/com/baeldung/scala/companionobject/TaskUnitTest.scala similarity index 87% rename from scala-core-modules/scala-core-3/src/test/scala-2/com/baeldung/scala/companionobject/TaskUnitTest.scala rename to scala-core-modules/scala-core-3/src/test/scala/com/baeldung/scala/companionobject/TaskUnitTest.scala index 08eefe780..58036aa97 100644 --- a/scala-core-modules/scala-core-3/src/test/scala-2/com/baeldung/scala/companionobject/TaskUnitTest.scala +++ b/scala-core-modules/scala-core-3/src/test/scala/com/baeldung/scala/companionobject/TaskUnitTest.scala @@ -8,19 +8,19 @@ class TaskUnitTest extends AnyFlatSpec with Matchers { "Task" should "be instantiated with default constructor" in { val task = new Task("do something") task.description should be("do something") - task.status should be("pending") + task.status() should be("pending") } it should "be able to construct without new keywork" in { val task = Task("do something") task.description should be("do something") - task.status should be("pending") + task.status() should be("pending") } it should "have a contructor with status parameter" in { val task = Task("do something", "started") task.description should be("do something") - task.status should be("started") + task.status() should be("started") } it should "extract status" in { diff --git a/scala-core-modules/scala-core-3/src/test/scala-2/com/baeldung/scala/dataTypesAndOps/DatatypesAndOpsUnitTest.scala b/scala-core-modules/scala-core-3/src/test/scala/com/baeldung/scala/dataTypesAndOps/DatatypesAndOpsUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-3/src/test/scala-2/com/baeldung/scala/dataTypesAndOps/DatatypesAndOpsUnitTest.scala rename to scala-core-modules/scala-core-3/src/test/scala/com/baeldung/scala/dataTypesAndOps/DatatypesAndOpsUnitTest.scala diff --git a/scala-core-modules/scala-core-3/src/test/scala-2/com/baeldung/scala/implicitparameter/ImplicitParameterUnitTest.scala b/scala-core-modules/scala-core-3/src/test/scala/com/baeldung/scala/implicitparameter/ImplicitParameterUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-3/src/test/scala-2/com/baeldung/scala/implicitparameter/ImplicitParameterUnitTest.scala rename to scala-core-modules/scala-core-3/src/test/scala/com/baeldung/scala/implicitparameter/ImplicitParameterUnitTest.scala diff --git a/scala-core-modules/scala-core-3/src/test/scala-2/com/baeldung/scala/iteratorsvsstreamsvsviews/IteratorVsStreamVsViewUnitTest.scala b/scala-core-modules/scala-core-3/src/test/scala/com/baeldung/scala/iteratorsvsstreamsvsviews/IteratorVsStreamVsViewUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-3/src/test/scala-2/com/baeldung/scala/iteratorsvsstreamsvsviews/IteratorVsStreamVsViewUnitTest.scala rename to scala-core-modules/scala-core-3/src/test/scala/com/baeldung/scala/iteratorsvsstreamsvsviews/IteratorVsStreamVsViewUnitTest.scala diff --git a/scala-core-modules/scala-core-3/src/test/scala-2/com/baeldung/scala/options/OptionUnitTest.scala b/scala-core-modules/scala-core-3/src/test/scala/com/baeldung/scala/options/OptionUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-3/src/test/scala-2/com/baeldung/scala/options/OptionUnitTest.scala rename to scala-core-modules/scala-core-3/src/test/scala/com/baeldung/scala/options/OptionUnitTest.scala diff --git a/scala-core-modules/scala-core-3/src/test/scala-2/com/baeldung/scala/options/OptionWhenUnlessUnitTest.scala b/scala-core-modules/scala-core-3/src/test/scala/com/baeldung/scala/options/OptionWhenUnlessUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-3/src/test/scala-2/com/baeldung/scala/options/OptionWhenUnlessUnitTest.scala rename to scala-core-modules/scala-core-3/src/test/scala/com/baeldung/scala/options/OptionWhenUnlessUnitTest.scala diff --git a/scala-core-modules/scala-core-3/src/test/scala-2/com/baeldung/scala/typecasts/TypeErasureUnitTest.scala b/scala-core-modules/scala-core-3/src/test/scala/com/baeldung/scala/typecasts/TypeErasureUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-3/src/test/scala-2/com/baeldung/scala/typecasts/TypeErasureUnitTest.scala rename to scala-core-modules/scala-core-3/src/test/scala/com/baeldung/scala/typecasts/TypeErasureUnitTest.scala diff --git a/scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/typtag/ClassTagExample.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/typtag/ClassTagExample.scala similarity index 100% rename from scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/typtag/ClassTagExample.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/typtag/ClassTagExample.scala diff --git a/scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/typtag/TypeTagExample.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/typtag/TypeTagExample.scala similarity index 100% rename from scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/typtag/TypeTagExample.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/typtag/TypeTagExample.scala diff --git a/scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/typtag/WeakTypeTagExample.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/typtag/WeakTypeTagExample.scala similarity index 100% rename from scala-core-modules/scala-core-3/src/main/scala-2/com/baeldung/scala/typtag/WeakTypeTagExample.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/typtag/WeakTypeTagExample.scala diff --git a/scala-core-modules/scala-core-3/src/test/scala-2/com/baeldung/scala/typetag/ClassTagExampleUnitTest.scala b/scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/typetag/ClassTagExampleUnitTest.scala similarity index 92% rename from scala-core-modules/scala-core-3/src/test/scala-2/com/baeldung/scala/typetag/ClassTagExampleUnitTest.scala rename to scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/typetag/ClassTagExampleUnitTest.scala index fab1cd120..9ced16b4a 100644 --- a/scala-core-modules/scala-core-3/src/test/scala-2/com/baeldung/scala/typetag/ClassTagExampleUnitTest.scala +++ b/scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/typetag/ClassTagExampleUnitTest.scala @@ -1,4 +1,4 @@ -package scala.com.baeldung.scala.typetag +package com.baeldung.scala.typetag import com.baeldung.scala.typtag.ClassTagExample.makeArrayFrom import org.scalatest.wordspec.AnyWordSpec diff --git a/scala-core-modules/scala-core-3/src/test/scala-2/com/baeldung/scala/typetag/TypeTagExampleUnitTest.scala b/scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/typetag/TypeTagExampleUnitTest.scala similarity index 91% rename from scala-core-modules/scala-core-3/src/test/scala-2/com/baeldung/scala/typetag/TypeTagExampleUnitTest.scala rename to scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/typetag/TypeTagExampleUnitTest.scala index b91a0a64d..3d3d4875b 100644 --- a/scala-core-modules/scala-core-3/src/test/scala-2/com/baeldung/scala/typetag/TypeTagExampleUnitTest.scala +++ b/scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/typetag/TypeTagExampleUnitTest.scala @@ -1,4 +1,5 @@ -package scala.com.baeldung.scala.typetag +package com.baeldung.scala.typetag + import com.baeldung.scala.typtag.TypeTagExample.checkType import org.scalatest.wordspec.AnyWordSpec diff --git a/scala-core-modules/scala-core-3/src/test/scala-2/com/baeldung/scala/typetag/WeakTypeTagExampleUnitTest.scala b/scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/typetag/WeakTypeTagExampleUnitTest.scala similarity index 89% rename from scala-core-modules/scala-core-3/src/test/scala-2/com/baeldung/scala/typetag/WeakTypeTagExampleUnitTest.scala rename to scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/typetag/WeakTypeTagExampleUnitTest.scala index 3d61dd131..5ab778f07 100644 --- a/scala-core-modules/scala-core-3/src/test/scala-2/com/baeldung/scala/typetag/WeakTypeTagExampleUnitTest.scala +++ b/scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/typetag/WeakTypeTagExampleUnitTest.scala @@ -1,4 +1,4 @@ -package scala.com.baeldung.scala.typetag +package com.baeldung.scala.typetag import com.baeldung.scala.typtag.WeakTypeTagExample.Foo import org.scalatest.wordspec.AnyWordSpec From fb9c61ebfc9f0fea767f4c38760bca407b0e5d4e Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 5 Dec 2023 21:00:55 +0100 Subject: [PATCH 0186/1318] Added readme for scala2 module --- scala-core-modules/scala2-core/README.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 scala-core-modules/scala2-core/README.md diff --git a/scala-core-modules/scala2-core/README.md b/scala-core-modules/scala2-core/README.md new file mode 100644 index 000000000..4f6e04bf0 --- /dev/null +++ b/scala-core-modules/scala2-core/README.md @@ -0,0 +1,4 @@ +### Relevant Articles: + +- [Preserving Type Information at Runtime in Scala](https://www.baeldung.com/scala/type-information-at-runtime) + From cb345a7ac5ba80f8ac4298a7833494c28fb976f3 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 5 Dec 2023 21:49:21 +0100 Subject: [PATCH 0187/1318] Migrated scala-core-4 to scala 3 --- build.sbt | 1 + scala-core-modules/scala-core-4/README.md | 1 - .../com/baeldung/scala/assertvsrequire/AssertUsage.scala | 0 .../com/baeldung/scala/assertvsrequire/RequireUsage.scala | 0 .../com/baeldung/scala/constructors/Constructors.scala | 0 .../com/baeldung/scala/future/FutureRecovery.scala | 0 .../com/baeldung/scala/implicitly/ImplicitlyUsage.scala | 0 .../scala/pathdependenttypes/AwardPunishmentDisipline.scala | 0 .../baeldung/scala/pathdependenttypes/KeyValueStore.scala | 0 .../pathdependenttypes/PathDependentTypeInnerClasses.scala | 0 .../com/baeldung/scala/structuraltypes/Quack.scala | 0 .../com/baeldung/scala/structuraltypes/ResourceClosing.scala | 5 +++-- .../scala/switchannotation/LookupSwitchExample.scala | 0 .../scala/switchannotation/NotOptimizedExample.scala | 0 .../baeldung/scala/switchannotation/TableSwitchExample.scala | 0 .../baeldung/scala/typemembersalias/ListIntFunctions.scala | 0 .../com/baeldung/scala/typemembersalias/Repeat.scala | 0 .../baeldung/scala/assertvsrequire/AssertUsageUnitTest.scala | 0 .../scala/assertvsrequire/RequireUsageUnitTest.scala | 0 .../com/baeldung/scala/future/FutureRecoveryUnitTest.scala | 0 .../scala/implicitimports/ImplicitImportsUnitTest.scala | 0 .../baeldung/scala/implicitly/ImplicitlyUsageUnitTest.scala | 0 .../scala/pathdependenttypes/KeyValueStoreUnitTest.scala | 0 .../com/baeldung/scala/structuraltypes/DuckUnitTest.scala | 2 ++ .../scala/structuraltypes/ResourceClosingUnitTest.scala | 0 .../scala/typemembersalias/ListIntFunctionsUnitTest.scala | 0 .../com/baeldung/scala/typemembersalias/RepeatUnitTest.scala | 0 .../scala/withfilter/WithFilterVsFilterUnitTest.scala | 0 scala-core-modules/scala2-core/README.md | 2 +- .../baeldung/scala/uniontypes/ArbitraryArityUnionType.scala | 2 ++ .../com/baeldung/scala/uniontypes/EitherDisjointUnion.scala | 0 .../scala/uniontypes/ArbitraryArityUnionTypeUnitTest.scala | 1 + .../scala/uniontypes/EitherDisjointUnionUnitTest.scala | 3 ++- 33 files changed, 12 insertions(+), 5 deletions(-) rename scala-core-modules/scala-core-4/src/main/{scala-2 => scala}/com/baeldung/scala/assertvsrequire/AssertUsage.scala (100%) rename scala-core-modules/scala-core-4/src/main/{scala-2 => scala}/com/baeldung/scala/assertvsrequire/RequireUsage.scala (100%) rename scala-core-modules/scala-core-4/src/main/{scala-2 => scala}/com/baeldung/scala/constructors/Constructors.scala (100%) rename scala-core-modules/scala-core-4/src/main/{scala-2 => scala}/com/baeldung/scala/future/FutureRecovery.scala (100%) rename scala-core-modules/scala-core-4/src/main/{scala-2 => scala}/com/baeldung/scala/implicitly/ImplicitlyUsage.scala (100%) rename scala-core-modules/scala-core-4/src/main/{scala-2 => scala}/com/baeldung/scala/pathdependenttypes/AwardPunishmentDisipline.scala (100%) rename scala-core-modules/scala-core-4/src/main/{scala-2 => scala}/com/baeldung/scala/pathdependenttypes/KeyValueStore.scala (100%) rename scala-core-modules/scala-core-4/src/main/{scala-2 => scala}/com/baeldung/scala/pathdependenttypes/PathDependentTypeInnerClasses.scala (100%) rename scala-core-modules/scala-core-4/src/main/{scala-2 => scala}/com/baeldung/scala/structuraltypes/Quack.scala (100%) rename scala-core-modules/scala-core-4/src/main/{scala-2 => scala}/com/baeldung/scala/structuraltypes/ResourceClosing.scala (64%) rename scala-core-modules/scala-core-4/src/main/{scala-2 => scala}/com/baeldung/scala/switchannotation/LookupSwitchExample.scala (100%) rename scala-core-modules/scala-core-4/src/main/{scala-2 => scala}/com/baeldung/scala/switchannotation/NotOptimizedExample.scala (100%) rename scala-core-modules/scala-core-4/src/main/{scala-2 => scala}/com/baeldung/scala/switchannotation/TableSwitchExample.scala (100%) rename scala-core-modules/scala-core-4/src/main/{scala-2 => scala}/com/baeldung/scala/typemembersalias/ListIntFunctions.scala (100%) rename scala-core-modules/scala-core-4/src/main/{scala-2 => scala}/com/baeldung/scala/typemembersalias/Repeat.scala (100%) rename scala-core-modules/scala-core-4/src/test/{scala-2 => scala}/com/baeldung/scala/assertvsrequire/AssertUsageUnitTest.scala (100%) rename scala-core-modules/scala-core-4/src/test/{scala-2 => scala}/com/baeldung/scala/assertvsrequire/RequireUsageUnitTest.scala (100%) rename scala-core-modules/scala-core-4/src/test/{scala-2 => scala}/com/baeldung/scala/future/FutureRecoveryUnitTest.scala (100%) rename scala-core-modules/scala-core-4/src/test/{scala-2 => scala}/com/baeldung/scala/implicitimports/ImplicitImportsUnitTest.scala (100%) rename scala-core-modules/scala-core-4/src/test/{scala-2 => scala}/com/baeldung/scala/implicitly/ImplicitlyUsageUnitTest.scala (100%) rename scala-core-modules/scala-core-4/src/test/{scala-2 => scala}/com/baeldung/scala/pathdependenttypes/KeyValueStoreUnitTest.scala (100%) rename scala-core-modules/scala-core-4/src/test/{scala-2 => scala}/com/baeldung/scala/structuraltypes/DuckUnitTest.scala (95%) rename scala-core-modules/scala-core-4/src/test/{scala-2 => scala}/com/baeldung/scala/structuraltypes/ResourceClosingUnitTest.scala (100%) rename scala-core-modules/scala-core-4/src/test/{scala-2 => scala}/com/baeldung/scala/typemembersalias/ListIntFunctionsUnitTest.scala (100%) rename scala-core-modules/scala-core-4/src/test/{scala-2 => scala}/com/baeldung/scala/typemembersalias/RepeatUnitTest.scala (100%) rename scala-core-modules/scala-core-4/src/test/{scala-2 => scala}/com/baeldung/scala/withfilter/WithFilterVsFilterUnitTest.scala (100%) rename scala-core-modules/{scala-core-4 => scala2-core}/src/main/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionType.scala (96%) rename scala-core-modules/{scala-core-4 => scala2-core}/src/main/scala-2/com/baeldung/scala/uniontypes/EitherDisjointUnion.scala (100%) rename scala-core-modules/{scala-core-4 => scala2-core}/src/test/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionTypeUnitTest.scala (99%) rename scala-core-modules/{scala-core-4 => scala2-core}/src/test/scala-2/com/baeldung/scala/uniontypes/EitherDisjointUnionUnitTest.scala (99%) diff --git a/build.sbt b/build.sbt index 59bce421c..ea19732e9 100644 --- a/build.sbt +++ b/build.sbt @@ -61,6 +61,7 @@ lazy val scala2_core = (project in file("scala-core-modules/scala2-core")) lazy val scala_core_4 = (project in file("scala-core-modules/scala-core-4")) .settings( name := "scala-core-4", + scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps, libraryDependencies += jUnitInterface, libraryDependencies += scalaReflection diff --git a/scala-core-modules/scala-core-4/README.md b/scala-core-modules/scala-core-4/README.md index 00e9716d6..5cebdc075 100644 --- a/scala-core-modules/scala-core-4/README.md +++ b/scala-core-modules/scala-core-4/README.md @@ -5,7 +5,6 @@ - [Type Declaration in Scala](https://www.baeldung.com/scala/type-declaration) - [Implicitly in Scala](https://www.baeldung.com/scala/implicitly) - [Path-Dependent Types in Scala](https://www.baeldung.com/scala/path-dependent-types) -- [Type Disjunction (Union Types) in Scala](https://www.baeldung.com/scala/type-disjunction) - [Private and Protected Constructors in Scala](https://www.baeldung.com/scala/private-protected-constructors) - [Difference Between assert and require in Scala](https://www.baeldung.com/scala/assert-vs-require) - [How To Use Structural Types in Scala](https://www.baeldung.com/scala/structural-types) diff --git a/scala-core-modules/scala-core-4/src/main/scala-2/com/baeldung/scala/assertvsrequire/AssertUsage.scala b/scala-core-modules/scala-core-4/src/main/scala/com/baeldung/scala/assertvsrequire/AssertUsage.scala similarity index 100% rename from scala-core-modules/scala-core-4/src/main/scala-2/com/baeldung/scala/assertvsrequire/AssertUsage.scala rename to scala-core-modules/scala-core-4/src/main/scala/com/baeldung/scala/assertvsrequire/AssertUsage.scala diff --git a/scala-core-modules/scala-core-4/src/main/scala-2/com/baeldung/scala/assertvsrequire/RequireUsage.scala b/scala-core-modules/scala-core-4/src/main/scala/com/baeldung/scala/assertvsrequire/RequireUsage.scala similarity index 100% rename from scala-core-modules/scala-core-4/src/main/scala-2/com/baeldung/scala/assertvsrequire/RequireUsage.scala rename to scala-core-modules/scala-core-4/src/main/scala/com/baeldung/scala/assertvsrequire/RequireUsage.scala diff --git a/scala-core-modules/scala-core-4/src/main/scala-2/com/baeldung/scala/constructors/Constructors.scala b/scala-core-modules/scala-core-4/src/main/scala/com/baeldung/scala/constructors/Constructors.scala similarity index 100% rename from scala-core-modules/scala-core-4/src/main/scala-2/com/baeldung/scala/constructors/Constructors.scala rename to scala-core-modules/scala-core-4/src/main/scala/com/baeldung/scala/constructors/Constructors.scala diff --git a/scala-core-modules/scala-core-4/src/main/scala-2/com/baeldung/scala/future/FutureRecovery.scala b/scala-core-modules/scala-core-4/src/main/scala/com/baeldung/scala/future/FutureRecovery.scala similarity index 100% rename from scala-core-modules/scala-core-4/src/main/scala-2/com/baeldung/scala/future/FutureRecovery.scala rename to scala-core-modules/scala-core-4/src/main/scala/com/baeldung/scala/future/FutureRecovery.scala diff --git a/scala-core-modules/scala-core-4/src/main/scala-2/com/baeldung/scala/implicitly/ImplicitlyUsage.scala b/scala-core-modules/scala-core-4/src/main/scala/com/baeldung/scala/implicitly/ImplicitlyUsage.scala similarity index 100% rename from scala-core-modules/scala-core-4/src/main/scala-2/com/baeldung/scala/implicitly/ImplicitlyUsage.scala rename to scala-core-modules/scala-core-4/src/main/scala/com/baeldung/scala/implicitly/ImplicitlyUsage.scala diff --git a/scala-core-modules/scala-core-4/src/main/scala-2/com/baeldung/scala/pathdependenttypes/AwardPunishmentDisipline.scala b/scala-core-modules/scala-core-4/src/main/scala/com/baeldung/scala/pathdependenttypes/AwardPunishmentDisipline.scala similarity index 100% rename from scala-core-modules/scala-core-4/src/main/scala-2/com/baeldung/scala/pathdependenttypes/AwardPunishmentDisipline.scala rename to scala-core-modules/scala-core-4/src/main/scala/com/baeldung/scala/pathdependenttypes/AwardPunishmentDisipline.scala diff --git a/scala-core-modules/scala-core-4/src/main/scala-2/com/baeldung/scala/pathdependenttypes/KeyValueStore.scala b/scala-core-modules/scala-core-4/src/main/scala/com/baeldung/scala/pathdependenttypes/KeyValueStore.scala similarity index 100% rename from scala-core-modules/scala-core-4/src/main/scala-2/com/baeldung/scala/pathdependenttypes/KeyValueStore.scala rename to scala-core-modules/scala-core-4/src/main/scala/com/baeldung/scala/pathdependenttypes/KeyValueStore.scala diff --git a/scala-core-modules/scala-core-4/src/main/scala-2/com/baeldung/scala/pathdependenttypes/PathDependentTypeInnerClasses.scala b/scala-core-modules/scala-core-4/src/main/scala/com/baeldung/scala/pathdependenttypes/PathDependentTypeInnerClasses.scala similarity index 100% rename from scala-core-modules/scala-core-4/src/main/scala-2/com/baeldung/scala/pathdependenttypes/PathDependentTypeInnerClasses.scala rename to scala-core-modules/scala-core-4/src/main/scala/com/baeldung/scala/pathdependenttypes/PathDependentTypeInnerClasses.scala diff --git a/scala-core-modules/scala-core-4/src/main/scala-2/com/baeldung/scala/structuraltypes/Quack.scala b/scala-core-modules/scala-core-4/src/main/scala/com/baeldung/scala/structuraltypes/Quack.scala similarity index 100% rename from scala-core-modules/scala-core-4/src/main/scala-2/com/baeldung/scala/structuraltypes/Quack.scala rename to scala-core-modules/scala-core-4/src/main/scala/com/baeldung/scala/structuraltypes/Quack.scala diff --git a/scala-core-modules/scala-core-4/src/main/scala-2/com/baeldung/scala/structuraltypes/ResourceClosing.scala b/scala-core-modules/scala-core-4/src/main/scala/com/baeldung/scala/structuraltypes/ResourceClosing.scala similarity index 64% rename from scala-core-modules/scala-core-4/src/main/scala-2/com/baeldung/scala/structuraltypes/ResourceClosing.scala rename to scala-core-modules/scala-core-4/src/main/scala/com/baeldung/scala/structuraltypes/ResourceClosing.scala index c9bc0fe75..315397e01 100644 --- a/scala-core-modules/scala-core-4/src/main/scala-2/com/baeldung/scala/structuraltypes/ResourceClosing.scala +++ b/scala-core-modules/scala-core-4/src/main/scala/com/baeldung/scala/structuraltypes/ResourceClosing.scala @@ -1,17 +1,18 @@ package com.baeldung.scala.structuraltypes import scala.io.Source +import scala.language.reflectiveCalls trait ResourceClosing { type Closable = { def close(): Unit } - def using(resource: Closable)(fn: () => Unit) { + def using(resource: Closable)(fn: () => Unit) = { try { fn() } finally { resource.close() } } - def using(file: Source)(fn: () => Unit) { + def using(file: Source)(fn: () => Unit) = { try { fn() } finally { file.close() } diff --git a/scala-core-modules/scala-core-4/src/main/scala-2/com/baeldung/scala/switchannotation/LookupSwitchExample.scala b/scala-core-modules/scala-core-4/src/main/scala/com/baeldung/scala/switchannotation/LookupSwitchExample.scala similarity index 100% rename from scala-core-modules/scala-core-4/src/main/scala-2/com/baeldung/scala/switchannotation/LookupSwitchExample.scala rename to scala-core-modules/scala-core-4/src/main/scala/com/baeldung/scala/switchannotation/LookupSwitchExample.scala diff --git a/scala-core-modules/scala-core-4/src/main/scala-2/com/baeldung/scala/switchannotation/NotOptimizedExample.scala b/scala-core-modules/scala-core-4/src/main/scala/com/baeldung/scala/switchannotation/NotOptimizedExample.scala similarity index 100% rename from scala-core-modules/scala-core-4/src/main/scala-2/com/baeldung/scala/switchannotation/NotOptimizedExample.scala rename to scala-core-modules/scala-core-4/src/main/scala/com/baeldung/scala/switchannotation/NotOptimizedExample.scala diff --git a/scala-core-modules/scala-core-4/src/main/scala-2/com/baeldung/scala/switchannotation/TableSwitchExample.scala b/scala-core-modules/scala-core-4/src/main/scala/com/baeldung/scala/switchannotation/TableSwitchExample.scala similarity index 100% rename from scala-core-modules/scala-core-4/src/main/scala-2/com/baeldung/scala/switchannotation/TableSwitchExample.scala rename to scala-core-modules/scala-core-4/src/main/scala/com/baeldung/scala/switchannotation/TableSwitchExample.scala diff --git a/scala-core-modules/scala-core-4/src/main/scala-2/com/baeldung/scala/typemembersalias/ListIntFunctions.scala b/scala-core-modules/scala-core-4/src/main/scala/com/baeldung/scala/typemembersalias/ListIntFunctions.scala similarity index 100% rename from scala-core-modules/scala-core-4/src/main/scala-2/com/baeldung/scala/typemembersalias/ListIntFunctions.scala rename to scala-core-modules/scala-core-4/src/main/scala/com/baeldung/scala/typemembersalias/ListIntFunctions.scala diff --git a/scala-core-modules/scala-core-4/src/main/scala-2/com/baeldung/scala/typemembersalias/Repeat.scala b/scala-core-modules/scala-core-4/src/main/scala/com/baeldung/scala/typemembersalias/Repeat.scala similarity index 100% rename from scala-core-modules/scala-core-4/src/main/scala-2/com/baeldung/scala/typemembersalias/Repeat.scala rename to scala-core-modules/scala-core-4/src/main/scala/com/baeldung/scala/typemembersalias/Repeat.scala diff --git a/scala-core-modules/scala-core-4/src/test/scala-2/com/baeldung/scala/assertvsrequire/AssertUsageUnitTest.scala b/scala-core-modules/scala-core-4/src/test/scala/com/baeldung/scala/assertvsrequire/AssertUsageUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-4/src/test/scala-2/com/baeldung/scala/assertvsrequire/AssertUsageUnitTest.scala rename to scala-core-modules/scala-core-4/src/test/scala/com/baeldung/scala/assertvsrequire/AssertUsageUnitTest.scala diff --git a/scala-core-modules/scala-core-4/src/test/scala-2/com/baeldung/scala/assertvsrequire/RequireUsageUnitTest.scala b/scala-core-modules/scala-core-4/src/test/scala/com/baeldung/scala/assertvsrequire/RequireUsageUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-4/src/test/scala-2/com/baeldung/scala/assertvsrequire/RequireUsageUnitTest.scala rename to scala-core-modules/scala-core-4/src/test/scala/com/baeldung/scala/assertvsrequire/RequireUsageUnitTest.scala diff --git a/scala-core-modules/scala-core-4/src/test/scala-2/com/baeldung/scala/future/FutureRecoveryUnitTest.scala b/scala-core-modules/scala-core-4/src/test/scala/com/baeldung/scala/future/FutureRecoveryUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-4/src/test/scala-2/com/baeldung/scala/future/FutureRecoveryUnitTest.scala rename to scala-core-modules/scala-core-4/src/test/scala/com/baeldung/scala/future/FutureRecoveryUnitTest.scala diff --git a/scala-core-modules/scala-core-4/src/test/scala-2/com/baeldung/scala/implicitimports/ImplicitImportsUnitTest.scala b/scala-core-modules/scala-core-4/src/test/scala/com/baeldung/scala/implicitimports/ImplicitImportsUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-4/src/test/scala-2/com/baeldung/scala/implicitimports/ImplicitImportsUnitTest.scala rename to scala-core-modules/scala-core-4/src/test/scala/com/baeldung/scala/implicitimports/ImplicitImportsUnitTest.scala diff --git a/scala-core-modules/scala-core-4/src/test/scala-2/com/baeldung/scala/implicitly/ImplicitlyUsageUnitTest.scala b/scala-core-modules/scala-core-4/src/test/scala/com/baeldung/scala/implicitly/ImplicitlyUsageUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-4/src/test/scala-2/com/baeldung/scala/implicitly/ImplicitlyUsageUnitTest.scala rename to scala-core-modules/scala-core-4/src/test/scala/com/baeldung/scala/implicitly/ImplicitlyUsageUnitTest.scala diff --git a/scala-core-modules/scala-core-4/src/test/scala-2/com/baeldung/scala/pathdependenttypes/KeyValueStoreUnitTest.scala b/scala-core-modules/scala-core-4/src/test/scala/com/baeldung/scala/pathdependenttypes/KeyValueStoreUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-4/src/test/scala-2/com/baeldung/scala/pathdependenttypes/KeyValueStoreUnitTest.scala rename to scala-core-modules/scala-core-4/src/test/scala/com/baeldung/scala/pathdependenttypes/KeyValueStoreUnitTest.scala diff --git a/scala-core-modules/scala-core-4/src/test/scala-2/com/baeldung/scala/structuraltypes/DuckUnitTest.scala b/scala-core-modules/scala-core-4/src/test/scala/com/baeldung/scala/structuraltypes/DuckUnitTest.scala similarity index 95% rename from scala-core-modules/scala-core-4/src/test/scala-2/com/baeldung/scala/structuraltypes/DuckUnitTest.scala rename to scala-core-modules/scala-core-4/src/test/scala/com/baeldung/scala/structuraltypes/DuckUnitTest.scala index 72cc38959..2e6a54b41 100644 --- a/scala-core-modules/scala-core-4/src/test/scala-2/com/baeldung/scala/structuraltypes/DuckUnitTest.scala +++ b/scala-core-modules/scala-core-4/src/test/scala/com/baeldung/scala/structuraltypes/DuckUnitTest.scala @@ -3,6 +3,8 @@ package com.baeldung.scala.structuraltypes import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers +import scala.language.reflectiveCalls + class DuckUnitTest extends AnyFlatSpec with Matchers { type Flyer = { def fly(): Unit } def callFly(thing: Flyer): Unit = thing.fly() diff --git a/scala-core-modules/scala-core-4/src/test/scala-2/com/baeldung/scala/structuraltypes/ResourceClosingUnitTest.scala b/scala-core-modules/scala-core-4/src/test/scala/com/baeldung/scala/structuraltypes/ResourceClosingUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-4/src/test/scala-2/com/baeldung/scala/structuraltypes/ResourceClosingUnitTest.scala rename to scala-core-modules/scala-core-4/src/test/scala/com/baeldung/scala/structuraltypes/ResourceClosingUnitTest.scala diff --git a/scala-core-modules/scala-core-4/src/test/scala-2/com/baeldung/scala/typemembersalias/ListIntFunctionsUnitTest.scala b/scala-core-modules/scala-core-4/src/test/scala/com/baeldung/scala/typemembersalias/ListIntFunctionsUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-4/src/test/scala-2/com/baeldung/scala/typemembersalias/ListIntFunctionsUnitTest.scala rename to scala-core-modules/scala-core-4/src/test/scala/com/baeldung/scala/typemembersalias/ListIntFunctionsUnitTest.scala diff --git a/scala-core-modules/scala-core-4/src/test/scala-2/com/baeldung/scala/typemembersalias/RepeatUnitTest.scala b/scala-core-modules/scala-core-4/src/test/scala/com/baeldung/scala/typemembersalias/RepeatUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-4/src/test/scala-2/com/baeldung/scala/typemembersalias/RepeatUnitTest.scala rename to scala-core-modules/scala-core-4/src/test/scala/com/baeldung/scala/typemembersalias/RepeatUnitTest.scala diff --git a/scala-core-modules/scala-core-4/src/test/scala-2/com/baeldung/scala/withfilter/WithFilterVsFilterUnitTest.scala b/scala-core-modules/scala-core-4/src/test/scala/com/baeldung/scala/withfilter/WithFilterVsFilterUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-4/src/test/scala-2/com/baeldung/scala/withfilter/WithFilterVsFilterUnitTest.scala rename to scala-core-modules/scala-core-4/src/test/scala/com/baeldung/scala/withfilter/WithFilterVsFilterUnitTest.scala diff --git a/scala-core-modules/scala2-core/README.md b/scala-core-modules/scala2-core/README.md index 4f6e04bf0..b35d5c230 100644 --- a/scala-core-modules/scala2-core/README.md +++ b/scala-core-modules/scala2-core/README.md @@ -1,4 +1,4 @@ ### Relevant Articles: - [Preserving Type Information at Runtime in Scala](https://www.baeldung.com/scala/type-information-at-runtime) - +- [Type Disjunction (Union Types) in Scala](https://www.baeldung.com/scala/type-disjunction) diff --git a/scala-core-modules/scala-core-4/src/main/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionType.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionType.scala similarity index 96% rename from scala-core-modules/scala-core-4/src/main/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionType.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionType.scala index 41c974013..d8ffe31b3 100644 --- a/scala-core-modules/scala-core-4/src/main/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionType.scala +++ b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionType.scala @@ -1,5 +1,7 @@ package com.baeldung.scala.uniontypes +import scala.language.implicitConversions + object ArbitraryArityUnionType extends App { def isIntOrStringOrBool[T: IntOrStringOrBool](t: T): String = t match { diff --git a/scala-core-modules/scala-core-4/src/main/scala-2/com/baeldung/scala/uniontypes/EitherDisjointUnion.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/uniontypes/EitherDisjointUnion.scala similarity index 100% rename from scala-core-modules/scala-core-4/src/main/scala-2/com/baeldung/scala/uniontypes/EitherDisjointUnion.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/uniontypes/EitherDisjointUnion.scala diff --git a/scala-core-modules/scala-core-4/src/test/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionTypeUnitTest.scala b/scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionTypeUnitTest.scala similarity index 99% rename from scala-core-modules/scala-core-4/src/test/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionTypeUnitTest.scala rename to scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionTypeUnitTest.scala index 560fc6114..39f3d5dad 100644 --- a/scala-core-modules/scala-core-4/src/test/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionTypeUnitTest.scala +++ b/scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionTypeUnitTest.scala @@ -1,4 +1,5 @@ package com.baeldung.scala.uniontypes + import com.baeldung.scala.uniontypes.ArbitraryArityUnionType._ import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers diff --git a/scala-core-modules/scala-core-4/src/test/scala-2/com/baeldung/scala/uniontypes/EitherDisjointUnionUnitTest.scala b/scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/uniontypes/EitherDisjointUnionUnitTest.scala similarity index 99% rename from scala-core-modules/scala-core-4/src/test/scala-2/com/baeldung/scala/uniontypes/EitherDisjointUnionUnitTest.scala rename to scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/uniontypes/EitherDisjointUnionUnitTest.scala index 39ec68abb..1a4d3f5a4 100644 --- a/scala-core-modules/scala-core-4/src/test/scala-2/com/baeldung/scala/uniontypes/EitherDisjointUnionUnitTest.scala +++ b/scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/uniontypes/EitherDisjointUnionUnitTest.scala @@ -1,7 +1,8 @@ package com.baeldung.scala.uniontypes -import com.baeldung.scala.uniontypes.EitherDisjointUnion._ + import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers +import com.baeldung.scala.uniontypes.EitherDisjointUnion._ class EitherDisjointUnionUnitTest extends AnyFlatSpec with Matchers { "isIntOrString" should "be able to take an integer parameter" in { From 38d7e96484670398ec5310261c3043869bc817b2 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 6 Dec 2023 09:37:09 +0100 Subject: [PATCH 0188/1318] Scala-core-5 module migrated to scala 3 --- build.sbt | 4 ++-- .../com/baeldung/scala/adt/Examples.scala | 0 .../com/baeldung/scala/inlining/Inlining.scala | 0 .../com/baeldung/scala/inlining/InliningWarning.scala | 0 .../com/baeldung/scala/inlining/MegamorphicCallsite.scala | 6 +++--- .../com/baeldung/scala/lambdas/IntTransformer.scala | 0 .../baeldung/scala/listcreation/ListCreationMethods.scala | 0 .../com/baeldung/scala/richwrappers/RichIntImplicits.scala | 0 .../com/baeldung/scala/richwrappers/SimpleRichInt.scala | 0 .../scala/switchannotation/LookupSwitchExample.scala | 0 .../scala/switchannotation/NotOptimizedExample.scala | 0 .../scala/switchannotation/TableSwitchExample.scala | 0 .../baeldung/scala/vectorbenefits/VectorAppendPrepend.scala | 0 .../com/baeldung/scala/vectorbenefits/VectorBasics.scala | 4 +++- .../scala/vectorbenefits/VectorHeadTailAccess.scala | 0 .../com/baeldung/scala/vectorbenefits/VectorIteration.scala | 0 .../baeldung/scala/vectorbenefits/VectorRandomAccess.scala | 0 .../com/baeldung/scala/adt/ExamplesUnitTest.scala | 0 .../com/baeldung/scala/lambdas/LambdasUnitTest.scala | 0 .../scala/listcreation/ListCreationMethodsUnitTest.scala | 0 .../com/baeldung/scala/regex/RegexUnitTest.scala | 0 .../com/baeldung/scala/richwrappers/RichIntUnitTest.scala | 0 .../baeldung/scala/richwrappers/RichWrappersUnitTest.scala | 0 .../baeldung/scala/richwrappers/SimpleRichUnitTest.scala | 0 .../com/baeldung/scala/sorting/SortingUnitTest.scala | 0 .../scala/vectorbenefits/VectorAppendPrependUnitTest.scala | 0 .../scala/vectorbenefits/VectorHeadTailAccessUnitTest.scala | 0 .../scala/vectorbenefits/VectorIterationUnitTest.scala | 0 28 files changed, 8 insertions(+), 6 deletions(-) rename scala-core-modules/scala-core-5/src/main/{scala-2 => scala}/com/baeldung/scala/adt/Examples.scala (100%) rename scala-core-modules/scala-core-5/src/main/{scala-2 => scala}/com/baeldung/scala/inlining/Inlining.scala (100%) rename scala-core-modules/scala-core-5/src/main/{scala-2 => scala}/com/baeldung/scala/inlining/InliningWarning.scala (100%) rename scala-core-modules/scala-core-5/src/main/{scala-2 => scala}/com/baeldung/scala/inlining/MegamorphicCallsite.scala (68%) rename scala-core-modules/scala-core-5/src/main/{scala-2 => scala}/com/baeldung/scala/lambdas/IntTransformer.scala (100%) rename scala-core-modules/scala-core-5/src/main/{scala-2 => scala}/com/baeldung/scala/listcreation/ListCreationMethods.scala (100%) rename scala-core-modules/scala-core-5/src/main/{scala-2 => scala}/com/baeldung/scala/richwrappers/RichIntImplicits.scala (100%) rename scala-core-modules/scala-core-5/src/main/{scala-2 => scala}/com/baeldung/scala/richwrappers/SimpleRichInt.scala (100%) rename scala-core-modules/scala-core-5/src/main/{scala-2 => scala}/com/baeldung/scala/switchannotation/LookupSwitchExample.scala (100%) rename scala-core-modules/scala-core-5/src/main/{scala-2 => scala}/com/baeldung/scala/switchannotation/NotOptimizedExample.scala (100%) rename scala-core-modules/scala-core-5/src/main/{scala-2 => scala}/com/baeldung/scala/switchannotation/TableSwitchExample.scala (100%) rename scala-core-modules/scala-core-5/src/main/{scala-2 => scala}/com/baeldung/scala/vectorbenefits/VectorAppendPrepend.scala (100%) rename scala-core-modules/scala-core-5/src/main/{scala-2 => scala}/com/baeldung/scala/vectorbenefits/VectorBasics.scala (77%) rename scala-core-modules/scala-core-5/src/main/{scala-2 => scala}/com/baeldung/scala/vectorbenefits/VectorHeadTailAccess.scala (100%) rename scala-core-modules/scala-core-5/src/main/{scala-2 => scala}/com/baeldung/scala/vectorbenefits/VectorIteration.scala (100%) rename scala-core-modules/scala-core-5/src/main/{scala-2 => scala}/com/baeldung/scala/vectorbenefits/VectorRandomAccess.scala (100%) rename scala-core-modules/scala-core-5/src/test/{scala-2 => scala}/com/baeldung/scala/adt/ExamplesUnitTest.scala (100%) rename scala-core-modules/scala-core-5/src/test/{scala-2 => scala}/com/baeldung/scala/lambdas/LambdasUnitTest.scala (100%) rename scala-core-modules/scala-core-5/src/test/{scala-2 => scala}/com/baeldung/scala/listcreation/ListCreationMethodsUnitTest.scala (100%) rename scala-core-modules/scala-core-5/src/test/{scala-2 => scala}/com/baeldung/scala/regex/RegexUnitTest.scala (100%) rename scala-core-modules/scala-core-5/src/test/{scala-2 => scala}/com/baeldung/scala/richwrappers/RichIntUnitTest.scala (100%) rename scala-core-modules/scala-core-5/src/test/{scala-2 => scala}/com/baeldung/scala/richwrappers/RichWrappersUnitTest.scala (100%) rename scala-core-modules/scala-core-5/src/test/{scala-2 => scala}/com/baeldung/scala/richwrappers/SimpleRichUnitTest.scala (100%) rename scala-core-modules/scala-core-5/src/test/{scala-2 => scala}/com/baeldung/scala/sorting/SortingUnitTest.scala (100%) rename scala-core-modules/scala-core-5/src/test/{scala-2 => scala}/com/baeldung/scala/vectorbenefits/VectorAppendPrependUnitTest.scala (100%) rename scala-core-modules/scala-core-5/src/test/{scala-2 => scala}/com/baeldung/scala/vectorbenefits/VectorHeadTailAccessUnitTest.scala (100%) rename scala-core-modules/scala-core-5/src/test/{scala-2 => scala}/com/baeldung/scala/vectorbenefits/VectorIterationUnitTest.scala (100%) diff --git a/build.sbt b/build.sbt index ea19732e9..e8e2a3d76 100644 --- a/build.sbt +++ b/build.sbt @@ -70,9 +70,9 @@ lazy val scala_core_4 = (project in file("scala-core-modules/scala-core-4")) lazy val scala_core_5 = (project in file("scala-core-modules/scala-core-5")) .settings( name := "scala-core-5", + scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps, - libraryDependencies += jUnitInterface, - libraryDependencies += scalaReflection + libraryDependencies += jUnitInterface ) lazy val scala_core_6 = (project in file("scala-core-modules/scala-core-6")) diff --git a/scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/adt/Examples.scala b/scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/adt/Examples.scala similarity index 100% rename from scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/adt/Examples.scala rename to scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/adt/Examples.scala diff --git a/scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/inlining/Inlining.scala b/scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/inlining/Inlining.scala similarity index 100% rename from scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/inlining/Inlining.scala rename to scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/inlining/Inlining.scala diff --git a/scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/inlining/InliningWarning.scala b/scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/inlining/InliningWarning.scala similarity index 100% rename from scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/inlining/InliningWarning.scala rename to scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/inlining/InliningWarning.scala diff --git a/scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/inlining/MegamorphicCallsite.scala b/scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/inlining/MegamorphicCallsite.scala similarity index 68% rename from scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/inlining/MegamorphicCallsite.scala rename to scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/inlining/MegamorphicCallsite.scala index 96111a595..39a22646c 100644 --- a/scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/inlining/MegamorphicCallsite.scala +++ b/scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/inlining/MegamorphicCallsite.scala @@ -6,9 +6,9 @@ object MegamorphicCallsite extends App { fun(n) // callsite } - val f1 = { n: Int => n * n } - val f2 = { n: Int => n + n } - val f3 = { n: Int => n } + val f1 = { (n: Int) => n * n } + val f2 = { (n: Int) => n + n } + val f3 = { (n: Int) => n } execute(f1)(5) execute(f2)(5) diff --git a/scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/lambdas/IntTransformer.scala b/scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/lambdas/IntTransformer.scala similarity index 100% rename from scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/lambdas/IntTransformer.scala rename to scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/lambdas/IntTransformer.scala diff --git a/scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/listcreation/ListCreationMethods.scala b/scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/listcreation/ListCreationMethods.scala similarity index 100% rename from scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/listcreation/ListCreationMethods.scala rename to scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/listcreation/ListCreationMethods.scala diff --git a/scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/richwrappers/RichIntImplicits.scala b/scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/richwrappers/RichIntImplicits.scala similarity index 100% rename from scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/richwrappers/RichIntImplicits.scala rename to scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/richwrappers/RichIntImplicits.scala diff --git a/scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/richwrappers/SimpleRichInt.scala b/scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/richwrappers/SimpleRichInt.scala similarity index 100% rename from scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/richwrappers/SimpleRichInt.scala rename to scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/richwrappers/SimpleRichInt.scala diff --git a/scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/switchannotation/LookupSwitchExample.scala b/scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/switchannotation/LookupSwitchExample.scala similarity index 100% rename from scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/switchannotation/LookupSwitchExample.scala rename to scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/switchannotation/LookupSwitchExample.scala diff --git a/scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/switchannotation/NotOptimizedExample.scala b/scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/switchannotation/NotOptimizedExample.scala similarity index 100% rename from scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/switchannotation/NotOptimizedExample.scala rename to scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/switchannotation/NotOptimizedExample.scala diff --git a/scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/switchannotation/TableSwitchExample.scala b/scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/switchannotation/TableSwitchExample.scala similarity index 100% rename from scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/switchannotation/TableSwitchExample.scala rename to scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/switchannotation/TableSwitchExample.scala diff --git a/scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/vectorbenefits/VectorAppendPrepend.scala b/scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/vectorbenefits/VectorAppendPrepend.scala similarity index 100% rename from scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/vectorbenefits/VectorAppendPrepend.scala rename to scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/vectorbenefits/VectorAppendPrepend.scala diff --git a/scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/vectorbenefits/VectorBasics.scala b/scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/vectorbenefits/VectorBasics.scala similarity index 77% rename from scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/vectorbenefits/VectorBasics.scala rename to scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/vectorbenefits/VectorBasics.scala index 87fe999fe..6291e239b 100644 --- a/scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/vectorbenefits/VectorBasics.scala +++ b/scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/vectorbenefits/VectorBasics.scala @@ -7,5 +7,7 @@ object VectorBasics extends App { val vecAppended: Vector[Int] = vec :+ 4 val vecPrepended: Vector[Int] = 0 +: vec - println(vec, vecPrepended, vecAppended) + println(vec) + println(vecPrepended) + println(vecAppended) } diff --git a/scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/vectorbenefits/VectorHeadTailAccess.scala b/scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/vectorbenefits/VectorHeadTailAccess.scala similarity index 100% rename from scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/vectorbenefits/VectorHeadTailAccess.scala rename to scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/vectorbenefits/VectorHeadTailAccess.scala diff --git a/scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/vectorbenefits/VectorIteration.scala b/scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/vectorbenefits/VectorIteration.scala similarity index 100% rename from scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/vectorbenefits/VectorIteration.scala rename to scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/vectorbenefits/VectorIteration.scala diff --git a/scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/vectorbenefits/VectorRandomAccess.scala b/scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/vectorbenefits/VectorRandomAccess.scala similarity index 100% rename from scala-core-modules/scala-core-5/src/main/scala-2/com/baeldung/scala/vectorbenefits/VectorRandomAccess.scala rename to scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/vectorbenefits/VectorRandomAccess.scala diff --git a/scala-core-modules/scala-core-5/src/test/scala-2/com/baeldung/scala/adt/ExamplesUnitTest.scala b/scala-core-modules/scala-core-5/src/test/scala/com/baeldung/scala/adt/ExamplesUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-5/src/test/scala-2/com/baeldung/scala/adt/ExamplesUnitTest.scala rename to scala-core-modules/scala-core-5/src/test/scala/com/baeldung/scala/adt/ExamplesUnitTest.scala diff --git a/scala-core-modules/scala-core-5/src/test/scala-2/com/baeldung/scala/lambdas/LambdasUnitTest.scala b/scala-core-modules/scala-core-5/src/test/scala/com/baeldung/scala/lambdas/LambdasUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-5/src/test/scala-2/com/baeldung/scala/lambdas/LambdasUnitTest.scala rename to scala-core-modules/scala-core-5/src/test/scala/com/baeldung/scala/lambdas/LambdasUnitTest.scala diff --git a/scala-core-modules/scala-core-5/src/test/scala-2/com/baeldung/scala/listcreation/ListCreationMethodsUnitTest.scala b/scala-core-modules/scala-core-5/src/test/scala/com/baeldung/scala/listcreation/ListCreationMethodsUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-5/src/test/scala-2/com/baeldung/scala/listcreation/ListCreationMethodsUnitTest.scala rename to scala-core-modules/scala-core-5/src/test/scala/com/baeldung/scala/listcreation/ListCreationMethodsUnitTest.scala diff --git a/scala-core-modules/scala-core-5/src/test/scala-2/com/baeldung/scala/regex/RegexUnitTest.scala b/scala-core-modules/scala-core-5/src/test/scala/com/baeldung/scala/regex/RegexUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-5/src/test/scala-2/com/baeldung/scala/regex/RegexUnitTest.scala rename to scala-core-modules/scala-core-5/src/test/scala/com/baeldung/scala/regex/RegexUnitTest.scala diff --git a/scala-core-modules/scala-core-5/src/test/scala-2/com/baeldung/scala/richwrappers/RichIntUnitTest.scala b/scala-core-modules/scala-core-5/src/test/scala/com/baeldung/scala/richwrappers/RichIntUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-5/src/test/scala-2/com/baeldung/scala/richwrappers/RichIntUnitTest.scala rename to scala-core-modules/scala-core-5/src/test/scala/com/baeldung/scala/richwrappers/RichIntUnitTest.scala diff --git a/scala-core-modules/scala-core-5/src/test/scala-2/com/baeldung/scala/richwrappers/RichWrappersUnitTest.scala b/scala-core-modules/scala-core-5/src/test/scala/com/baeldung/scala/richwrappers/RichWrappersUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-5/src/test/scala-2/com/baeldung/scala/richwrappers/RichWrappersUnitTest.scala rename to scala-core-modules/scala-core-5/src/test/scala/com/baeldung/scala/richwrappers/RichWrappersUnitTest.scala diff --git a/scala-core-modules/scala-core-5/src/test/scala-2/com/baeldung/scala/richwrappers/SimpleRichUnitTest.scala b/scala-core-modules/scala-core-5/src/test/scala/com/baeldung/scala/richwrappers/SimpleRichUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-5/src/test/scala-2/com/baeldung/scala/richwrappers/SimpleRichUnitTest.scala rename to scala-core-modules/scala-core-5/src/test/scala/com/baeldung/scala/richwrappers/SimpleRichUnitTest.scala diff --git a/scala-core-modules/scala-core-5/src/test/scala-2/com/baeldung/scala/sorting/SortingUnitTest.scala b/scala-core-modules/scala-core-5/src/test/scala/com/baeldung/scala/sorting/SortingUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-5/src/test/scala-2/com/baeldung/scala/sorting/SortingUnitTest.scala rename to scala-core-modules/scala-core-5/src/test/scala/com/baeldung/scala/sorting/SortingUnitTest.scala diff --git a/scala-core-modules/scala-core-5/src/test/scala-2/com/baeldung/scala/vectorbenefits/VectorAppendPrependUnitTest.scala b/scala-core-modules/scala-core-5/src/test/scala/com/baeldung/scala/vectorbenefits/VectorAppendPrependUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-5/src/test/scala-2/com/baeldung/scala/vectorbenefits/VectorAppendPrependUnitTest.scala rename to scala-core-modules/scala-core-5/src/test/scala/com/baeldung/scala/vectorbenefits/VectorAppendPrependUnitTest.scala diff --git a/scala-core-modules/scala-core-5/src/test/scala-2/com/baeldung/scala/vectorbenefits/VectorHeadTailAccessUnitTest.scala b/scala-core-modules/scala-core-5/src/test/scala/com/baeldung/scala/vectorbenefits/VectorHeadTailAccessUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-5/src/test/scala-2/com/baeldung/scala/vectorbenefits/VectorHeadTailAccessUnitTest.scala rename to scala-core-modules/scala-core-5/src/test/scala/com/baeldung/scala/vectorbenefits/VectorHeadTailAccessUnitTest.scala diff --git a/scala-core-modules/scala-core-5/src/test/scala-2/com/baeldung/scala/vectorbenefits/VectorIterationUnitTest.scala b/scala-core-modules/scala-core-5/src/test/scala/com/baeldung/scala/vectorbenefits/VectorIterationUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-5/src/test/scala-2/com/baeldung/scala/vectorbenefits/VectorIterationUnitTest.scala rename to scala-core-modules/scala-core-5/src/test/scala/com/baeldung/scala/vectorbenefits/VectorIterationUnitTest.scala From 7331a8a5f051edf85366583802bdabe3e4ff7a5c Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 6 Dec 2023 09:50:22 +0100 Subject: [PATCH 0189/1318] Migrated scala-core-6 to scala3 --- build.sbt | 1 + scala-core-modules/scala-core-6/README.md | 1 - .../com/baeldung/scala/break/BreakStatement.scala | 0 .../{scala-2 => scala}/com/baeldung/scala/fileio/FileIO.scala | 0 .../com/baeldung/scala/functionalloops/FunctionalLoops.scala | 0 .../com/baeldung/scala/functions/Functions.scala | 0 .../{scala-2 => scala}/com/baeldung/scala/futures/Futures.scala | 0 .../com/baeldung/scala/pimpmylib/PimpLibExample.scala | 0 .../com/baeldung/scala/tailrec/StringLength.scala | 0 .../com/baeldung/scala/maps/MapsUnitTest.scala | 0 .../com/baeldung/scala/pimpmylib/PimpLibExampleUnitTest.scala | 0 .../com/baeldung/scala/ranges/RangeUnitTest.scala | 0 scala-core-modules/scala2-core/README.md | 1 + .../com/baeldung/scala/implicitconversions/LengthUnit.scala | 0 .../com/baeldung/scala/implicitconversions/LengthUnitTest.scala | 0 15 files changed, 2 insertions(+), 1 deletion(-) rename scala-core-modules/scala-core-6/src/main/{scala-2 => scala}/com/baeldung/scala/break/BreakStatement.scala (100%) rename scala-core-modules/scala-core-6/src/main/{scala-2 => scala}/com/baeldung/scala/fileio/FileIO.scala (100%) rename scala-core-modules/scala-core-6/src/main/{scala-2 => scala}/com/baeldung/scala/functionalloops/FunctionalLoops.scala (100%) rename scala-core-modules/scala-core-6/src/main/{scala-2 => scala}/com/baeldung/scala/functions/Functions.scala (100%) rename scala-core-modules/scala-core-6/src/main/{scala-2 => scala}/com/baeldung/scala/futures/Futures.scala (100%) rename scala-core-modules/scala-core-6/src/main/{scala-2 => scala}/com/baeldung/scala/pimpmylib/PimpLibExample.scala (100%) rename scala-core-modules/scala-core-6/src/main/{scala-2 => scala}/com/baeldung/scala/tailrec/StringLength.scala (100%) rename scala-core-modules/scala-core-6/src/test/{scala-2 => scala}/com/baeldung/scala/maps/MapsUnitTest.scala (100%) rename scala-core-modules/scala-core-6/src/test/{scala-2 => scala}/com/baeldung/scala/pimpmylib/PimpLibExampleUnitTest.scala (100%) rename scala-core-modules/scala-core-6/src/test/{scala-2 => scala}/com/baeldung/scala/ranges/RangeUnitTest.scala (100%) rename scala-core-modules/{scala-core-6 => scala2-core}/src/main/scala-2/com/baeldung/scala/implicitconversions/LengthUnit.scala (100%) rename scala-core-modules/{scala-core-6 => scala2-core}/src/test/scala-2/com/baeldung/scala/implicitconversions/LengthUnitTest.scala (100%) diff --git a/build.sbt b/build.sbt index e8e2a3d76..72c79d496 100644 --- a/build.sbt +++ b/build.sbt @@ -78,6 +78,7 @@ lazy val scala_core_5 = (project in file("scala-core-modules/scala-core-5")) lazy val scala_core_6 = (project in file("scala-core-modules/scala-core-6")) .settings( name := "scala-core-6", + scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps, libraryDependencies += jUnitInterface ) diff --git a/scala-core-modules/scala-core-6/README.md b/scala-core-modules/scala-core-6/README.md index e0f672246..77ce5770d 100644 --- a/scala-core-modules/scala-core-6/README.md +++ b/scala-core-modules/scala-core-6/README.md @@ -10,7 +10,6 @@ This module contains articles about Scala's core features. - [Functions in Scala](https://www.baeldung.com/scala/functions) - [Loops in Functional Scala](https://www.baeldung.com/scala/loops-functional-scala) - [Pimp My Library Pattern in Scala](https://www.baeldung.com/scala/pimp-my-library-pattern) -- [Implicit Conversions](https://www.baeldung.com/scala/implicit-conversions) - [A Guide to Scala Maps](https://www.baeldung.com/scala/maps-guide) - [Break Statement in Scala](https://www.baeldung.com/scala/break-statement) - [Range in Scala](https://www.baeldung.com/scala/range) diff --git a/scala-core-modules/scala-core-6/src/main/scala-2/com/baeldung/scala/break/BreakStatement.scala b/scala-core-modules/scala-core-6/src/main/scala/com/baeldung/scala/break/BreakStatement.scala similarity index 100% rename from scala-core-modules/scala-core-6/src/main/scala-2/com/baeldung/scala/break/BreakStatement.scala rename to scala-core-modules/scala-core-6/src/main/scala/com/baeldung/scala/break/BreakStatement.scala diff --git a/scala-core-modules/scala-core-6/src/main/scala-2/com/baeldung/scala/fileio/FileIO.scala b/scala-core-modules/scala-core-6/src/main/scala/com/baeldung/scala/fileio/FileIO.scala similarity index 100% rename from scala-core-modules/scala-core-6/src/main/scala-2/com/baeldung/scala/fileio/FileIO.scala rename to scala-core-modules/scala-core-6/src/main/scala/com/baeldung/scala/fileio/FileIO.scala diff --git a/scala-core-modules/scala-core-6/src/main/scala-2/com/baeldung/scala/functionalloops/FunctionalLoops.scala b/scala-core-modules/scala-core-6/src/main/scala/com/baeldung/scala/functionalloops/FunctionalLoops.scala similarity index 100% rename from scala-core-modules/scala-core-6/src/main/scala-2/com/baeldung/scala/functionalloops/FunctionalLoops.scala rename to scala-core-modules/scala-core-6/src/main/scala/com/baeldung/scala/functionalloops/FunctionalLoops.scala diff --git a/scala-core-modules/scala-core-6/src/main/scala-2/com/baeldung/scala/functions/Functions.scala b/scala-core-modules/scala-core-6/src/main/scala/com/baeldung/scala/functions/Functions.scala similarity index 100% rename from scala-core-modules/scala-core-6/src/main/scala-2/com/baeldung/scala/functions/Functions.scala rename to scala-core-modules/scala-core-6/src/main/scala/com/baeldung/scala/functions/Functions.scala diff --git a/scala-core-modules/scala-core-6/src/main/scala-2/com/baeldung/scala/futures/Futures.scala b/scala-core-modules/scala-core-6/src/main/scala/com/baeldung/scala/futures/Futures.scala similarity index 100% rename from scala-core-modules/scala-core-6/src/main/scala-2/com/baeldung/scala/futures/Futures.scala rename to scala-core-modules/scala-core-6/src/main/scala/com/baeldung/scala/futures/Futures.scala diff --git a/scala-core-modules/scala-core-6/src/main/scala-2/com/baeldung/scala/pimpmylib/PimpLibExample.scala b/scala-core-modules/scala-core-6/src/main/scala/com/baeldung/scala/pimpmylib/PimpLibExample.scala similarity index 100% rename from scala-core-modules/scala-core-6/src/main/scala-2/com/baeldung/scala/pimpmylib/PimpLibExample.scala rename to scala-core-modules/scala-core-6/src/main/scala/com/baeldung/scala/pimpmylib/PimpLibExample.scala diff --git a/scala-core-modules/scala-core-6/src/main/scala-2/com/baeldung/scala/tailrec/StringLength.scala b/scala-core-modules/scala-core-6/src/main/scala/com/baeldung/scala/tailrec/StringLength.scala similarity index 100% rename from scala-core-modules/scala-core-6/src/main/scala-2/com/baeldung/scala/tailrec/StringLength.scala rename to scala-core-modules/scala-core-6/src/main/scala/com/baeldung/scala/tailrec/StringLength.scala diff --git a/scala-core-modules/scala-core-6/src/test/scala-2/com/baeldung/scala/maps/MapsUnitTest.scala b/scala-core-modules/scala-core-6/src/test/scala/com/baeldung/scala/maps/MapsUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-6/src/test/scala-2/com/baeldung/scala/maps/MapsUnitTest.scala rename to scala-core-modules/scala-core-6/src/test/scala/com/baeldung/scala/maps/MapsUnitTest.scala diff --git a/scala-core-modules/scala-core-6/src/test/scala-2/com/baeldung/scala/pimpmylib/PimpLibExampleUnitTest.scala b/scala-core-modules/scala-core-6/src/test/scala/com/baeldung/scala/pimpmylib/PimpLibExampleUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-6/src/test/scala-2/com/baeldung/scala/pimpmylib/PimpLibExampleUnitTest.scala rename to scala-core-modules/scala-core-6/src/test/scala/com/baeldung/scala/pimpmylib/PimpLibExampleUnitTest.scala diff --git a/scala-core-modules/scala-core-6/src/test/scala-2/com/baeldung/scala/ranges/RangeUnitTest.scala b/scala-core-modules/scala-core-6/src/test/scala/com/baeldung/scala/ranges/RangeUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-6/src/test/scala-2/com/baeldung/scala/ranges/RangeUnitTest.scala rename to scala-core-modules/scala-core-6/src/test/scala/com/baeldung/scala/ranges/RangeUnitTest.scala diff --git a/scala-core-modules/scala2-core/README.md b/scala-core-modules/scala2-core/README.md index b35d5c230..48a0be59d 100644 --- a/scala-core-modules/scala2-core/README.md +++ b/scala-core-modules/scala2-core/README.md @@ -2,3 +2,4 @@ - [Preserving Type Information at Runtime in Scala](https://www.baeldung.com/scala/type-information-at-runtime) - [Type Disjunction (Union Types) in Scala](https://www.baeldung.com/scala/type-disjunction) +- [Implicit Conversions](https://www.baeldung.com/scala/implicit-conversions) diff --git a/scala-core-modules/scala-core-6/src/main/scala-2/com/baeldung/scala/implicitconversions/LengthUnit.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/implicitconversions/LengthUnit.scala similarity index 100% rename from scala-core-modules/scala-core-6/src/main/scala-2/com/baeldung/scala/implicitconversions/LengthUnit.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/implicitconversions/LengthUnit.scala diff --git a/scala-core-modules/scala-core-6/src/test/scala-2/com/baeldung/scala/implicitconversions/LengthUnitTest.scala b/scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/implicitconversions/LengthUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-6/src/test/scala-2/com/baeldung/scala/implicitconversions/LengthUnitTest.scala rename to scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/implicitconversions/LengthUnitTest.scala From 8c40c160413eb347da5fed2adcc041e91bb99e2b Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 6 Dec 2023 09:58:48 +0100 Subject: [PATCH 0190/1318] Migrated scala-core-7 to scala3 --- build.sbt | 13 +++++++------ scala-core-modules/scala-core-7/README.md | 1 - .../scala/applyfunction/ApplyFunction.scala | 0 .../arrayvswrappedarray/ArrayVsWrappedArray.scala | 0 .../scala/countchar/CountCharsInString.scala | 0 .../scala/productserializable/ColorInference.scala | 0 .../com/baeldung/scala/return/ReturnExamples.scala | 0 .../scala/specialized/AllTypesSpecialized.scala | 0 .../baeldung/scala/specialized/NotSpecialized.scala | 0 .../scala/specialized/OnlyTwoTypesSpecialized.scala | 0 .../typeinference/TypeInferenceLimitations.scala | 0 .../scala/typeinference/TypeInferredFunctions.scala | 0 .../typeinference/TypeInferredParameters.scala | 0 .../scala/typeinference/TypeInferredVariables.scala | 0 .../scala/arrays/CopyAnArrayToAnotherUnitTest.scala | 0 .../scala/arrays/InitializeAnArrayUnitTest.scala | 0 .../countchar/CountCharsInStringUnitTest.scala | 0 .../TypeInferenceLimitationsTest.scala | 0 .../typeinference/TypeInferredFunctionsTest.scala | 0 .../typeinference/TypeInferredVariablesTest.scala | 0 scala-core-modules/scala2-core/README.md | 1 + .../com/baeldung/scala/argumentparsing/Args4J.scala | 0 .../com/baeldung/scala/argumentparsing/Clist.scala | 0 .../scala/argumentparsing/PatternMatching.scala | 0 .../baeldung/scala/argumentparsing/Scallop.scala | 0 .../argumentparsing/ScallopPatternMatching.scala | 0 .../com/baeldung/scala/argumentparsing/Scopt.scala | 0 .../baeldung/scala/argumentparsing/Sliding.scala | 0 28 files changed, 8 insertions(+), 7 deletions(-) rename scala-core-modules/scala-core-7/src/main/{scala-2 => scala}/com/baeldung/scala/applyfunction/ApplyFunction.scala (100%) rename scala-core-modules/scala-core-7/src/main/{scala-2 => scala}/com/baeldung/scala/arrayvswrappedarray/ArrayVsWrappedArray.scala (100%) rename scala-core-modules/scala-core-7/src/main/{scala-2 => scala}/com/baeldung/scala/countchar/CountCharsInString.scala (100%) rename scala-core-modules/scala-core-7/src/main/{scala-2 => scala}/com/baeldung/scala/productserializable/ColorInference.scala (100%) rename scala-core-modules/scala-core-7/src/main/{scala-2 => scala}/com/baeldung/scala/return/ReturnExamples.scala (100%) rename scala-core-modules/scala-core-7/src/main/{scala-2 => scala}/com/baeldung/scala/specialized/AllTypesSpecialized.scala (100%) rename scala-core-modules/scala-core-7/src/main/{scala-2 => scala}/com/baeldung/scala/specialized/NotSpecialized.scala (100%) rename scala-core-modules/scala-core-7/src/main/{scala-2 => scala}/com/baeldung/scala/specialized/OnlyTwoTypesSpecialized.scala (100%) rename scala-core-modules/scala-core-7/src/main/{scala-2 => scala}/com/baeldung/scala/typeinference/TypeInferenceLimitations.scala (100%) rename scala-core-modules/scala-core-7/src/main/{scala-2 => scala}/com/baeldung/scala/typeinference/TypeInferredFunctions.scala (100%) rename scala-core-modules/scala-core-7/src/main/{scala-2 => scala}/com/baeldung/scala/typeinference/TypeInferredParameters.scala (100%) rename scala-core-modules/scala-core-7/src/main/{scala-2 => scala}/com/baeldung/scala/typeinference/TypeInferredVariables.scala (100%) rename scala-core-modules/scala-core-7/src/test/{scala-2 => scala}/com/baeldung/scala/arrays/CopyAnArrayToAnotherUnitTest.scala (100%) rename scala-core-modules/scala-core-7/src/test/{scala-2 => scala}/com/baeldung/scala/arrays/InitializeAnArrayUnitTest.scala (100%) rename scala-core-modules/scala-core-7/src/test/{scala-2 => scala}/com/baeldung/scala/countchar/CountCharsInStringUnitTest.scala (100%) rename scala-core-modules/scala-core-7/src/test/{scala-2 => scala}/com/baeldung/scala/typeinference/TypeInferenceLimitationsTest.scala (100%) rename scala-core-modules/scala-core-7/src/test/{scala-2 => scala}/com/baeldung/scala/typeinference/TypeInferredFunctionsTest.scala (100%) rename scala-core-modules/scala-core-7/src/test/{scala-2 => scala}/com/baeldung/scala/typeinference/TypeInferredVariablesTest.scala (100%) rename scala-core-modules/{scala-core-7 => scala2-core}/src/main/scala-2/com/baeldung/scala/argumentparsing/Args4J.scala (100%) rename scala-core-modules/{scala-core-7 => scala2-core}/src/main/scala-2/com/baeldung/scala/argumentparsing/Clist.scala (100%) rename scala-core-modules/{scala-core-7 => scala2-core}/src/main/scala-2/com/baeldung/scala/argumentparsing/PatternMatching.scala (100%) rename scala-core-modules/{scala-core-7 => scala2-core}/src/main/scala-2/com/baeldung/scala/argumentparsing/Scallop.scala (100%) rename scala-core-modules/{scala-core-7 => scala2-core}/src/main/scala-2/com/baeldung/scala/argumentparsing/ScallopPatternMatching.scala (100%) rename scala-core-modules/{scala-core-7 => scala2-core}/src/main/scala-2/com/baeldung/scala/argumentparsing/Scopt.scala (100%) rename scala-core-modules/{scala-core-7 => scala2-core}/src/main/scala-2/com/baeldung/scala/argumentparsing/Sliding.scala (100%) diff --git a/build.sbt b/build.sbt index 72c79d496..49b8c1771 100644 --- a/build.sbt +++ b/build.sbt @@ -55,7 +55,12 @@ lazy val scala2_core = (project in file("scala-core-modules/scala2-core")) libraryDependencies ++= scalaTestDeps, libraryDependencies += jUnitInterface, libraryDependencies += scalaReflection, - libraryDependencies += "org.scala-lang.modules" %% "scala-xml" % "2.2.0" + libraryDependencies += "org.scala-lang.modules" %% "scala-xml" % "2.2.0", + libraryDependencies += "com.github.scopt" %% "scopt" % "4.1.0", + libraryDependencies += "org.rogach" %% "scallop" % "5.0.1", + libraryDependencies += "org.backuity.clist" %% "clist-core" % "3.5.1", + libraryDependencies += "org.backuity.clist" %% "clist-macros" % "3.5.1" % "provided", + libraryDependencies += "args4j" % "args4j" % "2.33" ) lazy val scala_core_4 = (project in file("scala-core-modules/scala-core-4")) @@ -86,13 +91,9 @@ lazy val scala_core_6 = (project in file("scala-core-modules/scala-core-6")) lazy val scala_core_7 = (project in file("scala-core-modules/scala-core-7")) .settings( name := "scala-core-7", + scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps, libraryDependencies += jUnitInterface, - libraryDependencies += "com.github.scopt" %% "scopt" % "4.1.0", - libraryDependencies += "org.rogach" %% "scallop" % "5.0.1", - libraryDependencies += "org.backuity.clist" %% "clist-core" % "3.5.1", - libraryDependencies += "org.backuity.clist" %% "clist-macros" % "3.5.1" % "provided", - libraryDependencies += "args4j" % "args4j" % "2.33" ) lazy val scala_core_8 = (project in file("scala-core-modules/scala-core-8")) diff --git a/scala-core-modules/scala-core-7/README.md b/scala-core-modules/scala-core-7/README.md index e103bcb15..8cc53e9c7 100644 --- a/scala-core-modules/scala-core-7/README.md +++ b/scala-core-modules/scala-core-7/README.md @@ -2,7 +2,6 @@ - [Type Inference in Scala](https://www.baeldung.com/scala/type-inference) - [The return Keyword in Scala](https://www.baeldung.com/scala/return-keyword) -- [Reading Command-Line Arguments in Scala](https://www.baeldung.com/scala/read-command-line-arguments) - [Copy an Array to Another in Scala](https://www.baeldung.com/scala/array-copy) - [Initializing an Array in Scala](https://www.baeldung.com/scala/array-initialize) - [Count All Occurrences of a char Within a String in Scala](https://www.baeldung.com/scala/string-char-count) diff --git a/scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/applyfunction/ApplyFunction.scala b/scala-core-modules/scala-core-7/src/main/scala/com/baeldung/scala/applyfunction/ApplyFunction.scala similarity index 100% rename from scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/applyfunction/ApplyFunction.scala rename to scala-core-modules/scala-core-7/src/main/scala/com/baeldung/scala/applyfunction/ApplyFunction.scala diff --git a/scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/arrayvswrappedarray/ArrayVsWrappedArray.scala b/scala-core-modules/scala-core-7/src/main/scala/com/baeldung/scala/arrayvswrappedarray/ArrayVsWrappedArray.scala similarity index 100% rename from scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/arrayvswrappedarray/ArrayVsWrappedArray.scala rename to scala-core-modules/scala-core-7/src/main/scala/com/baeldung/scala/arrayvswrappedarray/ArrayVsWrappedArray.scala diff --git a/scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/countchar/CountCharsInString.scala b/scala-core-modules/scala-core-7/src/main/scala/com/baeldung/scala/countchar/CountCharsInString.scala similarity index 100% rename from scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/countchar/CountCharsInString.scala rename to scala-core-modules/scala-core-7/src/main/scala/com/baeldung/scala/countchar/CountCharsInString.scala diff --git a/scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/productserializable/ColorInference.scala b/scala-core-modules/scala-core-7/src/main/scala/com/baeldung/scala/productserializable/ColorInference.scala similarity index 100% rename from scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/productserializable/ColorInference.scala rename to scala-core-modules/scala-core-7/src/main/scala/com/baeldung/scala/productserializable/ColorInference.scala diff --git a/scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/return/ReturnExamples.scala b/scala-core-modules/scala-core-7/src/main/scala/com/baeldung/scala/return/ReturnExamples.scala similarity index 100% rename from scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/return/ReturnExamples.scala rename to scala-core-modules/scala-core-7/src/main/scala/com/baeldung/scala/return/ReturnExamples.scala diff --git a/scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/specialized/AllTypesSpecialized.scala b/scala-core-modules/scala-core-7/src/main/scala/com/baeldung/scala/specialized/AllTypesSpecialized.scala similarity index 100% rename from scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/specialized/AllTypesSpecialized.scala rename to scala-core-modules/scala-core-7/src/main/scala/com/baeldung/scala/specialized/AllTypesSpecialized.scala diff --git a/scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/specialized/NotSpecialized.scala b/scala-core-modules/scala-core-7/src/main/scala/com/baeldung/scala/specialized/NotSpecialized.scala similarity index 100% rename from scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/specialized/NotSpecialized.scala rename to scala-core-modules/scala-core-7/src/main/scala/com/baeldung/scala/specialized/NotSpecialized.scala diff --git a/scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/specialized/OnlyTwoTypesSpecialized.scala b/scala-core-modules/scala-core-7/src/main/scala/com/baeldung/scala/specialized/OnlyTwoTypesSpecialized.scala similarity index 100% rename from scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/specialized/OnlyTwoTypesSpecialized.scala rename to scala-core-modules/scala-core-7/src/main/scala/com/baeldung/scala/specialized/OnlyTwoTypesSpecialized.scala diff --git a/scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/typeinference/TypeInferenceLimitations.scala b/scala-core-modules/scala-core-7/src/main/scala/com/baeldung/scala/typeinference/TypeInferenceLimitations.scala similarity index 100% rename from scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/typeinference/TypeInferenceLimitations.scala rename to scala-core-modules/scala-core-7/src/main/scala/com/baeldung/scala/typeinference/TypeInferenceLimitations.scala diff --git a/scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/typeinference/TypeInferredFunctions.scala b/scala-core-modules/scala-core-7/src/main/scala/com/baeldung/scala/typeinference/TypeInferredFunctions.scala similarity index 100% rename from scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/typeinference/TypeInferredFunctions.scala rename to scala-core-modules/scala-core-7/src/main/scala/com/baeldung/scala/typeinference/TypeInferredFunctions.scala diff --git a/scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/typeinference/TypeInferredParameters.scala b/scala-core-modules/scala-core-7/src/main/scala/com/baeldung/scala/typeinference/TypeInferredParameters.scala similarity index 100% rename from scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/typeinference/TypeInferredParameters.scala rename to scala-core-modules/scala-core-7/src/main/scala/com/baeldung/scala/typeinference/TypeInferredParameters.scala diff --git a/scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/typeinference/TypeInferredVariables.scala b/scala-core-modules/scala-core-7/src/main/scala/com/baeldung/scala/typeinference/TypeInferredVariables.scala similarity index 100% rename from scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/typeinference/TypeInferredVariables.scala rename to scala-core-modules/scala-core-7/src/main/scala/com/baeldung/scala/typeinference/TypeInferredVariables.scala diff --git a/scala-core-modules/scala-core-7/src/test/scala-2/com/baeldung/scala/arrays/CopyAnArrayToAnotherUnitTest.scala b/scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/arrays/CopyAnArrayToAnotherUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-7/src/test/scala-2/com/baeldung/scala/arrays/CopyAnArrayToAnotherUnitTest.scala rename to scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/arrays/CopyAnArrayToAnotherUnitTest.scala diff --git a/scala-core-modules/scala-core-7/src/test/scala-2/com/baeldung/scala/arrays/InitializeAnArrayUnitTest.scala b/scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/arrays/InitializeAnArrayUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-7/src/test/scala-2/com/baeldung/scala/arrays/InitializeAnArrayUnitTest.scala rename to scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/arrays/InitializeAnArrayUnitTest.scala diff --git a/scala-core-modules/scala-core-7/src/test/scala-2/com/baeldung/scala/countchar/CountCharsInStringUnitTest.scala b/scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/countchar/CountCharsInStringUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-7/src/test/scala-2/com/baeldung/scala/countchar/CountCharsInStringUnitTest.scala rename to scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/countchar/CountCharsInStringUnitTest.scala diff --git a/scala-core-modules/scala-core-7/src/test/scala-2/com/baeldung/scala/typeinference/TypeInferenceLimitationsTest.scala b/scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/typeinference/TypeInferenceLimitationsTest.scala similarity index 100% rename from scala-core-modules/scala-core-7/src/test/scala-2/com/baeldung/scala/typeinference/TypeInferenceLimitationsTest.scala rename to scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/typeinference/TypeInferenceLimitationsTest.scala diff --git a/scala-core-modules/scala-core-7/src/test/scala-2/com/baeldung/scala/typeinference/TypeInferredFunctionsTest.scala b/scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/typeinference/TypeInferredFunctionsTest.scala similarity index 100% rename from scala-core-modules/scala-core-7/src/test/scala-2/com/baeldung/scala/typeinference/TypeInferredFunctionsTest.scala rename to scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/typeinference/TypeInferredFunctionsTest.scala diff --git a/scala-core-modules/scala-core-7/src/test/scala-2/com/baeldung/scala/typeinference/TypeInferredVariablesTest.scala b/scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/typeinference/TypeInferredVariablesTest.scala similarity index 100% rename from scala-core-modules/scala-core-7/src/test/scala-2/com/baeldung/scala/typeinference/TypeInferredVariablesTest.scala rename to scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/typeinference/TypeInferredVariablesTest.scala diff --git a/scala-core-modules/scala2-core/README.md b/scala-core-modules/scala2-core/README.md index 48a0be59d..83b67c993 100644 --- a/scala-core-modules/scala2-core/README.md +++ b/scala-core-modules/scala2-core/README.md @@ -3,3 +3,4 @@ - [Preserving Type Information at Runtime in Scala](https://www.baeldung.com/scala/type-information-at-runtime) - [Type Disjunction (Union Types) in Scala](https://www.baeldung.com/scala/type-disjunction) - [Implicit Conversions](https://www.baeldung.com/scala/implicit-conversions) +- [Reading Command-Line Arguments in Scala](https://www.baeldung.com/scala/read-command-line-arguments) diff --git a/scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/Args4J.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/Args4J.scala similarity index 100% rename from scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/Args4J.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/Args4J.scala diff --git a/scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/Clist.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/Clist.scala similarity index 100% rename from scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/Clist.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/Clist.scala diff --git a/scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/PatternMatching.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/PatternMatching.scala similarity index 100% rename from scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/PatternMatching.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/PatternMatching.scala diff --git a/scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/Scallop.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/Scallop.scala similarity index 100% rename from scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/Scallop.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/Scallop.scala diff --git a/scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/ScallopPatternMatching.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/ScallopPatternMatching.scala similarity index 100% rename from scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/ScallopPatternMatching.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/ScallopPatternMatching.scala diff --git a/scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/Scopt.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/Scopt.scala similarity index 100% rename from scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/Scopt.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/Scopt.scala diff --git a/scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/Sliding.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/Sliding.scala similarity index 100% rename from scala-core-modules/scala-core-7/src/main/scala-2/com/baeldung/scala/argumentparsing/Sliding.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/Sliding.scala From 33dd2ab05a5262157947a6929122d4ae2b2d97c9 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 6 Dec 2023 10:06:49 +0100 Subject: [PATCH 0191/1318] Migrated scala-core-8 to scala3 --- build.sbt | 5 ++--- scala-core-modules/scala-core-8/README.md | 2 -- .../com/baeldung/scala/builderpattern/Guitar.scala | 0 .../com/baeldung/scala/builderpattern/GuitarBuilder.scala | 0 .../baeldung/scala/builderpattern/SafeGuitarBuilder.scala | 0 .../com/baeldung/scala/reverselists/ListReverser.scala | 0 .../com/baeldung/scala/builderpattern/GuitarSpec.scala | 0 .../com/baeldung/scala/either/EitherTest.scala | 0 .../com/baeldung/scala/reverselists/ListReverserSpec.scala | 0 scala-core-modules/scala2-core/README.md | 2 ++ .../scala-2/com/baeldung/scala/macros/GenericMacros.scala | 0 .../scala-2/com/baeldung/scala/macros/OddEvenMacros.scala | 0 .../com/baeldung/scala/macros/GenericMacrosTest.scala | 0 .../com/baeldung/scala/macros/OddEvenMacrosTest.scala | 0 14 files changed, 4 insertions(+), 5 deletions(-) rename scala-core-modules/scala-core-8/src/main/{scala-2 => scala}/com/baeldung/scala/builderpattern/Guitar.scala (100%) rename scala-core-modules/scala-core-8/src/main/{scala-2 => scala}/com/baeldung/scala/builderpattern/GuitarBuilder.scala (100%) rename scala-core-modules/scala-core-8/src/main/{scala-2 => scala}/com/baeldung/scala/builderpattern/SafeGuitarBuilder.scala (100%) rename scala-core-modules/scala-core-8/src/main/{scala-2 => scala}/com/baeldung/scala/reverselists/ListReverser.scala (100%) rename scala-core-modules/scala-core-8/src/test/{scala-2 => scala}/com/baeldung/scala/builderpattern/GuitarSpec.scala (100%) rename scala-core-modules/scala-core-8/src/test/{scala-2 => scala}/com/baeldung/scala/either/EitherTest.scala (100%) rename scala-core-modules/scala-core-8/src/test/{scala-2 => scala}/com/baeldung/scala/reverselists/ListReverserSpec.scala (100%) rename scala-core-modules/{scala-core-8 => scala2-core}/src/main/scala-2/com/baeldung/scala/macros/GenericMacros.scala (100%) rename scala-core-modules/{scala-core-8 => scala2-core}/src/main/scala-2/com/baeldung/scala/macros/OddEvenMacros.scala (100%) rename scala-core-modules/{scala-core-8 => scala2-core}/src/test/scala-2/com/baeldung/scala/macros/GenericMacrosTest.scala (100%) rename scala-core-modules/{scala-core-8 => scala2-core}/src/test/scala-2/com/baeldung/scala/macros/OddEvenMacrosTest.scala (100%) diff --git a/build.sbt b/build.sbt index 49b8c1771..276c233b2 100644 --- a/build.sbt +++ b/build.sbt @@ -60,7 +60,8 @@ lazy val scala2_core = (project in file("scala-core-modules/scala2-core")) libraryDependencies += "org.rogach" %% "scallop" % "5.0.1", libraryDependencies += "org.backuity.clist" %% "clist-core" % "3.5.1", libraryDependencies += "org.backuity.clist" %% "clist-macros" % "3.5.1" % "provided", - libraryDependencies += "args4j" % "args4j" % "2.33" + libraryDependencies += "args4j" % "args4j" % "2.33", + libraryDependencies += "org.scala-lang" % "scala-compiler" % scalaVersion.value % "test", ) lazy val scala_core_4 = (project in file("scala-core-modules/scala-core-4")) @@ -99,9 +100,7 @@ lazy val scala_core_7 = (project in file("scala-core-modules/scala-core-7")) lazy val scala_core_8 = (project in file("scala-core-modules/scala-core-8")) .settings( name := "scala-core-8", - libraryDependencies += scalaReflection, libraryDependencies ++= scalaTestDeps, - libraryDependencies += "org.scala-lang" % "scala-compiler" % scalaVersion.value % "test", libraryDependencies += "org.scala-lang.modules" %% "scala-java8-compat" % "1.0.2", libraryDependencies += "com.typesafe" % "config" % "1.2.1" // scalacOptions += "-Ymacro-debug-lite" diff --git a/scala-core-modules/scala-core-8/README.md b/scala-core-modules/scala-core-8/README.md index 6424ab01a..3819082f4 100644 --- a/scala-core-modules/scala-core-8/README.md +++ b/scala-core-modules/scala-core-8/README.md @@ -1,7 +1,5 @@ ### Relevant Articles: -- [Introduction to Scala Macros](https://www.baeldung.com/scala/scala2-macros) -- [Introduction to Macros in Scala 2](https://www.baeldung.com/scala/scala2-macros) - [The Builder Pattern in Scala](https://www.baeldung.com/scala/builder-pattern) - [The Either Type in Scala](https://www.baeldung.com/scala/either-type) - [Understanding the Differences: reduceLeft, reduceRight, foldLeft, foldRight, scanLeft, and scanRight in Scala](https://www.baeldung.com/scala/reduce-fold-scan-left-right) diff --git a/scala-core-modules/scala-core-8/src/main/scala-2/com/baeldung/scala/builderpattern/Guitar.scala b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/builderpattern/Guitar.scala similarity index 100% rename from scala-core-modules/scala-core-8/src/main/scala-2/com/baeldung/scala/builderpattern/Guitar.scala rename to scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/builderpattern/Guitar.scala diff --git a/scala-core-modules/scala-core-8/src/main/scala-2/com/baeldung/scala/builderpattern/GuitarBuilder.scala b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/builderpattern/GuitarBuilder.scala similarity index 100% rename from scala-core-modules/scala-core-8/src/main/scala-2/com/baeldung/scala/builderpattern/GuitarBuilder.scala rename to scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/builderpattern/GuitarBuilder.scala diff --git a/scala-core-modules/scala-core-8/src/main/scala-2/com/baeldung/scala/builderpattern/SafeGuitarBuilder.scala b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/builderpattern/SafeGuitarBuilder.scala similarity index 100% rename from scala-core-modules/scala-core-8/src/main/scala-2/com/baeldung/scala/builderpattern/SafeGuitarBuilder.scala rename to scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/builderpattern/SafeGuitarBuilder.scala diff --git a/scala-core-modules/scala-core-8/src/main/scala-2/com/baeldung/scala/reverselists/ListReverser.scala b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/reverselists/ListReverser.scala similarity index 100% rename from scala-core-modules/scala-core-8/src/main/scala-2/com/baeldung/scala/reverselists/ListReverser.scala rename to scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/reverselists/ListReverser.scala diff --git a/scala-core-modules/scala-core-8/src/test/scala-2/com/baeldung/scala/builderpattern/GuitarSpec.scala b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/builderpattern/GuitarSpec.scala similarity index 100% rename from scala-core-modules/scala-core-8/src/test/scala-2/com/baeldung/scala/builderpattern/GuitarSpec.scala rename to scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/builderpattern/GuitarSpec.scala diff --git a/scala-core-modules/scala-core-8/src/test/scala-2/com/baeldung/scala/either/EitherTest.scala b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/either/EitherTest.scala similarity index 100% rename from scala-core-modules/scala-core-8/src/test/scala-2/com/baeldung/scala/either/EitherTest.scala rename to scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/either/EitherTest.scala diff --git a/scala-core-modules/scala-core-8/src/test/scala-2/com/baeldung/scala/reverselists/ListReverserSpec.scala b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/reverselists/ListReverserSpec.scala similarity index 100% rename from scala-core-modules/scala-core-8/src/test/scala-2/com/baeldung/scala/reverselists/ListReverserSpec.scala rename to scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/reverselists/ListReverserSpec.scala diff --git a/scala-core-modules/scala2-core/README.md b/scala-core-modules/scala2-core/README.md index 83b67c993..66d431b7f 100644 --- a/scala-core-modules/scala2-core/README.md +++ b/scala-core-modules/scala2-core/README.md @@ -4,3 +4,5 @@ - [Type Disjunction (Union Types) in Scala](https://www.baeldung.com/scala/type-disjunction) - [Implicit Conversions](https://www.baeldung.com/scala/implicit-conversions) - [Reading Command-Line Arguments in Scala](https://www.baeldung.com/scala/read-command-line-arguments) +- [Introduction to Scala Macros](https://www.baeldung.com/scala/scala2-macros) +- [Introduction to Macros in Scala 2](https://www.baeldung.com/scala/scala2-macros) \ No newline at end of file diff --git a/scala-core-modules/scala-core-8/src/main/scala-2/com/baeldung/scala/macros/GenericMacros.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/macros/GenericMacros.scala similarity index 100% rename from scala-core-modules/scala-core-8/src/main/scala-2/com/baeldung/scala/macros/GenericMacros.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/macros/GenericMacros.scala diff --git a/scala-core-modules/scala-core-8/src/main/scala-2/com/baeldung/scala/macros/OddEvenMacros.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/macros/OddEvenMacros.scala similarity index 100% rename from scala-core-modules/scala-core-8/src/main/scala-2/com/baeldung/scala/macros/OddEvenMacros.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/macros/OddEvenMacros.scala diff --git a/scala-core-modules/scala-core-8/src/test/scala-2/com/baeldung/scala/macros/GenericMacrosTest.scala b/scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/macros/GenericMacrosTest.scala similarity index 100% rename from scala-core-modules/scala-core-8/src/test/scala-2/com/baeldung/scala/macros/GenericMacrosTest.scala rename to scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/macros/GenericMacrosTest.scala diff --git a/scala-core-modules/scala-core-8/src/test/scala-2/com/baeldung/scala/macros/OddEvenMacrosTest.scala b/scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/macros/OddEvenMacrosTest.scala similarity index 100% rename from scala-core-modules/scala-core-8/src/test/scala-2/com/baeldung/scala/macros/OddEvenMacrosTest.scala rename to scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/macros/OddEvenMacrosTest.scala From 81ee1b901b1d17a4b1dd7da434abcc964c7f2964 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 6 Dec 2023 10:20:57 +0100 Subject: [PATCH 0192/1318] Migrated scala-core-8 to scala3 --- build.sbt | 1 + .../com/baeldung/scala/builderpattern/GuitarBuilder.scala | 3 +++ 2 files changed, 4 insertions(+) diff --git a/build.sbt b/build.sbt index 276c233b2..bd5c2a74e 100644 --- a/build.sbt +++ b/build.sbt @@ -101,6 +101,7 @@ lazy val scala_core_8 = (project in file("scala-core-modules/scala-core-8")) .settings( name := "scala-core-8", libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version, libraryDependencies += "org.scala-lang.modules" %% "scala-java8-compat" % "1.0.2", libraryDependencies += "com.typesafe" % "config" % "1.2.1" // scalacOptions += "-Ymacro-debug-lite" diff --git a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/builderpattern/GuitarBuilder.scala b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/builderpattern/GuitarBuilder.scala index 78a033752..78e0f3480 100644 --- a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/builderpattern/GuitarBuilder.scala +++ b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/builderpattern/GuitarBuilder.scala @@ -31,3 +31,6 @@ case class GuitarBuilder private ( delay = delay ) } +object GuitarBuilder { + def apply(): GuitarBuilder = new GuitarBuilder() +} From 2c0a29cd5484021bcf6d5fc4b57b72d891dbb272 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 6 Dec 2023 16:50:23 +0100 Subject: [PATCH 0193/1318] Added the code sample for scalatest exception handling --- .../scalatest/.scala-build/ide-inputs.json | 1 - .../.scala-build/ide-options-v2.json | 1 - .../ExceptionHandlingUnitTest.scala | 77 +++++++++++++++++++ 3 files changed, 77 insertions(+), 2 deletions(-) delete mode 100644 scala-test/src/test/scala-2/com/baeldung/scala/scalatest/.scala-build/ide-inputs.json delete mode 100644 scala-test/src/test/scala-2/com/baeldung/scala/scalatest/.scala-build/ide-options-v2.json create mode 100644 scala-test/src/test/scala-2/com/baeldung/scala/scalatest/exceptions/ExceptionHandlingUnitTest.scala diff --git a/scala-test/src/test/scala-2/com/baeldung/scala/scalatest/.scala-build/ide-inputs.json b/scala-test/src/test/scala-2/com/baeldung/scala/scalatest/.scala-build/ide-inputs.json deleted file mode 100644 index b716a44b0..000000000 --- a/scala-test/src/test/scala-2/com/baeldung/scala/scalatest/.scala-build/ide-inputs.json +++ /dev/null @@ -1 +0,0 @@ -{"args":["/home/mboizi/Documents/code/scala/scala-tutorials/scala-test/src/test/scala-2/com/baeldung/scala/scalatest"]} \ No newline at end of file diff --git a/scala-test/src/test/scala-2/com/baeldung/scala/scalatest/.scala-build/ide-options-v2.json b/scala-test/src/test/scala-2/com/baeldung/scala/scalatest/.scala-build/ide-options-v2.json deleted file mode 100644 index 9e26dfeeb..000000000 --- a/scala-test/src/test/scala-2/com/baeldung/scala/scalatest/.scala-build/ide-options-v2.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/scala-test/src/test/scala-2/com/baeldung/scala/scalatest/exceptions/ExceptionHandlingUnitTest.scala b/scala-test/src/test/scala-2/com/baeldung/scala/scalatest/exceptions/ExceptionHandlingUnitTest.scala new file mode 100644 index 000000000..a5b511846 --- /dev/null +++ b/scala-test/src/test/scala-2/com/baeldung/scala/scalatest/exceptions/ExceptionHandlingUnitTest.scala @@ -0,0 +1,77 @@ +package com.baeldung.scala.scalatest.exceptions + +import org.scalatest.matchers.should.Matchers +import org.scalatest.wordspec.AsyncWordSpec + +import scala.concurrent.Future +import scala.util.Try + +object ExceptionHandlingMethods { + def explodingMethod(): Unit = { + throw new RuntimeException("Boom boom!") + } + + def getLastDigit(num: Int): Try[Int] = { + Try { + require(num > 0, "Only positive numbers supported!") + num % 10 + } + } + + def getDBResult(): Future[Int] = { + Future.failed(new RuntimeException("Unexpected error occurred!")) + } +} + +class ExceptionHandlingUnitTest extends AsyncWordSpec with Matchers { + + "Scalatest exception handler" should { + "intercept thrown exception successfully" in { + val exception = + intercept[RuntimeException](ExceptionHandlingMethods.explodingMethod()) + exception shouldBe a[RuntimeException] + exception.getMessage shouldBe "Boom boom!" + } + + "intercept thrown exception successfully using the parent type" in { + val exception = + intercept[Exception](ExceptionHandlingMethods.explodingMethod()) + exception shouldBe a[Exception] + exception shouldBe a[RuntimeException] + exception.getMessage shouldBe "Boom boom!" + } + + "use assertThrows to handle thrown exception successfully" in { + assertThrows[RuntimeException](ExceptionHandlingMethods.explodingMethod()) + } + + "handle Try failures correctly" in { + val result = ExceptionHandlingMethods.getLastDigit(-100) + result.failed.get shouldBe a[IllegalArgumentException] + result.failed.get.getMessage should include( + "Only positive numbers supported!" + ) + } + + "handle future failures correctly" in { + val futureResult = ExceptionHandlingMethods.getDBResult() + futureResult.failed.map { ex => + ex shouldBe a[RuntimeException] + ex.getMessage shouldBe "Unexpected error occurred!" + } + } + + "use recoverToExceptionIf method for futures" in { + val futureResult = ExceptionHandlingMethods.getDBResult() + recoverToExceptionIf[RuntimeException](futureResult).map { rt => + rt.getMessage shouldBe "Unexpected error occurred!" + } + } + + "use recoverToSucceededIf method for futures" in { + val futureResult = ExceptionHandlingMethods.getDBResult() + recoverToSucceededIf[RuntimeException](futureResult) + } + } + +} From b8de0c98858fff71b9d3e2be171218c191029668 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 6 Dec 2023 17:36:43 +0100 Subject: [PATCH 0194/1318] Added the code sample for scalatest exception handling --- .../ExceptionHandlingUnitTest.scala | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/scala-test/src/test/scala-2/com/baeldung/scala/scalatest/exceptions/ExceptionHandlingUnitTest.scala b/scala-test/src/test/scala-2/com/baeldung/scala/scalatest/exceptions/ExceptionHandlingUnitTest.scala index a5b511846..72b9889e7 100644 --- a/scala-test/src/test/scala-2/com/baeldung/scala/scalatest/exceptions/ExceptionHandlingUnitTest.scala +++ b/scala-test/src/test/scala-2/com/baeldung/scala/scalatest/exceptions/ExceptionHandlingUnitTest.scala @@ -24,29 +24,33 @@ object ExceptionHandlingMethods { } class ExceptionHandlingUnitTest extends AsyncWordSpec with Matchers { + import ExceptionHandlingMethods._ "Scalatest exception handler" should { + "intercept thrown exception successfully" in { - val exception = - intercept[RuntimeException](ExceptionHandlingMethods.explodingMethod()) + val exception = intercept[RuntimeException](explodingMethod()) exception shouldBe a[RuntimeException] exception.getMessage shouldBe "Boom boom!" } "intercept thrown exception successfully using the parent type" in { - val exception = - intercept[Exception](ExceptionHandlingMethods.explodingMethod()) + val exception = intercept[Exception](explodingMethod()) exception shouldBe a[Exception] exception shouldBe a[RuntimeException] exception.getMessage shouldBe "Boom boom!" } "use assertThrows to handle thrown exception successfully" in { - assertThrows[RuntimeException](ExceptionHandlingMethods.explodingMethod()) + assertThrows[RuntimeException](explodingMethod()) + } + + "use assertThrows to handle thrown exception successfully by using parent type" in { + assertThrows[Exception](explodingMethod()) } "handle Try failures correctly" in { - val result = ExceptionHandlingMethods.getLastDigit(-100) + val result = getLastDigit(-100) result.failed.get shouldBe a[IllegalArgumentException] result.failed.get.getMessage should include( "Only positive numbers supported!" @@ -54,7 +58,7 @@ class ExceptionHandlingUnitTest extends AsyncWordSpec with Matchers { } "handle future failures correctly" in { - val futureResult = ExceptionHandlingMethods.getDBResult() + val futureResult = getDBResult() futureResult.failed.map { ex => ex shouldBe a[RuntimeException] ex.getMessage shouldBe "Unexpected error occurred!" @@ -62,14 +66,14 @@ class ExceptionHandlingUnitTest extends AsyncWordSpec with Matchers { } "use recoverToExceptionIf method for futures" in { - val futureResult = ExceptionHandlingMethods.getDBResult() + val futureResult = getDBResult() recoverToExceptionIf[RuntimeException](futureResult).map { rt => rt.getMessage shouldBe "Unexpected error occurred!" } } "use recoverToSucceededIf method for futures" in { - val futureResult = ExceptionHandlingMethods.getDBResult() + val futureResult = getDBResult() recoverToSucceededIf[RuntimeException](futureResult) } } From 84b79733f69929f9c2a1c2d6b2749c8fcabc4747 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 6 Dec 2023 20:24:02 +0100 Subject: [PATCH 0195/1318] Upgraded scala-core-oop module to Scala 3 --- build.sbt | 1 + scala-core-modules/scala-core-oop/README.md | 1 - .../com/baeldung/scala/caseobject/ObjectExample.scala | 2 +- .../scala/classcompositionwithtraits/CarTraits.scala | 0 .../com/baeldung/scala/classvsobject/ClassExamples.scala | 6 +++--- .../com/baeldung/scala/classvsobject/ObjectExamples.scala | 0 .../com/baeldung/scala/enumerations/Fingers.scala | 0 .../com/baeldung/scala/enumerations/FingersOperation.scala | 0 .../com/baeldung/scala/generics/GenericsIntro.scala | 0 .../com/baeldung/scala/generics/Queue.scala | 0 .../com/baeldung/scala/lifting/Examples.scala | 0 .../com/baeldung/scala/oopinscala/OopConcepts.scala | 0 .../oopinscala/polymorphism/PolymorphismExamples.scala | 0 .../com/baeldung/scala/variance/Variance.scala | 0 .../baeldung/scala/caseobject/ObjectExampleUnitTest.scala | 0 .../classcompositionwithtraits/CarTraitsUnitTest.scala | 0 .../scala/classvsobject/ClassExamplesUnitTest.scala | 0 .../scala/classvsobject/ObjectExamplesUnitTest.scala | 0 .../scala/enumerations/FingersOperationUnitTest.scala | 0 .../com/baeldung/scala/lifting/ExamplesUnitTest.scala | 0 .../com/baeldung/scala/oopinscala/OopConceptsUnitTest.scala | 0 .../polymorphism/PolymorphismExamplesUnitTest.scala | 0 .../com/baeldung/scala/variance/VarianceUnitTest.scala | 0 scala-core-modules/scala2-core/README.md | 3 ++- .../scala-2/com/baeldung/scala/bounds/contextbound.scala | 0 .../main/scala-2/com/baeldung/scala/bounds/conversion.scala | 0 .../com/baeldung/scala/bounds/implicitconversion.scala | 0 .../scala-2/com/baeldung/scala/bounds/implicitobject.scala | 0 .../scala-2/com/baeldung/scala/bounds/implicitvalues.scala | 0 .../com/baeldung/scala/bounds/multipleparameterlists.scala | 0 .../main/scala-2/com/baeldung/scala/bounds/richobject.scala | 0 .../main/scala-2/com/baeldung/scala/bounds/viewbound.scala | 0 32 files changed, 7 insertions(+), 6 deletions(-) rename scala-core-modules/scala-core-oop/src/main/{scala-2 => scala}/com/baeldung/scala/caseobject/ObjectExample.scala (97%) rename scala-core-modules/scala-core-oop/src/main/{scala-2 => scala}/com/baeldung/scala/classcompositionwithtraits/CarTraits.scala (100%) rename scala-core-modules/scala-core-oop/src/main/{scala-2 => scala}/com/baeldung/scala/classvsobject/ClassExamples.scala (96%) rename scala-core-modules/scala-core-oop/src/main/{scala-2 => scala}/com/baeldung/scala/classvsobject/ObjectExamples.scala (100%) rename scala-core-modules/scala-core-oop/src/main/{scala-2 => scala}/com/baeldung/scala/enumerations/Fingers.scala (100%) rename scala-core-modules/scala-core-oop/src/main/{scala-2 => scala}/com/baeldung/scala/enumerations/FingersOperation.scala (100%) rename scala-core-modules/scala-core-oop/src/main/{scala-2 => scala}/com/baeldung/scala/generics/GenericsIntro.scala (100%) rename scala-core-modules/scala-core-oop/src/main/{scala-2 => scala}/com/baeldung/scala/generics/Queue.scala (100%) rename scala-core-modules/scala-core-oop/src/main/{scala-2 => scala}/com/baeldung/scala/lifting/Examples.scala (100%) rename scala-core-modules/scala-core-oop/src/main/{scala-2 => scala}/com/baeldung/scala/oopinscala/OopConcepts.scala (100%) rename scala-core-modules/scala-core-oop/src/main/{scala-2 => scala}/com/baeldung/scala/oopinscala/polymorphism/PolymorphismExamples.scala (100%) rename scala-core-modules/scala-core-oop/src/main/{scala-2 => scala}/com/baeldung/scala/variance/Variance.scala (100%) rename scala-core-modules/scala-core-oop/src/test/{scala-2 => scala}/com/baeldung/scala/caseobject/ObjectExampleUnitTest.scala (100%) rename scala-core-modules/scala-core-oop/src/test/{scala-2 => scala}/com/baeldung/scala/classcompositionwithtraits/CarTraitsUnitTest.scala (100%) rename scala-core-modules/scala-core-oop/src/test/{scala-2 => scala}/com/baeldung/scala/classvsobject/ClassExamplesUnitTest.scala (100%) rename scala-core-modules/scala-core-oop/src/test/{scala-2 => scala}/com/baeldung/scala/classvsobject/ObjectExamplesUnitTest.scala (100%) rename scala-core-modules/scala-core-oop/src/test/{scala-2 => scala}/com/baeldung/scala/enumerations/FingersOperationUnitTest.scala (100%) rename scala-core-modules/scala-core-oop/src/test/{scala-2 => scala}/com/baeldung/scala/lifting/ExamplesUnitTest.scala (100%) rename scala-core-modules/scala-core-oop/src/test/{scala-2 => scala}/com/baeldung/scala/oopinscala/OopConceptsUnitTest.scala (100%) rename scala-core-modules/scala-core-oop/src/test/{scala-2 => scala}/com/baeldung/scala/oopinscala/polymorphism/PolymorphismExamplesUnitTest.scala (100%) rename scala-core-modules/scala-core-oop/src/test/{scala-2 => scala}/com/baeldung/scala/variance/VarianceUnitTest.scala (100%) rename scala-core-modules/{scala-core-oop => scala2-core}/src/main/scala-2/com/baeldung/scala/bounds/contextbound.scala (100%) rename scala-core-modules/{scala-core-oop => scala2-core}/src/main/scala-2/com/baeldung/scala/bounds/conversion.scala (100%) rename scala-core-modules/{scala-core-oop => scala2-core}/src/main/scala-2/com/baeldung/scala/bounds/implicitconversion.scala (100%) rename scala-core-modules/{scala-core-oop => scala2-core}/src/main/scala-2/com/baeldung/scala/bounds/implicitobject.scala (100%) rename scala-core-modules/{scala-core-oop => scala2-core}/src/main/scala-2/com/baeldung/scala/bounds/implicitvalues.scala (100%) rename scala-core-modules/{scala-core-oop => scala2-core}/src/main/scala-2/com/baeldung/scala/bounds/multipleparameterlists.scala (100%) rename scala-core-modules/{scala-core-oop => scala2-core}/src/main/scala-2/com/baeldung/scala/bounds/richobject.scala (100%) rename scala-core-modules/{scala-core-oop => scala2-core}/src/main/scala-2/com/baeldung/scala/bounds/viewbound.scala (100%) diff --git a/build.sbt b/build.sbt index bd5c2a74e..b2bff82af 100644 --- a/build.sbt +++ b/build.sbt @@ -118,6 +118,7 @@ lazy val scala_core_io = (project in file("scala-core-modules/scala-core-io")) lazy val scala_core_oop = (project in file("scala-core-modules/scala-core-oop")) .settings( name := "scala-core-oop", + scalaVersion := scala3Version, libraryDependencies ++= Seq(catsEffect, jUnitInterface) ++ scalaTestDeps ) diff --git a/scala-core-modules/scala-core-oop/README.md b/scala-core-modules/scala-core-oop/README.md index 44d03093e..b80cf2db7 100644 --- a/scala-core-modules/scala-core-oop/README.md +++ b/scala-core-modules/scala-core-oop/README.md @@ -11,6 +11,5 @@ This module contains articles about Scala's Object Oriented Programming features - [Classes and Objects in Scala](https://www.baeldung.com/scala/classes-objects) - [Difference Between Case Object and Object](https://www.baeldung.com/scala/case-object-vs-object) - [Object Oriented Programming in Scala](https://www.baeldung.com/scala/oop-intro) -- [Demystifying View and Context Bounds](https://www.baeldung.com/scala/view-context-bounds) - [Polymorphism in Scala](https://www.baeldung.com/scala/polymorphism) - [Lifting in Scala](https://www.baeldung.com/scala/lifting) diff --git a/scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/caseobject/ObjectExample.scala b/scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/caseobject/ObjectExample.scala similarity index 97% rename from scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/caseobject/ObjectExample.scala rename to scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/caseobject/ObjectExample.scala index d76267733..b4cbadc71 100644 --- a/scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/caseobject/ObjectExample.scala +++ b/scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/caseobject/ObjectExample.scala @@ -20,7 +20,7 @@ object ObjectExample extends App { } // Throws exception in case we call FlyingObject other than airplane and bird - def nonExhaustive(objects: FlyingObject.Value) { + def nonExhaustive(objects: FlyingObject.Value) = { objects match { case FlyingObject.airplane => println("I am an airplane") case FlyingObject.bird => println("I am a bird") diff --git a/scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/classcompositionwithtraits/CarTraits.scala b/scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/classcompositionwithtraits/CarTraits.scala similarity index 100% rename from scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/classcompositionwithtraits/CarTraits.scala rename to scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/classcompositionwithtraits/CarTraits.scala diff --git a/scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/classvsobject/ClassExamples.scala b/scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/classvsobject/ClassExamples.scala similarity index 96% rename from scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/classvsobject/ClassExamples.scala rename to scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/classvsobject/ClassExamples.scala index 759065295..32bf5ac98 100644 --- a/scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/classvsobject/ClassExamples.scala +++ b/scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/classvsobject/ClassExamples.scala @@ -5,15 +5,15 @@ object ClassExamples { val constA = "A" val constB = 4 class Abc(var a: String, var b: Int) { - def this(a: String) { + def this(a: String) = { this(a, constB) this.a = a } - def this(b: Int) { + def this(b: Int) = { this(constA, b) this.b = b } - def this() { + def this() = { this(constA, constB) } } diff --git a/scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/classvsobject/ObjectExamples.scala b/scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/classvsobject/ObjectExamples.scala similarity index 100% rename from scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/classvsobject/ObjectExamples.scala rename to scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/classvsobject/ObjectExamples.scala diff --git a/scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/enumerations/Fingers.scala b/scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/enumerations/Fingers.scala similarity index 100% rename from scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/enumerations/Fingers.scala rename to scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/enumerations/Fingers.scala diff --git a/scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/enumerations/FingersOperation.scala b/scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/enumerations/FingersOperation.scala similarity index 100% rename from scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/enumerations/FingersOperation.scala rename to scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/enumerations/FingersOperation.scala diff --git a/scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/generics/GenericsIntro.scala b/scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/generics/GenericsIntro.scala similarity index 100% rename from scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/generics/GenericsIntro.scala rename to scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/generics/GenericsIntro.scala diff --git a/scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/generics/Queue.scala b/scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/generics/Queue.scala similarity index 100% rename from scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/generics/Queue.scala rename to scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/generics/Queue.scala diff --git a/scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/lifting/Examples.scala b/scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/lifting/Examples.scala similarity index 100% rename from scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/lifting/Examples.scala rename to scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/lifting/Examples.scala diff --git a/scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/oopinscala/OopConcepts.scala b/scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/oopinscala/OopConcepts.scala similarity index 100% rename from scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/oopinscala/OopConcepts.scala rename to scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/oopinscala/OopConcepts.scala diff --git a/scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/oopinscala/polymorphism/PolymorphismExamples.scala b/scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/oopinscala/polymorphism/PolymorphismExamples.scala similarity index 100% rename from scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/oopinscala/polymorphism/PolymorphismExamples.scala rename to scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/oopinscala/polymorphism/PolymorphismExamples.scala diff --git a/scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/variance/Variance.scala b/scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/variance/Variance.scala similarity index 100% rename from scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/variance/Variance.scala rename to scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/variance/Variance.scala diff --git a/scala-core-modules/scala-core-oop/src/test/scala-2/com/baeldung/scala/caseobject/ObjectExampleUnitTest.scala b/scala-core-modules/scala-core-oop/src/test/scala/com/baeldung/scala/caseobject/ObjectExampleUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-oop/src/test/scala-2/com/baeldung/scala/caseobject/ObjectExampleUnitTest.scala rename to scala-core-modules/scala-core-oop/src/test/scala/com/baeldung/scala/caseobject/ObjectExampleUnitTest.scala diff --git a/scala-core-modules/scala-core-oop/src/test/scala-2/com/baeldung/scala/classcompositionwithtraits/CarTraitsUnitTest.scala b/scala-core-modules/scala-core-oop/src/test/scala/com/baeldung/scala/classcompositionwithtraits/CarTraitsUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-oop/src/test/scala-2/com/baeldung/scala/classcompositionwithtraits/CarTraitsUnitTest.scala rename to scala-core-modules/scala-core-oop/src/test/scala/com/baeldung/scala/classcompositionwithtraits/CarTraitsUnitTest.scala diff --git a/scala-core-modules/scala-core-oop/src/test/scala-2/com/baeldung/scala/classvsobject/ClassExamplesUnitTest.scala b/scala-core-modules/scala-core-oop/src/test/scala/com/baeldung/scala/classvsobject/ClassExamplesUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-oop/src/test/scala-2/com/baeldung/scala/classvsobject/ClassExamplesUnitTest.scala rename to scala-core-modules/scala-core-oop/src/test/scala/com/baeldung/scala/classvsobject/ClassExamplesUnitTest.scala diff --git a/scala-core-modules/scala-core-oop/src/test/scala-2/com/baeldung/scala/classvsobject/ObjectExamplesUnitTest.scala b/scala-core-modules/scala-core-oop/src/test/scala/com/baeldung/scala/classvsobject/ObjectExamplesUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-oop/src/test/scala-2/com/baeldung/scala/classvsobject/ObjectExamplesUnitTest.scala rename to scala-core-modules/scala-core-oop/src/test/scala/com/baeldung/scala/classvsobject/ObjectExamplesUnitTest.scala diff --git a/scala-core-modules/scala-core-oop/src/test/scala-2/com/baeldung/scala/enumerations/FingersOperationUnitTest.scala b/scala-core-modules/scala-core-oop/src/test/scala/com/baeldung/scala/enumerations/FingersOperationUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-oop/src/test/scala-2/com/baeldung/scala/enumerations/FingersOperationUnitTest.scala rename to scala-core-modules/scala-core-oop/src/test/scala/com/baeldung/scala/enumerations/FingersOperationUnitTest.scala diff --git a/scala-core-modules/scala-core-oop/src/test/scala-2/com/baeldung/scala/lifting/ExamplesUnitTest.scala b/scala-core-modules/scala-core-oop/src/test/scala/com/baeldung/scala/lifting/ExamplesUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-oop/src/test/scala-2/com/baeldung/scala/lifting/ExamplesUnitTest.scala rename to scala-core-modules/scala-core-oop/src/test/scala/com/baeldung/scala/lifting/ExamplesUnitTest.scala diff --git a/scala-core-modules/scala-core-oop/src/test/scala-2/com/baeldung/scala/oopinscala/OopConceptsUnitTest.scala b/scala-core-modules/scala-core-oop/src/test/scala/com/baeldung/scala/oopinscala/OopConceptsUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-oop/src/test/scala-2/com/baeldung/scala/oopinscala/OopConceptsUnitTest.scala rename to scala-core-modules/scala-core-oop/src/test/scala/com/baeldung/scala/oopinscala/OopConceptsUnitTest.scala diff --git a/scala-core-modules/scala-core-oop/src/test/scala-2/com/baeldung/scala/oopinscala/polymorphism/PolymorphismExamplesUnitTest.scala b/scala-core-modules/scala-core-oop/src/test/scala/com/baeldung/scala/oopinscala/polymorphism/PolymorphismExamplesUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-oop/src/test/scala-2/com/baeldung/scala/oopinscala/polymorphism/PolymorphismExamplesUnitTest.scala rename to scala-core-modules/scala-core-oop/src/test/scala/com/baeldung/scala/oopinscala/polymorphism/PolymorphismExamplesUnitTest.scala diff --git a/scala-core-modules/scala-core-oop/src/test/scala-2/com/baeldung/scala/variance/VarianceUnitTest.scala b/scala-core-modules/scala-core-oop/src/test/scala/com/baeldung/scala/variance/VarianceUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-oop/src/test/scala-2/com/baeldung/scala/variance/VarianceUnitTest.scala rename to scala-core-modules/scala-core-oop/src/test/scala/com/baeldung/scala/variance/VarianceUnitTest.scala diff --git a/scala-core-modules/scala2-core/README.md b/scala-core-modules/scala2-core/README.md index 66d431b7f..3da9421ed 100644 --- a/scala-core-modules/scala2-core/README.md +++ b/scala-core-modules/scala2-core/README.md @@ -5,4 +5,5 @@ - [Implicit Conversions](https://www.baeldung.com/scala/implicit-conversions) - [Reading Command-Line Arguments in Scala](https://www.baeldung.com/scala/read-command-line-arguments) - [Introduction to Scala Macros](https://www.baeldung.com/scala/scala2-macros) -- [Introduction to Macros in Scala 2](https://www.baeldung.com/scala/scala2-macros) \ No newline at end of file +- [Introduction to Macros in Scala 2](https://www.baeldung.com/scala/scala2-macros) +- [Demystifying View and Context Bounds](https://www.baeldung.com/scala/view-context-bounds) diff --git a/scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/contextbound.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/contextbound.scala similarity index 100% rename from scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/contextbound.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/contextbound.scala diff --git a/scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/conversion.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/conversion.scala similarity index 100% rename from scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/conversion.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/conversion.scala diff --git a/scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/implicitconversion.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/implicitconversion.scala similarity index 100% rename from scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/implicitconversion.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/implicitconversion.scala diff --git a/scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/implicitobject.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/implicitobject.scala similarity index 100% rename from scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/implicitobject.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/implicitobject.scala diff --git a/scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/implicitvalues.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/implicitvalues.scala similarity index 100% rename from scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/implicitvalues.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/implicitvalues.scala diff --git a/scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/multipleparameterlists.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/multipleparameterlists.scala similarity index 100% rename from scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/multipleparameterlists.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/multipleparameterlists.scala diff --git a/scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/richobject.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/richobject.scala similarity index 100% rename from scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/richobject.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/richobject.scala diff --git a/scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/viewbound.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/viewbound.scala similarity index 100% rename from scala-core-modules/scala-core-oop/src/main/scala-2/com/baeldung/scala/bounds/viewbound.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/viewbound.scala From d1971e2c514e033797715b324a1ed03678a9b08c Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 6 Dec 2023 20:56:15 +0100 Subject: [PATCH 0196/1318] Migrated scala-core to Scala 3 --- build.sbt | 5 +++-- .../exceptionhandling/ExceptionHandlingUnitTest.scala | 7 +------ scala-core-modules/scala-core/README.md | 2 -- .../com/baeldung/scala/forloop/ForLoop.scala | 0 .../scala/higherorder/HigherOrderFunctions.scala | 0 .../com/baeldung/scala/lazyval/LazyVal.scala | 0 .../baeldung/scala/partialfunctions/SquareRoot.scala | 0 .../scala/partialfunctions/SwapIntegerSign.scala | 0 .../scala/patternmatching/PatternMatching.scala | 0 .../scala/sealedkeyword/AlgebraicDataType.scala | 0 .../scala/sealedkeyword/SealedCaseObjectsAsEnum.scala | 0 .../scala/sealedkeyword/SealedClassExample.scala | 0 .../sealedkeyword/SelaedExtendedDifferentFile.scala | 0 .../com/baeldung/scala/traits/Composition.scala | 0 .../com/baeldung/scala/traits/Mixing.scala | 0 .../com/baeldung/scala/traits/MixingAlgorithm.scala | 0 .../com/baeldung/scala/traits/Orchestration.scala | 0 .../com/baeldung/scala/traits/RecordLabel.scala | 0 .../com/baeldung/scala/traits/Score.scala | 2 +- .../com/baeldung/scala/traits/SoundProduction.scala | 0 .../com/baeldung/scala/traits/Vocals.scala | 0 .../com/baeldung/scala/tuples/Tuples.scala | 0 .../com/baeldung/scala/forloop/ForLoopUnitTest.scala | 0 .../HigherOrderFunctionsExamplesUnitTest.scala | 0 .../higherorder/HigherOrderFunctionsUnitTest.scala | 0 .../com/baeldung/scala/lazyval/LazyValUnitTest.scala | 0 .../scala/partialfunctions/SquareRootUnitTest.scala | 0 .../partialfunctions/SwapIntegerSignUnitTest.scala | 0 .../patternmatching/PatternMatchingUnitTest.scala | 0 .../com/baeldung/scala/traits/ScoreUnitTest.scala | 4 ++-- .../com/baeldung/scala/tuples/TuplesUnitTest.scala | 0 scala-core-modules/scala2-core/README.md | 2 ++ .../baeldung/scala/exceptionhandling/Calculator.scala | 0 .../baeldung/scala/exceptionhandling/Examples.scala | 0 .../scala/exceptionhandling/HandlingWithEither.scala | 6 +----- .../exceptionhandling/HandlingWithMonadError.scala | 6 +----- .../scala/exceptionhandling/HandlingWithOption.scala | 0 .../scala/exceptionhandling/HandlingWithTry.scala | 0 .../exceptionhandling/HandlingWithTryOption.scala | 0 .../exceptionhandling/HandlingWithValidated.scala | 5 +---- .../scala/exceptionhandling/LegacyErrors.scala | 0 .../scala/exceptionhandling/LegacyService.scala | 0 .../baeldung/scala/exceptionhandling/Resource.scala | 0 .../baeldung/scala/exceptionhandling/Session.scala | 0 .../com/baeldung/scala/exceptionhandling/User.scala | 0 .../scala/exceptionhandling/ValidationErrors.scala | 0 .../scala/introduction/ControlStructuresDemo.scala | 0 .../com/baeldung/scala/introduction/Employee.scala | 0 .../com/baeldung/scala/introduction/HelloWorld.scala | 0 .../com/baeldung/scala/introduction/IntSet.scala | 0 .../com/baeldung/scala/introduction/Utils.scala | 0 .../scala/exceptionhandling/ExamplesUnitTest.scala | 0 .../IdiomaticExceptionHandlingUnitTest.scala | 11 ++--------- .../introduction/ControlStructuresDemoUnitTest.scala | 0 .../scala/introduction/EmployeeUnitTest.scala | 0 .../baeldung/scala/introduction/IntSetUnitTest.scala | 0 .../baeldung/scala/introduction/UtilsUnitTest.scala | 7 +------ 57 files changed, 15 insertions(+), 42 deletions(-) rename scala-core-modules/scala-core/src/main/{scala-2 => scala}/com/baeldung/scala/forloop/ForLoop.scala (100%) rename scala-core-modules/scala-core/src/main/{scala-2 => scala}/com/baeldung/scala/higherorder/HigherOrderFunctions.scala (100%) rename scala-core-modules/scala-core/src/main/{scala-2 => scala}/com/baeldung/scala/lazyval/LazyVal.scala (100%) rename scala-core-modules/scala-core/src/main/{scala-2 => scala}/com/baeldung/scala/partialfunctions/SquareRoot.scala (100%) rename scala-core-modules/scala-core/src/main/{scala-2 => scala}/com/baeldung/scala/partialfunctions/SwapIntegerSign.scala (100%) rename scala-core-modules/scala-core/src/main/{scala-2 => scala}/com/baeldung/scala/patternmatching/PatternMatching.scala (100%) rename scala-core-modules/scala-core/src/main/{scala-2 => scala}/com/baeldung/scala/sealedkeyword/AlgebraicDataType.scala (100%) rename scala-core-modules/scala-core/src/main/{scala-2 => scala}/com/baeldung/scala/sealedkeyword/SealedCaseObjectsAsEnum.scala (100%) rename scala-core-modules/scala-core/src/main/{scala-2 => scala}/com/baeldung/scala/sealedkeyword/SealedClassExample.scala (100%) rename scala-core-modules/scala-core/src/main/{scala-2 => scala}/com/baeldung/scala/sealedkeyword/SelaedExtendedDifferentFile.scala (100%) rename scala-core-modules/scala-core/src/main/{scala-2 => scala}/com/baeldung/scala/traits/Composition.scala (100%) rename scala-core-modules/scala-core/src/main/{scala-2 => scala}/com/baeldung/scala/traits/Mixing.scala (100%) rename scala-core-modules/scala-core/src/main/{scala-2 => scala}/com/baeldung/scala/traits/MixingAlgorithm.scala (100%) rename scala-core-modules/scala-core/src/main/{scala-2 => scala}/com/baeldung/scala/traits/Orchestration.scala (100%) rename scala-core-modules/scala-core/src/main/{scala-2 => scala}/com/baeldung/scala/traits/RecordLabel.scala (100%) rename scala-core-modules/scala-core/src/main/{scala-2 => scala}/com/baeldung/scala/traits/Score.scala (93%) rename scala-core-modules/scala-core/src/main/{scala-2 => scala}/com/baeldung/scala/traits/SoundProduction.scala (100%) rename scala-core-modules/scala-core/src/main/{scala-2 => scala}/com/baeldung/scala/traits/Vocals.scala (100%) rename scala-core-modules/scala-core/src/main/{scala-2 => scala}/com/baeldung/scala/tuples/Tuples.scala (100%) rename scala-core-modules/scala-core/src/test/{scala-2 => scala}/com/baeldung/scala/forloop/ForLoopUnitTest.scala (100%) rename scala-core-modules/scala-core/src/test/{scala-2 => scala}/com/baeldung/scala/higherorder/HigherOrderFunctionsExamplesUnitTest.scala (100%) rename scala-core-modules/scala-core/src/test/{scala-2 => scala}/com/baeldung/scala/higherorder/HigherOrderFunctionsUnitTest.scala (100%) rename scala-core-modules/scala-core/src/test/{scala-2 => scala}/com/baeldung/scala/lazyval/LazyValUnitTest.scala (100%) rename scala-core-modules/scala-core/src/test/{scala-2 => scala}/com/baeldung/scala/partialfunctions/SquareRootUnitTest.scala (100%) rename scala-core-modules/scala-core/src/test/{scala-2 => scala}/com/baeldung/scala/partialfunctions/SwapIntegerSignUnitTest.scala (100%) rename scala-core-modules/scala-core/src/test/{scala-2 => scala}/com/baeldung/scala/patternmatching/PatternMatchingUnitTest.scala (100%) rename scala-core-modules/scala-core/src/test/{scala-2 => scala}/com/baeldung/scala/traits/ScoreUnitTest.scala (94%) rename scala-core-modules/scala-core/src/test/{scala-2 => scala}/com/baeldung/scala/tuples/TuplesUnitTest.scala (100%) rename scala-core-modules/{scala-core => scala2-core}/src/main/scala-2/com/baeldung/scala/exceptionhandling/Calculator.scala (100%) rename scala-core-modules/{scala-core => scala2-core}/src/main/scala-2/com/baeldung/scala/exceptionhandling/Examples.scala (100%) rename scala-core-modules/{scala-core => scala2-core}/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithEither.scala (90%) rename scala-core-modules/{scala-core => scala2-core}/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithMonadError.scala (92%) rename scala-core-modules/{scala-core => scala2-core}/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithOption.scala (100%) rename scala-core-modules/{scala-core => scala2-core}/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTry.scala (100%) rename scala-core-modules/{scala-core => scala2-core}/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTryOption.scala (100%) rename scala-core-modules/{scala-core => scala2-core}/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithValidated.scala (90%) rename scala-core-modules/{scala-core => scala2-core}/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyErrors.scala (100%) rename scala-core-modules/{scala-core => scala2-core}/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyService.scala (100%) rename scala-core-modules/{scala-core => scala2-core}/src/main/scala-2/com/baeldung/scala/exceptionhandling/Resource.scala (100%) rename scala-core-modules/{scala-core => scala2-core}/src/main/scala-2/com/baeldung/scala/exceptionhandling/Session.scala (100%) rename scala-core-modules/{scala-core => scala2-core}/src/main/scala-2/com/baeldung/scala/exceptionhandling/User.scala (100%) rename scala-core-modules/{scala-core => scala2-core}/src/main/scala-2/com/baeldung/scala/exceptionhandling/ValidationErrors.scala (100%) rename scala-core-modules/{scala-core => scala2-core}/src/main/scala-2/com/baeldung/scala/introduction/ControlStructuresDemo.scala (100%) rename scala-core-modules/{scala-core => scala2-core}/src/main/scala-2/com/baeldung/scala/introduction/Employee.scala (100%) rename scala-core-modules/{scala-core => scala2-core}/src/main/scala-2/com/baeldung/scala/introduction/HelloWorld.scala (100%) rename scala-core-modules/{scala-core => scala2-core}/src/main/scala-2/com/baeldung/scala/introduction/IntSet.scala (100%) rename scala-core-modules/{scala-core => scala2-core}/src/main/scala-2/com/baeldung/scala/introduction/Utils.scala (100%) rename scala-core-modules/{scala-core => scala2-core}/src/test/scala-2/com/baeldung/scala/exceptionhandling/ExamplesUnitTest.scala (100%) rename scala-core-modules/{scala-core => scala2-core}/src/test/scala-2/com/baeldung/scala/exceptionhandling/IdiomaticExceptionHandlingUnitTest.scala (98%) rename scala-core-modules/{scala-core => scala2-core}/src/test/scala-2/com/baeldung/scala/introduction/ControlStructuresDemoUnitTest.scala (100%) rename scala-core-modules/{scala-core => scala2-core}/src/test/scala-2/com/baeldung/scala/introduction/EmployeeUnitTest.scala (100%) rename scala-core-modules/{scala-core => scala2-core}/src/test/scala-2/com/baeldung/scala/introduction/IntSetUnitTest.scala (100%) rename scala-core-modules/{scala-core => scala2-core}/src/test/scala-2/com/baeldung/scala/introduction/UtilsUnitTest.scala (87%) diff --git a/build.sbt b/build.sbt index b2bff82af..8ab5c852c 100644 --- a/build.sbt +++ b/build.sbt @@ -25,10 +25,10 @@ val zioVersion = "2.0.19" lazy val scala_core = (project in file("scala-core-modules/scala-core")) .settings( name := "scala-core", + scalaVersion := scala3Version, libraryDependencies ++= Seq( - jUnitInterface, - catsEffect + jUnitInterface ) ++ scalaTestDeps ) @@ -62,6 +62,7 @@ lazy val scala2_core = (project in file("scala-core-modules/scala2-core")) libraryDependencies += "org.backuity.clist" %% "clist-macros" % "3.5.1" % "provided", libraryDependencies += "args4j" % "args4j" % "2.33", libraryDependencies += "org.scala-lang" % "scala-compiler" % scalaVersion.value % "test", + libraryDependencies += catsEffect ) lazy val scala_core_4 = (project in file("scala-core-modules/scala-core-4")) diff --git a/scala-core-modules/scala-core-2/src/test/scala/com/baeldung/scala/exceptionhandling/ExceptionHandlingUnitTest.scala b/scala-core-modules/scala-core-2/src/test/scala/com/baeldung/scala/exceptionhandling/ExceptionHandlingUnitTest.scala index 0874fd887..a86f19bbd 100644 --- a/scala-core-modules/scala-core-2/src/test/scala/com/baeldung/scala/exceptionhandling/ExceptionHandlingUnitTest.scala +++ b/scala-core-modules/scala-core-2/src/test/scala/com/baeldung/scala/exceptionhandling/ExceptionHandlingUnitTest.scala @@ -1,11 +1,6 @@ package com.baeldung.scala.exceptionhandling -import com.baeldung.scala.exceptionhandling.ExceptionHandling.{ - DivideByZero, - divideWithEither, - divideWithOption, - divideWithTry -} +import com.baeldung.scala.exceptionhandling.ExceptionHandling._ import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers diff --git a/scala-core-modules/scala-core/README.md b/scala-core-modules/scala-core/README.md index 1cc7cca91..9676be071 100644 --- a/scala-core-modules/scala-core/README.md +++ b/scala-core-modules/scala-core/README.md @@ -4,13 +4,11 @@ This module contains articles about Scala's core features ### Relevant Articles: -- [Introduction to Scala](https://www.baeldung.com/scala/scala-intro) - [Higher-Order Functions in Scala](https://www.baeldung.com/scala/higher-order-functions) - [A Guide to Scala Tuples](https://www.baeldung.com/scala/tuples) - [Guide to lazy val in Scala](https://www.baeldung.com/scala/lazy-val) - [Partial Functions in Scala](https://www.baeldung.com/scala/partial-functions) - [For Loops in Scala](https://www.baeldung.com/scala/for-loops) - [Introduction to Traits in Scala](https://www.baeldung.com/scala/traits) -- [Exception Handling in Scala](https://www.baeldung.com/scala/exception-handling) - [Sealed Keyword in Scala](https://www.baeldung.com/scala/sealed-keyword) - [Pattern Matching in Scala](https://www.baeldung.com/scala/pattern-matching) diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/forloop/ForLoop.scala b/scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/forloop/ForLoop.scala similarity index 100% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/forloop/ForLoop.scala rename to scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/forloop/ForLoop.scala diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/higherorder/HigherOrderFunctions.scala b/scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/higherorder/HigherOrderFunctions.scala similarity index 100% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/higherorder/HigherOrderFunctions.scala rename to scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/higherorder/HigherOrderFunctions.scala diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/lazyval/LazyVal.scala b/scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/lazyval/LazyVal.scala similarity index 100% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/lazyval/LazyVal.scala rename to scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/lazyval/LazyVal.scala diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/partialfunctions/SquareRoot.scala b/scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/partialfunctions/SquareRoot.scala similarity index 100% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/partialfunctions/SquareRoot.scala rename to scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/partialfunctions/SquareRoot.scala diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/partialfunctions/SwapIntegerSign.scala b/scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/partialfunctions/SwapIntegerSign.scala similarity index 100% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/partialfunctions/SwapIntegerSign.scala rename to scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/partialfunctions/SwapIntegerSign.scala diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/patternmatching/PatternMatching.scala b/scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/patternmatching/PatternMatching.scala similarity index 100% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/patternmatching/PatternMatching.scala rename to scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/patternmatching/PatternMatching.scala diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/sealedkeyword/AlgebraicDataType.scala b/scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/sealedkeyword/AlgebraicDataType.scala similarity index 100% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/sealedkeyword/AlgebraicDataType.scala rename to scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/sealedkeyword/AlgebraicDataType.scala diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/sealedkeyword/SealedCaseObjectsAsEnum.scala b/scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/sealedkeyword/SealedCaseObjectsAsEnum.scala similarity index 100% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/sealedkeyword/SealedCaseObjectsAsEnum.scala rename to scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/sealedkeyword/SealedCaseObjectsAsEnum.scala diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/sealedkeyword/SealedClassExample.scala b/scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/sealedkeyword/SealedClassExample.scala similarity index 100% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/sealedkeyword/SealedClassExample.scala rename to scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/sealedkeyword/SealedClassExample.scala diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/sealedkeyword/SelaedExtendedDifferentFile.scala b/scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/sealedkeyword/SelaedExtendedDifferentFile.scala similarity index 100% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/sealedkeyword/SelaedExtendedDifferentFile.scala rename to scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/sealedkeyword/SelaedExtendedDifferentFile.scala diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/traits/Composition.scala b/scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/traits/Composition.scala similarity index 100% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/traits/Composition.scala rename to scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/traits/Composition.scala diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/traits/Mixing.scala b/scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/traits/Mixing.scala similarity index 100% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/traits/Mixing.scala rename to scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/traits/Mixing.scala diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/traits/MixingAlgorithm.scala b/scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/traits/MixingAlgorithm.scala similarity index 100% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/traits/MixingAlgorithm.scala rename to scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/traits/MixingAlgorithm.scala diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/traits/Orchestration.scala b/scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/traits/Orchestration.scala similarity index 100% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/traits/Orchestration.scala rename to scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/traits/Orchestration.scala diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/traits/RecordLabel.scala b/scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/traits/RecordLabel.scala similarity index 100% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/traits/RecordLabel.scala rename to scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/traits/RecordLabel.scala diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/traits/Score.scala b/scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/traits/Score.scala similarity index 93% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/traits/Score.scala rename to scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/traits/Score.scala index f6580baa1..e400c9fbc 100644 --- a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/traits/Score.scala +++ b/scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/traits/Score.scala @@ -18,7 +18,7 @@ class Score( override def produce(): String = s"The score is produced by $engineer" - override def algorithm(): MixingAlgorithm = { + override def algorithm: MixingAlgorithm = { if (qualityRatio < 3) LowInstrumentalQuality else super.algorithm } diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/traits/SoundProduction.scala b/scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/traits/SoundProduction.scala similarity index 100% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/traits/SoundProduction.scala rename to scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/traits/SoundProduction.scala diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/traits/Vocals.scala b/scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/traits/Vocals.scala similarity index 100% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/traits/Vocals.scala rename to scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/traits/Vocals.scala diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/tuples/Tuples.scala b/scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/tuples/Tuples.scala similarity index 100% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/tuples/Tuples.scala rename to scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/tuples/Tuples.scala diff --git a/scala-core-modules/scala-core/src/test/scala-2/com/baeldung/scala/forloop/ForLoopUnitTest.scala b/scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/forloop/ForLoopUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core/src/test/scala-2/com/baeldung/scala/forloop/ForLoopUnitTest.scala rename to scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/forloop/ForLoopUnitTest.scala diff --git a/scala-core-modules/scala-core/src/test/scala-2/com/baeldung/scala/higherorder/HigherOrderFunctionsExamplesUnitTest.scala b/scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/higherorder/HigherOrderFunctionsExamplesUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core/src/test/scala-2/com/baeldung/scala/higherorder/HigherOrderFunctionsExamplesUnitTest.scala rename to scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/higherorder/HigherOrderFunctionsExamplesUnitTest.scala diff --git a/scala-core-modules/scala-core/src/test/scala-2/com/baeldung/scala/higherorder/HigherOrderFunctionsUnitTest.scala b/scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/higherorder/HigherOrderFunctionsUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core/src/test/scala-2/com/baeldung/scala/higherorder/HigherOrderFunctionsUnitTest.scala rename to scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/higherorder/HigherOrderFunctionsUnitTest.scala diff --git a/scala-core-modules/scala-core/src/test/scala-2/com/baeldung/scala/lazyval/LazyValUnitTest.scala b/scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/lazyval/LazyValUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core/src/test/scala-2/com/baeldung/scala/lazyval/LazyValUnitTest.scala rename to scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/lazyval/LazyValUnitTest.scala diff --git a/scala-core-modules/scala-core/src/test/scala-2/com/baeldung/scala/partialfunctions/SquareRootUnitTest.scala b/scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/partialfunctions/SquareRootUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core/src/test/scala-2/com/baeldung/scala/partialfunctions/SquareRootUnitTest.scala rename to scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/partialfunctions/SquareRootUnitTest.scala diff --git a/scala-core-modules/scala-core/src/test/scala-2/com/baeldung/scala/partialfunctions/SwapIntegerSignUnitTest.scala b/scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/partialfunctions/SwapIntegerSignUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core/src/test/scala-2/com/baeldung/scala/partialfunctions/SwapIntegerSignUnitTest.scala rename to scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/partialfunctions/SwapIntegerSignUnitTest.scala diff --git a/scala-core-modules/scala-core/src/test/scala-2/com/baeldung/scala/patternmatching/PatternMatchingUnitTest.scala b/scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/patternmatching/PatternMatchingUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core/src/test/scala-2/com/baeldung/scala/patternmatching/PatternMatchingUnitTest.scala rename to scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/patternmatching/PatternMatchingUnitTest.scala diff --git a/scala-core-modules/scala-core/src/test/scala-2/com/baeldung/scala/traits/ScoreUnitTest.scala b/scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/traits/ScoreUnitTest.scala similarity index 94% rename from scala-core-modules/scala-core/src/test/scala-2/com/baeldung/scala/traits/ScoreUnitTest.scala rename to scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/traits/ScoreUnitTest.scala index 5ddea3678..2ab1a62ce 100644 --- a/scala-core-modules/scala-core/src/test/scala-2/com/baeldung/scala/traits/ScoreUnitTest.scala +++ b/scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/traits/ScoreUnitTest.scala @@ -46,7 +46,7 @@ class ScoreUnitTest { val studio = "Abbey Studios" val score = new Score(composer, engineer, orchestra, mixer, 1, studio) - assertEquals(score.algorithm().toString, "Low instrumental quality") + assertEquals(score.algorithm.toString, "Low instrumental quality") } @Test @@ -59,7 +59,7 @@ class ScoreUnitTest { val studio = "Abbey Studios" val score = new Score(composer, engineer, orchestra, mixer, 10, studio) - assertEquals(score.algorithm().toString, "High instrumental quality") + assertEquals(score.algorithm.toString, "High instrumental quality") } @Test diff --git a/scala-core-modules/scala-core/src/test/scala-2/com/baeldung/scala/tuples/TuplesUnitTest.scala b/scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/tuples/TuplesUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core/src/test/scala-2/com/baeldung/scala/tuples/TuplesUnitTest.scala rename to scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/tuples/TuplesUnitTest.scala diff --git a/scala-core-modules/scala2-core/README.md b/scala-core-modules/scala2-core/README.md index 3da9421ed..7956a5737 100644 --- a/scala-core-modules/scala2-core/README.md +++ b/scala-core-modules/scala2-core/README.md @@ -7,3 +7,5 @@ - [Introduction to Scala Macros](https://www.baeldung.com/scala/scala2-macros) - [Introduction to Macros in Scala 2](https://www.baeldung.com/scala/scala2-macros) - [Demystifying View and Context Bounds](https://www.baeldung.com/scala/view-context-bounds) +- [Introduction to Scala](https://www.baeldung.com/scala/scala-intro) +- [Exception Handling in Scala](https://www.baeldung.com/scala/exception-handling) \ No newline at end of file diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Calculator.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Calculator.scala similarity index 100% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Calculator.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Calculator.scala diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Examples.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Examples.scala similarity index 100% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Examples.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Examples.scala diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithEither.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithEither.scala similarity index 90% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithEither.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithEither.scala index bf85eec31..d705cb97b 100644 --- a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithEither.scala +++ b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithEither.scala @@ -1,10 +1,6 @@ package com.baeldung.scala.exceptionhandling -import com.baeldung.scala.exceptionhandling.LegacyErrors.{ - ResourceNotFound, - ServerError, - UserNotFound -} +import com.baeldung.scala.exceptionhandling.LegacyErrors._ import scala.util.{Failure, Success, Try} diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithMonadError.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithMonadError.scala similarity index 92% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithMonadError.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithMonadError.scala index ee1009207..d488150d2 100644 --- a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithMonadError.scala +++ b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithMonadError.scala @@ -3,11 +3,7 @@ package com.baeldung.scala.exceptionhandling import cats.MonadError import cats.syntax.flatMap._ import cats.syntax.functor._ -import com.baeldung.scala.exceptionhandling.LegacyErrors.{ - ResourceNotFound, - ServerError, - UserNotFound -} +import com.baeldung.scala.exceptionhandling.LegacyErrors._ import scala.util.{Failure, Success, Try} diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithOption.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithOption.scala similarity index 100% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithOption.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithOption.scala diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTry.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTry.scala similarity index 100% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTry.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTry.scala diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTryOption.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTryOption.scala similarity index 100% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTryOption.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTryOption.scala diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithValidated.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithValidated.scala similarity index 90% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithValidated.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithValidated.scala index 1dcce5aca..f476fb134 100644 --- a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithValidated.scala +++ b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithValidated.scala @@ -3,10 +3,7 @@ package com.baeldung.scala.exceptionhandling import cats.data.ValidatedNel import cats.syntax.apply._ import cats.syntax.validated._ -import com.baeldung.scala.exceptionhandling.ValidationErrors.{ - IllegalLogin, - IllegalPassword -} +import com.baeldung.scala.exceptionhandling.ValidationErrors._ object HandlingWithValidated { type InvalidOr[T] = ValidatedNel[ValidationErrors, T] diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyErrors.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyErrors.scala similarity index 100% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyErrors.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyErrors.scala diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyService.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyService.scala similarity index 100% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyService.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyService.scala diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Resource.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Resource.scala similarity index 100% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Resource.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Resource.scala diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Session.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Session.scala similarity index 100% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Session.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Session.scala diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/User.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/User.scala similarity index 100% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/User.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/User.scala diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/ValidationErrors.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/ValidationErrors.scala similarity index 100% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/ValidationErrors.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/ValidationErrors.scala diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/introduction/ControlStructuresDemo.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/introduction/ControlStructuresDemo.scala similarity index 100% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/introduction/ControlStructuresDemo.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/introduction/ControlStructuresDemo.scala diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/introduction/Employee.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/introduction/Employee.scala similarity index 100% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/introduction/Employee.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/introduction/Employee.scala diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/introduction/HelloWorld.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/introduction/HelloWorld.scala similarity index 100% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/introduction/HelloWorld.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/introduction/HelloWorld.scala diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/introduction/IntSet.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/introduction/IntSet.scala similarity index 100% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/introduction/IntSet.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/introduction/IntSet.scala diff --git a/scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/introduction/Utils.scala b/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/introduction/Utils.scala similarity index 100% rename from scala-core-modules/scala-core/src/main/scala-2/com/baeldung/scala/introduction/Utils.scala rename to scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/introduction/Utils.scala diff --git a/scala-core-modules/scala-core/src/test/scala-2/com/baeldung/scala/exceptionhandling/ExamplesUnitTest.scala b/scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/exceptionhandling/ExamplesUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core/src/test/scala-2/com/baeldung/scala/exceptionhandling/ExamplesUnitTest.scala rename to scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/exceptionhandling/ExamplesUnitTest.scala diff --git a/scala-core-modules/scala-core/src/test/scala-2/com/baeldung/scala/exceptionhandling/IdiomaticExceptionHandlingUnitTest.scala b/scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/exceptionhandling/IdiomaticExceptionHandlingUnitTest.scala similarity index 98% rename from scala-core-modules/scala-core/src/test/scala-2/com/baeldung/scala/exceptionhandling/IdiomaticExceptionHandlingUnitTest.scala rename to scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/exceptionhandling/IdiomaticExceptionHandlingUnitTest.scala index 573144130..f64fdc6f6 100644 --- a/scala-core-modules/scala-core/src/test/scala-2/com/baeldung/scala/exceptionhandling/IdiomaticExceptionHandlingUnitTest.scala +++ b/scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/exceptionhandling/IdiomaticExceptionHandlingUnitTest.scala @@ -2,15 +2,8 @@ package com.baeldung.scala.exceptionhandling import cats.data.NonEmptyList import cats.data.Validated.{Invalid, Valid} -import com.baeldung.scala.exceptionhandling.LegacyErrors.{ - ResourceNotFound, - ServerError, - UserNotFound -} -import com.baeldung.scala.exceptionhandling.ValidationErrors.{ - IllegalLogin, - IllegalPassword -} +import com.baeldung.scala.exceptionhandling.LegacyErrors._ +import com.baeldung.scala.exceptionhandling.ValidationErrors._ import org.scalatest.GivenWhenThen import org.scalatest.featurespec.AnyFeatureSpec import org.scalatest.matchers.should.Matchers diff --git a/scala-core-modules/scala-core/src/test/scala-2/com/baeldung/scala/introduction/ControlStructuresDemoUnitTest.scala b/scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/introduction/ControlStructuresDemoUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core/src/test/scala-2/com/baeldung/scala/introduction/ControlStructuresDemoUnitTest.scala rename to scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/introduction/ControlStructuresDemoUnitTest.scala diff --git a/scala-core-modules/scala-core/src/test/scala-2/com/baeldung/scala/introduction/EmployeeUnitTest.scala b/scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/introduction/EmployeeUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core/src/test/scala-2/com/baeldung/scala/introduction/EmployeeUnitTest.scala rename to scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/introduction/EmployeeUnitTest.scala diff --git a/scala-core-modules/scala-core/src/test/scala-2/com/baeldung/scala/introduction/IntSetUnitTest.scala b/scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/introduction/IntSetUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core/src/test/scala-2/com/baeldung/scala/introduction/IntSetUnitTest.scala rename to scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/introduction/IntSetUnitTest.scala diff --git a/scala-core-modules/scala-core/src/test/scala-2/com/baeldung/scala/introduction/UtilsUnitTest.scala b/scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/introduction/UtilsUnitTest.scala similarity index 87% rename from scala-core-modules/scala-core/src/test/scala-2/com/baeldung/scala/introduction/UtilsUnitTest.scala rename to scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/introduction/UtilsUnitTest.scala index 734ac08e7..432ff8782 100644 --- a/scala-core-modules/scala-core/src/test/scala-2/com/baeldung/scala/introduction/UtilsUnitTest.scala +++ b/scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/introduction/UtilsUnitTest.scala @@ -1,11 +1,6 @@ package com.baeldung.scala.introduction -import com.baeldung.scala.introduction.Utils.{ - average, - fibonacci, - power, - randomLessThan -} +import com.baeldung.scala.introduction.Utils._ import org.junit.Assert.{assertEquals, assertTrue} import org.junit.Test From 06405ceb0f0b8c4cb4db53932aba075cf37f7897 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 6 Dec 2023 21:31:42 +0100 Subject: [PATCH 0197/1318] Tuple test fixed --- .../scala/com/baeldung/scala/tuples/TuplesUnitTest.scala | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/tuples/TuplesUnitTest.scala b/scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/tuples/TuplesUnitTest.scala index 0558b7b51..22a66a3a0 100644 --- a/scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/tuples/TuplesUnitTest.scala +++ b/scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/tuples/TuplesUnitTest.scala @@ -16,8 +16,9 @@ class TuplesUnitTest extends AnyWordSpec with Matchers { name shouldBe "Joe" age shouldBe 34 } - "not contain more then 22 elements" in { - "(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)" shouldNot compile + // From Scala3 onwards, we can have more than 22 fields in tuple. + "allow more then 22 elements in Scala 3" in { + "(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)" should compile } } } From 63c11a6a338dbc3beb6467e9d1dac467b18229ab Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Thu, 7 Dec 2023 19:32:02 +0100 Subject: [PATCH 0198/1318] Moved doobie article to scala3-library module --- build.sbt | 4 +++- doobie/README.md | 3 --- scala3-libraries/README.md | 1 + .../src/main/scala/com/baledung}/doobie/DoobieFragments.scala | 2 +- .../main/scala/com/baledung}/doobie/DoobieQuickStart.scala | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) delete mode 100644 doobie/README.md rename {doobie/src/main/scala/com/baeldung/scala => scala3-libraries/src/main/scala/com/baledung}/doobie/DoobieFragments.scala (96%) rename {doobie/src/main/scala/com/baeldung/scala => scala3-libraries/src/main/scala/com/baledung}/doobie/DoobieQuickStart.scala (98%) diff --git a/build.sbt b/build.sbt index 8ab5c852c..5ef0e677c 100644 --- a/build.sbt +++ b/build.sbt @@ -559,7 +559,9 @@ lazy val scala3_libraries = (project in file("scala3-libraries")) name := "scala3-libraries", libraryDependencies ++= Seq( "com.github.japgolly.clearconfig" %% "core" % "3.1.0", - "org.scalameta" %% "munit" % "0.7.29" % Test + "org.scalameta" %% "munit" % "0.7.29" % Test, + "org.tpolecat" %% "doobie-core" % "1.0.0-RC2", + "org.tpolecat" %% "doobie-postgres" % "1.0.0-RC2" ) ) diff --git a/doobie/README.md b/doobie/README.md deleted file mode 100644 index aeb6d1b89..000000000 --- a/doobie/README.md +++ /dev/null @@ -1,3 +0,0 @@ -### Relevant Articles: - -- [Introduction to doobie – a JDBC Layer for Scala](https://www.baeldung.com/scala/doobie-intro) diff --git a/scala3-libraries/README.md b/scala3-libraries/README.md index 2d4c63290..b9ca985ce 100644 --- a/scala3-libraries/README.md +++ b/scala3-libraries/README.md @@ -2,3 +2,4 @@ ### Relevant Articles: - [Scala App Configurations With Clarity Using ClearConfig](https://www.baeldung.com/scala/clearconfig) - [Introduction to MUnit](https://www.baeldung.com/scala/munit-introduction) +- [Introduction to doobie – a JDBC Layer for Scala](https://www.baeldung.com/scala/doobie-intro) \ No newline at end of file diff --git a/doobie/src/main/scala/com/baeldung/scala/doobie/DoobieFragments.scala b/scala3-libraries/src/main/scala/com/baledung/doobie/DoobieFragments.scala similarity index 96% rename from doobie/src/main/scala/com/baeldung/scala/doobie/DoobieFragments.scala rename to scala3-libraries/src/main/scala/com/baledung/doobie/DoobieFragments.scala index a4b533db2..9017794ae 100644 --- a/doobie/src/main/scala/com/baeldung/scala/doobie/DoobieFragments.scala +++ b/scala3-libraries/src/main/scala/com/baledung/doobie/DoobieFragments.scala @@ -1,4 +1,4 @@ -package com.baeldung.scala.doobie +package com.baledung.doobie import cats.effect.{IO, IOApp} import doobie.implicits._ diff --git a/doobie/src/main/scala/com/baeldung/scala/doobie/DoobieQuickStart.scala b/scala3-libraries/src/main/scala/com/baledung/doobie/DoobieQuickStart.scala similarity index 98% rename from doobie/src/main/scala/com/baeldung/scala/doobie/DoobieQuickStart.scala rename to scala3-libraries/src/main/scala/com/baledung/doobie/DoobieQuickStart.scala index 59f06af86..8831d8ab5 100644 --- a/doobie/src/main/scala/com/baeldung/scala/doobie/DoobieQuickStart.scala +++ b/scala3-libraries/src/main/scala/com/baledung/doobie/DoobieQuickStart.scala @@ -1,4 +1,4 @@ -package com.baeldung.scala.doobie +package com.baledung.doobie import cats.effect.{IO, IOApp} import doobie.implicits._ From 8848c459a82f54d6f49b3a168eaab909bcc18b15 Mon Sep 17 00:00:00 2001 From: edizor <113095366+edizor@users.noreply.github.com> Date: Fri, 8 Dec 2023 03:28:49 +0800 Subject: [PATCH 0199/1318] Update README.md [skip ci] --- scala-core-modules/scala-core-8/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-core-modules/scala-core-8/README.md b/scala-core-modules/scala-core-8/README.md index 3819082f4..517f634a7 100644 --- a/scala-core-modules/scala-core-8/README.md +++ b/scala-core-modules/scala-core-8/README.md @@ -4,3 +4,4 @@ - [The Either Type in Scala](https://www.baeldung.com/scala/either-type) - [Understanding the Differences: reduceLeft, reduceRight, foldLeft, foldRight, scanLeft, and scanRight in Scala](https://www.baeldung.com/scala/reduce-fold-scan-left-right) - [Different Ways to Reverse a Sequence in Scala](https://www.baeldung.com/scala/reverse-sequence) +- [Generate List of Dates Between a Range in Scala](https://www.baeldung.com/scala/date-range-list) From 7c96567123c93fd65cc592ee561d617d1f50e35f Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Thu, 7 Dec 2023 21:28:26 +0100 Subject: [PATCH 0200/1318] Upgraded scala-python to use Scla 3 --- build.sbt | 5 +++-- project/plugins.sbt | 2 +- .../com/baeldung/scalapy/ScalaPySample.scala | 0 3 files changed, 4 insertions(+), 3 deletions(-) rename scala-python/src/main/{scala-2 => scala}/com/baeldung/scalapy/ScalaPySample.scala (100%) diff --git a/build.sbt b/build.sbt index 5ef0e677c..05a7872ea 100644 --- a/build.sbt +++ b/build.sbt @@ -542,8 +542,9 @@ lazy val doobie = (project in file("doobie")) // lazy val scala_python = (project in file("scala-python")) // .settings( // name := "scala-python", -// libraryDependencies += "me.shadaj" %% "scalapy-core" % "0.5.2", -// fork := true +// libraryDependencies += "dev.scalapy" %%% "scalapy-core" % "0.5.3", +// fork := true, +// scalaVersion := scala3Version // ) lazy val reflection = (project in file("reflection")) diff --git a/project/plugins.sbt b/project/plugins.sbt index 78df7b3cb..2da53bf4d 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,6 +1,6 @@ addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.0") -addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.4.10") +addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.4.16") addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.13.0") addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.2.1") diff --git a/scala-python/src/main/scala-2/com/baeldung/scalapy/ScalaPySample.scala b/scala-python/src/main/scala/com/baeldung/scalapy/ScalaPySample.scala similarity index 100% rename from scala-python/src/main/scala-2/com/baeldung/scalapy/ScalaPySample.scala rename to scala-python/src/main/scala/com/baeldung/scalapy/ScalaPySample.scala From a4284139bf33e447874d75f95905c655422cda02 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 8 Dec 2023 10:35:58 +0100 Subject: [PATCH 0201/1318] Removed scalamock from scalatest and upgraded to scala 3 --- build.sbt | 4 ++-- .../scala/assertions/CurrencyDSL.scala | 0 .../scala/bddtesting/BankAccount.scala | 0 .../scalatest/mockito/InventoryService.scala | 0 .../mockito/InventoryTransactionDao.scala | 0 .../scala/scalatest/mockito/Models.scala | 0 .../scalatest/.scala-build/ide-inputs.json | 1 - .../.scala-build/ide-options-v2.json | 1 - .../scalatest/ScalaMockFlatSpecUnitTest.scala | 19 ------------------- .../scala/assertions/AssertionsTests.scala | 0 .../scala/assertions/CurrencyTests.scala | 0 .../scala/bddtesting/BDDBankUnitTest.scala | 0 .../ExampleFlatSpecWithMatchersUnitTest.scala | 0 .../scala/scalatest/IfCompilesTest.scala | 0 .../scalatest/ListFlatSpecUnitTest.scala | 0 .../scala/scalatest/ListFunSpecUnitTest.scala | 0 .../scala/scalatest/ListFunSuite.scala | 0 ...ngFlatSpecWithBeforeAndAfterUnitTest.scala | 0 .../scalatest/TaggedFlatSpecUnitTest.scala | 0 .../collectiontest/CollectionTest.scala | 4 ++-- .../scalatest/collectiontest/Models.scala | 0 .../mockito/InventoryServiceTest.scala | 0 .../runner/ScalaTestRunnerTests.scala | 0 ...eInsensitiveStringComparisonUnitTest.scala | 0 24 files changed, 4 insertions(+), 25 deletions(-) rename scala-test/src/main/{scala-2 => scala}/com/baeldung/scala/assertions/CurrencyDSL.scala (100%) rename scala-test/src/main/{scala-2 => scala}/com/baeldung/scala/bddtesting/BankAccount.scala (100%) rename scala-test/src/main/{scala-2 => scala}/com/baeldung/scala/scalatest/mockito/InventoryService.scala (100%) rename scala-test/src/main/{scala-2 => scala}/com/baeldung/scala/scalatest/mockito/InventoryTransactionDao.scala (100%) rename scala-test/src/main/{scala-2 => scala}/com/baeldung/scala/scalatest/mockito/Models.scala (100%) delete mode 100644 scala-test/src/test/scala-2/com/baeldung/scala/scalatest/.scala-build/ide-inputs.json delete mode 100644 scala-test/src/test/scala-2/com/baeldung/scala/scalatest/.scala-build/ide-options-v2.json delete mode 100644 scala-test/src/test/scala-2/com/baeldung/scala/scalatest/ScalaMockFlatSpecUnitTest.scala rename scala-test/src/test/{scala-2 => scala}/com/baeldung/scala/assertions/AssertionsTests.scala (100%) rename scala-test/src/test/{scala-2 => scala}/com/baeldung/scala/assertions/CurrencyTests.scala (100%) rename scala-test/src/test/{scala-2 => scala}/com/baeldung/scala/bddtesting/BDDBankUnitTest.scala (100%) rename scala-test/src/test/{scala-2 => scala}/com/baeldung/scala/scalatest/ExampleFlatSpecWithMatchersUnitTest.scala (100%) rename scala-test/src/test/{scala-2 => scala}/com/baeldung/scala/scalatest/IfCompilesTest.scala (100%) rename scala-test/src/test/{scala-2 => scala}/com/baeldung/scala/scalatest/ListFlatSpecUnitTest.scala (100%) rename scala-test/src/test/{scala-2 => scala}/com/baeldung/scala/scalatest/ListFunSpecUnitTest.scala (100%) rename scala-test/src/test/{scala-2 => scala}/com/baeldung/scala/scalatest/ListFunSuite.scala (100%) rename scala-test/src/test/{scala-2 => scala}/com/baeldung/scala/scalatest/StringFlatSpecWithBeforeAndAfterUnitTest.scala (100%) rename scala-test/src/test/{scala-2 => scala}/com/baeldung/scala/scalatest/TaggedFlatSpecUnitTest.scala (100%) rename scala-test/src/test/{scala-2 => scala}/com/baeldung/scala/scalatest/collectiontest/CollectionTest.scala (96%) rename scala-test/src/test/{scala-2 => scala}/com/baeldung/scala/scalatest/collectiontest/Models.scala (100%) rename scala-test/src/test/{scala-2 => scala}/com/baeldung/scala/scalatest/mockito/InventoryServiceTest.scala (100%) rename scala-test/src/test/{scala-2 => scala}/com/baeldung/scala/scalatest/runner/ScalaTestRunnerTests.scala (100%) rename scala-test/src/test/{scala-2 => scala}/com/baeldung/scala/scalatest/stringtest/CaseInsensitiveStringComparisonUnitTest.scala (100%) diff --git a/build.sbt b/build.sbt index 05a7872ea..3bedf458c 100644 --- a/build.sbt +++ b/build.sbt @@ -194,11 +194,11 @@ lazy val scala_core_map = lazy val scala_test = (project in file("scala-test")) .settings( name := "scala-test", + scalaVersion := scala3Version, libraryDependencies ++= Seq( "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % Test, - jUnitInterface, - scalaMock + jUnitInterface ) ++ scalaTestDeps ) diff --git a/scala-test/src/main/scala-2/com/baeldung/scala/assertions/CurrencyDSL.scala b/scala-test/src/main/scala/com/baeldung/scala/assertions/CurrencyDSL.scala similarity index 100% rename from scala-test/src/main/scala-2/com/baeldung/scala/assertions/CurrencyDSL.scala rename to scala-test/src/main/scala/com/baeldung/scala/assertions/CurrencyDSL.scala diff --git a/scala-test/src/main/scala-2/com/baeldung/scala/bddtesting/BankAccount.scala b/scala-test/src/main/scala/com/baeldung/scala/bddtesting/BankAccount.scala similarity index 100% rename from scala-test/src/main/scala-2/com/baeldung/scala/bddtesting/BankAccount.scala rename to scala-test/src/main/scala/com/baeldung/scala/bddtesting/BankAccount.scala diff --git a/scala-test/src/main/scala-2/com/baeldung/scala/scalatest/mockito/InventoryService.scala b/scala-test/src/main/scala/com/baeldung/scala/scalatest/mockito/InventoryService.scala similarity index 100% rename from scala-test/src/main/scala-2/com/baeldung/scala/scalatest/mockito/InventoryService.scala rename to scala-test/src/main/scala/com/baeldung/scala/scalatest/mockito/InventoryService.scala diff --git a/scala-test/src/main/scala-2/com/baeldung/scala/scalatest/mockito/InventoryTransactionDao.scala b/scala-test/src/main/scala/com/baeldung/scala/scalatest/mockito/InventoryTransactionDao.scala similarity index 100% rename from scala-test/src/main/scala-2/com/baeldung/scala/scalatest/mockito/InventoryTransactionDao.scala rename to scala-test/src/main/scala/com/baeldung/scala/scalatest/mockito/InventoryTransactionDao.scala diff --git a/scala-test/src/main/scala-2/com/baeldung/scala/scalatest/mockito/Models.scala b/scala-test/src/main/scala/com/baeldung/scala/scalatest/mockito/Models.scala similarity index 100% rename from scala-test/src/main/scala-2/com/baeldung/scala/scalatest/mockito/Models.scala rename to scala-test/src/main/scala/com/baeldung/scala/scalatest/mockito/Models.scala diff --git a/scala-test/src/test/scala-2/com/baeldung/scala/scalatest/.scala-build/ide-inputs.json b/scala-test/src/test/scala-2/com/baeldung/scala/scalatest/.scala-build/ide-inputs.json deleted file mode 100644 index b716a44b0..000000000 --- a/scala-test/src/test/scala-2/com/baeldung/scala/scalatest/.scala-build/ide-inputs.json +++ /dev/null @@ -1 +0,0 @@ -{"args":["/home/mboizi/Documents/code/scala/scala-tutorials/scala-test/src/test/scala-2/com/baeldung/scala/scalatest"]} \ No newline at end of file diff --git a/scala-test/src/test/scala-2/com/baeldung/scala/scalatest/.scala-build/ide-options-v2.json b/scala-test/src/test/scala-2/com/baeldung/scala/scalatest/.scala-build/ide-options-v2.json deleted file mode 100644 index 9e26dfeeb..000000000 --- a/scala-test/src/test/scala-2/com/baeldung/scala/scalatest/.scala-build/ide-options-v2.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/scala-test/src/test/scala-2/com/baeldung/scala/scalatest/ScalaMockFlatSpecUnitTest.scala b/scala-test/src/test/scala-2/com/baeldung/scala/scalatest/ScalaMockFlatSpecUnitTest.scala deleted file mode 100644 index 6da769be5..000000000 --- a/scala-test/src/test/scala-2/com/baeldung/scala/scalatest/ScalaMockFlatSpecUnitTest.scala +++ /dev/null @@ -1,19 +0,0 @@ -package com.baeldung.scala.scalatest - -import org.scalamock.scalatest.MockFactory -import org.scalatest.flatspec.AnyFlatSpec -import org.scalatest.matchers.should.Matchers - -class ScalaMockFlatSpec extends AnyFlatSpec with MockFactory with Matchers { - - "A mocked Foo" should "return a mocked bar value" in { - val mockFoo = mock[Foo] - (mockFoo.bar _).expects().returning(6) - - mockFoo.bar should be(6) - } -} - -class Foo { - def bar = 100 -} diff --git a/scala-test/src/test/scala-2/com/baeldung/scala/assertions/AssertionsTests.scala b/scala-test/src/test/scala/com/baeldung/scala/assertions/AssertionsTests.scala similarity index 100% rename from scala-test/src/test/scala-2/com/baeldung/scala/assertions/AssertionsTests.scala rename to scala-test/src/test/scala/com/baeldung/scala/assertions/AssertionsTests.scala diff --git a/scala-test/src/test/scala-2/com/baeldung/scala/assertions/CurrencyTests.scala b/scala-test/src/test/scala/com/baeldung/scala/assertions/CurrencyTests.scala similarity index 100% rename from scala-test/src/test/scala-2/com/baeldung/scala/assertions/CurrencyTests.scala rename to scala-test/src/test/scala/com/baeldung/scala/assertions/CurrencyTests.scala diff --git a/scala-test/src/test/scala-2/com/baeldung/scala/bddtesting/BDDBankUnitTest.scala b/scala-test/src/test/scala/com/baeldung/scala/bddtesting/BDDBankUnitTest.scala similarity index 100% rename from scala-test/src/test/scala-2/com/baeldung/scala/bddtesting/BDDBankUnitTest.scala rename to scala-test/src/test/scala/com/baeldung/scala/bddtesting/BDDBankUnitTest.scala diff --git a/scala-test/src/test/scala-2/com/baeldung/scala/scalatest/ExampleFlatSpecWithMatchersUnitTest.scala b/scala-test/src/test/scala/com/baeldung/scala/scalatest/ExampleFlatSpecWithMatchersUnitTest.scala similarity index 100% rename from scala-test/src/test/scala-2/com/baeldung/scala/scalatest/ExampleFlatSpecWithMatchersUnitTest.scala rename to scala-test/src/test/scala/com/baeldung/scala/scalatest/ExampleFlatSpecWithMatchersUnitTest.scala diff --git a/scala-test/src/test/scala-2/com/baeldung/scala/scalatest/IfCompilesTest.scala b/scala-test/src/test/scala/com/baeldung/scala/scalatest/IfCompilesTest.scala similarity index 100% rename from scala-test/src/test/scala-2/com/baeldung/scala/scalatest/IfCompilesTest.scala rename to scala-test/src/test/scala/com/baeldung/scala/scalatest/IfCompilesTest.scala diff --git a/scala-test/src/test/scala-2/com/baeldung/scala/scalatest/ListFlatSpecUnitTest.scala b/scala-test/src/test/scala/com/baeldung/scala/scalatest/ListFlatSpecUnitTest.scala similarity index 100% rename from scala-test/src/test/scala-2/com/baeldung/scala/scalatest/ListFlatSpecUnitTest.scala rename to scala-test/src/test/scala/com/baeldung/scala/scalatest/ListFlatSpecUnitTest.scala diff --git a/scala-test/src/test/scala-2/com/baeldung/scala/scalatest/ListFunSpecUnitTest.scala b/scala-test/src/test/scala/com/baeldung/scala/scalatest/ListFunSpecUnitTest.scala similarity index 100% rename from scala-test/src/test/scala-2/com/baeldung/scala/scalatest/ListFunSpecUnitTest.scala rename to scala-test/src/test/scala/com/baeldung/scala/scalatest/ListFunSpecUnitTest.scala diff --git a/scala-test/src/test/scala-2/com/baeldung/scala/scalatest/ListFunSuite.scala b/scala-test/src/test/scala/com/baeldung/scala/scalatest/ListFunSuite.scala similarity index 100% rename from scala-test/src/test/scala-2/com/baeldung/scala/scalatest/ListFunSuite.scala rename to scala-test/src/test/scala/com/baeldung/scala/scalatest/ListFunSuite.scala diff --git a/scala-test/src/test/scala-2/com/baeldung/scala/scalatest/StringFlatSpecWithBeforeAndAfterUnitTest.scala b/scala-test/src/test/scala/com/baeldung/scala/scalatest/StringFlatSpecWithBeforeAndAfterUnitTest.scala similarity index 100% rename from scala-test/src/test/scala-2/com/baeldung/scala/scalatest/StringFlatSpecWithBeforeAndAfterUnitTest.scala rename to scala-test/src/test/scala/com/baeldung/scala/scalatest/StringFlatSpecWithBeforeAndAfterUnitTest.scala diff --git a/scala-test/src/test/scala-2/com/baeldung/scala/scalatest/TaggedFlatSpecUnitTest.scala b/scala-test/src/test/scala/com/baeldung/scala/scalatest/TaggedFlatSpecUnitTest.scala similarity index 100% rename from scala-test/src/test/scala-2/com/baeldung/scala/scalatest/TaggedFlatSpecUnitTest.scala rename to scala-test/src/test/scala/com/baeldung/scala/scalatest/TaggedFlatSpecUnitTest.scala diff --git a/scala-test/src/test/scala-2/com/baeldung/scala/scalatest/collectiontest/CollectionTest.scala b/scala-test/src/test/scala/com/baeldung/scala/scalatest/collectiontest/CollectionTest.scala similarity index 96% rename from scala-test/src/test/scala-2/com/baeldung/scala/scalatest/collectiontest/CollectionTest.scala rename to scala-test/src/test/scala/com/baeldung/scala/scalatest/collectiontest/CollectionTest.scala index e50256ed2..75ca6f862 100644 --- a/scala-test/src/test/scala-2/com/baeldung/scala/scalatest/collectiontest/CollectionTest.scala +++ b/scala-test/src/test/scala/com/baeldung/scala/scalatest/collectiontest/CollectionTest.scala @@ -73,8 +73,8 @@ class CollectionTest extends AnyFlatSpec with Matchers { val cities2 = List("Barcelona", "Hamburg") Random.shuffle(cities) should contain theSameElementsAs (cities2) cities shouldBe cities2 - cities ++ cities should contain only (cities2: _*) // but duplicates are allowed - cities should contain only (cities2: _*) + cities ++ cities should contain only cities2 // but duplicates are allowed + cities should contain only cities2 } it should "pass if both collections contains exactly same elements in same order" in { diff --git a/scala-test/src/test/scala-2/com/baeldung/scala/scalatest/collectiontest/Models.scala b/scala-test/src/test/scala/com/baeldung/scala/scalatest/collectiontest/Models.scala similarity index 100% rename from scala-test/src/test/scala-2/com/baeldung/scala/scalatest/collectiontest/Models.scala rename to scala-test/src/test/scala/com/baeldung/scala/scalatest/collectiontest/Models.scala diff --git a/scala-test/src/test/scala-2/com/baeldung/scala/scalatest/mockito/InventoryServiceTest.scala b/scala-test/src/test/scala/com/baeldung/scala/scalatest/mockito/InventoryServiceTest.scala similarity index 100% rename from scala-test/src/test/scala-2/com/baeldung/scala/scalatest/mockito/InventoryServiceTest.scala rename to scala-test/src/test/scala/com/baeldung/scala/scalatest/mockito/InventoryServiceTest.scala diff --git a/scala-test/src/test/scala-2/com/baeldung/scala/scalatest/runner/ScalaTestRunnerTests.scala b/scala-test/src/test/scala/com/baeldung/scala/scalatest/runner/ScalaTestRunnerTests.scala similarity index 100% rename from scala-test/src/test/scala-2/com/baeldung/scala/scalatest/runner/ScalaTestRunnerTests.scala rename to scala-test/src/test/scala/com/baeldung/scala/scalatest/runner/ScalaTestRunnerTests.scala diff --git a/scala-test/src/test/scala-2/com/baeldung/scala/scalatest/stringtest/CaseInsensitiveStringComparisonUnitTest.scala b/scala-test/src/test/scala/com/baeldung/scala/scalatest/stringtest/CaseInsensitiveStringComparisonUnitTest.scala similarity index 100% rename from scala-test/src/test/scala-2/com/baeldung/scala/scalatest/stringtest/CaseInsensitiveStringComparisonUnitTest.scala rename to scala-test/src/test/scala/com/baeldung/scala/scalatest/stringtest/CaseInsensitiveStringComparisonUnitTest.scala From 69b276ace867edd3c0db949b4eadc656559ea737 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 8 Dec 2023 13:19:42 +0100 Subject: [PATCH 0202/1318] Fixed test for scalatest matchers --- .../scala/scalatest/collectiontest/CollectionTest.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-test/src/test/scala/com/baeldung/scala/scalatest/collectiontest/CollectionTest.scala b/scala-test/src/test/scala/com/baeldung/scala/scalatest/collectiontest/CollectionTest.scala index 75ca6f862..28b24eee4 100644 --- a/scala-test/src/test/scala/com/baeldung/scala/scalatest/collectiontest/CollectionTest.scala +++ b/scala-test/src/test/scala/com/baeldung/scala/scalatest/collectiontest/CollectionTest.scala @@ -73,7 +73,7 @@ class CollectionTest extends AnyFlatSpec with Matchers { val cities2 = List("Barcelona", "Hamburg") Random.shuffle(cities) should contain theSameElementsAs (cities2) cities shouldBe cities2 - cities ++ cities should contain only cities2 // but duplicates are allowed + cities ++ cities should contain only ("Barcelona", "Hamburg") // but duplicates are allowed cities should contain only cities2 } From c412d72a595765406408674cb02cf7e408dc74a8 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 8 Dec 2023 13:44:25 +0100 Subject: [PATCH 0203/1318] Fixed test for scalatest matchers --- .../scala/scalatest/collectiontest/CollectionTest.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-test/src/test/scala/com/baeldung/scala/scalatest/collectiontest/CollectionTest.scala b/scala-test/src/test/scala/com/baeldung/scala/scalatest/collectiontest/CollectionTest.scala index 28b24eee4..aa2772f1f 100644 --- a/scala-test/src/test/scala/com/baeldung/scala/scalatest/collectiontest/CollectionTest.scala +++ b/scala-test/src/test/scala/com/baeldung/scala/scalatest/collectiontest/CollectionTest.scala @@ -74,7 +74,7 @@ class CollectionTest extends AnyFlatSpec with Matchers { Random.shuffle(cities) should contain theSameElementsAs (cities2) cities shouldBe cities2 cities ++ cities should contain only ("Barcelona", "Hamburg") // but duplicates are allowed - cities should contain only cities2 + cities should contain only ("Barcelona", "Hamburg") } it should "pass if both collections contains exactly same elements in same order" in { From c2235dda2954e09d35d58409eb03b9dc5e22e19f Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 8 Dec 2023 16:59:13 +0100 Subject: [PATCH 0204/1318] Moved scala-core-date to scala3 dir --- scala-core-modules/scala-core-8/README.md | 1 - scala-core-modules/scala-core-dates/README.md | 1 + .../com/baeldung/scala/date/DateParser.scala | 0 .../com/baeldung/scala/datesandtimes/JavaTime.scala | 1 + .../com/baeldung/scala/datesandtimes/JavaUtilDate.scala | 7 ++++--- .../com/baeldung/scala/datesandtimes/JodaTime.scala | 0 .../com/baeldung/scala/datesandtimes/NScalaTime.scala | 0 .../scala/differencedates/DifferenceBetweenDates.scala | 0 .../com/baeldung/scala/duration/JavaToScalaDuration.scala | 0 .../com/baeldung/scala/date/DateParserSpec.scala | 0 .../baeldung/scala/datesandtimes/JavaTimeUnitTest.scala | 0 .../scala/datesandtimes/JavaUtilDateUnitTest.scala | 0 .../baeldung/scala/datesandtimes/JodaTimeUnitTest.scala | 0 .../baeldung/scala/datesandtimes/NScalaTimeUnitTest.scala | 0 .../scala/differencedates/DifferenceBetweenDatesTest.scala | 0 .../com/baeldung/scala/duration/DurationTest.scala | 0 16 files changed, 6 insertions(+), 4 deletions(-) rename scala-core-modules/scala-core-dates/src/main/{scala-2 => scala}/com/baeldung/scala/date/DateParser.scala (100%) rename scala-core-modules/scala-core-dates/src/main/{scala-2 => scala}/com/baeldung/scala/datesandtimes/JavaTime.scala (99%) rename scala-core-modules/scala-core-dates/src/main/{scala-2 => scala}/com/baeldung/scala/datesandtimes/JavaUtilDate.scala (76%) rename scala-core-modules/scala-core-dates/src/main/{scala-2 => scala}/com/baeldung/scala/datesandtimes/JodaTime.scala (100%) rename scala-core-modules/scala-core-dates/src/main/{scala-2 => scala}/com/baeldung/scala/datesandtimes/NScalaTime.scala (100%) rename scala-core-modules/scala-core-dates/src/main/{scala-2 => scala}/com/baeldung/scala/differencedates/DifferenceBetweenDates.scala (100%) rename scala-core-modules/scala-core-dates/src/main/{scala-2 => scala}/com/baeldung/scala/duration/JavaToScalaDuration.scala (100%) rename scala-core-modules/scala-core-dates/src/test/{scala-2 => scala}/com/baeldung/scala/date/DateParserSpec.scala (100%) rename scala-core-modules/scala-core-dates/src/test/{scala-2 => scala}/com/baeldung/scala/datesandtimes/JavaTimeUnitTest.scala (100%) rename scala-core-modules/scala-core-dates/src/test/{scala-2 => scala}/com/baeldung/scala/datesandtimes/JavaUtilDateUnitTest.scala (100%) rename scala-core-modules/scala-core-dates/src/test/{scala-2 => scala}/com/baeldung/scala/datesandtimes/JodaTimeUnitTest.scala (100%) rename scala-core-modules/scala-core-dates/src/test/{scala-2 => scala}/com/baeldung/scala/datesandtimes/NScalaTimeUnitTest.scala (100%) rename scala-core-modules/scala-core-dates/src/test/{scala-2 => scala}/com/baeldung/scala/differencedates/DifferenceBetweenDatesTest.scala (100%) rename scala-core-modules/scala-core-dates/src/test/{scala-2 => scala}/com/baeldung/scala/duration/DurationTest.scala (100%) diff --git a/scala-core-modules/scala-core-8/README.md b/scala-core-modules/scala-core-8/README.md index 517f634a7..3819082f4 100644 --- a/scala-core-modules/scala-core-8/README.md +++ b/scala-core-modules/scala-core-8/README.md @@ -4,4 +4,3 @@ - [The Either Type in Scala](https://www.baeldung.com/scala/either-type) - [Understanding the Differences: reduceLeft, reduceRight, foldLeft, foldRight, scanLeft, and scanRight in Scala](https://www.baeldung.com/scala/reduce-fold-scan-left-right) - [Different Ways to Reverse a Sequence in Scala](https://www.baeldung.com/scala/reverse-sequence) -- [Generate List of Dates Between a Range in Scala](https://www.baeldung.com/scala/date-range-list) diff --git a/scala-core-modules/scala-core-dates/README.md b/scala-core-modules/scala-core-dates/README.md index df08f9428..49ae29293 100644 --- a/scala-core-modules/scala-core-dates/README.md +++ b/scala-core-modules/scala-core-dates/README.md @@ -9,3 +9,4 @@ This module contains articles about Scala's date features. - [Get Difference Between Two Dates](https://www.baeldung.com/scala/difference-between-two-dates) - [Convert Epoch Milliseconds to DateTime in Scala](https://www.baeldung.com/scala/epoch-milliseconds-datetime) - [Convert a String to Date in Scala](https://www.baeldung.com/scala/string-to-date) +- [Generate List of Dates Between a Range in Scala](https://www.baeldung.com/scala/date-range-list) diff --git a/scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/date/DateParser.scala b/scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/date/DateParser.scala similarity index 100% rename from scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/date/DateParser.scala rename to scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/date/DateParser.scala diff --git a/scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/datesandtimes/JavaTime.scala b/scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/datesandtimes/JavaTime.scala similarity index 99% rename from scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/datesandtimes/JavaTime.scala rename to scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/datesandtimes/JavaTime.scala index e02b91e10..e0310a30b 100644 --- a/scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/datesandtimes/JavaTime.scala +++ b/scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/datesandtimes/JavaTime.scala @@ -1,4 +1,5 @@ package com.baeldung.scala.datesandtimes + import java.time.LocalDate import java.time.format.DateTimeFormatter diff --git a/scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/datesandtimes/JavaUtilDate.scala b/scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/datesandtimes/JavaUtilDate.scala similarity index 76% rename from scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/datesandtimes/JavaUtilDate.scala rename to scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/datesandtimes/JavaUtilDate.scala index 7aaacd543..c779f2d82 100644 --- a/scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/datesandtimes/JavaUtilDate.scala +++ b/scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/datesandtimes/JavaUtilDate.scala @@ -1,11 +1,12 @@ package com.baeldung.scala.datesandtimes + import java.text.SimpleDateFormat import scala.concurrent.duration.Duration -import scala.concurrent.{Await, Future} +import scala.concurrent.{Await, ExecutionContext, Future} object JavaUtilDate extends App { - implicit val ec = scala.concurrent.ExecutionContext.Implicits.global + implicit val ec: ExecutionContext = scala.concurrent.ExecutionContext.Implicits.global val format: ThreadLocal[SimpleDateFormat] = new ThreadLocal[SimpleDateFormat] { @@ -31,5 +32,5 @@ object JavaUtilDate extends App { val date1 = Await.result(r1, Duration.Inf) val date2 = Await.result(r2, Duration.Inf) - println(date1 + ", " + date2) // Prints "Wed Jul 01 2020, Fri Aug 21 2020" + println(s"$date1, $date2") // Prints "Wed Jul 01 2020, Fri Aug 21 2020" } diff --git a/scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/datesandtimes/JodaTime.scala b/scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/datesandtimes/JodaTime.scala similarity index 100% rename from scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/datesandtimes/JodaTime.scala rename to scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/datesandtimes/JodaTime.scala diff --git a/scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/datesandtimes/NScalaTime.scala b/scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/datesandtimes/NScalaTime.scala similarity index 100% rename from scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/datesandtimes/NScalaTime.scala rename to scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/datesandtimes/NScalaTime.scala diff --git a/scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDates.scala b/scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/differencedates/DifferenceBetweenDates.scala similarity index 100% rename from scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDates.scala rename to scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/differencedates/DifferenceBetweenDates.scala diff --git a/scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/duration/JavaToScalaDuration.scala b/scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/duration/JavaToScalaDuration.scala similarity index 100% rename from scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/duration/JavaToScalaDuration.scala rename to scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/duration/JavaToScalaDuration.scala diff --git a/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/date/DateParserSpec.scala b/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/date/DateParserSpec.scala similarity index 100% rename from scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/date/DateParserSpec.scala rename to scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/date/DateParserSpec.scala diff --git a/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/datesandtimes/JavaTimeUnitTest.scala b/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/datesandtimes/JavaTimeUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/datesandtimes/JavaTimeUnitTest.scala rename to scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/datesandtimes/JavaTimeUnitTest.scala diff --git a/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/datesandtimes/JavaUtilDateUnitTest.scala b/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/datesandtimes/JavaUtilDateUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/datesandtimes/JavaUtilDateUnitTest.scala rename to scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/datesandtimes/JavaUtilDateUnitTest.scala diff --git a/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/datesandtimes/JodaTimeUnitTest.scala b/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/datesandtimes/JodaTimeUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/datesandtimes/JodaTimeUnitTest.scala rename to scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/datesandtimes/JodaTimeUnitTest.scala diff --git a/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/datesandtimes/NScalaTimeUnitTest.scala b/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/datesandtimes/NScalaTimeUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/datesandtimes/NScalaTimeUnitTest.scala rename to scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/datesandtimes/NScalaTimeUnitTest.scala diff --git a/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDatesTest.scala b/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/differencedates/DifferenceBetweenDatesTest.scala similarity index 100% rename from scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDatesTest.scala rename to scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/differencedates/DifferenceBetweenDatesTest.scala diff --git a/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/duration/DurationTest.scala b/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/duration/DurationTest.scala similarity index 100% rename from scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/duration/DurationTest.scala rename to scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/duration/DurationTest.scala From 5b03ff607ec122f2d0fb8d2d7d43676dd8d6c90c Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 8 Dec 2023 17:05:11 +0100 Subject: [PATCH 0205/1318] Sclafmt ran --- .../scala/com/baeldung/scala/datesandtimes/JavaUtilDate.scala | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/datesandtimes/JavaUtilDate.scala b/scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/datesandtimes/JavaUtilDate.scala index c779f2d82..7e4f11b58 100644 --- a/scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/datesandtimes/JavaUtilDate.scala +++ b/scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/datesandtimes/JavaUtilDate.scala @@ -6,7 +6,8 @@ import scala.concurrent.{Await, ExecutionContext, Future} object JavaUtilDate extends App { - implicit val ec: ExecutionContext = scala.concurrent.ExecutionContext.Implicits.global + implicit val ec: ExecutionContext = + scala.concurrent.ExecutionContext.Implicits.global val format: ThreadLocal[SimpleDateFormat] = new ThreadLocal[SimpleDateFormat] { From 4e734390ed61541cd87068e6592d953536777d61 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 8 Dec 2023 17:16:31 +0100 Subject: [PATCH 0206/1318] Scala-core-io migrated to scala 3 --- build.sbt | 4 ++-- .../com/baeldung/scala/FileDeletion.scala | 6 ------ .../com/baeldung/scala/io/FileDeletionTest.scala | 5 ----- .../com/baeldung/scala/io/SourceUnitTest.scala | 0 4 files changed, 2 insertions(+), 13 deletions(-) rename scala-core-modules/scala-core-io/src/main/{scala-2 => scala}/com/baeldung/scala/FileDeletion.scala (89%) rename scala-core-modules/scala-core-io/src/test/{scala-2 => scala}/com/baeldung/scala/io/FileDeletionTest.scala (88%) rename scala-core-modules/scala-core-io/src/test/{scala-2 => scala}/com/baeldung/scala/io/SourceUnitTest.scala (100%) diff --git a/build.sbt b/build.sbt index 8ab5c852c..caa233993 100644 --- a/build.sbt +++ b/build.sbt @@ -111,9 +111,9 @@ lazy val scala_core_8 = (project in file("scala-core-modules/scala-core-8")) lazy val scala_core_io = (project in file("scala-core-modules/scala-core-io")) .settings( name := "scala-core-io", + scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps, - libraryDependencies += jUnitInterface, - libraryDependencies += "org.scala-lang" % "scala-compiler" % scalaVersion.value + libraryDependencies += jUnitInterface ) lazy val scala_core_oop = (project in file("scala-core-modules/scala-core-oop")) diff --git a/scala-core-modules/scala-core-io/src/main/scala-2/com/baeldung/scala/FileDeletion.scala b/scala-core-modules/scala-core-io/src/main/scala/com/baeldung/scala/FileDeletion.scala similarity index 89% rename from scala-core-modules/scala-core-io/src/main/scala-2/com/baeldung/scala/FileDeletion.scala rename to scala-core-modules/scala-core-io/src/main/scala/com/baeldung/scala/FileDeletion.scala index 6c2a9ec91..0492080e2 100644 --- a/scala-core-modules/scala-core-io/src/main/scala-2/com/baeldung/scala/FileDeletion.scala +++ b/scala-core-modules/scala-core-io/src/main/scala/com/baeldung/scala/FileDeletion.scala @@ -6,12 +6,6 @@ import java.nio.file.{FileVisitResult, Files, Path, SimpleFileVisitor} import scala.reflect.io.Directory object FileDeletion { - - def deletePureScalaDeletion(path: String): Unit = { - new Directory(new File(path)) - .deleteRecursively() - } - def deleteRecursively(file: File): Unit = { if (file.isDirectory) { file.listFiles.foreach(deleteRecursively) diff --git a/scala-core-modules/scala-core-io/src/test/scala-2/com/baeldung/scala/io/FileDeletionTest.scala b/scala-core-modules/scala-core-io/src/test/scala/com/baeldung/scala/io/FileDeletionTest.scala similarity index 88% rename from scala-core-modules/scala-core-io/src/test/scala-2/com/baeldung/scala/io/FileDeletionTest.scala rename to scala-core-modules/scala-core-io/src/test/scala/com/baeldung/scala/io/FileDeletionTest.scala index 82356b131..1aaeae4fd 100644 --- a/scala-core-modules/scala-core-io/src/test/scala-2/com/baeldung/scala/io/FileDeletionTest.scala +++ b/scala-core-modules/scala-core-io/src/test/scala/com/baeldung/scala/io/FileDeletionTest.scala @@ -35,11 +35,6 @@ class FileDeletionTest assert(!new File(path).exists()) } - "delete with pure scala" should "delete all directory" in { - FileDeletion.deletePureScalaDeletion(path) - assert(!new File(path).exists()) - } - "delete recursively" should "delete all directory" in { FileDeletion.deleteRecursively(new File(path)) assert(!new File(path).exists()) diff --git a/scala-core-modules/scala-core-io/src/test/scala-2/com/baeldung/scala/io/SourceUnitTest.scala b/scala-core-modules/scala-core-io/src/test/scala/com/baeldung/scala/io/SourceUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-io/src/test/scala-2/com/baeldung/scala/io/SourceUnitTest.scala rename to scala-core-modules/scala-core-io/src/test/scala/com/baeldung/scala/io/SourceUnitTest.scala From 748ed5f9953a63c7ab63caae015badc0c67056bb Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 8 Dec 2023 17:23:03 +0100 Subject: [PATCH 0207/1318] reverted moving scala-core-date to scala directory --- scala-core-modules/scala-core-8/README.md | 1 + scala-core-modules/scala-core-dates/README.md | 1 - .../com/baeldung/scala/date/DateParser.scala | 0 .../com/baeldung/scala/datesandtimes/JavaTime.scala | 1 - .../com/baeldung/scala/datesandtimes/JavaUtilDate.scala | 8 +++----- .../com/baeldung/scala/datesandtimes/JodaTime.scala | 0 .../com/baeldung/scala/datesandtimes/NScalaTime.scala | 0 .../scala/differencedates/DifferenceBetweenDates.scala | 0 .../com/baeldung/scala/duration/JavaToScalaDuration.scala | 0 .../com/baeldung/scala/date/DateParserSpec.scala | 0 .../baeldung/scala/datesandtimes/JavaTimeUnitTest.scala | 0 .../scala/datesandtimes/JavaUtilDateUnitTest.scala | 0 .../baeldung/scala/datesandtimes/JodaTimeUnitTest.scala | 0 .../baeldung/scala/datesandtimes/NScalaTimeUnitTest.scala | 0 .../differencedates/DifferenceBetweenDatesTest.scala | 0 .../com/baeldung/scala/duration/DurationTest.scala | 0 16 files changed, 4 insertions(+), 7 deletions(-) rename scala-core-modules/scala-core-dates/src/main/{scala => scala-2}/com/baeldung/scala/date/DateParser.scala (100%) rename scala-core-modules/scala-core-dates/src/main/{scala => scala-2}/com/baeldung/scala/datesandtimes/JavaTime.scala (99%) rename scala-core-modules/scala-core-dates/src/main/{scala => scala-2}/com/baeldung/scala/datesandtimes/JavaUtilDate.scala (76%) rename scala-core-modules/scala-core-dates/src/main/{scala => scala-2}/com/baeldung/scala/datesandtimes/JodaTime.scala (100%) rename scala-core-modules/scala-core-dates/src/main/{scala => scala-2}/com/baeldung/scala/datesandtimes/NScalaTime.scala (100%) rename scala-core-modules/scala-core-dates/src/main/{scala => scala-2}/com/baeldung/scala/differencedates/DifferenceBetweenDates.scala (100%) rename scala-core-modules/scala-core-dates/src/main/{scala => scala-2}/com/baeldung/scala/duration/JavaToScalaDuration.scala (100%) rename scala-core-modules/scala-core-dates/src/test/{scala => scala-2}/com/baeldung/scala/date/DateParserSpec.scala (100%) rename scala-core-modules/scala-core-dates/src/test/{scala => scala-2}/com/baeldung/scala/datesandtimes/JavaTimeUnitTest.scala (100%) rename scala-core-modules/scala-core-dates/src/test/{scala => scala-2}/com/baeldung/scala/datesandtimes/JavaUtilDateUnitTest.scala (100%) rename scala-core-modules/scala-core-dates/src/test/{scala => scala-2}/com/baeldung/scala/datesandtimes/JodaTimeUnitTest.scala (100%) rename scala-core-modules/scala-core-dates/src/test/{scala => scala-2}/com/baeldung/scala/datesandtimes/NScalaTimeUnitTest.scala (100%) rename scala-core-modules/scala-core-dates/src/test/{scala => scala-2}/com/baeldung/scala/differencedates/DifferenceBetweenDatesTest.scala (100%) rename scala-core-modules/scala-core-dates/src/test/{scala => scala-2}/com/baeldung/scala/duration/DurationTest.scala (100%) diff --git a/scala-core-modules/scala-core-8/README.md b/scala-core-modules/scala-core-8/README.md index 3819082f4..517f634a7 100644 --- a/scala-core-modules/scala-core-8/README.md +++ b/scala-core-modules/scala-core-8/README.md @@ -4,3 +4,4 @@ - [The Either Type in Scala](https://www.baeldung.com/scala/either-type) - [Understanding the Differences: reduceLeft, reduceRight, foldLeft, foldRight, scanLeft, and scanRight in Scala](https://www.baeldung.com/scala/reduce-fold-scan-left-right) - [Different Ways to Reverse a Sequence in Scala](https://www.baeldung.com/scala/reverse-sequence) +- [Generate List of Dates Between a Range in Scala](https://www.baeldung.com/scala/date-range-list) diff --git a/scala-core-modules/scala-core-dates/README.md b/scala-core-modules/scala-core-dates/README.md index 49ae29293..df08f9428 100644 --- a/scala-core-modules/scala-core-dates/README.md +++ b/scala-core-modules/scala-core-dates/README.md @@ -9,4 +9,3 @@ This module contains articles about Scala's date features. - [Get Difference Between Two Dates](https://www.baeldung.com/scala/difference-between-two-dates) - [Convert Epoch Milliseconds to DateTime in Scala](https://www.baeldung.com/scala/epoch-milliseconds-datetime) - [Convert a String to Date in Scala](https://www.baeldung.com/scala/string-to-date) -- [Generate List of Dates Between a Range in Scala](https://www.baeldung.com/scala/date-range-list) diff --git a/scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/date/DateParser.scala b/scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/date/DateParser.scala similarity index 100% rename from scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/date/DateParser.scala rename to scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/date/DateParser.scala diff --git a/scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/datesandtimes/JavaTime.scala b/scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/datesandtimes/JavaTime.scala similarity index 99% rename from scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/datesandtimes/JavaTime.scala rename to scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/datesandtimes/JavaTime.scala index e0310a30b..e02b91e10 100644 --- a/scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/datesandtimes/JavaTime.scala +++ b/scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/datesandtimes/JavaTime.scala @@ -1,5 +1,4 @@ package com.baeldung.scala.datesandtimes - import java.time.LocalDate import java.time.format.DateTimeFormatter diff --git a/scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/datesandtimes/JavaUtilDate.scala b/scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/datesandtimes/JavaUtilDate.scala similarity index 76% rename from scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/datesandtimes/JavaUtilDate.scala rename to scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/datesandtimes/JavaUtilDate.scala index 7e4f11b58..7aaacd543 100644 --- a/scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/datesandtimes/JavaUtilDate.scala +++ b/scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/datesandtimes/JavaUtilDate.scala @@ -1,13 +1,11 @@ package com.baeldung.scala.datesandtimes - import java.text.SimpleDateFormat import scala.concurrent.duration.Duration -import scala.concurrent.{Await, ExecutionContext, Future} +import scala.concurrent.{Await, Future} object JavaUtilDate extends App { - implicit val ec: ExecutionContext = - scala.concurrent.ExecutionContext.Implicits.global + implicit val ec = scala.concurrent.ExecutionContext.Implicits.global val format: ThreadLocal[SimpleDateFormat] = new ThreadLocal[SimpleDateFormat] { @@ -33,5 +31,5 @@ object JavaUtilDate extends App { val date1 = Await.result(r1, Duration.Inf) val date2 = Await.result(r2, Duration.Inf) - println(s"$date1, $date2") // Prints "Wed Jul 01 2020, Fri Aug 21 2020" + println(date1 + ", " + date2) // Prints "Wed Jul 01 2020, Fri Aug 21 2020" } diff --git a/scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/datesandtimes/JodaTime.scala b/scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/datesandtimes/JodaTime.scala similarity index 100% rename from scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/datesandtimes/JodaTime.scala rename to scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/datesandtimes/JodaTime.scala diff --git a/scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/datesandtimes/NScalaTime.scala b/scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/datesandtimes/NScalaTime.scala similarity index 100% rename from scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/datesandtimes/NScalaTime.scala rename to scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/datesandtimes/NScalaTime.scala diff --git a/scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/differencedates/DifferenceBetweenDates.scala b/scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDates.scala similarity index 100% rename from scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/differencedates/DifferenceBetweenDates.scala rename to scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDates.scala diff --git a/scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/duration/JavaToScalaDuration.scala b/scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/duration/JavaToScalaDuration.scala similarity index 100% rename from scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/duration/JavaToScalaDuration.scala rename to scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/duration/JavaToScalaDuration.scala diff --git a/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/date/DateParserSpec.scala b/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/date/DateParserSpec.scala similarity index 100% rename from scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/date/DateParserSpec.scala rename to scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/date/DateParserSpec.scala diff --git a/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/datesandtimes/JavaTimeUnitTest.scala b/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/datesandtimes/JavaTimeUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/datesandtimes/JavaTimeUnitTest.scala rename to scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/datesandtimes/JavaTimeUnitTest.scala diff --git a/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/datesandtimes/JavaUtilDateUnitTest.scala b/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/datesandtimes/JavaUtilDateUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/datesandtimes/JavaUtilDateUnitTest.scala rename to scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/datesandtimes/JavaUtilDateUnitTest.scala diff --git a/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/datesandtimes/JodaTimeUnitTest.scala b/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/datesandtimes/JodaTimeUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/datesandtimes/JodaTimeUnitTest.scala rename to scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/datesandtimes/JodaTimeUnitTest.scala diff --git a/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/datesandtimes/NScalaTimeUnitTest.scala b/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/datesandtimes/NScalaTimeUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/datesandtimes/NScalaTimeUnitTest.scala rename to scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/datesandtimes/NScalaTimeUnitTest.scala diff --git a/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/differencedates/DifferenceBetweenDatesTest.scala b/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDatesTest.scala similarity index 100% rename from scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/differencedates/DifferenceBetweenDatesTest.scala rename to scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDatesTest.scala diff --git a/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/duration/DurationTest.scala b/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/duration/DurationTest.scala similarity index 100% rename from scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/duration/DurationTest.scala rename to scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/duration/DurationTest.scala From 89f3c8ef5a890c54fdc5c71abfd90579b55b2d25 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 8 Dec 2023 17:28:57 +0100 Subject: [PATCH 0208/1318] removed import for reflec --- .../src/main/scala/com/baeldung/scala/FileDeletion.scala | 1 - 1 file changed, 1 deletion(-) diff --git a/scala-core-modules/scala-core-io/src/main/scala/com/baeldung/scala/FileDeletion.scala b/scala-core-modules/scala-core-io/src/main/scala/com/baeldung/scala/FileDeletion.scala index 0492080e2..e6312da3e 100644 --- a/scala-core-modules/scala-core-io/src/main/scala/com/baeldung/scala/FileDeletion.scala +++ b/scala-core-modules/scala-core-io/src/main/scala/com/baeldung/scala/FileDeletion.scala @@ -3,7 +3,6 @@ package com.baeldung.scala import java.io.{File, IOException} import java.nio.file.attribute.BasicFileAttributes import java.nio.file.{FileVisitResult, Files, Path, SimpleFileVisitor} -import scala.reflect.io.Directory object FileDeletion { def deleteRecursively(file: File): Unit = { From 3058603622ce8a62604e9726c8c11101462e4b5d Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 8 Dec 2023 18:01:19 +0100 Subject: [PATCH 0209/1318] Fixed test for magnet pattern --- build.sbt | 3 ++- .../com/baeldung/scala/cakepattern/CakePattern.scala | 0 .../com/baeldung/scala/magnetpattern/MagnetPattern.scala | 6 ++++-- .../baeldung/scala/cakepattern/CakePatternUnitTest.scala | 7 ++++--- .../baeldung/scala/magnetpattern/MagnetPatternTest.scala | 0 5 files changed, 10 insertions(+), 6 deletions(-) rename scala-design-patterns/src/main/{scala-2 => scala}/com/baeldung/scala/cakepattern/CakePattern.scala (100%) rename scala-design-patterns/src/main/{scala-2 => scala}/com/baeldung/scala/magnetpattern/MagnetPattern.scala (78%) rename scala-design-patterns/src/test/{scala-2 => scala}/com/baeldung/scala/cakepattern/CakePatternUnitTest.scala (80%) rename scala-design-patterns/src/test/{scala-2 => scala}/com/baeldung/scala/magnetpattern/MagnetPatternTest.scala (100%) diff --git a/build.sbt b/build.sbt index 3bedf458c..cd60e1964 100644 --- a/build.sbt +++ b/build.sbt @@ -472,8 +472,9 @@ lazy val scala_strings = (project in file("scala-strings")) lazy val scala_design_patterns = (project in file("scala-design-patterns")) .settings( name := "scala-design-patterns", + scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps, - libraryDependencies += scalaMock, + libraryDependencies += "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % Test, libraryDependencies += "com.novocode" % "junit-interface" % "0.11" % Test ) diff --git a/scala-design-patterns/src/main/scala-2/com/baeldung/scala/cakepattern/CakePattern.scala b/scala-design-patterns/src/main/scala/com/baeldung/scala/cakepattern/CakePattern.scala similarity index 100% rename from scala-design-patterns/src/main/scala-2/com/baeldung/scala/cakepattern/CakePattern.scala rename to scala-design-patterns/src/main/scala/com/baeldung/scala/cakepattern/CakePattern.scala diff --git a/scala-design-patterns/src/main/scala-2/com/baeldung/scala/magnetpattern/MagnetPattern.scala b/scala-design-patterns/src/main/scala/com/baeldung/scala/magnetpattern/MagnetPattern.scala similarity index 78% rename from scala-design-patterns/src/main/scala-2/com/baeldung/scala/magnetpattern/MagnetPattern.scala rename to scala-design-patterns/src/main/scala/com/baeldung/scala/magnetpattern/MagnetPattern.scala index d326488a1..0e77b96e8 100644 --- a/scala-design-patterns/src/main/scala-2/com/baeldung/scala/magnetpattern/MagnetPattern.scala +++ b/scala-design-patterns/src/main/scala/com/baeldung/scala/magnetpattern/MagnetPattern.scala @@ -1,5 +1,7 @@ package com.baeldung.scala.magnetpattern +import scala.language.implicitConversions + object MagnetPattern extends App { /* @@ -20,11 +22,11 @@ object MagnetPattern extends App { def combineElements(magnet: CombineMagnet): magnet.Result = magnet() - implicit def intCombineMagnet(intList: List[Int]) = new CombineMagnet { + implicit def intCombineMagnet(intList: List[Int]): CombineMagnet {type Result = Int} = new CombineMagnet { override type Result = Int override def apply(): Result = intList.reduce((i, c) => i + c) } - implicit def strCombineMagnet(stringList: List[String]) = new CombineMagnet { + implicit def strCombineMagnet(stringList: List[String]): CombineMagnet {type Result = String} = new CombineMagnet { override type Result = String override def apply(): Result = stringList.reduce((s, c) => s.concat(c)) } diff --git a/scala-design-patterns/src/test/scala-2/com/baeldung/scala/cakepattern/CakePatternUnitTest.scala b/scala-design-patterns/src/test/scala/com/baeldung/scala/cakepattern/CakePatternUnitTest.scala similarity index 80% rename from scala-design-patterns/src/test/scala-2/com/baeldung/scala/cakepattern/CakePatternUnitTest.scala rename to scala-design-patterns/src/test/scala/com/baeldung/scala/cakepattern/CakePatternUnitTest.scala index 28bc7884b..89c4dae99 100644 --- a/scala-design-patterns/src/test/scala-2/com/baeldung/scala/cakepattern/CakePatternUnitTest.scala +++ b/scala-design-patterns/src/test/scala/com/baeldung/scala/cakepattern/CakePatternUnitTest.scala @@ -1,13 +1,14 @@ package com.baeldung.scala.cakepattern import com.baeldung.scala.cakepattern.CakePattern.Test -import org.scalamock.scalatest.MockFactory +import org.mockito.Mockito.when import org.scalatest.flatspec.AnyFlatSpec +import org.scalatestplus.mockito.MockitoSugar trait TestRegistry extends CakePattern.TestExecutorComponent with CakePattern.TestEnvironmentComponent - with MockFactory { + with MockitoSugar { override val env: TestEnvironment = mock[TestEnvironment] override val testExecutor: TestExecutor = new TestExecutor } @@ -15,7 +16,7 @@ trait TestRegistry class CakePatternUnitTest extends AnyFlatSpec with TestRegistry { "A TestExecutor" should "execute tests using a given environment" in { - (env.readEnvironmentProperties _).expects().returning(Map("ENV" -> "true")) + when(env.readEnvironmentProperties).thenReturn(Map("ENV" -> "true")) val test = Test( "test-1", { environment => diff --git a/scala-design-patterns/src/test/scala-2/com/baeldung/scala/magnetpattern/MagnetPatternTest.scala b/scala-design-patterns/src/test/scala/com/baeldung/scala/magnetpattern/MagnetPatternTest.scala similarity index 100% rename from scala-design-patterns/src/test/scala-2/com/baeldung/scala/magnetpattern/MagnetPatternTest.scala rename to scala-design-patterns/src/test/scala/com/baeldung/scala/magnetpattern/MagnetPatternTest.scala From ca80a407dca653e8a7f0288f52c7fd1d7acf3aaf Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 8 Dec 2023 18:10:41 +0100 Subject: [PATCH 0210/1318] Ran scalafmt --- build.sbt | 2 +- .../com/baeldung/scala/magnetpattern/MagnetPattern.scala | 8 ++++++-- scala-sbt/sbt-info/project/plugins.sbt | 1 - 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/build.sbt b/build.sbt index cd60e1964..3dce465b5 100644 --- a/build.sbt +++ b/build.sbt @@ -95,7 +95,7 @@ lazy val scala_core_7 = (project in file("scala-core-modules/scala-core-7")) name := "scala-core-7", scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps, - libraryDependencies += jUnitInterface, + libraryDependencies += jUnitInterface ) lazy val scala_core_8 = (project in file("scala-core-modules/scala-core-8")) diff --git a/scala-design-patterns/src/main/scala/com/baeldung/scala/magnetpattern/MagnetPattern.scala b/scala-design-patterns/src/main/scala/com/baeldung/scala/magnetpattern/MagnetPattern.scala index 0e77b96e8..0a62074f5 100644 --- a/scala-design-patterns/src/main/scala/com/baeldung/scala/magnetpattern/MagnetPattern.scala +++ b/scala-design-patterns/src/main/scala/com/baeldung/scala/magnetpattern/MagnetPattern.scala @@ -22,11 +22,15 @@ object MagnetPattern extends App { def combineElements(magnet: CombineMagnet): magnet.Result = magnet() - implicit def intCombineMagnet(intList: List[Int]): CombineMagnet {type Result = Int} = new CombineMagnet { + implicit def intCombineMagnet( + intList: List[Int] + ): CombineMagnet { type Result = Int } = new CombineMagnet { override type Result = Int override def apply(): Result = intList.reduce((i, c) => i + c) } - implicit def strCombineMagnet(stringList: List[String]): CombineMagnet {type Result = String} = new CombineMagnet { + implicit def strCombineMagnet( + stringList: List[String] + ): CombineMagnet { type Result = String } = new CombineMagnet { override type Result = String override def apply(): Result = stringList.reduce((s, c) => s.concat(c)) } diff --git a/scala-sbt/sbt-info/project/plugins.sbt b/scala-sbt/sbt-info/project/plugins.sbt index 8418ae70e..594df223e 100644 --- a/scala-sbt/sbt-info/project/plugins.sbt +++ b/scala-sbt/sbt-info/project/plugins.sbt @@ -1,4 +1,3 @@ addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.10.0") addSbtPlugin("org.scoverage" % "sbt-scoverage" % "2.0.8") - From 84a6a6582545f46a26cf8fa902ebb50cc8972c1a Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 8 Dec 2023 18:23:57 +0100 Subject: [PATCH 0211/1318] Upgraded scalajs module to scala 3 --- build.sbt | 5 ++++- scala-js/build.sbt | 6 ++---- .../{scala-2 => scala}/com/baeldung/scala/ScalaJsApp.scala | 0 .../com/baeldung/scala/ScalaJsUnitTest.scala | 0 4 files changed, 6 insertions(+), 5 deletions(-) rename scala-js/src/main/{scala-2 => scala}/com/baeldung/scala/ScalaJsApp.scala (100%) rename scala-js/src/test/{scala-2 => scala}/com/baeldung/scala/ScalaJsUnitTest.scala (100%) diff --git a/build.sbt b/build.sbt index 3dce465b5..8aa5d199a 100644 --- a/build.sbt +++ b/build.sbt @@ -616,7 +616,10 @@ addCommandAlias( lazy val playGroup = (project in file("play-scala")) //Uncomment this to enable scala-js module. It needs nodejs module as well in local machine -//lazy val scalajs = project in file("scala-js") +//lazy val scalajs = (project in file("scala-js")) +// .settings( +// scalaVersion := scala3Version +// ) lazy val scalatra = project in file("scalatra") lazy val benchmark = project in file("specialized-benchmark") diff --git a/scala-js/build.sbt b/scala-js/build.sbt index a2087ec4c..771828119 100644 --- a/scala-js/build.sbt +++ b/scala-js/build.sbt @@ -5,11 +5,9 @@ version := "1.0-SNAPSHOT" enablePlugins(ScalaJSPlugin) -scalaVersion := "2.13.12" - scalaJSUseMainModuleInitializer := true -libraryDependencies += "org.scala-js" %%% "scalajs-dom" % "2.2.0" -libraryDependencies += "org.scalatest" %%% "scalatest" % "3.1.2" % Test +libraryDependencies += "org.scala-js" %%% "scalajs-dom" % "2.8.0" +libraryDependencies += "org.scalatest" %%% "scalatest" % "3.2.17" % Test //enable the below setting after installing npm package jsdom. jsEnv := new org.scalajs.jsenv.jsdomnodejs.JSDOMNodeJSEnv() diff --git a/scala-js/src/main/scala-2/com/baeldung/scala/ScalaJsApp.scala b/scala-js/src/main/scala/com/baeldung/scala/ScalaJsApp.scala similarity index 100% rename from scala-js/src/main/scala-2/com/baeldung/scala/ScalaJsApp.scala rename to scala-js/src/main/scala/com/baeldung/scala/ScalaJsApp.scala diff --git a/scala-js/src/test/scala-2/com/baeldung/scala/ScalaJsUnitTest.scala b/scala-js/src/test/scala/com/baeldung/scala/ScalaJsUnitTest.scala similarity index 100% rename from scala-js/src/test/scala-2/com/baeldung/scala/ScalaJsUnitTest.scala rename to scala-js/src/test/scala/com/baeldung/scala/ScalaJsUnitTest.scala From 75cd2b1962f79b736973fb7e4ce5db1d50232765 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 8 Dec 2023 18:46:23 +0100 Subject: [PATCH 0212/1318] Upgraded scala-native to scala 3 --- build.sbt | 3 ++- .../com/baeldung/native/NativeApp.scala | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) rename scala-native/src/main/{scala-2 => scala}/com/baeldung/native/NativeApp.scala (93%) diff --git a/build.sbt b/build.sbt index 8aa5d199a..f674fb51e 100644 --- a/build.sbt +++ b/build.sbt @@ -535,7 +535,8 @@ lazy val doobie = (project in file("doobie")) // lazy val scala_native = (project in file("scala-native")) // .settings( // name := "scala-native", -// libraryDependencies += "com.lihaoyi" %%% "fansi" % "0.3.0" +// scalaVersion := scala3Version, +// libraryDependencies += "com.lihaoyi" %%% "fansi" % "0.4.0" // ) // ScalaPy Python Project is disabled as it needs clang and python to installed in the target machine. diff --git a/scala-native/src/main/scala-2/com/baeldung/native/NativeApp.scala b/scala-native/src/main/scala/com/baeldung/native/NativeApp.scala similarity index 93% rename from scala-native/src/main/scala-2/com/baeldung/native/NativeApp.scala rename to scala-native/src/main/scala/com/baeldung/native/NativeApp.scala index 2f552b7c4..62d8c6781 100644 --- a/scala-native/src/main/scala-2/com/baeldung/native/NativeApp.scala +++ b/scala-native/src/main/scala/com/baeldung/native/NativeApp.scala @@ -41,10 +41,10 @@ object NativeApp { } def main(args: Array[String]): Unit = { - printFromNative - simpleNative - nativeFromCFile - testCurl + printFromNative() + simpleNative() + nativeFromCFile() + testCurl() } } From be742db38e41ddc23c5acf63b6505d5dd283f510 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 8 Dec 2023 19:38:44 +0100 Subject: [PATCH 0213/1318] Upgraded scala-libraries-os to Scala 3 --- build.sbt | 1 + .../main/{scala-2 => scala}/com/baeldung/scala/os/OsApp.scala | 0 .../{scala-2 => scala}/com/baeldung/scala/os/ScalaSysApp.scala | 0 3 files changed, 1 insertion(+) rename scala-libraries-os/src/main/{scala-2 => scala}/com/baeldung/scala/os/OsApp.scala (100%) rename scala-libraries-os/src/main/{scala-2 => scala}/com/baeldung/scala/os/ScalaSysApp.scala (100%) diff --git a/build.sbt b/build.sbt index f674fb51e..6994603a2 100644 --- a/build.sbt +++ b/build.sbt @@ -373,6 +373,7 @@ lazy val scala_libraries_3 = (project in file("scala-libraries-3")) lazy val scala_libraries_os = (project in file("scala-libraries-os")) .settings( name := "scala-libraries", + scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps, libraryDependencies ++= Seq( "org.apache.logging.log4j" %% "log4j-api-scala" % "13.0.0", diff --git a/scala-libraries-os/src/main/scala-2/com/baeldung/scala/os/OsApp.scala b/scala-libraries-os/src/main/scala/com/baeldung/scala/os/OsApp.scala similarity index 100% rename from scala-libraries-os/src/main/scala-2/com/baeldung/scala/os/OsApp.scala rename to scala-libraries-os/src/main/scala/com/baeldung/scala/os/OsApp.scala diff --git a/scala-libraries-os/src/main/scala-2/com/baeldung/scala/os/ScalaSysApp.scala b/scala-libraries-os/src/main/scala/com/baeldung/scala/os/ScalaSysApp.scala similarity index 100% rename from scala-libraries-os/src/main/scala-2/com/baeldung/scala/os/ScalaSysApp.scala rename to scala-libraries-os/src/main/scala/com/baeldung/scala/os/ScalaSysApp.scala From 3948bcf804322af51ad8c1f727ddbfb8a1356195 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 8 Dec 2023 20:03:46 +0100 Subject: [PATCH 0214/1318] Migrated scala-core-date to scala 3 --- scala-core-modules/scala-core-8/README.md | 1 - scala-core-modules/scala-core-dates/README.md | 1 + .../com/baeldung/scala/date/DateParser.scala | 0 .../com/baeldung/scala/datesandtimes/JavaTime.scala | 0 .../com/baeldung/scala/datesandtimes/JavaUtilDate.scala | 6 +++--- .../com/baeldung/scala/datesandtimes/JodaTime.scala | 0 .../com/baeldung/scala/datesandtimes/NScalaTime.scala | 0 .../scala/differencedates/DifferenceBetweenDates.scala | 0 .../com/baeldung/scala/duration/JavaToScalaDuration.scala | 0 .../com/baeldung/scala/date/DateParserSpec.scala | 0 .../com/baeldung/scala/datesandtimes/JavaTimeUnitTest.scala | 0 .../baeldung/scala/datesandtimes/JavaUtilDateUnitTest.scala | 0 .../com/baeldung/scala/datesandtimes/JodaTimeUnitTest.scala | 0 .../baeldung/scala/datesandtimes/NScalaTimeUnitTest.scala | 0 .../scala/differencedates/DifferenceBetweenDatesTest.scala | 0 .../com/baeldung/scala/duration/DurationTest.scala | 0 16 files changed, 4 insertions(+), 4 deletions(-) rename scala-core-modules/scala-core-dates/src/main/{scala-2 => scala}/com/baeldung/scala/date/DateParser.scala (100%) rename scala-core-modules/scala-core-dates/src/main/{scala-2 => scala}/com/baeldung/scala/datesandtimes/JavaTime.scala (100%) rename scala-core-modules/scala-core-dates/src/main/{scala-2 => scala}/com/baeldung/scala/datesandtimes/JavaUtilDate.scala (76%) rename scala-core-modules/scala-core-dates/src/main/{scala-2 => scala}/com/baeldung/scala/datesandtimes/JodaTime.scala (100%) rename scala-core-modules/scala-core-dates/src/main/{scala-2 => scala}/com/baeldung/scala/datesandtimes/NScalaTime.scala (100%) rename scala-core-modules/scala-core-dates/src/main/{scala-2 => scala}/com/baeldung/scala/differencedates/DifferenceBetweenDates.scala (100%) rename scala-core-modules/scala-core-dates/src/main/{scala-2 => scala}/com/baeldung/scala/duration/JavaToScalaDuration.scala (100%) rename scala-core-modules/scala-core-dates/src/test/{scala-2 => scala}/com/baeldung/scala/date/DateParserSpec.scala (100%) rename scala-core-modules/scala-core-dates/src/test/{scala-2 => scala}/com/baeldung/scala/datesandtimes/JavaTimeUnitTest.scala (100%) rename scala-core-modules/scala-core-dates/src/test/{scala-2 => scala}/com/baeldung/scala/datesandtimes/JavaUtilDateUnitTest.scala (100%) rename scala-core-modules/scala-core-dates/src/test/{scala-2 => scala}/com/baeldung/scala/datesandtimes/JodaTimeUnitTest.scala (100%) rename scala-core-modules/scala-core-dates/src/test/{scala-2 => scala}/com/baeldung/scala/datesandtimes/NScalaTimeUnitTest.scala (100%) rename scala-core-modules/scala-core-dates/src/test/{scala-2 => scala}/com/baeldung/scala/differencedates/DifferenceBetweenDatesTest.scala (100%) rename scala-core-modules/scala-core-dates/src/test/{scala-2 => scala}/com/baeldung/scala/duration/DurationTest.scala (100%) diff --git a/scala-core-modules/scala-core-8/README.md b/scala-core-modules/scala-core-8/README.md index 517f634a7..3819082f4 100644 --- a/scala-core-modules/scala-core-8/README.md +++ b/scala-core-modules/scala-core-8/README.md @@ -4,4 +4,3 @@ - [The Either Type in Scala](https://www.baeldung.com/scala/either-type) - [Understanding the Differences: reduceLeft, reduceRight, foldLeft, foldRight, scanLeft, and scanRight in Scala](https://www.baeldung.com/scala/reduce-fold-scan-left-right) - [Different Ways to Reverse a Sequence in Scala](https://www.baeldung.com/scala/reverse-sequence) -- [Generate List of Dates Between a Range in Scala](https://www.baeldung.com/scala/date-range-list) diff --git a/scala-core-modules/scala-core-dates/README.md b/scala-core-modules/scala-core-dates/README.md index df08f9428..49ae29293 100644 --- a/scala-core-modules/scala-core-dates/README.md +++ b/scala-core-modules/scala-core-dates/README.md @@ -9,3 +9,4 @@ This module contains articles about Scala's date features. - [Get Difference Between Two Dates](https://www.baeldung.com/scala/difference-between-two-dates) - [Convert Epoch Milliseconds to DateTime in Scala](https://www.baeldung.com/scala/epoch-milliseconds-datetime) - [Convert a String to Date in Scala](https://www.baeldung.com/scala/string-to-date) +- [Generate List of Dates Between a Range in Scala](https://www.baeldung.com/scala/date-range-list) diff --git a/scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/date/DateParser.scala b/scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/date/DateParser.scala similarity index 100% rename from scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/date/DateParser.scala rename to scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/date/DateParser.scala diff --git a/scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/datesandtimes/JavaTime.scala b/scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/datesandtimes/JavaTime.scala similarity index 100% rename from scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/datesandtimes/JavaTime.scala rename to scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/datesandtimes/JavaTime.scala diff --git a/scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/datesandtimes/JavaUtilDate.scala b/scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/datesandtimes/JavaUtilDate.scala similarity index 76% rename from scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/datesandtimes/JavaUtilDate.scala rename to scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/datesandtimes/JavaUtilDate.scala index 7aaacd543..87df7312b 100644 --- a/scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/datesandtimes/JavaUtilDate.scala +++ b/scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/datesandtimes/JavaUtilDate.scala @@ -1,11 +1,11 @@ package com.baeldung.scala.datesandtimes import java.text.SimpleDateFormat import scala.concurrent.duration.Duration -import scala.concurrent.{Await, Future} +import scala.concurrent.{Await, ExecutionContext, Future} object JavaUtilDate extends App { - implicit val ec = scala.concurrent.ExecutionContext.Implicits.global + implicit val ec: ExecutionContext = scala.concurrent.ExecutionContext.Implicits.global val format: ThreadLocal[SimpleDateFormat] = new ThreadLocal[SimpleDateFormat] { @@ -31,5 +31,5 @@ object JavaUtilDate extends App { val date1 = Await.result(r1, Duration.Inf) val date2 = Await.result(r2, Duration.Inf) - println(date1 + ", " + date2) // Prints "Wed Jul 01 2020, Fri Aug 21 2020" + println(s"$date1, $date2") // Prints "Wed Jul 01 2020, Fri Aug 21 2020" } diff --git a/scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/datesandtimes/JodaTime.scala b/scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/datesandtimes/JodaTime.scala similarity index 100% rename from scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/datesandtimes/JodaTime.scala rename to scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/datesandtimes/JodaTime.scala diff --git a/scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/datesandtimes/NScalaTime.scala b/scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/datesandtimes/NScalaTime.scala similarity index 100% rename from scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/datesandtimes/NScalaTime.scala rename to scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/datesandtimes/NScalaTime.scala diff --git a/scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDates.scala b/scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/differencedates/DifferenceBetweenDates.scala similarity index 100% rename from scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDates.scala rename to scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/differencedates/DifferenceBetweenDates.scala diff --git a/scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/duration/JavaToScalaDuration.scala b/scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/duration/JavaToScalaDuration.scala similarity index 100% rename from scala-core-modules/scala-core-dates/src/main/scala-2/com/baeldung/scala/duration/JavaToScalaDuration.scala rename to scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/duration/JavaToScalaDuration.scala diff --git a/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/date/DateParserSpec.scala b/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/date/DateParserSpec.scala similarity index 100% rename from scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/date/DateParserSpec.scala rename to scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/date/DateParserSpec.scala diff --git a/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/datesandtimes/JavaTimeUnitTest.scala b/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/datesandtimes/JavaTimeUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/datesandtimes/JavaTimeUnitTest.scala rename to scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/datesandtimes/JavaTimeUnitTest.scala diff --git a/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/datesandtimes/JavaUtilDateUnitTest.scala b/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/datesandtimes/JavaUtilDateUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/datesandtimes/JavaUtilDateUnitTest.scala rename to scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/datesandtimes/JavaUtilDateUnitTest.scala diff --git a/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/datesandtimes/JodaTimeUnitTest.scala b/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/datesandtimes/JodaTimeUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/datesandtimes/JodaTimeUnitTest.scala rename to scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/datesandtimes/JodaTimeUnitTest.scala diff --git a/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/datesandtimes/NScalaTimeUnitTest.scala b/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/datesandtimes/NScalaTimeUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/datesandtimes/NScalaTimeUnitTest.scala rename to scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/datesandtimes/NScalaTimeUnitTest.scala diff --git a/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDatesTest.scala b/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/differencedates/DifferenceBetweenDatesTest.scala similarity index 100% rename from scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/differencedates/DifferenceBetweenDatesTest.scala rename to scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/differencedates/DifferenceBetweenDatesTest.scala diff --git a/scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/duration/DurationTest.scala b/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/duration/DurationTest.scala similarity index 100% rename from scala-core-modules/scala-core-dates/src/test/scala-2/com/baeldung/scala/duration/DurationTest.scala rename to scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/duration/DurationTest.scala From 869aa0139467471b3372ef5d527c3aac9c0538bf Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 9 Dec 2023 17:52:36 +0100 Subject: [PATCH 0215/1318] Added code and test for magic number calculation --- .../scala/magicnumber/MagicNumber.scala | 57 +++++++++++++++++++ .../magicnumber/MagicNumberUnitTest.scala | 46 +++++++++++++++ 2 files changed, 103 insertions(+) create mode 100644 scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/magicnumber/MagicNumber.scala create mode 100644 scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/magicnumber/MagicNumberUnitTest.scala diff --git a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/magicnumber/MagicNumber.scala b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/magicnumber/MagicNumber.scala new file mode 100644 index 000000000..6eba10a14 --- /dev/null +++ b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/magicnumber/MagicNumber.scala @@ -0,0 +1,57 @@ +package com.baeldung.scala.magicnumber + +import scala.annotation.tailrec + +object MagicNumber { + + def isMagicNumber(sumFn: Long => Long)(num: Long): Boolean = { + // Only positive numbers are used, so we take abs of any number. + // Instead of this, we could also add require condition + // require(num >= 0, "Only positive numbers are allowed!") + val sum = sumOfDigitsUsingRecursion(Math.abs(num)) + sum == 1 + } + + // Impl 1 + def sumOfDigitsUsingRecursion(num: Long): Long = { + + @tailrec + def recursiveSum(num: Long, sum: Long): Long = { + num match { + case 0 if sum < 10 => sum + case 0 if sum >= 10 => recursiveSum(sum / 10, sum % 10) + case n => recursiveSum(n / 10, sum + (num % 10)) + } + } + recursiveSum(num, 0) + } + + // Impl 2 + @tailrec + def sumOfDigitsUsingAsDigit(n: Long): Long = { + if (n < 10) { + // If the number is a single digit, return it + n + } else { + // Calculate the sum of digits recursively + val digitSum = n.toString.map(_.asDigit).sum + sumOfDigitsUsingAsDigit(digitSum) + } + } + + // Impl 3 + @tailrec + def sumOfDigitsUsingFold(num: Long): Long = { + def sum = num.toString.foldLeft(0)((acc, dig) => acc + dig.asDigit) + if (sum < 10) sum else sumOfDigitsUsingFold(sum) + } + + // Impl 4 + def sumOfDigitsUsingIterator(num: Long): Long = { + Iterator + .iterate(num)(currentNum => currentNum.toString.map(_.asDigit).sum) + .dropWhile(_ >= 10) + .next() + } + +} diff --git a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/magicnumber/MagicNumberUnitTest.scala b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/magicnumber/MagicNumberUnitTest.scala new file mode 100644 index 000000000..b8331ab7e --- /dev/null +++ b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/magicnumber/MagicNumberUnitTest.scala @@ -0,0 +1,46 @@ +package com.baeldung.scala.magicnumber + +import com.baeldung.scala.magicnumber.MagicNumber.* +import org.scalatest.matchers.should.Matchers +import org.scalatest.prop.TableDrivenPropertyChecks +import org.scalatest.wordspec.AnyWordSpec + +class MagicNumberUnitTest + extends AnyWordSpec + with Matchers + with TableDrivenPropertyChecks { + + private val sumFunctions = List( + sumOfDigitsUsingRecursion, + sumOfDigitsUsingAsDigit, + sumOfDigitsUsingFold, + sumOfDigitsUsingIterator + ) + private val table= Table( + ("number", "sum", "functions", "isMagicNumber"), + (100, 1, sumFunctions, true), + (99, 9, sumFunctions, false), + (0, 0, sumFunctions, false), + (1, 1, sumFunctions, true), + (1234, 1, sumFunctions, true), + (98765, 8, sumFunctions, false), + (Integer.MAX_VALUE, 1, sumFunctions, true) // 2147483647 + ) + + forAll(table) { (number, sum, sumFns, isMagic) => + "Sum of digit calculation method" should { + s"[No: $number] calculate the sum of digits till single digit correctly" in { + sumFns.map { fn => + fn(number) shouldBe sum + } + } + } + "Magic number checker" should { + s"[No: $number] return true/false if the input is a magic number" in { + sumFns.map { fn => + isMagicNumber(fn)(number) shouldBe isMagic + } + } + } + } +} From 0efbaf21df43aadf3c1ba763bc6d17d04e6455a8 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sun, 10 Dec 2023 14:54:54 +0100 Subject: [PATCH 0216/1318] fixed scalafmt error --- .../com/baeldung/scala/magicnumber/MagicNumberUnitTest.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/magicnumber/MagicNumberUnitTest.scala b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/magicnumber/MagicNumberUnitTest.scala index b8331ab7e..e28aa266a 100644 --- a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/magicnumber/MagicNumberUnitTest.scala +++ b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/magicnumber/MagicNumberUnitTest.scala @@ -16,7 +16,7 @@ class MagicNumberUnitTest sumOfDigitsUsingFold, sumOfDigitsUsingIterator ) - private val table= Table( + private val table = Table( ("number", "sum", "functions", "isMagicNumber"), (100, 1, sumFunctions, true), (99, 9, sumFunctions, false), From c36e0ab6ed502de8e38cd0dff01fabe0bb3cb48b Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 12 Dec 2023 00:14:01 +0000 Subject: [PATCH 0217/1318] Update aws-java-sdk-s3 from 1.12.604 to 1.12.610 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 8ab5c852c..3f1c63d0e 100644 --- a/build.sbt +++ b/build.sbt @@ -95,7 +95,7 @@ lazy val scala_core_7 = (project in file("scala-core-modules/scala-core-7")) name := "scala-core-7", scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps, - libraryDependencies += jUnitInterface, + libraryDependencies += jUnitInterface ) lazy val scala_core_8 = (project in file("scala-core-modules/scala-core-8")) @@ -407,7 +407,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "software.amazon.awssdk" % "s3" % "2.21.37" ), libraryDependencies ++= Seq( - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.604" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.610" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.0" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.0" % IntegrationTest ), From a6fbdbf5dafc1996875e18617178b9c13456f818 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 12 Dec 2023 00:14:10 +0000 Subject: [PATCH 0218/1318] Update sbt-jupiter-interface from 0.8.3 to 0.8.4 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index 78df7b3cb..7bff7f15f 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -17,6 +17,6 @@ libraryDependencies += "org.scala-js" %% "scalajs-env-jsdom-nodejs" % "1.0.0" resolvers += Resolver.jcenterRepo -addSbtPlugin("net.aichler" % "sbt-jupiter-interface" % "0.8.3") +addSbtPlugin("net.aichler" % "sbt-jupiter-interface" % "0.8.4") ThisBuild / libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always From 426d00fa7183bab69ecd223457cc27c08fa27e07 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 12 Dec 2023 00:14:21 +0000 Subject: [PATCH 0219/1318] Update sbt-twirl, twirl-api from 2.0.2 to 2.0.3 --- scalatra/project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scalatra/project/plugins.sbt b/scalatra/project/plugins.sbt index b730f99b9..3f6625024 100644 --- a/scalatra/project/plugins.sbt +++ b/scalatra/project/plugins.sbt @@ -1,3 +1,3 @@ -addSbtPlugin("org.playframework.twirl" % "sbt-twirl" % "2.0.2") +addSbtPlugin("org.playframework.twirl" % "sbt-twirl" % "2.0.3") addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "4.2.4") libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always From facb62d72a8c0a5095ea77ce3993740a41bc02d5 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 12 Dec 2023 00:14:36 +0000 Subject: [PATCH 0220/1318] Update postgresql from 42.7.0 to 42.7.1 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 8ab5c852c..ae6641501 100644 --- a/build.sbt +++ b/build.sbt @@ -95,7 +95,7 @@ lazy val scala_core_7 = (project in file("scala-core-modules/scala-core-7")) name := "scala-core-7", scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps, - libraryDependencies += jUnitInterface, + libraryDependencies += jUnitInterface ) lazy val scala_core_8 = (project in file("scala-core-modules/scala-core-8")) @@ -321,7 +321,7 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) ), libraryDependencies ++= Seq( "org.playframework" %% "play-slick" % "6.0.0", - "org.postgresql" % "postgresql" % "42.7.0" + "org.postgresql" % "postgresql" % "42.7.1" ), libraryDependencies ++= Seq( "io.monix" %% "monix" % monixVersion From 3584a62fad0c527ae259952e80a2145681d895f1 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 12 Dec 2023 00:14:51 +0000 Subject: [PATCH 0221/1318] Update sbt-scalajs from 1.13.0 to 1.13.2 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index 78df7b3cb..0d179407f 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,7 +1,7 @@ addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.0") addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.4.10") -addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.13.0") +addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.13.2") addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.2.1") libraryDependencies += "ai.kien" %% "python-native-libs" % "0.2.4" From 748430dac658fde9ae7c858fb3ca67de7aa22b59 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 12 Dec 2023 00:15:04 +0000 Subject: [PATCH 0222/1318] Update scalajs-env-jsdom-nodejs from 1.0.0 to 1.1.0 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index 78df7b3cb..7550c79d5 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -13,7 +13,7 @@ addSbtPlugin("org.playframework.twirl" % "sbt-twirl" % "2.0.1") addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "4.2.1") addSbtPlugin("pl.project13.scala" % "sbt-jmh" % "0.4.3") -libraryDependencies += "org.scala-js" %% "scalajs-env-jsdom-nodejs" % "1.0.0" +libraryDependencies += "org.scala-js" %% "scalajs-env-jsdom-nodejs" % "1.1.0" resolvers += Resolver.jcenterRepo From ceca9143efa968f4c60b1924c7d8dd9b4a6c55a3 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 12 Dec 2023 00:15:16 +0000 Subject: [PATCH 0223/1318] Update sbt-scala-native from 0.4.10 to 0.4.16 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index 78df7b3cb..2da53bf4d 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,6 +1,6 @@ addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.0") -addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.4.10") +addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.4.16") addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.13.0") addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.2.1") From dd678063734edcb10967ec02b8dc4babfae3ad73 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 12 Dec 2023 00:15:30 +0000 Subject: [PATCH 0224/1318] Update sbt-scalafmt from 2.5.0 to 2.5.2 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index 78df7b3cb..de0d69013 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,4 +1,4 @@ -addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.0") +addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.2") addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.4.10") addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.13.0") From 700d049d552a5896a2e66456de8879cdbad6fd82 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 12 Dec 2023 00:15:43 +0000 Subject: [PATCH 0225/1318] Update sbt-jmh from 0.4.3 to 0.4.7 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index 78df7b3cb..9632d860e 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -12,7 +12,7 @@ addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.0") addSbtPlugin("org.playframework.twirl" % "sbt-twirl" % "2.0.1") addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "4.2.1") -addSbtPlugin("pl.project13.scala" % "sbt-jmh" % "0.4.3") +addSbtPlugin("pl.project13.scala" % "sbt-jmh" % "0.4.7") libraryDependencies += "org.scala-js" %% "scalajs-env-jsdom-nodejs" % "1.0.0" resolvers += Resolver.jcenterRepo From 149536c194e53fe9a0f57de887f4f2c605abc12a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 12 Dec 2023 00:15:56 +0000 Subject: [PATCH 0226/1318] Update s3 from 2.21.37 to 2.21.43 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 8ab5c852c..f531d2bdf 100644 --- a/build.sbt +++ b/build.sbt @@ -95,7 +95,7 @@ lazy val scala_core_7 = (project in file("scala-core-modules/scala-core-7")) name := "scala-core-7", scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps, - libraryDependencies += jUnitInterface, + libraryDependencies += jUnitInterface ) lazy val scala_core_8 = (project in file("scala-core-modules/scala-core-8")) @@ -404,7 +404,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "org.testcontainers" % "pulsar" % "1.19.3" % IntegrationTest ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "s3" % "2.21.37" + "software.amazon.awssdk" % "s3" % "2.21.43" ), libraryDependencies ++= Seq( "com.amazonaws" % "aws-java-sdk-s3" % "1.12.604" % IntegrationTest, From 494d06f458b7d781e8c580d096beeae5e1e3c544 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 12 Dec 2023 18:49:40 +0100 Subject: [PATCH 0227/1318] removed JavaUtilDateUnitTest --- .../datesandtimes/JavaUtilDateUnitTest.scala | 20 ------------------- 1 file changed, 20 deletions(-) delete mode 100644 scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/datesandtimes/JavaUtilDateUnitTest.scala diff --git a/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/datesandtimes/JavaUtilDateUnitTest.scala b/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/datesandtimes/JavaUtilDateUnitTest.scala deleted file mode 100644 index a9c558586..000000000 --- a/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/datesandtimes/JavaUtilDateUnitTest.scala +++ /dev/null @@ -1,20 +0,0 @@ -package com.baeldung.scala.datesandtimes -import org.scalatest.flatspec.AnyFlatSpec -import org.scalatest.matchers.should.Matchers - -import java.text.SimpleDateFormat -import java.util.Date - -class JavaUtilDateUnitTest extends AnyFlatSpec with Matchers { - "toDate" should "be able to parse a date-string and return a Date object" in { - val dateStr = "2021-06-13" - val format: ThreadLocal[SimpleDateFormat] = - new ThreadLocal[SimpleDateFormat] { - override def initialValue = { - new SimpleDateFormat("yyyy-MM-dd") - } - } - val expectedDate: Date = new Date(121, 5, 13) - JavaUtilDate.toDate(dateStr, format) shouldEqual expectedDate - } -} From c59da784c5d55544a263b45518be78a48de28f9e Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 12 Dec 2023 19:00:36 +0100 Subject: [PATCH 0228/1318] Scalafmt --- .../scala/com/baeldung/scala/datesandtimes/JavaUtilDate.scala | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/datesandtimes/JavaUtilDate.scala b/scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/datesandtimes/JavaUtilDate.scala index 87df7312b..09e4b9cdc 100644 --- a/scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/datesandtimes/JavaUtilDate.scala +++ b/scala-core-modules/scala-core-dates/src/main/scala/com/baeldung/scala/datesandtimes/JavaUtilDate.scala @@ -5,7 +5,8 @@ import scala.concurrent.{Await, ExecutionContext, Future} object JavaUtilDate extends App { - implicit val ec: ExecutionContext = scala.concurrent.ExecutionContext.Implicits.global + implicit val ec: ExecutionContext = + scala.concurrent.ExecutionContext.Implicits.global val format: ThreadLocal[SimpleDateFormat] = new ThreadLocal[SimpleDateFormat] { From daf7bbe83de18cc3e6c0016b54c47f4a355db8b6 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 12 Dec 2023 19:27:04 +0100 Subject: [PATCH 0229/1318] Corrected the path --- .../scala/scalatest/exceptions/ExceptionHandlingUnitTest.scala | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename scala-test/src/test/{scala-2 => scala}/com/baeldung/scala/scalatest/exceptions/ExceptionHandlingUnitTest.scala (100%) diff --git a/scala-test/src/test/scala-2/com/baeldung/scala/scalatest/exceptions/ExceptionHandlingUnitTest.scala b/scala-test/src/test/scala/com/baeldung/scala/scalatest/exceptions/ExceptionHandlingUnitTest.scala similarity index 100% rename from scala-test/src/test/scala-2/com/baeldung/scala/scalatest/exceptions/ExceptionHandlingUnitTest.scala rename to scala-test/src/test/scala/com/baeldung/scala/scalatest/exceptions/ExceptionHandlingUnitTest.scala From e3aeb1f112fb1e00125d586acf77466123a54346 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 15 Dec 2023 17:50:13 +0100 Subject: [PATCH 0230/1318] Added code sample for acronym generator --- build.sbt | 3 +- .../scala/acronym/AcronymGenerator.scala | 13 +++++ .../acronym/AcronymGeneratorUnitTest.scala | 56 +++++++++++++++++++ 3 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/acronym/AcronymGenerator.scala create mode 100644 scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/acronym/AcronymGeneratorUnitTest.scala diff --git a/build.sbt b/build.sbt index 2d459910c..e3acf1439 100644 --- a/build.sbt +++ b/build.sbt @@ -104,7 +104,8 @@ lazy val scala_core_8 = (project in file("scala-core-modules/scala-core-8")) libraryDependencies ++= scalaTestDeps, scalaVersion := scala3Version, libraryDependencies += "org.scala-lang.modules" %% "scala-java8-compat" % "1.0.2", - libraryDependencies += "com.typesafe" % "config" % "1.2.1" + libraryDependencies += "com.typesafe" % "config" % "1.2.1", + libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.17.0" % Test // scalacOptions += "-Ymacro-debug-lite" ) diff --git a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/acronym/AcronymGenerator.scala b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/acronym/AcronymGenerator.scala new file mode 100644 index 000000000..a5f8cb3ae --- /dev/null +++ b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/acronym/AcronymGenerator.scala @@ -0,0 +1,13 @@ +package com.baeldung.scala.acronym + +object AcronymGenerator { + def acronymUsingSplit(text: String): String = { + text + .split("\\s") + .filterNot(_.trim.isEmpty) + .map(_.head) + .filter(_.isLetter) + .mkString + .toUpperCase + } +} diff --git a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/acronym/AcronymGeneratorUnitTest.scala b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/acronym/AcronymGeneratorUnitTest.scala new file mode 100644 index 000000000..7d46ff06c --- /dev/null +++ b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/acronym/AcronymGeneratorUnitTest.scala @@ -0,0 +1,56 @@ +package com.baeldung.scala.acronym + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatestplus.scalacheck.ScalaCheckPropertyChecks +import org.scalacheck.Gen +import org.scalatest.matchers.should.Matchers + +class AcronymGeneratorUnitTest + extends AnyFlatSpec + with ScalaCheckPropertyChecks + with Matchers { + + val sentenceGenerator: Gen[String] = for { + charPart <- Gen.alphaStr + numPart <- Gen.listOfN(5, Gen.numChar).map(_.mkString) + specialCharPart <- Gen + .listOfN(1, Gen.oneOf(Seq('@', "_", "*"))) + .map(_.mkString) + alphaNum <- Gen.alphaNumStr + } yield s"$charPart $numPart $specialCharPart$charPart $alphaNum" + + it should "generate acronym for random generated string correctly" in { + forAll(sentenceGenerator) { sentence => + val acronym = AcronymGenerator.acronymUsingSplit(sentence) + withClue(s"Gen sentence = $sentence , acronym = $acronym") { + acronym.forall(_.isLetter) shouldBe true + acronym.exists(_ == ' ') shouldBe false + acronym.forall(_.isUpper) shouldBe true + } + } + } + + it should "generate empty acronym for empty string" in { + val acronym = AcronymGenerator.acronymUsingSplit(" ") + acronym shouldBe empty + } + + it should "generate correct acronym for alpha numeric string" in { + val acronym = + AcronymGenerator.acronymUsingSplit("This is a sentence with 9numbers") + acronym shouldBe "TIASW" + } + + it should "generate empty acronym for numeric/special char starting string" in { + val acronym = AcronymGenerator.acronymUsingSplit("1is 7m @num") + acronym shouldBe "" + } + + it should "generate acronym for NASA with extra spaces in between" in { + val acronym = AcronymGenerator.acronymUsingSplit( + "National Aeronautics & Space Administration " + ) + acronym shouldBe "NASA" + } + +} From 65b428bcacd5de60326a0ffb4a8ecabad7d1e292 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 16 Dec 2023 13:07:21 +0100 Subject: [PATCH 0231/1318] Added more cases --- .../acronym/AcronymGeneratorUnitTest.scala | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/acronym/AcronymGeneratorUnitTest.scala b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/acronym/AcronymGeneratorUnitTest.scala index 7d46ff06c..da4e25482 100644 --- a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/acronym/AcronymGeneratorUnitTest.scala +++ b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/acronym/AcronymGeneratorUnitTest.scala @@ -4,6 +4,7 @@ import org.scalatest.flatspec.AnyFlatSpec import org.scalatestplus.scalacheck.ScalaCheckPropertyChecks import org.scalacheck.Gen import org.scalatest.matchers.should.Matchers +import AcronymGenerator.* class AcronymGeneratorUnitTest extends AnyFlatSpec @@ -21,6 +22,7 @@ class AcronymGeneratorUnitTest it should "generate acronym for random generated string correctly" in { forAll(sentenceGenerator) { sentence => + println("sentence -=> "+sentence) val acronym = AcronymGenerator.acronymUsingSplit(sentence) withClue(s"Gen sentence = $sentence , acronym = $acronym") { acronym.forall(_.isLetter) shouldBe true @@ -31,25 +33,28 @@ class AcronymGeneratorUnitTest } it should "generate empty acronym for empty string" in { - val acronym = AcronymGenerator.acronymUsingSplit(" ") + val acronym = acronymUsingSplit(" ") acronym shouldBe empty } it should "generate correct acronym for alpha numeric string" in { - val acronym = - AcronymGenerator.acronymUsingSplit("This is a sentence with 9numbers") + val acronym = acronymUsingSplit("This is a sentence with 9numbers") acronym shouldBe "TIASW" } it should "generate empty acronym for numeric/special char starting string" in { - val acronym = AcronymGenerator.acronymUsingSplit("1is 7m @num") - acronym shouldBe "" + val acronym = acronymUsingSplit("1is 7m @num") + acronym shouldBe empty + } + + it should "generate acronym for FAQ" in { + val acronym = acronymUsingSplit("Frequently Asked Questions") + acronym shouldBe "FAQ" } it should "generate acronym for NASA with extra spaces in between" in { - val acronym = AcronymGenerator.acronymUsingSplit( - "National Aeronautics & Space Administration " - ) + val acronym = + acronymUsingSplit("National Aeronautics & Space Administration ") acronym shouldBe "NASA" } From b834e1a00502dd1c454ea57907f2aa10d360c8ad Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 16 Dec 2023 20:41:14 +0100 Subject: [PATCH 0232/1318] Scalafmt --- .../com/baeldung/scala/acronym/AcronymGeneratorUnitTest.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/acronym/AcronymGeneratorUnitTest.scala b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/acronym/AcronymGeneratorUnitTest.scala index da4e25482..79786e63a 100644 --- a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/acronym/AcronymGeneratorUnitTest.scala +++ b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/acronym/AcronymGeneratorUnitTest.scala @@ -22,7 +22,7 @@ class AcronymGeneratorUnitTest it should "generate acronym for random generated string correctly" in { forAll(sentenceGenerator) { sentence => - println("sentence -=> "+sentence) + println("sentence -=> " + sentence) val acronym = AcronymGenerator.acronymUsingSplit(sentence) withClue(s"Gen sentence = $sentence , acronym = $acronym") { acronym.forall(_.isLetter) shouldBe true From 0d094bf53c88025bb38a03804fd19b70e2b9fdcb Mon Sep 17 00:00:00 2001 From: edizor <113095366+edizor@users.noreply.github.com> Date: Sun, 17 Dec 2023 08:38:42 +0800 Subject: [PATCH 0233/1318] Update README.md [skip ci] --- scala-akka-2/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-akka-2/README.md b/scala-akka-2/README.md index b028345b4..75ca827f4 100644 --- a/scala-akka-2/README.md +++ b/scala-akka-2/README.md @@ -9,3 +9,4 @@ - [Difference Between tell and forward in Akka Actor](https://www.baeldung.com/scala/akka-actor-tell-vs-forward) - [Testing an Akka HTTP Application](https://www.baeldung.com/scala/akka-http-testing) - [Introduction to Akka-Streams in Scala](https://www.baeldung.com/scala/akka-streams) +- [Reading CSV Files Using Akka-Streams](https://www.baeldung.com/scala/akka-streams-read-csv-file) From 7dc14b2505ce0f81a39452a5fa89f54bdc8234e9 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Mon, 18 Dec 2023 20:14:36 +0100 Subject: [PATCH 0234/1318] Reverted deletion of junit-5 module --- build.sbt | 6 ++++++ scala-test-junit5/README.md | 3 +++ scala-test-junit5/build.sbt | 8 ++++++++ scala-test-junit5/project/plugins.sbt | 1 + .../scala-2/com/baeldung/junit5/ExampleTests.scala | 12 ++++++++++++ 5 files changed, 30 insertions(+) create mode 100644 scala-test-junit5/README.md create mode 100644 scala-test-junit5/build.sbt create mode 100644 scala-test-junit5/project/plugins.sbt create mode 100644 scala-test-junit5/src/test/scala-2/com/baeldung/junit5/ExampleTests.scala diff --git a/build.sbt b/build.sbt index 2d459910c..38eeda102 100644 --- a/build.sbt +++ b/build.sbt @@ -228,6 +228,12 @@ lazy val scala_test_junit4 = (project in file("scala-test-junit4")) ) ) +lazy val scala_test_junit5 = (project in file("scala-test-junit5")) + .settings( + name := "scala-test-junit5", + scalaVersion := scala3Version + ) + lazy val scala_akka = (project in file("scala-akka")) .configs(IntegrationTest) .settings( diff --git a/scala-test-junit5/README.md b/scala-test-junit5/README.md new file mode 100644 index 000000000..d28942203 --- /dev/null +++ b/scala-test-junit5/README.md @@ -0,0 +1,3 @@ +### Relevant Articles: + +- [Testing Scala with JUnit](https://www.baeldung.com/scala/junit-testing) diff --git a/scala-test-junit5/build.sbt b/scala-test-junit5/build.sbt new file mode 100644 index 000000000..c329c0966 --- /dev/null +++ b/scala-test-junit5/build.sbt @@ -0,0 +1,8 @@ +name := "scala-test-junit-5" +organization := "com.baeldung" + +version := "1.0-SNAPSHOT" + +resolvers += Resolver.jcenterRepo + +libraryDependencies += "net.aichler" % "jupiter-interface" % JupiterKeys.jupiterVersion.value % Test diff --git a/scala-test-junit5/project/plugins.sbt b/scala-test-junit5/project/plugins.sbt new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/scala-test-junit5/project/plugins.sbt @@ -0,0 +1 @@ + diff --git a/scala-test-junit5/src/test/scala-2/com/baeldung/junit5/ExampleTests.scala b/scala-test-junit5/src/test/scala-2/com/baeldung/junit5/ExampleTests.scala new file mode 100644 index 000000000..7f32c5e8c --- /dev/null +++ b/scala-test-junit5/src/test/scala-2/com/baeldung/junit5/ExampleTests.scala @@ -0,0 +1,12 @@ +package com.baeldung.junit5 + +import org.junit.jupiter.api.Disabled +import org.junit.jupiter.api.Test + +class ExampleTests { + + @Disabled("Not implemented yet") + @Test + def testNotImplemented() {} + +} From 43250d588238cd66c4c43e59ac37ef1517ecbcdd Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 20 Dec 2023 00:13:06 +0000 Subject: [PATCH 0235/1318] Update aws-java-sdk-s3 from 1.12.610 to 1.12.622 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 38eeda102..5d2baf7bc 100644 --- a/build.sbt +++ b/build.sbt @@ -414,7 +414,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "software.amazon.awssdk" % "s3" % "2.21.43" ), libraryDependencies ++= Seq( - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.610" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.622" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.0" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.0" % IntegrationTest ), From 5db5be990ade6b4fc9bebe6affdefc79d471df26 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 20 Dec 2023 00:13:17 +0000 Subject: [PATCH 0236/1318] Update elastic4s-client-esjava, ... from 8.11.3 to 8.11.5 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 38eeda102..df1639c54 100644 --- a/build.sbt +++ b/build.sbt @@ -303,7 +303,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) val circeVersion = "0.14.6" val monixVersion = "3.4.1" -val elastic4sVersion = "8.11.3" +val elastic4sVersion = "8.11.5" val sparkVersion = "3.5.0" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion From 12d1bdfad18bcd13d078508ad1163f46fb7e7f24 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 20 Dec 2023 00:13:34 +0000 Subject: [PATCH 0237/1318] Update de.flapdoodle.embed.mongo from 4.11.1 to 4.12.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 38eeda102..de975a59b 100644 --- a/build.sbt +++ b/build.sbt @@ -10,7 +10,7 @@ val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.2" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.2" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV val logback = "ch.qos.logback" % "logback-classic" % "1.4.14" -val embedMongoVersion = "4.11.1" +val embedMongoVersion = "4.12.0" val scalaTestDeps = Seq( "org.scalatest" %% "scalatest" % "3.2.17" % Test, From 9b24685e72431c53601fd2f83dd3934c72a26578 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 20 Dec 2023 00:13:44 +0000 Subject: [PATCH 0238/1318] Update zio, zio-streams, zio-test, ... from 2.0.19 to 2.0.20 --- build.sbt | 2 +- zio/build.sbt | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index 38eeda102..385f4f620 100644 --- a/build.sbt +++ b/build.sbt @@ -20,7 +20,7 @@ val scalaTestDeps = Seq( ) val scalaMock = "org.scalamock" %% "scalamock" % "5.2.0" % Test -val zioVersion = "2.0.19" +val zioVersion = "2.0.20" lazy val scala_core = (project in file("scala-core-modules/scala-core")) .settings( diff --git a/zio/build.sbt b/zio/build.sbt index 340afe151..880326fa2 100644 --- a/zio/build.sbt +++ b/zio/build.sbt @@ -8,9 +8,9 @@ libraryDependencies ++= Seq( ) libraryDependencies ++= Seq( - "dev.zio" %% "zio-test" % "2.0.19" % Test, + "dev.zio" %% "zio-test" % "2.0.20" % Test, "dev.zio" %% "zio-test-sbt" % "2.0.16" % Test, - "dev.zio" %% "zio-test-magnolia" % "2.0.19" % Test, + "dev.zio" %% "zio-test-magnolia" % "2.0.20" % Test, "dev.zio" %% "zio-http-testkit" % "3.0.0-RC2" % Test ) testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework") From cac87e99420fd6362077ce5ff9ad230a0cdb14ac Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 20 Dec 2023 00:13:59 +0000 Subject: [PATCH 0239/1318] Update jupiter-interface, ... from 0.8.4 to 0.11.1 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index bccf3f766..5adfbcfa7 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -17,6 +17,6 @@ libraryDependencies += "org.scala-js" %% "scalajs-env-jsdom-nodejs" % "1.1.0" resolvers += Resolver.jcenterRepo -addSbtPlugin("net.aichler" % "sbt-jupiter-interface" % "0.8.4") +addSbtPlugin("net.aichler" % "sbt-jupiter-interface" % "0.11.1") ThisBuild / libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always From 823a076d3bc84d325aefd72b0cf8ea01283328de Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 20 Dec 2023 00:14:08 +0000 Subject: [PATCH 0240/1318] Update jetty-webapp from 11.0.18 to 11.0.19 --- scalatra/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scalatra/build.sbt b/scalatra/build.sbt index f9c0f0be3..130949ea4 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -9,7 +9,7 @@ libraryDependencies ++= Seq( "org.scalatra" %% "scalatra" % ScalatraVersion, "org.scalatra" %% "scalatra-scalatest" % ScalatraVersion % "test", "ch.qos.logback" % "logback-classic" % "1.4.14" % "runtime", - "org.eclipse.jetty" % "jetty-webapp" % "11.0.18" % "container", + "org.eclipse.jetty" % "jetty-webapp" % "11.0.19" % "container", "javax.servlet" % "javax.servlet-api" % "4.0.1" % "provided", "org.scalatra" %% "scalatra-auth" % ScalatraVersion, "org.scalatra" %% "scalatra-json" % "2.8.4", From ccc459b32e176e6069f010ed727e16326208385d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 20 Dec 2023 00:14:28 +0000 Subject: [PATCH 0241/1318] Update play-ahc-ws, play-caffeine-cache, ... from 3.0.0 to 3.0.1 --- play-scala/application-tests/project/plugins.sbt | 2 +- play-scala/async-tasks/project/plugins.sbt | 2 +- play-scala/caching-in-play/project/plugins.sbt | 2 +- play-scala/configuration-access/project/plugins.sbt | 2 +- play-scala/custom-error-handling/project/plugins.sbt | 2 +- play-scala/dependency-injection/project/plugins.sbt | 2 +- play-scala/introduction-to-play/project/plugins.sbt | 2 +- play-scala/play-static-assets/project/plugins.sbt | 2 +- play-scala/play-templates/project/plugins.sbt | 2 +- play-scala/rest-api/project/plugins.sbt | 2 +- project/plugins.sbt | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/play-scala/application-tests/project/plugins.sbt b/play-scala/application-tests/project/plugins.sbt index ac3d0336e..0bc4abe8a 100644 --- a/play-scala/application-tests/project/plugins.sbt +++ b/play-scala/application-tests/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.0") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.1") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.16.2") diff --git a/play-scala/async-tasks/project/plugins.sbt b/play-scala/async-tasks/project/plugins.sbt index 3003e5a9e..9cd2b2f21 100644 --- a/play-scala/async-tasks/project/plugins.sbt +++ b/play-scala/async-tasks/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.0") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.1") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") diff --git a/play-scala/caching-in-play/project/plugins.sbt b/play-scala/caching-in-play/project/plugins.sbt index f1b17c2d8..f656ef2c4 100644 --- a/play-scala/caching-in-play/project/plugins.sbt +++ b/play-scala/caching-in-play/project/plugins.sbt @@ -1,3 +1,3 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.0") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.1") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.0") diff --git a/play-scala/configuration-access/project/plugins.sbt b/play-scala/configuration-access/project/plugins.sbt index f1b17c2d8..f656ef2c4 100644 --- a/play-scala/configuration-access/project/plugins.sbt +++ b/play-scala/configuration-access/project/plugins.sbt @@ -1,3 +1,3 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.0") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.1") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.0") diff --git a/play-scala/custom-error-handling/project/plugins.sbt b/play-scala/custom-error-handling/project/plugins.sbt index 3003e5a9e..9cd2b2f21 100644 --- a/play-scala/custom-error-handling/project/plugins.sbt +++ b/play-scala/custom-error-handling/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.0") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.1") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") diff --git a/play-scala/dependency-injection/project/plugins.sbt b/play-scala/dependency-injection/project/plugins.sbt index 373101891..83aebd10c 100644 --- a/play-scala/dependency-injection/project/plugins.sbt +++ b/play-scala/dependency-injection/project/plugins.sbt @@ -1,3 +1,3 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.0") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.1") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.2") diff --git a/play-scala/introduction-to-play/project/plugins.sbt b/play-scala/introduction-to-play/project/plugins.sbt index 3003e5a9e..9cd2b2f21 100644 --- a/play-scala/introduction-to-play/project/plugins.sbt +++ b/play-scala/introduction-to-play/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.0") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.1") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") diff --git a/play-scala/play-static-assets/project/plugins.sbt b/play-scala/play-static-assets/project/plugins.sbt index 18f3c1ad9..2886b8ce1 100644 --- a/play-scala/play-static-assets/project/plugins.sbt +++ b/play-scala/play-static-assets/project/plugins.sbt @@ -1,4 +1,4 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.0") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.1") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") addSbtPlugin("com.typesafe.sbt" % "sbt-coffeescript" % "1.0.2") addSbtPlugin("com.github.platypii" % "sbt-typescript" % "4.6.4") diff --git a/play-scala/play-templates/project/plugins.sbt b/play-scala/play-templates/project/plugins.sbt index 3003e5a9e..9cd2b2f21 100644 --- a/play-scala/play-templates/project/plugins.sbt +++ b/play-scala/play-templates/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.0") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.1") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") diff --git a/play-scala/rest-api/project/plugins.sbt b/play-scala/rest-api/project/plugins.sbt index 3003e5a9e..9cd2b2f21 100644 --- a/play-scala/rest-api/project/plugins.sbt +++ b/play-scala/rest-api/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.0") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.1") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") diff --git a/project/plugins.sbt b/project/plugins.sbt index bccf3f766..6d3b093ef 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -7,7 +7,7 @@ addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.2.1") libraryDependencies += "ai.kien" %% "python-native-libs" % "0.2.4" // Make sure to keep the play plugin in sync with the sub modules under play-scala group -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.0") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.1") addSbtPlugin("org.playframework.twirl" % "sbt-twirl" % "2.0.1") addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "4.2.1") From 33346c4d21a74d57879696f1edbba82e89069d7e Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 20 Dec 2023 00:14:43 +0000 Subject: [PATCH 0242/1318] Update sbt-scalajs from 1.13.2 to 1.14.0 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index bccf3f766..c826e256f 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,7 +1,7 @@ addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.2") addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.4.16") -addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.13.2") +addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.14.0") addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.2.1") libraryDependencies += "ai.kien" %% "python-native-libs" % "0.2.4" From b9f289b801bb1adc6a2990d1e3a607e4c200a58c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 20 Dec 2023 00:14:57 +0000 Subject: [PATCH 0243/1318] Update sbt from 1.9.7 to 1.9.8 --- project/build.properties | 2 +- scalatra/project/build.properties | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/project/build.properties b/project/build.properties index d92825599..e5ca1ff51 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1,2 +1,2 @@ -sbt.version=1.9.7 +sbt.version=1.9.8 diff --git a/scalatra/project/build.properties b/scalatra/project/build.properties index e8a1e246e..abbbce5da 100644 --- a/scalatra/project/build.properties +++ b/scalatra/project/build.properties @@ -1 +1 @@ -sbt.version=1.9.7 +sbt.version=1.9.8 From bdbb9954bf3bddd82c17bfd5f7ce3e3657f9388f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 20 Dec 2023 00:15:12 +0000 Subject: [PATCH 0244/1318] Update s3 from 2.21.43 to 2.21.46 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 38eeda102..d7d5c9b73 100644 --- a/build.sbt +++ b/build.sbt @@ -411,7 +411,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "org.testcontainers" % "pulsar" % "1.19.3" % IntegrationTest ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "s3" % "2.21.43" + "software.amazon.awssdk" % "s3" % "2.21.46" ), libraryDependencies ++= Seq( "com.amazonaws" % "aws-java-sdk-s3" % "1.12.610" % IntegrationTest, From e34a7dde9e38cb58a7ea7e6b58da92d87d1c2ce0 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 20 Dec 2023 08:25:46 +0100 Subject: [PATCH 0245/1318] ci(Mergify): configuration update Signed-off-by: Yadu Krishnan --- .mergify.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.mergify.yml b/.mergify.yml index 6e8d93828..5f08d5a26 100644 --- a/.mergify.yml +++ b/.mergify.yml @@ -3,7 +3,9 @@ pull_request_rules: conditions: - label!=early-semver-major - label!=semver-spec-major - - "#files=1" + - or: + - files~=\.sbt$ + - files~=ScalaVersions.scala - "#approved-reviews-by>=1" - check-success=CI - Jenkins - author=scala-steward-baeldung[bot] From d5f9f1fc752e3ff4a259adf93e333fb3f998b8cc Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 20 Dec 2023 08:28:38 +0100 Subject: [PATCH 0246/1318] Moved zio libraries to main build.sbt --- build.sbt | 12 ++++++++++++ zio/build.sbt | 17 ----------------- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/build.sbt b/build.sbt index 38eeda102..3b7c0e65e 100644 --- a/build.sbt +++ b/build.sbt @@ -526,6 +526,18 @@ lazy val zio = (project in file("zio")) libraryDependencies += "dev.zio" %% "zio" % zioVersion, libraryDependencies += "dev.zio" %% "zio-streams" % zioVersion, libraryDependencies += "dev.zio" %% "zio-test-sbt" % zioVersion % Test, + libraryDependencies ++= Seq( + "dev.zio" %% "zio-json" % "0.6.2", + "dev.zio" %% "zio-http" % "3.0.0-RC2", + "io.getquill" %% "quill-zio" % "4.6.0", + "io.getquill" %% "quill-jdbc-zio" % "4.6.0", + "com.h2database" % "h2" % "2.2.220" + ), + libraryDependencies ++= Seq( + "dev.zio" %% "zio-test" % zioVersion % Test, + "dev.zio" %% "zio-test-magnolia" % zioVersion % Test, + "dev.zio" %% "zio-http-testkit" % "3.0.0-RC2" % Test + ), testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework") ) diff --git a/zio/build.sbt b/zio/build.sbt index 340afe151..6dbf94cfe 100644 --- a/zio/build.sbt +++ b/zio/build.sbt @@ -1,18 +1 @@ -libraryDependencies ++= Seq( - "dev.zio" %% "zio" % "2.0.15", - "dev.zio" %% "zio-json" % "0.6.2", - "dev.zio" %% "zio-http" % "3.0.0-RC2", - "io.getquill" %% "quill-zio" % "4.6.0", - "io.getquill" %% "quill-jdbc-zio" % "4.6.0", - "com.h2database" % "h2" % "2.2.220" -) - -libraryDependencies ++= Seq( - "dev.zio" %% "zio-test" % "2.0.19" % Test, - "dev.zio" %% "zio-test-sbt" % "2.0.16" % Test, - "dev.zio" %% "zio-test-magnolia" % "2.0.19" % Test, - "dev.zio" %% "zio-http-testkit" % "3.0.0-RC2" % Test -) -testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework") - run / fork := true From 5acfaa67a2c49d383db47f73df9a3073c1e3263c Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 20 Dec 2023 17:12:55 +0100 Subject: [PATCH 0247/1318] ci(Mergify): configuration update Signed-off-by: Yadu Krishnan --- .mergify.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.mergify.yml b/.mergify.yml index 5f08d5a26..ff85d1911 100644 --- a/.mergify.yml +++ b/.mergify.yml @@ -6,6 +6,7 @@ pull_request_rules: - or: - files~=\.sbt$ - files~=ScalaVersions.scala + - files~=build.properties - "#approved-reviews-by>=1" - check-success=CI - Jenkins - author=scala-steward-baeldung[bot] From 149249dc42caaa838a8ab3e4d419b1262848a7a4 Mon Sep 17 00:00:00 2001 From: Oscar Mauricio Forero Carrillo Date: Fri, 22 Dec 2023 08:39:46 +0100 Subject: [PATCH 0248/1318] SCALA-120: Code for the article (#1069) --- .../scala/braces/DoubleEdgedSword.scala | 12 +++++ .../baeldung/scala/braces/NoParenthesis.scala | 14 +++++ .../scala/braces/ScalaBlockExamples.scala | 52 +++++++++++++++++++ .../baeldung/scala/braces/TimingExample.scala | 20 +++++++ .../scala/braces/project/build.properties | 1 + 5 files changed, 99 insertions(+) create mode 100644 scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/braces/DoubleEdgedSword.scala create mode 100644 scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/braces/NoParenthesis.scala create mode 100644 scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/braces/ScalaBlockExamples.scala create mode 100644 scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/braces/TimingExample.scala create mode 100644 scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/braces/project/build.properties diff --git a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/braces/DoubleEdgedSword.scala b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/braces/DoubleEdgedSword.scala new file mode 100644 index 000000000..01ada1519 --- /dev/null +++ b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/braces/DoubleEdgedSword.scala @@ -0,0 +1,12 @@ +package com.baeldung.scala.braces + +object DoubleEdgedSword extends App { + def process(value: Int): Int = value * 2 + + val result = process { + 1 + 2 + 5 // This is the actual integer passed to process + } + + println(result) +} diff --git a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/braces/NoParenthesis.scala b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/braces/NoParenthesis.scala new file mode 100644 index 000000000..c8649371e --- /dev/null +++ b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/braces/NoParenthesis.scala @@ -0,0 +1,14 @@ +package com.baeldung.scala.braces + +object NoParenthesis extends App { + def greet(name: String): Unit = { + println(s"Hello, $name!") + } + + // This won't work + // greet "Alice" + + // But this works and it equivalent to greet("Alice") + this greet "Alice" + +} diff --git a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/braces/ScalaBlockExamples.scala b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/braces/ScalaBlockExamples.scala new file mode 100644 index 000000000..4e39ce971 --- /dev/null +++ b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/braces/ScalaBlockExamples.scala @@ -0,0 +1,52 @@ +package com.baeldung.scala.braces + +object ScalaBlockExamples extends App { + // A simple block returning a value + val a = { + val x = 5 + val y = 10 + // The last expression is the value of the block + x + y + } + println(s"Value of a: $a") // Output: Value of a: 15 + + // Block in an if-else construct + val number = 7 + val result = if (number > 5) { + // This block is executed because the condition is true + "Greater than 5" + } else { + "Not greater than 5" + } + println(s"Result: $result") // Output: Result: Greater than 5 + + // Block in a function definition + def square(x: Int) = { + // A block defining the body of the function + x * x + } + println(s"Square of 4: ${square(4)}") // Output: Square of 4: 16 + + // Block as an argument to a higher-order function + val numbers = List(1, 2, 3, 4, 5) + val doubledNumbers = numbers.map { n => + // A block that is passed as a lambda to the map function + n * 2 + } + println( + s"Doubled numbers: $doubledNumbers" + ) // Output: Doubled numbers: List(2, 4, 6, 8, 10) + + // Block in a for-comprehension + val squares = for { + n <- numbers + if n % 2 == 0 // Filtering even numbers + } yield { + // A block that computes the square of each number + n * n + } + + println(s"Squares of even numbers: $squares") + // Output: Squares of even numbers: List(4, 16) + +} diff --git a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/braces/TimingExample.scala b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/braces/TimingExample.scala new file mode 100644 index 000000000..04c103f5e --- /dev/null +++ b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/braces/TimingExample.scala @@ -0,0 +1,20 @@ +package com.baeldung.scala.braces + +object TimingExample extends App { + def measureTime[T](block: => T): (T, Long) = { + val startTime = System.nanoTime() + val result = block + val endTime = System.nanoTime() + (result, endTime - startTime) + } + + // Using the measureTime method with braces + val (result, time) = measureTime { + // Code block whose execution time is to be measured + val numbers = (1 to 1000000).toList + numbers.filter(_ % 2 == 0).sum + } + + println(s"Result: $result") + println(s"Execution Time: $time nanoseconds") +} diff --git a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/braces/project/build.properties b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/braces/project/build.properties new file mode 100644 index 000000000..e8a1e246e --- /dev/null +++ b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/braces/project/build.properties @@ -0,0 +1 @@ +sbt.version=1.9.7 From b2fbc13cbcc86f9bea1dca47a5df7090638ed1eb Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 23 Dec 2023 10:22:03 +0100 Subject: [PATCH 0249/1318] Moved to appropriate module --- build.sbt | 4 ++-- .../baeldung/scala/strings}/acronym/AcronymGenerator.scala | 2 +- .../scala/strings}/acronym/AcronymGeneratorUnitTest.scala | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) rename {scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala => scala-strings/src/main/scala/com/baeldung/scala/strings}/acronym/AcronymGenerator.scala (83%) rename {scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala => scala-strings/src/test/scala/com/baeldung/scala/strings}/acronym/AcronymGeneratorUnitTest.scala (97%) diff --git a/build.sbt b/build.sbt index e3acf1439..e2336f522 100644 --- a/build.sbt +++ b/build.sbt @@ -105,7 +105,6 @@ lazy val scala_core_8 = (project in file("scala-core-modules/scala-core-8")) scalaVersion := scala3Version, libraryDependencies += "org.scala-lang.modules" %% "scala-java8-compat" % "1.0.2", libraryDependencies += "com.typesafe" % "config" % "1.2.1", - libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.17.0" % Test // scalacOptions += "-Ymacro-debug-lite" ) @@ -468,7 +467,8 @@ lazy val scala_strings = (project in file("scala-strings")) scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps, libraryDependencies += jUnitInterface, - libraryDependencies += "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" + libraryDependencies += "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4", + libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.17.0" % Test ) lazy val scala_design_patterns = (project in file("scala-design-patterns")) diff --git a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/acronym/AcronymGenerator.scala b/scala-strings/src/main/scala/com/baeldung/scala/strings/acronym/AcronymGenerator.scala similarity index 83% rename from scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/acronym/AcronymGenerator.scala rename to scala-strings/src/main/scala/com/baeldung/scala/strings/acronym/AcronymGenerator.scala index a5f8cb3ae..ec96e93b9 100644 --- a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/acronym/AcronymGenerator.scala +++ b/scala-strings/src/main/scala/com/baeldung/scala/strings/acronym/AcronymGenerator.scala @@ -1,4 +1,4 @@ -package com.baeldung.scala.acronym +package com.baeldung.scala.strings.acronym object AcronymGenerator { def acronymUsingSplit(text: String): String = { diff --git a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/acronym/AcronymGeneratorUnitTest.scala b/scala-strings/src/test/scala/com/baeldung/scala/strings/acronym/AcronymGeneratorUnitTest.scala similarity index 97% rename from scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/acronym/AcronymGeneratorUnitTest.scala rename to scala-strings/src/test/scala/com/baeldung/scala/strings/acronym/AcronymGeneratorUnitTest.scala index 79786e63a..72ee0c7c2 100644 --- a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/acronym/AcronymGeneratorUnitTest.scala +++ b/scala-strings/src/test/scala/com/baeldung/scala/strings/acronym/AcronymGeneratorUnitTest.scala @@ -1,4 +1,4 @@ -package com.baeldung.scala.acronym +package com.baeldung.scala.strings.acronym import org.scalatest.flatspec.AnyFlatSpec import org.scalatestplus.scalacheck.ScalaCheckPropertyChecks From 9ff9c52d906ca1bf6f5c8e4857dd8ff23647357a Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 23 Dec 2023 10:22:55 +0100 Subject: [PATCH 0250/1318] Moved to appropriate module --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index e2336f522..7661c8df4 100644 --- a/build.sbt +++ b/build.sbt @@ -104,7 +104,7 @@ lazy val scala_core_8 = (project in file("scala-core-modules/scala-core-8")) libraryDependencies ++= scalaTestDeps, scalaVersion := scala3Version, libraryDependencies += "org.scala-lang.modules" %% "scala-java8-compat" % "1.0.2", - libraryDependencies += "com.typesafe" % "config" % "1.2.1", + libraryDependencies += "com.typesafe" % "config" % "1.2.1" // scalacOptions += "-Ymacro-debug-lite" ) From 255e31cf31e4e0b0b0d146c6a1abc9f41358adb6 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 26 Dec 2023 22:21:56 +0100 Subject: [PATCH 0251/1318] Added for random password generation --- build.sbt | 3 +- .../passwordgen/RandomPasswordGenerator.scala | 80 +++++++++++++++++++ .../RandomPasswordGeneratorUnitTest.scala | 77 ++++++++++++++++++ 3 files changed, 159 insertions(+), 1 deletion(-) create mode 100644 scala-strings/src/main/scala/com/baeldung/scala/strings/passwordgen/RandomPasswordGenerator.scala create mode 100644 scala-strings/src/test/scala/com/baeldung/scala/strings/passwordgen/RandomPasswordGeneratorUnitTest.scala diff --git a/build.sbt b/build.sbt index 593544d01..c265d199f 100644 --- a/build.sbt +++ b/build.sbt @@ -473,7 +473,8 @@ lazy val scala_strings = (project in file("scala-strings")) scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps, libraryDependencies += jUnitInterface, - libraryDependencies += "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" + libraryDependencies += "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4", + libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.17.0" % Test ) lazy val scala_design_patterns = (project in file("scala-design-patterns")) diff --git a/scala-strings/src/main/scala/com/baeldung/scala/strings/passwordgen/RandomPasswordGenerator.scala b/scala-strings/src/main/scala/com/baeldung/scala/strings/passwordgen/RandomPasswordGenerator.scala new file mode 100644 index 000000000..6fb1b32ad --- /dev/null +++ b/scala-strings/src/main/scala/com/baeldung/scala/strings/passwordgen/RandomPasswordGenerator.scala @@ -0,0 +1,80 @@ +package com.baeldung.scala.strings.passwordgen + +import java.security.SecureRandom +import scala.util.Random + +object RandomPasswordGenerator { + + def randomAlphaNumericString: String = { + Random.alphanumeric.take(16).mkString + } + + def randomString: String = { + Iterator.continually(Random.nextPrintableChar()).take(16).mkString + } + + def randomStringWithSpecificSpecialChars: String = { + def isSupportedChar(char: Char): Boolean = + char.isLetterOrDigit || Set('*', '_', '&', '@').contains(char) + Iterator + .continually(Random.nextPrintableChar()) + .filter(isSupportedChar) + .take(16) + .mkString + } + + def randomAlphaNumericSecurePwd: String = { + val alphanumericChars = ('0' to '9') ++ ('A' to 'Z') ++ ('a' to 'z') + val random = new SecureRandom() + Iterator + .continually(alphanumericChars(random.nextInt(alphanumericChars.length))) + .take(16) + .mkString + } + + def randomSecurePwdWithSpecialChars: String = { + val printableChars = (33 to 126).map(_.toChar) // ASCII printable characters + val random = new SecureRandom() + Iterator + .continually(printableChars(random.nextInt(printableChars.length))) + .take(16) + .mkString + } + + def randomSecurePwdWithExclusions: String = { + val printableChars = (33 to 126).map(_.toChar) // ASCII printable characters + val excludedChars = Set('O', 'o', 'l', '1', '0', '`') + val random = new SecureRandom() + Iterator + .continually(printableChars(random.nextInt(printableChars.length))) + .filterNot(excludedChars.contains) + .take(16) + .mkString + } + + def randomSecurePwdWithMix: String = { + val lowerLetters = 'a' to 'z' + val upperLetters = 'A' to 'Z' + val numbers = '0' to '9' + val specialChars = IndexedSeq('!', '@', '#', '$', '&', '*', '?', '^', '(', ')') + val fullCharset = lowerLetters ++ upperLetters ++ numbers ++ specialChars + val random = new SecureRandom() + + def pickRandomChars(charSet: IndexedSeq[Char], size: Int): List[Char] = { + Iterator + .continually(charSet(random.nextInt(charSet.length))) + .take(size) + .toList + } + + val passwordChars: List[Char] = pickRandomChars(lowerLetters, 1) ++ + pickRandomChars(upperLetters, 1) ++ + pickRandomChars(numbers, 1) ++ + pickRandomChars(specialChars, 1) ++ + pickRandomChars(fullCharset, 12) + + Random.shuffle(passwordChars).mkString + + } + +} diff --git a/scala-strings/src/test/scala/com/baeldung/scala/strings/passwordgen/RandomPasswordGeneratorUnitTest.scala b/scala-strings/src/test/scala/com/baeldung/scala/strings/passwordgen/RandomPasswordGeneratorUnitTest.scala new file mode 100644 index 000000000..dc349b237 --- /dev/null +++ b/scala-strings/src/test/scala/com/baeldung/scala/strings/passwordgen/RandomPasswordGeneratorUnitTest.scala @@ -0,0 +1,77 @@ +package com.baeldung.scala.strings.passwordgen + +import org.scalacheck.Gen +import org.scalatest.matchers.should.Matchers +import org.scalatest.wordspec.AnyWordSpec +import org.scalatestplus.scalacheck.ScalaCheckPropertyChecks + +class RandomPasswordGeneratorUnitTest + extends AnyWordSpec + with Matchers + with ScalaCheckPropertyChecks { + + "RandomPasswordGenerator" should { + "generate alpha numeric random string" in { + forAll(Gen.const(())) { _ => + val pwd = RandomPasswordGenerator.randomAlphaNumericString + pwd should have size 16 + pwd.forall(_.isLetterOrDigit) shouldBe true + } + } + + "generate random string - might contain alpha-numeric-special" in { + forAll(Gen.const(())) { _ => + val pwd = RandomPasswordGenerator.randomString + pwd should have size 16 + pwd.exists(_ == ' ') shouldBe false + } + } + + "generate random string - might contain alpha-numeric and only special characters *, _, &, @" in { + forAll(Gen.const(())) { _ => + val pwd = RandomPasswordGenerator.randomStringWithSpecificSpecialChars + withClue(s"Failed for generated password : $pwd ") { + pwd should have size 16 + pwd.exists(_ == ' ') shouldBe false + pwd.exists(Set('!', ')', '(', '^').contains(_)) shouldBe false + } + } + } + + "generate alpha numeric secure password" in { + forAll { (_: Int) => + val password = RandomPasswordGenerator.randomAlphaNumericSecurePwd + password.length shouldBe 16 + password.forall(_.isLetterOrDigit) shouldBe true + } + } + + "generate secure password including special characters" in { + forAll { (_: Unit) => + val password = RandomPasswordGenerator.randomSecurePwdWithSpecialChars + password.length shouldBe 16 + password.forall(c => (33 to 126).contains(c.toInt)) shouldBe true + } + } + + "generate secure password excluding some special characters" in { + forAll { (_: Unit) => + val password = RandomPasswordGenerator.randomSecurePwdWithExclusions + password.length shouldBe 16 + password should not contain oneOf('O', 'o', 'l', '1', '0', '`') + } + } + + "generate secure password with mix of condition" in { + forAll { (_:Unit) => + val password = RandomPasswordGenerator.randomSecurePwdWithMix + password.length shouldBe 16 + password.exists(_.isLower) shouldBe true + password.exists(_.isUpper) shouldBe true + password.exists(_.isDigit) shouldBe true + password.exists(IndexedSeq('!', '@', '#', '$', '&', '*', '?', '^', '(', ')').contains) shouldBe true + } + } + } + +} From d0d291f97df81eadbacbad268ed240a4b32d6f1d Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 26 Dec 2023 22:22:10 +0100 Subject: [PATCH 0252/1318] Added for random password generation --- .../scala/strings/passwordgen/RandomPasswordGenerator.scala | 3 ++- .../passwordgen/RandomPasswordGeneratorUnitTest.scala | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/scala-strings/src/main/scala/com/baeldung/scala/strings/passwordgen/RandomPasswordGenerator.scala b/scala-strings/src/main/scala/com/baeldung/scala/strings/passwordgen/RandomPasswordGenerator.scala index 6fb1b32ad..aca154ba8 100644 --- a/scala-strings/src/main/scala/com/baeldung/scala/strings/passwordgen/RandomPasswordGenerator.scala +++ b/scala-strings/src/main/scala/com/baeldung/scala/strings/passwordgen/RandomPasswordGenerator.scala @@ -56,7 +56,8 @@ object RandomPasswordGenerator { val lowerLetters = 'a' to 'z' val upperLetters = 'A' to 'Z' val numbers = '0' to '9' - val specialChars = IndexedSeq('!', '@', '#', '$', '&', '*', '?', '^', '(', ')') + val specialChars = + IndexedSeq('!', '@', '#', '$', '&', '*', '?', '^', '(', ')') val fullCharset = lowerLetters ++ upperLetters ++ numbers ++ specialChars val random = new SecureRandom() diff --git a/scala-strings/src/test/scala/com/baeldung/scala/strings/passwordgen/RandomPasswordGeneratorUnitTest.scala b/scala-strings/src/test/scala/com/baeldung/scala/strings/passwordgen/RandomPasswordGeneratorUnitTest.scala index dc349b237..2277d663b 100644 --- a/scala-strings/src/test/scala/com/baeldung/scala/strings/passwordgen/RandomPasswordGeneratorUnitTest.scala +++ b/scala-strings/src/test/scala/com/baeldung/scala/strings/passwordgen/RandomPasswordGeneratorUnitTest.scala @@ -63,13 +63,15 @@ class RandomPasswordGeneratorUnitTest } "generate secure password with mix of condition" in { - forAll { (_:Unit) => + forAll { (_: Unit) => val password = RandomPasswordGenerator.randomSecurePwdWithMix password.length shouldBe 16 password.exists(_.isLower) shouldBe true password.exists(_.isUpper) shouldBe true password.exists(_.isDigit) shouldBe true - password.exists(IndexedSeq('!', '@', '#', '$', '&', '*', '?', '^', '(', ')').contains) shouldBe true + password.exists( + IndexedSeq('!', '@', '#', '$', '&', '*', '?', '^', '(', ')').contains + ) shouldBe true } } } From 9f3e8b86a2873986b1a230c512285ad5df282c55 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 28 Dec 2023 00:14:52 +0000 Subject: [PATCH 0253/1318] Update aws-java-sdk-s3 from 1.12.622 to 1.12.627 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 407c0c5a4..946f9c984 100644 --- a/build.sbt +++ b/build.sbt @@ -414,7 +414,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "software.amazon.awssdk" % "s3" % "2.21.46" ), libraryDependencies ++= Seq( - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.622" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.627" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.0" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.0" % IntegrationTest ), From 1e31ca402cb9e70fa597885b71d09010396c1fbb Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 28 Dec 2023 00:15:03 +0000 Subject: [PATCH 0254/1318] Update jackson-databind from 2.16.0 to 2.16.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 407c0c5a4..3b457174a 100644 --- a/build.sbt +++ b/build.sbt @@ -429,7 +429,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) val spireVersion = "0.18.0" val kafkaVersion = "7.5.2-ce" val pureconfigVersion = "0.17.4" -val jackSonVersion = "2.16.0" +val jackSonVersion = "2.16.1" val log4jApiScalaVersion = "13.0.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.1" From a69a1da25765585faf5fe07096ebbbc8ad311226 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 28 Dec 2023 00:15:21 +0000 Subject: [PATCH 0255/1318] Update jackson-datatype-jsr310 from 2.16.0 to 2.16.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 407c0c5a4..3b457174a 100644 --- a/build.sbt +++ b/build.sbt @@ -429,7 +429,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) val spireVersion = "0.18.0" val kafkaVersion = "7.5.2-ce" val pureconfigVersion = "0.17.4" -val jackSonVersion = "2.16.0" +val jackSonVersion = "2.16.1" val log4jApiScalaVersion = "13.0.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.1" From 310841404e45cfe84e6ba78c1443a72e259beb02 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 28 Dec 2023 00:15:37 +0000 Subject: [PATCH 0256/1318] Update jackson-module-scala from 2.16.0 to 2.16.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 407c0c5a4..3b457174a 100644 --- a/build.sbt +++ b/build.sbt @@ -429,7 +429,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) val spireVersion = "0.18.0" val kafkaVersion = "7.5.2-ce" val pureconfigVersion = "0.17.4" -val jackSonVersion = "2.16.0" +val jackSonVersion = "2.16.1" val log4jApiScalaVersion = "13.0.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.1" From 6cd2c8a1c13ad08e1238ea86823e2d633b0b129f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 28 Dec 2023 00:15:53 +0000 Subject: [PATCH 0257/1318] Update kafka-avro-serializer from 7.5.2 to 7.5.3 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 407c0c5a4..b2b22e2f6 100644 --- a/build.sbt +++ b/build.sbt @@ -433,7 +433,7 @@ val jackSonVersion = "2.16.0" val log4jApiScalaVersion = "13.0.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.1" -val kafkaAvroSerializer = "7.5.2" +val kafkaAvroSerializer = "7.5.3" lazy val scala_libraries_5 = (project in file("scala-libraries-5")) .settings( From a46e7db819121f31488b71e4bf2929089b6fc649 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 28 Dec 2023 00:16:13 +0000 Subject: [PATCH 0258/1318] Update kafka-clients from 7.5.2-ce to 7.5.3-ce --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 407c0c5a4..271a0cf1a 100644 --- a/build.sbt +++ b/build.sbt @@ -427,7 +427,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) ) val spireVersion = "0.18.0" -val kafkaVersion = "7.5.2-ce" +val kafkaVersion = "7.5.3-ce" val pureconfigVersion = "0.17.4" val jackSonVersion = "2.16.0" val log4jApiScalaVersion = "13.0.0" From d72f488731ebbaae169193d73ea30ebd14cf57da Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 28 Dec 2023 00:16:22 +0000 Subject: [PATCH 0259/1318] Update log4j-core from 2.22.0 to 2.22.1 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 407c0c5a4..dce2880d7 100644 --- a/build.sbt +++ b/build.sbt @@ -371,7 +371,7 @@ lazy val scala_libraries_3 = (project in file("scala-libraries-3")) libraryDependencies += "com.softwaremill.retry" %% "retry" % "0.3.6", libraryDependencies ++= Seq( "org.apache.logging.log4j" %% "log4j-api-scala" % "13.0.0", - "org.apache.logging.log4j" % "log4j-core" % "2.22.0" % Runtime + "org.apache.logging.log4j" % "log4j-core" % "2.22.1" % Runtime ), libraryDependencies += "com.lihaoyi" %% "os-lib" % osLibVersion ) @@ -383,7 +383,7 @@ lazy val scala_libraries_os = (project in file("scala-libraries-os")) libraryDependencies ++= scalaTestDeps, libraryDependencies ++= Seq( "org.apache.logging.log4j" %% "log4j-api-scala" % "13.0.0", - "org.apache.logging.log4j" % "log4j-core" % "2.22.0" % Runtime + "org.apache.logging.log4j" % "log4j-core" % "2.22.1" % Runtime ), libraryDependencies += "com.lihaoyi" %% "os-lib" % osLibVersion ) From 5cce80f3afe744df4daad2c3df6c7153c0cc8fff Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 28 Dec 2023 00:16:41 +0000 Subject: [PATCH 0260/1318] Update scalatestplus-play from 7.0.0 to 7.0.1 --- play-scala/application-tests/build.sbt | 2 +- play-scala/caching-in-play/build.sbt | 2 +- play-scala/configuration-access/build.sbt | 2 +- play-scala/custom-error-handling/build.sbt | 2 +- play-scala/dependency-injection/build.sbt | 2 +- play-scala/introduction-to-play/build.sbt | 2 +- play-scala/play-static-assets/build.sbt | 2 +- play-scala/play-templates/build.sbt | 2 +- play-scala/rest-api/build.sbt | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/play-scala/application-tests/build.sbt b/play-scala/application-tests/build.sbt index a20452e62..397cc51c0 100644 --- a/play-scala/application-tests/build.sbt +++ b/play-scala/application-tests/build.sbt @@ -12,5 +12,5 @@ libraryDependencies += "com.h2database" % "h2" % "1.4.200" libraryDependencies += "org.postgresql" % "postgresql" % "42.2.27" libraryDependencies += "org.playframework" %% "play-slick" % "6.0.0" libraryDependencies += "org.playframework" %% "play-slick-evolutions" % "6.0.0" -libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.0" % Test +libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % Test libraryDependencies += "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % Test diff --git a/play-scala/caching-in-play/build.sbt b/play-scala/caching-in-play/build.sbt index e77c4b543..6f74edd35 100644 --- a/play-scala/caching-in-play/build.sbt +++ b/play-scala/caching-in-play/build.sbt @@ -10,7 +10,7 @@ scalaVersion := ScalaVersions.scala2Version libraryDependencies += guice libraryDependencies += caffeine libraryDependencies += ws -libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.0" % Test +libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % Test libraryDependencies += "org.mockito" % "mockito-core" % "5.8.0" % Test PlayKeys.devSettings += "play.server.http.port" -> "9000" diff --git a/play-scala/configuration-access/build.sbt b/play-scala/configuration-access/build.sbt index d4d2c1d59..6a394dffe 100644 --- a/play-scala/configuration-access/build.sbt +++ b/play-scala/configuration-access/build.sbt @@ -8,7 +8,7 @@ enablePlugins(PlayScala) scalaVersion := ScalaVersions.scala2Version libraryDependencies += guice -libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.0" % Test +libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % Test libraryDependencies += "org.mockito" % "mockito-scala_2.13" % "1.17.30" % Test // Adds additional packages into Twirl diff --git a/play-scala/custom-error-handling/build.sbt b/play-scala/custom-error-handling/build.sbt index c3575dff5..f6f4fd0a5 100644 --- a/play-scala/custom-error-handling/build.sbt +++ b/play-scala/custom-error-handling/build.sbt @@ -8,4 +8,4 @@ enablePlugins(PlayScala) scalaVersion := ScalaVersions.scala2Version libraryDependencies += guice -libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.0" % Test +libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % Test diff --git a/play-scala/dependency-injection/build.sbt b/play-scala/dependency-injection/build.sbt index 99cfd0a8d..d9313bae8 100644 --- a/play-scala/dependency-injection/build.sbt +++ b/play-scala/dependency-injection/build.sbt @@ -7,6 +7,6 @@ enablePlugins(PlayScala) scalaVersion := ScalaVersions.scala2Version libraryDependencies += guice -libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.0" % Test +libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % Test libraryDependencies += "com.softwaremill.macwire" %% "macros" % "2.5.9" % Provided libraryDependencies += "com.softwaremill.macwire" %% "util" % "2.5.9" diff --git a/play-scala/introduction-to-play/build.sbt b/play-scala/introduction-to-play/build.sbt index c6e9b0f68..ce659d126 100644 --- a/play-scala/introduction-to-play/build.sbt +++ b/play-scala/introduction-to-play/build.sbt @@ -8,4 +8,4 @@ enablePlugins(PlayScala) scalaVersion := ScalaVersions.scala2Version libraryDependencies += guice -libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.0" % Test +libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % Test diff --git a/play-scala/play-static-assets/build.sbt b/play-scala/play-static-assets/build.sbt index 05bd08267..0009e7c0b 100644 --- a/play-scala/play-static-assets/build.sbt +++ b/play-scala/play-static-assets/build.sbt @@ -10,7 +10,7 @@ enablePlugins(SbtWeb) scalaVersion := "2.13.12" libraryDependencies += guice -libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.0" % Test +libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % Test libraryDependencies += "org.webjars.bower" % "bootstrap-sass" % "3.3.7" // See https://github.com/sbt/sbt-js-engine/issues/68 diff --git a/play-scala/play-templates/build.sbt b/play-scala/play-templates/build.sbt index 20846a58e..87248526a 100644 --- a/play-scala/play-templates/build.sbt +++ b/play-scala/play-templates/build.sbt @@ -8,4 +8,4 @@ enablePlugins(PlayScala) scalaVersion := ScalaVersions.scala2Version libraryDependencies += guice -libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.0" % Test +libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % Test diff --git a/play-scala/rest-api/build.sbt b/play-scala/rest-api/build.sbt index 79e55e81a..0a87feb62 100644 --- a/play-scala/rest-api/build.sbt +++ b/play-scala/rest-api/build.sbt @@ -8,7 +8,7 @@ enablePlugins(PlayScala) scalaVersion := ScalaVersions.scala2Version libraryDependencies += guice -libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.0" % Test +libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % Test // Adds additional packages into Twirl //TwirlKeys.templateImports += "com.baeldung.controllers._" From 9d08ddcfa3629b7cfcd6853c303d892dca6825f4 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 28 Dec 2023 00:16:54 +0000 Subject: [PATCH 0261/1318] Update s3 from 2.21.46 to 2.22.7 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 407c0c5a4..fe06b5f61 100644 --- a/build.sbt +++ b/build.sbt @@ -411,7 +411,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "org.testcontainers" % "pulsar" % "1.19.3" % IntegrationTest ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "s3" % "2.21.46" + "software.amazon.awssdk" % "s3" % "2.22.7" ), libraryDependencies ++= Seq( "com.amazonaws" % "aws-java-sdk-s3" % "1.12.622" % IntegrationTest, From d999aca4a7544ed87a30c7a8eec4539778139905 Mon Sep 17 00:00:00 2001 From: kateu herbert Date: Thu, 28 Dec 2023 17:17:45 +0300 Subject: [PATCH 0262/1318] renamed package name to lowercase --- .../datavalidation/DataValidation.scala | 129 ++++++++++++++++++ .../datavalidation/DataValidationSpec.scala | 37 +++++ 2 files changed, 166 insertions(+) create mode 100644 scala-libraries-6/src/main/scala-3/com/baeldung/datavalidation/DataValidation.scala create mode 100644 scala-libraries-6/src/test/scala-3/com/baeldung/datavalidation/DataValidationSpec.scala diff --git a/scala-libraries-6/src/main/scala-3/com/baeldung/datavalidation/DataValidation.scala b/scala-libraries-6/src/main/scala-3/com/baeldung/datavalidation/DataValidation.scala new file mode 100644 index 000000000..f1b12f4d4 --- /dev/null +++ b/scala-libraries-6/src/main/scala-3/com/baeldung/datavalidation/DataValidation.scala @@ -0,0 +1,129 @@ +package com.baeldung.datavalidation + +import cats.effect.{IOApp, IO, ExitCode} +import cats.data.{EitherNec, ValidatedNec, Validated} +import cats.data.Validated.{Valid, Invalid} +import cats.syntax.all.* + +object Utilities: + case class Country(value: String) + object Country: + private val countries = List("uganda", "kenya", "tanzania") + def apply(value: String): Option[Country] = + Some(value) + .filter(v => countries.contains(v.toLowerCase)) + .map(c => new Country(c.toLowerCase)) + + case class Age(value: Int) + object Age: + def apply(value: Int): Option[Age] = + Some(value).filter(_ >= 25).map(new Age(_)) + + case class Cgpa(value: Double) + object Cgpa: + def apply(value: Double): Option[Cgpa] = + Some(value).filter(_ >= 3.0).map(new Cgpa(_)) + +object Version1: + import Utilities.* + + case class Scholarship(country: Country, age: Age, cgpa: Cgpa) + object Scholarship: + def apply( + value1: String, + value2: Int, + value3: Double + ): EitherNec[String, Scholarship] = + ( + Country(value1).toRightNec("Invalid Coutry"), + Age(value2).toRightNec("Invalid Age"), + Cgpa(value3).toRightNec("Invalid Cgpa") + ).parMapN( + Scholarship.apply + ) + +object Version2: + import Utilities.* + + case class Scholarship(country: Country, age: Age, cgpa: Cgpa) + object Scholarship: + def apply( + value1: String, + value2: Int, + value3: Double + ): ValidatedNec[String, Scholarship] = + ( + Country(value1).toValidNec("Invalid Coutry"), + Age(value2).toValidNec("Invalid Age"), + Cgpa(value3).toValidNec("Invalid Cgpa") + ).mapN( + Scholarship.apply + ) + +object Utilities2: + sealed trait ScholarshipValidationError: + val errMsg: String + object ScholarshipValidationError: + case object CountryValidationError extends ScholarshipValidationError: + override val errMsg: String = "Must come from Uganda, Kenya or Tanzania." + case object AgeValidationError extends ScholarshipValidationError: + override val errMsg: String = "Must be 25 years or more." + case object CgpaValdiationError extends ScholarshipValidationError: + override val errMsg: String = "CGPA must be 3.0 or more" + + import ScholarshipValidationError.* + + case class Country(value: String) + object Country: + private val countries = List("uganda", "kenya", "tanzania") + def apply( + value: String + ): ValidatedNec[ScholarshipValidationError, Country] = + Validated.condNec( + countries.contains(value.toLowerCase), + new Country(value.toLowerCase), + CountryValidationError + ) + + case class Age(value: Int) + object Age: + def apply(value: Int): ValidatedNec[ScholarshipValidationError, Age] = + Validated.condNec( + value >= 25, + new Age(value), + AgeValidationError + ) + + case class Cgpa(value: Double) + object Cgpa: + def apply(value: Double): ValidatedNec[ScholarshipValidationError, Cgpa] = + Validated.condNec( + value >= 3.0, + new Cgpa(value), + CgpaValdiationError + ) + +object Version3: + import Utilities2.* + case class Scholarship(country: Country, age: Age, cgpa: Cgpa) + object Scholarship: + def apply( + value1: String, + value2: Int, + value3: Double + ): ValidatedNec[ScholarshipValidationError, Scholarship] = + ( + Country(value1), + Age(value2), + Cgpa(value3) + ).mapN( + Scholarship.apply + ) + +object DataValidation extends IOApp.Simple: + import Version1.* + def run: IO[Unit] = + Scholarship("Uganda", 23, 2.5) match + case Right(x) => IO.println(x) + case Left(y) => IO.println(y.toChain) +// Chain(Invalid Age, Invalid Cgpa) diff --git a/scala-libraries-6/src/test/scala-3/com/baeldung/datavalidation/DataValidationSpec.scala b/scala-libraries-6/src/test/scala-3/com/baeldung/datavalidation/DataValidationSpec.scala new file mode 100644 index 000000000..25b42e39c --- /dev/null +++ b/scala-libraries-6/src/test/scala-3/com/baeldung/datavalidation/DataValidationSpec.scala @@ -0,0 +1,37 @@ +package com.baeldung.datavalidation + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers +import org.scalatest.prop.TableDrivenPropertyChecks +import cats.data.NonEmptyChain +import cats.data.Validated.Invalid + +class DataValidationSuite + extends AnyFlatSpec + with Matchers + with TableDrivenPropertyChecks: + + "Version1 Scholarship" should "produce a Left[NonEmptyChain[String]]" in { + import Version1.{Scholarship} + Scholarship("Uganda", 23, 2.5) shouldBe Left( + NonEmptyChain.of("Invalid Age", "Invalid Cgpa") + ) + } + + "Version2 Scholarship" should "produce a Invalid[NonEmptyChain[String]]" in { + import Version2.{Scholarship} + Scholarship("Uganda", 23, 2.5) shouldBe Invalid( + NonEmptyChain.of("Invalid Age", "Invalid Cgpa") + ) + } + + "Version3 Scholarship" should "produce a Invalid[NonEmptyChain[ScholarshipValidationError]]" in { + import Version3.{Scholarship} + import Utilities2.ScholarshipValidationError.{ + AgeValidationError, + CgpaValdiationError + } + Scholarship("Uganda", 23, 2.5) shouldBe Invalid( + NonEmptyChain.of(AgeValidationError, CgpaValdiationError) + ) + } From 96a10d466a7a50faff751677e4cb37fa6952db5c Mon Sep 17 00:00:00 2001 From: kateu herbert Date: Thu, 28 Dec 2023 17:36:23 +0300 Subject: [PATCH 0263/1318] updated build.sbt --- build.sbt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 91f756a01..4a44b60f9 100644 --- a/build.sbt +++ b/build.sbt @@ -463,7 +463,8 @@ lazy val scala_libraries_6 = (project in file("scala-libraries-6")) libraryDependencies ++= Seq( "io.circe" %% "circe-yaml" % "1.15.0", "io.circe" %% "circe-generic" % "0.14.6", - "io.circe" %% "circe-parser" % "0.14.6" + "io.circe" %% "circe-parser" % "0.14.6", + catsEffect ) ) From 32fbabfc9abf4f7bfe55b8a07900134225711c9a Mon Sep 17 00:00:00 2001 From: kateu herbert Date: Sat, 30 Dec 2023 11:54:54 +0300 Subject: [PATCH 0264/1318] shifted code to scala3-libraries --- .../main/scala/com/baledung}/datavalidation/DataValidation.scala | 0 .../scala}/com/baeldung/datavalidation/DataValidationSpec.scala | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename {scala-libraries-6/src/main/scala-3/com/baeldung => scala3-libraries/src/main/scala/com/baledung}/datavalidation/DataValidation.scala (100%) rename {scala-libraries-6/src/test/scala-3 => scala3-libraries/src/test/scala}/com/baeldung/datavalidation/DataValidationSpec.scala (100%) diff --git a/scala-libraries-6/src/main/scala-3/com/baeldung/datavalidation/DataValidation.scala b/scala3-libraries/src/main/scala/com/baledung/datavalidation/DataValidation.scala similarity index 100% rename from scala-libraries-6/src/main/scala-3/com/baeldung/datavalidation/DataValidation.scala rename to scala3-libraries/src/main/scala/com/baledung/datavalidation/DataValidation.scala diff --git a/scala-libraries-6/src/test/scala-3/com/baeldung/datavalidation/DataValidationSpec.scala b/scala3-libraries/src/test/scala/com/baeldung/datavalidation/DataValidationSpec.scala similarity index 100% rename from scala-libraries-6/src/test/scala-3/com/baeldung/datavalidation/DataValidationSpec.scala rename to scala3-libraries/src/test/scala/com/baeldung/datavalidation/DataValidationSpec.scala From 33ddbe7944d3ba41e27046ef48fa275c77dd4bd6 Mon Sep 17 00:00:00 2001 From: kateu herbert Date: Sat, 30 Dec 2023 12:31:09 +0300 Subject: [PATCH 0265/1318] Updated build.sbt --- build.sbt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 4a44b60f9..7173b59b6 100644 --- a/build.sbt +++ b/build.sbt @@ -464,7 +464,6 @@ lazy val scala_libraries_6 = (project in file("scala-libraries-6")) "io.circe" %% "circe-yaml" % "1.15.0", "io.circe" %% "circe-generic" % "0.14.6", "io.circe" %% "circe-parser" % "0.14.6", - catsEffect ) ) @@ -581,11 +580,13 @@ lazy val scala3_libraries = (project in file("scala3-libraries")) .settings( scalaVersion := scala3Version, name := "scala3-libraries", + libraryDependencies ++= scalaTestDeps, libraryDependencies ++= Seq( "com.github.japgolly.clearconfig" %% "core" % "3.1.0", "org.scalameta" %% "munit" % "0.7.29" % Test, "org.tpolecat" %% "doobie-core" % "1.0.0-RC2", - "org.tpolecat" %% "doobie-postgres" % "1.0.0-RC2" + "org.tpolecat" %% "doobie-postgres" % "1.0.0-RC2", + catsEffect ) ) From c94d858282b84f93d5ede1ff0e951ff14fbe8738 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 5 Jan 2024 00:13:56 +0000 Subject: [PATCH 0266/1318] Update aws-java-sdk-s3 from 1.12.627 to 1.12.631 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 91f756a01..882c810f0 100644 --- a/build.sbt +++ b/build.sbt @@ -414,7 +414,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "software.amazon.awssdk" % "s3" % "2.22.7" ), libraryDependencies ++= Seq( - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.627" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.631" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.0" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.0" % IntegrationTest ), From 0413a4aa5153dfe97d077979d68cfb18931ee33f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 5 Jan 2024 00:14:06 +0000 Subject: [PATCH 0267/1318] Update os-lib from 0.9.2 to 0.9.3 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 91f756a01..af020c43f 100644 --- a/build.sbt +++ b/build.sbt @@ -352,7 +352,7 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) val http4sBlaze = "0.23.15" val http4sVersion = "0.23.24" -val osLibVersion = "0.9.2" +val osLibVersion = "0.9.3" lazy val scala_libraries_3 = (project in file("scala-libraries-3")) .settings( name := "scala-libraries", From af3206635cc5a67476c1455946fc81023576cf43 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 5 Jan 2024 00:14:23 +0000 Subject: [PATCH 0268/1318] Update zio, zio-streams, zio-test, ... from 2.0.20 to 2.0.21 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 91f756a01..9997fc372 100644 --- a/build.sbt +++ b/build.sbt @@ -20,7 +20,7 @@ val scalaTestDeps = Seq( ) val scalaMock = "org.scalamock" %% "scalamock" % "5.2.0" % Test -val zioVersion = "2.0.20" +val zioVersion = "2.0.21" lazy val scala_core = (project in file("scala-core-modules/scala-core")) .settings( From 8a0108911619b8f93307bee6334e9840812c5db6 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 5 Jan 2024 00:14:41 +0000 Subject: [PATCH 0269/1318] Update http4s-blaze-client, ... from 0.23.15 to 0.23.16 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 91f756a01..223369876 100644 --- a/build.sbt +++ b/build.sbt @@ -350,7 +350,7 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) Defaults.itSettings ) -val http4sBlaze = "0.23.15" +val http4sBlaze = "0.23.16" val http4sVersion = "0.23.24" val osLibVersion = "0.9.2" lazy val scala_libraries_3 = (project in file("scala-libraries-3")) From 5e161e98f36349162f39ae55b52e23b32cef599f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 5 Jan 2024 00:14:58 +0000 Subject: [PATCH 0270/1318] Update http4s-dsl from 0.23.24 to 0.23.25 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 91f756a01..c513154a0 100644 --- a/build.sbt +++ b/build.sbt @@ -351,7 +351,7 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) ) val http4sBlaze = "0.23.15" -val http4sVersion = "0.23.24" +val http4sVersion = "0.23.25" val osLibVersion = "0.9.2" lazy val scala_libraries_3 = (project in file("scala-libraries-3")) .settings( From 88b3c45147a6e88256b8107e57e1aa92f1940363 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 5 Jan 2024 00:15:13 +0000 Subject: [PATCH 0271/1318] Update sbt-scalajs from 1.14.0 to 1.15.0 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index 3ca4721a4..e5dfba150 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,7 +1,7 @@ addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.2") addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.4.16") -addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.14.0") +addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.15.0") addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.2.1") libraryDependencies += "ai.kien" %% "python-native-libs" % "0.2.4" From 76765f915969883162a32416102d1e7c11568b1b Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 5 Jan 2024 00:15:30 +0000 Subject: [PATCH 0272/1318] Update s3 from 2.22.7 to 2.22.11 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 91f756a01..07a8a2c65 100644 --- a/build.sbt +++ b/build.sbt @@ -411,7 +411,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "org.testcontainers" % "pulsar" % "1.19.3" % IntegrationTest ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "s3" % "2.22.7" + "software.amazon.awssdk" % "s3" % "2.22.11" ), libraryDependencies ++= Seq( "com.amazonaws" % "aws-java-sdk-s3" % "1.12.627" % IntegrationTest, From 43e47f25e3e1370759c722894500cfcb7455e550 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 6 Jan 2024 21:59:59 +0100 Subject: [PATCH 0273/1318] Added code for prime number check --- .../scala/primecheck/PrimeNumber.scala | 26 ++++++++++ .../scala/primecheck/PrimeCheckUnitTest.scala | 49 +++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/primecheck/PrimeNumber.scala create mode 100644 scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/primecheck/PrimeCheckUnitTest.scala diff --git a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/primecheck/PrimeNumber.scala b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/primecheck/PrimeNumber.scala new file mode 100644 index 000000000..a366bf7d8 --- /dev/null +++ b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/primecheck/PrimeNumber.scala @@ -0,0 +1,26 @@ +package com.baeldung.scala.primecheck + +object PrimeNumber { + def isPrime(num: Long): Boolean = { + if (num <= 1) false + else if (num == 2 || num == 3) true + else + (2L to Math.sqrt(num).toLong).forall(num % _ != 0) + } + + def isPrimeOptimized(num: Long): Boolean = { + if (num < 2) false + else if (num == 2 || num == 3) true + else if (num % 2 == 0 || num % 3 == 0) false + else + (5 to Math.sqrt(num).toInt by 6).forall(n => + num % n != 0 && num % (n + 2) != 0 + ) + } + + def isPrimeUsingBigInt(num: Long): Boolean = { + if (num < 0) false + else + BigInt(num).isProbablePrime(certainty = 100) + } +} diff --git a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/primecheck/PrimeCheckUnitTest.scala b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/primecheck/PrimeCheckUnitTest.scala new file mode 100644 index 000000000..7450a4465 --- /dev/null +++ b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/primecheck/PrimeCheckUnitTest.scala @@ -0,0 +1,49 @@ +package com.baeldung.scala.primecheck + +import org.scalatest.matchers.should.Matchers +import org.scalatest.prop.TableDrivenPropertyChecks +import org.scalatest.wordspec.AnyWordSpec +import PrimeNumber.* + +class PrimeCheckUnitTest + extends AnyWordSpec + with Matchers + with TableDrivenPropertyChecks { + + private val primeTestTable = Table( + ("number", "status"), + (0L, false), + (1L, false), + (2L, true), + (3L, true), + (-5L, false), + (2L, true), + (13L, true), + (10L, false), + (4871L, true), + (4873L, false), + (Int.MaxValue.toLong, true), + (10_000_099_999L, true) + ) + + "Prime number checker" should { + "check if the provided bigint is prime" in { + forAll(primeTestTable) { (num, status) => + isPrimeUsingBigInt(num) shouldBe status + } + } + + "check if a number is prime using custom method" in { + forAll(primeTestTable) { (num, status) => + isPrime(num) shouldBe status + } + } + + "check if a number is prime using custom optimized method" in { + forAll(primeTestTable) { (num, status) => + isPrimeOptimized(num) shouldBe status + } + } + } + +} From d13ca2ecb050c17a48bdc0cc3d5769081d3878c3 Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Sun, 7 Jan 2024 10:52:03 +0800 Subject: [PATCH 0274/1318] Create README.md added README.md and link on it --- scala3-lang-collections/README.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 scala3-lang-collections/README.md diff --git a/scala3-lang-collections/README.md b/scala3-lang-collections/README.md new file mode 100644 index 000000000..856d99aa9 --- /dev/null +++ b/scala3-lang-collections/README.md @@ -0,0 +1,2 @@ +## Relevant Articles +- [Implementing an LRU Cache in Scala 3: A Step-by-Step Guide](https://www.baeldung.com/scala/least-recently-used-cache) From 7da1c1c6e5e21d4b99f191500c510bb0a746b9b8 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 12 Jan 2024 18:28:10 +0100 Subject: [PATCH 0275/1318] Added code and test for fibonacci series generation --- .../fibonacci/FibonacciSeriesGenerator.scala | 39 ++++++++++++++++++ .../FibonacciSeriesGeneratorTest.scala | 40 +++++++++++++++++++ 2 files changed, 79 insertions(+) create mode 100644 scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/fibonacci/FibonacciSeriesGenerator.scala create mode 100644 scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/fibonacci/FibonacciSeriesGeneratorTest.scala diff --git a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/fibonacci/FibonacciSeriesGenerator.scala b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/fibonacci/FibonacciSeriesGenerator.scala new file mode 100644 index 000000000..7f9700f87 --- /dev/null +++ b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/fibonacci/FibonacciSeriesGenerator.scala @@ -0,0 +1,39 @@ +package com.baeldung.scala.fibonacci + +import scala.annotation.tailrec + +object FibonacciSeriesGenerator { + + def fibSeriesRecursion(seriesSize: Int): Seq[Long] = { + def getNextNum(num: Long): Long = { + if (num <= 1) { + num + } else { + getNextNum(num - 1) + getNextNum(num - 2) + } + } + (0L until seriesSize).map(getNextNum) + } + + def fibTailRec(seriesSize: Int): Seq[Long] = { + @tailrec + def fib(n: Int, a: Long, b: Long, acc: List[Long]): List[Long] = { + if (n <= 0) acc.reverse + else fib(n - 1, b, a + b, a :: acc) + } + fib(seriesSize, 0L, 1, Nil) + } + + def fibLazyList(seriesSize: Int): Seq[Long] = { + lazy val fib: LazyList[Long] = 0L #:: 1L #:: fib.zip(fib.tail).map(_ + _) + fib.take(seriesSize).toList + } + + def fibIterator(seriesSize: Int): List[Long] = { + Iterator + .iterate((0L, 1L)) { case (a, b) => (b, a + b) } + .map(_._1) + .take(seriesSize) + .toList + } +} diff --git a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/fibonacci/FibonacciSeriesGeneratorTest.scala b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/fibonacci/FibonacciSeriesGeneratorTest.scala new file mode 100644 index 000000000..465f398d6 --- /dev/null +++ b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/fibonacci/FibonacciSeriesGeneratorTest.scala @@ -0,0 +1,40 @@ +package com.baeldung.scala.fibonacci + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers +import org.scalatest.prop.TableDrivenPropertyChecks +import FibonacciSeriesGenerator._ + +class FibonacciSeriesGeneratorTest + extends AnyFlatSpec + with Matchers + with TableDrivenPropertyChecks { + + private val fns = List( + ("Recursion", fibSeriesRecursion), + ("Tail Recursion", fibTailRec), + ("LazyList", fibLazyList), + ("Iterator", fibIterator) + ) + + private val fibTables = Table( + ("fib limit", "series"), + (3, List(0L, 1L, 1L)), + (-5, List()), + (0, List()), + (1, List(0L)), + (2, List(0L, 1L)), + (6, List(0L, 1L, 1L, 2L, 3L, 5L)) + ) + + fns.foreach { (name, fn) => + it should s"[$name] generate fibonacci series correctly for each implementations" in { + forAll(fibTables) { (num, exp) => + withClue(s"Executing function ${name} for input $num") { + fn(num) shouldBe exp + } + } + } + } + +} From e8f357e4d560b02d086b395b15294cce32feafa6 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 12 Jan 2024 21:37:21 +0100 Subject: [PATCH 0276/1318] removed reverse from tail recursion methdo --- .../baeldung/scala/fibonacci/FibonacciSeriesGenerator.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/fibonacci/FibonacciSeriesGenerator.scala b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/fibonacci/FibonacciSeriesGenerator.scala index 7f9700f87..b1a4a098a 100644 --- a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/fibonacci/FibonacciSeriesGenerator.scala +++ b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/fibonacci/FibonacciSeriesGenerator.scala @@ -18,8 +18,8 @@ object FibonacciSeriesGenerator { def fibTailRec(seriesSize: Int): Seq[Long] = { @tailrec def fib(n: Int, a: Long, b: Long, acc: List[Long]): List[Long] = { - if (n <= 0) acc.reverse - else fib(n - 1, b, a + b, a :: acc) + if (n <= 0) acc + else fib(n - 1, b, a + b, acc :+ a) } fib(seriesSize, 0L, 1, Nil) } From 6254a52a187b4dccd83ead6c2883c1ba1cf3cc28 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 13 Jan 2024 00:13:56 +0000 Subject: [PATCH 0277/1318] Update aws-java-sdk-s3 from 1.12.631 to 1.12.636 --- build.sbt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 86cceec2e..2700e16e3 100644 --- a/build.sbt +++ b/build.sbt @@ -350,7 +350,6 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) Defaults.itSettings ) - val http4sBlaze = "0.23.16" val http4sVersion = "0.23.25" val osLibVersion = "0.9.3" @@ -416,7 +415,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "software.amazon.awssdk" % "s3" % "2.22.11" ), libraryDependencies ++= Seq( - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.631" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.636" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.0" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.0" % IntegrationTest ), From c30a96110bccd7ede9cea6e0696342e57e99c1e9 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 13 Jan 2024 00:14:07 +0000 Subject: [PATCH 0278/1318] Update joda-time from 2.12.5 to 2.12.6 --- build.sbt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 86cceec2e..197904995 100644 --- a/build.sbt +++ b/build.sbt @@ -138,7 +138,7 @@ lazy val scala_core_dates = name := "scala-core-dates", scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps, - libraryDependencies += "joda-time" % "joda-time" % "2.12.5", + libraryDependencies += "joda-time" % "joda-time" % "2.12.6", libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "2.32.0", libraryDependencies += "com.typesafe" % "config" % "1.4.3" ) @@ -350,7 +350,6 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) Defaults.itSettings ) - val http4sBlaze = "0.23.16" val http4sVersion = "0.23.25" val osLibVersion = "0.9.3" From 8997e941097d7129b85cec9f420a649428343d9f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 13 Jan 2024 00:14:24 +0000 Subject: [PATCH 0279/1318] Update s3 from 2.22.11 to 2.22.13 --- build.sbt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 86cceec2e..17faf44b7 100644 --- a/build.sbt +++ b/build.sbt @@ -350,7 +350,6 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) Defaults.itSettings ) - val http4sBlaze = "0.23.16" val http4sVersion = "0.23.25" val osLibVersion = "0.9.3" @@ -413,7 +412,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "org.testcontainers" % "pulsar" % "1.19.3" % IntegrationTest ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "s3" % "2.22.11" + "software.amazon.awssdk" % "s3" % "2.22.13" ), libraryDependencies ++= Seq( "com.amazonaws" % "aws-java-sdk-s3" % "1.12.631" % IntegrationTest, From 87e4c3f2eea886b654bd025c5d972e916101ce45 Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Fri, 19 Jan 2024 10:32:53 +0800 Subject: [PATCH 0280/1318] Update README.md --- scala-strings/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-strings/README.md b/scala-strings/README.md index b1f9d2d53..4511824ba 100644 --- a/scala-strings/README.md +++ b/scala-strings/README.md @@ -10,3 +10,4 @@ This module contains articles about Scala's core features - [Convert a String to Camel Case in Scala](https://www.baeldung.com/scala/string-to-camel-case) - [Convert Byte Array to String in Scala](https://www.baeldung.com/scala/convert-byte-array-to-string) - [Scala Keyword Matching: A Library-First Guide](https://www.baeldung.com/scala/keyword-matching) +- [Generate Secure Random Passwords in Scala](https://www.baeldung.com/scala/generate-secure-random-passwords) From cec5f3036ecf48aa4b0845466ba123510f7fb2f8 Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Fri, 19 Jan 2024 11:20:55 +0800 Subject: [PATCH 0281/1318] Update README.md --- scala-strings/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-strings/README.md b/scala-strings/README.md index 4511824ba..d3cf09c83 100644 --- a/scala-strings/README.md +++ b/scala-strings/README.md @@ -11,3 +11,4 @@ This module contains articles about Scala's core features - [Convert Byte Array to String in Scala](https://www.baeldung.com/scala/convert-byte-array-to-string) - [Scala Keyword Matching: A Library-First Guide](https://www.baeldung.com/scala/keyword-matching) - [Generate Secure Random Passwords in Scala](https://www.baeldung.com/scala/generate-secure-random-passwords) +- [Generate an Acronym for a Given String in Scala](https://www.baeldung.com/scala/string-derive-acronym) From f4d414e8dd4977dd37fe45b0eedb06063b9b0fd5 Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Fri, 19 Jan 2024 11:22:23 +0800 Subject: [PATCH 0282/1318] Update README.md --- scala-core-modules/scala-core-8/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-core-modules/scala-core-8/README.md b/scala-core-modules/scala-core-8/README.md index 3819082f4..a35fed81a 100644 --- a/scala-core-modules/scala-core-8/README.md +++ b/scala-core-modules/scala-core-8/README.md @@ -4,3 +4,4 @@ - [The Either Type in Scala](https://www.baeldung.com/scala/either-type) - [Understanding the Differences: reduceLeft, reduceRight, foldLeft, foldRight, scanLeft, and scanRight in Scala](https://www.baeldung.com/scala/reduce-fold-scan-left-right) - [Different Ways to Reverse a Sequence in Scala](https://www.baeldung.com/scala/reverse-sequence) +- [Check if a Number is Magic Number in Scala](https://www.baeldung.com/scala/check-magic-number) From 7bd616dfc6fd5a346248b18e6145bd049a59aa95 Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Fri, 19 Jan 2024 11:23:30 +0800 Subject: [PATCH 0283/1318] Update README.md --- scala-test/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-test/README.md b/scala-test/README.md index ca29c281f..364c2fafe 100644 --- a/scala-test/README.md +++ b/scala-test/README.md @@ -12,3 +12,4 @@ This module contains articles about the ScalaTest framework in Scala. - [How to Check If Code Compiles in ScalaTest](https://www.baeldung.com/scala/scalatest-check-compilation) - [Case-Insensitive String Comparison Scala](https://www.baeldung.com/scala/case-insensitive-comparison) - [ScalaTest Assertions: A Comprehensive Guide](https://www.baeldung.com/scala/scalatest-assertions) +- [Test for Exceptions in ScalaTest](https://www.baeldung.com/scala/scalatest-test-exceptions) From 5a9521813d072c7bce6807c6a6f591ec4d7e864d Mon Sep 17 00:00:00 2001 From: Matteo Di Pirro Date: Fri, 19 Jan 2024 08:47:41 +0100 Subject: [PATCH 0284/1318] Add scala-akka-3 sub-module --- build.sbt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/build.sbt b/build.sbt index d132b0390..3977bd0cc 100644 --- a/build.sbt +++ b/build.sbt @@ -266,6 +266,20 @@ lazy val scala_akka_2 = (project in file("scala-akka-2")) "com.typesafe.akka" %% "akka-stream-testkit" % AkkaVersion % Test ) ++ scalaTestDeps.map(_.withConfigurations(Some("it,test"))) ) + +lazy val scala_akka_3 = (project in file("scala-akka-3")) + .enablePlugins(AkkaGrpcPlugin) + .configs(IntegrationTest) + .settings( + name := "scala-akka-3", + Defaults.itSettings, + libraryDependencies ++= Seq( + "com.typesafe.akka" %% "akka-stream" % "2.8.5", + "com.typesafe.akka" %% "akka-discovery" % "2.8.5", + "com.typesafe.akka" %% "akka-stream-testkit" % "2.8.5" % Test + ) ++ scalaTestDeps.map(_.withConfigurations(Some("it,test"))) + ) + val monocleVersion = "2.1.0" val slickVersion = "3.4.1" val shapelessVersion = "2.3.10" From 755e2baab21575146e1966eaf599b3be49234f0f Mon Sep 17 00:00:00 2001 From: Matteo Di Pirro Date: Fri, 19 Jan 2024 08:48:19 +0100 Subject: [PATCH 0285/1318] SCALA-638 Add code for Testing Akka Streams --- .../baeldung/scala/akka/stream/package.scala | 29 +++++++++ .../scala/akka/stream/StreamTest.scala | 61 +++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 scala-akka-3/src/main/scala/com/baeldung/scala/akka/stream/package.scala create mode 100644 scala-akka-3/src/test/scala/com/baeldung/scala/akka/stream/StreamTest.scala diff --git a/scala-akka-3/src/main/scala/com/baeldung/scala/akka/stream/package.scala b/scala-akka-3/src/main/scala/com/baeldung/scala/akka/stream/package.scala new file mode 100644 index 000000000..889b951e7 --- /dev/null +++ b/scala-akka-3/src/main/scala/com/baeldung/scala/akka/stream/package.scala @@ -0,0 +1,29 @@ +package com.baeldung.scala.akka + +import akka.NotUsed +import akka.stream.scaladsl.{Flow, Sink, Source} + +import scala.concurrent.Future + +package object stream { + val source: Source[String, NotUsed] = Source( + Seq("5,10", "15,15", "78,79", "12,12", "0,0", "456,456") + ) + + val parse: Flow[String, (Int, Int), NotUsed] = + Flow[String] + .map { pair => + val parts = pair.split(",") + (parts(0).toInt, parts(1).toInt) + } + + val compare: Flow[(Int, Int), Boolean, NotUsed] = + Flow[(Int, Int)] + .map { case (userAnswer, correctAnswer) => userAnswer == correctAnswer } + + val sink: Sink[Boolean, Future[(Int, Int)]] = Sink.fold((0, 0)) { + case ((correctCount, total), wasCorrect) => + if (wasCorrect) (correctCount + 1, total + 1) + else (correctCount, total + 1) + } +} diff --git a/scala-akka-3/src/test/scala/com/baeldung/scala/akka/stream/StreamTest.scala b/scala-akka-3/src/test/scala/com/baeldung/scala/akka/stream/StreamTest.scala new file mode 100644 index 000000000..c43bdd22c --- /dev/null +++ b/scala-akka-3/src/test/scala/com/baeldung/scala/akka/stream/StreamTest.scala @@ -0,0 +1,61 @@ +package com.baeldung.scala.akka.stream + +import akka.actor.ActorSystem +import akka.stream.scaladsl.Keep +import akka.stream.testkit.scaladsl.{TestSink, TestSource} +import org.scalatest.concurrent.ScalaFutures.convertScalaFuture +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers + +class StreamTest extends AnyFlatSpec with Matchers { + implicit val system: ActorSystem = ActorSystem("baeldung") + + "The \"parse\" flow" should "parse pairs of integers" in { + val (pub, sub) = TestSource[String]() + .via(parse) + .toMat(TestSink[(Int, Int)]())(Keep.both) + .run() + + pub.sendNext("1,1") + pub.sendNext("145,146") + pub.sendComplete() + + sub.requestNext((1, 1)) + sub.requestNext((145, 146)) + sub.expectComplete() + } + + "The \"compare\" flow" should "compare pairs of integers" in { + val (pub, sub) = TestSource[(Int, Int)]() + .via(compare) + .toMat(TestSink[Boolean]())(Keep.both) + .run() + + pub.sendNext((1, 1)) + pub.sendNext((145, 146)) + pub.sendComplete() + + sub.requestNext(true) + sub.requestNext(false) + sub.expectComplete() + } + + "The \"sink\" sink" should "count the number of trues" in { + val (probe, result) = TestSource[Boolean]().toMat(sink)(Keep.both).run() + + probe.sendNext(true) + probe.sendNext(false) + probe.sendNext(false) + probe.sendComplete() + + result.futureValue shouldBe (1, 3) + } + + "The \"source\" source" should "emit pairs of integers" in { + source + .runWith(TestSink[String]()) + .request(6) + .expectNext("5,10", "15,15", "78,79", "12,12", "0,0", "456,456") + .expectComplete() + } +} From f977e83523d44867e5bd256d7903b729aec4611a Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 19 Jan 2024 18:03:20 +0100 Subject: [PATCH 0286/1318] Updated scala versions to the latest --- play-scala/play-static-assets/build.sbt | 3 +-- scala-libraries-4/src/redis-intro/build.sbt | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/play-scala/play-static-assets/build.sbt b/play-scala/play-static-assets/build.sbt index 0009e7c0b..5bec44058 100644 --- a/play-scala/play-static-assets/build.sbt +++ b/play-scala/play-static-assets/build.sbt @@ -6,8 +6,7 @@ version := "1.0-SNAPSHOT" enablePlugins(PlayScala) enablePlugins(SbtWeb) -// scalaVersion := ScalaVersions.scala2Version -scalaVersion := "2.13.12" +scalaVersion := ScalaVersions.scala2Version libraryDependencies += guice libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % Test diff --git a/scala-libraries-4/src/redis-intro/build.sbt b/scala-libraries-4/src/redis-intro/build.sbt index b2d2e646a..9a7087d5a 100644 --- a/scala-libraries-4/src/redis-intro/build.sbt +++ b/scala-libraries-4/src/redis-intro/build.sbt @@ -1,6 +1,6 @@ import Dependencies._ -ThisBuild / scalaVersion := "2.13.8" +ThisBuild / scalaVersion := "2.13.12" ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From e82a1bb40f3968d44dfb80befbeaf68c242fe961 Mon Sep 17 00:00:00 2001 From: Callum Date: Fri, 19 Jan 2024 20:11:53 +0000 Subject: [PATCH 0287/1318] [SCALA-337] Transform futures into list ignoring failures (#1117) * [SCALA-337] Transform futures into list ignoring failures * [SCALA-337] remove uneeded code * [SCALA-337] Fixed issue with unexpected file changes * [SCALA-337] Removed formatting changes * [SCALA-337] File formatting * [SCALA-337] Restructured code * [SCALA-337] Fixed formatting --------- Co-authored-by: Callum Gibbons --- .../com/baeldung/circeyaml/YamlExample.scala | 2 +- .../futurelist/FutureFailuresList.scala | 42 +++++++++++ .../futurelist/FutureFailuresListSpec.scala | 70 +++++++++++++++++++ 3 files changed, 113 insertions(+), 1 deletion(-) create mode 100644 scala-libraries-6/src/main/scala-3/com/baeldung/futurelist/FutureFailuresList.scala create mode 100644 scala-libraries-6/src/test/scala-3/com/baeldung/futurelist/FutureFailuresListSpec.scala diff --git a/scala-libraries-6/src/main/scala-3/com/baeldung/circeyaml/YamlExample.scala b/scala-libraries-6/src/main/scala-3/com/baeldung/circeyaml/YamlExample.scala index 4348f714a..9b8db5cce 100644 --- a/scala-libraries-6/src/main/scala-3/com/baeldung/circeyaml/YamlExample.scala +++ b/scala-libraries-6/src/main/scala-3/com/baeldung/circeyaml/YamlExample.scala @@ -27,7 +27,7 @@ object YamlExample: server: host: localhost port: 8080 - serverType: + serverType: - Http - Grpc """ diff --git a/scala-libraries-6/src/main/scala-3/com/baeldung/futurelist/FutureFailuresList.scala b/scala-libraries-6/src/main/scala-3/com/baeldung/futurelist/FutureFailuresList.scala new file mode 100644 index 000000000..cc52ed794 --- /dev/null +++ b/scala-libraries-6/src/main/scala-3/com/baeldung/futurelist/FutureFailuresList.scala @@ -0,0 +1,42 @@ +package com.baeldung.futurelist + +import scala.concurrent.{ExecutionContext, Future} +import scala.util.{Success, Failure, Try} +import scala.concurrent.ExecutionContext.Implicits.global + +object FutureFailuresList { + + def getSuccessful( + futures: List[Future[String]] + )( + fn: List[Future[String]] => Future[List[Try[String]]] + ): Future[List[String]] = { + val futuresSeq = fn(futures) + futuresSeq.map(f => f.collect { case Success(str) => str }) + } + + def getFailures( + futures: List[Future[String]] + )( + fn: List[Future[String]] => Future[List[Try[String]]] + ): Future[List[Throwable]] = { + val futuresSeq = fn(futures) + futuresSeq.map(f => f.collect { case Failure(ex) => ex }) + } + + def usingTransform( + futures: List[Future[String]] + ): Future[List[Try[String]]] = { + Future.sequence(futures.map(f => f.transform(Success(_)))) + } + + def usingRecover( + futures: List[Future[String]] + ): Future[List[Try[String]]] = { + Future.sequence( + futures.map(f => { + f.map(Success(_)).recover { case x => Failure(x) } + }) + ) + } +} diff --git a/scala-libraries-6/src/test/scala-3/com/baeldung/futurelist/FutureFailuresListSpec.scala b/scala-libraries-6/src/test/scala-3/com/baeldung/futurelist/FutureFailuresListSpec.scala new file mode 100644 index 000000000..c9d3168c0 --- /dev/null +++ b/scala-libraries-6/src/test/scala-3/com/baeldung/futurelist/FutureFailuresListSpec.scala @@ -0,0 +1,70 @@ +package com.baeldung.futurelist + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers +import concurrent.ExecutionContext.Implicits.global +import scala.concurrent.duration._ + +import scala.concurrent.{Future, Await} + +class FutureFailuresListSpec extends AnyFlatSpec with Matchers { + val testList = List( + Future.successful("success 1"), + Future.failed(Exception("failure 1")), + Future.successful("success 2"), + Future.failed(Exception("failure 2")), + Future.successful("success 3") + ) + + "getSuccessful usingTransform" should "return all successful futures" in { + val result = Await.result( + FutureFailuresList.getSuccessful(testList)( + FutureFailuresList.usingTransform + ), + 2.seconds + ) + result shouldBe List( + "success 1", + "success 2", + "success 3" + ) + } + + "getFailures usingTransform" should "return all failed futures" in { + val result = Await.result( + FutureFailuresList.getFailures(testList)( + FutureFailuresList.usingTransform + ), + 2.seconds + ) + result.map(_.getMessage) shouldBe List( + "failure 1", + "failure 2" + ) + } + + "getSuccessful usingRecover" should "return all successful futures" in { + val result = Await.result( + FutureFailuresList.getSuccessful(testList)( + FutureFailuresList.usingRecover + ), + 2.seconds + ) + result shouldBe List( + "success 1", + "success 2", + "success 3" + ) + } + + "getFailures usingRecover" should "return all failed futures" in { + val result = Await.result( + FutureFailuresList.getFailures(testList)(FutureFailuresList.usingRecover), + 2.seconds + ) + result.map(_.getMessage) shouldBe List( + "failure 1", + "failure 2" + ) + } +} From 13aef07787c7d6b189071c1d9264f5e617fb442e Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 20 Jan 2024 00:15:03 +0000 Subject: [PATCH 0288/1318] Update aws-java-sdk-s3 from 1.12.636 to 1.12.641 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d132b0390..216b42f12 100644 --- a/build.sbt +++ b/build.sbt @@ -415,7 +415,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "software.amazon.awssdk" % "s3" % "2.22.13" ), libraryDependencies ++= Seq( - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.636" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.641" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.0" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.0" % IntegrationTest ), From 6ea25a726f9697d68d881ffe0c13ee0845d7769d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 20 Jan 2024 00:15:13 +0000 Subject: [PATCH 0289/1318] Update pureconfig, pureconfig-enumeratum from 0.17.4 to 0.17.5 --- build.sbt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index d132b0390..04d58793b 100644 --- a/build.sbt +++ b/build.sbt @@ -363,8 +363,8 @@ lazy val scala_libraries_3 = (project in file("scala-libraries-3")) "org.http4s" %% "http4s-blaze-server" % http4sBlaze, "org.http4s" %% "http4s-blaze-client" % http4sBlaze, "com.beachape" %% "enumeratum" % "1.7.3", - "com.github.pureconfig" %% "pureconfig" % "0.17.4", - "com.github.pureconfig" %% "pureconfig-enumeratum" % "0.17.4", + "com.github.pureconfig" %% "pureconfig" % "0.17.5", + "com.github.pureconfig" %% "pureconfig-enumeratum" % "0.17.5", "com.typesafe" % "config" % "1.4.3", "org.scalameta" %% "munit" % "0.7.29" % Test ), @@ -429,7 +429,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) val spireVersion = "0.18.0" val kafkaVersion = "7.5.3-ce" -val pureconfigVersion = "0.17.4" +val pureconfigVersion = "0.17.5" val jackSonVersion = "2.16.1" val log4jApiScalaVersion = "13.0.0" val log4jVersion = "2.20.0" From 8f3876c4457fd9e99cae8195f1d366a06a63449c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 20 Jan 2024 00:15:32 +0000 Subject: [PATCH 0290/1318] Update de.flapdoodle.embed.mongo from 4.12.0 to 4.12.2 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d132b0390..f091f7317 100644 --- a/build.sbt +++ b/build.sbt @@ -10,7 +10,7 @@ val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.2" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.2" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV val logback = "ch.qos.logback" % "logback-classic" % "1.4.14" -val embedMongoVersion = "4.12.0" +val embedMongoVersion = "4.12.2" val scalaTestDeps = Seq( "org.scalatest" %% "scalatest" % "3.2.17" % Test, From 3e5a3e90e37b86ead856ee95b58be38a419406b0 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 20 Jan 2024 00:15:40 +0000 Subject: [PATCH 0291/1318] Update mockito-core from 5.8.0 to 5.9.0 --- play-scala/caching-in-play/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/play-scala/caching-in-play/build.sbt b/play-scala/caching-in-play/build.sbt index 6f74edd35..91e4c7984 100644 --- a/play-scala/caching-in-play/build.sbt +++ b/play-scala/caching-in-play/build.sbt @@ -11,6 +11,6 @@ libraryDependencies += guice libraryDependencies += caffeine libraryDependencies += ws libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % Test -libraryDependencies += "org.mockito" % "mockito-core" % "5.8.0" % Test +libraryDependencies += "org.mockito" % "mockito-core" % "5.9.0" % Test PlayKeys.devSettings += "play.server.http.port" -> "9000" From 609ca3ed96071e054e9a453fe7d99fcb2127f782 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 20 Jan 2024 00:15:55 +0000 Subject: [PATCH 0292/1318] Update sbt-scala-native from 0.4.16 to 0.4.17 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index e5dfba150..fcbed1708 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,6 +1,6 @@ addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.2") -addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.4.16") +addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.4.17") addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.15.0") addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.2.1") From 8714360b02a4790a6e37bc3becfbfc959f5e1585 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 20 Jan 2024 00:16:10 +0000 Subject: [PATCH 0293/1318] Update cats-effect, cats-effect-testkit from 3.5.2 to 3.5.3 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index d132b0390..32a449c0c 100644 --- a/build.sbt +++ b/build.sbt @@ -6,8 +6,8 @@ ThisBuild / organization := "com.baeldung" ThisBuild / organizationName := "core-scala" val jUnitInterface = "com.github.sbt" % "junit-interface" % "0.13.3" % "test" -val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.2" -val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.2" % Test +val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.3" +val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.3" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV val logback = "ch.qos.logback" % "logback-classic" % "1.4.14" val embedMongoVersion = "4.12.0" From acfa2a8980bf03284abf2bea6ee50362ee887543 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 20 Jan 2024 00:16:27 +0000 Subject: [PATCH 0294/1318] Update s3 from 2.22.13 to 2.23.7 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d132b0390..ba4e5750a 100644 --- a/build.sbt +++ b/build.sbt @@ -412,7 +412,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "org.testcontainers" % "pulsar" % "1.19.3" % IntegrationTest ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "s3" % "2.22.13" + "software.amazon.awssdk" % "s3" % "2.23.7" ), libraryDependencies ++= Seq( "com.amazonaws" % "aws-java-sdk-s3" % "1.12.636" % IntegrationTest, From 34f1bd09d7ea971a1a9a33caef3dee3fa9b7afc3 Mon Sep 17 00:00:00 2001 From: collaboratewithakash <38683470+collaboratewithakash@users.noreply.github.com> Date: Sat, 20 Jan 2024 12:33:09 +0530 Subject: [PATCH 0295/1318] backlink added --- scala-core-modules/scala-core-8/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-core-modules/scala-core-8/README.md b/scala-core-modules/scala-core-8/README.md index 3819082f4..cd8157903 100644 --- a/scala-core-modules/scala-core-8/README.md +++ b/scala-core-modules/scala-core-8/README.md @@ -4,3 +4,4 @@ - [The Either Type in Scala](https://www.baeldung.com/scala/either-type) - [Understanding the Differences: reduceLeft, reduceRight, foldLeft, foldRight, scanLeft, and scanRight in Scala](https://www.baeldung.com/scala/reduce-fold-scan-left-right) - [Different Ways to Reverse a Sequence in Scala](https://www.baeldung.com/scala/reverse-sequence) +- [Guide to Scala Duration and FiniteDuration](https://www.baeldung.com/scala/duration-finiteduration) From 9d41ef87f73a3144c1d2d738ffac774543ed85f5 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 20 Jan 2024 09:56:54 +0100 Subject: [PATCH 0296/1318] Renamed series to sequence --- ...riesGenerator.scala => FibonacciSequenceGenerator.scala} | 4 ++-- ...ratorTest.scala => FibonacciSequenceGeneratorTest.scala} | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) rename scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/fibonacci/{FibonacciSeriesGenerator.scala => FibonacciSequenceGenerator.scala} (90%) rename scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/fibonacci/{FibonacciSeriesGeneratorTest.scala => FibonacciSequenceGeneratorTest.scala} (82%) diff --git a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/fibonacci/FibonacciSeriesGenerator.scala b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/fibonacci/FibonacciSequenceGenerator.scala similarity index 90% rename from scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/fibonacci/FibonacciSeriesGenerator.scala rename to scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/fibonacci/FibonacciSequenceGenerator.scala index b1a4a098a..b53affca2 100644 --- a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/fibonacci/FibonacciSeriesGenerator.scala +++ b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/fibonacci/FibonacciSequenceGenerator.scala @@ -2,9 +2,9 @@ package com.baeldung.scala.fibonacci import scala.annotation.tailrec -object FibonacciSeriesGenerator { +object FibonacciSequenceGenerator { - def fibSeriesRecursion(seriesSize: Int): Seq[Long] = { + def fibSequenceRecursion(seriesSize: Int): Seq[Long] = { def getNextNum(num: Long): Long = { if (num <= 1) { num diff --git a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/fibonacci/FibonacciSeriesGeneratorTest.scala b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/fibonacci/FibonacciSequenceGeneratorTest.scala similarity index 82% rename from scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/fibonacci/FibonacciSeriesGeneratorTest.scala rename to scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/fibonacci/FibonacciSequenceGeneratorTest.scala index 465f398d6..1159c0fd0 100644 --- a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/fibonacci/FibonacciSeriesGeneratorTest.scala +++ b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/fibonacci/FibonacciSequenceGeneratorTest.scala @@ -5,13 +5,13 @@ import org.scalatest.matchers.should.Matchers import org.scalatest.prop.TableDrivenPropertyChecks import FibonacciSeriesGenerator._ -class FibonacciSeriesGeneratorTest +class FibonacciSequenceGeneratorTest extends AnyFlatSpec with Matchers with TableDrivenPropertyChecks { private val fns = List( - ("Recursion", fibSeriesRecursion), + ("Recursion", fibSequenceRecursion), ("Tail Recursion", fibTailRec), ("LazyList", fibLazyList), ("Iterator", fibIterator) @@ -28,7 +28,7 @@ class FibonacciSeriesGeneratorTest ) fns.foreach { (name, fn) => - it should s"[$name] generate fibonacci series correctly for each implementations" in { + it should s"[$name] generate fibonacci sequence correctly for each implementations" in { forAll(fibTables) { (num, exp) => withClue(s"Executing function ${name} for input $num") { fn(num) shouldBe exp From 77f844056cc34d5559d29fe9042b92d26e4b02ef Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 20 Jan 2024 10:02:17 +0100 Subject: [PATCH 0297/1318] fixed compilation error --- .../fibonacci/FibonacciSequenceGenerator.scala | 16 ++++++++-------- .../FibonacciSequenceGeneratorTest.scala | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/fibonacci/FibonacciSequenceGenerator.scala b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/fibonacci/FibonacciSequenceGenerator.scala index b53affca2..1287e9dee 100644 --- a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/fibonacci/FibonacciSequenceGenerator.scala +++ b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/fibonacci/FibonacciSequenceGenerator.scala @@ -4,7 +4,7 @@ import scala.annotation.tailrec object FibonacciSequenceGenerator { - def fibSequenceRecursion(seriesSize: Int): Seq[Long] = { + def fibSequenceRecursion(sequenceSize: Int): Seq[Long] = { def getNextNum(num: Long): Long = { if (num <= 1) { num @@ -12,28 +12,28 @@ object FibonacciSequenceGenerator { getNextNum(num - 1) + getNextNum(num - 2) } } - (0L until seriesSize).map(getNextNum) + (0L until sequenceSize).map(getNextNum) } - def fibTailRec(seriesSize: Int): Seq[Long] = { + def fibTailRec(sequenceSize: Int): Seq[Long] = { @tailrec def fib(n: Int, a: Long, b: Long, acc: List[Long]): List[Long] = { if (n <= 0) acc else fib(n - 1, b, a + b, acc :+ a) } - fib(seriesSize, 0L, 1, Nil) + fib(sequenceSize, 0L, 1, Nil) } - def fibLazyList(seriesSize: Int): Seq[Long] = { + def fibLazyList(sequenceSize: Int): Seq[Long] = { lazy val fib: LazyList[Long] = 0L #:: 1L #:: fib.zip(fib.tail).map(_ + _) - fib.take(seriesSize).toList + fib.take(sequenceSize).toList } - def fibIterator(seriesSize: Int): List[Long] = { + def fibIterator(sequenceSize: Int): List[Long] = { Iterator .iterate((0L, 1L)) { case (a, b) => (b, a + b) } .map(_._1) - .take(seriesSize) + .take(sequenceSize) .toList } } diff --git a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/fibonacci/FibonacciSequenceGeneratorTest.scala b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/fibonacci/FibonacciSequenceGeneratorTest.scala index 1159c0fd0..a6bfbf85b 100644 --- a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/fibonacci/FibonacciSequenceGeneratorTest.scala +++ b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/fibonacci/FibonacciSequenceGeneratorTest.scala @@ -3,7 +3,7 @@ package com.baeldung.scala.fibonacci import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers import org.scalatest.prop.TableDrivenPropertyChecks -import FibonacciSeriesGenerator._ +import FibonacciSequenceGenerator._ class FibonacciSequenceGeneratorTest extends AnyFlatSpec @@ -18,7 +18,7 @@ class FibonacciSequenceGeneratorTest ) private val fibTables = Table( - ("fib limit", "series"), + ("fib limit", "sequence"), (3, List(0L, 1L, 1L)), (-5, List()), (0, List()), From 72c1a5deecc04df314ab0f26a60b867fa0f03ef3 Mon Sep 17 00:00:00 2001 From: collaboratewithakash <38683470+collaboratewithakash@users.noreply.github.com> Date: Sat, 20 Jan 2024 15:15:21 +0530 Subject: [PATCH 0298/1318] backlink removed --- scala-core-modules/scala-core-dates/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/scala-core-modules/scala-core-dates/README.md b/scala-core-modules/scala-core-dates/README.md index 49ae29293..bc3359747 100644 --- a/scala-core-modules/scala-core-dates/README.md +++ b/scala-core-modules/scala-core-dates/README.md @@ -7,6 +7,5 @@ This module contains articles about Scala's date features. - [Working With Dates and Times in Scala](https://www.baeldung.com/scala/date-time) - [Guide to Scala Duration and FiniteDuration](https://www.baeldung.com/scala/duration-finiteduration) - [Get Difference Between Two Dates](https://www.baeldung.com/scala/difference-between-two-dates) -- [Convert Epoch Milliseconds to DateTime in Scala](https://www.baeldung.com/scala/epoch-milliseconds-datetime) - [Convert a String to Date in Scala](https://www.baeldung.com/scala/string-to-date) - [Generate List of Dates Between a Range in Scala](https://www.baeldung.com/scala/date-range-list) From 21a6283701ab0bb0dcc55d687438b7e59f00d4c2 Mon Sep 17 00:00:00 2001 From: Loredana Crusoveanu Date: Mon, 22 Jan 2024 12:15:17 +0200 Subject: [PATCH 0299/1318] Update README.md --- scala-core-modules/scala-core-8/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-core-modules/scala-core-8/README.md b/scala-core-modules/scala-core-8/README.md index a35fed81a..43c1bdb72 100644 --- a/scala-core-modules/scala-core-8/README.md +++ b/scala-core-modules/scala-core-8/README.md @@ -5,3 +5,4 @@ - [Understanding the Differences: reduceLeft, reduceRight, foldLeft, foldRight, scanLeft, and scanRight in Scala](https://www.baeldung.com/scala/reduce-fold-scan-left-right) - [Different Ways to Reverse a Sequence in Scala](https://www.baeldung.com/scala/reverse-sequence) - [Check if a Number is Magic Number in Scala](https://www.baeldung.com/scala/check-magic-number) +- [Guide to Scala Duration and FiniteDuration](https://www.baeldung.com/scala/duration-finiteduration) From b91d8fbee3d1c59e774da494289bddf86bee172c Mon Sep 17 00:00:00 2001 From: Dominique Plante Date: Mon, 22 Jan 2024 16:48:57 -0800 Subject: [PATCH 0300/1318] Update FibonacciSequenceGeneratorTest.scala --- .../scala/fibonacci/FibonacciSequenceGeneratorTest.scala | 1 - 1 file changed, 1 deletion(-) diff --git a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/fibonacci/FibonacciSequenceGeneratorTest.scala b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/fibonacci/FibonacciSequenceGeneratorTest.scala index a6bfbf85b..51842f12f 100644 --- a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/fibonacci/FibonacciSequenceGeneratorTest.scala +++ b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/fibonacci/FibonacciSequenceGeneratorTest.scala @@ -36,5 +36,4 @@ class FibonacciSequenceGeneratorTest } } } - } From 5d014d662f6cea6c13ab972028b31721ea9fa747 Mon Sep 17 00:00:00 2001 From: Callum Date: Tue, 23 Jan 2024 17:39:10 +0000 Subject: [PATCH 0301/1318] [SCALA-337] - Moved scalaList to core-8 folder (#1134) * [SCALA-337] - Moved scalaList to core-8 folder * [SCALA-337] - Moved scalaList to core-8 folder * [SCALA-337] - Moved scalaList to core-8 folder --------- Co-authored-by: Callum Gibbons --- .../scala/com/baeldung/scala}/futurelist/FutureFailuresList.scala | 0 .../com/baeldung/scala}/futurelist/FutureFailuresListSpec.scala | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename {scala-libraries-6/src/main/scala-3/com/baeldung => scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala}/futurelist/FutureFailuresList.scala (100%) rename {scala-libraries-6/src/test/scala-3/com/baeldung => scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala}/futurelist/FutureFailuresListSpec.scala (100%) diff --git a/scala-libraries-6/src/main/scala-3/com/baeldung/futurelist/FutureFailuresList.scala b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/futurelist/FutureFailuresList.scala similarity index 100% rename from scala-libraries-6/src/main/scala-3/com/baeldung/futurelist/FutureFailuresList.scala rename to scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/futurelist/FutureFailuresList.scala diff --git a/scala-libraries-6/src/test/scala-3/com/baeldung/futurelist/FutureFailuresListSpec.scala b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/futurelist/FutureFailuresListSpec.scala similarity index 100% rename from scala-libraries-6/src/test/scala-3/com/baeldung/futurelist/FutureFailuresListSpec.scala rename to scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/futurelist/FutureFailuresListSpec.scala From b2783c6fbc5f875eee146ae9c2ab682a4d62e59f Mon Sep 17 00:00:00 2001 From: Oscar Mauricio Forero Carrillo Date: Thu, 25 Jan 2024 07:47:57 +0100 Subject: [PATCH 0302/1318] Article: Enforcing the Jvm Version in an Sbt Project (#1122) --- build.sbt | 5 ++++ sbt-standalone/build.sbt | 23 +++++++++++++++++++ .../project/CompatibleJavaVersion.scala | 15 ++++++++++++ sbt-standalone/project/build.properties | 1 + sbt-standalone/src/main/scala/Main.scala | 3 +++ 5 files changed, 47 insertions(+) create mode 100644 sbt-standalone/build.sbt create mode 100644 sbt-standalone/project/CompatibleJavaVersion.scala create mode 100644 sbt-standalone/project/build.properties create mode 100644 sbt-standalone/src/main/scala/Main.scala diff --git a/build.sbt b/build.sbt index b6df1d65b..30393272c 100644 --- a/build.sbt +++ b/build.sbt @@ -610,6 +610,11 @@ lazy val spark_scala = (project in file("spark-scala")) ) ) +// This is here to prevent the accidental addition of the stand-alone module for SCALA-156 +// Do not uncomment the next line +// lazy val spark_scala = (project in file("sbt-standalone")) + + addCommandAlias( "ci", ";compile;test:compile;it:compile;scalafmtCheckAll;test" diff --git a/sbt-standalone/build.sbt b/sbt-standalone/build.sbt new file mode 100644 index 000000000..2764412a6 --- /dev/null +++ b/sbt-standalone/build.sbt @@ -0,0 +1,23 @@ +name := "SCALA-156" + +version := "0.1" + +scalaVersion := "2.13.6" + +// Setting target for Scala +scalacOptions += "-target:17" + +// Setting source and target for Java +javacOptions ++= Seq("-source", "17", "-target", "17") + + +// Enforcing the minimum JVM version +initialize := { + val _ = initialize.value // Ensure previous initializations are run + + val required = VersionNumber("17") + val current = VersionNumber(sys.props("java.specification.version")) + println(current) + assert(CompatibleJavaVersion(current, required), s"Java $required or above is required to run this project.") +} + diff --git a/sbt-standalone/project/CompatibleJavaVersion.scala b/sbt-standalone/project/CompatibleJavaVersion.scala new file mode 100644 index 000000000..fd640e583 --- /dev/null +++ b/sbt-standalone/project/CompatibleJavaVersion.scala @@ -0,0 +1,15 @@ +import sbt._ + +// Define a custom object for Java specification version compatibility +object CompatibleJavaVersion extends VersionNumberCompatibility { + def name = "Java specification compatibility" + + def isCompatible(current: VersionNumber, required: VersionNumber): Boolean = + current.numbers.zip(required.numbers) + .foldRight(required.numbers.size <= current.numbers.size) { + case ((curr, req), acc) => (curr > req) || (curr == req && acc) + } + + def apply(current: VersionNumber, required: VersionNumber): Boolean = + isCompatible(current, required) +} \ No newline at end of file diff --git a/sbt-standalone/project/build.properties b/sbt-standalone/project/build.properties new file mode 100644 index 000000000..e8a1e246e --- /dev/null +++ b/sbt-standalone/project/build.properties @@ -0,0 +1 @@ +sbt.version=1.9.7 diff --git a/sbt-standalone/src/main/scala/Main.scala b/sbt-standalone/src/main/scala/Main.scala new file mode 100644 index 000000000..e011393f4 --- /dev/null +++ b/sbt-standalone/src/main/scala/Main.scala @@ -0,0 +1,3 @@ +object Main extends App { + println("Hello from Scala!") +} \ No newline at end of file From 3795eaae2149b264e1ceb600414261c9ccc31c48 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Thu, 25 Jan 2024 21:10:03 +0100 Subject: [PATCH 0303/1318] Added sample code for ScalaTest Table --- .../scala/tabledata/TableDrivenUnitTest.scala | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 scala-test/src/test/scala/com/baeldung/scala/tabledata/TableDrivenUnitTest.scala diff --git a/scala-test/src/test/scala/com/baeldung/scala/tabledata/TableDrivenUnitTest.scala b/scala-test/src/test/scala/com/baeldung/scala/tabledata/TableDrivenUnitTest.scala new file mode 100644 index 000000000..30487e737 --- /dev/null +++ b/scala-test/src/test/scala/com/baeldung/scala/tabledata/TableDrivenUnitTest.scala @@ -0,0 +1,43 @@ +package com.baeldung.scala.tabledata + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers +import org.scalatest.prop.TableDrivenPropertyChecks + +class TableDrivenUnitTest + extends AnyFlatSpec + with Matchers + with TableDrivenPropertyChecks { + + def isPalindrome(str: String): Boolean = str == str.reverse + + private val palindromeTable = Table( + ("Text", "Is Palindrome"), + ("madam", false), + ("Madam", false), + ("Hello", true) + ) + + it should "check for palindrome" in { + forAll(palindromeTable) { (str, expectedResult) => + isPalindrome(str) shouldBe expectedResult + } + } + + it should "check for palindrome using forEvery" in { + forEvery(palindromeTable) { (str, expectedResult) => + isPalindrome(str) shouldBe expectedResult + } + } + + it should "check for palindrome for string 'madam'" in { + isPalindrome("madam") shouldBe true + } + it should "check for palindrome for string 'Madam'" in { + isPalindrome("Madam") shouldBe false + } + it should "check for palindrome for string 'Hello'" in { + isPalindrome("Hello") shouldBe false + } + +} From ce89703411ca12ba47047e9cd72dd6568919e4a0 Mon Sep 17 00:00:00 2001 From: Matteo Di Pirro Date: Fri, 26 Jan 2024 08:56:25 +0100 Subject: [PATCH 0304/1318] SCALA-638 Add more tests for the parse flow --- .../scala/akka/stream/StreamTest.scala | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/scala-akka-3/src/test/scala/com/baeldung/scala/akka/stream/StreamTest.scala b/scala-akka-3/src/test/scala/com/baeldung/scala/akka/stream/StreamTest.scala index c43bdd22c..d6ca94742 100644 --- a/scala-akka-3/src/test/scala/com/baeldung/scala/akka/stream/StreamTest.scala +++ b/scala-akka-3/src/test/scala/com/baeldung/scala/akka/stream/StreamTest.scala @@ -25,6 +25,64 @@ class StreamTest extends AnyFlatSpec with Matchers { sub.expectComplete() } + "The \"parse\" flow" should "reject pairs with the wrong delimiter" in { + val (pub, sub) = TestSource[String]() + .via(parse) + .toMat(TestSink[(Int, Int)]())(Keep.both) + .run() + + pub.sendNext("2,3") + pub.sendNext("1;1") + pub.sendComplete() + + sub.request(2) + sub.expectNext((2, 3)) + val exc = sub.expectError() + exc.getMessage should be("For input string: \"1;1\"") + } + + "The \"parse\" flow" should "reject pairs with more than two numbers" in { + val (pub, sub) = TestSource[String]() + .via(parse) + .toMat(TestSink[(Int, Int)]())(Keep.both) + .run() + + pub.sendNext("(1,3),(4,5)") + pub.sendComplete() + + val exc = sub.expectSubscriptionAndError() + exc.getMessage should be("For input string: \"(1\"") + } + + "The \"parse\" flow" should "reject pairs with only one number" in { + val (pub, sub) = TestSource[String]() + .via(parse) + .toMat(TestSink[(Int, Int)]())(Keep.both) + .run() + + pub.sendNext("1") + pub.sendComplete() + + val exc = sub.expectSubscriptionAndError() + exc.getMessage should be("Index 1 out of bounds for length 1") + } + + "The \"parse\" flow" should "reject pairs with the wrong types" in { + val (pub, sub) = TestSource[String]() + .via(parse) + .toMat(TestSink[(Int, Int)]())(Keep.both) + .run() + + pub.sendNext("2,3") + pub.sendNext("1,a") + pub.sendComplete() + + sub.request(2) + sub.expectNext((2, 3)) + val exc = sub.expectError() + exc.getMessage should be("For input string: \"a\"") + } + "The \"compare\" flow" should "compare pairs of integers" in { val (pub, sub) = TestSource[(Int, Int)]() .via(compare) From 549118d8373ddcefdf5abd8478dcbd661dd8038e Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 26 Jan 2024 09:05:58 +0100 Subject: [PATCH 0305/1318] Changed palindrome impl --- .../scala/tabledata/TableDrivenUnitTest.scala | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/scala-test/src/test/scala/com/baeldung/scala/tabledata/TableDrivenUnitTest.scala b/scala-test/src/test/scala/com/baeldung/scala/tabledata/TableDrivenUnitTest.scala index 30487e737..989ec2c65 100644 --- a/scala-test/src/test/scala/com/baeldung/scala/tabledata/TableDrivenUnitTest.scala +++ b/scala-test/src/test/scala/com/baeldung/scala/tabledata/TableDrivenUnitTest.scala @@ -9,13 +9,18 @@ class TableDrivenUnitTest with Matchers with TableDrivenPropertyChecks { - def isPalindrome(str: String): Boolean = str == str.reverse + def isPalindrome(str: String): Boolean = { + val sanitizedStr = str.replaceAll("[^A-Za-z0-9]", "").toLowerCase + sanitizedStr == sanitizedStr.reverse + } private val palindromeTable = Table( ("Text", "Is Palindrome"), - ("madam", false), - ("Madam", false), - ("Hello", true) + ("madam", true), + ("Madam", true), + ("Tacocat", true), + ("TACO, CAT", true), + ("Hello", false), ) it should "check for palindrome" in { @@ -33,8 +38,8 @@ class TableDrivenUnitTest it should "check for palindrome for string 'madam'" in { isPalindrome("madam") shouldBe true } - it should "check for palindrome for string 'Madam'" in { - isPalindrome("Madam") shouldBe false + it should "check for palindrome for string 'Tacocat' with special character" in { + isPalindrome("Taco, cat") shouldBe true } it should "check for palindrome for string 'Hello'" in { isPalindrome("Hello") shouldBe false From f78f0da34f7a4e72e2d367eea0d34cc50eecf771 Mon Sep 17 00:00:00 2001 From: collaboratewithakash <38683470+collaboratewithakash@users.noreply.github.com> Date: Sat, 27 Jan 2024 12:36:49 +0530 Subject: [PATCH 0306/1318] backlink updated --- scala-core-modules/scala-core-8/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-core-modules/scala-core-8/README.md b/scala-core-modules/scala-core-8/README.md index 43c1bdb72..2c500a1f3 100644 --- a/scala-core-modules/scala-core-8/README.md +++ b/scala-core-modules/scala-core-8/README.md @@ -4,5 +4,5 @@ - [The Either Type in Scala](https://www.baeldung.com/scala/either-type) - [Understanding the Differences: reduceLeft, reduceRight, foldLeft, foldRight, scanLeft, and scanRight in Scala](https://www.baeldung.com/scala/reduce-fold-scan-left-right) - [Different Ways to Reverse a Sequence in Scala](https://www.baeldung.com/scala/reverse-sequence) -- [Check if a Number is Magic Number in Scala](https://www.baeldung.com/scala/check-magic-number) +- [Check if a Number Is Magic Number in Scala](https://www.baeldung.com/scala/check-magic-number) - [Guide to Scala Duration and FiniteDuration](https://www.baeldung.com/scala/duration-finiteduration) From 794081e96b05cd8ada6819ff1106b4207cc5da27 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 27 Jan 2024 09:53:45 +0100 Subject: [PATCH 0307/1318] scalafmt fix --- .../com/baeldung/scala/tabledata/TableDrivenUnitTest.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-test/src/test/scala/com/baeldung/scala/tabledata/TableDrivenUnitTest.scala b/scala-test/src/test/scala/com/baeldung/scala/tabledata/TableDrivenUnitTest.scala index 989ec2c65..bd797c3a0 100644 --- a/scala-test/src/test/scala/com/baeldung/scala/tabledata/TableDrivenUnitTest.scala +++ b/scala-test/src/test/scala/com/baeldung/scala/tabledata/TableDrivenUnitTest.scala @@ -20,7 +20,7 @@ class TableDrivenUnitTest ("Madam", true), ("Tacocat", true), ("TACO, CAT", true), - ("Hello", false), + ("Hello", false) ) it should "check for palindrome" in { From a6a908b7bf88fcd2f7169df135809f296ce7e069 Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Sat, 27 Jan 2024 21:35:46 +0800 Subject: [PATCH 0308/1318] Update README.md --- scala-core-modules/scala-core-8/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-core-modules/scala-core-8/README.md b/scala-core-modules/scala-core-8/README.md index 2c500a1f3..aafbbf02d 100644 --- a/scala-core-modules/scala-core-8/README.md +++ b/scala-core-modules/scala-core-8/README.md @@ -6,3 +6,4 @@ - [Different Ways to Reverse a Sequence in Scala](https://www.baeldung.com/scala/reverse-sequence) - [Check if a Number Is Magic Number in Scala](https://www.baeldung.com/scala/check-magic-number) - [Guide to Scala Duration and FiniteDuration](https://www.baeldung.com/scala/duration-finiteduration) +- [Transforming a List of Futures Ignoring Failures](https://www.baeldung.com/scala/transform-list-futures-ignore-failures) From eac4a1d7c3c3f4ca4b431857fcbd1758c8db2e1d Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Sat, 27 Jan 2024 21:36:35 +0800 Subject: [PATCH 0309/1318] Update README.md --- scala-core-modules/scala-core-8/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-core-modules/scala-core-8/README.md b/scala-core-modules/scala-core-8/README.md index aafbbf02d..76285366f 100644 --- a/scala-core-modules/scala-core-8/README.md +++ b/scala-core-modules/scala-core-8/README.md @@ -7,3 +7,4 @@ - [Check if a Number Is Magic Number in Scala](https://www.baeldung.com/scala/check-magic-number) - [Guide to Scala Duration and FiniteDuration](https://www.baeldung.com/scala/duration-finiteduration) - [Transforming a List of Futures Ignoring Failures](https://www.baeldung.com/scala/transform-list-futures-ignore-failures) +- [Difference Between Braces and Parentheses in Scala](https://www.baeldung.com/scala/braces-vs-parentheses) From 105e3c0056e09833813675c430552078274e5d6f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 28 Jan 2024 00:16:00 +0000 Subject: [PATCH 0310/1318] Update fs2-core, fs2-io from 3.9.3 to 3.9.4 --- build.sbt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 30393272c..743ca2f16 100644 --- a/build.sbt +++ b/build.sbt @@ -270,7 +270,7 @@ val monocleVersion = "2.1.0" val slickVersion = "3.4.1" val shapelessVersion = "2.3.10" val scalazVersion = "7.3.8" -val fs2Version = "3.9.3" +val fs2Version = "3.9.4" val AkkaVersion = "2.8.0" val AkkaHttpVersion = "10.5.0" val reactiveMongo = "1.0.10" @@ -614,7 +614,6 @@ lazy val spark_scala = (project in file("spark-scala")) // Do not uncomment the next line // lazy val spark_scala = (project in file("sbt-standalone")) - addCommandAlias( "ci", ";compile;test:compile;it:compile;scalafmtCheckAll;test" From ef4dc5e3fc1dc44b60996719d5f5d76718b8da5c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 28 Jan 2024 00:16:16 +0000 Subject: [PATCH 0311/1318] Update aws-java-sdk-s3 from 1.12.641 to 1.12.646 --- build.sbt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 30393272c..ed65bc3b7 100644 --- a/build.sbt +++ b/build.sbt @@ -415,7 +415,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "software.amazon.awssdk" % "s3" % "2.23.7" ), libraryDependencies ++= Seq( - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.641" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.646" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.0" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.0" % IntegrationTest ), @@ -614,7 +614,6 @@ lazy val spark_scala = (project in file("spark-scala")) // Do not uncomment the next line // lazy val spark_scala = (project in file("sbt-standalone")) - addCommandAlias( "ci", ";compile;test:compile;it:compile;scalafmtCheckAll;test" From dce7136abfbb215b0896058d420c0570fb0ca14e Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 28 Jan 2024 00:16:24 +0000 Subject: [PATCH 0312/1318] Update mockito-core from 5.9.0 to 5.10.0 --- play-scala/caching-in-play/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/play-scala/caching-in-play/build.sbt b/play-scala/caching-in-play/build.sbt index 91e4c7984..da64fadb6 100644 --- a/play-scala/caching-in-play/build.sbt +++ b/play-scala/caching-in-play/build.sbt @@ -11,6 +11,6 @@ libraryDependencies += guice libraryDependencies += caffeine libraryDependencies += ws libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % Test -libraryDependencies += "org.mockito" % "mockito-core" % "5.9.0" % Test +libraryDependencies += "org.mockito" % "mockito-core" % "5.10.0" % Test PlayKeys.devSettings += "play.server.http.port" -> "9000" From 1f5a5c18f7fdfdd3152028666c583699978fb225 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 28 Jan 2024 00:16:40 +0000 Subject: [PATCH 0313/1318] Update pulsar from 1.19.3 to 1.19.4 --- build.sbt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 30393272c..745b024cb 100644 --- a/build.sbt +++ b/build.sbt @@ -409,7 +409,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) libraryDependencies ++= Seq( "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.9.0", "com.clever-cloud.pulsar4s" %% "pulsar4s-jackson" % "2.9.0", - "org.testcontainers" % "pulsar" % "1.19.3" % IntegrationTest + "org.testcontainers" % "pulsar" % "1.19.4" % IntegrationTest ), libraryDependencies ++= Seq( "software.amazon.awssdk" % "s3" % "2.23.7" @@ -614,7 +614,6 @@ lazy val spark_scala = (project in file("spark-scala")) // Do not uncomment the next line // lazy val spark_scala = (project in file("sbt-standalone")) - addCommandAlias( "ci", ";compile;test:compile;it:compile;scalafmtCheckAll;test" From c6d33d5238e7f4acd628f70262eabd8b32bfe48d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 28 Jan 2024 00:16:53 +0000 Subject: [PATCH 0314/1318] Update skunk-core from 0.6.2 to 0.6.3 --- build.sbt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 30393272c..8d189e874 100644 --- a/build.sbt +++ b/build.sbt @@ -401,7 +401,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) libraryDependencies ++= Seq( "org.scala-lang.modules" %% "scala-async" % "1.0.1", scalaReflection % Provided, - "org.tpolecat" %% "skunk-core" % "0.6.2", + "org.tpolecat" %% "skunk-core" % "0.6.3", logback, "com.typesafe.scala-logging" %% "scala-logging" % "3.9.5", "org.typelevel" %% "cats-core" % "2.10.0" @@ -614,7 +614,6 @@ lazy val spark_scala = (project in file("spark-scala")) // Do not uncomment the next line // lazy val spark_scala = (project in file("sbt-standalone")) - addCommandAlias( "ci", ";compile;test:compile;it:compile;scalafmtCheckAll;test" From 92b63955f2fc0fd5c82604592f66e569f9f99fd5 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 28 Jan 2024 00:17:09 +0000 Subject: [PATCH 0315/1318] Update s3 from 2.23.7 to 2.23.12 --- build.sbt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 30393272c..ca0e0b101 100644 --- a/build.sbt +++ b/build.sbt @@ -412,7 +412,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "org.testcontainers" % "pulsar" % "1.19.3" % IntegrationTest ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "s3" % "2.23.7" + "software.amazon.awssdk" % "s3" % "2.23.12" ), libraryDependencies ++= Seq( "com.amazonaws" % "aws-java-sdk-s3" % "1.12.641" % IntegrationTest, @@ -614,7 +614,6 @@ lazy val spark_scala = (project in file("spark-scala")) // Do not uncomment the next line // lazy val spark_scala = (project in file("sbt-standalone")) - addCommandAlias( "ci", ";compile;test:compile;it:compile;scalafmtCheckAll;test" From 61a422ebd59cc6a1b27c1aa4e60802f3fb15a360 Mon Sep 17 00:00:00 2001 From: Stefanos Georgakis Date: Sat, 9 Dec 2023 14:56:22 +0200 Subject: [PATCH 0316/1318] [SCALA-351] Introduction to zio-kafka --- build.sbt | 17 +++-- zio/README.md | 1 - zio/build.sbt | 1 - .../scala/zio/zio_kafka/CustomMessage.scala | 13 ++++ .../zio/zio_kafka/CustomMessageSerde.scala | 17 +++++ .../stream/KafkaStreamConsumer.scala | 19 ++++++ .../stream/KafkaStreamProducer.scala | 17 +++++ .../stream/KafkaStreamWorkflowApp.scala | 63 +++++++++++++++++++ .../zio_kafka/workflow/KafkaConsumer.scala | 26 ++++++++ .../zio_kafka/workflow/KafkaProducer.scala | 30 +++++++++ .../zio_kafka/workflow/KafkaWorkflowApp.scala | 23 +++++++ zio3/README.md | 3 + zio3/project/build.properties | 1 + .../baeldung/scala/zio/httpapp/HelloApp.scala | 0 .../baeldung/scala/zio/httpapp/MainApp.scala | 0 .../scala/zio/httpapp/ZioEffectApp.scala | 0 .../httpapp/app/IngredientWebsocketApp.scala | 0 .../scala/zio/httpapp/app/Recipe.scala | 0 .../scala/zio/httpapp/app/RecipeHttpApp.scala | 0 .../scala/zio/httpapp/app/SpeedHttpApp.scala | 0 .../scala/zio/httpapp/client/HttpClient.scala | 0 .../zio/httpapp/repo/InMemoryRecipeRepo.scala | 0 .../scala/zio/httpapp/repo/RecipeRepo.scala | 0 .../zio/httpapp/service/RecipeService.scala | 0 .../zio/httpapp/app/RecipeHttpAppSpec.scala | 0 25 files changed, 225 insertions(+), 6 deletions(-) delete mode 100644 zio/build.sbt create mode 100644 zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/CustomMessage.scala create mode 100644 zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/CustomMessageSerde.scala create mode 100644 zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/stream/KafkaStreamConsumer.scala create mode 100644 zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/stream/KafkaStreamProducer.scala create mode 100644 zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/stream/KafkaStreamWorkflowApp.scala create mode 100644 zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/workflow/KafkaConsumer.scala create mode 100644 zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/workflow/KafkaProducer.scala create mode 100644 zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/workflow/KafkaWorkflowApp.scala create mode 100644 zio3/README.md create mode 100644 zio3/project/build.properties rename {zio => zio3}/src/main/scala-3/com/baeldung/scala/zio/httpapp/HelloApp.scala (100%) rename {zio => zio3}/src/main/scala-3/com/baeldung/scala/zio/httpapp/MainApp.scala (100%) rename {zio => zio3}/src/main/scala-3/com/baeldung/scala/zio/httpapp/ZioEffectApp.scala (100%) rename {zio => zio3}/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/IngredientWebsocketApp.scala (100%) rename {zio => zio3}/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/Recipe.scala (100%) rename {zio => zio3}/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/RecipeHttpApp.scala (100%) rename {zio => zio3}/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/SpeedHttpApp.scala (100%) rename {zio => zio3}/src/main/scala-3/com/baeldung/scala/zio/httpapp/client/HttpClient.scala (100%) rename {zio => zio3}/src/main/scala-3/com/baeldung/scala/zio/httpapp/repo/InMemoryRecipeRepo.scala (100%) rename {zio => zio3}/src/main/scala-3/com/baeldung/scala/zio/httpapp/repo/RecipeRepo.scala (100%) rename {zio => zio3}/src/main/scala-3/com/baeldung/scala/zio/httpapp/service/RecipeService.scala (100%) rename {zio => zio3}/src/test/scala-3/com/baeldung/scala/zio/httpapp/app/RecipeHttpAppSpec.scala (100%) diff --git a/build.sbt b/build.sbt index 284e15089..1ec95cea8 100644 --- a/build.sbt +++ b/build.sbt @@ -528,6 +528,13 @@ lazy val zio = (project in file("zio")) libraryDependencies += "dev.zio" %% "zio" % zioVersion, libraryDependencies += "dev.zio" %% "zio-streams" % zioVersion, libraryDependencies += "dev.zio" %% "zio-test-sbt" % zioVersion % Test, + libraryDependencies += "dev.zio" %% "zio-kafka" % "2.7.0", + libraryDependencies += "dev.zio" %% "zio-json" % "0.6.2", + testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework") + ) + +lazy val zio3 = (project in file("zio3")) + .settings( libraryDependencies ++= Seq( "dev.zio" %% "zio-json" % "0.6.2", "dev.zio" %% "zio-http" % "3.0.0-RC2", @@ -536,12 +543,14 @@ lazy val zio = (project in file("zio")) "com.h2database" % "h2" % "2.2.220" ), libraryDependencies ++= Seq( - "dev.zio" %% "zio-test" % zioVersion % Test, - "dev.zio" %% "zio-test-magnolia" % zioVersion % Test, + "dev.zio" %% "zio-test" % "2.0.19" % Test, + "dev.zio" %% "zio-test-sbt" % "2.0.16" % Test, + "dev.zio" %% "zio-test-magnolia" % "2.0.19" % Test, "dev.zio" %% "zio-http-testkit" % "3.0.0-RC2" % Test ), - testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework") - ) + testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework"), + run / fork := true +) lazy val doobie = (project in file("doobie")) .settings( diff --git a/zio/README.md b/zio/README.md index d190aeea1..fe03f82ee 100644 --- a/zio/README.md +++ b/zio/README.md @@ -8,4 +8,3 @@ - [Repeat and Retry in ZIO](https://www.baeldung.com/scala/zio-repeat-retry) - [Introduction to Fibers in ZIO](https://www.baeldung.com/scala/zio-fibers-tutorial) - [Error Handling in ZIO](https://www.baeldung.com/scala/zio-error-handling) -- [Introduction to ZIO-HTTP](https://www.baeldung.com/scala/zio-http) diff --git a/zio/build.sbt b/zio/build.sbt deleted file mode 100644 index 6dbf94cfe..000000000 --- a/zio/build.sbt +++ /dev/null @@ -1 +0,0 @@ -run / fork := true diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/CustomMessage.scala b/zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/CustomMessage.scala new file mode 100644 index 000000000..e2123e9a8 --- /dev/null +++ b/zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/CustomMessage.scala @@ -0,0 +1,13 @@ +package com.baeldung.scala.zio.zio_kafka + +import zio.json._ + +case class CustomMessage(id: Long, message: String, sender: String) + +object CustomMessage { + implicit val encoder: JsonEncoder[CustomMessage] = + DeriveJsonEncoder.gen[CustomMessage] + + implicit val decoder: JsonDecoder[CustomMessage] = + DeriveJsonDecoder.gen[CustomMessage] +} diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/CustomMessageSerde.scala b/zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/CustomMessageSerde.scala new file mode 100644 index 000000000..82afdc327 --- /dev/null +++ b/zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/CustomMessageSerde.scala @@ -0,0 +1,17 @@ +package com.baeldung.scala.zio.zio_kafka + +import zio._ +import zio.json._ +import zio.kafka.serde._ + +object CustomMessageSerde { + val key: Serde[Any, String] = + Serde.string + + val value: Serde[Any, CustomMessage] = + Serde.string.inmapM[Any, CustomMessage](s => + ZIO + .fromEither(s.fromJson[CustomMessage]) + .mapError(e => new RuntimeException(e)) + )(r => ZIO.succeed(r.toJson)) +} diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/stream/KafkaStreamConsumer.scala b/zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/stream/KafkaStreamConsumer.scala new file mode 100644 index 000000000..832a7acbc --- /dev/null +++ b/zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/stream/KafkaStreamConsumer.scala @@ -0,0 +1,19 @@ +package com.baeldung.scala.zio.zio_kafka.stream + +import zio.ZLayer +import zio.kafka.consumer.{Consumer, ConsumerSettings} + +object KafkaStreamConsumer { + + def consumerLayer( + bootstrapServers: List[String], + groupId: String + ): ZLayer[Any, Throwable, Consumer] = + ZLayer.scoped( + Consumer.make( + ConsumerSettings(bootstrapServers) + .withGroupId(groupId) + ) + ) + +} diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/stream/KafkaStreamProducer.scala b/zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/stream/KafkaStreamProducer.scala new file mode 100644 index 000000000..20a5df884 --- /dev/null +++ b/zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/stream/KafkaStreamProducer.scala @@ -0,0 +1,17 @@ +package com.baeldung.scala.zio.zio_kafka.stream + + +import zio.ZLayer +import zio.kafka.producer.{Producer, ProducerSettings} + +object KafkaStreamProducer { + + def producerLayer( + bootstrapServers: List[String] + ): ZLayer[Any, Throwable, Producer] = + ZLayer.scoped( + Producer.make( + ProducerSettings(bootstrapServers) + ) + ) +} diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/stream/KafkaStreamWorkflowApp.scala b/zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/stream/KafkaStreamWorkflowApp.scala new file mode 100644 index 000000000..ab5b0e40b --- /dev/null +++ b/zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/stream/KafkaStreamWorkflowApp.scala @@ -0,0 +1,63 @@ +package com.baeldung.scala.zio.zio_kafka.stream + +import com.baeldung.scala.zio.zio_kafka.{CustomMessage, CustomMessageSerde} +import org.apache.kafka.clients.producer.ProducerRecord +import zio._ +import zio.kafka.consumer._ +import zio.ZIOAppDefault +import zio.kafka.producer.Producer +import zio.stream.ZStream + +object KafkaStreamWorkflowApp extends ZIOAppDefault { + + private val BOOTSTRAP_SERVERS = List("localhost:9092") + private val KAFKA_TOPIC = "baeldung" + + val producer: ZLayer[Any, Throwable, Producer] = + KafkaStreamProducer.producerLayer(BOOTSTRAP_SERVERS) + val consumer: ZLayer[Any, Throwable, Consumer] = + KafkaStreamConsumer.consumerLayer( + BOOTSTRAP_SERVERS, + "baeldung-consumer-group" + ) + + override def run = { + val prod: ZStream[Producer, Throwable, Nothing] = + ZStream + .repeat("key") + .schedule(Schedule.spaced(1.second)) + .map(key => + new ProducerRecord( + KAFKA_TOPIC, + key, + CustomMessage(1, "Hello", "Baeldung") + ) + ) + .via( + Producer.produceAll(CustomMessageSerde.key, CustomMessageSerde.value) + ) + .drain + + val cons: ZStream[Consumer, Throwable, Nothing] = + Consumer + .plainStream( + Subscription.topics(KAFKA_TOPIC), + CustomMessageSerde.key, + CustomMessageSerde.value + ) + .tap(record => + Console + .printLine( + s"Consumed message with key: ${record.key} and value: ${record.value}" + ) + .orDie + ) + .map(_.offset) + .aggregateAsync(Consumer.offsetBatches) + .mapZIO(_.commit) + .drain + + (prod merge cons).runDrain.provide(producer, consumer) + } + +} diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/workflow/KafkaConsumer.scala b/zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/workflow/KafkaConsumer.scala new file mode 100644 index 000000000..bc270ad83 --- /dev/null +++ b/zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/workflow/KafkaConsumer.scala @@ -0,0 +1,26 @@ +package com.baeldung.scala.zio.zio_kafka.workflow + +import com.baeldung.scala.zio.zio_kafka.CustomMessageSerde +import zio._ +import zio.kafka.consumer.{Consumer, ConsumerSettings, Subscription} + +object KafkaConsumer { + def consume( + bootstrapServers: List[String], + groupId: String, + topic: String + ): RIO[Any, Unit] = + Consumer.consumeWith( + settings = ConsumerSettings(bootstrapServers) + .withGroupId(groupId), + subscription = Subscription.topics(topic), + keyDeserializer = CustomMessageSerde.key, + valueDeserializer = CustomMessageSerde.value + )(record => + Console + .printLine( + s"Consumed message with key: ${record.key()} and value: ${record.value()}" + ) + .orDie + ) +} diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/workflow/KafkaProducer.scala b/zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/workflow/KafkaProducer.scala new file mode 100644 index 000000000..fcc7a52de --- /dev/null +++ b/zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/workflow/KafkaProducer.scala @@ -0,0 +1,30 @@ +package com.baeldung.scala.zio.zio_kafka.workflow + +import com.baeldung.scala.zio.zio_kafka.{CustomMessage, CustomMessageSerde} +import org.apache.kafka.clients.producer.RecordMetadata +import zio.{RIO, ZLayer} +import zio.kafka.producer.{Producer, ProducerSettings} + +object KafkaProducer { + def produce( + topic: String, + key: String, + value: CustomMessage + ): RIO[Any with Producer, RecordMetadata] = + Producer.produce[Any, String, CustomMessage]( + topic = topic, + key = key, + value = value, + keySerializer = CustomMessageSerde.key, + valueSerializer = CustomMessageSerde.value + ) + + def producerLayer( + bootstrapServers: List[String] + ): ZLayer[Any, Throwable, Producer] = + ZLayer.scoped( + Producer.make( + ProducerSettings().withBootstrapServers(bootstrapServers) + ) + ) +} diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/workflow/KafkaWorkflowApp.scala b/zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/workflow/KafkaWorkflowApp.scala new file mode 100644 index 000000000..c7babbfda --- /dev/null +++ b/zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/workflow/KafkaWorkflowApp.scala @@ -0,0 +1,23 @@ +package com.baeldung.scala.zio.zio_kafka.workflow + +import com.baeldung.scala.zio.zio_kafka.CustomMessage +import zio.ZIOAppDefault + +object KafkaWorkflowApp extends ZIOAppDefault { + + private val BOOTSTRAP_SERVERS = List("localhost:9092") + private val KAFKA_TOPIC = "baeldung" + + override def run = + for { + consumer <- KafkaConsumer + .consume(BOOTSTRAP_SERVERS, "baeldung-consumer-group", KAFKA_TOPIC) + .fork + _ <- KafkaProducer + .produce(KAFKA_TOPIC, "key", CustomMessage(1, "Hello", "Baeldung")) + .provide(KafkaProducer.producerLayer(BOOTSTRAP_SERVERS)) + .repeatN(10) + _ <- consumer.join + } yield () + +} diff --git a/zio3/README.md b/zio3/README.md new file mode 100644 index 000000000..4a46e2f83 --- /dev/null +++ b/zio3/README.md @@ -0,0 +1,3 @@ +### Relevant Articles: + +- [Introduction to ZIO-HTTP](https://www.baeldung.com/scala/zio-http) diff --git a/zio3/project/build.properties b/zio3/project/build.properties new file mode 100644 index 000000000..e8a1e246e --- /dev/null +++ b/zio3/project/build.properties @@ -0,0 +1 @@ +sbt.version=1.9.7 diff --git a/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/HelloApp.scala b/zio3/src/main/scala-3/com/baeldung/scala/zio/httpapp/HelloApp.scala similarity index 100% rename from zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/HelloApp.scala rename to zio3/src/main/scala-3/com/baeldung/scala/zio/httpapp/HelloApp.scala diff --git a/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/MainApp.scala b/zio3/src/main/scala-3/com/baeldung/scala/zio/httpapp/MainApp.scala similarity index 100% rename from zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/MainApp.scala rename to zio3/src/main/scala-3/com/baeldung/scala/zio/httpapp/MainApp.scala diff --git a/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/ZioEffectApp.scala b/zio3/src/main/scala-3/com/baeldung/scala/zio/httpapp/ZioEffectApp.scala similarity index 100% rename from zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/ZioEffectApp.scala rename to zio3/src/main/scala-3/com/baeldung/scala/zio/httpapp/ZioEffectApp.scala diff --git a/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/IngredientWebsocketApp.scala b/zio3/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/IngredientWebsocketApp.scala similarity index 100% rename from zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/IngredientWebsocketApp.scala rename to zio3/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/IngredientWebsocketApp.scala diff --git a/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/Recipe.scala b/zio3/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/Recipe.scala similarity index 100% rename from zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/Recipe.scala rename to zio3/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/Recipe.scala diff --git a/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/RecipeHttpApp.scala b/zio3/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/RecipeHttpApp.scala similarity index 100% rename from zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/RecipeHttpApp.scala rename to zio3/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/RecipeHttpApp.scala diff --git a/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/SpeedHttpApp.scala b/zio3/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/SpeedHttpApp.scala similarity index 100% rename from zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/SpeedHttpApp.scala rename to zio3/src/main/scala-3/com/baeldung/scala/zio/httpapp/app/SpeedHttpApp.scala diff --git a/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/client/HttpClient.scala b/zio3/src/main/scala-3/com/baeldung/scala/zio/httpapp/client/HttpClient.scala similarity index 100% rename from zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/client/HttpClient.scala rename to zio3/src/main/scala-3/com/baeldung/scala/zio/httpapp/client/HttpClient.scala diff --git a/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/repo/InMemoryRecipeRepo.scala b/zio3/src/main/scala-3/com/baeldung/scala/zio/httpapp/repo/InMemoryRecipeRepo.scala similarity index 100% rename from zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/repo/InMemoryRecipeRepo.scala rename to zio3/src/main/scala-3/com/baeldung/scala/zio/httpapp/repo/InMemoryRecipeRepo.scala diff --git a/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/repo/RecipeRepo.scala b/zio3/src/main/scala-3/com/baeldung/scala/zio/httpapp/repo/RecipeRepo.scala similarity index 100% rename from zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/repo/RecipeRepo.scala rename to zio3/src/main/scala-3/com/baeldung/scala/zio/httpapp/repo/RecipeRepo.scala diff --git a/zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/service/RecipeService.scala b/zio3/src/main/scala-3/com/baeldung/scala/zio/httpapp/service/RecipeService.scala similarity index 100% rename from zio/src/main/scala-3/com/baeldung/scala/zio/httpapp/service/RecipeService.scala rename to zio3/src/main/scala-3/com/baeldung/scala/zio/httpapp/service/RecipeService.scala diff --git a/zio/src/test/scala-3/com/baeldung/scala/zio/httpapp/app/RecipeHttpAppSpec.scala b/zio3/src/test/scala-3/com/baeldung/scala/zio/httpapp/app/RecipeHttpAppSpec.scala similarity index 100% rename from zio/src/test/scala-3/com/baeldung/scala/zio/httpapp/app/RecipeHttpAppSpec.scala rename to zio3/src/test/scala-3/com/baeldung/scala/zio/httpapp/app/RecipeHttpAppSpec.scala From b638d1b648c02b4b483dd38376e0342c5d682b26 Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Sat, 3 Feb 2024 09:24:24 +0800 Subject: [PATCH 0317/1318] Update README.md --- scala-core-modules/scala-core-8/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-core-modules/scala-core-8/README.md b/scala-core-modules/scala-core-8/README.md index 76285366f..da1199407 100644 --- a/scala-core-modules/scala-core-8/README.md +++ b/scala-core-modules/scala-core-8/README.md @@ -8,3 +8,4 @@ - [Guide to Scala Duration and FiniteDuration](https://www.baeldung.com/scala/duration-finiteduration) - [Transforming a List of Futures Ignoring Failures](https://www.baeldung.com/scala/transform-list-futures-ignore-failures) - [Difference Between Braces and Parentheses in Scala](https://www.baeldung.com/scala/braces-vs-parentheses) +- [Check if a Number Is Prime in Scala](https://www.baeldung.com/scala/check-number-prime) From b7757c5d908239b6c62330a81762697bb3961ba0 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 3 Feb 2024 17:03:04 +0100 Subject: [PATCH 0318/1318] Added sample code for checking if a collection is sorted --- .../scala/sort/IsSortedCollection.scala | 61 ++++++++++++++++++ .../sort/IsSortedCollectionUnitTest.scala | 63 +++++++++++++++++++ 2 files changed, 124 insertions(+) create mode 100644 scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/sort/IsSortedCollection.scala create mode 100644 scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/sort/IsSortedCollectionUnitTest.scala diff --git a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/sort/IsSortedCollection.scala b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/sort/IsSortedCollection.scala new file mode 100644 index 000000000..b2d1240ab --- /dev/null +++ b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/sort/IsSortedCollection.scala @@ -0,0 +1,61 @@ +package com.baeldung.scala.sort + +import com.baeldung.scala.sort.IsSortedCollection.Direction.ASC + +import scala.annotation.tailrec + +object IsSortedCollection { + + enum Direction: + case ASC, DESC + + def isSortedBySorting[A](list: List[A], direction: Direction)(using + ord: Ordering[A] + ): Boolean = { + direction match { + case Direction.ASC => list.sorted == list + case Direction.DESC => list.sorted.reverse == list + } + } + + def isSortedBySliding[A](list: List[A], direction: Direction)(using + ord: Ordering[A] + ): Boolean = { + val comparator = if (direction == ASC) ord.lteq else ord.gteq + list match { + case Nil | _ :: Nil => true + case _ => list.sliding(2).forall { case List(a, b) => comparator(a, b) } + } + } + + def isSortedByZip[A](list: List[A], direction: Direction)(using + ord: Ordering[A] + ): Boolean = { + val comparator = if (direction == ASC) ord.lteq else ord.gteq + if (list.size < 2) + true + else + list.zip(list.tail).forall { case (a, b) => comparator(a, b) } + } + + def isSortedByLazyZip[A](list: List[A], direction: Direction)(using + ord: Ordering[A] + ): Boolean = { + val comparator = if (direction == ASC) ord.lteq else ord.gteq + if (list.size < 2) + true + else + list.lazyZip(list.tail).forall { case (a, b) => comparator(a, b) } + } + + @tailrec + def isSortedRecursive[A](list: List[A], direction: Direction)(using + ord: Ordering[A] + ): Boolean = { + val comparator = if (direction == ASC) ord.lteq else ord.gteq + list match { + case Nil | _ :: Nil => true + case a :: b :: tail => comparator(a, b) && isSortedRecursive(b :: tail, direction) + } + } +} diff --git a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/sort/IsSortedCollectionUnitTest.scala b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/sort/IsSortedCollectionUnitTest.scala new file mode 100644 index 000000000..397698232 --- /dev/null +++ b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/sort/IsSortedCollectionUnitTest.scala @@ -0,0 +1,63 @@ +package com.baeldung.scala.sort + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers +import org.scalatest.prop.TableDrivenPropertyChecks +import IsSortedCollection.* + +class IsSortedCollectionUnitTest + extends AnyFlatSpec + with Matchers + with TableDrivenPropertyChecks { + + + val fnsToTest = List( + (("isSortedBySorting", isSortedBySorting[Int])), + (("isSortedBySliding", isSortedBySliding[Int])), + (("isSortedByZip", isSortedByZip[Int])), + (("isSortedByLazyZip", isSortedByLazyZip[Int])), + (("isSortedRecursive", isSortedRecursive[Int])), + ) + + //format: off - to read the table more easily + private val intTable = Table( + ("Functions", "Input", "Direction", "IsSorted"), + (fnsToTest, List(1,2,3,4), Direction.ASC, true), + (fnsToTest, List(1,2,3,4), Direction.DESC, false), + (fnsToTest, List(4,3,2,1), Direction.DESC, true), + (fnsToTest, List(1), Direction.DESC, true), + (fnsToTest, List(1), Direction.ASC, true), + (fnsToTest, Nil, Direction.ASC, true), + (fnsToTest, Nil, Direction.DESC, true), + ) + + private val stringTable = Table( + ("Function Name", "Function", "Input", "Direction", "IsSorted"), + ("isSortedBySorting", isSortedBySorting[String], List("a", "b", "c"), Direction.ASC, true), + ("isSortedBySorting", isSortedBySorting[String], List("a", "b", "c"), Direction.DESC, false), + ("isSortedBySorting", isSortedBySorting[String], List("a", "aa", "aab", "bcd"), Direction.ASC, true), + ("isSortedBySorting", isSortedBySorting[String], List("ccc", "bbb", "a"), Direction.DESC, true), + ) + + //format: on + + it should "check if a list is ordered for numbers" in { + forAll(intTable) { (fnsToTest, input, dir, res) => + fnsToTest.foreach { (name, fn) => + withClue(s"For function with name: ${name}") { + fn(input, dir) shouldBe res + } + } + + } + } + + it should "check if a list of strings are ordered" in { + forAll(stringTable) { (name, fn, input, dir, res) => + withClue(s"For function with name: ${name}") { + fn(input, dir) shouldBe res + } + } + } + +} From 64a31629fb2bf265cbe57a30e9b111a38a9112b5 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 3 Feb 2024 17:08:18 +0100 Subject: [PATCH 0319/1318] scalafmt --- .../scala/sort/IsSortedCollection.scala | 13 ++--- .../sort/IsSortedCollectionUnitTest.scala | 51 ++++++++++++++----- 2 files changed, 44 insertions(+), 20 deletions(-) diff --git a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/sort/IsSortedCollection.scala b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/sort/IsSortedCollection.scala index b2d1240ab..24fb2399b 100644 --- a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/sort/IsSortedCollection.scala +++ b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/sort/IsSortedCollection.scala @@ -10,7 +10,7 @@ object IsSortedCollection { case ASC, DESC def isSortedBySorting[A](list: List[A], direction: Direction)(using - ord: Ordering[A] + ord: Ordering[A] ): Boolean = { direction match { case Direction.ASC => list.sorted == list @@ -19,7 +19,7 @@ object IsSortedCollection { } def isSortedBySliding[A](list: List[A], direction: Direction)(using - ord: Ordering[A] + ord: Ordering[A] ): Boolean = { val comparator = if (direction == ASC) ord.lteq else ord.gteq list match { @@ -29,7 +29,7 @@ object IsSortedCollection { } def isSortedByZip[A](list: List[A], direction: Direction)(using - ord: Ordering[A] + ord: Ordering[A] ): Boolean = { val comparator = if (direction == ASC) ord.lteq else ord.gteq if (list.size < 2) @@ -39,7 +39,7 @@ object IsSortedCollection { } def isSortedByLazyZip[A](list: List[A], direction: Direction)(using - ord: Ordering[A] + ord: Ordering[A] ): Boolean = { val comparator = if (direction == ASC) ord.lteq else ord.gteq if (list.size < 2) @@ -50,12 +50,13 @@ object IsSortedCollection { @tailrec def isSortedRecursive[A](list: List[A], direction: Direction)(using - ord: Ordering[A] + ord: Ordering[A] ): Boolean = { val comparator = if (direction == ASC) ord.lteq else ord.gteq list match { case Nil | _ :: Nil => true - case a :: b :: tail => comparator(a, b) && isSortedRecursive(b :: tail, direction) + case a :: b :: tail => + comparator(a, b) && isSortedRecursive(b :: tail, direction) } } } diff --git a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/sort/IsSortedCollectionUnitTest.scala b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/sort/IsSortedCollectionUnitTest.scala index 397698232..f005ffd77 100644 --- a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/sort/IsSortedCollectionUnitTest.scala +++ b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/sort/IsSortedCollectionUnitTest.scala @@ -7,39 +7,62 @@ import IsSortedCollection.* class IsSortedCollectionUnitTest extends AnyFlatSpec - with Matchers - with TableDrivenPropertyChecks { - + with Matchers + with TableDrivenPropertyChecks { val fnsToTest = List( (("isSortedBySorting", isSortedBySorting[Int])), (("isSortedBySliding", isSortedBySliding[Int])), (("isSortedByZip", isSortedByZip[Int])), (("isSortedByLazyZip", isSortedByLazyZip[Int])), - (("isSortedRecursive", isSortedRecursive[Int])), + (("isSortedRecursive", isSortedRecursive[Int])) ) - //format: off - to read the table more easily + // format: off - to read the table more easily private val intTable = Table( ("Functions", "Input", "Direction", "IsSorted"), - (fnsToTest, List(1,2,3,4), Direction.ASC, true), - (fnsToTest, List(1,2,3,4), Direction.DESC, false), - (fnsToTest, List(4,3,2,1), Direction.DESC, true), + (fnsToTest, List(1, 2, 3, 4), Direction.ASC, true), + (fnsToTest, List(1, 2, 3, 4), Direction.DESC, false), + (fnsToTest, List(4, 3, 2, 1), Direction.DESC, true), (fnsToTest, List(1), Direction.DESC, true), (fnsToTest, List(1), Direction.ASC, true), (fnsToTest, Nil, Direction.ASC, true), - (fnsToTest, Nil, Direction.DESC, true), + (fnsToTest, Nil, Direction.DESC, true) ) private val stringTable = Table( ("Function Name", "Function", "Input", "Direction", "IsSorted"), - ("isSortedBySorting", isSortedBySorting[String], List("a", "b", "c"), Direction.ASC, true), - ("isSortedBySorting", isSortedBySorting[String], List("a", "b", "c"), Direction.DESC, false), - ("isSortedBySorting", isSortedBySorting[String], List("a", "aa", "aab", "bcd"), Direction.ASC, true), - ("isSortedBySorting", isSortedBySorting[String], List("ccc", "bbb", "a"), Direction.DESC, true), + ( + "isSortedBySorting", + isSortedBySorting[String], + List("a", "b", "c"), + Direction.ASC, + true + ), + ( + "isSortedBySorting", + isSortedBySorting[String], + List("a", "b", "c"), + Direction.DESC, + false + ), + ( + "isSortedBySorting", + isSortedBySorting[String], + List("a", "aa", "aab", "bcd"), + Direction.ASC, + true + ), + ( + "isSortedBySorting", + isSortedBySorting[String], + List("ccc", "bbb", "a"), + Direction.DESC, + true + ) ) - //format: on + // format: on it should "check if a list is ordered for numbers" in { forAll(intTable) { (fnsToTest, input, dir, res) => From 1d84e82614538d303345f81d207c5467129ee9d2 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 3 Feb 2024 17:21:10 +0100 Subject: [PATCH 0320/1318] Added format disable for table --- .../sort/IsSortedCollectionUnitTest.scala | 45 +++++-------------- 1 file changed, 10 insertions(+), 35 deletions(-) diff --git a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/sort/IsSortedCollectionUnitTest.scala b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/sort/IsSortedCollectionUnitTest.scala index f005ffd77..2e5daef15 100644 --- a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/sort/IsSortedCollectionUnitTest.scala +++ b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/sort/IsSortedCollectionUnitTest.scala @@ -10,7 +10,7 @@ class IsSortedCollectionUnitTest with Matchers with TableDrivenPropertyChecks { - val fnsToTest = List( + private val fnsToTest = List( (("isSortedBySorting", isSortedBySorting[Int])), (("isSortedBySliding", isSortedBySliding[Int])), (("isSortedByZip", isSortedByZip[Int])), @@ -18,50 +18,25 @@ class IsSortedCollectionUnitTest (("isSortedRecursive", isSortedRecursive[Int])) ) - // format: off - to read the table more easily + // format: off private val intTable = Table( ("Functions", "Input", "Direction", "IsSorted"), - (fnsToTest, List(1, 2, 3, 4), Direction.ASC, true), - (fnsToTest, List(1, 2, 3, 4), Direction.DESC, false), - (fnsToTest, List(4, 3, 2, 1), Direction.DESC, true), + (fnsToTest, List(1,2,3,4), Direction.ASC, true), + (fnsToTest, List(1,2,3,4), Direction.DESC, false), + (fnsToTest, List(4,3,2,1), Direction.DESC, true), (fnsToTest, List(1), Direction.DESC, true), (fnsToTest, List(1), Direction.ASC, true), (fnsToTest, Nil, Direction.ASC, true), - (fnsToTest, Nil, Direction.DESC, true) + (fnsToTest, Nil, Direction.DESC, true), ) private val stringTable = Table( ("Function Name", "Function", "Input", "Direction", "IsSorted"), - ( - "isSortedBySorting", - isSortedBySorting[String], - List("a", "b", "c"), - Direction.ASC, - true - ), - ( - "isSortedBySorting", - isSortedBySorting[String], - List("a", "b", "c"), - Direction.DESC, - false - ), - ( - "isSortedBySorting", - isSortedBySorting[String], - List("a", "aa", "aab", "bcd"), - Direction.ASC, - true - ), - ( - "isSortedBySorting", - isSortedBySorting[String], - List("ccc", "bbb", "a"), - Direction.DESC, - true - ) + ("isSortedBySorting", isSortedBySorting[String], List("a", "b", "c"), Direction.ASC, true), + ("isSortedBySorting", isSortedBySorting[String], List("a", "b", "c"), Direction.DESC, false), + ("isSortedBySorting", isSortedBySorting[String], List("a", "aa", "aab", "bcd"), Direction.ASC, true), + ("isSortedBySorting", isSortedBySorting[String], List("ccc", "bbb", "a"), Direction.DESC, true), ) - // format: on it should "check if a list is ordered for numbers" in { From a79277e4757147cf74fbdb9ae881252e68927364 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 4 Feb 2024 06:07:44 +0000 Subject: [PATCH 0321/1318] Update aws-java-sdk-s3 from 1.12.646 to 1.12.651 --- build.sbt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index faa947036..80eddb9c9 100644 --- a/build.sbt +++ b/build.sbt @@ -415,7 +415,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "software.amazon.awssdk" % "s3" % "2.23.12" ), libraryDependencies ++= Seq( - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.646" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.651" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.0" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.0" % IntegrationTest ), @@ -464,7 +464,7 @@ lazy val scala_libraries_6 = (project in file("scala-libraries-6")) libraryDependencies ++= Seq( "io.circe" %% "circe-yaml" % "1.15.0", "io.circe" %% "circe-generic" % "0.14.6", - "io.circe" %% "circe-parser" % "0.14.6", + "io.circe" %% "circe-parser" % "0.14.6" ) ) @@ -550,7 +550,7 @@ lazy val zio3 = (project in file("zio3")) ), testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework"), run / fork := true -) + ) lazy val doobie = (project in file("doobie")) .settings( From a58fa3346a059b9ddac616b588d6e9e4fe1e462f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 4 Feb 2024 06:07:54 +0000 Subject: [PATCH 0322/1318] Update testcontainers-scala-localstack-v2, ... from 0.41.0 to 0.41.2 --- build.sbt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/build.sbt b/build.sbt index faa947036..b4e8ce94f 100644 --- a/build.sbt +++ b/build.sbt @@ -416,8 +416,8 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) ), libraryDependencies ++= Seq( "com.amazonaws" % "aws-java-sdk-s3" % "1.12.646" % IntegrationTest, - "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.0" % IntegrationTest, - "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.0" % IntegrationTest + "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.2" % IntegrationTest, + "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.2" % IntegrationTest ), libraryDependencies ++= Seq( "com.github.seratch" %% "awscala" % "0.9.2" @@ -464,7 +464,7 @@ lazy val scala_libraries_6 = (project in file("scala-libraries-6")) libraryDependencies ++= Seq( "io.circe" %% "circe-yaml" % "1.15.0", "io.circe" %% "circe-generic" % "0.14.6", - "io.circe" %% "circe-parser" % "0.14.6", + "io.circe" %% "circe-parser" % "0.14.6" ) ) @@ -550,7 +550,7 @@ lazy val zio3 = (project in file("zio3")) ), testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework"), run / fork := true -) + ) lazy val doobie = (project in file("doobie")) .settings( From fd62b0e3f7803b4dc903fb315517aed49b0dea5b Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 4 Feb 2024 06:08:09 +0000 Subject: [PATCH 0323/1318] Update zio-kafka from 2.7.0 to 2.7.2 --- build.sbt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index faa947036..cbedf5456 100644 --- a/build.sbt +++ b/build.sbt @@ -464,7 +464,7 @@ lazy val scala_libraries_6 = (project in file("scala-libraries-6")) libraryDependencies ++= Seq( "io.circe" %% "circe-yaml" % "1.15.0", "io.circe" %% "circe-generic" % "0.14.6", - "io.circe" %% "circe-parser" % "0.14.6", + "io.circe" %% "circe-parser" % "0.14.6" ) ) @@ -528,7 +528,7 @@ lazy val zio = (project in file("zio")) libraryDependencies += "dev.zio" %% "zio" % zioVersion, libraryDependencies += "dev.zio" %% "zio-streams" % zioVersion, libraryDependencies += "dev.zio" %% "zio-test-sbt" % zioVersion % Test, - libraryDependencies += "dev.zio" %% "zio-kafka" % "2.7.0", + libraryDependencies += "dev.zio" %% "zio-kafka" % "2.7.2", libraryDependencies += "dev.zio" %% "zio-json" % "0.6.2", testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework") ) @@ -550,7 +550,7 @@ lazy val zio3 = (project in file("zio3")) ), testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework"), run / fork := true -) + ) lazy val doobie = (project in file("doobie")) .settings( From 2bf67cd7fd84d568a8bdced4cd69a4d2198ed390 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 4 Feb 2024 06:08:23 +0000 Subject: [PATCH 0324/1318] Update zio-test, zio-test-magnolia from 2.0.19 to 2.0.21 --- build.sbt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/build.sbt b/build.sbt index faa947036..bbfacc0ed 100644 --- a/build.sbt +++ b/build.sbt @@ -464,7 +464,7 @@ lazy val scala_libraries_6 = (project in file("scala-libraries-6")) libraryDependencies ++= Seq( "io.circe" %% "circe-yaml" % "1.15.0", "io.circe" %% "circe-generic" % "0.14.6", - "io.circe" %% "circe-parser" % "0.14.6", + "io.circe" %% "circe-parser" % "0.14.6" ) ) @@ -543,14 +543,14 @@ lazy val zio3 = (project in file("zio3")) "com.h2database" % "h2" % "2.2.220" ), libraryDependencies ++= Seq( - "dev.zio" %% "zio-test" % "2.0.19" % Test, + "dev.zio" %% "zio-test" % "2.0.21" % Test, "dev.zio" %% "zio-test-sbt" % "2.0.16" % Test, - "dev.zio" %% "zio-test-magnolia" % "2.0.19" % Test, + "dev.zio" %% "zio-test-magnolia" % "2.0.21" % Test, "dev.zio" %% "zio-http-testkit" % "3.0.0-RC2" % Test ), testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework"), run / fork := true -) + ) lazy val doobie = (project in file("doobie")) .settings( From f453d0f0986ef2d20443cf0402b4432ae59bc428 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 4 Feb 2024 06:08:37 +0000 Subject: [PATCH 0325/1318] Update zio-test-sbt from 2.0.16 to 2.0.21 --- build.sbt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index faa947036..b57f902e6 100644 --- a/build.sbt +++ b/build.sbt @@ -464,7 +464,7 @@ lazy val scala_libraries_6 = (project in file("scala-libraries-6")) libraryDependencies ++= Seq( "io.circe" %% "circe-yaml" % "1.15.0", "io.circe" %% "circe-generic" % "0.14.6", - "io.circe" %% "circe-parser" % "0.14.6", + "io.circe" %% "circe-parser" % "0.14.6" ) ) @@ -544,13 +544,13 @@ lazy val zio3 = (project in file("zio3")) ), libraryDependencies ++= Seq( "dev.zio" %% "zio-test" % "2.0.19" % Test, - "dev.zio" %% "zio-test-sbt" % "2.0.16" % Test, + "dev.zio" %% "zio-test-sbt" % "2.0.21" % Test, "dev.zio" %% "zio-test-magnolia" % "2.0.19" % Test, "dev.zio" %% "zio-http-testkit" % "3.0.0-RC2" % Test ), testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework"), run / fork := true -) + ) lazy val doobie = (project in file("doobie")) .settings( From 20d307c9300d0f2dbc9f94dfb41cb5f57ab72063 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 4 Feb 2024 06:08:47 +0000 Subject: [PATCH 0326/1318] Update quill-jdbc-zio, quill-zio from 4.6.0 to 4.6.1 --- build.sbt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/build.sbt b/build.sbt index faa947036..9a9596345 100644 --- a/build.sbt +++ b/build.sbt @@ -464,7 +464,7 @@ lazy val scala_libraries_6 = (project in file("scala-libraries-6")) libraryDependencies ++= Seq( "io.circe" %% "circe-yaml" % "1.15.0", "io.circe" %% "circe-generic" % "0.14.6", - "io.circe" %% "circe-parser" % "0.14.6", + "io.circe" %% "circe-parser" % "0.14.6" ) ) @@ -538,8 +538,8 @@ lazy val zio3 = (project in file("zio3")) libraryDependencies ++= Seq( "dev.zio" %% "zio-json" % "0.6.2", "dev.zio" %% "zio-http" % "3.0.0-RC2", - "io.getquill" %% "quill-zio" % "4.6.0", - "io.getquill" %% "quill-jdbc-zio" % "4.6.0", + "io.getquill" %% "quill-zio" % "4.6.1", + "io.getquill" %% "quill-jdbc-zio" % "4.6.1", "com.h2database" % "h2" % "2.2.220" ), libraryDependencies ++= Seq( @@ -550,7 +550,7 @@ lazy val zio3 = (project in file("zio3")) ), testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework"), run / fork := true -) + ) lazy val doobie = (project in file("doobie")) .settings( From f2495eaca2f9631765c2dd217cbdaedd29a827f0 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 4 Feb 2024 06:09:01 +0000 Subject: [PATCH 0327/1318] Update jetty-webapp from 11.0.19 to 11.0.20 --- scalatra/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scalatra/build.sbt b/scalatra/build.sbt index 130949ea4..5511a4e28 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -9,7 +9,7 @@ libraryDependencies ++= Seq( "org.scalatra" %% "scalatra" % ScalatraVersion, "org.scalatra" %% "scalatra-scalatest" % ScalatraVersion % "test", "ch.qos.logback" % "logback-classic" % "1.4.14" % "runtime", - "org.eclipse.jetty" % "jetty-webapp" % "11.0.19" % "container", + "org.eclipse.jetty" % "jetty-webapp" % "11.0.20" % "container", "javax.servlet" % "javax.servlet-api" % "4.0.1" % "provided", "org.scalatra" %% "scalatra-auth" % ScalatraVersion, "org.scalatra" %% "scalatra-json" % "2.8.4", From cdaa77c9c58de39ccf6f05bf1cef4cd576cff278 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 4 Feb 2024 06:09:19 +0000 Subject: [PATCH 0328/1318] Update s3 from 2.23.12 to 2.23.17 --- build.sbt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index faa947036..c5d4ab2d4 100644 --- a/build.sbt +++ b/build.sbt @@ -412,7 +412,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "org.testcontainers" % "pulsar" % "1.19.4" % IntegrationTest ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "s3" % "2.23.12" + "software.amazon.awssdk" % "s3" % "2.23.17" ), libraryDependencies ++= Seq( "com.amazonaws" % "aws-java-sdk-s3" % "1.12.646" % IntegrationTest, @@ -464,7 +464,7 @@ lazy val scala_libraries_6 = (project in file("scala-libraries-6")) libraryDependencies ++= Seq( "io.circe" %% "circe-yaml" % "1.15.0", "io.circe" %% "circe-generic" % "0.14.6", - "io.circe" %% "circe-parser" % "0.14.6", + "io.circe" %% "circe-parser" % "0.14.6" ) ) @@ -550,7 +550,7 @@ lazy val zio3 = (project in file("zio3")) ), testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework"), run / fork := true -) + ) lazy val doobie = (project in file("doobie")) .settings( From ae9efadb6d2e9970ede1702aab5e41e7b7df2e73 Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Fri, 9 Feb 2024 21:22:28 +0800 Subject: [PATCH 0329/1318] Update README.md --- zio/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/zio/README.md b/zio/README.md index fe03f82ee..40a5e41c1 100644 --- a/zio/README.md +++ b/zio/README.md @@ -8,3 +8,4 @@ - [Repeat and Retry in ZIO](https://www.baeldung.com/scala/zio-repeat-retry) - [Introduction to Fibers in ZIO](https://www.baeldung.com/scala/zio-fibers-tutorial) - [Error Handling in ZIO](https://www.baeldung.com/scala/zio-error-handling) +- [Introduction to zio-kafka](https://www.baeldung.com/scala/zio-kafka-intro) From e6c1ad9734618a5cea937164b0f83390abd09c57 Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Fri, 9 Feb 2024 21:23:41 +0800 Subject: [PATCH 0330/1318] Update README.md --- scala-core-modules/scala-core-8/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-core-modules/scala-core-8/README.md b/scala-core-modules/scala-core-8/README.md index da1199407..31c1a4c70 100644 --- a/scala-core-modules/scala-core-8/README.md +++ b/scala-core-modules/scala-core-8/README.md @@ -9,3 +9,4 @@ - [Transforming a List of Futures Ignoring Failures](https://www.baeldung.com/scala/transform-list-futures-ignore-failures) - [Difference Between Braces and Parentheses in Scala](https://www.baeldung.com/scala/braces-vs-parentheses) - [Check if a Number Is Prime in Scala](https://www.baeldung.com/scala/check-number-prime) +- [Generating the Fibonacci Sequence in Scala](https://www.baeldung.com/scala/generating-fibonacci-series) From 68a8d08bc6a76759056e173d421e3f8057bb5fc6 Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Fri, 9 Feb 2024 21:24:55 +0800 Subject: [PATCH 0331/1318] Update README.md --- scala3-libraries/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scala3-libraries/README.md b/scala3-libraries/README.md index b9ca985ce..55c673006 100644 --- a/scala3-libraries/README.md +++ b/scala3-libraries/README.md @@ -2,4 +2,5 @@ ### Relevant Articles: - [Scala App Configurations With Clarity Using ClearConfig](https://www.baeldung.com/scala/clearconfig) - [Introduction to MUnit](https://www.baeldung.com/scala/munit-introduction) -- [Introduction to doobie – a JDBC Layer for Scala](https://www.baeldung.com/scala/doobie-intro) \ No newline at end of file +- [Introduction to doobie – a JDBC Layer for Scala](https://www.baeldung.com/scala/doobie-intro) +- [Data Validation With Cats](https://www.baeldung.com/scala/cats-data-validation) From ff509b6e50b35fe8a8e195dc4bd82b53728de4ce Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Fri, 9 Feb 2024 21:26:36 +0800 Subject: [PATCH 0332/1318] Create README.md --- sbt-standalone/README.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 sbt-standalone/README.md diff --git a/sbt-standalone/README.md b/sbt-standalone/README.md new file mode 100644 index 000000000..3c3bb4d84 --- /dev/null +++ b/sbt-standalone/README.md @@ -0,0 +1,2 @@ +### Relevant Articles +- [Enforcing the JVM Version in an SBT Project](https://www.baeldung.com/scala/sbt-enforcing-jvm-version) From 86938a0e5bd61aaf4f3d80775ba870e4f446d45b Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 12 Feb 2024 00:14:26 +0000 Subject: [PATCH 0333/1318] Update aws-java-sdk-s3 from 1.12.651 to 1.12.656 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 93931764d..2698dea2e 100644 --- a/build.sbt +++ b/build.sbt @@ -415,7 +415,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "software.amazon.awssdk" % "s3" % "2.23.17" ), libraryDependencies ++= Seq( - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.651" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.656" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.2" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.2" % IntegrationTest ), From e89d91a850f6318916fa258849fdf1492698334d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 12 Feb 2024 00:14:36 +0000 Subject: [PATCH 0334/1318] Update pulsar4s-core, pulsar4s-jackson from 2.9.0 to 2.9.1 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 93931764d..975621fff 100644 --- a/build.sbt +++ b/build.sbt @@ -407,8 +407,8 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "org.typelevel" %% "cats-core" % "2.10.0" ), libraryDependencies ++= Seq( - "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.9.0", - "com.clever-cloud.pulsar4s" %% "pulsar4s-jackson" % "2.9.0", + "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.9.1", + "com.clever-cloud.pulsar4s" %% "pulsar4s-jackson" % "2.9.1", "org.testcontainers" % "pulsar" % "1.19.4" % IntegrationTest ), libraryDependencies ++= Seq( From 1d4e9573437312efe0c387d6d8118f347815ec39 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 12 Feb 2024 00:14:53 +0000 Subject: [PATCH 0335/1318] Update kafka-avro-serializer from 7.5.3 to 7.6.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 93931764d..17e5f3dd7 100644 --- a/build.sbt +++ b/build.sbt @@ -434,7 +434,7 @@ val jackSonVersion = "2.16.1" val log4jApiScalaVersion = "13.0.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.1" -val kafkaAvroSerializer = "7.5.3" +val kafkaAvroSerializer = "7.6.0" lazy val scala_libraries_5 = (project in file("scala-libraries-5")) .settings( From 1cb57050cb15994d74fd51a867189816789139cd Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 12 Feb 2024 00:15:12 +0000 Subject: [PATCH 0336/1318] Update quill-jdbc-zio, quill-zio from 4.6.1 to 4.8.1 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 93931764d..3cb248e3a 100644 --- a/build.sbt +++ b/build.sbt @@ -538,8 +538,8 @@ lazy val zio3 = (project in file("zio3")) libraryDependencies ++= Seq( "dev.zio" %% "zio-json" % "0.6.2", "dev.zio" %% "zio-http" % "3.0.0-RC2", - "io.getquill" %% "quill-zio" % "4.6.1", - "io.getquill" %% "quill-jdbc-zio" % "4.6.1", + "io.getquill" %% "quill-zio" % "4.8.1", + "io.getquill" %% "quill-jdbc-zio" % "4.8.1", "com.h2database" % "h2" % "2.2.220" ), libraryDependencies ++= Seq( From 2a32d37fa3a33f7ac140e8cef22cab52ecb1454a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 12 Feb 2024 00:15:30 +0000 Subject: [PATCH 0337/1318] Update joda-time from 2.12.6 to 2.12.7 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 93931764d..08d3cf24f 100644 --- a/build.sbt +++ b/build.sbt @@ -138,7 +138,7 @@ lazy val scala_core_dates = name := "scala-core-dates", scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps, - libraryDependencies += "joda-time" % "joda-time" % "2.12.6", + libraryDependencies += "joda-time" % "joda-time" % "2.12.7", libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "2.32.0", libraryDependencies += "com.typesafe" % "config" % "1.4.3" ) From fa88499b0eb61afcb934d6e6da7dc4fc8d904f4f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 12 Feb 2024 00:15:46 +0000 Subject: [PATCH 0338/1318] Update kafka-clients from 7.5.3-ce to 7.6.0-ce --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 93931764d..429c7d58d 100644 --- a/build.sbt +++ b/build.sbt @@ -428,7 +428,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) ) val spireVersion = "0.18.0" -val kafkaVersion = "7.5.3-ce" +val kafkaVersion = "7.6.0-ce" val pureconfigVersion = "0.17.5" val jackSonVersion = "2.16.1" val log4jApiScalaVersion = "13.0.0" From f1f3203e4abdebc0e2a51855044cf6563621627b Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 12 Feb 2024 00:15:55 +0000 Subject: [PATCH 0339/1318] Update log4j-api-scala from 13.0.0 to 13.1.0 --- build.sbt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index 93931764d..b9898d2f7 100644 --- a/build.sbt +++ b/build.sbt @@ -371,7 +371,7 @@ lazy val scala_libraries_3 = (project in file("scala-libraries-3")) libraryDependencies += scalaMock, libraryDependencies += "com.softwaremill.retry" %% "retry" % "0.3.6", libraryDependencies ++= Seq( - "org.apache.logging.log4j" %% "log4j-api-scala" % "13.0.0", + "org.apache.logging.log4j" %% "log4j-api-scala" % "13.1.0", "org.apache.logging.log4j" % "log4j-core" % "2.22.1" % Runtime ), libraryDependencies += "com.lihaoyi" %% "os-lib" % osLibVersion @@ -383,7 +383,7 @@ lazy val scala_libraries_os = (project in file("scala-libraries-os")) scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps, libraryDependencies ++= Seq( - "org.apache.logging.log4j" %% "log4j-api-scala" % "13.0.0", + "org.apache.logging.log4j" %% "log4j-api-scala" % "13.1.0", "org.apache.logging.log4j" % "log4j-core" % "2.22.1" % Runtime ), libraryDependencies += "com.lihaoyi" %% "os-lib" % osLibVersion @@ -431,7 +431,7 @@ val spireVersion = "0.18.0" val kafkaVersion = "7.5.3-ce" val pureconfigVersion = "0.17.5" val jackSonVersion = "2.16.1" -val log4jApiScalaVersion = "13.0.0" +val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.1" val kafkaAvroSerializer = "7.5.3" From 7546a2774f114dfe863a00a56d6eee17376b9f2e Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 12 Feb 2024 00:16:12 +0000 Subject: [PATCH 0340/1318] Update scalatest, scalatest-flatspec, ... from 3.2.17 to 3.2.18 --- build.sbt | 8 ++++---- scala-js/build.sbt | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/build.sbt b/build.sbt index 93931764d..487c76d69 100644 --- a/build.sbt +++ b/build.sbt @@ -13,10 +13,10 @@ val logback = "ch.qos.logback" % "logback-classic" % "1.4.14" val embedMongoVersion = "4.12.2" val scalaTestDeps = Seq( - "org.scalatest" %% "scalatest" % "3.2.17" % Test, - "org.scalatest" %% "scalatest-shouldmatchers" % "3.2.17" % Test, - "org.scalatest" %% "scalatest-wordspec" % "3.2.17" % Test, - "org.scalatest" %% "scalatest-flatspec" % "3.2.17" % Test + "org.scalatest" %% "scalatest" % "3.2.18" % Test, + "org.scalatest" %% "scalatest-shouldmatchers" % "3.2.18" % Test, + "org.scalatest" %% "scalatest-wordspec" % "3.2.18" % Test, + "org.scalatest" %% "scalatest-flatspec" % "3.2.18" % Test ) val scalaMock = "org.scalamock" %% "scalamock" % "5.2.0" % Test diff --git a/scala-js/build.sbt b/scala-js/build.sbt index 771828119..08baa0a0b 100644 --- a/scala-js/build.sbt +++ b/scala-js/build.sbt @@ -7,7 +7,7 @@ enablePlugins(ScalaJSPlugin) scalaJSUseMainModuleInitializer := true libraryDependencies += "org.scala-js" %%% "scalajs-dom" % "2.8.0" -libraryDependencies += "org.scalatest" %%% "scalatest" % "3.2.17" % Test +libraryDependencies += "org.scalatest" %%% "scalatest" % "3.2.18" % Test //enable the below setting after installing npm package jsdom. jsEnv := new org.scalajs.jsenv.jsdomnodejs.JSDOMNodeJSEnv() From 0d00e05b70d94291f0ca1319c3d96cafdab4dd4a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 12 Feb 2024 00:16:32 +0000 Subject: [PATCH 0341/1318] Update junit-4-13, scalacheck-1-17 from 3.2.17.0 to 3.2.18.0 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 93931764d..ee5b8115d 100644 --- a/build.sbt +++ b/build.sbt @@ -223,7 +223,7 @@ lazy val scala_test_junit4 = (project in file("scala-test-junit4")) scalaVersion := scala3Version, libraryDependencies ++= Seq( - "org.scalatestplus" %% "junit-4-13" % "3.2.17.0" % Test, + "org.scalatestplus" %% "junit-4-13" % "3.2.18.0" % Test, jUnitInterface ) ) @@ -475,7 +475,7 @@ lazy val scala_strings = (project in file("scala-strings")) libraryDependencies ++= scalaTestDeps, libraryDependencies += jUnitInterface, libraryDependencies += "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4", - libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.17.0" % Test + libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test ) lazy val scala_design_patterns = (project in file("scala-design-patterns")) From 42b87c9853e389143d13c78c9656e2cc09191cad Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 12 Feb 2024 00:16:56 +0000 Subject: [PATCH 0342/1318] Update pulsar from 1.19.4 to 1.19.5 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 93931764d..8bbda8124 100644 --- a/build.sbt +++ b/build.sbt @@ -409,7 +409,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) libraryDependencies ++= Seq( "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.9.0", "com.clever-cloud.pulsar4s" %% "pulsar4s-jackson" % "2.9.0", - "org.testcontainers" % "pulsar" % "1.19.4" % IntegrationTest + "org.testcontainers" % "pulsar" % "1.19.5" % IntegrationTest ), libraryDependencies ++= Seq( "software.amazon.awssdk" % "s3" % "2.23.17" From d0f3a81d63370444653e0c6c43dc504587c37332 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 12 Feb 2024 00:17:11 +0000 Subject: [PATCH 0343/1318] Update s3 from 2.23.17 to 2.23.21 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 93931764d..f66e35992 100644 --- a/build.sbt +++ b/build.sbt @@ -412,7 +412,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "org.testcontainers" % "pulsar" % "1.19.4" % IntegrationTest ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "s3" % "2.23.17" + "software.amazon.awssdk" % "s3" % "2.23.21" ), libraryDependencies ++= Seq( "com.amazonaws" % "aws-java-sdk-s3" % "1.12.651" % IntegrationTest, From 455f72194508f4ea703287c66ff26a6fd6118c93 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Mon, 12 Feb 2024 10:06:40 +0100 Subject: [PATCH 0344/1318] Moved the code to scala-core-9 module --- build.sbt | 7 +++++++ .../scala/com/baeldung/scala/sort/IsSortedCollection.scala | 0 .../baeldung/scala/sort/IsSortedCollectionUnitTest.scala | 0 3 files changed, 7 insertions(+) rename scala-core-modules/{scala-core-8 => scala-core-9}/src/main/scala/com/baeldung/scala/sort/IsSortedCollection.scala (100%) rename scala-core-modules/{scala-core-8 => scala-core-9}/src/test/scala/com/baeldung/scala/sort/IsSortedCollectionUnitTest.scala (100%) diff --git a/build.sbt b/build.sbt index 93931764d..a93131aee 100644 --- a/build.sbt +++ b/build.sbt @@ -108,6 +108,13 @@ lazy val scala_core_8 = (project in file("scala-core-modules/scala-core-8")) // scalacOptions += "-Ymacro-debug-lite" ) +lazy val scala_core_9 = (project in file("scala-core-modules/scala-core-9")) + .settings( + name := "scala-core-9", + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) + lazy val scala_core_io = (project in file("scala-core-modules/scala-core-io")) .settings( name := "scala-core-io", diff --git a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/sort/IsSortedCollection.scala b/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/sort/IsSortedCollection.scala similarity index 100% rename from scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/sort/IsSortedCollection.scala rename to scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/sort/IsSortedCollection.scala diff --git a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/sort/IsSortedCollectionUnitTest.scala b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/sort/IsSortedCollectionUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/sort/IsSortedCollectionUnitTest.scala rename to scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/sort/IsSortedCollectionUnitTest.scala From 6bc54c1d537a51e0fd7f5a58f91d7589ae2866e0 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 13 Feb 2024 10:34:59 +0100 Subject: [PATCH 0345/1318] Upgraded to mockito 5 in scalatestplus --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 8dde148c6..7317863ef 100644 --- a/build.sbt +++ b/build.sbt @@ -197,7 +197,7 @@ lazy val scala_test = (project in file("scala-test")) scalaVersion := scala3Version, libraryDependencies ++= Seq( - "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % Test, + "org.scalatestplus" %% "mockito-5-10" % "3.2.18.0" % Test, jUnitInterface ) ++ scalaTestDeps ) @@ -483,7 +483,7 @@ lazy val scala_design_patterns = (project in file("scala-design-patterns")) name := "scala-design-patterns", scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps, - libraryDependencies += "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % Test, + libraryDependencies += "org.scalatestplus" %% "mockito-5-10" % "3.2.18.0" % Test, libraryDependencies += "com.novocode" % "junit-interface" % "0.11" % Test ) From 10c5f86c542e2ff8978095b11b0e9ef5f970d232 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 16 Feb 2024 17:48:01 +0100 Subject: [PATCH 0346/1318] Added code sample for zip and lazyZip methods --- .../scala/zip/ZipPerformanceApp.scala | 30 +++++++++++++++++++ .../com/baeldung/scala/zip/ZipUnitTest.scala | 27 +++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 scala-core-collections-modules/scala-core-collections-3/src/main/scala/com/baeldung/scala/zip/ZipPerformanceApp.scala create mode 100644 scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/zip/ZipUnitTest.scala diff --git a/scala-core-collections-modules/scala-core-collections-3/src/main/scala/com/baeldung/scala/zip/ZipPerformanceApp.scala b/scala-core-collections-modules/scala-core-collections-3/src/main/scala/com/baeldung/scala/zip/ZipPerformanceApp.scala new file mode 100644 index 000000000..1c0cb03a6 --- /dev/null +++ b/scala-core-collections-modules/scala-core-collections-3/src/main/scala/com/baeldung/scala/zip/ZipPerformanceApp.scala @@ -0,0 +1,30 @@ +package com.baeldung.scala.zip + +object ZipPerformanceApp { + + def timed[T](f: => T): T = { + val startTime = System.nanoTime() + val res = f + val endTime = System.nanoTime() + println( + s"Time taken for operation: ${(endTime - startTime) / 1000000} milliseconds" + ) + res + } + +@ + def main(): Unit = { + val largeList = (1 to 10000000).toList + println("--- zip ---") + timed(largeList.zip(largeList)) // force evaluation of lazyZip + println("--- lazyZip without eval ---") + timed(largeList.lazyZip(largeList)) // lazy evaluation of lazyZip + println("--- lazyZip with partial eval ---") + timed( + largeList.lazyZip(largeList).take(100).toList + ) // force evaluation of lazyZip + println("--- lazyZip with full eval ---") + timed(largeList.lazyZip(largeList).toList) // force evaluation of lazyZip + + } +} diff --git a/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/zip/ZipUnitTest.scala b/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/zip/ZipUnitTest.scala new file mode 100644 index 000000000..b194df719 --- /dev/null +++ b/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/zip/ZipUnitTest.scala @@ -0,0 +1,27 @@ +package com.baeldung.scala.zip + +import org.scalatest.matchers.should.Matchers +import org.scalatest.wordspec.AnyWordSpec + +class ZipUnitTest extends AnyWordSpec with Matchers { + + "Zip" should { + "zip two lists" in { + val list1 = List(1, 2, 3) + val list2 = List("a", "b", "c") + val zipped = list1.zip(list2) + zipped should be(List((1, "a"), (2, "b"), (3, "c"))) + } + + } + + "Lazy Zip" should { + "zip two lists" in { + val list1 = List(1, 2, 3) + val list2 = List("a", "b", "c") + val zipped = list1.lazyZip(list2) + zipped.toList should be(List((1, "a"), (2, "b"), (3, "c"))) + } + } + +} From 74a6ae9f8fa76593553be00b0572d4691ee907e5 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 16 Feb 2024 18:01:07 +0100 Subject: [PATCH 0347/1318] Fixed compilation error --- .../main/scala/com/baeldung/scala/zip/ZipPerformanceApp.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-core-collections-modules/scala-core-collections-3/src/main/scala/com/baeldung/scala/zip/ZipPerformanceApp.scala b/scala-core-collections-modules/scala-core-collections-3/src/main/scala/com/baeldung/scala/zip/ZipPerformanceApp.scala index 1c0cb03a6..0786f2bd4 100644 --- a/scala-core-collections-modules/scala-core-collections-3/src/main/scala/com/baeldung/scala/zip/ZipPerformanceApp.scala +++ b/scala-core-collections-modules/scala-core-collections-3/src/main/scala/com/baeldung/scala/zip/ZipPerformanceApp.scala @@ -12,7 +12,7 @@ object ZipPerformanceApp { res } -@ + @main def main(): Unit = { val largeList = (1 to 10000000).toList println("--- zip ---") From 00b0a33f9a71fc4c92dbdf56ef729dbf09325c78 Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Sat, 17 Feb 2024 06:41:00 +0800 Subject: [PATCH 0348/1318] Update README.md --- scala-test/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-test/README.md b/scala-test/README.md index 364c2fafe..ef154e02a 100644 --- a/scala-test/README.md +++ b/scala-test/README.md @@ -13,3 +13,4 @@ This module contains articles about the ScalaTest framework in Scala. - [Case-Insensitive String Comparison Scala](https://www.baeldung.com/scala/case-insensitive-comparison) - [ScalaTest Assertions: A Comprehensive Guide](https://www.baeldung.com/scala/scalatest-assertions) - [Test for Exceptions in ScalaTest](https://www.baeldung.com/scala/scalatest-test-exceptions) +- [Guide to Parameterized Tests in ScalaTest](https://www.baeldung.com/scala/scalatest-parameterized-tests) From a738da9e85306c6daa2428cd651e87fd76062314 Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Sat, 17 Feb 2024 06:42:41 +0800 Subject: [PATCH 0349/1318] Create README.md --- scala-core-modules/scala-core-9/README.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 scala-core-modules/scala-core-9/README.md diff --git a/scala-core-modules/scala-core-9/README.md b/scala-core-modules/scala-core-9/README.md new file mode 100644 index 000000000..a55bdb5eb --- /dev/null +++ b/scala-core-modules/scala-core-9/README.md @@ -0,0 +1,2 @@ +### Relevant Articles +- [Check if a Collection Is Sorted in Scala](https://www.baeldung.com/scala/check-collection-sorted) From 8f4cfa39f611c84dac2c987aa79684976342243c Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 17 Feb 2024 19:08:24 +0100 Subject: [PATCH 0350/1318] Added more test case for the article --- .../scala/zip/ZipPerformanceApp.scala | 9 +++--- .../com/baeldung/scala/zip/ZipUnitTest.scala | 28 +++++++++++++++++-- 2 files changed, 31 insertions(+), 6 deletions(-) diff --git a/scala-core-collections-modules/scala-core-collections-3/src/main/scala/com/baeldung/scala/zip/ZipPerformanceApp.scala b/scala-core-collections-modules/scala-core-collections-3/src/main/scala/com/baeldung/scala/zip/ZipPerformanceApp.scala index 0786f2bd4..f540b90e8 100644 --- a/scala-core-collections-modules/scala-core-collections-3/src/main/scala/com/baeldung/scala/zip/ZipPerformanceApp.scala +++ b/scala-core-collections-modules/scala-core-collections-3/src/main/scala/com/baeldung/scala/zip/ZipPerformanceApp.scala @@ -16,15 +16,16 @@ object ZipPerformanceApp { def main(): Unit = { val largeList = (1 to 10000000).toList println("--- zip ---") - timed(largeList.zip(largeList)) // force evaluation of lazyZip + timed(largeList.zip(largeList).take(100)) // eager evaluation println("--- lazyZip without eval ---") timed(largeList.lazyZip(largeList)) // lazy evaluation of lazyZip println("--- lazyZip with partial eval ---") timed( largeList.lazyZip(largeList).take(100).toList - ) // force evaluation of lazyZip + ) // force partial evaluation of lazyZip println("--- lazyZip with full eval ---") - timed(largeList.lazyZip(largeList).toList) // force evaluation of lazyZip - + timed( + largeList.lazyZip(largeList).toList + ) // force full evaluation of lazyZip } } diff --git a/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/zip/ZipUnitTest.scala b/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/zip/ZipUnitTest.scala index b194df719..ccbb45d39 100644 --- a/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/zip/ZipUnitTest.scala +++ b/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/zip/ZipUnitTest.scala @@ -3,6 +3,8 @@ package com.baeldung.scala.zip import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpec +import scala.collection.LazyZip2 + class ZipUnitTest extends AnyWordSpec with Matchers { "Zip" should { @@ -10,7 +12,9 @@ class ZipUnitTest extends AnyWordSpec with Matchers { val list1 = List(1, 2, 3) val list2 = List("a", "b", "c") val zipped = list1.zip(list2) - zipped should be(List((1, "a"), (2, "b"), (3, "c"))) + zipped shouldBe List((1, "a"), (2, "b"), (3, "c")) + Map(1 -> 2) zip Map(3 -> 4) + Set(1, 2) zip Set(3, 4) } } @@ -20,7 +24,27 @@ class ZipUnitTest extends AnyWordSpec with Matchers { val list1 = List(1, 2, 3) val list2 = List("a", "b", "c") val zipped = list1.lazyZip(list2) - zipped.toList should be(List((1, "a"), (2, "b"), (3, "c"))) + zipped.toList shouldBe List((1, "a"), (2, "b"), (3, "c")) + } + + "zip two potentially infinite sequences" in { + val infiniteNumbers: LazyList[Int] = LazyList.from(1) + val infiniteStrings: LazyList[String] = LazyList.iterate("a")(_ + "a") + val result = infiniteNumbers.lazyZip(infiniteStrings) + result.take(3).toList shouldBe List((1, "a"), (2, "aa"), (3, "aaa")) + } + + "automatically flattens upto 4 levels" in { + val list = List(1, 2, 3) + val level4Res = list.lazyZip(list).lazyZip(list).lazyZip(list).toList + level4Res shouldBe List((1, 1, 1, 1), (2, 2, 2, 2), (3, 3, 3, 3)) + val level5Res = + list.lazyZip(list).lazyZip(list).lazyZip(list).lazyZip(list).toList + level5Res shouldBe List( + ((1, 1, 1, 1), 1), + ((2, 2, 2, 2), 2), + ((3, 3, 3, 3), 3) + ) } } From 9294783f1d5e811162970cfc7ba735fdf8a14038 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 20 Feb 2024 00:12:54 +0000 Subject: [PATCH 0351/1318] Update logback-classic from 1.4.14 to 1.5.0 --- build.sbt | 2 +- scalatra/build.sbt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 7e85b96d6..db103e0ca 100644 --- a/build.sbt +++ b/build.sbt @@ -9,7 +9,7 @@ val jUnitInterface = "com.github.sbt" % "junit-interface" % "0.13.3" % "test" val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.3" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.3" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV -val logback = "ch.qos.logback" % "logback-classic" % "1.4.14" +val logback = "ch.qos.logback" % "logback-classic" % "1.5.0" val embedMongoVersion = "4.12.2" val scalaTestDeps = Seq( diff --git a/scalatra/build.sbt b/scalatra/build.sbt index 5511a4e28..7964a30cf 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -8,7 +8,7 @@ version := "0.1.0-SNAPSHOT" libraryDependencies ++= Seq( "org.scalatra" %% "scalatra" % ScalatraVersion, "org.scalatra" %% "scalatra-scalatest" % ScalatraVersion % "test", - "ch.qos.logback" % "logback-classic" % "1.4.14" % "runtime", + "ch.qos.logback" % "logback-classic" % "1.5.0" % "runtime", "org.eclipse.jetty" % "jetty-webapp" % "11.0.20" % "container", "javax.servlet" % "javax.servlet-api" % "4.0.1" % "provided", "org.scalatra" %% "scalatra-auth" % ScalatraVersion, From f64ab4e464a39afd908dca07a64895cfd9e25b13 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 20 Feb 2024 00:13:11 +0000 Subject: [PATCH 0352/1318] Update aws-java-sdk-s3 from 1.12.656 to 1.12.662 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 7e85b96d6..e74b93b2c 100644 --- a/build.sbt +++ b/build.sbt @@ -422,7 +422,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "software.amazon.awssdk" % "s3" % "2.23.21" ), libraryDependencies ++= Seq( - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.656" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.662" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.2" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.2" % IntegrationTest ), From 5733a1b50d0ff911c3d39f2d2f94acfcdc84ca61 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 20 Feb 2024 00:13:21 +0000 Subject: [PATCH 0353/1318] Update testcontainers-scala-localstack-v2, ... from 0.41.2 to 0.41.3 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 7e85b96d6..4407a478a 100644 --- a/build.sbt +++ b/build.sbt @@ -423,8 +423,8 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) ), libraryDependencies ++= Seq( "com.amazonaws" % "aws-java-sdk-s3" % "1.12.656" % IntegrationTest, - "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.2" % IntegrationTest, - "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.2" % IntegrationTest + "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, + "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest ), libraryDependencies ++= Seq( "com.github.seratch" %% "awscala" % "0.9.2" From ea6a85bbd41272d12cd7f27124549f96ba4406fc Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 20 Feb 2024 00:13:48 +0000 Subject: [PATCH 0354/1318] Update avro4s-core from 4.1.1 to 4.1.2 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 7e85b96d6..124dbf26d 100644 --- a/build.sbt +++ b/build.sbt @@ -440,7 +440,7 @@ val pureconfigVersion = "0.17.5" val jackSonVersion = "2.16.1" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" -val avro4sVersion = "4.1.1" +val avro4sVersion = "4.1.2" val kafkaAvroSerializer = "7.6.0" lazy val scala_libraries_5 = (project in file("scala-libraries-5")) From f840d90bb0d3172f65ba7cda289990a60d09a7ad Mon Sep 17 00:00:00 2001 From: Callum Date: Tue, 20 Feb 2024 07:27:57 +0000 Subject: [PATCH 0355/1318] [SCALA-354] Compare Double in ScalaTest (#1167) * [SCALA-354] Compare Double in ScalaTest * Added implcit example --------- Co-authored-by: Callum Gibbons --- build.sbt | 7 +++++++ .../comparedouble/CompareDoubleSpec.scala | 18 ++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 scala-test-2/src/test/scala/com/baeldung/scala/comparedouble/CompareDoubleSpec.scala diff --git a/build.sbt b/build.sbt index 7e85b96d6..8323c95fb 100644 --- a/build.sbt +++ b/build.sbt @@ -209,6 +209,13 @@ lazy val scala_test = (project in file("scala-test")) ) ++ scalaTestDeps ) +lazy val scala_test_2 = (project in file("scala-test-2")) + .settings( + name := "scala-test-2", + scalaVersion := scala3Version, + libraryDependencies ++= scalaTestDeps + ) + val embeddedMongo = "de.flapdoodle.embed" % "de.flapdoodle.embed.mongo" % embedMongoVersion diff --git a/scala-test-2/src/test/scala/com/baeldung/scala/comparedouble/CompareDoubleSpec.scala b/scala-test-2/src/test/scala/com/baeldung/scala/comparedouble/CompareDoubleSpec.scala new file mode 100644 index 000000000..32931be50 --- /dev/null +++ b/scala-test-2/src/test/scala/com/baeldung/scala/comparedouble/CompareDoubleSpec.scala @@ -0,0 +1,18 @@ +package com.baeldung.scala.comparedouble + +import org.scalactic.TolerantNumerics +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers + +class CompareDoubleSpec extends AnyFlatSpec with Matchers { + val doubleToTest: Double = 100.123 + + "double" should "pass test with implicit tolerance" in { + implicit val doubleEquality = TolerantNumerics.tolerantDoubleEquality(0.001) + assert(doubleToTest === 100.122) + } + + "double" should "pass test with tolerance" in { + assert(doubleToTest === 100.122 +- 0.001) + } +} From 8ff89790a694ce64651c768cada0caa4c11bd490 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 20 Feb 2024 00:14:03 +0000 Subject: [PATCH 0356/1318] Update s3 from 2.23.21 to 2.24.6 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index bf20fc1a9..62689f23e 100644 --- a/build.sbt +++ b/build.sbt @@ -426,7 +426,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "org.testcontainers" % "pulsar" % "1.19.5" % IntegrationTest ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "s3" % "2.23.21" + "software.amazon.awssdk" % "s3" % "2.24.6" ), libraryDependencies ++= Seq( "com.amazonaws" % "aws-java-sdk-s3" % "1.12.656" % IntegrationTest, From 3a9dcb8ecac464833811bf351a05612f65d3468c Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 20 Feb 2024 21:58:42 +0100 Subject: [PATCH 0357/1318] Reused deps in build.sbt --- build.sbt | 126 ++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 79 insertions(+), 47 deletions(-) diff --git a/build.sbt b/build.sbt index dc98e8df7..86b9e67a7 100644 --- a/build.sbt +++ b/build.sbt @@ -11,6 +11,8 @@ val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.3" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV val logback = "ch.qos.logback" % "logback-classic" % "1.5.0" val embedMongoVersion = "4.12.2" +val AkkaVersion = "2.8.0" +val AkkaHttpVersion = "10.5.0" val scalaTestDeps = Seq( "org.scalatest" %% "scalatest" % "3.2.18" % Test, @@ -40,13 +42,15 @@ lazy val scala_core_2 = (project in file("scala-core-modules/scala-core-2")) scalaVersion := scala3Version ) +val scalaXmlDep = "org.scala-lang.modules" %% "scala-xml" % "2.2.0" + lazy val scala_core_3 = (project in file("scala-core-modules/scala-core-3")) .settings( name := "scala-core-3", scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps, libraryDependencies += jUnitInterface, - libraryDependencies += "org.scala-lang.modules" %% "scala-xml" % "2.2.0" + libraryDependencies += scalaXmlDep ) lazy val scala2_core = (project in file("scala-core-modules/scala2-core")) @@ -55,7 +59,7 @@ lazy val scala2_core = (project in file("scala-core-modules/scala2-core")) libraryDependencies ++= scalaTestDeps, libraryDependencies += jUnitInterface, libraryDependencies += scalaReflection, - libraryDependencies += "org.scala-lang.modules" %% "scala-xml" % "2.2.0", + libraryDependencies += scalaXmlDep, libraryDependencies += "com.github.scopt" %% "scopt" % "4.1.0", libraryDependencies += "org.rogach" %% "scallop" % "5.0.1", libraryDependencies += "org.backuity.clist" %% "clist-core" % "3.5.1", @@ -166,13 +170,15 @@ lazy val scala_lang_2 = (project in file("scala-lang-modules/scala-lang-2")) Seq(jUnitInterface) ++ scalaTestDeps ) +val scalaParColDep = "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" + lazy val scala_core_collections = (project in file("scala-core-collections-modules/scala-core-collections")) .settings( name := "scala-core-collections", scalaVersion := scala3Version, libraryDependencies ++= Seq( - "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" + scalaParColDep ) ++ scalaTestDeps ) @@ -204,7 +210,7 @@ lazy val scala_test = (project in file("scala-test")) scalaVersion := scala3Version, libraryDependencies ++= Seq( - "org.scalatestplus" %% "mockito-5-10" % "3.2.18.0" % Test, + scalaTestPlusMockito, jUnitInterface ) ++ scalaTestDeps ) @@ -219,16 +225,22 @@ lazy val scala_test_2 = (project in file("scala-test-2")) val embeddedMongo = "de.flapdoodle.embed" % "de.flapdoodle.embed.mongo" % embedMongoVersion +val akkaTypedTestkit = "com.typesafe.akka" %% "akka-actor-testkit-typed" % AkkaVersion % "it,test" +val akkaStreamDep = "com.typesafe.akka" %% "akka-stream" % AkkaVersion +val akkaHttpDep = "com.typesafe.akka" %% "akka-http" % AkkaHttpVersion +val akkaActorTyped = "com.typesafe.akka" %% "akka-actor-typed" % AkkaVersion +val akkaHttpTestkitDep = "com.typesafe.akka" %% "akka-http-testkit" % AkkaHttpVersion + lazy val scala_akka_dependencies: Seq[ModuleID] = Seq( - "com.typesafe.akka" %% "akka-actor-typed" % AkkaVersion, - "com.typesafe.akka" %% "akka-actor-testkit-typed" % AkkaVersion % Test, + akkaActorTyped, + akkaTypedTestkit, "com.lightbend.akka" %% "akka-stream-alpakka-mongodb" % "5.0.0", - "com.typesafe.akka" %% "akka-stream" % AkkaVersion, + akkaStreamDep, "org.mongodb.scala" %% "mongo-scala-driver" % "4.11.1", "com.lightbend.akka" %% "akka-stream-alpakka-file" % "5.0.0", jUnitInterface, embeddedMongo % Test, - "com.typesafe.akka" %% "akka-http" % AkkaHttpVersion + akkaHttpDep ) ++ scalaTestDeps lazy val scala_test_junit4 = (project in file("scala-test-junit4")) @@ -266,17 +278,17 @@ lazy val scala_akka_2 = (project in file("scala-akka-2")) name := "scala-akka-2", Defaults.itSettings, libraryDependencies ++= Seq( - "com.typesafe.akka" %% "akka-actor-typed" % AkkaVersion, - "com.typesafe.akka" %% "akka-stream" % AkkaVersion, - "com.typesafe.akka" %% "akka-http" % AkkaHttpVersion, + akkaActorTyped, + akkaStreamDep, + akkaHttpDep, "com.typesafe.akka" %% "akka-discovery" % AkkaVersion, "com.typesafe.akka" %% "akka-http-spray-json" % AkkaHttpVersion, - "com.typesafe.akka" %% "akka-http-testkit" % AkkaHttpVersion, + akkaHttpTestkitDep, "com.lightbend.akka" %% "akka-stream-alpakka-csv" % "5.0.0", "com.lightbend.akka" %% "akka-stream-alpakka-sse" % "5.0.0", "com.typesafe.akka" %% "akka-persistence-typed" % AkkaVersion, - "com.typesafe.akka" %% "akka-actor-testkit-typed" % AkkaVersion % "it,test", - "com.typesafe.akka" %% "akka-http-testkit" % AkkaHttpVersion % "it,test", + akkaTypedTestkit, + akkaHttpTestkitDep % "it,test", "com.typesafe.akka" %% "akka-stream-testkit" % AkkaVersion % Test ) ++ scalaTestDeps.map(_.withConfigurations(Some("it,test"))) ) @@ -285,8 +297,6 @@ val slickVersion = "3.4.1" val shapelessVersion = "2.3.10" val scalazVersion = "7.3.8" val fs2Version = "3.9.4" -val AkkaVersion = "2.8.0" -val AkkaHttpVersion = "10.5.0" val reactiveMongo = "1.0.10" lazy val scala_libraries = (project in file("scala-libraries")) @@ -308,8 +318,8 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.reactivemongo" %% "reactivemongo-akkastream" % reactiveMongo, "de.flapdoodle.embed" % "de.flapdoodle.embed.mongo" % embedMongoVersion % Test, logback % Test, - "com.typesafe.akka" %% "akka-actor-typed" % AkkaVersion, - "com.typesafe.akka" %% "akka-stream" % AkkaVersion, + akkaActorTyped, + akkaStreamDep, catEffectTest, "org.typelevel" %% "cats-effect-testing-scalatest" % "1.5.0" % Test ) @@ -323,6 +333,10 @@ val sparkVersion = "3.5.0" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion val sparkSqlDep = "org.apache.spark" %% "spark-sql" % sparkVersion +val enumeratumDep = "com.beachape" %% "enumeratum" % "1.7.3" +val circeDep = "io.circe" %% "circe-generic" % circeVersion +val circeParserDep = "io.circe" %% "circe-parser" % circeVersion + lazy val scala_libraries_2 = (project in file("scala-libraries-2")) .configs(IntegrationTest) .settings( @@ -331,13 +345,13 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( "io.circe" %% "circe-core" % circeVersion, - "io.circe" %% "circe-generic" % circeVersion, - "io.circe" %% "circe-parser" % circeVersion, + circeDep, + circeParserDep, "com.github.cb372" %% "scalacache-core" % "0.28.0", "com.github.cb372" %% "scalacache-guava" % "0.28.0", "com.github.cb372" %% "scalacache-cats-effect" % "0.28.0", "com.github.cb372" %% "scalacache-caffeine" % "0.28.0", - "com.beachape" %% "enumeratum" % "1.7.3" + enumeratumDep ), libraryDependencies ++= Seq( "org.playframework" %% "play-slick" % "6.0.0", @@ -348,11 +362,11 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) ), dependencyOverrides := Seq( "com.typesafe.akka" %% "akka-protobuf-v3" % AkkaVersion, - "com.typesafe.akka" %% "akka-stream" % AkkaVersion, + akkaStreamDep, "com.typesafe.akka" %% "akka-serialization-jackson" % AkkaVersion ), libraryDependencies ++= Seq( - "com.typesafe.akka" %% "akka-actor-testkit-typed" % AkkaVersion % Test, + akkaTypedTestkit, "org.scalacheck" %% "scalacheck" % "1.17.0" % Test, "com.lihaoyi" %% "requests" % "0.8.0" ), @@ -368,6 +382,12 @@ val http4sBlaze = "0.23.16" val http4sVersion = "0.23.25" val osLibVersion = "0.9.3" +val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion + +val log4jApiScalaDep = "org.apache.logging.log4j" %% "log4j-api-scala" % "13.1.0" + +val munitDep = "org.scalameta" %% "munit" % "0.7.29" % Test + lazy val scala_libraries_3 = (project in file("scala-libraries-3")) .settings( name := "scala-libraries", @@ -376,19 +396,19 @@ lazy val scala_libraries_3 = (project in file("scala-libraries-3")) "org.http4s" %% "http4s-dsl" % http4sVersion, "org.http4s" %% "http4s-blaze-server" % http4sBlaze, "org.http4s" %% "http4s-blaze-client" % http4sBlaze, - "com.beachape" %% "enumeratum" % "1.7.3", - "com.github.pureconfig" %% "pureconfig" % "0.17.5", + enumeratumDep, + pureConfigDep, "com.github.pureconfig" %% "pureconfig-enumeratum" % "0.17.5", "com.typesafe" % "config" % "1.4.3", - "org.scalameta" %% "munit" % "0.7.29" % Test + munitDep ), libraryDependencies += scalaMock, libraryDependencies += "com.softwaremill.retry" %% "retry" % "0.3.6", libraryDependencies ++= Seq( - "org.apache.logging.log4j" %% "log4j-api-scala" % "13.1.0", + log4jApiScalaDep, "org.apache.logging.log4j" % "log4j-core" % "2.22.1" % Runtime ), - libraryDependencies += "com.lihaoyi" %% "os-lib" % osLibVersion + libraryDependencies += osLibDep ) lazy val scala_libraries_os = (project in file("scala-libraries-os")) @@ -397,10 +417,10 @@ lazy val scala_libraries_os = (project in file("scala-libraries-os")) scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps, libraryDependencies ++= Seq( - "org.apache.logging.log4j" %% "log4j-api-scala" % "13.1.0", + log4jApiScalaDep, "org.apache.logging.log4j" % "log4j-core" % "2.22.1" % Runtime ), - libraryDependencies += "com.lihaoyi" %% "os-lib" % osLibVersion + libraryDependencies += osLibDep ) lazy val scala_libraries_4 = (project in file("scala-libraries-4")) @@ -450,6 +470,8 @@ val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" val kafkaAvroSerializer = "7.6.0" +val pureConfigDep = "com.github.pureconfig" %% "pureconfig" % pureconfigVersion + lazy val scala_libraries_5 = (project in file("scala-libraries-5")) .settings( name := "scala-libraries-5", @@ -459,13 +481,13 @@ lazy val scala_libraries_5 = (project in file("scala-libraries-5")) libraryDependencies ++= Seq( "org.typelevel" %% "spire" % spireVersion, "org.apache.kafka" % "kafka-clients" % kafkaVersion, - "com.github.pureconfig" %% "pureconfig" % pureconfigVersion, + pureConfigDep, "com.fasterxml.jackson.core" % "jackson-databind" % jackSonVersion, "com.fasterxml.jackson.datatype" % "jackson-datatype-jsr310" % jackSonVersion, "com.fasterxml.jackson.module" %% "jackson-module-scala" % jackSonVersion, "com.sksamuel.avro4s" %% "avro4s-core" % avro4sVersion, "io.confluent" % "kafka-avro-serializer" % kafkaAvroSerializer, - "org.apache.logging.log4j" %% "log4j-api-scala" % log4jApiScalaVersion, + log4jApiScalaDep, "org.apache.logging.log4j" % "log4j-core" % log4jVersion % Runtime ) ) @@ -477,8 +499,8 @@ lazy val scala_libraries_6 = (project in file("scala-libraries-6")) libraryDependencies ++= scalaTestDeps, libraryDependencies ++= Seq( "io.circe" %% "circe-yaml" % "1.15.0", - "io.circe" %% "circe-generic" % "0.14.6", - "io.circe" %% "circe-parser" % "0.14.6" + circeDep, + circeParserDep ) ) @@ -488,16 +510,18 @@ lazy val scala_strings = (project in file("scala-strings")) scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps, libraryDependencies += jUnitInterface, - libraryDependencies += "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4", + libraryDependencies += scalaParColDep, libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test ) +val scalaTestPlusMockito = "org.scalatestplus" %% "mockito-5-10" % "3.2.18.0" % Test + lazy val scala_design_patterns = (project in file("scala-design-patterns")) .settings( name := "scala-design-patterns", scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps, - libraryDependencies += "org.scalatestplus" %% "mockito-5-10" % "3.2.18.0" % Test, + libraryDependencies += scalaTestPlusMockito, libraryDependencies += "com.novocode" % "junit-interface" % "0.11" % Test ) @@ -535,43 +559,51 @@ lazy val cats_effects = (project in file("cats-effects")) libraryDependencies += "junit" % "junit" % "4.13.2" % Test ) +val zioJsonDep = "dev.zio" %% "zio-json" % zioVersion +val zioTestSbt = "dev.zio" %% "zio-test-sbt" % zioVersion % Test + lazy val zio = (project in file("zio")) .settings( name := "zio", scalaVersion := scala3Version, libraryDependencies += "dev.zio" %% "zio" % zioVersion, libraryDependencies += "dev.zio" %% "zio-streams" % zioVersion, - libraryDependencies += "dev.zio" %% "zio-test-sbt" % zioVersion % Test, + libraryDependencies += zioTestSbt, libraryDependencies += "dev.zio" %% "zio-kafka" % "2.7.2", - libraryDependencies += "dev.zio" %% "zio-json" % "0.6.2", + libraryDependencies += zioJsonDep, testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework") ) lazy val zio3 = (project in file("zio3")) .settings( libraryDependencies ++= Seq( - "dev.zio" %% "zio-json" % "0.6.2", + zioJsonDep, "dev.zio" %% "zio-http" % "3.0.0-RC2", "io.getquill" %% "quill-zio" % "4.8.1", "io.getquill" %% "quill-jdbc-zio" % "4.8.1", "com.h2database" % "h2" % "2.2.220" ), libraryDependencies ++= Seq( - "dev.zio" %% "zio-test" % "2.0.21" % Test, - "dev.zio" %% "zio-test-sbt" % "2.0.21" % Test, - "dev.zio" %% "zio-test-magnolia" % "2.0.21" % Test, + "dev.zio" %% "zio-test" % zioVersion % Test, + zioTestSbt, + "dev.zio" %% "zio-test-magnolia" % zioVersion % Test, "dev.zio" %% "zio-http-testkit" % "3.0.0-RC2" % Test ), testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework"), run / fork := true ) +val doobieVersion = "1.0.0-RC2" + +val doobiePGDep = "org.tpolecat" %% "doobie-postgres" % doobieVersion +val doobieCore = "org.tpolecat" %% "doobie-core" % doobieVersion + lazy val doobie = (project in file("doobie")) .settings( name := "doobie", scalaVersion := scala3Version, - libraryDependencies += "org.tpolecat" %% "doobie-core" % "1.0.0-RC2", - libraryDependencies += "org.tpolecat" %% "doobie-postgres" % "1.0.0-RC2" + libraryDependencies += doobieCore, + libraryDependencies += doobiePGDep ) // Scala Native Project is disabled as it needs clang to installed in the target machine. @@ -607,9 +639,9 @@ lazy val scala3_libraries = (project in file("scala3-libraries")) libraryDependencies ++= scalaTestDeps, libraryDependencies ++= Seq( "com.github.japgolly.clearconfig" %% "core" % "3.1.0", - "org.scalameta" %% "munit" % "0.7.29" % Test, - "org.tpolecat" %% "doobie-core" % "1.0.0-RC2", - "org.tpolecat" %% "doobie-postgres" % "1.0.0-RC2", + munitDep, + doobieCore, + doobiePGDep, catsEffect ) ) From 0a7093571ad55781a9c4f4caca8a3b42508ec09f Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 20 Feb 2024 22:02:19 +0100 Subject: [PATCH 0358/1318] fixed zio-json version --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 86b9e67a7..7da6a1d10 100644 --- a/build.sbt +++ b/build.sbt @@ -559,7 +559,7 @@ lazy val cats_effects = (project in file("cats-effects")) libraryDependencies += "junit" % "junit" % "4.13.2" % Test ) -val zioJsonDep = "dev.zio" %% "zio-json" % zioVersion +val zioJsonDep = "dev.zio" %% "zio-json" % "0.6.2" val zioTestSbt = "dev.zio" %% "zio-test-sbt" % zioVersion % Test lazy val zio = (project in file("zio")) From e4f5b0de9d2a35807d29d21996fb377727d1cbe0 Mon Sep 17 00:00:00 2001 From: Matteo Di Pirro Date: Thu, 22 Feb 2024 08:12:50 +0100 Subject: [PATCH 0359/1318] SCALA-671 Add code for ZIO Aspects in tests --- build.sbt | 10 ++++++ .../scala/zio/aspects/ZAspectsSpec.scala | 31 +++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 zio-2/src/test/scala/com/baeldung/scala/zio/aspects/ZAspectsSpec.scala diff --git a/build.sbt b/build.sbt index 7da6a1d10..5f7960a85 100644 --- a/build.sbt +++ b/build.sbt @@ -574,6 +574,16 @@ lazy val zio = (project in file("zio")) testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework") ) +lazy val zio2 = (project in file("zio-2")) + .settings( + name := "zio-2", + scalaVersion := scala3Version, + libraryDependencies += "dev.zio" %% "zio" % zioVersion, + libraryDependencies += "dev.zio" %% "zio-test" % zioVersion % Test, + libraryDependencies += "dev.zio" %% "zio-test-sbt" % zioVersion % Test, + testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework") + ) + lazy val zio3 = (project in file("zio3")) .settings( libraryDependencies ++= Seq( diff --git a/zio-2/src/test/scala/com/baeldung/scala/zio/aspects/ZAspectsSpec.scala b/zio-2/src/test/scala/com/baeldung/scala/zio/aspects/ZAspectsSpec.scala new file mode 100644 index 000000000..f88acdf35 --- /dev/null +++ b/zio-2/src/test/scala/com/baeldung/scala/zio/aspects/ZAspectsSpec.scala @@ -0,0 +1,31 @@ +package com.baeldung.scala.zio.aspects + +import com.baeldung.scala.zio.aspects.ZAspectsSpec.test +import zio.* +import zio.test.* +import zio.test.TestAspect.{aroundWith, ignore, nonFlaky, timeout} + +object ZAspectsSpec extends ZIOSpecDefault { + override def spec = suite("ZAspectSpec")( + test("Tautology test") { + assertTrue(true) + } @@ ignore, + test("Run effects around a test") { + for { + plt <- System.env("PLATFORM") + } yield assertTrue(plt.contains("Baeldung")) + } @@ aroundWith { + val platform = "Baeldung" + TestSystem.putEnv("PLATFORM", platform) *> ZIO.succeed(platform) + }(envVar => ZIO.debug(s"Platform: $envVar")), + test("Non flaky") { + assertTrue(true) + } @@ nonFlaky(10) + /* Commented out as otherwise the test suite will fail + test("timeouts") { + for { + _ <- ZIO.succeed("Baeldung").forever + } yield assertTrue(true) + } @@ timeout(1.second)*/ + ) +} From 16eb011041fe87d480bd012764ea14579bfe142b Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sun, 25 Feb 2024 05:46:04 +0100 Subject: [PATCH 0360/1318] Fixed issue with Zio service and also moved code (#1180) * Fixed issue with Zio service and also moved code to scala directory from scala-2 * Fixed scalafmt error --- .../baeldung/scala/zio/AcquireReleaseExample.scala | 0 .../scala/zio/AsynchronousProgrammingExample.scala | 0 .../scala/zio/ClassicSTMTransferExample.scala | 0 .../com/baeldung/scala/zio/CounterExample.scala | 0 .../com/baeldung/scala/zio/FiberExample.scala | 0 .../com/baeldung/scala/zio/HelloWorld.scala | 0 .../baeldung/scala/zio/ModulePatternExample.scala | 2 +- .../baeldung/scala/zio/ParallelForeachExample.scala | 0 .../scala/zio/SequentialEffectComposition.scala | 0 .../scala/zio/createeffects/CreateZIOEffects.scala | 0 .../scala/zio/errorhandling/ErrorHandling.scala | 0 .../zio/fibers/PastaCookingFiberAppExample.scala | 0 .../scala/zio/repeatretry/RepeatSamples.scala | 0 .../scala/zio/repeatretry/RetrySamples.scala | 0 .../scala/zio/resources/ResourceHandling.scala | 0 .../scala/zio/streams/FailureRecoveryExample.scala | 0 .../scala/zio/streams/FailureRetryExample.scala | 0 .../scala/zio/streams/FileProcessingExample.scala | 0 .../scala/zio/streams/ProcessAllSinkExample.scala | 0 .../scala/zio/streams/ProcessSomeSinkExample.scala | 0 .../scala/zio/streams/SimpleStreamExample.scala | 0 .../scala/zio/streams/ZPipelineExample.scala | 0 .../TestingApplicationsExamples.scala | 0 .../baeldung/scala/zio/zio_kafka/CustomMessage.scala | 0 .../scala/zio/zio_kafka/CustomMessageSerde.scala | 0 .../zio/zio_kafka/stream/KafkaStreamConsumer.scala | 6 +++--- .../zio/zio_kafka/stream/KafkaStreamProducer.scala | 5 ++--- .../zio_kafka/stream/KafkaStreamWorkflowApp.scala | 0 .../scala/zio/zio_kafka/workflow/KafkaConsumer.scala | 8 ++++---- .../scala/zio/zio_kafka/workflow/KafkaProducer.scala | 12 ++++++------ .../zio/zio_kafka/workflow/KafkaWorkflowApp.scala | 0 .../zio/createeffects/CreateZIOEffectsSpec.scala | 0 .../scala/zio/errorhandling/ErrorHandlingSpec.scala | 0 .../scala/zio/repeatretry/RepeatRetryTest.scala | 0 .../TestingApplicationsExamplesSpec.scala | 0 35 files changed, 16 insertions(+), 17 deletions(-) rename zio/src/main/{scala-2 => scala}/com/baeldung/scala/zio/AcquireReleaseExample.scala (100%) rename zio/src/main/{scala-2 => scala}/com/baeldung/scala/zio/AsynchronousProgrammingExample.scala (100%) rename zio/src/main/{scala-2 => scala}/com/baeldung/scala/zio/ClassicSTMTransferExample.scala (100%) rename zio/src/main/{scala-2 => scala}/com/baeldung/scala/zio/CounterExample.scala (100%) rename zio/src/main/{scala-2 => scala}/com/baeldung/scala/zio/FiberExample.scala (100%) rename zio/src/main/{scala-2 => scala}/com/baeldung/scala/zio/HelloWorld.scala (100%) rename zio/src/main/{scala-2 => scala}/com/baeldung/scala/zio/ModulePatternExample.scala (96%) rename zio/src/main/{scala-2 => scala}/com/baeldung/scala/zio/ParallelForeachExample.scala (100%) rename zio/src/main/{scala-2 => scala}/com/baeldung/scala/zio/SequentialEffectComposition.scala (100%) rename zio/src/main/{scala-2 => scala}/com/baeldung/scala/zio/createeffects/CreateZIOEffects.scala (100%) rename zio/src/main/{scala-2 => scala}/com/baeldung/scala/zio/errorhandling/ErrorHandling.scala (100%) rename zio/src/main/{scala-2 => scala}/com/baeldung/scala/zio/fibers/PastaCookingFiberAppExample.scala (100%) rename zio/src/main/{scala-2 => scala}/com/baeldung/scala/zio/repeatretry/RepeatSamples.scala (100%) rename zio/src/main/{scala-2 => scala}/com/baeldung/scala/zio/repeatretry/RetrySamples.scala (100%) rename zio/src/main/{scala-2 => scala}/com/baeldung/scala/zio/resources/ResourceHandling.scala (100%) rename zio/src/main/{scala-2 => scala}/com/baeldung/scala/zio/streams/FailureRecoveryExample.scala (100%) rename zio/src/main/{scala-2 => scala}/com/baeldung/scala/zio/streams/FailureRetryExample.scala (100%) rename zio/src/main/{scala-2 => scala}/com/baeldung/scala/zio/streams/FileProcessingExample.scala (100%) rename zio/src/main/{scala-2 => scala}/com/baeldung/scala/zio/streams/ProcessAllSinkExample.scala (100%) rename zio/src/main/{scala-2 => scala}/com/baeldung/scala/zio/streams/ProcessSomeSinkExample.scala (100%) rename zio/src/main/{scala-2 => scala}/com/baeldung/scala/zio/streams/SimpleStreamExample.scala (100%) rename zio/src/main/{scala-2 => scala}/com/baeldung/scala/zio/streams/ZPipelineExample.scala (100%) rename zio/src/main/{scala-2 => scala}/com/baeldung/scala/zio/testingapplications/TestingApplicationsExamples.scala (100%) rename zio/src/main/{scala-2 => scala}/com/baeldung/scala/zio/zio_kafka/CustomMessage.scala (100%) rename zio/src/main/{scala-2 => scala}/com/baeldung/scala/zio/zio_kafka/CustomMessageSerde.scala (100%) rename zio/src/main/{scala-2 => scala}/com/baeldung/scala/zio/zio_kafka/stream/KafkaStreamConsumer.scala (67%) rename zio/src/main/{scala-2 => scala}/com/baeldung/scala/zio/zio_kafka/stream/KafkaStreamProducer.scala (71%) rename zio/src/main/{scala-2 => scala}/com/baeldung/scala/zio/zio_kafka/stream/KafkaStreamWorkflowApp.scala (100%) rename zio/src/main/{scala-2 => scala}/com/baeldung/scala/zio/zio_kafka/workflow/KafkaConsumer.scala (82%) rename zio/src/main/{scala-2 => scala}/com/baeldung/scala/zio/zio_kafka/workflow/KafkaProducer.scala (71%) rename zio/src/main/{scala-2 => scala}/com/baeldung/scala/zio/zio_kafka/workflow/KafkaWorkflowApp.scala (100%) rename zio/src/test/{scala-2 => scala}/com/baeldung/scala/zio/createeffects/CreateZIOEffectsSpec.scala (100%) rename zio/src/test/{scala-2 => scala}/com/baeldung/scala/zio/errorhandling/ErrorHandlingSpec.scala (100%) rename zio/src/test/{scala-2 => scala}/com/baeldung/scala/zio/repeatretry/RepeatRetryTest.scala (100%) rename zio/src/test/{scala-2 => scala}/com/bealdung/scala/zio/testingapplications/TestingApplicationsExamplesSpec.scala (100%) diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/AcquireReleaseExample.scala b/zio/src/main/scala/com/baeldung/scala/zio/AcquireReleaseExample.scala similarity index 100% rename from zio/src/main/scala-2/com/baeldung/scala/zio/AcquireReleaseExample.scala rename to zio/src/main/scala/com/baeldung/scala/zio/AcquireReleaseExample.scala diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/AsynchronousProgrammingExample.scala b/zio/src/main/scala/com/baeldung/scala/zio/AsynchronousProgrammingExample.scala similarity index 100% rename from zio/src/main/scala-2/com/baeldung/scala/zio/AsynchronousProgrammingExample.scala rename to zio/src/main/scala/com/baeldung/scala/zio/AsynchronousProgrammingExample.scala diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/ClassicSTMTransferExample.scala b/zio/src/main/scala/com/baeldung/scala/zio/ClassicSTMTransferExample.scala similarity index 100% rename from zio/src/main/scala-2/com/baeldung/scala/zio/ClassicSTMTransferExample.scala rename to zio/src/main/scala/com/baeldung/scala/zio/ClassicSTMTransferExample.scala diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/CounterExample.scala b/zio/src/main/scala/com/baeldung/scala/zio/CounterExample.scala similarity index 100% rename from zio/src/main/scala-2/com/baeldung/scala/zio/CounterExample.scala rename to zio/src/main/scala/com/baeldung/scala/zio/CounterExample.scala diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/FiberExample.scala b/zio/src/main/scala/com/baeldung/scala/zio/FiberExample.scala similarity index 100% rename from zio/src/main/scala-2/com/baeldung/scala/zio/FiberExample.scala rename to zio/src/main/scala/com/baeldung/scala/zio/FiberExample.scala diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/HelloWorld.scala b/zio/src/main/scala/com/baeldung/scala/zio/HelloWorld.scala similarity index 100% rename from zio/src/main/scala-2/com/baeldung/scala/zio/HelloWorld.scala rename to zio/src/main/scala/com/baeldung/scala/zio/HelloWorld.scala diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/ModulePatternExample.scala b/zio/src/main/scala/com/baeldung/scala/zio/ModulePatternExample.scala similarity index 96% rename from zio/src/main/scala-2/com/baeldung/scala/zio/ModulePatternExample.scala rename to zio/src/main/scala/com/baeldung/scala/zio/ModulePatternExample.scala index faff48f29..b11ed810a 100644 --- a/zio/src/main/scala-2/com/baeldung/scala/zio/ModulePatternExample.scala +++ b/zio/src/main/scala/com/baeldung/scala/zio/ModulePatternExample.scala @@ -25,7 +25,7 @@ trait Logging { // Companion object containing accessor methods object Logging { def log(line: String): URIO[Logging, Unit] = - ZIO.serviceWith[Logging](_.log(line)) + ZIO.serviceWithZIO[Logging](_.log(line)) } // Live implementation of Logging service diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/ParallelForeachExample.scala b/zio/src/main/scala/com/baeldung/scala/zio/ParallelForeachExample.scala similarity index 100% rename from zio/src/main/scala-2/com/baeldung/scala/zio/ParallelForeachExample.scala rename to zio/src/main/scala/com/baeldung/scala/zio/ParallelForeachExample.scala diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/SequentialEffectComposition.scala b/zio/src/main/scala/com/baeldung/scala/zio/SequentialEffectComposition.scala similarity index 100% rename from zio/src/main/scala-2/com/baeldung/scala/zio/SequentialEffectComposition.scala rename to zio/src/main/scala/com/baeldung/scala/zio/SequentialEffectComposition.scala diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/createeffects/CreateZIOEffects.scala b/zio/src/main/scala/com/baeldung/scala/zio/createeffects/CreateZIOEffects.scala similarity index 100% rename from zio/src/main/scala-2/com/baeldung/scala/zio/createeffects/CreateZIOEffects.scala rename to zio/src/main/scala/com/baeldung/scala/zio/createeffects/CreateZIOEffects.scala diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/errorhandling/ErrorHandling.scala b/zio/src/main/scala/com/baeldung/scala/zio/errorhandling/ErrorHandling.scala similarity index 100% rename from zio/src/main/scala-2/com/baeldung/scala/zio/errorhandling/ErrorHandling.scala rename to zio/src/main/scala/com/baeldung/scala/zio/errorhandling/ErrorHandling.scala diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/fibers/PastaCookingFiberAppExample.scala b/zio/src/main/scala/com/baeldung/scala/zio/fibers/PastaCookingFiberAppExample.scala similarity index 100% rename from zio/src/main/scala-2/com/baeldung/scala/zio/fibers/PastaCookingFiberAppExample.scala rename to zio/src/main/scala/com/baeldung/scala/zio/fibers/PastaCookingFiberAppExample.scala diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/repeatretry/RepeatSamples.scala b/zio/src/main/scala/com/baeldung/scala/zio/repeatretry/RepeatSamples.scala similarity index 100% rename from zio/src/main/scala-2/com/baeldung/scala/zio/repeatretry/RepeatSamples.scala rename to zio/src/main/scala/com/baeldung/scala/zio/repeatretry/RepeatSamples.scala diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/repeatretry/RetrySamples.scala b/zio/src/main/scala/com/baeldung/scala/zio/repeatretry/RetrySamples.scala similarity index 100% rename from zio/src/main/scala-2/com/baeldung/scala/zio/repeatretry/RetrySamples.scala rename to zio/src/main/scala/com/baeldung/scala/zio/repeatretry/RetrySamples.scala diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/resources/ResourceHandling.scala b/zio/src/main/scala/com/baeldung/scala/zio/resources/ResourceHandling.scala similarity index 100% rename from zio/src/main/scala-2/com/baeldung/scala/zio/resources/ResourceHandling.scala rename to zio/src/main/scala/com/baeldung/scala/zio/resources/ResourceHandling.scala diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/streams/FailureRecoveryExample.scala b/zio/src/main/scala/com/baeldung/scala/zio/streams/FailureRecoveryExample.scala similarity index 100% rename from zio/src/main/scala-2/com/baeldung/scala/zio/streams/FailureRecoveryExample.scala rename to zio/src/main/scala/com/baeldung/scala/zio/streams/FailureRecoveryExample.scala diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/streams/FailureRetryExample.scala b/zio/src/main/scala/com/baeldung/scala/zio/streams/FailureRetryExample.scala similarity index 100% rename from zio/src/main/scala-2/com/baeldung/scala/zio/streams/FailureRetryExample.scala rename to zio/src/main/scala/com/baeldung/scala/zio/streams/FailureRetryExample.scala diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/streams/FileProcessingExample.scala b/zio/src/main/scala/com/baeldung/scala/zio/streams/FileProcessingExample.scala similarity index 100% rename from zio/src/main/scala-2/com/baeldung/scala/zio/streams/FileProcessingExample.scala rename to zio/src/main/scala/com/baeldung/scala/zio/streams/FileProcessingExample.scala diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/streams/ProcessAllSinkExample.scala b/zio/src/main/scala/com/baeldung/scala/zio/streams/ProcessAllSinkExample.scala similarity index 100% rename from zio/src/main/scala-2/com/baeldung/scala/zio/streams/ProcessAllSinkExample.scala rename to zio/src/main/scala/com/baeldung/scala/zio/streams/ProcessAllSinkExample.scala diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/streams/ProcessSomeSinkExample.scala b/zio/src/main/scala/com/baeldung/scala/zio/streams/ProcessSomeSinkExample.scala similarity index 100% rename from zio/src/main/scala-2/com/baeldung/scala/zio/streams/ProcessSomeSinkExample.scala rename to zio/src/main/scala/com/baeldung/scala/zio/streams/ProcessSomeSinkExample.scala diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/streams/SimpleStreamExample.scala b/zio/src/main/scala/com/baeldung/scala/zio/streams/SimpleStreamExample.scala similarity index 100% rename from zio/src/main/scala-2/com/baeldung/scala/zio/streams/SimpleStreamExample.scala rename to zio/src/main/scala/com/baeldung/scala/zio/streams/SimpleStreamExample.scala diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/streams/ZPipelineExample.scala b/zio/src/main/scala/com/baeldung/scala/zio/streams/ZPipelineExample.scala similarity index 100% rename from zio/src/main/scala-2/com/baeldung/scala/zio/streams/ZPipelineExample.scala rename to zio/src/main/scala/com/baeldung/scala/zio/streams/ZPipelineExample.scala diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/testingapplications/TestingApplicationsExamples.scala b/zio/src/main/scala/com/baeldung/scala/zio/testingapplications/TestingApplicationsExamples.scala similarity index 100% rename from zio/src/main/scala-2/com/baeldung/scala/zio/testingapplications/TestingApplicationsExamples.scala rename to zio/src/main/scala/com/baeldung/scala/zio/testingapplications/TestingApplicationsExamples.scala diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/CustomMessage.scala b/zio/src/main/scala/com/baeldung/scala/zio/zio_kafka/CustomMessage.scala similarity index 100% rename from zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/CustomMessage.scala rename to zio/src/main/scala/com/baeldung/scala/zio/zio_kafka/CustomMessage.scala diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/CustomMessageSerde.scala b/zio/src/main/scala/com/baeldung/scala/zio/zio_kafka/CustomMessageSerde.scala similarity index 100% rename from zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/CustomMessageSerde.scala rename to zio/src/main/scala/com/baeldung/scala/zio/zio_kafka/CustomMessageSerde.scala diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/stream/KafkaStreamConsumer.scala b/zio/src/main/scala/com/baeldung/scala/zio/zio_kafka/stream/KafkaStreamConsumer.scala similarity index 67% rename from zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/stream/KafkaStreamConsumer.scala rename to zio/src/main/scala/com/baeldung/scala/zio/zio_kafka/stream/KafkaStreamConsumer.scala index 832a7acbc..26388bb8b 100644 --- a/zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/stream/KafkaStreamConsumer.scala +++ b/zio/src/main/scala/com/baeldung/scala/zio/zio_kafka/stream/KafkaStreamConsumer.scala @@ -6,9 +6,9 @@ import zio.kafka.consumer.{Consumer, ConsumerSettings} object KafkaStreamConsumer { def consumerLayer( - bootstrapServers: List[String], - groupId: String - ): ZLayer[Any, Throwable, Consumer] = + bootstrapServers: List[String], + groupId: String + ): ZLayer[Any, Throwable, Consumer] = ZLayer.scoped( Consumer.make( ConsumerSettings(bootstrapServers) diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/stream/KafkaStreamProducer.scala b/zio/src/main/scala/com/baeldung/scala/zio/zio_kafka/stream/KafkaStreamProducer.scala similarity index 71% rename from zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/stream/KafkaStreamProducer.scala rename to zio/src/main/scala/com/baeldung/scala/zio/zio_kafka/stream/KafkaStreamProducer.scala index 20a5df884..c666a59ce 100644 --- a/zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/stream/KafkaStreamProducer.scala +++ b/zio/src/main/scala/com/baeldung/scala/zio/zio_kafka/stream/KafkaStreamProducer.scala @@ -1,14 +1,13 @@ package com.baeldung.scala.zio.zio_kafka.stream - import zio.ZLayer import zio.kafka.producer.{Producer, ProducerSettings} object KafkaStreamProducer { def producerLayer( - bootstrapServers: List[String] - ): ZLayer[Any, Throwable, Producer] = + bootstrapServers: List[String] + ): ZLayer[Any, Throwable, Producer] = ZLayer.scoped( Producer.make( ProducerSettings(bootstrapServers) diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/stream/KafkaStreamWorkflowApp.scala b/zio/src/main/scala/com/baeldung/scala/zio/zio_kafka/stream/KafkaStreamWorkflowApp.scala similarity index 100% rename from zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/stream/KafkaStreamWorkflowApp.scala rename to zio/src/main/scala/com/baeldung/scala/zio/zio_kafka/stream/KafkaStreamWorkflowApp.scala diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/workflow/KafkaConsumer.scala b/zio/src/main/scala/com/baeldung/scala/zio/zio_kafka/workflow/KafkaConsumer.scala similarity index 82% rename from zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/workflow/KafkaConsumer.scala rename to zio/src/main/scala/com/baeldung/scala/zio/zio_kafka/workflow/KafkaConsumer.scala index bc270ad83..d3aa68e25 100644 --- a/zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/workflow/KafkaConsumer.scala +++ b/zio/src/main/scala/com/baeldung/scala/zio/zio_kafka/workflow/KafkaConsumer.scala @@ -6,10 +6,10 @@ import zio.kafka.consumer.{Consumer, ConsumerSettings, Subscription} object KafkaConsumer { def consume( - bootstrapServers: List[String], - groupId: String, - topic: String - ): RIO[Any, Unit] = + bootstrapServers: List[String], + groupId: String, + topic: String + ): RIO[Any, Unit] = Consumer.consumeWith( settings = ConsumerSettings(bootstrapServers) .withGroupId(groupId), diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/workflow/KafkaProducer.scala b/zio/src/main/scala/com/baeldung/scala/zio/zio_kafka/workflow/KafkaProducer.scala similarity index 71% rename from zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/workflow/KafkaProducer.scala rename to zio/src/main/scala/com/baeldung/scala/zio/zio_kafka/workflow/KafkaProducer.scala index fcc7a52de..d6baedf4f 100644 --- a/zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/workflow/KafkaProducer.scala +++ b/zio/src/main/scala/com/baeldung/scala/zio/zio_kafka/workflow/KafkaProducer.scala @@ -7,10 +7,10 @@ import zio.kafka.producer.{Producer, ProducerSettings} object KafkaProducer { def produce( - topic: String, - key: String, - value: CustomMessage - ): RIO[Any with Producer, RecordMetadata] = + topic: String, + key: String, + value: CustomMessage + ): RIO[Any with Producer, RecordMetadata] = Producer.produce[Any, String, CustomMessage]( topic = topic, key = key, @@ -20,8 +20,8 @@ object KafkaProducer { ) def producerLayer( - bootstrapServers: List[String] - ): ZLayer[Any, Throwable, Producer] = + bootstrapServers: List[String] + ): ZLayer[Any, Throwable, Producer] = ZLayer.scoped( Producer.make( ProducerSettings().withBootstrapServers(bootstrapServers) diff --git a/zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/workflow/KafkaWorkflowApp.scala b/zio/src/main/scala/com/baeldung/scala/zio/zio_kafka/workflow/KafkaWorkflowApp.scala similarity index 100% rename from zio/src/main/scala-2/com/baeldung/scala/zio/zio_kafka/workflow/KafkaWorkflowApp.scala rename to zio/src/main/scala/com/baeldung/scala/zio/zio_kafka/workflow/KafkaWorkflowApp.scala diff --git a/zio/src/test/scala-2/com/baeldung/scala/zio/createeffects/CreateZIOEffectsSpec.scala b/zio/src/test/scala/com/baeldung/scala/zio/createeffects/CreateZIOEffectsSpec.scala similarity index 100% rename from zio/src/test/scala-2/com/baeldung/scala/zio/createeffects/CreateZIOEffectsSpec.scala rename to zio/src/test/scala/com/baeldung/scala/zio/createeffects/CreateZIOEffectsSpec.scala diff --git a/zio/src/test/scala-2/com/baeldung/scala/zio/errorhandling/ErrorHandlingSpec.scala b/zio/src/test/scala/com/baeldung/scala/zio/errorhandling/ErrorHandlingSpec.scala similarity index 100% rename from zio/src/test/scala-2/com/baeldung/scala/zio/errorhandling/ErrorHandlingSpec.scala rename to zio/src/test/scala/com/baeldung/scala/zio/errorhandling/ErrorHandlingSpec.scala diff --git a/zio/src/test/scala-2/com/baeldung/scala/zio/repeatretry/RepeatRetryTest.scala b/zio/src/test/scala/com/baeldung/scala/zio/repeatretry/RepeatRetryTest.scala similarity index 100% rename from zio/src/test/scala-2/com/baeldung/scala/zio/repeatretry/RepeatRetryTest.scala rename to zio/src/test/scala/com/baeldung/scala/zio/repeatretry/RepeatRetryTest.scala diff --git a/zio/src/test/scala-2/com/bealdung/scala/zio/testingapplications/TestingApplicationsExamplesSpec.scala b/zio/src/test/scala/com/bealdung/scala/zio/testingapplications/TestingApplicationsExamplesSpec.scala similarity index 100% rename from zio/src/test/scala-2/com/bealdung/scala/zio/testingapplications/TestingApplicationsExamplesSpec.scala rename to zio/src/test/scala/com/bealdung/scala/zio/testingapplications/TestingApplicationsExamplesSpec.scala From a0ef8b36a54a523c42b083b4508bc11e3ee21578 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 27 Feb 2024 00:15:18 +0000 Subject: [PATCH 0361/1318] Update aws-java-sdk-s3 from 1.12.662 to 1.12.667 --- build.sbt | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/build.sbt b/build.sbt index 6c12bfb07..7fb8734a7 100644 --- a/build.sbt +++ b/build.sbt @@ -170,7 +170,8 @@ lazy val scala_lang_2 = (project in file("scala-lang-modules/scala-lang-2")) Seq(jUnitInterface) ++ scalaTestDeps ) -val scalaParColDep = "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" +val scalaParColDep = + "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" lazy val scala_core_collections = (project in file("scala-core-collections-modules/scala-core-collections")) @@ -225,11 +226,13 @@ lazy val scala_test_2 = (project in file("scala-test-2")) val embeddedMongo = "de.flapdoodle.embed" % "de.flapdoodle.embed.mongo" % embedMongoVersion -val akkaTypedTestkit = "com.typesafe.akka" %% "akka-actor-testkit-typed" % AkkaVersion % "it,test" +val akkaTypedTestkit = + "com.typesafe.akka" %% "akka-actor-testkit-typed" % AkkaVersion % "it,test" val akkaStreamDep = "com.typesafe.akka" %% "akka-stream" % AkkaVersion val akkaHttpDep = "com.typesafe.akka" %% "akka-http" % AkkaHttpVersion val akkaActorTyped = "com.typesafe.akka" %% "akka-actor-typed" % AkkaVersion -val akkaHttpTestkitDep = "com.typesafe.akka" %% "akka-http-testkit" % AkkaHttpVersion +val akkaHttpTestkitDep = + "com.typesafe.akka" %% "akka-http-testkit" % AkkaHttpVersion lazy val scala_akka_dependencies: Seq[ModuleID] = Seq( akkaActorTyped, @@ -398,7 +401,8 @@ val osLibVersion = "0.9.3" val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion -val log4jApiScalaDep = "org.apache.logging.log4j" %% "log4j-api-scala" % "13.1.0" +val log4jApiScalaDep = + "org.apache.logging.log4j" %% "log4j-api-scala" % "13.1.0" val munitDep = "org.scalameta" %% "munit" % "0.7.29" % Test @@ -463,7 +467,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "software.amazon.awssdk" % "s3" % "2.24.6" ), libraryDependencies ++= Seq( - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.662" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.667" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest ), @@ -528,7 +532,8 @@ lazy val scala_strings = (project in file("scala-strings")) libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test ) -val scalaTestPlusMockito = "org.scalatestplus" %% "mockito-5-10" % "3.2.18.0" % Test +val scalaTestPlusMockito = + "org.scalatestplus" %% "mockito-5-10" % "3.2.18.0" % Test lazy val scala_design_patterns = (project in file("scala-design-patterns")) .settings( From ec0459c846220c4005dce518186d469554b7b6b4 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 27 Feb 2024 00:15:28 +0000 Subject: [PATCH 0362/1318] Update pureconfig, pureconfig-enumeratum from 0.17.5 to 0.17.6 --- build.sbt | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/build.sbt b/build.sbt index 6c12bfb07..687e01dea 100644 --- a/build.sbt +++ b/build.sbt @@ -170,7 +170,8 @@ lazy val scala_lang_2 = (project in file("scala-lang-modules/scala-lang-2")) Seq(jUnitInterface) ++ scalaTestDeps ) -val scalaParColDep = "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" +val scalaParColDep = + "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" lazy val scala_core_collections = (project in file("scala-core-collections-modules/scala-core-collections")) @@ -225,11 +226,13 @@ lazy val scala_test_2 = (project in file("scala-test-2")) val embeddedMongo = "de.flapdoodle.embed" % "de.flapdoodle.embed.mongo" % embedMongoVersion -val akkaTypedTestkit = "com.typesafe.akka" %% "akka-actor-testkit-typed" % AkkaVersion % "it,test" +val akkaTypedTestkit = + "com.typesafe.akka" %% "akka-actor-testkit-typed" % AkkaVersion % "it,test" val akkaStreamDep = "com.typesafe.akka" %% "akka-stream" % AkkaVersion val akkaHttpDep = "com.typesafe.akka" %% "akka-http" % AkkaHttpVersion val akkaActorTyped = "com.typesafe.akka" %% "akka-actor-typed" % AkkaVersion -val akkaHttpTestkitDep = "com.typesafe.akka" %% "akka-http-testkit" % AkkaHttpVersion +val akkaHttpTestkitDep = + "com.typesafe.akka" %% "akka-http-testkit" % AkkaHttpVersion lazy val scala_akka_dependencies: Seq[ModuleID] = Seq( akkaActorTyped, @@ -398,7 +401,8 @@ val osLibVersion = "0.9.3" val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion -val log4jApiScalaDep = "org.apache.logging.log4j" %% "log4j-api-scala" % "13.1.0" +val log4jApiScalaDep = + "org.apache.logging.log4j" %% "log4j-api-scala" % "13.1.0" val munitDep = "org.scalameta" %% "munit" % "0.7.29" % Test @@ -412,7 +416,7 @@ lazy val scala_libraries_3 = (project in file("scala-libraries-3")) "org.http4s" %% "http4s-blaze-client" % http4sBlaze, enumeratumDep, pureConfigDep, - "com.github.pureconfig" %% "pureconfig-enumeratum" % "0.17.5", + "com.github.pureconfig" %% "pureconfig-enumeratum" % "0.17.6", "com.typesafe" % "config" % "1.4.3", munitDep ), @@ -477,7 +481,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) val spireVersion = "0.18.0" val kafkaVersion = "7.6.0-ce" -val pureconfigVersion = "0.17.5" +val pureconfigVersion = "0.17.6" val jackSonVersion = "2.16.1" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" @@ -528,7 +532,8 @@ lazy val scala_strings = (project in file("scala-strings")) libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test ) -val scalaTestPlusMockito = "org.scalatestplus" %% "mockito-5-10" % "3.2.18.0" % Test +val scalaTestPlusMockito = + "org.scalatestplus" %% "mockito-5-10" % "3.2.18.0" % Test lazy val scala_design_patterns = (project in file("scala-design-patterns")) .settings( From 4c6877f774b753f8a51e99c7a587edd93dcc7e91 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 27 Feb 2024 00:15:54 +0000 Subject: [PATCH 0363/1318] Update log4j-core from 2.22.1 to 2.23.0 --- build.sbt | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/build.sbt b/build.sbt index 6c12bfb07..317670c81 100644 --- a/build.sbt +++ b/build.sbt @@ -170,7 +170,8 @@ lazy val scala_lang_2 = (project in file("scala-lang-modules/scala-lang-2")) Seq(jUnitInterface) ++ scalaTestDeps ) -val scalaParColDep = "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" +val scalaParColDep = + "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" lazy val scala_core_collections = (project in file("scala-core-collections-modules/scala-core-collections")) @@ -225,11 +226,13 @@ lazy val scala_test_2 = (project in file("scala-test-2")) val embeddedMongo = "de.flapdoodle.embed" % "de.flapdoodle.embed.mongo" % embedMongoVersion -val akkaTypedTestkit = "com.typesafe.akka" %% "akka-actor-testkit-typed" % AkkaVersion % "it,test" +val akkaTypedTestkit = + "com.typesafe.akka" %% "akka-actor-testkit-typed" % AkkaVersion % "it,test" val akkaStreamDep = "com.typesafe.akka" %% "akka-stream" % AkkaVersion val akkaHttpDep = "com.typesafe.akka" %% "akka-http" % AkkaHttpVersion val akkaActorTyped = "com.typesafe.akka" %% "akka-actor-typed" % AkkaVersion -val akkaHttpTestkitDep = "com.typesafe.akka" %% "akka-http-testkit" % AkkaHttpVersion +val akkaHttpTestkitDep = + "com.typesafe.akka" %% "akka-http-testkit" % AkkaHttpVersion lazy val scala_akka_dependencies: Seq[ModuleID] = Seq( akkaActorTyped, @@ -398,7 +401,8 @@ val osLibVersion = "0.9.3" val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion -val log4jApiScalaDep = "org.apache.logging.log4j" %% "log4j-api-scala" % "13.1.0" +val log4jApiScalaDep = + "org.apache.logging.log4j" %% "log4j-api-scala" % "13.1.0" val munitDep = "org.scalameta" %% "munit" % "0.7.29" % Test @@ -420,7 +424,7 @@ lazy val scala_libraries_3 = (project in file("scala-libraries-3")) libraryDependencies += "com.softwaremill.retry" %% "retry" % "0.3.6", libraryDependencies ++= Seq( log4jApiScalaDep, - "org.apache.logging.log4j" % "log4j-core" % "2.22.1" % Runtime + "org.apache.logging.log4j" % "log4j-core" % "2.23.0" % Runtime ), libraryDependencies += osLibDep ) @@ -432,7 +436,7 @@ lazy val scala_libraries_os = (project in file("scala-libraries-os")) libraryDependencies ++= scalaTestDeps, libraryDependencies ++= Seq( log4jApiScalaDep, - "org.apache.logging.log4j" % "log4j-core" % "2.22.1" % Runtime + "org.apache.logging.log4j" % "log4j-core" % "2.23.0" % Runtime ), libraryDependencies += osLibDep ) @@ -528,7 +532,8 @@ lazy val scala_strings = (project in file("scala-strings")) libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test ) -val scalaTestPlusMockito = "org.scalatestplus" %% "mockito-5-10" % "3.2.18.0" % Test +val scalaTestPlusMockito = + "org.scalatestplus" %% "mockito-5-10" % "3.2.18.0" % Test lazy val scala_design_patterns = (project in file("scala-design-patterns")) .settings( From a191f6109aafa92e17142999d07efe11753a6029 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 27 Feb 2024 00:16:11 +0000 Subject: [PATCH 0364/1318] Update spark-core, spark-sql from 3.5.0 to 3.5.1 --- build.sbt | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/build.sbt b/build.sbt index 6c12bfb07..4c9d24b49 100644 --- a/build.sbt +++ b/build.sbt @@ -170,7 +170,8 @@ lazy val scala_lang_2 = (project in file("scala-lang-modules/scala-lang-2")) Seq(jUnitInterface) ++ scalaTestDeps ) -val scalaParColDep = "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" +val scalaParColDep = + "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" lazy val scala_core_collections = (project in file("scala-core-collections-modules/scala-core-collections")) @@ -225,11 +226,13 @@ lazy val scala_test_2 = (project in file("scala-test-2")) val embeddedMongo = "de.flapdoodle.embed" % "de.flapdoodle.embed.mongo" % embedMongoVersion -val akkaTypedTestkit = "com.typesafe.akka" %% "akka-actor-testkit-typed" % AkkaVersion % "it,test" +val akkaTypedTestkit = + "com.typesafe.akka" %% "akka-actor-testkit-typed" % AkkaVersion % "it,test" val akkaStreamDep = "com.typesafe.akka" %% "akka-stream" % AkkaVersion val akkaHttpDep = "com.typesafe.akka" %% "akka-http" % AkkaHttpVersion val akkaActorTyped = "com.typesafe.akka" %% "akka-actor-typed" % AkkaVersion -val akkaHttpTestkitDep = "com.typesafe.akka" %% "akka-http-testkit" % AkkaHttpVersion +val akkaHttpTestkitDep = + "com.typesafe.akka" %% "akka-http-testkit" % AkkaHttpVersion lazy val scala_akka_dependencies: Seq[ModuleID] = Seq( akkaActorTyped, @@ -342,7 +345,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) val circeVersion = "0.14.6" val monixVersion = "3.4.1" val elastic4sVersion = "8.11.5" -val sparkVersion = "3.5.0" +val sparkVersion = "3.5.1" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion val sparkSqlDep = "org.apache.spark" %% "spark-sql" % sparkVersion @@ -398,7 +401,8 @@ val osLibVersion = "0.9.3" val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion -val log4jApiScalaDep = "org.apache.logging.log4j" %% "log4j-api-scala" % "13.1.0" +val log4jApiScalaDep = + "org.apache.logging.log4j" %% "log4j-api-scala" % "13.1.0" val munitDep = "org.scalameta" %% "munit" % "0.7.29" % Test @@ -528,7 +532,8 @@ lazy val scala_strings = (project in file("scala-strings")) libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test ) -val scalaTestPlusMockito = "org.scalatestplus" %% "mockito-5-10" % "3.2.18.0" % Test +val scalaTestPlusMockito = + "org.scalatestplus" %% "mockito-5-10" % "3.2.18.0" % Test lazy val scala_design_patterns = (project in file("scala-design-patterns")) .settings( From 547883e652b3b5f27a490b27b08c050fa54d137d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 27 Feb 2024 00:16:19 +0000 Subject: [PATCH 0365/1318] Update postgresql from 42.2.27 to 42.2.28 --- play-scala/application-tests/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/play-scala/application-tests/build.sbt b/play-scala/application-tests/build.sbt index 397cc51c0..49d6e35e3 100644 --- a/play-scala/application-tests/build.sbt +++ b/play-scala/application-tests/build.sbt @@ -9,7 +9,7 @@ scalaVersion := ScalaVersions.scala2Version libraryDependencies += guice libraryDependencies += "com.h2database" % "h2" % "1.4.200" -libraryDependencies += "org.postgresql" % "postgresql" % "42.2.27" +libraryDependencies += "org.postgresql" % "postgresql" % "42.2.28" libraryDependencies += "org.playframework" %% "play-slick" % "6.0.0" libraryDependencies += "org.playframework" %% "play-slick-evolutions" % "6.0.0" libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % Test From e41398f55c5c0dee75a249116fce705fe80bd040 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 27 Feb 2024 00:16:34 +0000 Subject: [PATCH 0366/1318] Update postgresql from 42.7.1 to 42.7.2 --- build.sbt | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/build.sbt b/build.sbt index 6c12bfb07..f236a2903 100644 --- a/build.sbt +++ b/build.sbt @@ -170,7 +170,8 @@ lazy val scala_lang_2 = (project in file("scala-lang-modules/scala-lang-2")) Seq(jUnitInterface) ++ scalaTestDeps ) -val scalaParColDep = "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" +val scalaParColDep = + "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" lazy val scala_core_collections = (project in file("scala-core-collections-modules/scala-core-collections")) @@ -225,11 +226,13 @@ lazy val scala_test_2 = (project in file("scala-test-2")) val embeddedMongo = "de.flapdoodle.embed" % "de.flapdoodle.embed.mongo" % embedMongoVersion -val akkaTypedTestkit = "com.typesafe.akka" %% "akka-actor-testkit-typed" % AkkaVersion % "it,test" +val akkaTypedTestkit = + "com.typesafe.akka" %% "akka-actor-testkit-typed" % AkkaVersion % "it,test" val akkaStreamDep = "com.typesafe.akka" %% "akka-stream" % AkkaVersion val akkaHttpDep = "com.typesafe.akka" %% "akka-http" % AkkaHttpVersion val akkaActorTyped = "com.typesafe.akka" %% "akka-actor-typed" % AkkaVersion -val akkaHttpTestkitDep = "com.typesafe.akka" %% "akka-http-testkit" % AkkaHttpVersion +val akkaHttpTestkitDep = + "com.typesafe.akka" %% "akka-http-testkit" % AkkaHttpVersion lazy val scala_akka_dependencies: Seq[ModuleID] = Seq( akkaActorTyped, @@ -369,7 +372,7 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) ), libraryDependencies ++= Seq( "org.playframework" %% "play-slick" % "6.0.0", - "org.postgresql" % "postgresql" % "42.7.1" + "org.postgresql" % "postgresql" % "42.7.2" ), libraryDependencies ++= Seq( "io.monix" %% "monix" % monixVersion @@ -398,7 +401,8 @@ val osLibVersion = "0.9.3" val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion -val log4jApiScalaDep = "org.apache.logging.log4j" %% "log4j-api-scala" % "13.1.0" +val log4jApiScalaDep = + "org.apache.logging.log4j" %% "log4j-api-scala" % "13.1.0" val munitDep = "org.scalameta" %% "munit" % "0.7.29" % Test @@ -528,7 +532,8 @@ lazy val scala_strings = (project in file("scala-strings")) libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test ) -val scalaTestPlusMockito = "org.scalatestplus" %% "mockito-5-10" % "3.2.18.0" % Test +val scalaTestPlusMockito = + "org.scalatestplus" %% "mockito-5-10" % "3.2.18.0" % Test lazy val scala_design_patterns = (project in file("scala-design-patterns")) .settings( From b2caa8575728642d3bb7c03bc0a6af8dcadb782b Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 27 Feb 2024 00:16:46 +0000 Subject: [PATCH 0367/1318] Update scala-compiler, scala-library, ... from 2.13.12 to 2.13.13 --- project/ScalaVersions.scala | 2 +- scala-graalvm/scala-graalvm-http-app/build.sbt | 2 +- scala-lagom/build.sbt | 2 +- scala-libraries-4/src/redis-intro/build.sbt | 2 +- scala-sbt/intro-to-sbt/build.sbt | 2 +- scala-sbt/wart-remover/build.sbt | 4 ++-- scala-sbt/wart-remover/custom-warts/build.sbt | 2 +- scalatra/build.sbt | 2 +- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/project/ScalaVersions.scala b/project/ScalaVersions.scala index 82160cf79..bd258e1b4 100644 --- a/project/ScalaVersions.scala +++ b/project/ScalaVersions.scala @@ -1,5 +1,5 @@ object ScalaVersions { - val scala2Version = "2.13.12" + val scala2Version = "2.13.13" val scala3Version = "3.3.1" @deprecated( "Use Scala 2.13 or Scala 3. Don't use 2.12 unless it is a specific feature in 2.12." diff --git a/scala-graalvm/scala-graalvm-http-app/build.sbt b/scala-graalvm/scala-graalvm-http-app/build.sbt index 78d78f30d..099783006 100644 --- a/scala-graalvm/scala-graalvm-http-app/build.sbt +++ b/scala-graalvm/scala-graalvm-http-app/build.sbt @@ -3,7 +3,7 @@ organization := "com.baeldung" version := "1.0-SNAPSHOT" -scalaVersion := "2.13.12" +scalaVersion := "2.13.13" libraryDependencies ++= Seq( "com.typesafe.akka" %% "akka-actor" % "2.8.0", "com.typesafe.akka" %% "akka-stream" % "2.8.0", diff --git a/scala-lagom/build.sbt b/scala-lagom/build.sbt index a00058979..fbe2c3ca8 100644 --- a/scala-lagom/build.sbt +++ b/scala-lagom/build.sbt @@ -2,7 +2,7 @@ organization in ThisBuild := "com.baeldung" version in ThisBuild := "1.0-SNAPSHOT" // the Scala version that will be used for cross-compiled libraries -scalaVersion in ThisBuild := "2.13.12" +scalaVersion in ThisBuild := "2.13.13" val macwire = "com.softwaremill.macwire" %% "macros" % "2.3.3" % "provided" val scalaTest = "org.scalatest" %% "scalatest" % "3.1.1" % Test diff --git a/scala-libraries-4/src/redis-intro/build.sbt b/scala-libraries-4/src/redis-intro/build.sbt index 9a7087d5a..2ed95e9c8 100644 --- a/scala-libraries-4/src/redis-intro/build.sbt +++ b/scala-libraries-4/src/redis-intro/build.sbt @@ -1,6 +1,6 @@ import Dependencies._ -ThisBuild / scalaVersion := "2.13.12" +ThisBuild / scalaVersion := "2.13.13" ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" diff --git a/scala-sbt/intro-to-sbt/build.sbt b/scala-sbt/intro-to-sbt/build.sbt index 341518c66..0b0eea08d 100644 --- a/scala-sbt/intro-to-sbt/build.sbt +++ b/scala-sbt/intro-to-sbt/build.sbt @@ -1,6 +1,6 @@ import Dependencies._ -ThisBuild / scalaVersion := "2.13.12" +ThisBuild / scalaVersion := "2.13.13" ThisBuild / version := "0.1.0-SNAPSHOT" lazy val printHello = taskKey[Unit]("prints hello") diff --git a/scala-sbt/wart-remover/build.sbt b/scala-sbt/wart-remover/build.sbt index 01424ac7f..be7086f87 100644 --- a/scala-sbt/wart-remover/build.sbt +++ b/scala-sbt/wart-remover/build.sbt @@ -1,5 +1,5 @@ lazy val customWarts = (project in file("custom-warts")).settings( - scalaVersion := "2.13.12", + scalaVersion := "2.13.13", name := "CustomWarts", version := "1.0.0", exportJars := true, @@ -10,7 +10,7 @@ lazy val root = (project in file(".")) .dependsOn(customWarts) .settings( name := "wart-remover", - scalaVersion := "2.13.12", + scalaVersion := "2.13.13", version := "1.0.0", wartremoverWarnings ++= Seq(Wart.AsInstanceOf, Wart.Null), wartremoverExcluded += baseDirectory.value / "src" / "main" / "scala" / "com" / "baeldung" / "scala" / "wartremover" / "Excluded.scala", diff --git a/scala-sbt/wart-remover/custom-warts/build.sbt b/scala-sbt/wart-remover/custom-warts/build.sbt index b37b4686e..36f15bd59 100644 --- a/scala-sbt/wart-remover/custom-warts/build.sbt +++ b/scala-sbt/wart-remover/custom-warts/build.sbt @@ -1,6 +1,6 @@ /*lazy val root = (project in file(".")).settings( name := "custom-warts", - scalaVersion := "2.13.12", + scalaVersion := "2.13.13", organization := "com.baeldung", version := "1.0.0-SNAPSHOT", libraryDependencies ++= Seq( diff --git a/scalatra/build.sbt b/scalatra/build.sbt index 7964a30cf..60331b5fc 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -1,6 +1,6 @@ val ScalatraVersion = "2.8.4" -ThisBuild / scalaVersion := "2.13.12" +ThisBuild / scalaVersion := "2.13.13" ThisBuild / organization := "baeldung" name := "scalatratutorial" From b52eb339f055701ffa074bcd32aadb6d0aeaee7d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 27 Feb 2024 00:16:59 +0000 Subject: [PATCH 0368/1318] Update scala-library from 2.12.18 to 2.12.19 --- project/ScalaVersions.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/ScalaVersions.scala b/project/ScalaVersions.scala index 82160cf79..92836bda7 100644 --- a/project/ScalaVersions.scala +++ b/project/ScalaVersions.scala @@ -4,5 +4,5 @@ object ScalaVersions { @deprecated( "Use Scala 2.13 or Scala 3. Don't use 2.12 unless it is a specific feature in 2.12." ) - val scala212Version = "2.12.18" + val scala212Version = "2.12.19" } From 66e41b1f056490ac014ad2dd0099fa6987ded0e5 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 27 Feb 2024 00:17:07 +0000 Subject: [PATCH 0369/1318] Update sbt from 1.9.8 to 1.9.9 --- project/build.properties | 2 +- scalatra/project/build.properties | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/project/build.properties b/project/build.properties index e5ca1ff51..b089b60c7 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1,2 +1,2 @@ -sbt.version=1.9.8 +sbt.version=1.9.9 diff --git a/scalatra/project/build.properties b/scalatra/project/build.properties index abbbce5da..04267b14a 100644 --- a/scalatra/project/build.properties +++ b/scalatra/project/build.properties @@ -1 +1 @@ -sbt.version=1.9.8 +sbt.version=1.9.9 From a1ce5b215674bc5804a7876d746867d20857bb35 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 27 Feb 2024 00:17:19 +0000 Subject: [PATCH 0370/1318] Update pulsar from 1.19.5 to 1.19.6 --- build.sbt | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/build.sbt b/build.sbt index 6c12bfb07..cd2fd0049 100644 --- a/build.sbt +++ b/build.sbt @@ -170,7 +170,8 @@ lazy val scala_lang_2 = (project in file("scala-lang-modules/scala-lang-2")) Seq(jUnitInterface) ++ scalaTestDeps ) -val scalaParColDep = "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" +val scalaParColDep = + "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" lazy val scala_core_collections = (project in file("scala-core-collections-modules/scala-core-collections")) @@ -225,11 +226,13 @@ lazy val scala_test_2 = (project in file("scala-test-2")) val embeddedMongo = "de.flapdoodle.embed" % "de.flapdoodle.embed.mongo" % embedMongoVersion -val akkaTypedTestkit = "com.typesafe.akka" %% "akka-actor-testkit-typed" % AkkaVersion % "it,test" +val akkaTypedTestkit = + "com.typesafe.akka" %% "akka-actor-testkit-typed" % AkkaVersion % "it,test" val akkaStreamDep = "com.typesafe.akka" %% "akka-stream" % AkkaVersion val akkaHttpDep = "com.typesafe.akka" %% "akka-http" % AkkaHttpVersion val akkaActorTyped = "com.typesafe.akka" %% "akka-actor-typed" % AkkaVersion -val akkaHttpTestkitDep = "com.typesafe.akka" %% "akka-http-testkit" % AkkaHttpVersion +val akkaHttpTestkitDep = + "com.typesafe.akka" %% "akka-http-testkit" % AkkaHttpVersion lazy val scala_akka_dependencies: Seq[ModuleID] = Seq( akkaActorTyped, @@ -398,7 +401,8 @@ val osLibVersion = "0.9.3" val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion -val log4jApiScalaDep = "org.apache.logging.log4j" %% "log4j-api-scala" % "13.1.0" +val log4jApiScalaDep = + "org.apache.logging.log4j" %% "log4j-api-scala" % "13.1.0" val munitDep = "org.scalameta" %% "munit" % "0.7.29" % Test @@ -457,7 +461,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) libraryDependencies ++= Seq( "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.9.1", "com.clever-cloud.pulsar4s" %% "pulsar4s-jackson" % "2.9.1", - "org.testcontainers" % "pulsar" % "1.19.5" % IntegrationTest + "org.testcontainers" % "pulsar" % "1.19.6" % IntegrationTest ), libraryDependencies ++= Seq( "software.amazon.awssdk" % "s3" % "2.24.6" @@ -528,7 +532,8 @@ lazy val scala_strings = (project in file("scala-strings")) libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test ) -val scalaTestPlusMockito = "org.scalatestplus" %% "mockito-5-10" % "3.2.18.0" % Test +val scalaTestPlusMockito = + "org.scalatestplus" %% "mockito-5-10" % "3.2.18.0" % Test lazy val scala_design_patterns = (project in file("scala-design-patterns")) .settings( From a5b3b2ff49cc7ef9813d38641883cfd787f55ff1 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 27 Feb 2024 00:17:32 +0000 Subject: [PATCH 0371/1318] Update s3 from 2.24.6 to 2.24.10 --- build.sbt | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/build.sbt b/build.sbt index 6c12bfb07..f097067dc 100644 --- a/build.sbt +++ b/build.sbt @@ -170,7 +170,8 @@ lazy val scala_lang_2 = (project in file("scala-lang-modules/scala-lang-2")) Seq(jUnitInterface) ++ scalaTestDeps ) -val scalaParColDep = "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" +val scalaParColDep = + "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" lazy val scala_core_collections = (project in file("scala-core-collections-modules/scala-core-collections")) @@ -225,11 +226,13 @@ lazy val scala_test_2 = (project in file("scala-test-2")) val embeddedMongo = "de.flapdoodle.embed" % "de.flapdoodle.embed.mongo" % embedMongoVersion -val akkaTypedTestkit = "com.typesafe.akka" %% "akka-actor-testkit-typed" % AkkaVersion % "it,test" +val akkaTypedTestkit = + "com.typesafe.akka" %% "akka-actor-testkit-typed" % AkkaVersion % "it,test" val akkaStreamDep = "com.typesafe.akka" %% "akka-stream" % AkkaVersion val akkaHttpDep = "com.typesafe.akka" %% "akka-http" % AkkaHttpVersion val akkaActorTyped = "com.typesafe.akka" %% "akka-actor-typed" % AkkaVersion -val akkaHttpTestkitDep = "com.typesafe.akka" %% "akka-http-testkit" % AkkaHttpVersion +val akkaHttpTestkitDep = + "com.typesafe.akka" %% "akka-http-testkit" % AkkaHttpVersion lazy val scala_akka_dependencies: Seq[ModuleID] = Seq( akkaActorTyped, @@ -398,7 +401,8 @@ val osLibVersion = "0.9.3" val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion -val log4jApiScalaDep = "org.apache.logging.log4j" %% "log4j-api-scala" % "13.1.0" +val log4jApiScalaDep = + "org.apache.logging.log4j" %% "log4j-api-scala" % "13.1.0" val munitDep = "org.scalameta" %% "munit" % "0.7.29" % Test @@ -460,7 +464,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "org.testcontainers" % "pulsar" % "1.19.5" % IntegrationTest ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "s3" % "2.24.6" + "software.amazon.awssdk" % "s3" % "2.24.10" ), libraryDependencies ++= Seq( "com.amazonaws" % "aws-java-sdk-s3" % "1.12.662" % IntegrationTest, @@ -528,7 +532,8 @@ lazy val scala_strings = (project in file("scala-strings")) libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test ) -val scalaTestPlusMockito = "org.scalatestplus" %% "mockito-5-10" % "3.2.18.0" % Test +val scalaTestPlusMockito = + "org.scalatestplus" %% "mockito-5-10" % "3.2.18.0" % Test lazy val scala_design_patterns = (project in file("scala-design-patterns")) .settings( From 7db6f4594311178a8440fcd404ea3465672bc898 Mon Sep 17 00:00:00 2001 From: Oscar Mauricio Forero Carrillo Date: Tue, 27 Feb 2024 21:41:48 +0100 Subject: [PATCH 0372/1318] SCALA-123: Companion code to the article. (#1179) * SCALA-123: Companion code to the article. * SCALA-123: Companion code to the article. --------- Co-authored-by: Oscar Forero --- .../com/baeldung/scala/classT/Person.scala | 5 ++ .../baeldung/scala/classT/ClassTTests.scala | 56 +++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/classT/Person.scala create mode 100644 scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/classT/ClassTTests.scala diff --git a/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/classT/Person.scala b/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/classT/Person.scala new file mode 100644 index 000000000..1b9871511 --- /dev/null +++ b/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/classT/Person.scala @@ -0,0 +1,5 @@ +package com.baeldung.scala.classT + +class Person(val name: String) { + override def toString: String = s"Person with name: $name" +} diff --git a/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/classT/ClassTTests.scala b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/classT/ClassTTests.scala new file mode 100644 index 000000000..977ba43d1 --- /dev/null +++ b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/classT/ClassTTests.scala @@ -0,0 +1,56 @@ +package com.baeldung.scala.classT + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers + +class ClassTSpec extends AnyFlatSpec with Matchers { + def createInstance[T](clazz: Class[T], args: Array[AnyRef]): Option[T] = { + try { + // Find the appropriate constructor based on the args types + val constructor = clazz.getConstructors + .find { c => + c.getParameterTypes.length == args.length && + (c.getParameterTypes zip args.map(_.getClass)).forall { + case (paramType, argType) => paramType.isAssignableFrom(argType) + } + } + .getOrElse( + throw new NoSuchMethodException("Suitable constructor not found") + ) + + // Instantiate the class with arguments + Some(constructor.newInstance(args: _*).asInstanceOf[T]) + } catch { + case e: Exception => + println(s"Error creating instance of ${clazz.getName}: ${e.getMessage}") + None + } + } + + "createInstance with classOf[T]" should "successfully create an instance of Person" in { + val personClass: Class[Person] = classOf[Person] + val personInstance = createInstance(personClass, Array("John Doe": AnyRef)) + + personInstance should not be empty + personInstance.get.toString should include("Person with name: John Doe") + } + + "createInstance with .getClass" should "successfully create another instance of Person" in { + val dummyPerson = new Person("Dummy") + val personClass: Class[_ <: Person] = dummyPerson.getClass + val personInstance = createInstance(personClass, Array("Jane Doe": AnyRef)) + + personInstance should not be empty + personInstance.get.toString should include("Person with name: Jane Doe") + } + + "createInstance with .getClass" should "use the type of the variable to bound the type" in { + val dummyPerson: Object = new Person("Dummy") + val personClass: Class[_ <: AnyRef] = dummyPerson.getClass + val personInstance = createInstance(personClass, Array("Jane Doe": AnyRef)) + + personInstance should not be empty + personInstance.get.toString should include("Person with name: Jane Doe") + } + +} From a1129c59ff253d50d57505eec60ca919092b891d Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Fri, 1 Mar 2024 14:39:43 +0800 Subject: [PATCH 0373/1318] Create README.md --- scala-akka-3/README.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 scala-akka-3/README.md diff --git a/scala-akka-3/README.md b/scala-akka-3/README.md new file mode 100644 index 000000000..85b4534e3 --- /dev/null +++ b/scala-akka-3/README.md @@ -0,0 +1,2 @@ +### Relevant Articles: +- [Testing Akka Streams](https://www.baeldung.com/scala/akka-streams-tests) From 2bea368fecb49fc7381dff20fcdf9d5866e465c5 Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Fri, 1 Mar 2024 14:40:46 +0800 Subject: [PATCH 0374/1318] Update README.md --- .../scala-core-collections-3/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-core-collections-modules/scala-core-collections-3/README.md b/scala-core-collections-modules/scala-core-collections-3/README.md index 43a65870b..e4e120926 100644 --- a/scala-core-collections-modules/scala-core-collections-3/README.md +++ b/scala-core-collections-modules/scala-core-collections-3/README.md @@ -5,3 +5,4 @@ - [Get a List Item by Index in Scala](https://www.baeldung.com/scala/list-get-item-by-index) - [Moving Averages in Scala: A Tale of Two Approaches](https://www.baeldung.com/scala/moving-averages) - [Implement a Fixed-Size List in Scala](https://www.baeldung.com/scala/list-finite-size) +- [Difference Between zip() and lazyZip() in Scala](https://www.baeldung.com/scala/zip-vs-lazyzip) From 8ea1ebef216f07da411b18d1376b6e8fb18421e0 Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Fri, 1 Mar 2024 15:05:25 +0800 Subject: [PATCH 0375/1318] Update README.md --- scala-akka-3/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-akka-3/README.md b/scala-akka-3/README.md index 85b4534e3..4020908ca 100644 --- a/scala-akka-3/README.md +++ b/scala-akka-3/README.md @@ -1,2 +1,2 @@ -### Relevant Articles: +### Relevant Articles - [Testing Akka Streams](https://www.baeldung.com/scala/akka-streams-tests) From 0451eabe6463ac78c68317eb45164b9bda0c3eeb Mon Sep 17 00:00:00 2001 From: Sergei Ionin <52527592+SergeiIonin@users.noreply.github.com> Date: Fri, 1 Mar 2024 04:31:22 -0300 Subject: [PATCH 0376/1318] Scala 635 cancellation in cats effect (#1194) * SCALA-635: add examples on Cancellation in Cats Effect * SCALA-635: bump cats-effect to 3.5.3 --- .../scala/catseffects/Cancellation.scala | 83 ++++++++++++++ .../scala/catseffects/CancellationApp.scala | 31 +++++ .../scala/catseffects/CancellationSpec.scala | 106 ++++++++++++++++++ 3 files changed, 220 insertions(+) create mode 100644 cats-effects/src/main/scala/com/baeldung/scala/catseffects/Cancellation.scala create mode 100644 cats-effects/src/main/scala/com/baeldung/scala/catseffects/CancellationApp.scala create mode 100644 cats-effects/src/test/scala/com/baeldung/scala/catseffects/CancellationSpec.scala diff --git a/cats-effects/src/main/scala/com/baeldung/scala/catseffects/Cancellation.scala b/cats-effects/src/main/scala/com/baeldung/scala/catseffects/Cancellation.scala new file mode 100644 index 000000000..e1d02dfe8 --- /dev/null +++ b/cats-effects/src/main/scala/com/baeldung/scala/catseffects/Cancellation.scala @@ -0,0 +1,83 @@ +package com.baeldung.scala.catseffects + +import cats.effect.{IO, Resource} +import cats.implicits.{catsSyntaxParallelTraverse1, toTraverseOps} + +import java.io.{InputStream, OutputStream} +import java.util.concurrent.atomic.AtomicBoolean +import scala.concurrent.duration.DurationInt + +object Cancellation { + + def cancelFiberDirectly[A](io: IO[A], onCancellation: => IO[Unit]): IO[Unit] = + for { + fiber <- io.onCancel(onCancellation).start + _ <- fiber.cancel + _ <- fiber.join + } yield () + + def naiveParMap_1[A, B, C]( + ioa: IO[A], + iob: IO[B], + onCancelA: IO[A], + onCancelB: IO[B], + f: (A, B) => C + ): IO[C] = + for { + fiberA <- ioa.start + fiberB <- iob.start + a <- fiberA.joinWith(onCancelA).onError(_ => fiberB.cancel) + b <- fiberB.joinWith(onCancelB).onError(_ => fiberA.cancel) + } yield f(a, b) + + def naiveParMap_2[A, B, C]( + ioa: IO[A], + iob: IO[B], + onCancelA: IO[A], + onCancelB: IO[B], + f: (A, B) => C + ): IO[C] = + for { + fiberA <- ioa.start + fiberB <- iob.start + fiberAj = fiberA.joinWith(onCancelA).onError(_ => fiberB.cancel) + fiberBj = fiberB.joinWith(onCancelB).onError(_ => fiberA.cancel) + regA <- fiberAj.start + regB <- fiberBj.start + a <- regA.joinWith(onCancelA) + b <- regB.joinWith(onCancelB) + } yield f(a, b) + + def getEmails(): IO[List[String]] = IO( + List("gmail@bob.com", "alice@tech.org", "john@doe.org") + ) + + def send(message: String)(email: String): IO[Unit] = IO.sleep( + 1.seconds + ) >> IO.println(s"sending email to $email with $message") + + def sendEmailsUncancelable(message: String): IO[Unit] = + for { + emails <- getEmails() + _ <- IO.println("ready to send emails") + _ <- IO.uncancelable(_ => emails.traverse(send(message))) + _ <- IO.println("emails are sent") + } yield () + + def sendEmailsUncancelableResource(message: String) = + Resource + .make(getEmails())(emails => IO.println(s"emails $emails are released")) + .use(emails => + IO.println("ready to send emails") >> + IO.uncancelable(_ => emails.traverse(send(message))) >> + IO.println("emails are sent") + ) + + def sendEmailsUncancelableBracket(message: String): IO[Unit] = + (getEmails()).bracket(emails => + IO.println("ready to send emails") >> + IO.uncancelable(_ => emails.traverse(send(message))) >> + IO.println("emails are sent") + )(emails => IO.println(s"[bracket] emails $emails are released")) + +} diff --git a/cats-effects/src/main/scala/com/baeldung/scala/catseffects/CancellationApp.scala b/cats-effects/src/main/scala/com/baeldung/scala/catseffects/CancellationApp.scala new file mode 100644 index 000000000..907429757 --- /dev/null +++ b/cats-effects/src/main/scala/com/baeldung/scala/catseffects/CancellationApp.scala @@ -0,0 +1,31 @@ +package com.baeldung.scala.catseffects + +import cats.effect.IOApp +import cats.effect.IO +import scala.concurrent.duration.DurationInt +import java.util.concurrent.atomic.AtomicBoolean +import cats.effect.ExitCode + +object CancellationApp extends IOApp { + + def example() = { + val flag = new AtomicBoolean(false) + var counter = 0 + val ioa = IO.blocking { + while (!flag.get()) { + Thread.sleep(500) + println(s"counter = $counter") + counter += 1 + } + } + + ioa.cancelable( + IO.sleep(3.seconds) >> IO.println("executing the finalizer...") >> IO + .delay(flag.set(true)) + ) + } + + override def run(args: List[String]) = + example().as(ExitCode.Success) + +} diff --git a/cats-effects/src/test/scala/com/baeldung/scala/catseffects/CancellationSpec.scala b/cats-effects/src/test/scala/com/baeldung/scala/catseffects/CancellationSpec.scala new file mode 100644 index 000000000..f15dc3d83 --- /dev/null +++ b/cats-effects/src/test/scala/com/baeldung/scala/catseffects/CancellationSpec.scala @@ -0,0 +1,106 @@ +package com.baeldung.scala.catseffects + +import cats.effect.kernel.CancelScope.Cancelable +import cats.effect.{IO, Resource} +import cats.effect.unsafe.implicits.global +import cats.implicits.catsSyntaxTuple2Parallel +import org.scalatest.matchers.should.Matchers +import org.scalatest.wordspec.AnyWordSpec +import java.util.concurrent.atomic.AtomicBoolean + +import scala.concurrent.duration.DurationInt + +class CancellationSpec extends AnyWordSpec with Matchers { + + "Cancellation" should { + + "cancel the fiber directly and execute the action on cancellation" in { + val flag = new AtomicBoolean(false) + val io = IO.println("ready to cancel the fiber") >> IO.sleep( + 5.seconds + ) >> IO.println("Hello, World!") + val onCancel = + IO.println("cancellation signal received") >> IO.delay(flag.set(true)) + val cancelFiber = Cancellation.cancelFiberDirectly(io, onCancel) + cancelFiber.unsafeRunSync() + flag.get() shouldBe true + } + + "naive parMap works" in { + def tickingClock: IO[Unit] = + for { + _ <- IO.println(s"current time = ${System.currentTimeMillis()}") + _ <- IO.sleep(250.millisecond) + _ <- tickingClock + } yield () + val error: IO[Unit] = + IO.sleep(1.second) *> IO.raiseError(new RuntimeException("boom!")) + + val parMapNaive_2 = Cancellation.naiveParMap_2( + tickingClock, + error, + IO.println("[2] tickingClock was cancelled"), + IO.println("[2] error was cancelled"), + (_: Unit, _: Unit) => println("[2] Exit") + ) + + val res = parMapNaive_2.handleError(e => e.getMessage).unsafeRunSync() + res shouldBe "boom!" + } + + "send emails if the cancellation signal came during the sending process" in { + val sendEmails: IO[Unit] = + Cancellation + .sendEmailsUncancelable("Exam on FP is shifted to Jan 11, 2024") + .onCancel(IO.println("cancellation signal received")) + IO.race(IO.sleep(1.seconds), sendEmails).unsafeRunSync() + } + + "if one of the effects running in parallel throws an error, the second one in cancelled, but it won't affect uncancelalble regions" in { + val flag = new AtomicBoolean(false) + val res = ( + IO.sleep(500.millisecond) >> IO.raiseError( + new RuntimeException("Boom!") + ), + IO.uncancelable(_ => + IO.sleep(1.second) >> IO.println("Hey there") >> IO.delay( + flag.set(true) + ) + ) + ).parTupled + .handleError(_ => flag.get) + .unsafeRunSync() + res shouldBe true + } + + "partially cancel the unancelable IO" in { + var counter = 0 + val example: IO[Unit] = { + val flag = new AtomicBoolean(false) + val ioa = IO.blocking { + while (!flag.get()) { + Thread.sleep(100) + println(s"counter = $counter") + counter += 1 + } + } + + ioa.cancelable( + IO.println("executing the finalizer...") >> IO.delay(flag.set(true)) + ) + } + + (for { + fiber <- example.start + _ <- IO.sleep(500.millisecond) + _ <- IO.println("cancelling the fiber") + _ <- fiber.cancel + _ <- fiber.join + } yield ()).unsafeRunSync() + + counter <= 6 shouldBe true + } + + } + +} From d1423588606999d8f6499bf5c90f0d7c9182f684 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 1 Mar 2024 17:46:18 +0100 Subject: [PATCH 0377/1318] Added sample code for factorial calculation --- .../factorial/FactorialCalculation.scala | 40 +++++++++++++++++++ .../FactorialCalculationUnitTest.scala | 37 +++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/factorial/FactorialCalculation.scala create mode 100644 scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/factorial/FactorialCalculationUnitTest.scala diff --git a/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/factorial/FactorialCalculation.scala b/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/factorial/FactorialCalculation.scala new file mode 100644 index 000000000..c05755587 --- /dev/null +++ b/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/factorial/FactorialCalculation.scala @@ -0,0 +1,40 @@ +package com.baeldung.scala.factorial + +import scala.annotation.tailrec + +object FactorialCalculation { + + def factorialUsingRecursion(num: Int): BigInt = { + require(num >= 0, "Factorial is not defined for negative numbers") + if (num == 0) 1 + else num * factorialUsingRecursion(num - 1) + } + + def factorialUsingTailRecursion(num: Int): BigInt = { + require(num >= 0, "Factorial is not defined for negative numbers") + @tailrec + def fac(n: Int, acc: BigInt): BigInt = { + n match { + case 0 => acc + case num => fac(num - 1, acc * num) + } + } + fac(num, BigInt(1)) + } + + def factorialUsingProduct(num: Int): BigInt = { + require(num >= 0, "Factorial is not defined for negative numbers") + num match { + case 0 => BigInt(1) + case _ => (BigInt(1) to BigInt(num)).product + } + } + + def factorialUsingReduce(num: Int): BigInt = { + require(num >= 0, "Factorial is not defined for negative numbers") + num match { + case 0 => BigInt(1) + case _ => (BigInt(1) to BigInt(num)).reduce(_ * _) + } + } +} diff --git a/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/factorial/FactorialCalculationUnitTest.scala b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/factorial/FactorialCalculationUnitTest.scala new file mode 100644 index 000000000..4c81f912a --- /dev/null +++ b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/factorial/FactorialCalculationUnitTest.scala @@ -0,0 +1,37 @@ +package com.baeldung.scala.factorial + +import com.baeldung.scala.factorial.FactorialCalculation.* +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers +import org.scalatest.prop.TableDrivenPropertyChecks + +class FactorialCalculationUnitTest + extends AnyFlatSpec + with TableDrivenPropertyChecks + with Matchers { + + private val fns = Seq( + ("recursion", factorialUsingRecursion), + ("tail recursion", factorialUsingTailRecursion), + ("product", factorialUsingProduct), + ("reduce", factorialUsingReduce) + ) + + private val table = Table( + ("Number", "Factorial"), + (0, BigInt(1)), + (1, BigInt(1)), + (2, BigInt(2)), + (8, BigInt(40320)), + (30, BigInt("265252859812191058636308480000000")) + ) + + fns.foreach { (name, fn) => + it should s"Calculate the factorial of a number using $name" in { + forAll(table) { (num, expectedFactorial) => + fn(num) shouldBe expectedFactorial + } + } + } + +} From 703a7c10f4f2ad296d3bf8e83699dbe7dab3844a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 7 Mar 2024 00:10:55 +0000 Subject: [PATCH 0378/1318] Update args4j from 2.33 to 2.37 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a47f7f088..3464326ed 100644 --- a/build.sbt +++ b/build.sbt @@ -64,7 +64,7 @@ lazy val scala2_core = (project in file("scala-core-modules/scala2-core")) libraryDependencies += "org.rogach" %% "scallop" % "5.0.1", libraryDependencies += "org.backuity.clist" %% "clist-core" % "3.5.1", libraryDependencies += "org.backuity.clist" %% "clist-macros" % "3.5.1" % "provided", - libraryDependencies += "args4j" % "args4j" % "2.33", + libraryDependencies += "args4j" % "args4j" % "2.37", libraryDependencies += "org.scala-lang" % "scala-compiler" % scalaVersion.value % "test", libraryDependencies += catsEffect ) From 1ce85a0fd4c310997075d7c30e33f04e1638146e Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 7 Mar 2024 00:11:06 +0000 Subject: [PATCH 0379/1318] Update logback-classic from 1.5.0 to 1.5.3 --- build.sbt | 2 +- scalatra/build.sbt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index a47f7f088..59da93e4f 100644 --- a/build.sbt +++ b/build.sbt @@ -9,7 +9,7 @@ val jUnitInterface = "com.github.sbt" % "junit-interface" % "0.13.3" % "test" val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.3" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.3" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV -val logback = "ch.qos.logback" % "logback-classic" % "1.5.0" +val logback = "ch.qos.logback" % "logback-classic" % "1.5.3" val embedMongoVersion = "4.12.2" val AkkaVersion = "2.8.0" val AkkaHttpVersion = "10.5.0" diff --git a/scalatra/build.sbt b/scalatra/build.sbt index 60331b5fc..921d60d22 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -8,7 +8,7 @@ version := "0.1.0-SNAPSHOT" libraryDependencies ++= Seq( "org.scalatra" %% "scalatra" % ScalatraVersion, "org.scalatra" %% "scalatra-scalatest" % ScalatraVersion % "test", - "ch.qos.logback" % "logback-classic" % "1.5.0" % "runtime", + "ch.qos.logback" % "logback-classic" % "1.5.3" % "runtime", "org.eclipse.jetty" % "jetty-webapp" % "11.0.20" % "container", "javax.servlet" % "javax.servlet-api" % "4.0.1" % "provided", "org.scalatra" %% "scalatra-auth" % ScalatraVersion, From 697789749d7ddb3496209124c8e15a579eb37c5d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 7 Mar 2024 00:11:22 +0000 Subject: [PATCH 0380/1318] Update aws-java-sdk-s3 from 1.12.667 to 1.12.674 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a47f7f088..851e49603 100644 --- a/build.sbt +++ b/build.sbt @@ -467,7 +467,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "software.amazon.awssdk" % "s3" % "2.24.10" ), libraryDependencies ++= Seq( - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.667" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.674" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest ), From c83e14a7b9dfde1cf4774bf591912091457e941a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 7 Mar 2024 00:11:30 +0000 Subject: [PATCH 0381/1318] Update c3p0 from 0.9.5.5 to 0.10.0 --- scalatra/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scalatra/build.sbt b/scalatra/build.sbt index 60331b5fc..d22ba7efc 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -16,7 +16,7 @@ libraryDependencies ++= Seq( "org.json4s" %% "json4s-jackson" % "4.0.7", "com.typesafe.slick" %% "slick" % "3.4.1", "com.h2database" % "h2" % "2.1.214", - "com.mchange" % "c3p0" % "0.9.5.5" + "com.mchange" % "c3p0" % "0.10.0" ) libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always enablePlugins(SbtTwirl) From 6f75609239e7231af263a468f2f847dcd93b3a2a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 7 Mar 2024 00:11:45 +0000 Subject: [PATCH 0382/1318] Update zio-kafka from 2.7.2 to 2.7.3 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a47f7f088..cc4a186e7 100644 --- a/build.sbt +++ b/build.sbt @@ -588,7 +588,7 @@ lazy val zio = (project in file("zio")) libraryDependencies += "dev.zio" %% "zio" % zioVersion, libraryDependencies += "dev.zio" %% "zio-streams" % zioVersion, libraryDependencies += zioTestSbt, - libraryDependencies += "dev.zio" %% "zio-kafka" % "2.7.2", + libraryDependencies += "dev.zio" %% "zio-kafka" % "2.7.3", libraryDependencies += zioJsonDep, testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework") ) From 40f9911d1757ddee9afa62c0379e8eb7396e2070 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 7 Mar 2024 00:12:01 +0000 Subject: [PATCH 0383/1318] Update http4s-dsl from 0.23.25 to 0.23.26 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a47f7f088..2157ce69a 100644 --- a/build.sbt +++ b/build.sbt @@ -396,7 +396,7 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) ) val http4sBlaze = "0.23.16" -val http4sVersion = "0.23.25" +val http4sVersion = "0.23.26" val osLibVersion = "0.9.3" val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion From 763543d2ab7f2113608e807b81436b6b016cf6a0 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 7 Mar 2024 00:12:13 +0000 Subject: [PATCH 0384/1318] Update mockito-core from 5.10.0 to 5.11.0 --- play-scala/caching-in-play/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/play-scala/caching-in-play/build.sbt b/play-scala/caching-in-play/build.sbt index da64fadb6..ca0e8af15 100644 --- a/play-scala/caching-in-play/build.sbt +++ b/play-scala/caching-in-play/build.sbt @@ -11,6 +11,6 @@ libraryDependencies += guice libraryDependencies += caffeine libraryDependencies += ws libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % Test -libraryDependencies += "org.mockito" % "mockito-core" % "5.10.0" % Test +libraryDependencies += "org.mockito" % "mockito-core" % "5.11.0" % Test PlayKeys.devSettings += "play.server.http.port" -> "9000" From 49a2b79bcf159e1e84eaf330ae3b40dd2d763e0e Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 7 Mar 2024 00:12:27 +0000 Subject: [PATCH 0385/1318] Update mongo-scala-driver from 4.11.1 to 5.0.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a47f7f088..37972ca7c 100644 --- a/build.sbt +++ b/build.sbt @@ -239,7 +239,7 @@ lazy val scala_akka_dependencies: Seq[ModuleID] = Seq( akkaTypedTestkit, "com.lightbend.akka" %% "akka-stream-alpakka-mongodb" % "5.0.0", akkaStreamDep, - "org.mongodb.scala" %% "mongo-scala-driver" % "4.11.1", + "org.mongodb.scala" %% "mongo-scala-driver" % "5.0.0", "com.lightbend.akka" %% "akka-stream-alpakka-file" % "5.0.0", jUnitInterface, embeddedMongo % Test, From b2aa78af2212345c6971c7a83819c6f78c489488 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 7 Mar 2024 00:12:43 +0000 Subject: [PATCH 0386/1318] Update play-ahc-ws, play-caffeine-cache, ... from 3.0.1 to 3.0.2 --- play-scala/application-tests/project/plugins.sbt | 2 +- play-scala/async-tasks/project/plugins.sbt | 2 +- play-scala/caching-in-play/project/plugins.sbt | 2 +- play-scala/configuration-access/project/plugins.sbt | 2 +- play-scala/custom-error-handling/project/plugins.sbt | 2 +- play-scala/dependency-injection/project/plugins.sbt | 2 +- play-scala/introduction-to-play/project/plugins.sbt | 2 +- play-scala/play-static-assets/project/plugins.sbt | 2 +- play-scala/play-templates/project/plugins.sbt | 2 +- play-scala/rest-api/project/plugins.sbt | 2 +- project/plugins.sbt | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/play-scala/application-tests/project/plugins.sbt b/play-scala/application-tests/project/plugins.sbt index 0bc4abe8a..12a44d0f4 100644 --- a/play-scala/application-tests/project/plugins.sbt +++ b/play-scala/application-tests/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.1") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.2") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.16.2") diff --git a/play-scala/async-tasks/project/plugins.sbt b/play-scala/async-tasks/project/plugins.sbt index 9cd2b2f21..f583f5efe 100644 --- a/play-scala/async-tasks/project/plugins.sbt +++ b/play-scala/async-tasks/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.1") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.2") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") diff --git a/play-scala/caching-in-play/project/plugins.sbt b/play-scala/caching-in-play/project/plugins.sbt index f656ef2c4..5069a27aa 100644 --- a/play-scala/caching-in-play/project/plugins.sbt +++ b/play-scala/caching-in-play/project/plugins.sbt @@ -1,3 +1,3 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.1") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.2") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.0") diff --git a/play-scala/configuration-access/project/plugins.sbt b/play-scala/configuration-access/project/plugins.sbt index f656ef2c4..5069a27aa 100644 --- a/play-scala/configuration-access/project/plugins.sbt +++ b/play-scala/configuration-access/project/plugins.sbt @@ -1,3 +1,3 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.1") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.2") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.0") diff --git a/play-scala/custom-error-handling/project/plugins.sbt b/play-scala/custom-error-handling/project/plugins.sbt index 9cd2b2f21..f583f5efe 100644 --- a/play-scala/custom-error-handling/project/plugins.sbt +++ b/play-scala/custom-error-handling/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.1") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.2") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") diff --git a/play-scala/dependency-injection/project/plugins.sbt b/play-scala/dependency-injection/project/plugins.sbt index 83aebd10c..c4bb3b527 100644 --- a/play-scala/dependency-injection/project/plugins.sbt +++ b/play-scala/dependency-injection/project/plugins.sbt @@ -1,3 +1,3 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.1") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.2") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.2") diff --git a/play-scala/introduction-to-play/project/plugins.sbt b/play-scala/introduction-to-play/project/plugins.sbt index 9cd2b2f21..f583f5efe 100644 --- a/play-scala/introduction-to-play/project/plugins.sbt +++ b/play-scala/introduction-to-play/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.1") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.2") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") diff --git a/play-scala/play-static-assets/project/plugins.sbt b/play-scala/play-static-assets/project/plugins.sbt index 2886b8ce1..a69f1ef1b 100644 --- a/play-scala/play-static-assets/project/plugins.sbt +++ b/play-scala/play-static-assets/project/plugins.sbt @@ -1,4 +1,4 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.1") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.2") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") addSbtPlugin("com.typesafe.sbt" % "sbt-coffeescript" % "1.0.2") addSbtPlugin("com.github.platypii" % "sbt-typescript" % "4.6.4") diff --git a/play-scala/play-templates/project/plugins.sbt b/play-scala/play-templates/project/plugins.sbt index 9cd2b2f21..f583f5efe 100644 --- a/play-scala/play-templates/project/plugins.sbt +++ b/play-scala/play-templates/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.1") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.2") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") diff --git a/play-scala/rest-api/project/plugins.sbt b/play-scala/rest-api/project/plugins.sbt index 9cd2b2f21..f583f5efe 100644 --- a/play-scala/rest-api/project/plugins.sbt +++ b/play-scala/rest-api/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.1") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.2") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") diff --git a/project/plugins.sbt b/project/plugins.sbt index fcbed1708..ec90e0717 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -7,7 +7,7 @@ addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.2.1") libraryDependencies += "ai.kien" %% "python-native-libs" % "0.2.4" // Make sure to keep the play plugin in sync with the sub modules under play-scala group -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.1") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.2") addSbtPlugin("org.playframework.twirl" % "sbt-twirl" % "2.0.1") addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "4.2.1") From 458e59050bcacb924ab06a20e68f192e22c89c31 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 7 Mar 2024 00:12:59 +0000 Subject: [PATCH 0387/1318] Update sbt-twirl, twirl-api from 2.0.3 to 2.0.4 --- scalatra/project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scalatra/project/plugins.sbt b/scalatra/project/plugins.sbt index 3f6625024..d2c1e5ce9 100644 --- a/scalatra/project/plugins.sbt +++ b/scalatra/project/plugins.sbt @@ -1,3 +1,3 @@ -addSbtPlugin("org.playframework.twirl" % "sbt-twirl" % "2.0.3") +addSbtPlugin("org.playframework.twirl" % "sbt-twirl" % "2.0.4") addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "4.2.4") libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always From 3bbef4bb0f9a56538b4e941be1a5a58d15ba9fea Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 7 Mar 2024 00:13:12 +0000 Subject: [PATCH 0388/1318] Update scala3-library from 3.3.1 to 3.3.3 --- project/ScalaVersions.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/ScalaVersions.scala b/project/ScalaVersions.scala index 9fe87a191..9f8be5991 100644 --- a/project/ScalaVersions.scala +++ b/project/ScalaVersions.scala @@ -1,6 +1,6 @@ object ScalaVersions { val scala2Version = "2.13.13" - val scala3Version = "3.3.1" + val scala3Version = "3.3.3" @deprecated( "Use Scala 2.13 or Scala 3. Don't use 2.12 unless it is a specific feature in 2.12." ) From d416c8482bf3545678e13624f08d38092caf6f0f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 7 Mar 2024 00:13:22 +0000 Subject: [PATCH 0389/1318] Update pulsar from 1.19.6 to 1.19.7 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a47f7f088..1c77a556b 100644 --- a/build.sbt +++ b/build.sbt @@ -461,7 +461,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) libraryDependencies ++= Seq( "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.9.1", "com.clever-cloud.pulsar4s" %% "pulsar4s-jackson" % "2.9.1", - "org.testcontainers" % "pulsar" % "1.19.6" % IntegrationTest + "org.testcontainers" % "pulsar" % "1.19.7" % IntegrationTest ), libraryDependencies ++= Seq( "software.amazon.awssdk" % "s3" % "2.24.10" From 0fa985673e40d10d89d6129fdbeacad04fa1c3a5 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 7 Mar 2024 00:13:50 +0000 Subject: [PATCH 0390/1318] Update s3 from 2.24.10 to 2.24.13 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a47f7f088..8dd413632 100644 --- a/build.sbt +++ b/build.sbt @@ -464,7 +464,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "org.testcontainers" % "pulsar" % "1.19.6" % IntegrationTest ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "s3" % "2.24.10" + "software.amazon.awssdk" % "s3" % "2.24.13" ), libraryDependencies ++= Seq( "com.amazonaws" % "aws-java-sdk-s3" % "1.12.667" % IntegrationTest, From 61e1249f964efad514f191986eb374151768c397 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Thu, 7 Mar 2024 07:35:30 +0100 Subject: [PATCH 0391/1318] Temporarily ignoring the test --- .../com/baeldung/scala/catseffects/CancellationSpec.scala | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cats-effects/src/test/scala/com/baeldung/scala/catseffects/CancellationSpec.scala b/cats-effects/src/test/scala/com/baeldung/scala/catseffects/CancellationSpec.scala index f15dc3d83..86ff9b705 100644 --- a/cats-effects/src/test/scala/com/baeldung/scala/catseffects/CancellationSpec.scala +++ b/cats-effects/src/test/scala/com/baeldung/scala/catseffects/CancellationSpec.scala @@ -4,12 +4,16 @@ import cats.effect.kernel.CancelScope.Cancelable import cats.effect.{IO, Resource} import cats.effect.unsafe.implicits.global import cats.implicits.catsSyntaxTuple2Parallel +import org.scalatest.Ignore import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpec -import java.util.concurrent.atomic.AtomicBoolean +import java.util.concurrent.atomic.AtomicBoolean import scala.concurrent.duration.DurationInt +// todo: Flakiness due to https://jira.baeldung.com/browse/SCALA-635 +// temporarily ignoring the test until the issue is fixed. +@Ignore class CancellationSpec extends AnyWordSpec with Matchers { "Cancellation" should { From 76b43f5c664cc9673c8742dbbf40d08b95324dbe Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 7 Mar 2024 00:13:35 +0000 Subject: [PATCH 0392/1318] Update cats-effect, cats-effect-testkit from 3.5.3 to 3.5.4 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index b0f2b7bbb..dd4d68f44 100644 --- a/build.sbt +++ b/build.sbt @@ -6,8 +6,8 @@ ThisBuild / organization := "com.baeldung" ThisBuild / organizationName := "core-scala" val jUnitInterface = "com.github.sbt" % "junit-interface" % "0.13.3" % "test" -val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.3" -val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.3" % Test +val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.4" +val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.4" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV val logback = "ch.qos.logback" % "logback-classic" % "1.5.3" val embedMongoVersion = "4.12.2" From d8a12efee747d26363f1c36392b9990bc63998c8 Mon Sep 17 00:00:00 2001 From: SergeiIonin Date: Thu, 7 Mar 2024 13:47:23 -0300 Subject: [PATCH 0393/1318] SCALA-635: fix flaky test --- .../scala/catseffects/Cancellation.scala | 18 +++++++- .../scala/catseffects/CancellationSpec.scala | 44 ++++++++++--------- 2 files changed, 41 insertions(+), 21 deletions(-) diff --git a/cats-effects/src/main/scala/com/baeldung/scala/catseffects/Cancellation.scala b/cats-effects/src/main/scala/com/baeldung/scala/catseffects/Cancellation.scala index e1d02dfe8..61658d34c 100644 --- a/cats-effects/src/main/scala/com/baeldung/scala/catseffects/Cancellation.scala +++ b/cats-effects/src/main/scala/com/baeldung/scala/catseffects/Cancellation.scala @@ -1,6 +1,6 @@ package com.baeldung.scala.catseffects -import cats.effect.{IO, Resource} +import cats.effect.{IO, Resource, Deferred} import cats.implicits.{catsSyntaxParallelTraverse1, toTraverseOps} import java.io.{InputStream, OutputStream} @@ -16,6 +16,22 @@ object Cancellation { _ <- fiber.join } yield () + def cancelFiberDirectlySafe[A]( + io: IO[A], + onCancellation: => IO[Unit] + ): IO[Unit] = + for { + completionSignal <- Deferred[IO, Unit] + fiber <- io + .onCancel(onCancellation >> completionSignal.complete(()).void) + .start + _ <- fiber.cancel + _ <- completionSignal.get + _ <- IO.println(s"joining the fiber") + _ <- fiber.join + _ <- IO.println(s"fiber is joined") + } yield () + def naiveParMap_1[A, B, C]( ioa: IO[A], iob: IO[B], diff --git a/cats-effects/src/test/scala/com/baeldung/scala/catseffects/CancellationSpec.scala b/cats-effects/src/test/scala/com/baeldung/scala/catseffects/CancellationSpec.scala index 86ff9b705..2b5401ff1 100644 --- a/cats-effects/src/test/scala/com/baeldung/scala/catseffects/CancellationSpec.scala +++ b/cats-effects/src/test/scala/com/baeldung/scala/catseffects/CancellationSpec.scala @@ -4,41 +4,45 @@ import cats.effect.kernel.CancelScope.Cancelable import cats.effect.{IO, Resource} import cats.effect.unsafe.implicits.global import cats.implicits.catsSyntaxTuple2Parallel -import org.scalatest.Ignore import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpec - import java.util.concurrent.atomic.AtomicBoolean + import scala.concurrent.duration.DurationInt -// todo: Flakiness due to https://jira.baeldung.com/browse/SCALA-635 -// temporarily ignoring the test until the issue is fixed. -@Ignore class CancellationSpec extends AnyWordSpec with Matchers { "Cancellation" should { - "cancel the fiber directly and execute the action on cancellation" in { - val flag = new AtomicBoolean(false) - val io = IO.println("ready to cancel the fiber") >> IO.sleep( - 5.seconds + val io = IO.println(s"ready to cancel the fiber") >> IO.sleep( + 15.millisecond ) >> IO.println("Hello, World!") - val onCancel = - IO.println("cancellation signal received") >> IO.delay(flag.set(true)) - val cancelFiber = Cancellation.cancelFiberDirectly(io, onCancel) - cancelFiber.unsafeRunSync() - flag.get() shouldBe true + def onCancel(flag: AtomicBoolean) = + IO.println(s"cancellation signal received") >> IO.delay( + flag.set(true) + ) >> + IO.println(s"flag after the cancellation = ${flag.get()}") + val flag = new AtomicBoolean(false) + + val cancelFiber = Cancellation.cancelFiberDirectlySafe(io, onCancel(flag)) + val res = cancelFiber + .flatMap(_ => + IO.println(s"checking the flag: flag = ${flag.get()}") >> + IO.delay(flag.get()) + ) + .unsafeRunSync() + res shouldBe true } "naive parMap works" in { def tickingClock: IO[Unit] = for { _ <- IO.println(s"current time = ${System.currentTimeMillis()}") - _ <- IO.sleep(250.millisecond) + _ <- IO.sleep(15.millisecond) _ <- tickingClock } yield () val error: IO[Unit] = - IO.sleep(1.second) *> IO.raiseError(new RuntimeException("boom!")) + IO.sleep(60.millisecond) *> IO.raiseError(new RuntimeException("boom!")) val parMapNaive_2 = Cancellation.naiveParMap_2( tickingClock, @@ -63,11 +67,11 @@ class CancellationSpec extends AnyWordSpec with Matchers { "if one of the effects running in parallel throws an error, the second one in cancelled, but it won't affect uncancelalble regions" in { val flag = new AtomicBoolean(false) val res = ( - IO.sleep(500.millisecond) >> IO.raiseError( + IO.sleep(15.millisecond) >> IO.raiseError( new RuntimeException("Boom!") ), IO.uncancelable(_ => - IO.sleep(1.second) >> IO.println("Hey there") >> IO.delay( + IO.sleep(30.millisecond) >> IO.println("Hey there") >> IO.delay( flag.set(true) ) ) @@ -83,7 +87,7 @@ class CancellationSpec extends AnyWordSpec with Matchers { val flag = new AtomicBoolean(false) val ioa = IO.blocking { while (!flag.get()) { - Thread.sleep(100) + Thread.sleep(15) println(s"counter = $counter") counter += 1 } @@ -96,7 +100,7 @@ class CancellationSpec extends AnyWordSpec with Matchers { (for { fiber <- example.start - _ <- IO.sleep(500.millisecond) + _ <- IO.sleep(75.millisecond) _ <- IO.println("cancelling the fiber") _ <- fiber.cancel _ <- fiber.join From f9573b2ec609915a90e56db940fff849d6e6c3ec Mon Sep 17 00:00:00 2001 From: Matteo Di Pirro Date: Thu, 7 Mar 2024 18:01:07 +0100 Subject: [PATCH 0394/1318] SCALA-671 Add ignored tautology test --- .../scala/com/baeldung/scala/zio/aspects/ZAspectsSpec.scala | 3 +++ 1 file changed, 3 insertions(+) diff --git a/zio-2/src/test/scala/com/baeldung/scala/zio/aspects/ZAspectsSpec.scala b/zio-2/src/test/scala/com/baeldung/scala/zio/aspects/ZAspectsSpec.scala index f88acdf35..9e557fabb 100644 --- a/zio-2/src/test/scala/com/baeldung/scala/zio/aspects/ZAspectsSpec.scala +++ b/zio-2/src/test/scala/com/baeldung/scala/zio/aspects/ZAspectsSpec.scala @@ -7,6 +7,9 @@ import zio.test.TestAspect.{aroundWith, ignore, nonFlaky, timeout} object ZAspectsSpec extends ZIOSpecDefault { override def spec = suite("ZAspectSpec")( + test("Tautology test") { + assertTrue(true) + }, test("Tautology test") { assertTrue(true) } @@ ignore, From 0c62493ee2bcba7801144136e010cea1bc91a9cd Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Sat, 9 Mar 2024 06:25:27 +0800 Subject: [PATCH 0395/1318] Create README.md --- scala-test-2/README.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 scala-test-2/README.md diff --git a/scala-test-2/README.md b/scala-test-2/README.md new file mode 100644 index 000000000..5cc64c586 --- /dev/null +++ b/scala-test-2/README.md @@ -0,0 +1,2 @@ +### Relevant Articles: +- [Comparing Double Values in ScalaTest](https://www.baeldung.com/scala/scalatest-compare-double-values) From a62976b14831569b5b2bd049f9f1ca89e97f657c Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Sat, 9 Mar 2024 06:27:19 +0800 Subject: [PATCH 0396/1318] Update README.md --- cats-effects/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/cats-effects/README.md b/cats-effects/README.md index 8c485c217..58bd956f1 100644 --- a/cats-effects/README.md +++ b/cats-effects/README.md @@ -6,3 +6,4 @@ - [Resource Handling in Cats Effect](https://www.baeldung.com/scala/cats-effect-resource-handling) - [Difference Between flatMap(), flatTap(), evalMap() and evalTap() in Cats Effect](https://www.baeldung.com/scala/cats-effect) - [Error Handling in Cats Effect](https://www.baeldung.com/scala/cats-effect-error-handling) +- [Cancellation in Cats Effect](https://www.baeldung.com/scala/cats-effect-cancellation) From 925a52332d70ccc068aea35d9a84230d9e8fa5c9 Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Sat, 9 Mar 2024 06:32:25 +0800 Subject: [PATCH 0397/1318] Update README.md --- scala-core-modules/scala-core-9/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-core-modules/scala-core-9/README.md b/scala-core-modules/scala-core-9/README.md index a55bdb5eb..a21ede3e7 100644 --- a/scala-core-modules/scala-core-9/README.md +++ b/scala-core-modules/scala-core-9/README.md @@ -1,2 +1,3 @@ ### Relevant Articles - [Check if a Collection Is Sorted in Scala](https://www.baeldung.com/scala/check-collection-sorted) +- [Find Factorial of a Number in Scala](https://www.baeldung.com/scala/find-factorial) From e252b8d6e9cd2974594877e50bf2f19368bc02ed Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Wed, 13 Mar 2024 15:08:12 +0800 Subject: [PATCH 0398/1318] Create README.md --- zio-2/README.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 zio-2/README.md diff --git a/zio-2/README.md b/zio-2/README.md new file mode 100644 index 000000000..63bec4da4 --- /dev/null +++ b/zio-2/README.md @@ -0,0 +1,2 @@ +### Relevant Articles: +- [Test Aspects in ZIO Test](https://www.baeldung.com/scala/zio-test-aspects) From 2575923e40a4458a894f64b833429d8cdfcda844 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 14 Mar 2024 00:14:44 +0000 Subject: [PATCH 0399/1318] Update aws-java-sdk-s3 from 1.12.674 to 1.12.679 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index bfd5b873f..293fcd647 100644 --- a/build.sbt +++ b/build.sbt @@ -467,7 +467,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "software.amazon.awssdk" % "s3" % "2.24.13" ), libraryDependencies ++= Seq( - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.674" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.679" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest ), From 93b7dcf78b9c6664c267a8c6b2ac7032968e951e Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 14 Mar 2024 00:14:54 +0000 Subject: [PATCH 0400/1318] Update jackson-databind from 2.16.1 to 2.16.2 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index bfd5b873f..06636217b 100644 --- a/build.sbt +++ b/build.sbt @@ -482,7 +482,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) val spireVersion = "0.18.0" val kafkaVersion = "7.6.0-ce" val pureconfigVersion = "0.17.6" -val jackSonVersion = "2.16.1" +val jackSonVersion = "2.16.2" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" From 47d0422d9164ecf527320ba763ca48630965ec00 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 14 Mar 2024 00:15:13 +0000 Subject: [PATCH 0401/1318] Update jackson-datatype-jsr310 from 2.16.1 to 2.16.2 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index bfd5b873f..06636217b 100644 --- a/build.sbt +++ b/build.sbt @@ -482,7 +482,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) val spireVersion = "0.18.0" val kafkaVersion = "7.6.0-ce" val pureconfigVersion = "0.17.6" -val jackSonVersion = "2.16.1" +val jackSonVersion = "2.16.2" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" From 8ec705b38ea7ee7f2d0a29bc82fb7079c91733c5 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 14 Mar 2024 00:15:31 +0000 Subject: [PATCH 0402/1318] Update jackson-module-scala from 2.16.1 to 2.16.2 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index bfd5b873f..06636217b 100644 --- a/build.sbt +++ b/build.sbt @@ -482,7 +482,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) val spireVersion = "0.18.0" val kafkaVersion = "7.6.0-ce" val pureconfigVersion = "0.17.6" -val jackSonVersion = "2.16.1" +val jackSonVersion = "2.16.2" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" From b0a9d98b2f94405b3999f5328eb814f2fe47ae02 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 14 Mar 2024 00:15:48 +0000 Subject: [PATCH 0403/1318] Update slick from 3.4.1 to 3.5.0 --- build.sbt | 2 +- scalatra/build.sbt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index bfd5b873f..c809a111c 100644 --- a/build.sbt +++ b/build.sbt @@ -310,7 +310,7 @@ lazy val scala_akka_3 = (project in file("scala-akka-3")) ) val monocleVersion = "2.1.0" -val slickVersion = "3.4.1" +val slickVersion = "3.5.0" val shapelessVersion = "2.3.10" val scalazVersion = "7.3.8" val fs2Version = "3.9.4" diff --git a/scalatra/build.sbt b/scalatra/build.sbt index e19ffbecd..46baf9b84 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -14,7 +14,7 @@ libraryDependencies ++= Seq( "org.scalatra" %% "scalatra-auth" % ScalatraVersion, "org.scalatra" %% "scalatra-json" % "2.8.4", "org.json4s" %% "json4s-jackson" % "4.0.7", - "com.typesafe.slick" %% "slick" % "3.4.1", + "com.typesafe.slick" %% "slick" % "3.5.0", "com.h2database" % "h2" % "2.1.214", "com.mchange" % "c3p0" % "0.10.0" ) From f09a18338dc176e8bf431d090959552870985091 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 14 Mar 2024 00:16:21 +0000 Subject: [PATCH 0404/1318] Update log4j-core from 2.23.0 to 2.23.1 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index bfd5b873f..3ff3bd0e6 100644 --- a/build.sbt +++ b/build.sbt @@ -424,7 +424,7 @@ lazy val scala_libraries_3 = (project in file("scala-libraries-3")) libraryDependencies += "com.softwaremill.retry" %% "retry" % "0.3.6", libraryDependencies ++= Seq( log4jApiScalaDep, - "org.apache.logging.log4j" % "log4j-core" % "2.23.0" % Runtime + "org.apache.logging.log4j" % "log4j-core" % "2.23.1" % Runtime ), libraryDependencies += osLibDep ) @@ -436,7 +436,7 @@ lazy val scala_libraries_os = (project in file("scala-libraries-os")) libraryDependencies ++= scalaTestDeps, libraryDependencies ++= Seq( log4jApiScalaDep, - "org.apache.logging.log4j" % "log4j-core" % "2.23.0" % Runtime + "org.apache.logging.log4j" % "log4j-core" % "2.23.1" % Runtime ), libraryDependencies += osLibDep ) From 647249f63eed9f2afdfa8e40ae9e3516faf7f544 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 14 Mar 2024 00:16:37 +0000 Subject: [PATCH 0405/1318] Update play-slick, play-slick-evolutions from 6.0.0 to 6.1.0 --- build.sbt | 2 +- play-scala/application-tests/build.sbt | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index bfd5b873f..256d1c42b 100644 --- a/build.sbt +++ b/build.sbt @@ -371,7 +371,7 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) enumeratumDep ), libraryDependencies ++= Seq( - "org.playframework" %% "play-slick" % "6.0.0", + "org.playframework" %% "play-slick" % "6.1.0", "org.postgresql" % "postgresql" % "42.7.2" ), libraryDependencies ++= Seq( diff --git a/play-scala/application-tests/build.sbt b/play-scala/application-tests/build.sbt index 49d6e35e3..06aa7fcc9 100644 --- a/play-scala/application-tests/build.sbt +++ b/play-scala/application-tests/build.sbt @@ -10,7 +10,7 @@ scalaVersion := ScalaVersions.scala2Version libraryDependencies += guice libraryDependencies += "com.h2database" % "h2" % "1.4.200" libraryDependencies += "org.postgresql" % "postgresql" % "42.2.28" -libraryDependencies += "org.playframework" %% "play-slick" % "6.0.0" -libraryDependencies += "org.playframework" %% "play-slick-evolutions" % "6.0.0" +libraryDependencies += "org.playframework" %% "play-slick" % "6.1.0" +libraryDependencies += "org.playframework" %% "play-slick-evolutions" % "6.1.0" libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % Test libraryDependencies += "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % Test From 487b04bee7d050258b79f94abb9b9f170f6d5109 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 14 Mar 2024 00:16:51 +0000 Subject: [PATCH 0406/1318] Update postgresql from 42.2.28 to 42.2.29 --- play-scala/application-tests/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/play-scala/application-tests/build.sbt b/play-scala/application-tests/build.sbt index 49d6e35e3..319cd7336 100644 --- a/play-scala/application-tests/build.sbt +++ b/play-scala/application-tests/build.sbt @@ -9,7 +9,7 @@ scalaVersion := ScalaVersions.scala2Version libraryDependencies += guice libraryDependencies += "com.h2database" % "h2" % "1.4.200" -libraryDependencies += "org.postgresql" % "postgresql" % "42.2.28" +libraryDependencies += "org.postgresql" % "postgresql" % "42.2.29" libraryDependencies += "org.playframework" %% "play-slick" % "6.0.0" libraryDependencies += "org.playframework" %% "play-slick-evolutions" % "6.0.0" libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % Test From f4c11135ec8c18f348ae199a7670a539eba76b48 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 14 Mar 2024 00:17:08 +0000 Subject: [PATCH 0407/1318] Update s3 from 2.24.13 to 2.25.9 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index bfd5b873f..60b20ddce 100644 --- a/build.sbt +++ b/build.sbt @@ -464,7 +464,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "org.testcontainers" % "pulsar" % "1.19.7" % IntegrationTest ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "s3" % "2.24.13" + "software.amazon.awssdk" % "s3" % "2.25.9" ), libraryDependencies ++= Seq( "com.amazonaws" % "aws-java-sdk-s3" % "1.12.674" % IntegrationTest, From 97fd5d439bddb6d41842211ab540ff8f714c9af0 Mon Sep 17 00:00:00 2001 From: Oscar Mauricio Forero Carrillo Date: Thu, 14 Mar 2024 13:53:17 +0100 Subject: [PATCH 0408/1318] SCALA-254: Companion code for the article (#1214) --- scala-with-maven/hello-rest/pom.xml | 43 ++++++++++++ .../hello-rest/src/main/scala/HelloRest.scala | 7 ++ scala-with-maven/hello-world/pom.xml | 70 +++++++++++++++++++ .../src/main/scala/HelloWorld.scala | 9 +++ .../src/tests/scala/HelloWorldSpec.scala | 12 ++++ scala-with-maven/pom.xml | 37 ++++++++++ 6 files changed, 178 insertions(+) create mode 100644 scala-with-maven/hello-rest/pom.xml create mode 100644 scala-with-maven/hello-rest/src/main/scala/HelloRest.scala create mode 100644 scala-with-maven/hello-world/pom.xml create mode 100644 scala-with-maven/hello-world/src/main/scala/HelloWorld.scala create mode 100644 scala-with-maven/hello-world/src/tests/scala/HelloWorldSpec.scala create mode 100644 scala-with-maven/pom.xml diff --git a/scala-with-maven/hello-rest/pom.xml b/scala-with-maven/hello-rest/pom.xml new file mode 100644 index 000000000..66fc5785a --- /dev/null +++ b/scala-with-maven/hello-rest/pom.xml @@ -0,0 +1,43 @@ + + + 4.0.0 + + + com.baeldung + scala-with-maven + ${revision} + ../pom.xml + + + hello-rest + + + + + org.scala-lang + scala3-library_3 + + + org.scalatest + scalatest_3 + + + org.typelevel + cats-effect_3 + 3.5.4 + + + org.http4s + http4s-blaze-server_3 + 1.0.0-M39 + + + org.http4s + http4s-dsl_3 + 1.0.0-M41 + + + + \ No newline at end of file diff --git a/scala-with-maven/hello-rest/src/main/scala/HelloRest.scala b/scala-with-maven/hello-rest/src/main/scala/HelloRest.scala new file mode 100644 index 000000000..d81051568 --- /dev/null +++ b/scala-with-maven/hello-rest/src/main/scala/HelloRest.scala @@ -0,0 +1,7 @@ +import org.http4s.HttpRoutes +import org.http4s.dsl.io._ +import cats.effect._ + +val helloWorldService = HttpRoutes.of[IO] { + case GET -> Root / "hello" => Ok("Hello, World!") +} \ No newline at end of file diff --git a/scala-with-maven/hello-world/pom.xml b/scala-with-maven/hello-world/pom.xml new file mode 100644 index 000000000..dfd24de9a --- /dev/null +++ b/scala-with-maven/hello-world/pom.xml @@ -0,0 +1,70 @@ + + + 4.0.0 + + + com.baeldung + scala-with-maven + ${revision} + ../pom.xml + + + hello-world + + + + + org.scala-lang + scala3-library_3 + ${scala.version} + + + org.scalatest + scalatest_3 + 3.2.18 + test + + + + + src/main/scala + src/tests/scala + + + net.alchim31.maven + scala-maven-plugin + 4.8.1 + + incremental + ${scala.version} + + -Xlint:unchecked + -Xlint:deprecation + + + + + + compile + testCompile + + + + + + org.scalatest + scalatest-maven-plugin + 2.2.0 + + + + test + + + + + + + \ No newline at end of file diff --git a/scala-with-maven/hello-world/src/main/scala/HelloWorld.scala b/scala-with-maven/hello-world/src/main/scala/HelloWorld.scala new file mode 100644 index 000000000..d724412ee --- /dev/null +++ b/scala-with-maven/hello-world/src/main/scala/HelloWorld.scala @@ -0,0 +1,9 @@ +package com.baeldung.scalawithmaven + +object HelloWorld { + + def message: String = "Hello, World!" + + def main(args: Array[String]): Unit = println(message) + +} \ No newline at end of file diff --git a/scala-with-maven/hello-world/src/tests/scala/HelloWorldSpec.scala b/scala-with-maven/hello-world/src/tests/scala/HelloWorldSpec.scala new file mode 100644 index 000000000..9b9000580 --- /dev/null +++ b/scala-with-maven/hello-world/src/tests/scala/HelloWorldSpec.scala @@ -0,0 +1,12 @@ +package com.baeldung.scalawithmaven + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers + +class HelloWorldSpec extends AnyFlatSpec with Matchers { + + "The HelloWorld object" should "say hello" in { + val greeting = HelloWorld.message + greeting shouldEqual "Hello, World!" + } +} \ No newline at end of file diff --git a/scala-with-maven/pom.xml b/scala-with-maven/pom.xml new file mode 100644 index 000000000..01811476e --- /dev/null +++ b/scala-with-maven/pom.xml @@ -0,0 +1,37 @@ + + + 4.0.0 + + com.baeldung + scala-with-maven + ${revision} + pom + + + 1.0-SNAPSHOT + 3.4.0 + + + + + + org.scala-lang + scala3-library_3 + ${scala.version} + + + org.scalatest + scalatest_3 + 3.2.18 + test + + + + + + hello-world + hello-rest + + \ No newline at end of file From 953630c1c1db173903e4e8f61a960354303da55d Mon Sep 17 00:00:00 2001 From: collaboratewithakash <38683470+collaboratewithakash@users.noreply.github.com> Date: Fri, 15 Mar 2024 13:17:49 +0530 Subject: [PATCH 0409/1318] backlink removed --- scala-core-modules/scala-core-3/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/scala-core-modules/scala-core-3/README.md b/scala-core-modules/scala-core-3/README.md index 2f260ad4b..08bc7b0f7 100644 --- a/scala-core-modules/scala-core-3/README.md +++ b/scala-core-modules/scala-core-3/README.md @@ -3,7 +3,6 @@ - [Access Modifiers in Scala](https://www.baeldung.com/scala/access-modifiers) - [Guide to Data Types in Scala](https://www.baeldung.com/scala/data-types) - [Companion Objects in Scala](https://www.baeldung.com/scala/companion-objects) -- [Preserving Type Information at Runtime in Scala](https://www.baeldung.com/scala/type-information-at-runtime) - [Synchronous Handling of Futures](https://www.baeldung.com/scala/synchronous-handling-of-futures) - [The Option Type in Scala](https://www.baeldung.com/scala/option-type) - [Implicit Parameters in Scala](https://www.baeldung.com/scala/implicit-parameters) From 6e3fbc879f20b5efa9585833627a8836e951baf1 Mon Sep 17 00:00:00 2001 From: collaboratewithakash <38683470+collaboratewithakash@users.noreply.github.com> Date: Fri, 15 Mar 2024 13:19:43 +0530 Subject: [PATCH 0410/1318] backlink removed --- scala-core-modules/scala-core-8/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/scala-core-modules/scala-core-8/README.md b/scala-core-modules/scala-core-8/README.md index 31c1a4c70..8b2b05a01 100644 --- a/scala-core-modules/scala-core-8/README.md +++ b/scala-core-modules/scala-core-8/README.md @@ -5,7 +5,6 @@ - [Understanding the Differences: reduceLeft, reduceRight, foldLeft, foldRight, scanLeft, and scanRight in Scala](https://www.baeldung.com/scala/reduce-fold-scan-left-right) - [Different Ways to Reverse a Sequence in Scala](https://www.baeldung.com/scala/reverse-sequence) - [Check if a Number Is Magic Number in Scala](https://www.baeldung.com/scala/check-magic-number) -- [Guide to Scala Duration and FiniteDuration](https://www.baeldung.com/scala/duration-finiteduration) - [Transforming a List of Futures Ignoring Failures](https://www.baeldung.com/scala/transform-list-futures-ignore-failures) - [Difference Between Braces and Parentheses in Scala](https://www.baeldung.com/scala/braces-vs-parentheses) - [Check if a Number Is Prime in Scala](https://www.baeldung.com/scala/check-number-prime) From a7a41266ccf5770675dee916838feafc2682c94e Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sun, 17 Mar 2024 20:36:20 +0100 Subject: [PATCH 0411/1318] Added sample code for sentence capialization --- .../strings/capitalize/CapitalizeWords.scala | 8 ++++++ .../capitalize/CapitalizeWordsUnitTest.scala | 26 +++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 scala-strings/src/main/scala/com/baeldung/scala/strings/capitalize/CapitalizeWords.scala create mode 100644 scala-strings/src/test/scala/com/baeldung/scala/strings/capitalize/CapitalizeWordsUnitTest.scala diff --git a/scala-strings/src/main/scala/com/baeldung/scala/strings/capitalize/CapitalizeWords.scala b/scala-strings/src/main/scala/com/baeldung/scala/strings/capitalize/CapitalizeWords.scala new file mode 100644 index 000000000..29ac19e76 --- /dev/null +++ b/scala-strings/src/main/scala/com/baeldung/scala/strings/capitalize/CapitalizeWords.scala @@ -0,0 +1,8 @@ +package com.baeldung.scala.strings.capitalize + +object CapitalizeWords { + + def capitalizeWords(sentence: String): String = { + sentence.split("\\s+").map(_.capitalize).mkString(" ") + } +} diff --git a/scala-strings/src/test/scala/com/baeldung/scala/strings/capitalize/CapitalizeWordsUnitTest.scala b/scala-strings/src/test/scala/com/baeldung/scala/strings/capitalize/CapitalizeWordsUnitTest.scala new file mode 100644 index 000000000..9e8a3c2de --- /dev/null +++ b/scala-strings/src/test/scala/com/baeldung/scala/strings/capitalize/CapitalizeWordsUnitTest.scala @@ -0,0 +1,26 @@ +package com.baeldung.scala.strings.capitalize + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers +import org.scalatest.prop.TableDrivenPropertyChecks + +class CapitalizeWordsUnitTest + extends AnyFlatSpec + with Matchers + with TableDrivenPropertyChecks { + + val table = Table( + ("Input", "Expected"), + ("This is scala 3", "This Is Scala 3"), + ("hello world", "Hello World"), + ("baeldung articles", "Baeldung Articles"), + (" ", ""), + ("1000", "1000") + ) + it should "capitalize every words of a sentence" in { + forAll(table) { (input, expected) => + CapitalizeWords.capitalizeWords(input) shouldBe expected + } + } + +} From 10261c5df5a1f0387491cc1be63ab3200d570447 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Mon, 18 Mar 2024 19:16:00 +0100 Subject: [PATCH 0412/1318] Added more test --- .../scala/strings/capitalize/CapitalizeWords.scala | 11 +++++++++++ .../capitalize/CapitalizeWordsUnitTest.scala | 13 +++++++++++++ 2 files changed, 24 insertions(+) diff --git a/scala-strings/src/main/scala/com/baeldung/scala/strings/capitalize/CapitalizeWords.scala b/scala-strings/src/main/scala/com/baeldung/scala/strings/capitalize/CapitalizeWords.scala index 29ac19e76..91e191f3f 100644 --- a/scala-strings/src/main/scala/com/baeldung/scala/strings/capitalize/CapitalizeWords.scala +++ b/scala-strings/src/main/scala/com/baeldung/scala/strings/capitalize/CapitalizeWords.scala @@ -5,4 +5,15 @@ object CapitalizeWords { def capitalizeWords(sentence: String): String = { sentence.split("\\s+").map(_.capitalize).mkString(" ") } + + def capitalizeTitleCase(sentence: String): String = { + val exclusions = Set("is", "in", "to", "a", "an", "the") + sentence + .split("\\s+") + .zipWithIndex + .map { (word, index) => + if (index != 0 && exclusions.contains(word.toLowerCase)) word else word.capitalize + } + .mkString(" ") + } } diff --git a/scala-strings/src/test/scala/com/baeldung/scala/strings/capitalize/CapitalizeWordsUnitTest.scala b/scala-strings/src/test/scala/com/baeldung/scala/strings/capitalize/CapitalizeWordsUnitTest.scala index 9e8a3c2de..de06bcfb4 100644 --- a/scala-strings/src/test/scala/com/baeldung/scala/strings/capitalize/CapitalizeWordsUnitTest.scala +++ b/scala-strings/src/test/scala/com/baeldung/scala/strings/capitalize/CapitalizeWordsUnitTest.scala @@ -23,4 +23,17 @@ class CapitalizeWordsUnitTest } } + val tableWithExclusions = Table( + ("Input", "Expected"), + ("This is scala 3", "This is Scala 3"), + ("baeldung articles", "Baeldung Articles"), + (" ", ""), + ("the quick brown fox jumps over the lazy Dog", "The Quick Brown Fox Jumps Over the Lazy Dog") + ) + it should "capitalize every words of a sentence with exclusion" in { + forAll(tableWithExclusions) { (input, expected) => + CapitalizeWords.capitalizeTitleCase(input) shouldBe expected + } + } + } From 044eb0973c2c5abf61cbffce38e974f1a2884856 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 19 Mar 2024 08:24:37 +0100 Subject: [PATCH 0413/1318] typo fix --- .../scala/strings/capitalize/CapitalizeWordsUnitTest.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-strings/src/test/scala/com/baeldung/scala/strings/capitalize/CapitalizeWordsUnitTest.scala b/scala-strings/src/test/scala/com/baeldung/scala/strings/capitalize/CapitalizeWordsUnitTest.scala index de06bcfb4..fcad156b6 100644 --- a/scala-strings/src/test/scala/com/baeldung/scala/strings/capitalize/CapitalizeWordsUnitTest.scala +++ b/scala-strings/src/test/scala/com/baeldung/scala/strings/capitalize/CapitalizeWordsUnitTest.scala @@ -30,7 +30,7 @@ class CapitalizeWordsUnitTest (" ", ""), ("the quick brown fox jumps over the lazy Dog", "The Quick Brown Fox Jumps Over the Lazy Dog") ) - it should "capitalize every words of a sentence with exclusion" in { + it should "capitalize every word of a sentence with exclusion" in { forAll(tableWithExclusions) { (input, expected) => CapitalizeWords.capitalizeTitleCase(input) shouldBe expected } From 64e57a7f26e51c166885a7681d30396d745aa81d Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 19 Mar 2024 23:04:01 +0100 Subject: [PATCH 0414/1318] Added codeto check if a number is power of 2 --- build.sbt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 3930117af..c31c4e652 100644 --- a/build.sbt +++ b/build.sbt @@ -116,7 +116,8 @@ lazy val scala_core_9 = (project in file("scala-core-modules/scala-core-9")) .settings( name := "scala-core-9", libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version + scalaVersion := scala3Version, + libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test ) lazy val scala_core_io = (project in file("scala-core-modules/scala-core-io")) From db4bbeba6accdcc95bc22b04387ba86ac136fc61 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 19 Mar 2024 23:05:56 +0100 Subject: [PATCH 0415/1318] scalafix --- .../baeldung/scala/strings/capitalize/CapitalizeWords.scala | 3 ++- .../scala/strings/capitalize/CapitalizeWordsUnitTest.scala | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/scala-strings/src/main/scala/com/baeldung/scala/strings/capitalize/CapitalizeWords.scala b/scala-strings/src/main/scala/com/baeldung/scala/strings/capitalize/CapitalizeWords.scala index 91e191f3f..c0f1d27dc 100644 --- a/scala-strings/src/main/scala/com/baeldung/scala/strings/capitalize/CapitalizeWords.scala +++ b/scala-strings/src/main/scala/com/baeldung/scala/strings/capitalize/CapitalizeWords.scala @@ -12,7 +12,8 @@ object CapitalizeWords { .split("\\s+") .zipWithIndex .map { (word, index) => - if (index != 0 && exclusions.contains(word.toLowerCase)) word else word.capitalize + if (index != 0 && exclusions.contains(word.toLowerCase)) word + else word.capitalize } .mkString(" ") } diff --git a/scala-strings/src/test/scala/com/baeldung/scala/strings/capitalize/CapitalizeWordsUnitTest.scala b/scala-strings/src/test/scala/com/baeldung/scala/strings/capitalize/CapitalizeWordsUnitTest.scala index fcad156b6..b0e6de63b 100644 --- a/scala-strings/src/test/scala/com/baeldung/scala/strings/capitalize/CapitalizeWordsUnitTest.scala +++ b/scala-strings/src/test/scala/com/baeldung/scala/strings/capitalize/CapitalizeWordsUnitTest.scala @@ -28,7 +28,10 @@ class CapitalizeWordsUnitTest ("This is scala 3", "This is Scala 3"), ("baeldung articles", "Baeldung Articles"), (" ", ""), - ("the quick brown fox jumps over the lazy Dog", "The Quick Brown Fox Jumps Over the Lazy Dog") + ( + "the quick brown fox jumps over the lazy Dog", + "The Quick Brown Fox Jumps Over the Lazy Dog" + ) ) it should "capitalize every word of a sentence with exclusion" in { forAll(tableWithExclusions) { (input, expected) => From c7e9133ba99bdc889011bbfa5fbe00ce74e3bea0 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 19 Mar 2024 23:06:33 +0100 Subject: [PATCH 0416/1318] Added codeto check if a number is power of 2 --- .../baeldung/scala/powerof2/PowerOfTwo.scala | 25 ++++++++++ .../scala/powerof2/PowerOfTwoUnitTest.scala | 47 +++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/powerof2/PowerOfTwo.scala create mode 100644 scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/powerof2/PowerOfTwoUnitTest.scala diff --git a/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/powerof2/PowerOfTwo.scala b/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/powerof2/PowerOfTwo.scala new file mode 100644 index 000000000..9bbd48fcb --- /dev/null +++ b/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/powerof2/PowerOfTwo.scala @@ -0,0 +1,25 @@ +package com.baeldung.scala.powerof2 + +import scala.annotation.tailrec + +object PowerOfTwo { + + def isPowerOfTwoByDivision(num: Long): Boolean = { + @tailrec + def isPowerRec(n: Long): Boolean = { + if (n == 1) true + else if (n % 2 == 0) isPowerRec(n / 2) + else false + } + num > 0 && isPowerRec(num) + } + + def isPowerOfTwoByCountingOnes(num: Long): Boolean = { + num > 0 && num.toBinaryString.count(_ == '1') == 1 + } + + def isPowerOfTwoByBitwiseAnd(num: Long): Boolean = { + num > 0 && (num & (num - 1)) == 0 + } + +} diff --git a/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/powerof2/PowerOfTwoUnitTest.scala b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/powerof2/PowerOfTwoUnitTest.scala new file mode 100644 index 000000000..d131b69e3 --- /dev/null +++ b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/powerof2/PowerOfTwoUnitTest.scala @@ -0,0 +1,47 @@ +package com.baeldung.scala.powerof2 + +import org.scalacheck.Gen +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers +import org.scalatestplus.scalacheck.ScalaCheckPropertyChecks + +class PowerOfTwoUnitTest + extends AnyFlatSpec + with Matchers + with ScalaCheckPropertyChecks { + + private val powerOfTwoFunctions = Seq( + ("Division", PowerOfTwo.isPowerOfTwoByDivision), + ("Counting Ones", PowerOfTwo.isPowerOfTwoByCountingOnes), + ("Bitwise AND", PowerOfTwo.isPowerOfTwoByBitwiseAnd) + ) + + powerOfTwoFunctions.foreach { (desc, fn) => + it should s"[$desc] return true for a number that is power of 2" in { + val powersOfTwo: Gen[Long] = + Gen.choose(0, 62).map(n => Math.pow(2, n).toLong) + forAll(powersOfTwo) { num => + fn(num) shouldBe true + } + } + + it should s"[$desc] return false for a number that is NOT a power of 2" in { + val powersOfTwo: Gen[Long] = + Gen.choose(0, 62).map(n => Math.pow(2, n).toLong) + val notPowerOf2 = Gen + .choose(0L, Long.MaxValue) + .suchThat(n => !powersOfTwo.sample.contains(n)) + forAll(notPowerOf2) { num => + fn(num) shouldBe false + } + } + + it should s"[$desc] return false for any negative numbers" in { + val negativeNumbers = Gen.choose(Long.MinValue, 0L) + forAll(negativeNumbers) { num => + fn(num) shouldBe false + } + } + } + +} From cd32dfb2a6c6ca2e314f22fc408203925f83c991 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 20 Mar 2024 19:19:10 +0100 Subject: [PATCH 0417/1318] Added one more method --- .../scala/strings/capitalize/CapitalizeWords.scala | 8 ++++++++ .../capitalize/CapitalizeWordsUnitTest.scala | 14 ++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/scala-strings/src/main/scala/com/baeldung/scala/strings/capitalize/CapitalizeWords.scala b/scala-strings/src/main/scala/com/baeldung/scala/strings/capitalize/CapitalizeWords.scala index c0f1d27dc..2453f4e86 100644 --- a/scala-strings/src/main/scala/com/baeldung/scala/strings/capitalize/CapitalizeWords.scala +++ b/scala-strings/src/main/scala/com/baeldung/scala/strings/capitalize/CapitalizeWords.scala @@ -17,4 +17,12 @@ object CapitalizeWords { } .mkString(" ") } + + def capitalizeWordsPreserveSpaces(sentence: String): String = { + sentence.zipWithIndex.map { (char, index) => + if(index == 0) char.toUpper + else if(sentence.charAt(index-1).isSpaceChar) char.toUpper + else char + }.mkString + } } diff --git a/scala-strings/src/test/scala/com/baeldung/scala/strings/capitalize/CapitalizeWordsUnitTest.scala b/scala-strings/src/test/scala/com/baeldung/scala/strings/capitalize/CapitalizeWordsUnitTest.scala index b0e6de63b..520b1eb58 100644 --- a/scala-strings/src/test/scala/com/baeldung/scala/strings/capitalize/CapitalizeWordsUnitTest.scala +++ b/scala-strings/src/test/scala/com/baeldung/scala/strings/capitalize/CapitalizeWordsUnitTest.scala @@ -39,4 +39,18 @@ class CapitalizeWordsUnitTest } } + val tablePreservingSpace = Table( + ("Input", "Expected"), + ("This is scala 3", "This Is Scala 3"), + ("hello world", "Hello World"), + ("baeldung articles", "Baeldung Articles"), + (" ", " "), + ("1000", "1000") + ) + it should "capitalize every words of a sentence preserving the spaces" in { + forAll(tablePreservingSpace) { (input, expected) => + CapitalizeWords.capitalizeWordsPreserveSpaces(input) shouldBe expected + } + } + } From 38c3dbdac4ae7c7120e951a69960e0e6b46bcbd5 Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Thu, 21 Mar 2024 23:53:11 +0800 Subject: [PATCH 0418/1318] Update README.md --- scala-core-modules/scala-core/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-core-modules/scala-core/README.md b/scala-core-modules/scala-core/README.md index 9676be071..53249ab46 100644 --- a/scala-core-modules/scala-core/README.md +++ b/scala-core-modules/scala-core/README.md @@ -12,3 +12,4 @@ This module contains articles about Scala's core features - [Introduction to Traits in Scala](https://www.baeldung.com/scala/traits) - [Sealed Keyword in Scala](https://www.baeldung.com/scala/sealed-keyword) - [Pattern Matching in Scala](https://www.baeldung.com/scala/pattern-matching) +- [Using java.lang.class Objects in Scala](https://www.baeldung.com/scala/java-lang-class) From 9f6eee16f137731c59bc19187447a9ff0f38ca6e Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Thu, 21 Mar 2024 22:16:25 +0100 Subject: [PATCH 0419/1318] Added one more method to check power of 2 --- .../main/scala/com/baeldung/scala/powerof2/PowerOfTwo.scala | 4 ++++ .../com/baeldung/scala/powerof2/PowerOfTwoUnitTest.scala | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/powerof2/PowerOfTwo.scala b/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/powerof2/PowerOfTwo.scala index 9bbd48fcb..0980bca65 100644 --- a/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/powerof2/PowerOfTwo.scala +++ b/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/powerof2/PowerOfTwo.scala @@ -22,4 +22,8 @@ object PowerOfTwo { num > 0 && (num & (num - 1)) == 0 } + def isPowerOfTwoByLazyList(num: Long): Boolean = { + num > 0 && LazyList.iterate(num)(_ / 2).takeWhile(_ > 1).forall(_ % 2 == 0) + } + } diff --git a/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/powerof2/PowerOfTwoUnitTest.scala b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/powerof2/PowerOfTwoUnitTest.scala index d131b69e3..1043b27e7 100644 --- a/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/powerof2/PowerOfTwoUnitTest.scala +++ b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/powerof2/PowerOfTwoUnitTest.scala @@ -13,7 +13,8 @@ class PowerOfTwoUnitTest private val powerOfTwoFunctions = Seq( ("Division", PowerOfTwo.isPowerOfTwoByDivision), ("Counting Ones", PowerOfTwo.isPowerOfTwoByCountingOnes), - ("Bitwise AND", PowerOfTwo.isPowerOfTwoByBitwiseAnd) + ("Bitwise AND", PowerOfTwo.isPowerOfTwoByBitwiseAnd), + ("LazyList", PowerOfTwo.isPowerOfTwoByLazyList) ) powerOfTwoFunctions.foreach { (desc, fn) => From de5e2e8392c061e82eaddea49761fa5e2b83f1a9 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Thu, 21 Mar 2024 22:26:51 +0100 Subject: [PATCH 0420/1318] scalafmt --- .../baeldung/scala/strings/capitalize/CapitalizeWords.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scala-strings/src/main/scala/com/baeldung/scala/strings/capitalize/CapitalizeWords.scala b/scala-strings/src/main/scala/com/baeldung/scala/strings/capitalize/CapitalizeWords.scala index 2453f4e86..d83d1b0ad 100644 --- a/scala-strings/src/main/scala/com/baeldung/scala/strings/capitalize/CapitalizeWords.scala +++ b/scala-strings/src/main/scala/com/baeldung/scala/strings/capitalize/CapitalizeWords.scala @@ -20,8 +20,8 @@ object CapitalizeWords { def capitalizeWordsPreserveSpaces(sentence: String): String = { sentence.zipWithIndex.map { (char, index) => - if(index == 0) char.toUpper - else if(sentence.charAt(index-1).isSpaceChar) char.toUpper + if (index == 0) char.toUpper + else if (sentence.charAt(index - 1).isSpaceChar) char.toUpper else char }.mkString } From 98da3745f8df7e78bbd628243311c29fa2ce8733 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 22 Mar 2024 00:13:10 +0000 Subject: [PATCH 0421/1318] Update fs2-core, fs2-io from 3.9.4 to 3.10.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 3930117af..d4554e7b2 100644 --- a/build.sbt +++ b/build.sbt @@ -313,7 +313,7 @@ val monocleVersion = "2.1.0" val slickVersion = "3.5.0" val shapelessVersion = "2.3.10" val scalazVersion = "7.3.8" -val fs2Version = "3.9.4" +val fs2Version = "3.10.0" val reactiveMongo = "1.0.10" lazy val scala_libraries = (project in file("scala-libraries")) From 86c8b8d84a1146f40cc6591406b226b193067e63 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 22 Mar 2024 00:13:26 +0000 Subject: [PATCH 0422/1318] Update aws-java-sdk-s3 from 1.12.679 to 1.12.685 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 3930117af..f554d81df 100644 --- a/build.sbt +++ b/build.sbt @@ -467,7 +467,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "software.amazon.awssdk" % "s3" % "2.25.9" ), libraryDependencies ++= Seq( - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.679" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.685" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest ), From 9f5f8d67e4348816e0f753145fc12cdbb6ab1404 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 22 Mar 2024 00:13:36 +0000 Subject: [PATCH 0423/1318] Update jackson-databind from 2.16.2 to 2.17.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 3930117af..91f9f4d45 100644 --- a/build.sbt +++ b/build.sbt @@ -482,7 +482,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) val spireVersion = "0.18.0" val kafkaVersion = "7.6.0-ce" val pureconfigVersion = "0.17.6" -val jackSonVersion = "2.16.2" +val jackSonVersion = "2.17.0" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" From d3e11c295f6a8d1d4b193280658c8347da48620b Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 22 Mar 2024 00:13:56 +0000 Subject: [PATCH 0424/1318] Update jackson-datatype-jsr310 from 2.16.2 to 2.17.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 3930117af..91f9f4d45 100644 --- a/build.sbt +++ b/build.sbt @@ -482,7 +482,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) val spireVersion = "0.18.0" val kafkaVersion = "7.6.0-ce" val pureconfigVersion = "0.17.6" -val jackSonVersion = "2.16.2" +val jackSonVersion = "2.17.0" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" From 334e9254ab7cbb5e6a64261f216bd5dc6e666de0 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 22 Mar 2024 00:14:13 +0000 Subject: [PATCH 0425/1318] Update jackson-module-scala from 2.16.2 to 2.17.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 3930117af..91f9f4d45 100644 --- a/build.sbt +++ b/build.sbt @@ -482,7 +482,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) val spireVersion = "0.18.0" val kafkaVersion = "7.6.0-ce" val pureconfigVersion = "0.17.6" -val jackSonVersion = "2.16.2" +val jackSonVersion = "2.17.0" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" From 6759d346ce8ceacd0b58492388b3601c93ccdc02 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 22 Mar 2024 00:14:30 +0000 Subject: [PATCH 0426/1318] Update zio-kafka from 2.7.3 to 2.7.4 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 3930117af..240549691 100644 --- a/build.sbt +++ b/build.sbt @@ -588,7 +588,7 @@ lazy val zio = (project in file("zio")) libraryDependencies += "dev.zio" %% "zio" % zioVersion, libraryDependencies += "dev.zio" %% "zio-streams" % zioVersion, libraryDependencies += zioTestSbt, - libraryDependencies += "dev.zio" %% "zio-kafka" % "2.7.3", + libraryDependencies += "dev.zio" %% "zio-kafka" % "2.7.4", libraryDependencies += zioJsonDep, testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework") ) From c9709401fff3597fc36479116deb040e93c91ba5 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 22 Mar 2024 00:14:47 +0000 Subject: [PATCH 0427/1318] Update quill-jdbc-zio, quill-zio from 4.8.1 to 4.8.3 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 3930117af..4feb76a0e 100644 --- a/build.sbt +++ b/build.sbt @@ -608,8 +608,8 @@ lazy val zio3 = (project in file("zio3")) libraryDependencies ++= Seq( zioJsonDep, "dev.zio" %% "zio-http" % "3.0.0-RC2", - "io.getquill" %% "quill-zio" % "4.8.1", - "io.getquill" %% "quill-jdbc-zio" % "4.8.1", + "io.getquill" %% "quill-zio" % "4.8.3", + "io.getquill" %% "quill-jdbc-zio" % "4.8.3", "com.h2database" % "h2" % "2.2.220" ), libraryDependencies ++= Seq( From 36d38e0f70c47dc039f24d108c45d482ca86e7ce Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 22 Mar 2024 00:15:04 +0000 Subject: [PATCH 0428/1318] Update postgresql from 42.7.2 to 42.7.3 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 3930117af..0f2a10cd0 100644 --- a/build.sbt +++ b/build.sbt @@ -372,7 +372,7 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) ), libraryDependencies ++= Seq( "org.playframework" %% "play-slick" % "6.1.0", - "org.postgresql" % "postgresql" % "42.7.2" + "org.postgresql" % "postgresql" % "42.7.3" ), libraryDependencies ++= Seq( "io.monix" %% "monix" % monixVersion From 3f6fbe1a96a80840067f428d9ab7ac1caf33f1eb Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 22 Mar 2024 00:15:22 +0000 Subject: [PATCH 0429/1318] Update scallop from 5.0.1 to 5.1.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 3930117af..800e52f38 100644 --- a/build.sbt +++ b/build.sbt @@ -61,7 +61,7 @@ lazy val scala2_core = (project in file("scala-core-modules/scala2-core")) libraryDependencies += scalaReflection, libraryDependencies += scalaXmlDep, libraryDependencies += "com.github.scopt" %% "scopt" % "4.1.0", - libraryDependencies += "org.rogach" %% "scallop" % "5.0.1", + libraryDependencies += "org.rogach" %% "scallop" % "5.1.0", libraryDependencies += "org.backuity.clist" %% "clist-core" % "3.5.1", libraryDependencies += "org.backuity.clist" %% "clist-macros" % "3.5.1" % "provided", libraryDependencies += "args4j" % "args4j" % "2.37", From 48e2e138b2fd664a9d65a04e2354a0ae774abc1c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 22 Mar 2024 00:15:36 +0000 Subject: [PATCH 0430/1318] Update sbt-scalajs from 1.15.0 to 1.16.0 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index ec90e0717..5864ab14d 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,7 +1,7 @@ addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.2") addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.4.17") -addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.15.0") +addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.16.0") addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.2.1") libraryDependencies += "ai.kien" %% "python-native-libs" % "0.2.4" From 5e1e7b6d9c123d6c1a5fe10985fdf9668a072274 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 22 Mar 2024 00:15:52 +0000 Subject: [PATCH 0431/1318] Update s3 from 2.25.9 to 2.25.15 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 3930117af..8de4cc8dc 100644 --- a/build.sbt +++ b/build.sbt @@ -464,7 +464,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) "org.testcontainers" % "pulsar" % "1.19.7" % IntegrationTest ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "s3" % "2.25.9" + "software.amazon.awssdk" % "s3" % "2.25.15" ), libraryDependencies ++= Seq( "com.amazonaws" % "aws-java-sdk-s3" % "1.12.679" % IntegrationTest, From 5aaa51254f3f06fe518c5a2f7f80e22ebe5c2437 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Mon, 25 Mar 2024 18:32:29 +0100 Subject: [PATCH 0432/1318] Initial refactor of scala-libraries modules --- build.sbt | 67 ++++++--- scala-akka-3/README.md | 4 + .../scala/typedactors/AkkaTyped.scala | 0 .../baeldung/scala}/akka/TestService.scala | 4 +- .../com/baeldung/scala}/akka/Tests.scala | 2 +- scala-libraries-2/README.md | 2 - scala-libraries-3/README.md | 2 - scala-libraries-4/README.md | 2 - scala-libraries-fp/README.md | 11 ++ .../src/main}/scala/cats/Area.scala | 0 .../src/main}/scala/cats/AreaInstances.scala | 0 .../src/main}/scala/cats/ShapeArea.scala | 0 .../main}/scala/cats/ShapeAreaSyntax.scala | 0 .../scala/cats/monoids/CollectionMonoid.scala | 0 .../cats/semigroups/CollectionSemigroup.scala | 0 .../cats/semigroups/CustomIntSemigroup.scala | 0 .../scala/cats/semigroups/IntSemigroup.scala | 0 .../scala/cats/show/CustomInstance.scala | 0 .../scala/cats/show/InterfaceSyntax.scala | 0 .../src/main}/scala/cats/show/ShowImpl.scala | 0 .../datavalidation/DataValidation.scala | 129 ++++++++++++++++++ .../com/baeldung/scala/fs2/Fs2Examples.scala | 0 .../baeldung/scala/http4s/SimpleClient.scala | 2 +- .../baeldung/scala/http4s/SimpleServer.scala | 0 .../datavalidation/DataValidationSpec.scala | 0 .../scala/cats/ShapeAreaSyntaxUnitTest.scala | 0 .../scala/cats/ShapeAreaUnitTest.scala | 0 .../monoids/CollectionMonoidUnitTest.scala | 0 .../CollectionSemigroupUnitTest.scala | 0 .../CustomIntSemigroupUnitTest.scala | 0 .../semigroups/IntSemigroupUnitTest.scala | 0 .../cats/show/CustomInstanceUnitTest.scala | 0 .../cats/show/InterfaceSyntaxUnitTest.scala | 0 .../scala/cats/show/ShowImplUnitTest.scala | 0 .../cats/writer/WriterMonadUnitTest.scala | 0 .../baeldung/scala/fs2/FS2SampleTest.scala | 0 scala-libraries-persistence/README.md | 2 + .../src/main/resources/application.conf | 17 +++ .../com/baeldung/scala/slick/Connection.scala | 0 .../com/baeldung/scala/slick/Entities.scala | 0 .../baeldung/scala/slick/SlickTables.scala | 2 +- .../scala/slick/PlayerServiceUnitTest.scala | 0 scala-libraries-testing/README.md | 9 ++ .../scala/com/baeldung/munit/MUnitTest.scala | 0 .../com/baeldung/scala/utest/AsyncTest.scala | 0 .../scala/utest/BeforeAfterTest.scala | 0 .../scala/utest/ExceptionHandling.scala | 0 .../com/baeldung/scala/utest/NestedTest.scala | 0 .../com/baeldung/scala/utest/RetryTest.scala | 0 .../baeldung/scala/utest/RetryTestSuite.scala | 0 .../baeldung/scala/utest/SimpleUTest.scala | 0 .../scalacheck/CommandsUnitTest.scala | 0 .../scalacheck/GeneratorsUnitTest.scala | 0 .../scalacheck/PropertiesUnitTest.scala | 0 ...opertiesWithCustomParametersUnitTest.scala | 0 .../baeldung/scalacheck/model/Simple.scala | 0 .../scalacheck/model/SystemUnderTest.scala | 0 .../scalacheck/model/TrafficLight.scala | 0 .../scalamock/ScalamockFeaturesTest.scala | 0 .../scalamock/ScalamockFunctionTest.scala | 0 .../ScalamockMockingStylesTest.scala | 0 .../com/baeldung/scalamock/model/Models.scala | 0 .../baeldung/scalamock/service/Services.scala | 0 scala-libraries/README.md | 4 - scala3-libraries/README.md | 2 - 65 files changed, 225 insertions(+), 36 deletions(-) rename {scala-libraries/src/main/scala-2 => scala-akka-3/src/main/scala}/com/baeldung/scala/typedactors/AkkaTyped.scala (100%) rename {scala-libraries-2/src/test/scala-2/com/baeldung => scala-akka-3/src/test/scala/com/baeldung/scala}/akka/TestService.scala (93%) rename {scala-libraries-2/src/test/scala-2/com/baeldung => scala-akka-3/src/test/scala/com/baeldung/scala}/akka/Tests.scala (99%) create mode 100644 scala-libraries-fp/README.md rename {scala-libraries/src/main/scala-2/com/baeldung => scala-libraries-fp/src/main}/scala/cats/Area.scala (100%) rename {scala-libraries/src/main/scala-2/com/baeldung => scala-libraries-fp/src/main}/scala/cats/AreaInstances.scala (100%) rename {scala-libraries/src/main/scala-2/com/baeldung => scala-libraries-fp/src/main}/scala/cats/ShapeArea.scala (100%) rename {scala-libraries/src/main/scala-2/com/baeldung => scala-libraries-fp/src/main}/scala/cats/ShapeAreaSyntax.scala (100%) rename {scala-libraries/src/main/scala-2/com/baeldung => scala-libraries-fp/src/main}/scala/cats/monoids/CollectionMonoid.scala (100%) rename {scala-libraries/src/main/scala-2/com/baeldung => scala-libraries-fp/src/main}/scala/cats/semigroups/CollectionSemigroup.scala (100%) rename {scala-libraries/src/main/scala-2/com/baeldung => scala-libraries-fp/src/main}/scala/cats/semigroups/CustomIntSemigroup.scala (100%) rename {scala-libraries/src/main/scala-2/com/baeldung => scala-libraries-fp/src/main}/scala/cats/semigroups/IntSemigroup.scala (100%) rename {scala-libraries/src/main/scala-2/com/baeldung => scala-libraries-fp/src/main}/scala/cats/show/CustomInstance.scala (100%) rename {scala-libraries/src/main/scala-2/com/baeldung => scala-libraries-fp/src/main}/scala/cats/show/InterfaceSyntax.scala (100%) rename {scala-libraries/src/main/scala-2/com/baeldung => scala-libraries-fp/src/main}/scala/cats/show/ShowImpl.scala (100%) create mode 100644 scala-libraries-fp/src/main/scala/com/baeldung/datavalidation/DataValidation.scala rename {scala-libraries/src/main/scala-2 => scala-libraries-fp/src/main/scala}/com/baeldung/scala/fs2/Fs2Examples.scala (100%) rename {scala-libraries-3/src/main/scala-2 => scala-libraries-fp/src/main/scala}/com/baeldung/scala/http4s/SimpleClient.scala (92%) rename {scala-libraries-3/src/main/scala-2 => scala-libraries-fp/src/main/scala}/com/baeldung/scala/http4s/SimpleServer.scala (100%) rename {scala3-libraries => scala-libraries-fp}/src/test/scala/com/baeldung/datavalidation/DataValidationSpec.scala (100%) rename {scala-libraries/src/test/scala-2 => scala-libraries-fp/src/test/scala}/com/baeldung/scala/cats/ShapeAreaSyntaxUnitTest.scala (100%) rename {scala-libraries/src/test/scala-2 => scala-libraries-fp/src/test/scala}/com/baeldung/scala/cats/ShapeAreaUnitTest.scala (100%) rename {scala-libraries/src/test/scala-2 => scala-libraries-fp/src/test/scala}/com/baeldung/scala/cats/monoids/CollectionMonoidUnitTest.scala (100%) rename {scala-libraries/src/test/scala-2 => scala-libraries-fp/src/test/scala}/com/baeldung/scala/cats/semigroups/CollectionSemigroupUnitTest.scala (100%) rename {scala-libraries/src/test/scala-2 => scala-libraries-fp/src/test/scala}/com/baeldung/scala/cats/semigroups/CustomIntSemigroupUnitTest.scala (100%) rename {scala-libraries/src/test/scala-2 => scala-libraries-fp/src/test/scala}/com/baeldung/scala/cats/semigroups/IntSemigroupUnitTest.scala (100%) rename {scala-libraries/src/test/scala-2 => scala-libraries-fp/src/test/scala}/com/baeldung/scala/cats/show/CustomInstanceUnitTest.scala (100%) rename {scala-libraries/src/test/scala-2 => scala-libraries-fp/src/test/scala}/com/baeldung/scala/cats/show/InterfaceSyntaxUnitTest.scala (100%) rename {scala-libraries/src/test/scala-2 => scala-libraries-fp/src/test/scala}/com/baeldung/scala/cats/show/ShowImplUnitTest.scala (100%) rename {scala-libraries-4/src/test/scala-2 => scala-libraries-fp/src/test/scala}/com/baeldung/scala/cats/writer/WriterMonadUnitTest.scala (100%) rename {scala-libraries/src/test/scala-2 => scala-libraries-fp/src/test/scala}/com/baeldung/scala/fs2/FS2SampleTest.scala (100%) create mode 100644 scala-libraries-persistence/README.md create mode 100644 scala-libraries-persistence/src/main/resources/application.conf rename {scala-libraries/src/main/scala-2 => scala-libraries-persistence/src/main/scala}/com/baeldung/scala/slick/Connection.scala (100%) rename {scala-libraries/src/main/scala-2 => scala-libraries-persistence/src/main/scala}/com/baeldung/scala/slick/Entities.scala (100%) rename {scala-libraries/src/main/scala-2 => scala-libraries-persistence/src/main/scala}/com/baeldung/scala/slick/SlickTables.scala (85%) rename {scala-libraries/src/test/scala-2 => scala-libraries-persistence/src/test/scala}/com/baeldung/scala/slick/PlayerServiceUnitTest.scala (100%) create mode 100644 scala-libraries-testing/README.md rename {scala3-libraries => scala-libraries-testing}/src/test/scala/com/baeldung/munit/MUnitTest.scala (100%) rename {scala-libraries-4/src/test/scala-2 => scala-libraries-testing/src/test/scala}/com/baeldung/scala/utest/AsyncTest.scala (100%) rename {scala-libraries-4/src/test/scala-2 => scala-libraries-testing/src/test/scala}/com/baeldung/scala/utest/BeforeAfterTest.scala (100%) rename {scala-libraries-4/src/test/scala-2 => scala-libraries-testing/src/test/scala}/com/baeldung/scala/utest/ExceptionHandling.scala (100%) rename {scala-libraries-4/src/test/scala-2 => scala-libraries-testing/src/test/scala}/com/baeldung/scala/utest/NestedTest.scala (100%) rename {scala-libraries-4/src/test/scala-2 => scala-libraries-testing/src/test/scala}/com/baeldung/scala/utest/RetryTest.scala (100%) rename {scala-libraries-4/src/test/scala-2 => scala-libraries-testing/src/test/scala}/com/baeldung/scala/utest/RetryTestSuite.scala (100%) rename {scala-libraries-4/src/test/scala-2 => scala-libraries-testing/src/test/scala}/com/baeldung/scala/utest/SimpleUTest.scala (100%) rename {scala-libraries-2/src/test/scala-2 => scala-libraries-testing/src/test/scala}/com/baeldung/scalacheck/CommandsUnitTest.scala (100%) rename {scala-libraries-2/src/test/scala-2 => scala-libraries-testing/src/test/scala}/com/baeldung/scalacheck/GeneratorsUnitTest.scala (100%) rename {scala-libraries-2/src/test/scala-2 => scala-libraries-testing/src/test/scala}/com/baeldung/scalacheck/PropertiesUnitTest.scala (100%) rename {scala-libraries-2/src/test/scala-2 => scala-libraries-testing/src/test/scala}/com/baeldung/scalacheck/PropertiesWithCustomParametersUnitTest.scala (100%) rename {scala-libraries-2/src/test/scala-2 => scala-libraries-testing/src/test/scala}/com/baeldung/scalacheck/model/Simple.scala (100%) rename {scala-libraries-2/src/test/scala-2 => scala-libraries-testing/src/test/scala}/com/baeldung/scalacheck/model/SystemUnderTest.scala (100%) rename {scala-libraries-2/src/test/scala-2 => scala-libraries-testing/src/test/scala}/com/baeldung/scalacheck/model/TrafficLight.scala (100%) rename {scala-libraries-3/src/test/scala-2 => scala-libraries-testing/src/test/scala}/com/baeldung/scalamock/ScalamockFeaturesTest.scala (100%) rename {scala-libraries-3/src/test/scala-2 => scala-libraries-testing/src/test/scala}/com/baeldung/scalamock/ScalamockFunctionTest.scala (100%) rename {scala-libraries-3/src/test/scala-2 => scala-libraries-testing/src/test/scala}/com/baeldung/scalamock/ScalamockMockingStylesTest.scala (100%) rename {scala-libraries-3/src/test/scala-2 => scala-libraries-testing/src/test/scala}/com/baeldung/scalamock/model/Models.scala (100%) rename {scala-libraries-3/src/test/scala-2 => scala-libraries-testing/src/test/scala}/com/baeldung/scalamock/service/Services.scala (100%) diff --git a/build.sbt b/build.sbt index 3930117af..c55b05194 100644 --- a/build.sbt +++ b/build.sbt @@ -21,7 +21,7 @@ val scalaTestDeps = Seq( "org.scalatest" %% "scalatest-flatspec" % "3.2.18" % Test ) -val scalaMock = "org.scalamock" %% "scalamock" % "5.2.0" % Test +val scalaMock = "org.scalamock" %% "scalamock" % "6.0.0-M2" % Test val zioVersion = "2.0.21" lazy val scala_core = (project in file("scala-core-modules/scala-core")) @@ -305,7 +305,10 @@ lazy val scala_akka_3 = (project in file("scala-akka-3")) libraryDependencies ++= Seq( "com.typesafe.akka" %% "akka-stream" % "2.8.5", "com.typesafe.akka" %% "akka-discovery" % "2.8.5", - "com.typesafe.akka" %% "akka-stream-testkit" % "2.8.5" % Test + "com.typesafe.akka" %% "akka-stream-testkit" % "2.8.5" % Test, + akkaActorTyped, + akkaStreamDep, + akkaTypedTestkit ) ++ scalaTestDeps.map(_.withConfigurations(Some("it,test"))) ) @@ -324,21 +327,13 @@ lazy val scala_libraries = (project in file("scala-libraries")) "com.github.julien-truffaut" %% "monocle-core" % monocleVersion, "com.github.julien-truffaut" %% "monocle-macro" % monocleVersion, "com.github.julien-truffaut" %% "monocle-law" % monocleVersion % "test", - "com.typesafe.slick" %% "slick" % slickVersion, - "com.h2database" % "h2" % "2.2.224", "com.chuusai" %% "shapeless" % shapelessVersion, "org.scalaz" %% "scalaz-core" % scalazVersion, - "co.fs2" %% "fs2-core" % fs2Version, - "co.fs2" %% "fs2-io" % fs2Version, "junit" % "junit" % "4.13.2" % Test, "org.reactivemongo" %% "reactivemongo" % reactiveMongo, "org.reactivemongo" %% "reactivemongo-akkastream" % reactiveMongo, "de.flapdoodle.embed" % "de.flapdoodle.embed.mongo" % embedMongoVersion % Test, - logback % Test, - akkaActorTyped, - akkaStreamDep, - catEffectTest, - "org.typelevel" %% "cats-effect-testing-scalatest" % "1.5.0" % Test + logback % Test ) ) @@ -384,7 +379,6 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) ), libraryDependencies ++= Seq( akkaTypedTestkit, - "org.scalacheck" %% "scalacheck" % "1.17.0" % Test, "com.lihaoyi" %% "requests" % "0.8.0" ), libraryDependencies ++= Seq( @@ -411,16 +405,12 @@ lazy val scala_libraries_3 = (project in file("scala-libraries-3")) name := "scala-libraries", libraryDependencies ++= scalaTestDeps, libraryDependencies ++= Seq( - "org.http4s" %% "http4s-dsl" % http4sVersion, - "org.http4s" %% "http4s-blaze-server" % http4sBlaze, - "org.http4s" %% "http4s-blaze-client" % http4sBlaze, enumeratumDep, pureConfigDep, "com.github.pureconfig" %% "pureconfig-enumeratum" % "0.17.6", "com.typesafe" % "config" % "1.4.3", munitDep ), - libraryDependencies += scalaMock, libraryDependencies += "com.softwaremill.retry" %% "retry" % "0.3.6", libraryDependencies ++= Seq( log4jApiScalaDep, @@ -446,7 +436,6 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) .settings( name := "scala-libraries-4", scalaVersion := scalaV, - libraryDependencies += "com.lihaoyi" %% "utest" % "0.8.2" % "test", testFrameworks += new TestFramework("utest.runner.Framework"), libraryDependencies ++= scalaTestDeps .map(_.withConfigurations(Some("it,test"))), @@ -455,8 +444,7 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) scalaReflection % Provided, "org.tpolecat" %% "skunk-core" % "0.6.3", logback, - "com.typesafe.scala-logging" %% "scala-logging" % "3.9.5", - "org.typelevel" %% "cats-core" % "2.10.0" + "com.typesafe.scala-logging" %% "scala-logging" % "3.9.5" ), libraryDependencies ++= Seq( "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.9.1", @@ -522,6 +510,47 @@ lazy val scala_libraries_6 = (project in file("scala-libraries-6")) ) ) +lazy val scala_libraries_fp = (project in file("scala-libraries-fp")) + .settings( + name := "scala-libraries-fp", + scalaVersion := scala3Version, + libraryDependencies ++= scalaTestDeps, + libraryDependencies ++= Seq( + "co.fs2" %% "fs2-core" % fs2Version, + "co.fs2" %% "fs2-io" % fs2Version, + "org.typelevel" %% "cats-core" % "2.10.0", + "org.http4s" %% "http4s-dsl" % http4sVersion, + "org.http4s" %% "http4s-blaze-server" % http4sBlaze, + "org.http4s" %% "http4s-blaze-client" % http4sBlaze, + catEffectTest, + "org.typelevel" %% "cats-effect-testing-scalatest" % "1.5.0" % Test + ) + ) + +lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) + .settings( + name := "scala-libraries-testing", + scalaVersion := scala3Version, + libraryDependencies ++= scalaTestDeps, + libraryDependencies ++= Seq( + "org.scalacheck" %% "scalacheck" % "1.17.0" % Test, + scalaMock, + "com.lihaoyi" %% "utest" % "0.8.2" % "test", + munitDep + ) + ) + +lazy val scala_libraries_persistence = (project in file("scala-libraries-persistence")) + .settings( + name := "scala-libraries-persistence", + scalaVersion := scala3Version, + libraryDependencies ++= scalaTestDeps, + libraryDependencies ++= Seq( + "com.typesafe.slick" %% "slick" % slickVersion, + "com.h2database" % "h2" % "2.2.224", + ) + ) + lazy val scala_strings = (project in file("scala-strings")) .settings( name := "scala-strings", diff --git a/scala-akka-3/README.md b/scala-akka-3/README.md index 4020908ca..16a64aaa5 100644 --- a/scala-akka-3/README.md +++ b/scala-akka-3/README.md @@ -1,2 +1,6 @@ ### Relevant Articles - [Testing Akka Streams](https://www.baeldung.com/scala/akka-streams-tests) +//from scala-libraries +- [Actor Lifecycle in Akka](https://www.baeldung.com/scala/akka-actor-lifecycle) +//from scala-libraries-2 +- [Testing Akka Actors](https://www.baeldung.com/scala/testing-akka-actors) diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/typedactors/AkkaTyped.scala b/scala-akka-3/src/main/scala/com/baeldung/scala/typedactors/AkkaTyped.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/typedactors/AkkaTyped.scala rename to scala-akka-3/src/main/scala/com/baeldung/scala/typedactors/AkkaTyped.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/akka/TestService.scala b/scala-akka-3/src/test/scala/com/baeldung/scala/akka/TestService.scala similarity index 93% rename from scala-libraries-2/src/test/scala-2/com/baeldung/akka/TestService.scala rename to scala-akka-3/src/test/scala/com/baeldung/scala/akka/TestService.scala index 2353d831a..7e82644b7 100644 --- a/scala-libraries-2/src/test/scala-2/com/baeldung/akka/TestService.scala +++ b/scala-akka-3/src/test/scala/com/baeldung/scala/akka/TestService.scala @@ -1,9 +1,9 @@ -package com.baeldung.akka +package com.baeldung.scala.akka -import akka.actor.testkit.typed.scaladsl.ActorTestKit import org.scalatest.BeforeAndAfterAll import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpec +import akka.actor.testkit.typed.scaladsl.ActorTestKit class TestService extends AnyWordSpec with BeforeAndAfterAll with Matchers { val testKit = ActorTestKit() diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/akka/Tests.scala b/scala-akka-3/src/test/scala/com/baeldung/scala/akka/Tests.scala similarity index 99% rename from scala-libraries-2/src/test/scala-2/com/baeldung/akka/Tests.scala rename to scala-akka-3/src/test/scala/com/baeldung/scala/akka/Tests.scala index 8d5e94cff..46b0ae571 100644 --- a/scala-libraries-2/src/test/scala-2/com/baeldung/akka/Tests.scala +++ b/scala-akka-3/src/test/scala/com/baeldung/scala/akka/Tests.scala @@ -1,4 +1,4 @@ -package com.baeldung.akka +package com.baeldung.scala.akka import akka.actor.typed.scaladsl.AskPattern.{Askable, schedulerFromActorSystem} import akka.actor.typed.{ActorRef, Behavior} diff --git a/scala-libraries-2/README.md b/scala-libraries-2/README.md index 1341f7073..53692078a 100644 --- a/scala-libraries-2/README.md +++ b/scala-libraries-2/README.md @@ -4,8 +4,6 @@ - [Asynchronous and Reactive Programming With Monix in Scala](https://www.baeldung.com/scala/monix) - [Database Access with Play](https://www.baeldung.com/scala/play-database-access) - [ScalaCache: A Caching Library To Rule Them All](https://www.baeldung.com/scala/scalacache) -- [Testing Akka Actors](https://www.baeldung.com/scala/testing-akka-actors) -- [Introduction to ScalaCheck](https://www.baeldung.com/scala/scalacheck) - [Simple REST Requests Using Requests-Scala](https://www.baeldung.com/scala/rest-with-requests-scala) - [Better Enumerations in Scala Using Enumeratum](https://www.baeldung.com/scala/enumeratum) - [Guide to elastic4s – Elasticsearch Scala Client](https://www.baeldung.com/scala/elastic4s-elasticsearch-client) \ No newline at end of file diff --git a/scala-libraries-3/README.md b/scala-libraries-3/README.md index eca05eeab..310186875 100644 --- a/scala-libraries-3/README.md +++ b/scala-libraries-3/README.md @@ -1,8 +1,6 @@ ### Relevant Articles: - [Load Configuration Files In Scala Using PureConfig](https://www.baeldung.com/scala/pureconfig-load-config-files) -- [Introduction to http4s](https://www.baeldung.com/scala/http4s-intro) -- [Introduction to ScalaMock](https://www.baeldung.com/scala/scalamock) - [A Guide to the Scala Retry Library](https://www.baeldung.com/scala/retry-library) - [Introduction to Lightbend Config](https://www.baeldung.com/scala/lightbend-config) - [Introduction to Apache Log4j in Scala](https://www.baeldung.com/scala/apache-log4j) diff --git a/scala-libraries-4/README.md b/scala-libraries-4/README.md index caaf185dc..bc0972325 100644 --- a/scala-libraries-4/README.md +++ b/scala-libraries-4/README.md @@ -1,11 +1,9 @@ ## Relevant Articles -- [Introduction to uTest](https://www.baeldung.com/scala/utest-intro) - [Introduction to scala-async](https://www.baeldung.com/scala/scala-async) - [Introduction to Skunk – Scala Driver for PostgreSQL](https://www.baeldung.com/scala/skunk-postgresql-driver) - [Apache Pulsar Scala Client – pulsar4s](https://www.baeldung.com/scala/pulsar4s) - [Logging in Scala Applications Using Scala-Logging](https://www.baeldung.com/scala/scala-logging) - [Making Integration Testing Easier With TestContainers-scala](https://www.baeldung.com/scala/testcontainers-scala) -- [Writer Monad in Cats](https://www.baeldung.com/scala/writer-monad-in-cats) - [AWScala – AWS SDK for Scala](https://www.baeldung.com/scala/awscala-aws-sdk-for-scala) - [Working with Redis in Scala](https://www.baeldung.com/scala/redis) diff --git a/scala-libraries-fp/README.md b/scala-libraries-fp/README.md new file mode 100644 index 000000000..65991eb12 --- /dev/null +++ b/scala-libraries-fp/README.md @@ -0,0 +1,11 @@ +### Relevant Articles: + +//from scala libraries +- [Scala – Introduction to Cats](https://www.baeldung.com/scala/cats-intro) +- [Introduction to FS2: Functional Streams for Scala](https://www.baeldung.com/scala/fs2-functional-streams) +//from scala-libraries-3 +- [Introduction to http4s](https://www.baeldung.com/scala/http4s-intro) +//from scala-libraries-4 +- [Writer Monad in Cats](https://www.baeldung.com/scala/writer-monad-in-cats) +//from scala3-libraries +- [Data Validation With Cats](https://www.baeldung.com/scala/cats-data-validation) diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/cats/Area.scala b/scala-libraries-fp/src/main/scala/cats/Area.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/cats/Area.scala rename to scala-libraries-fp/src/main/scala/cats/Area.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/cats/AreaInstances.scala b/scala-libraries-fp/src/main/scala/cats/AreaInstances.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/cats/AreaInstances.scala rename to scala-libraries-fp/src/main/scala/cats/AreaInstances.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/cats/ShapeArea.scala b/scala-libraries-fp/src/main/scala/cats/ShapeArea.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/cats/ShapeArea.scala rename to scala-libraries-fp/src/main/scala/cats/ShapeArea.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/cats/ShapeAreaSyntax.scala b/scala-libraries-fp/src/main/scala/cats/ShapeAreaSyntax.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/cats/ShapeAreaSyntax.scala rename to scala-libraries-fp/src/main/scala/cats/ShapeAreaSyntax.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/cats/monoids/CollectionMonoid.scala b/scala-libraries-fp/src/main/scala/cats/monoids/CollectionMonoid.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/cats/monoids/CollectionMonoid.scala rename to scala-libraries-fp/src/main/scala/cats/monoids/CollectionMonoid.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/cats/semigroups/CollectionSemigroup.scala b/scala-libraries-fp/src/main/scala/cats/semigroups/CollectionSemigroup.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/cats/semigroups/CollectionSemigroup.scala rename to scala-libraries-fp/src/main/scala/cats/semigroups/CollectionSemigroup.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/cats/semigroups/CustomIntSemigroup.scala b/scala-libraries-fp/src/main/scala/cats/semigroups/CustomIntSemigroup.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/cats/semigroups/CustomIntSemigroup.scala rename to scala-libraries-fp/src/main/scala/cats/semigroups/CustomIntSemigroup.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/cats/semigroups/IntSemigroup.scala b/scala-libraries-fp/src/main/scala/cats/semigroups/IntSemigroup.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/cats/semigroups/IntSemigroup.scala rename to scala-libraries-fp/src/main/scala/cats/semigroups/IntSemigroup.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/cats/show/CustomInstance.scala b/scala-libraries-fp/src/main/scala/cats/show/CustomInstance.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/cats/show/CustomInstance.scala rename to scala-libraries-fp/src/main/scala/cats/show/CustomInstance.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/cats/show/InterfaceSyntax.scala b/scala-libraries-fp/src/main/scala/cats/show/InterfaceSyntax.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/cats/show/InterfaceSyntax.scala rename to scala-libraries-fp/src/main/scala/cats/show/InterfaceSyntax.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/cats/show/ShowImpl.scala b/scala-libraries-fp/src/main/scala/cats/show/ShowImpl.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/cats/show/ShowImpl.scala rename to scala-libraries-fp/src/main/scala/cats/show/ShowImpl.scala diff --git a/scala-libraries-fp/src/main/scala/com/baeldung/datavalidation/DataValidation.scala b/scala-libraries-fp/src/main/scala/com/baeldung/datavalidation/DataValidation.scala new file mode 100644 index 000000000..f1b12f4d4 --- /dev/null +++ b/scala-libraries-fp/src/main/scala/com/baeldung/datavalidation/DataValidation.scala @@ -0,0 +1,129 @@ +package com.baeldung.datavalidation + +import cats.effect.{IOApp, IO, ExitCode} +import cats.data.{EitherNec, ValidatedNec, Validated} +import cats.data.Validated.{Valid, Invalid} +import cats.syntax.all.* + +object Utilities: + case class Country(value: String) + object Country: + private val countries = List("uganda", "kenya", "tanzania") + def apply(value: String): Option[Country] = + Some(value) + .filter(v => countries.contains(v.toLowerCase)) + .map(c => new Country(c.toLowerCase)) + + case class Age(value: Int) + object Age: + def apply(value: Int): Option[Age] = + Some(value).filter(_ >= 25).map(new Age(_)) + + case class Cgpa(value: Double) + object Cgpa: + def apply(value: Double): Option[Cgpa] = + Some(value).filter(_ >= 3.0).map(new Cgpa(_)) + +object Version1: + import Utilities.* + + case class Scholarship(country: Country, age: Age, cgpa: Cgpa) + object Scholarship: + def apply( + value1: String, + value2: Int, + value3: Double + ): EitherNec[String, Scholarship] = + ( + Country(value1).toRightNec("Invalid Coutry"), + Age(value2).toRightNec("Invalid Age"), + Cgpa(value3).toRightNec("Invalid Cgpa") + ).parMapN( + Scholarship.apply + ) + +object Version2: + import Utilities.* + + case class Scholarship(country: Country, age: Age, cgpa: Cgpa) + object Scholarship: + def apply( + value1: String, + value2: Int, + value3: Double + ): ValidatedNec[String, Scholarship] = + ( + Country(value1).toValidNec("Invalid Coutry"), + Age(value2).toValidNec("Invalid Age"), + Cgpa(value3).toValidNec("Invalid Cgpa") + ).mapN( + Scholarship.apply + ) + +object Utilities2: + sealed trait ScholarshipValidationError: + val errMsg: String + object ScholarshipValidationError: + case object CountryValidationError extends ScholarshipValidationError: + override val errMsg: String = "Must come from Uganda, Kenya or Tanzania." + case object AgeValidationError extends ScholarshipValidationError: + override val errMsg: String = "Must be 25 years or more." + case object CgpaValdiationError extends ScholarshipValidationError: + override val errMsg: String = "CGPA must be 3.0 or more" + + import ScholarshipValidationError.* + + case class Country(value: String) + object Country: + private val countries = List("uganda", "kenya", "tanzania") + def apply( + value: String + ): ValidatedNec[ScholarshipValidationError, Country] = + Validated.condNec( + countries.contains(value.toLowerCase), + new Country(value.toLowerCase), + CountryValidationError + ) + + case class Age(value: Int) + object Age: + def apply(value: Int): ValidatedNec[ScholarshipValidationError, Age] = + Validated.condNec( + value >= 25, + new Age(value), + AgeValidationError + ) + + case class Cgpa(value: Double) + object Cgpa: + def apply(value: Double): ValidatedNec[ScholarshipValidationError, Cgpa] = + Validated.condNec( + value >= 3.0, + new Cgpa(value), + CgpaValdiationError + ) + +object Version3: + import Utilities2.* + case class Scholarship(country: Country, age: Age, cgpa: Cgpa) + object Scholarship: + def apply( + value1: String, + value2: Int, + value3: Double + ): ValidatedNec[ScholarshipValidationError, Scholarship] = + ( + Country(value1), + Age(value2), + Cgpa(value3) + ).mapN( + Scholarship.apply + ) + +object DataValidation extends IOApp.Simple: + import Version1.* + def run: IO[Unit] = + Scholarship("Uganda", 23, 2.5) match + case Right(x) => IO.println(x) + case Left(y) => IO.println(y.toChain) +// Chain(Invalid Age, Invalid Cgpa) diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/fs2/Fs2Examples.scala b/scala-libraries-fp/src/main/scala/com/baeldung/scala/fs2/Fs2Examples.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/fs2/Fs2Examples.scala rename to scala-libraries-fp/src/main/scala/com/baeldung/scala/fs2/Fs2Examples.scala diff --git a/scala-libraries-3/src/main/scala-2/com/baeldung/scala/http4s/SimpleClient.scala b/scala-libraries-fp/src/main/scala/com/baeldung/scala/http4s/SimpleClient.scala similarity index 92% rename from scala-libraries-3/src/main/scala-2/com/baeldung/scala/http4s/SimpleClient.scala rename to scala-libraries-fp/src/main/scala/com/baeldung/scala/http4s/SimpleClient.scala index 41804dff9..90df799b3 100644 --- a/scala-libraries-3/src/main/scala-2/com/baeldung/scala/http4s/SimpleClient.scala +++ b/scala-libraries-fp/src/main/scala/com/baeldung/scala/http4s/SimpleClient.scala @@ -4,7 +4,7 @@ import cats.effect.unsafe.implicits.global import cats.effect.{ExitCode, IO, IOApp} import org.http4s.blaze.client.BlazeClientBuilder import org.http4s.client.Client -import org.http4s.implicits.http4sLiteralsSyntax +import org.http4s.implicits.uri object SimpleClient extends IOApp { def callEffect(client: Client[IO], str: String): IO[String] = diff --git a/scala-libraries-3/src/main/scala-2/com/baeldung/scala/http4s/SimpleServer.scala b/scala-libraries-fp/src/main/scala/com/baeldung/scala/http4s/SimpleServer.scala similarity index 100% rename from scala-libraries-3/src/main/scala-2/com/baeldung/scala/http4s/SimpleServer.scala rename to scala-libraries-fp/src/main/scala/com/baeldung/scala/http4s/SimpleServer.scala diff --git a/scala3-libraries/src/test/scala/com/baeldung/datavalidation/DataValidationSpec.scala b/scala-libraries-fp/src/test/scala/com/baeldung/datavalidation/DataValidationSpec.scala similarity index 100% rename from scala3-libraries/src/test/scala/com/baeldung/datavalidation/DataValidationSpec.scala rename to scala-libraries-fp/src/test/scala/com/baeldung/datavalidation/DataValidationSpec.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/cats/ShapeAreaSyntaxUnitTest.scala b/scala-libraries-fp/src/test/scala/com/baeldung/scala/cats/ShapeAreaSyntaxUnitTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/cats/ShapeAreaSyntaxUnitTest.scala rename to scala-libraries-fp/src/test/scala/com/baeldung/scala/cats/ShapeAreaSyntaxUnitTest.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/cats/ShapeAreaUnitTest.scala b/scala-libraries-fp/src/test/scala/com/baeldung/scala/cats/ShapeAreaUnitTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/cats/ShapeAreaUnitTest.scala rename to scala-libraries-fp/src/test/scala/com/baeldung/scala/cats/ShapeAreaUnitTest.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/cats/monoids/CollectionMonoidUnitTest.scala b/scala-libraries-fp/src/test/scala/com/baeldung/scala/cats/monoids/CollectionMonoidUnitTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/cats/monoids/CollectionMonoidUnitTest.scala rename to scala-libraries-fp/src/test/scala/com/baeldung/scala/cats/monoids/CollectionMonoidUnitTest.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/cats/semigroups/CollectionSemigroupUnitTest.scala b/scala-libraries-fp/src/test/scala/com/baeldung/scala/cats/semigroups/CollectionSemigroupUnitTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/cats/semigroups/CollectionSemigroupUnitTest.scala rename to scala-libraries-fp/src/test/scala/com/baeldung/scala/cats/semigroups/CollectionSemigroupUnitTest.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/cats/semigroups/CustomIntSemigroupUnitTest.scala b/scala-libraries-fp/src/test/scala/com/baeldung/scala/cats/semigroups/CustomIntSemigroupUnitTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/cats/semigroups/CustomIntSemigroupUnitTest.scala rename to scala-libraries-fp/src/test/scala/com/baeldung/scala/cats/semigroups/CustomIntSemigroupUnitTest.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/cats/semigroups/IntSemigroupUnitTest.scala b/scala-libraries-fp/src/test/scala/com/baeldung/scala/cats/semigroups/IntSemigroupUnitTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/cats/semigroups/IntSemigroupUnitTest.scala rename to scala-libraries-fp/src/test/scala/com/baeldung/scala/cats/semigroups/IntSemigroupUnitTest.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/cats/show/CustomInstanceUnitTest.scala b/scala-libraries-fp/src/test/scala/com/baeldung/scala/cats/show/CustomInstanceUnitTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/cats/show/CustomInstanceUnitTest.scala rename to scala-libraries-fp/src/test/scala/com/baeldung/scala/cats/show/CustomInstanceUnitTest.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/cats/show/InterfaceSyntaxUnitTest.scala b/scala-libraries-fp/src/test/scala/com/baeldung/scala/cats/show/InterfaceSyntaxUnitTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/cats/show/InterfaceSyntaxUnitTest.scala rename to scala-libraries-fp/src/test/scala/com/baeldung/scala/cats/show/InterfaceSyntaxUnitTest.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/cats/show/ShowImplUnitTest.scala b/scala-libraries-fp/src/test/scala/com/baeldung/scala/cats/show/ShowImplUnitTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/cats/show/ShowImplUnitTest.scala rename to scala-libraries-fp/src/test/scala/com/baeldung/scala/cats/show/ShowImplUnitTest.scala diff --git a/scala-libraries-4/src/test/scala-2/com/baeldung/scala/cats/writer/WriterMonadUnitTest.scala b/scala-libraries-fp/src/test/scala/com/baeldung/scala/cats/writer/WriterMonadUnitTest.scala similarity index 100% rename from scala-libraries-4/src/test/scala-2/com/baeldung/scala/cats/writer/WriterMonadUnitTest.scala rename to scala-libraries-fp/src/test/scala/com/baeldung/scala/cats/writer/WriterMonadUnitTest.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/fs2/FS2SampleTest.scala b/scala-libraries-fp/src/test/scala/com/baeldung/scala/fs2/FS2SampleTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/fs2/FS2SampleTest.scala rename to scala-libraries-fp/src/test/scala/com/baeldung/scala/fs2/FS2SampleTest.scala diff --git a/scala-libraries-persistence/README.md b/scala-libraries-persistence/README.md new file mode 100644 index 000000000..d0dc4efc8 --- /dev/null +++ b/scala-libraries-persistence/README.md @@ -0,0 +1,2 @@ +//from scala-libraries +- [Introduction to Slick](https://www.baeldung.com/scala/slick-intro) \ No newline at end of file diff --git a/scala-libraries-persistence/src/main/resources/application.conf b/scala-libraries-persistence/src/main/resources/application.conf new file mode 100644 index 000000000..2272bb414 --- /dev/null +++ b/scala-libraries-persistence/src/main/resources/application.conf @@ -0,0 +1,17 @@ +h2mem { + url = "jdbc:h2:mem:testDB" + driver = org.h2.Driver + keepAliveConnection = true + connectionPool = disabled +} + +#postgres { +# dataSourceClass = "org.postgresql.ds.PGSimpleDataSource" +# properties = { +# serverName = "localhost" +# portNumber = "5432" +# databaseName = "slick-tutorial" +# user = "postgres" +# password = "admin" +# } +#} \ No newline at end of file diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/slick/Connection.scala b/scala-libraries-persistence/src/main/scala/com/baeldung/scala/slick/Connection.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/slick/Connection.scala rename to scala-libraries-persistence/src/main/scala/com/baeldung/scala/slick/Connection.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/slick/Entities.scala b/scala-libraries-persistence/src/main/scala/com/baeldung/scala/slick/Entities.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/slick/Entities.scala rename to scala-libraries-persistence/src/main/scala/com/baeldung/scala/slick/Entities.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/slick/SlickTables.scala b/scala-libraries-persistence/src/main/scala/com/baeldung/scala/slick/SlickTables.scala similarity index 85% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/slick/SlickTables.scala rename to scala-libraries-persistence/src/main/scala/com/baeldung/scala/slick/SlickTables.scala index e296020f3..a3b4fa826 100644 --- a/scala-libraries/src/main/scala-2/com/baeldung/scala/slick/SlickTables.scala +++ b/scala-libraries-persistence/src/main/scala/com/baeldung/scala/slick/SlickTables.scala @@ -7,7 +7,7 @@ import slick.jdbc.H2Profile.api._ object SlickTables { class PlayerTable(tag: Tag) extends Table[Player](tag, None, "Player") { - override def * = (id, name, country, dob) <> (Player.tupled, Player.unapply) + override def * = (id, name, country, dob).mapTo[Player] val id: Rep[Long] = column[Long]("player_id", O.AutoInc, O.PrimaryKey) val name: Rep[String] = column[String]("name") diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/slick/PlayerServiceUnitTest.scala b/scala-libraries-persistence/src/test/scala/com/baeldung/scala/slick/PlayerServiceUnitTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/slick/PlayerServiceUnitTest.scala rename to scala-libraries-persistence/src/test/scala/com/baeldung/scala/slick/PlayerServiceUnitTest.scala diff --git a/scala-libraries-testing/README.md b/scala-libraries-testing/README.md new file mode 100644 index 000000000..971bd0d6c --- /dev/null +++ b/scala-libraries-testing/README.md @@ -0,0 +1,9 @@ + +//from scala-libraries-2 +- [Introduction to ScalaCheck](https://www.baeldung.com/scala/scalacheck) +//from scala-libraries-3 +- [Introduction to ScalaMock](https://www.baeldung.com/scala/scalamock) +//from scala-libraries-4 +- [Introduction to uTest](https://www.baeldung.com/scala/utest-intro) +//from scala3-libraries +- [Introduction to MUnit](https://www.baeldung.com/scala/munit-introduction) diff --git a/scala3-libraries/src/test/scala/com/baeldung/munit/MUnitTest.scala b/scala-libraries-testing/src/test/scala/com/baeldung/munit/MUnitTest.scala similarity index 100% rename from scala3-libraries/src/test/scala/com/baeldung/munit/MUnitTest.scala rename to scala-libraries-testing/src/test/scala/com/baeldung/munit/MUnitTest.scala diff --git a/scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/AsyncTest.scala b/scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/AsyncTest.scala similarity index 100% rename from scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/AsyncTest.scala rename to scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/AsyncTest.scala diff --git a/scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/BeforeAfterTest.scala b/scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/BeforeAfterTest.scala similarity index 100% rename from scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/BeforeAfterTest.scala rename to scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/BeforeAfterTest.scala diff --git a/scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/ExceptionHandling.scala b/scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/ExceptionHandling.scala similarity index 100% rename from scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/ExceptionHandling.scala rename to scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/ExceptionHandling.scala diff --git a/scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/NestedTest.scala b/scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/NestedTest.scala similarity index 100% rename from scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/NestedTest.scala rename to scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/NestedTest.scala diff --git a/scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/RetryTest.scala b/scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/RetryTest.scala similarity index 100% rename from scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/RetryTest.scala rename to scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/RetryTest.scala diff --git a/scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/RetryTestSuite.scala b/scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/RetryTestSuite.scala similarity index 100% rename from scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/RetryTestSuite.scala rename to scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/RetryTestSuite.scala diff --git a/scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/SimpleUTest.scala b/scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/SimpleUTest.scala similarity index 100% rename from scala-libraries-4/src/test/scala-2/com/baeldung/scala/utest/SimpleUTest.scala rename to scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/SimpleUTest.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/CommandsUnitTest.scala b/scala-libraries-testing/src/test/scala/com/baeldung/scalacheck/CommandsUnitTest.scala similarity index 100% rename from scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/CommandsUnitTest.scala rename to scala-libraries-testing/src/test/scala/com/baeldung/scalacheck/CommandsUnitTest.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/GeneratorsUnitTest.scala b/scala-libraries-testing/src/test/scala/com/baeldung/scalacheck/GeneratorsUnitTest.scala similarity index 100% rename from scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/GeneratorsUnitTest.scala rename to scala-libraries-testing/src/test/scala/com/baeldung/scalacheck/GeneratorsUnitTest.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/PropertiesUnitTest.scala b/scala-libraries-testing/src/test/scala/com/baeldung/scalacheck/PropertiesUnitTest.scala similarity index 100% rename from scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/PropertiesUnitTest.scala rename to scala-libraries-testing/src/test/scala/com/baeldung/scalacheck/PropertiesUnitTest.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/PropertiesWithCustomParametersUnitTest.scala b/scala-libraries-testing/src/test/scala/com/baeldung/scalacheck/PropertiesWithCustomParametersUnitTest.scala similarity index 100% rename from scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/PropertiesWithCustomParametersUnitTest.scala rename to scala-libraries-testing/src/test/scala/com/baeldung/scalacheck/PropertiesWithCustomParametersUnitTest.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/model/Simple.scala b/scala-libraries-testing/src/test/scala/com/baeldung/scalacheck/model/Simple.scala similarity index 100% rename from scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/model/Simple.scala rename to scala-libraries-testing/src/test/scala/com/baeldung/scalacheck/model/Simple.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/model/SystemUnderTest.scala b/scala-libraries-testing/src/test/scala/com/baeldung/scalacheck/model/SystemUnderTest.scala similarity index 100% rename from scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/model/SystemUnderTest.scala rename to scala-libraries-testing/src/test/scala/com/baeldung/scalacheck/model/SystemUnderTest.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/model/TrafficLight.scala b/scala-libraries-testing/src/test/scala/com/baeldung/scalacheck/model/TrafficLight.scala similarity index 100% rename from scala-libraries-2/src/test/scala-2/com/baeldung/scalacheck/model/TrafficLight.scala rename to scala-libraries-testing/src/test/scala/com/baeldung/scalacheck/model/TrafficLight.scala diff --git a/scala-libraries-3/src/test/scala-2/com/baeldung/scalamock/ScalamockFeaturesTest.scala b/scala-libraries-testing/src/test/scala/com/baeldung/scalamock/ScalamockFeaturesTest.scala similarity index 100% rename from scala-libraries-3/src/test/scala-2/com/baeldung/scalamock/ScalamockFeaturesTest.scala rename to scala-libraries-testing/src/test/scala/com/baeldung/scalamock/ScalamockFeaturesTest.scala diff --git a/scala-libraries-3/src/test/scala-2/com/baeldung/scalamock/ScalamockFunctionTest.scala b/scala-libraries-testing/src/test/scala/com/baeldung/scalamock/ScalamockFunctionTest.scala similarity index 100% rename from scala-libraries-3/src/test/scala-2/com/baeldung/scalamock/ScalamockFunctionTest.scala rename to scala-libraries-testing/src/test/scala/com/baeldung/scalamock/ScalamockFunctionTest.scala diff --git a/scala-libraries-3/src/test/scala-2/com/baeldung/scalamock/ScalamockMockingStylesTest.scala b/scala-libraries-testing/src/test/scala/com/baeldung/scalamock/ScalamockMockingStylesTest.scala similarity index 100% rename from scala-libraries-3/src/test/scala-2/com/baeldung/scalamock/ScalamockMockingStylesTest.scala rename to scala-libraries-testing/src/test/scala/com/baeldung/scalamock/ScalamockMockingStylesTest.scala diff --git a/scala-libraries-3/src/test/scala-2/com/baeldung/scalamock/model/Models.scala b/scala-libraries-testing/src/test/scala/com/baeldung/scalamock/model/Models.scala similarity index 100% rename from scala-libraries-3/src/test/scala-2/com/baeldung/scalamock/model/Models.scala rename to scala-libraries-testing/src/test/scala/com/baeldung/scalamock/model/Models.scala diff --git a/scala-libraries-3/src/test/scala-2/com/baeldung/scalamock/service/Services.scala b/scala-libraries-testing/src/test/scala/com/baeldung/scalamock/service/Services.scala similarity index 100% rename from scala-libraries-3/src/test/scala-2/com/baeldung/scalamock/service/Services.scala rename to scala-libraries-testing/src/test/scala/com/baeldung/scalamock/service/Services.scala diff --git a/scala-libraries/README.md b/scala-libraries/README.md index 5f7efb735..196b3b2cc 100644 --- a/scala-libraries/README.md +++ b/scala-libraries/README.md @@ -2,11 +2,7 @@ - [Introduction to Optics in Scala Using Monocle](https://www.baeldung.com/scala/monocle-optics) - [Building REST APIs in Scala with Finch](https://www.baeldung.com/scala/finch-rest-apis) -- [Introduction to Slick](https://www.baeldung.com/scala/slick-intro) - [The Principles Behind Scalaz](https://www.baeldung.com/scala/scalaz-principles) -- [Scala – Introduction to Cats](https://www.baeldung.com/scala/cats-intro) - [Introduction to Scalaz](https://www.baeldung.com/scala/scalaz-intro) -- [Introduction to FS2: Functional Streams for Scala](https://www.baeldung.com/scala/fs2-functional-streams) - [Introduction to Generic Programming in Scala with shapeless](https://www.baeldung.com/scala/generic-programming) -- [Actor Lifecycle in Akka](https://www.baeldung.com/scala/akka-actor-lifecycle) - [Introduction to Reactive Mongo](https://www.baeldung.com/scala/mongo-reactive-intro) diff --git a/scala3-libraries/README.md b/scala3-libraries/README.md index 55c673006..7105c8086 100644 --- a/scala3-libraries/README.md +++ b/scala3-libraries/README.md @@ -1,6 +1,4 @@ ### Relevant Articles: - [Scala App Configurations With Clarity Using ClearConfig](https://www.baeldung.com/scala/clearconfig) -- [Introduction to MUnit](https://www.baeldung.com/scala/munit-introduction) - [Introduction to doobie – a JDBC Layer for Scala](https://www.baeldung.com/scala/doobie-intro) -- [Data Validation With Cats](https://www.baeldung.com/scala/cats-data-validation) From 1b2b26c40c0ed2554f9757de5eb0fe690698aa57 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Mon, 25 Mar 2024 19:56:40 +0100 Subject: [PATCH 0433/1318] Fixed reactivemongo and akka error --- build.sbt | 4 +++- scala-libraries-fp/src/test/resources/fs2data.txt | 1 + .../src/test/scala/com/baeldung/scala/fs2/FS2SampleTest.scala | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 scala-libraries-fp/src/test/resources/fs2data.txt diff --git a/build.sbt b/build.sbt index c55b05194..ed70a0ab8 100644 --- a/build.sbt +++ b/build.sbt @@ -333,7 +333,9 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.reactivemongo" %% "reactivemongo" % reactiveMongo, "org.reactivemongo" %% "reactivemongo-akkastream" % reactiveMongo, "de.flapdoodle.embed" % "de.flapdoodle.embed.mongo" % embedMongoVersion % Test, - logback % Test + logback % Test, + akkaActorTyped, + akkaStreamDep ) ) diff --git a/scala-libraries-fp/src/test/resources/fs2data.txt b/scala-libraries-fp/src/test/resources/fs2data.txt new file mode 100644 index 000000000..123ce0b97 --- /dev/null +++ b/scala-libraries-fp/src/test/resources/fs2data.txt @@ -0,0 +1 @@ +Scala Cats Effect FS2 Cats Typelevel Effect Scala \ No newline at end of file diff --git a/scala-libraries-fp/src/test/scala/com/baeldung/scala/fs2/FS2SampleTest.scala b/scala-libraries-fp/src/test/scala/com/baeldung/scala/fs2/FS2SampleTest.scala index 7f42e58a2..08426b24b 100644 --- a/scala-libraries-fp/src/test/scala/com/baeldung/scala/fs2/FS2SampleTest.scala +++ b/scala-libraries-fp/src/test/scala/com/baeldung/scala/fs2/FS2SampleTest.scala @@ -11,7 +11,7 @@ class FS2SampleTest extends AsyncFlatSpec with AsyncIOSpec with Matchers { it should "read from a file and calculate word count" in { val outFile = "wc-fs2-output.log" - val loc = "scala-libraries/src/test/resources/fs2data.txt" + val loc = "scala-libraries-fp/src/test/resources/fs2data.txt" val io = Fs2Examples.readAndWriteFile(loc, outFile).compile.drain val res = io.map { _ => Source.fromFile(outFile).getLines().toList From 5fe730168bd866395f65496605575c650c7ef847 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Mon, 25 Mar 2024 20:43:42 +0100 Subject: [PATCH 0434/1318] Updated akka version --- build.sbt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/build.sbt b/build.sbt index ed70a0ab8..7f13b794e 100644 --- a/build.sbt +++ b/build.sbt @@ -11,7 +11,7 @@ val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.4" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV val logback = "ch.qos.logback" % "logback-classic" % "1.5.3" val embedMongoVersion = "4.12.2" -val AkkaVersion = "2.8.0" +val AkkaVersion = "2.8.5" val AkkaHttpVersion = "10.5.0" val scalaTestDeps = Seq( @@ -303,9 +303,9 @@ lazy val scala_akka_3 = (project in file("scala-akka-3")) name := "scala-akka-3", Defaults.itSettings, libraryDependencies ++= Seq( - "com.typesafe.akka" %% "akka-stream" % "2.8.5", - "com.typesafe.akka" %% "akka-discovery" % "2.8.5", - "com.typesafe.akka" %% "akka-stream-testkit" % "2.8.5" % Test, + "com.typesafe.akka" %% "akka-stream" % AkkaVersion, + "com.typesafe.akka" %% "akka-discovery" % AkkaVersion, + "com.typesafe.akka" %% "akka-stream-testkit" % AkkaVersion % Test, akkaActorTyped, akkaStreamDep, akkaTypedTestkit From 56a8c3e0dcb5a10d4d981be0bbcc0988e088a579 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Mon, 25 Mar 2024 21:32:37 +0100 Subject: [PATCH 0435/1318] temporarily added the slick test back to scala-libraries --- build.sbt | 4 + .../scala/slick/PlayerServiceUnitTest.scala | 462 +++++++++--------- .../scala/slick/PlayerServiceUnitTest.scala | 229 +++++++++ 3 files changed, 464 insertions(+), 231 deletions(-) create mode 100644 scala-libraries/src/test/scala-2/com/baeldung/scala/slick/PlayerServiceUnitTest.scala diff --git a/build.sbt b/build.sbt index 7f13b794e..439a7a987 100644 --- a/build.sbt +++ b/build.sbt @@ -336,6 +336,10 @@ lazy val scala_libraries = (project in file("scala-libraries")) logback % Test, akkaActorTyped, akkaStreamDep + ), + libraryDependencies ++= Seq( + "com.typesafe.slick" %% "slick" % slickVersion, + "com.h2database" % "h2" % "2.2.224", ) ) diff --git a/scala-libraries-persistence/src/test/scala/com/baeldung/scala/slick/PlayerServiceUnitTest.scala b/scala-libraries-persistence/src/test/scala/com/baeldung/scala/slick/PlayerServiceUnitTest.scala index 1f2c63337..61747ef0a 100644 --- a/scala-libraries-persistence/src/test/scala/com/baeldung/scala/slick/PlayerServiceUnitTest.scala +++ b/scala-libraries-persistence/src/test/scala/com/baeldung/scala/slick/PlayerServiceUnitTest.scala @@ -1,231 +1,231 @@ -package com.baeldung.scala.slick - -import java.sql.SQLException -import java.time.LocalDate -import com.baeldung.scala.slick.SlickTables.PlayerTable -import org.scalactic.Equality -import org.scalatest.concurrent.ScalaFutures -import org.scalatest.matchers.should.Matchers -import org.scalatest.wordspec.AsyncWordSpec -import org.scalatest.{BeforeAndAfterAll, BeforeAndAfterEach, FutureOutcome} -import slick.jdbc.H2Profile.api._ - -import scala.concurrent.Future - -class PlayerServiceUnitTest - extends AsyncWordSpec - with Matchers - with ScalaFutures - with BeforeAndAfterAll - with BeforeAndAfterEach { - - private val playerTable = TableQuery[PlayerTable] - lazy val db = Connection.db - - "PlayerService" should { - "insert a player to the table and filter by country" in { - val player = Player(100L, "Steffi", "Germany", None) - val insertPlayerQuery = playerTable += player - val insertResult: Future[Int] = db.run(insertPlayerQuery) - insertResult flatMap { insertStatus => - insertStatus shouldBe 1 - - // get inserted record from database and check - val germanPlayersQuery = playerTable.filter(_.country === "Germany") - val germanPlayers: Future[Seq[Player]] = - db.run(germanPlayersQuery.result) - germanPlayers map { allPlayers => - allPlayers.find(_.name == "Steffi").get shouldEqual player - } - } - } - - "insert multiple players together" in { - val steffi = Player(100L, "Steffi", "Germany", None) - val sharapova = Player(100L, "Sharapova", "Russia", None) - - db.run(playerTable ++= (Seq(steffi, sharapova))) flatMap { - insertMultipleResult => - insertMultipleResult should contain(2) - - db.run(playerTable.result) map { playersFromDB => - playersFromDB should contain allElementsOf (Seq(steffi, sharapova)) - playersFromDB - .map(_.id) - .forall(_ > 0) shouldBe true // verify auto-increment field - } - } - } - - "insert and then update the country field of a player" in { - // force insert a record - val player = Player(500L, "Boris", "Deutschland", None) - val forceInsertAction = playerTable.forceInsert(player) - db.run(forceInsertAction).flatMap { insertedResult => - val updateCountryAction = - playerTable - .filter(_.id === 500L) - .map(_.country) - .update("Germany") - db.run(updateCountryAction).flatMap { updateResult => - db.run(playerTable.filter(_.id === 500L).result).map { filterResult => - filterResult.size shouldBe 1 - filterResult.head.country shouldBe "Germany" - } - } - } - } - - "update DoB field of a player" in { - db.run(playerTable.filter(_.name === "Serena").result) flatMap { - foundSerena => - foundSerena should not be empty - - val newDoB = Option(LocalDate.parse("1981-09-26")) - db.run( - playerTable - .filter(_.id === foundSerena.head.id) - .map(_.dob) - .update(newDoB) - ) flatMap { updateResult => - updateResult shouldBe 1 - - db.run(playerTable.result) map { serenasAgain => - val serena = serenasAgain.find(_.name == "Serena") - serena.flatMap(_.dob).get shouldBe newDoB.get - } - } - } - } - - "delete a player from the table by name" in { - val deleteAction = playerTable.filter(_.name === "Nadal").delete - db.run(deleteAction) flatMap { deleteStatus => - deleteStatus shouldBe 1 - - db.run(playerTable.filter(_.name === "Nadal").result) map { nadal => - nadal shouldBe empty - } - } - } - - "combine multiple actions together and execute" in { - val player1 = Player(100L, "Steffi", "Germany", None) - val player2 = Player(100L, "Sharapova", "Russia", None) - - val insertAction = playerTable += player1 - val insertAnotherAction = playerTable += player2 - val updateAction = playerTable - .filter(_.name === "Federer") - .map(_.country) - .update("Swiss") - val combinedAction = - DBIO.seq(insertAction, updateAction, insertAnotherAction) - db.run[Unit] { - combinedAction.transactionally - } flatMap { _ => - db.run(playerTable.result) map { allPlayers => - allPlayers should contain allOf (player1, player2) - allPlayers.find(_.name == "Federer").map(_.country) should contain( - "Swiss" - ) - } - } - } - - "rollback the entire transaction if a failure occur" in { - val steffi = Player(100L, "Steffi", "Germany", None) - val sharapova = Player(100L, "Sharapova", "Russia", None) - // doing force insert to make the second insertion fail - val insertAction1 = playerTable.forceInsert(steffi) - val insertAction2 = playerTable.forceInsert(sharapova) - val transactionAction = insertAction1.andThen(insertAction2) - - recoverToExceptionIf[SQLException] { - db.run(transactionAction.transactionally) - } flatMap { ex => - ex.getMessage should include("primary key violation") - - db.run(playerTable.result) map { allPlayers => - allPlayers should contain noneOf (steffi, sharapova) - } - } - } - - "update multiple records in a single query" in { - val updateMultipleAction = playerTable - .filter(_.country === "Swiss") - .map(_.country) - .update("Switzerland") - val updatedRowsFut = db.run(updateMultipleAction) - updatedRowsFut flatMap { updatedRows => - updatedRows shouldBe 2 - - db.run(playerTable.filter(_.country === "Switzerland").result) map { - swissPlayers => - swissPlayers.size shouldBe 2 - swissPlayers - .map(_.name) should contain allElementsOf (Seq( - "Federer", - "Hingis" - )) - } - } - } - } - - "retrieve the records from the database using sql interpolator" in { - val selectCountryAction: DBIO[Seq[String]] = - sql"""select "name" from "Player" where "country" = 'Spain' """.as[String] - db.run(selectCountryAction) map { spainPlayers => - spainPlayers.size shouldBe 1 - spainPlayers.head shouldBe "Nadal" - } - } - - // This val will be initialized once for test suite with the result of a Future call to create a Table - private val createTableFut = createTable - private val federer = - Player(0L, "Federer", "Swiss", Some(LocalDate.parse("1981-08-08"))) - private val nadal = - Player(0L, "Nadal", "Spain", Some(LocalDate.parse("1986-06-03"))) - private val serena = Player(0L, "Serena", "USA", None) - private val murray = Player(0L, "Murray", "Britain", None) - private val higis = Player(0L, "Hingis", "Swiss", None) - private val players = Seq(federer, nadal, serena, murray, higis) - - // Implicit comparator to skip ID field comparison - implicit private val aEq: Equality[Player] = (a: Player, b: Any) => - b match { - case Player(_, name, country, dob) => - a.name == name && a.country == country && a.dob == dob - case _ => false - } - - override def withFixture(test: NoArgAsyncTest) = - new FutureOutcome(for { - _ <- createTableFut - _ <- clearAll - // Insert multiple players together using ++= - _ <- db.run(playerTable ++= players) - testResult <- super.withFixture(test).toFuture - } yield { - testResult - }) - - def createTable: Future[Int] = { - val createQuery: DBIO[Int] = - sqlu"""create table "Player"( - "player_id" bigserial primary key, - "name" varchar not null, - "country" varchar not null, - "dob" date - ) """ - - db.run(createQuery) - } - - def clearAll: Future[Int] = { - db.run(playerTable.delete) - } -} +//package com.baeldung.scala.slick +// +//import java.sql.SQLException +//import java.time.LocalDate +//import com.baeldung.scala.slick.SlickTables.PlayerTable +//import org.scalactic.Equality +//import org.scalatest.concurrent.ScalaFutures +//import org.scalatest.matchers.should.Matchers +//import org.scalatest.wordspec.AsyncWordSpec +//import org.scalatest.{BeforeAndAfterAll, BeforeAndAfterEach, FutureOutcome} +//import slick.jdbc.H2Profile.api._ +// +//import scala.concurrent.Future +// +//class PlayerServiceUnitTest +// extends AsyncWordSpec +// with Matchers +// with ScalaFutures +// with BeforeAndAfterAll +// with BeforeAndAfterEach { +// +// private val playerTable = TableQuery[PlayerTable] +// lazy val db = Connection.db +// +// "PlayerService" should { +// "insert a player to the table and filter by country" in { +// val player = Player(100L, "Steffi", "Germany", None) +// val insertPlayerQuery = playerTable += player +// val insertResult: Future[Int] = db.run(insertPlayerQuery) +// insertResult flatMap { insertStatus => +// insertStatus shouldBe 1 +// +// // get inserted record from database and check +// val germanPlayersQuery = playerTable.filter(_.country === "Germany") +// val germanPlayers: Future[Seq[Player]] = +// db.run(germanPlayersQuery.result) +// germanPlayers map { allPlayers => +// allPlayers.find(_.name == "Steffi").get shouldEqual player +// } +// } +// } +// +// "insert multiple players together" in { +// val steffi = Player(100L, "Steffi", "Germany", None) +// val sharapova = Player(100L, "Sharapova", "Russia", None) +// +// db.run(playerTable ++= (Seq(steffi, sharapova))) flatMap { +// insertMultipleResult => +// insertMultipleResult should contain(2) +// +// db.run(playerTable.result) map { playersFromDB => +// playersFromDB should contain allElementsOf (Seq(steffi, sharapova)) +// playersFromDB +// .map(_.id) +// .forall(_ > 0) shouldBe true // verify auto-increment field +// } +// } +// } +// +// "insert and then update the country field of a player" in { +// // force insert a record +// val player = Player(500L, "Boris", "Deutschland", None) +// val forceInsertAction = playerTable.forceInsert(player) +// db.run(forceInsertAction).flatMap { insertedResult => +// val updateCountryAction = +// playerTable +// .filter(_.id === 500L) +// .map(_.country) +// .update("Germany") +// db.run(updateCountryAction).flatMap { updateResult => +// db.run(playerTable.filter(_.id === 500L).result).map { filterResult => +// filterResult.size shouldBe 1 +// filterResult.head.country shouldBe "Germany" +// } +// } +// } +// } +// +// "update DoB field of a player" in { +// db.run(playerTable.filter(_.name === "Serena").result) flatMap { +// foundSerena => +// foundSerena should not be empty +// +// val newDoB = Option(LocalDate.parse("1981-09-26")) +// db.run( +// playerTable +// .filter(_.id === foundSerena.head.id) +// .map(_.dob) +// .update(newDoB) +// ) flatMap { updateResult => +// updateResult shouldBe 1 +// +// db.run(playerTable.result) map { serenasAgain => +// val serena = serenasAgain.find(_.name == "Serena") +// serena.flatMap(_.dob).get shouldBe newDoB.get +// } +// } +// } +// } +// +// "delete a player from the table by name" in { +// val deleteAction = playerTable.filter(_.name === "Nadal").delete +// db.run(deleteAction) flatMap { deleteStatus => +// deleteStatus shouldBe 1 +// +// db.run(playerTable.filter(_.name === "Nadal").result) map { nadal => +// nadal shouldBe empty +// } +// } +// } +// +// "combine multiple actions together and execute" in { +// val player1 = Player(100L, "Steffi", "Germany", None) +// val player2 = Player(100L, "Sharapova", "Russia", None) +// +// val insertAction = playerTable += player1 +// val insertAnotherAction = playerTable += player2 +// val updateAction = playerTable +// .filter(_.name === "Federer") +// .map(_.country) +// .update("Swiss") +// val combinedAction = +// DBIO.seq(insertAction, updateAction, insertAnotherAction) +// db.run[Unit] { +// combinedAction.transactionally +// } flatMap { _ => +// db.run(playerTable.result) map { allPlayers => +// allPlayers should contain allOf (player1, player2) +// allPlayers.find(_.name == "Federer").map(_.country) should contain( +// "Swiss" +// ) +// } +// } +// } +// +// "rollback the entire transaction if a failure occur" in { +// val steffi = Player(100L, "Steffi", "Germany", None) +// val sharapova = Player(100L, "Sharapova", "Russia", None) +// // doing force insert to make the second insertion fail +// val insertAction1 = playerTable.forceInsert(steffi) +// val insertAction2 = playerTable.forceInsert(sharapova) +// val transactionAction = insertAction1.andThen(insertAction2) +// +// recoverToExceptionIf[SQLException] { +// db.run(transactionAction.transactionally) +// } flatMap { ex => +// ex.getMessage should include("primary key violation") +// +// db.run(playerTable.result) map { allPlayers => +// allPlayers should contain noneOf (steffi, sharapova) +// } +// } +// } +// +// "update multiple records in a single query" in { +// val updateMultipleAction = playerTable +// .filter(_.country === "Swiss") +// .map(_.country) +// .update("Switzerland") +// val updatedRowsFut = db.run(updateMultipleAction) +// updatedRowsFut flatMap { updatedRows => +// updatedRows shouldBe 2 +// +// db.run(playerTable.filter(_.country === "Switzerland").result) map { +// swissPlayers => +// swissPlayers.size shouldBe 2 +// swissPlayers +// .map(_.name) should contain allElementsOf (Seq( +// "Federer", +// "Hingis" +// )) +// } +// } +// } +// } +// +// "retrieve the records from the database using sql interpolator" in { +// val selectCountryAction: DBIO[Seq[String]] = +// sql"""select "name" from "Player" where "country" = 'Spain' """.as[String] +// db.run(selectCountryAction) map { spainPlayers => +// spainPlayers.size shouldBe 1 +// spainPlayers.head shouldBe "Nadal" +// } +// } +// +// // This val will be initialized once for test suite with the result of a Future call to create a Table +// private val createTableFut = createTable +// private val federer = +// Player(0L, "Federer", "Swiss", Some(LocalDate.parse("1981-08-08"))) +// private val nadal = +// Player(0L, "Nadal", "Spain", Some(LocalDate.parse("1986-06-03"))) +// private val serena = Player(0L, "Serena", "USA", None) +// private val murray = Player(0L, "Murray", "Britain", None) +// private val higis = Player(0L, "Hingis", "Swiss", None) +// private val players = Seq(federer, nadal, serena, murray, higis) +// +// // Implicit comparator to skip ID field comparison +// implicit private val aEq: Equality[Player] = (a: Player, b: Any) => +// b match { +// case Player(_, name, country, dob) => +// a.name == name && a.country == country && a.dob == dob +// case _ => false +// } +// +// override def withFixture(test: NoArgAsyncTest) = +// new FutureOutcome(for { +// _ <- createTableFut +// _ <- clearAll +// // Insert multiple players together using ++= +// _ <- db.run(playerTable ++= players) +// testResult <- super.withFixture(test).toFuture +// } yield { +// testResult +// }) +// +// def createTable: Future[Int] = { +// val createQuery: DBIO[Int] = +// sqlu"""create table "Player"( +// "player_id" bigserial primary key, +// "name" varchar not null, +// "country" varchar not null, +// "dob" date +// ) """ +// +// db.run(createQuery) +// } +// +// def clearAll: Future[Int] = { +// db.run(playerTable.delete) +// } +//} diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/slick/PlayerServiceUnitTest.scala b/scala-libraries/src/test/scala-2/com/baeldung/scala/slick/PlayerServiceUnitTest.scala new file mode 100644 index 000000000..5b0a562c8 --- /dev/null +++ b/scala-libraries/src/test/scala-2/com/baeldung/scala/slick/PlayerServiceUnitTest.scala @@ -0,0 +1,229 @@ +package com.baeldung.scala.slick + +import org.scalactic.Equality +import org.scalatest.concurrent.ScalaFutures +import org.scalatest.matchers.should.Matchers +import org.scalatest.wordspec.AsyncWordSpec +import org.scalatest.{BeforeAndAfterAll, BeforeAndAfterEach, FutureOutcome} + +import java.sql.SQLException +import java.time.LocalDate +import scala.concurrent.Future + +class PlayerServiceUnitTest + extends AsyncWordSpec + with Matchers + with ScalaFutures + with BeforeAndAfterAll + with BeforeAndAfterEach { + + private val playerTable = TableQuery[PlayerTable] + lazy val db = Connection.db + + "PlayerService" should { + "insert a player to the table and filter by country" in { + val player = Player(100L, "Steffi", "Germany", None) + val insertPlayerQuery = playerTable += player + val insertResult: Future[Int] = db.run(insertPlayerQuery) + insertResult flatMap { insertStatus => + insertStatus shouldBe 1 + + // get inserted record from database and check + val germanPlayersQuery = playerTable.filter(_.country === "Germany") + val germanPlayers: Future[Seq[Player]] = + db.run(germanPlayersQuery.result) + germanPlayers map { allPlayers => + allPlayers.find(_.name == "Steffi").get shouldEqual player + } + } + } + + "insert multiple players together" in { + val steffi = Player(100L, "Steffi", "Germany", None) + val sharapova = Player(100L, "Sharapova", "Russia", None) + + db.run(playerTable ++= (Seq(steffi, sharapova))) flatMap { + insertMultipleResult => + insertMultipleResult should contain(2) + + db.run(playerTable.result) map { playersFromDB => + playersFromDB should contain allElementsOf (Seq(steffi, sharapova)) + playersFromDB + .map(_.id) + .forall(_ > 0) shouldBe true // verify auto-increment field + } + } + } + + "insert and then update the country field of a player" in { + // force insert a record + val player = Player(500L, "Boris", "Deutschland", None) + val forceInsertAction = playerTable.forceInsert(player) + db.run(forceInsertAction).flatMap { insertedResult => + val updateCountryAction = + playerTable + .filter(_.id === 500L) + .map(_.country) + .update("Germany") + db.run(updateCountryAction).flatMap { updateResult => + db.run(playerTable.filter(_.id === 500L).result).map { filterResult => + filterResult.size shouldBe 1 + filterResult.head.country shouldBe "Germany" + } + } + } + } + + "update DoB field of a player" in { + db.run(playerTable.filter(_.name === "Serena").result) flatMap { + foundSerena => + foundSerena should not be empty + + val newDoB = Option(LocalDate.parse("1981-09-26")) + db.run( + playerTable + .filter(_.id === foundSerena.head.id) + .map(_.dob) + .update(newDoB) + ) flatMap { updateResult => + updateResult shouldBe 1 + + db.run(playerTable.result) map { serenasAgain => + val serena = serenasAgain.find(_.name == "Serena") + serena.flatMap(_.dob).get shouldBe newDoB.get + } + } + } + } + + "delete a player from the table by name" in { + val deleteAction = playerTable.filter(_.name === "Nadal").delete + db.run(deleteAction) flatMap { deleteStatus => + deleteStatus shouldBe 1 + + db.run(playerTable.filter(_.name === "Nadal").result) map { nadal => + nadal shouldBe empty + } + } + } + + "combine multiple actions together and execute" in { + val player1 = Player(100L, "Steffi", "Germany", None) + val player2 = Player(100L, "Sharapova", "Russia", None) + + val insertAction = playerTable += player1 + val insertAnotherAction = playerTable += player2 + val updateAction = playerTable + .filter(_.name === "Federer") + .map(_.country) + .update("Swiss") + val combinedAction = + DBIO.seq(insertAction, updateAction, insertAnotherAction) + db.run[Unit] { + combinedAction.transactionally + } flatMap { _ => + db.run(playerTable.result) map { allPlayers => + allPlayers should contain allOf (player1, player2) + allPlayers.find(_.name == "Federer").map(_.country) should contain( + "Swiss" + ) + } + } + } + + "rollback the entire transaction if a failure occur" in { + val steffi = Player(100L, "Steffi", "Germany", None) + val sharapova = Player(100L, "Sharapova", "Russia", None) + // doing force insert to make the second insertion fail + val insertAction1 = playerTable.forceInsert(steffi) + val insertAction2 = playerTable.forceInsert(sharapova) + val transactionAction = insertAction1.andThen(insertAction2) + + recoverToExceptionIf[SQLException] { + db.run(transactionAction.transactionally) + } flatMap { ex => + ex.getMessage should include("primary key violation") + + db.run(playerTable.result) map { allPlayers => + allPlayers should contain noneOf (steffi, sharapova) + } + } + } + + "update multiple records in a single query" in { + val updateMultipleAction = playerTable + .filter(_.country === "Swiss") + .map(_.country) + .update("Switzerland") + val updatedRowsFut = db.run(updateMultipleAction) + updatedRowsFut flatMap { updatedRows => + updatedRows shouldBe 2 + + db.run(playerTable.filter(_.country === "Switzerland").result) map { + swissPlayers => + swissPlayers.size shouldBe 2 + swissPlayers + .map(_.name) should contain allElementsOf (Seq( + "Federer", + "Hingis" + )) + } + } + } + } + + "retrieve the records from the database using sql interpolator" in { + val selectCountryAction: DBIO[Seq[String]] = + sql"""select "name" from "Player" where "country" = 'Spain' """.as[String] + db.run(selectCountryAction) map { spainPlayers => + spainPlayers.size shouldBe 1 + spainPlayers.head shouldBe "Nadal" + } + } + + // This val will be initialized once for test suite with the result of a Future call to create a Table + private val createTableFut = createTable + private val federer = + Player(0L, "Federer", "Swiss", Some(LocalDate.parse("1981-08-08"))) + private val nadal = + Player(0L, "Nadal", "Spain", Some(LocalDate.parse("1986-06-03"))) + private val serena = Player(0L, "Serena", "USA", None) + private val murray = Player(0L, "Murray", "Britain", None) + private val higis = Player(0L, "Hingis", "Swiss", None) + private val players = Seq(federer, nadal, serena, murray, higis) + + // Implicit comparator to skip ID field comparison + implicit private val aEq: Equality[Player] = (a: Player, b: Any) => + b match { + case Player(_, name, country, dob) => + a.name == name && a.country == country && a.dob == dob + case _ => false + } + + override def withFixture(test: NoArgAsyncTest) = + new FutureOutcome(for { + _ <- createTableFut + _ <- clearAll + // Insert multiple players together using ++= + _ <- db.run(playerTable ++= players) + testResult <- super.withFixture(test).toFuture + } yield { + testResult + }) + + def createTable: Future[Int] = { + val createQuery: DBIO[Int] = + sqlu"""create table "Player"( + "player_id" bigserial primary key, + "name" varchar not null, + "country" varchar not null, + "dob" date + ) """ + + db.run(createQuery) + } + + def clearAll: Future[Int] = { + db.run(playerTable.delete) + } +} From 214571690e1f8dcfe03fea0da395b047d45b8465 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Mon, 25 Mar 2024 22:12:56 +0100 Subject: [PATCH 0436/1318] temporarily moved slick back to scala-libraries module --- build.sbt | 2 +- .../com/baeldung/scala/skunk/Session.scala | 72 ------------------- .../scala/slick/PlayerServiceUnitTest.scala | 2 + 3 files changed, 3 insertions(+), 73 deletions(-) delete mode 100644 scala-libraries-4/src/test/scala-2/com/baeldung/scala/skunk/Session.scala diff --git a/build.sbt b/build.sbt index 439a7a987..6f7ebe2f3 100644 --- a/build.sbt +++ b/build.sbt @@ -448,7 +448,6 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) libraryDependencies ++= Seq( "org.scala-lang.modules" %% "scala-async" % "1.0.1", scalaReflection % Provided, - "org.tpolecat" %% "skunk-core" % "0.6.3", logback, "com.typesafe.scala-logging" %% "scala-logging" % "3.9.5" ), @@ -554,6 +553,7 @@ lazy val scala_libraries_persistence = (project in file("scala-libraries-persist libraryDependencies ++= Seq( "com.typesafe.slick" %% "slick" % slickVersion, "com.h2database" % "h2" % "2.2.224", + "org.tpolecat" %% "skunk-core" % "0.6.3", ) ) diff --git a/scala-libraries-4/src/test/scala-2/com/baeldung/scala/skunk/Session.scala b/scala-libraries-4/src/test/scala-2/com/baeldung/scala/skunk/Session.scala deleted file mode 100644 index 144cecece..000000000 --- a/scala-libraries-4/src/test/scala-2/com/baeldung/scala/skunk/Session.scala +++ /dev/null @@ -1,72 +0,0 @@ -package com.baeldung.scala.skunk - -import cats.effect.{IO, IOApp} -import cats.effect.kernel.Resource -import skunk.{Query, Session} -import cats.effect._ -import natchez.Trace.Implicits.noop -import skunk._ -import skunk.implicits._ -import skunk.codec.all._ - -object Skunk { - case class User(id: Int, username: String, email: String, age: Int) - - def createSession(): Resource[IO, Session[IO]] = - Session.single[IO]( - host = "localhost", - user = "baeldung", - database = "baeldung", - password = Some("baeldung"), - port = 5432 - ) - - def getAllUsers(resource: Resource[IO, Session[IO]]) = { - val query: Query[Void, Int *: String *: String *: Int *: EmptyTuple] = - sql"SELECT * FROM Users" - .query(int4 *: varchar(255) *: varchar(255) *: int4) - - val mappedQuery = query.to[User] - val results: IO[List[User]] = resource.use(s => s.execute(mappedQuery)) - results - } - - def getUserWithId(resource: Resource[IO, Session[IO]]) = { - val userDecoder: Decoder[User] = - (int4 *: varchar(255) *: varchar(255) *: int4).to[User] - val query: Query[(Int *: String *: EmptyTuple), User] = - sql""" - SELECT * FROM Users WHERE - id = $int4 AND username LIKE $varchar - """ - .query(userDecoder) - - val preparedQuery - : Resource[IO, PreparedQuery[IO, Int *: String *: EmptyTuple, User]] = - resource - .flatMap(session => session.prepareR(query)) - - preparedQuery.use(pq => pq.unique(1, "baeldungUser")) - } - - def removeUserWithId(resource: Resource[IO, Session[IO]]) = { - val command: Command[Void] = - sql""" - DELETE FROM Users WHERE - id = 5 - """.command - - resource.use(session => session.execute(command)) - } - - def removePrepared(resource: Resource[IO, Session[IO]]) = { - val command: Command[Int *: String *: EmptyTuple] = - sql""" - DELETE FROM Users WHERE - id = $int4 and username = $varchar - """.command - resource - .flatMap(session => session.prepareR(command)) - .use(pc => pc.execute((1, "baeldungUser"))) - } -} diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/slick/PlayerServiceUnitTest.scala b/scala-libraries/src/test/scala-2/com/baeldung/scala/slick/PlayerServiceUnitTest.scala index 5b0a562c8..328ff4ba0 100644 --- a/scala-libraries/src/test/scala-2/com/baeldung/scala/slick/PlayerServiceUnitTest.scala +++ b/scala-libraries/src/test/scala-2/com/baeldung/scala/slick/PlayerServiceUnitTest.scala @@ -5,6 +5,8 @@ import org.scalatest.concurrent.ScalaFutures import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AsyncWordSpec import org.scalatest.{BeforeAndAfterAll, BeforeAndAfterEach, FutureOutcome} +import slick.jdbc.H2Profile.api._ +import com.baeldung.scala.slick.SlickTables.PlayerTable import java.sql.SQLException import java.time.LocalDate From 43d1f43aab855cbfb793603f9ec02b5222d7569b Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Mon, 25 Mar 2024 22:13:08 +0100 Subject: [PATCH 0437/1318] temporarily moved slick back to scala-libraries module --- .../com/baeldung/scala/skunk/Session.scala | 72 +++++++++++++++++++ .../com/baeldung/scala/slick/Connection.scala | 9 +++ .../com/baeldung/scala/slick/Entities.scala | 10 +++ .../baeldung/scala/slick/SlickTables.scala | 19 +++++ 4 files changed, 110 insertions(+) create mode 100644 scala-libraries-persistence/src/test/scala/com/baeldung/scala/skunk/Session.scala create mode 100644 scala-libraries/src/main/scala-2/com/baeldung/scala/slick/Connection.scala create mode 100644 scala-libraries/src/main/scala-2/com/baeldung/scala/slick/Entities.scala create mode 100644 scala-libraries/src/main/scala-2/com/baeldung/scala/slick/SlickTables.scala diff --git a/scala-libraries-persistence/src/test/scala/com/baeldung/scala/skunk/Session.scala b/scala-libraries-persistence/src/test/scala/com/baeldung/scala/skunk/Session.scala new file mode 100644 index 000000000..144cecece --- /dev/null +++ b/scala-libraries-persistence/src/test/scala/com/baeldung/scala/skunk/Session.scala @@ -0,0 +1,72 @@ +package com.baeldung.scala.skunk + +import cats.effect.{IO, IOApp} +import cats.effect.kernel.Resource +import skunk.{Query, Session} +import cats.effect._ +import natchez.Trace.Implicits.noop +import skunk._ +import skunk.implicits._ +import skunk.codec.all._ + +object Skunk { + case class User(id: Int, username: String, email: String, age: Int) + + def createSession(): Resource[IO, Session[IO]] = + Session.single[IO]( + host = "localhost", + user = "baeldung", + database = "baeldung", + password = Some("baeldung"), + port = 5432 + ) + + def getAllUsers(resource: Resource[IO, Session[IO]]) = { + val query: Query[Void, Int *: String *: String *: Int *: EmptyTuple] = + sql"SELECT * FROM Users" + .query(int4 *: varchar(255) *: varchar(255) *: int4) + + val mappedQuery = query.to[User] + val results: IO[List[User]] = resource.use(s => s.execute(mappedQuery)) + results + } + + def getUserWithId(resource: Resource[IO, Session[IO]]) = { + val userDecoder: Decoder[User] = + (int4 *: varchar(255) *: varchar(255) *: int4).to[User] + val query: Query[(Int *: String *: EmptyTuple), User] = + sql""" + SELECT * FROM Users WHERE + id = $int4 AND username LIKE $varchar + """ + .query(userDecoder) + + val preparedQuery + : Resource[IO, PreparedQuery[IO, Int *: String *: EmptyTuple, User]] = + resource + .flatMap(session => session.prepareR(query)) + + preparedQuery.use(pq => pq.unique(1, "baeldungUser")) + } + + def removeUserWithId(resource: Resource[IO, Session[IO]]) = { + val command: Command[Void] = + sql""" + DELETE FROM Users WHERE + id = 5 + """.command + + resource.use(session => session.execute(command)) + } + + def removePrepared(resource: Resource[IO, Session[IO]]) = { + val command: Command[Int *: String *: EmptyTuple] = + sql""" + DELETE FROM Users WHERE + id = $int4 and username = $varchar + """.command + resource + .flatMap(session => session.prepareR(command)) + .use(pc => pc.execute((1, "baeldungUser"))) + } +} diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/slick/Connection.scala b/scala-libraries/src/main/scala-2/com/baeldung/scala/slick/Connection.scala new file mode 100644 index 000000000..e427dd0ad --- /dev/null +++ b/scala-libraries/src/main/scala-2/com/baeldung/scala/slick/Connection.scala @@ -0,0 +1,9 @@ +package com.baeldung.scala.slick + +import slick.jdbc.H2Profile.api._ + +object Connection { + + val db = Database.forConfig("h2mem") + +} diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/slick/Entities.scala b/scala-libraries/src/main/scala-2/com/baeldung/scala/slick/Entities.scala new file mode 100644 index 000000000..c96da944f --- /dev/null +++ b/scala-libraries/src/main/scala-2/com/baeldung/scala/slick/Entities.scala @@ -0,0 +1,10 @@ +package com.baeldung.scala.slick + +import java.time.LocalDate + +case class Player( + id: Long, + name: String, + country: String, + dob: Option[LocalDate] +) diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/slick/SlickTables.scala b/scala-libraries/src/main/scala-2/com/baeldung/scala/slick/SlickTables.scala new file mode 100644 index 000000000..a3b4fa826 --- /dev/null +++ b/scala-libraries/src/main/scala-2/com/baeldung/scala/slick/SlickTables.scala @@ -0,0 +1,19 @@ +package com.baeldung.scala.slick + +import java.time.LocalDate + +import slick.jdbc.H2Profile.api._ + +object SlickTables { + + class PlayerTable(tag: Tag) extends Table[Player](tag, None, "Player") { + override def * = (id, name, country, dob).mapTo[Player] + + val id: Rep[Long] = column[Long]("player_id", O.AutoInc, O.PrimaryKey) + val name: Rep[String] = column[String]("name") + val country: Rep[String] = column[String]("country") + val dob: Rep[Option[LocalDate]] = + column[Option[LocalDate]]("dob", O.Default(None)) + } + +} From b0ef6a2bfd5e27179d8a85c4a1e3c7b35459c875 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Mon, 25 Mar 2024 22:24:27 +0100 Subject: [PATCH 0438/1318] moved doobie to new module --- build.sbt | 4 +- scala-libraries-4/README.md | 1 - scala-libraries-persistence/README.md | 6 +- .../baeldung}/doobie/DoobieFragments.scala | 2 +- .../baeldung}/doobie/DoobieQuickStart.scala | 2 +- scala3-libraries/README.md | 1 - .../datavalidation/DataValidation.scala | 129 ------------------ 7 files changed, 9 insertions(+), 136 deletions(-) rename {scala3-libraries/src/main/scala/com/baledung => scala-libraries-persistence/src/main/scala/com/baeldung}/doobie/DoobieFragments.scala (97%) rename {scala3-libraries/src/main/scala/com/baledung => scala-libraries-persistence/src/main/scala/com/baeldung}/doobie/DoobieQuickStart.scala (98%) delete mode 100644 scala3-libraries/src/main/scala/com/baledung/datavalidation/DataValidation.scala diff --git a/build.sbt b/build.sbt index 6f7ebe2f3..8097e6c12 100644 --- a/build.sbt +++ b/build.sbt @@ -554,6 +554,8 @@ lazy val scala_libraries_persistence = (project in file("scala-libraries-persist "com.typesafe.slick" %% "slick" % slickVersion, "com.h2database" % "h2" % "2.2.224", "org.tpolecat" %% "skunk-core" % "0.6.3", + doobieCore, + doobiePGDep, ) ) @@ -704,8 +706,6 @@ lazy val scala3_libraries = (project in file("scala3-libraries")) libraryDependencies ++= Seq( "com.github.japgolly.clearconfig" %% "core" % "3.1.0", munitDep, - doobieCore, - doobiePGDep, catsEffect ) ) diff --git a/scala-libraries-4/README.md b/scala-libraries-4/README.md index bc0972325..d914a062a 100644 --- a/scala-libraries-4/README.md +++ b/scala-libraries-4/README.md @@ -1,7 +1,6 @@ ## Relevant Articles - [Introduction to scala-async](https://www.baeldung.com/scala/scala-async) -- [Introduction to Skunk – Scala Driver for PostgreSQL](https://www.baeldung.com/scala/skunk-postgresql-driver) - [Apache Pulsar Scala Client – pulsar4s](https://www.baeldung.com/scala/pulsar4s) - [Logging in Scala Applications Using Scala-Logging](https://www.baeldung.com/scala/scala-logging) - [Making Integration Testing Easier With TestContainers-scala](https://www.baeldung.com/scala/testcontainers-scala) diff --git a/scala-libraries-persistence/README.md b/scala-libraries-persistence/README.md index d0dc4efc8..e9559d86a 100644 --- a/scala-libraries-persistence/README.md +++ b/scala-libraries-persistence/README.md @@ -1,2 +1,6 @@ //from scala-libraries -- [Introduction to Slick](https://www.baeldung.com/scala/slick-intro) \ No newline at end of file +- [Introduction to Slick](https://www.baeldung.com/scala/slick-intro) +//from scala-libraries-4 +- [Introduction to Skunk – Scala Driver for PostgreSQL](https://www.baeldung.com/scala/skunk-postgresql-driver) +//from scala3-libraries +- [Introduction to doobie – a JDBC Layer for Scala](https://www.baeldung.com/scala/doobie-intro) \ No newline at end of file diff --git a/scala3-libraries/src/main/scala/com/baledung/doobie/DoobieFragments.scala b/scala-libraries-persistence/src/main/scala/com/baeldung/doobie/DoobieFragments.scala similarity index 97% rename from scala3-libraries/src/main/scala/com/baledung/doobie/DoobieFragments.scala rename to scala-libraries-persistence/src/main/scala/com/baeldung/doobie/DoobieFragments.scala index 9017794ae..766ec2e30 100644 --- a/scala3-libraries/src/main/scala/com/baledung/doobie/DoobieFragments.scala +++ b/scala-libraries-persistence/src/main/scala/com/baeldung/doobie/DoobieFragments.scala @@ -1,4 +1,4 @@ -package com.baledung.doobie +package com.baeldung.doobie import cats.effect.{IO, IOApp} import doobie.implicits._ diff --git a/scala3-libraries/src/main/scala/com/baledung/doobie/DoobieQuickStart.scala b/scala-libraries-persistence/src/main/scala/com/baeldung/doobie/DoobieQuickStart.scala similarity index 98% rename from scala3-libraries/src/main/scala/com/baledung/doobie/DoobieQuickStart.scala rename to scala-libraries-persistence/src/main/scala/com/baeldung/doobie/DoobieQuickStart.scala index 8831d8ab5..2f17e43da 100644 --- a/scala3-libraries/src/main/scala/com/baledung/doobie/DoobieQuickStart.scala +++ b/scala-libraries-persistence/src/main/scala/com/baeldung/doobie/DoobieQuickStart.scala @@ -1,4 +1,4 @@ -package com.baledung.doobie +package com.baeldung.doobie import cats.effect.{IO, IOApp} import doobie.implicits._ diff --git a/scala3-libraries/README.md b/scala3-libraries/README.md index 7105c8086..5e9cc8d63 100644 --- a/scala3-libraries/README.md +++ b/scala3-libraries/README.md @@ -1,4 +1,3 @@ ### Relevant Articles: - [Scala App Configurations With Clarity Using ClearConfig](https://www.baeldung.com/scala/clearconfig) -- [Introduction to doobie – a JDBC Layer for Scala](https://www.baeldung.com/scala/doobie-intro) diff --git a/scala3-libraries/src/main/scala/com/baledung/datavalidation/DataValidation.scala b/scala3-libraries/src/main/scala/com/baledung/datavalidation/DataValidation.scala deleted file mode 100644 index f1b12f4d4..000000000 --- a/scala3-libraries/src/main/scala/com/baledung/datavalidation/DataValidation.scala +++ /dev/null @@ -1,129 +0,0 @@ -package com.baeldung.datavalidation - -import cats.effect.{IOApp, IO, ExitCode} -import cats.data.{EitherNec, ValidatedNec, Validated} -import cats.data.Validated.{Valid, Invalid} -import cats.syntax.all.* - -object Utilities: - case class Country(value: String) - object Country: - private val countries = List("uganda", "kenya", "tanzania") - def apply(value: String): Option[Country] = - Some(value) - .filter(v => countries.contains(v.toLowerCase)) - .map(c => new Country(c.toLowerCase)) - - case class Age(value: Int) - object Age: - def apply(value: Int): Option[Age] = - Some(value).filter(_ >= 25).map(new Age(_)) - - case class Cgpa(value: Double) - object Cgpa: - def apply(value: Double): Option[Cgpa] = - Some(value).filter(_ >= 3.0).map(new Cgpa(_)) - -object Version1: - import Utilities.* - - case class Scholarship(country: Country, age: Age, cgpa: Cgpa) - object Scholarship: - def apply( - value1: String, - value2: Int, - value3: Double - ): EitherNec[String, Scholarship] = - ( - Country(value1).toRightNec("Invalid Coutry"), - Age(value2).toRightNec("Invalid Age"), - Cgpa(value3).toRightNec("Invalid Cgpa") - ).parMapN( - Scholarship.apply - ) - -object Version2: - import Utilities.* - - case class Scholarship(country: Country, age: Age, cgpa: Cgpa) - object Scholarship: - def apply( - value1: String, - value2: Int, - value3: Double - ): ValidatedNec[String, Scholarship] = - ( - Country(value1).toValidNec("Invalid Coutry"), - Age(value2).toValidNec("Invalid Age"), - Cgpa(value3).toValidNec("Invalid Cgpa") - ).mapN( - Scholarship.apply - ) - -object Utilities2: - sealed trait ScholarshipValidationError: - val errMsg: String - object ScholarshipValidationError: - case object CountryValidationError extends ScholarshipValidationError: - override val errMsg: String = "Must come from Uganda, Kenya or Tanzania." - case object AgeValidationError extends ScholarshipValidationError: - override val errMsg: String = "Must be 25 years or more." - case object CgpaValdiationError extends ScholarshipValidationError: - override val errMsg: String = "CGPA must be 3.0 or more" - - import ScholarshipValidationError.* - - case class Country(value: String) - object Country: - private val countries = List("uganda", "kenya", "tanzania") - def apply( - value: String - ): ValidatedNec[ScholarshipValidationError, Country] = - Validated.condNec( - countries.contains(value.toLowerCase), - new Country(value.toLowerCase), - CountryValidationError - ) - - case class Age(value: Int) - object Age: - def apply(value: Int): ValidatedNec[ScholarshipValidationError, Age] = - Validated.condNec( - value >= 25, - new Age(value), - AgeValidationError - ) - - case class Cgpa(value: Double) - object Cgpa: - def apply(value: Double): ValidatedNec[ScholarshipValidationError, Cgpa] = - Validated.condNec( - value >= 3.0, - new Cgpa(value), - CgpaValdiationError - ) - -object Version3: - import Utilities2.* - case class Scholarship(country: Country, age: Age, cgpa: Cgpa) - object Scholarship: - def apply( - value1: String, - value2: Int, - value3: Double - ): ValidatedNec[ScholarshipValidationError, Scholarship] = - ( - Country(value1), - Age(value2), - Cgpa(value3) - ).mapN( - Scholarship.apply - ) - -object DataValidation extends IOApp.Simple: - import Version1.* - def run: IO[Unit] = - Scholarship("Uganda", 23, 2.5) match - case Right(x) => IO.println(x) - case Left(y) => IO.println(y.toChain) -// Chain(Invalid Age, Invalid Cgpa) From fa73cf160bfb9608d4f3fb3af4bf63a07b39b6ff Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 26 Mar 2024 15:54:11 +0100 Subject: [PATCH 0439/1318] Moved Reactivemongotest to persistence module --- build.sbt | 8 ++++---- .../src/main/resources/application.conf | 7 ++++++- .../baeldung/scala/reactivemongo/MongoDBConnection.scala | 0 .../com/baeldung/scala/reactivemongo/MongoEntities.scala | 0 .../scala/reactivemongo/ReactiveMongoUnitTest.scala | 9 +++++---- 5 files changed, 15 insertions(+), 9 deletions(-) rename {scala-libraries/src/main/scala-2 => scala-libraries-persistence/src/main/scala}/com/baeldung/scala/reactivemongo/MongoDBConnection.scala (100%) rename {scala-libraries/src/test/scala-2 => scala-libraries-persistence/src/test/scala}/com/baeldung/scala/reactivemongo/MongoEntities.scala (100%) rename {scala-libraries/src/test/scala-2 => scala-libraries-persistence/src/test/scala}/com/baeldung/scala/reactivemongo/ReactiveMongoUnitTest.scala (97%) diff --git a/build.sbt b/build.sbt index 8097e6c12..0e44edc73 100644 --- a/build.sbt +++ b/build.sbt @@ -317,7 +317,7 @@ val slickVersion = "3.5.0" val shapelessVersion = "2.3.10" val scalazVersion = "7.3.8" val fs2Version = "3.9.4" -val reactiveMongo = "1.0.10" +val reactiveMongo = "1.1.0-RC12" lazy val scala_libraries = (project in file("scala-libraries")) .settings( @@ -330,9 +330,6 @@ lazy val scala_libraries = (project in file("scala-libraries")) "com.chuusai" %% "shapeless" % shapelessVersion, "org.scalaz" %% "scalaz-core" % scalazVersion, "junit" % "junit" % "4.13.2" % Test, - "org.reactivemongo" %% "reactivemongo" % reactiveMongo, - "org.reactivemongo" %% "reactivemongo-akkastream" % reactiveMongo, - "de.flapdoodle.embed" % "de.flapdoodle.embed.mongo" % embedMongoVersion % Test, logback % Test, akkaActorTyped, akkaStreamDep @@ -556,6 +553,9 @@ lazy val scala_libraries_persistence = (project in file("scala-libraries-persist "org.tpolecat" %% "skunk-core" % "0.6.3", doobieCore, doobiePGDep, + "org.reactivemongo" %% "reactivemongo" % reactiveMongo, + "org.reactivemongo" %% "reactivemongo-akkastream" % reactiveMongo, + "de.flapdoodle.embed" % "de.flapdoodle.embed.mongo" % embedMongoVersion % Test, ) ) diff --git a/scala-libraries-persistence/src/main/resources/application.conf b/scala-libraries-persistence/src/main/resources/application.conf index 2272bb414..9052b0913 100644 --- a/scala-libraries-persistence/src/main/resources/application.conf +++ b/scala-libraries-persistence/src/main/resources/application.conf @@ -4,7 +4,12 @@ h2mem { keepAliveConnection = true connectionPool = disabled } - +mongo-async-driver { + akka { + loggers = ["akka.event.slf4j.Slf4jLogger"] + loglevel = DEBUG + } +} #postgres { # dataSourceClass = "org.postgresql.ds.PGSimpleDataSource" # properties = { diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/reactivemongo/MongoDBConnection.scala b/scala-libraries-persistence/src/main/scala/com/baeldung/scala/reactivemongo/MongoDBConnection.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/reactivemongo/MongoDBConnection.scala rename to scala-libraries-persistence/src/main/scala/com/baeldung/scala/reactivemongo/MongoDBConnection.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/reactivemongo/MongoEntities.scala b/scala-libraries-persistence/src/test/scala/com/baeldung/scala/reactivemongo/MongoEntities.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/reactivemongo/MongoEntities.scala rename to scala-libraries-persistence/src/test/scala/com/baeldung/scala/reactivemongo/MongoEntities.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/reactivemongo/ReactiveMongoUnitTest.scala b/scala-libraries-persistence/src/test/scala/com/baeldung/scala/reactivemongo/ReactiveMongoUnitTest.scala similarity index 97% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/reactivemongo/ReactiveMongoUnitTest.scala rename to scala-libraries-persistence/src/test/scala/com/baeldung/scala/reactivemongo/ReactiveMongoUnitTest.scala index 30d38f659..92ceca509 100644 --- a/scala-libraries/src/test/scala-2/com/baeldung/scala/reactivemongo/ReactiveMongoUnitTest.scala +++ b/scala-libraries-persistence/src/test/scala/com/baeldung/scala/reactivemongo/ReactiveMongoUnitTest.scala @@ -1,9 +1,9 @@ package com.baeldung.scala.reactivemongo import akka.actor.ActorSystem -import akka.stream.ActorMaterializer +import akka.stream.Materializer import akka.stream.scaladsl.Sink -import com.baeldung.scala.reactivemongo.MongoEntityImplicits._ +import com.baeldung.scala.reactivemongo.MongoEntityImplicits.* import de.flapdoodle.embed.mongo.config.Net import de.flapdoodle.embed.mongo.distribution.Version import de.flapdoodle.embed.mongo.transitions.{ImmutableMongod, Mongod} @@ -11,8 +11,10 @@ import de.flapdoodle.reverse.transitions.Start import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AsyncWordSpec import org.scalatest.{BeforeAndAfterAll, BeforeAndAfterEach, FutureOutcome} +import reactivemongo.akkastream.cursorProducer import reactivemongo.api.Cursor import reactivemongo.api.bson.BSONDocument +import reactivemongo.api.bson.collection.BSONCollection class ReactiveMongoUnitTest extends AsyncWordSpec @@ -208,9 +210,8 @@ class ReactiveMongoUnitTest "stream the movies and calculate total duration using akka stream api" in { // Note: This import(cursorProducer) is required for reactive mongo and akka stream integration - import reactivemongo.akkastream.cursorProducer implicit val system = ActorSystem("reactive-mongo-stream") - implicit val materializer = ActorMaterializer() + implicit val materializer = Materializer.matFromSystem(system) connection.getCollection("Movie").flatMap { col => val source = col .find(BSONDocument()) From 7a0c9255d7617915aa0c417cabde56ad0e25141b Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 26 Mar 2024 16:42:00 +0100 Subject: [PATCH 0440/1318] Fixed reactivemongo test issues --- build.sbt | 1 + scala-libraries-persistence/README.md | 4 +++- .../src/main/resources/application.conf | 7 +------ scala-libraries/README.md | 1 - 4 files changed, 5 insertions(+), 8 deletions(-) diff --git a/build.sbt b/build.sbt index 0e44edc73..2ba49e4c2 100644 --- a/build.sbt +++ b/build.sbt @@ -556,6 +556,7 @@ lazy val scala_libraries_persistence = (project in file("scala-libraries-persist "org.reactivemongo" %% "reactivemongo" % reactiveMongo, "org.reactivemongo" %% "reactivemongo-akkastream" % reactiveMongo, "de.flapdoodle.embed" % "de.flapdoodle.embed.mongo" % embedMongoVersion % Test, + logback ) ) diff --git a/scala-libraries-persistence/README.md b/scala-libraries-persistence/README.md index e9559d86a..edcb911b3 100644 --- a/scala-libraries-persistence/README.md +++ b/scala-libraries-persistence/README.md @@ -3,4 +3,6 @@ //from scala-libraries-4 - [Introduction to Skunk – Scala Driver for PostgreSQL](https://www.baeldung.com/scala/skunk-postgresql-driver) //from scala3-libraries -- [Introduction to doobie – a JDBC Layer for Scala](https://www.baeldung.com/scala/doobie-intro) \ No newline at end of file +- [Introduction to doobie – a JDBC Layer for Scala](https://www.baeldung.com/scala/doobie-intro) +//from scala-libraries +- [Introduction to Reactive Mongo](https://www.baeldung.com/scala/mongo-reactive-intro) \ No newline at end of file diff --git a/scala-libraries-persistence/src/main/resources/application.conf b/scala-libraries-persistence/src/main/resources/application.conf index 9052b0913..2272bb414 100644 --- a/scala-libraries-persistence/src/main/resources/application.conf +++ b/scala-libraries-persistence/src/main/resources/application.conf @@ -4,12 +4,7 @@ h2mem { keepAliveConnection = true connectionPool = disabled } -mongo-async-driver { - akka { - loggers = ["akka.event.slf4j.Slf4jLogger"] - loglevel = DEBUG - } -} + #postgres { # dataSourceClass = "org.postgresql.ds.PGSimpleDataSource" # properties = { diff --git a/scala-libraries/README.md b/scala-libraries/README.md index 196b3b2cc..2cc0a44e7 100644 --- a/scala-libraries/README.md +++ b/scala-libraries/README.md @@ -5,4 +5,3 @@ - [The Principles Behind Scalaz](https://www.baeldung.com/scala/scalaz-principles) - [Introduction to Scalaz](https://www.baeldung.com/scala/scalaz-intro) - [Introduction to Generic Programming in Scala with shapeless](https://www.baeldung.com/scala/generic-programming) -- [Introduction to Reactive Mongo](https://www.baeldung.com/scala/mongo-reactive-intro) From e8cb8489e14cbc8f4bf2beff79b13e4ff54a4d2b Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 26 Mar 2024 17:30:12 +0100 Subject: [PATCH 0441/1318] Moved scalaz to scala-libraries-fp --- build.sbt | 5 +-- scala-libraries-fp/README.md | 2 ++ .../scala/scalaz/ScalazExamples.scala | 0 .../principles/ScalazPrinciplesExamples.scala | 0 .../scala/scalaz/ScalazExamplesUnitTest.scala | 31 ++++++++++--------- .../ScalazPrinciplesExamplesUnitTest.scala | 2 +- scala-libraries/README.md | 1 - 7 files changed, 22 insertions(+), 19 deletions(-) rename {scala-libraries/src/main/scala-2 => scala-libraries-fp/src/main/scala}/com/baeldung/scala/scalaz/ScalazExamples.scala (100%) rename {scala-libraries/src/main/scala-2 => scala-libraries-fp/src/main/scala}/com/baeldung/scala/scalaz/principles/ScalazPrinciplesExamples.scala (100%) rename {scala-libraries/src/test/scala-2 => scala-libraries-fp/src/test/scala}/com/baeldung/scala/scalaz/ScalazExamplesUnitTest.scala (95%) rename {scala-libraries/src/test/scala-2 => scala-libraries-fp/src/test/scala}/com/baeldung/scala/scalaz/principles/ScalazPrinciplesExamplesUnitTest.scala (99%) diff --git a/build.sbt b/build.sbt index 2ba49e4c2..789add387 100644 --- a/build.sbt +++ b/build.sbt @@ -328,7 +328,6 @@ lazy val scala_libraries = (project in file("scala-libraries")) "com.github.julien-truffaut" %% "monocle-macro" % monocleVersion, "com.github.julien-truffaut" %% "monocle-law" % monocleVersion % "test", "com.chuusai" %% "shapeless" % shapelessVersion, - "org.scalaz" %% "scalaz-core" % scalazVersion, "junit" % "junit" % "4.13.2" % Test, logback % Test, akkaActorTyped, @@ -525,7 +524,9 @@ lazy val scala_libraries_fp = (project in file("scala-libraries-fp")) "org.http4s" %% "http4s-blaze-server" % http4sBlaze, "org.http4s" %% "http4s-blaze-client" % http4sBlaze, catEffectTest, - "org.typelevel" %% "cats-effect-testing-scalatest" % "1.5.0" % Test + "org.typelevel" %% "cats-effect-testing-scalatest" % "1.5.0" % Test, + "org.scalaz" %% "scalaz-core" % scalazVersion, + "junit" % "junit" % "4.13.2" % Test, ) ) diff --git a/scala-libraries-fp/README.md b/scala-libraries-fp/README.md index 65991eb12..bde843b6e 100644 --- a/scala-libraries-fp/README.md +++ b/scala-libraries-fp/README.md @@ -9,3 +9,5 @@ - [Writer Monad in Cats](https://www.baeldung.com/scala/writer-monad-in-cats) //from scala3-libraries - [Data Validation With Cats](https://www.baeldung.com/scala/cats-data-validation) +//from scala-libraries +- [Introduction to Scalaz](https://www.baeldung.com/scala/scalaz-intro) diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/scalaz/ScalazExamples.scala b/scala-libraries-fp/src/main/scala/com/baeldung/scala/scalaz/ScalazExamples.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/scalaz/ScalazExamples.scala rename to scala-libraries-fp/src/main/scala/com/baeldung/scala/scalaz/ScalazExamples.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/scalaz/principles/ScalazPrinciplesExamples.scala b/scala-libraries-fp/src/main/scala/com/baeldung/scala/scalaz/principles/ScalazPrinciplesExamples.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/scalaz/principles/ScalazPrinciplesExamples.scala rename to scala-libraries-fp/src/main/scala/com/baeldung/scala/scalaz/principles/ScalazPrinciplesExamples.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/scalaz/ScalazExamplesUnitTest.scala b/scala-libraries-fp/src/test/scala/com/baeldung/scala/scalaz/ScalazExamplesUnitTest.scala similarity index 95% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/scalaz/ScalazExamplesUnitTest.scala rename to scala-libraries-fp/src/test/scala/com/baeldung/scala/scalaz/ScalazExamplesUnitTest.scala index b89751aea..4aaa7155b 100644 --- a/scala-libraries/src/test/scala-2/com/baeldung/scala/scalaz/ScalazExamplesUnitTest.scala +++ b/scala-libraries-fp/src/test/scala/com/baeldung/scala/scalaz/ScalazExamplesUnitTest.scala @@ -1,13 +1,12 @@ package com.baeldung.scala.scalaz -import java.util.NoSuchElementException - -import com.baeldung.scala.scalaz.ScalazExamples._ +import com.baeldung.scala.scalaz.ScalazExamples.* +import org.junit.Assert.* import org.junit.Test -import org.junit.Assert._ +import scalaz.* +import scalaz.Scalaz.* -import scalaz.Scalaz._ -import scalaz._ +import java.util.NoSuchElementException class ScalazExamplesUnitTest { @@ -20,13 +19,15 @@ class ScalazExamplesUnitTest { assertTrue(val1 === val3) assertTrue(val1 =/= val2) } - @Test - def givenValuesOfDifferentTypes_whenComparedWithScala_thenItWorks: Unit = { - val intValue = 10 - val strValue = "10" - assertFalse(intValue == strValue) - } +// Scala 3 gives compilation error when wrong types are compared. +// @Test +// def givenValuesOfDifferentTypes_whenComparedWithScala_thenItWorks: Unit = { +// val intValue = 10 +// val strValue = "10" +// +// assertFalse(intValue == strValue) +// } @Test def givenScores_thenGreaterThanCheckWorks: Unit = { @@ -69,13 +70,13 @@ class ScalazExamplesUnitTest { @Test def givenCharRange_thenGenerateAsEnum: Unit = { - val enum = 'a' |-> 'g' - val enumAsList = enum.toList + val enumLike = 'a' |-> 'g' + val enumAsList = enumLike.toList val expectedResult = IList('a', 'b', 'c', 'd', 'e', 'f', 'g') val expectedResultAsList = List('a', 'b', 'c', 'd', 'e', 'f', 'g') - assertEquals(expectedResult, enum) + assertEquals(expectedResult, enumLike) assertEquals(expectedResultAsList, enumAsList) } diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/scalaz/principles/ScalazPrinciplesExamplesUnitTest.scala b/scala-libraries-fp/src/test/scala/com/baeldung/scala/scalaz/principles/ScalazPrinciplesExamplesUnitTest.scala similarity index 99% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/scalaz/principles/ScalazPrinciplesExamplesUnitTest.scala rename to scala-libraries-fp/src/test/scala/com/baeldung/scala/scalaz/principles/ScalazPrinciplesExamplesUnitTest.scala index 0b3796400..82f8c262f 100644 --- a/scala-libraries/src/test/scala-2/com/baeldung/scala/scalaz/principles/ScalazPrinciplesExamplesUnitTest.scala +++ b/scala-libraries-fp/src/test/scala/com/baeldung/scala/scalaz/principles/ScalazPrinciplesExamplesUnitTest.scala @@ -1,6 +1,6 @@ package com.baeldung.scala.scalaz.principles -import com.baeldung.scala.scalaz.principles.ScalazPrinciplesExamples._ +import com.baeldung.scala.scalaz.principles.ScalazPrinciplesExamples.* import org.scalatest.flatspec.AnyFlatSpec class ScalazPrinciplesExamplesUnitTest extends AnyFlatSpec { diff --git a/scala-libraries/README.md b/scala-libraries/README.md index 2cc0a44e7..3c33e6cd2 100644 --- a/scala-libraries/README.md +++ b/scala-libraries/README.md @@ -3,5 +3,4 @@ - [Introduction to Optics in Scala Using Monocle](https://www.baeldung.com/scala/monocle-optics) - [Building REST APIs in Scala with Finch](https://www.baeldung.com/scala/finch-rest-apis) - [The Principles Behind Scalaz](https://www.baeldung.com/scala/scalaz-principles) -- [Introduction to Scalaz](https://www.baeldung.com/scala/scalaz-intro) - [Introduction to Generic Programming in Scala with shapeless](https://www.baeldung.com/scala/generic-programming) From b569a82fd6b951f7b3abf28320a3543b488f3d42 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 26 Mar 2024 17:33:11 +0100 Subject: [PATCH 0442/1318] Moved scalaz to scala-libraries-fp --- scala-libraries-fp/README.md | 1 + scala-libraries/README.md | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-fp/README.md b/scala-libraries-fp/README.md index bde843b6e..974bb2129 100644 --- a/scala-libraries-fp/README.md +++ b/scala-libraries-fp/README.md @@ -11,3 +11,4 @@ - [Data Validation With Cats](https://www.baeldung.com/scala/cats-data-validation) //from scala-libraries - [Introduction to Scalaz](https://www.baeldung.com/scala/scalaz-intro) +- [The Principles Behind Scalaz](https://www.baeldung.com/scala/scalaz-principles) diff --git a/scala-libraries/README.md b/scala-libraries/README.md index 3c33e6cd2..769957b35 100644 --- a/scala-libraries/README.md +++ b/scala-libraries/README.md @@ -2,5 +2,4 @@ - [Introduction to Optics in Scala Using Monocle](https://www.baeldung.com/scala/monocle-optics) - [Building REST APIs in Scala with Finch](https://www.baeldung.com/scala/finch-rest-apis) -- [The Principles Behind Scalaz](https://www.baeldung.com/scala/scalaz-principles) - [Introduction to Generic Programming in Scala with shapeless](https://www.baeldung.com/scala/generic-programming) From 02af4c7a8005b311e1c891b52a349d901b369c80 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 26 Mar 2024 18:29:37 +0100 Subject: [PATCH 0443/1318] Moved articles to scala-libraries-config --- build.sbt | 52 ++++++++++--------- scala-libraries-3/README.md | 1 - scala-libraries-config/README.md | 6 +++ .../src/main/resources/kafka.conf | 0 .../src/main/resources/notification-prod.conf | 0 .../src/main/resources/notification.conf | 0 .../clearconfig/ClearConfigLoader.scala | 0 .../test/resources/application-default.conf | 3 ++ .../src/test/resources/application.conf | 45 ++++++++++++++++ .../src/test/resources/database.conf | 6 +++ .../src/test/resources/http.conf | 5 ++ .../src/test/resources/main.conf | 3 ++ .../src/test/resources/notification.conf | 2 + .../baeldung/scala/config/ConfigTest.scala | 0 scala3-libraries/README.md | 3 -- 15 files changed, 97 insertions(+), 29 deletions(-) create mode 100644 scala-libraries-config/README.md rename {scala3-libraries => scala-libraries-config}/src/main/resources/kafka.conf (100%) rename {scala3-libraries => scala-libraries-config}/src/main/resources/notification-prod.conf (100%) rename {scala3-libraries => scala-libraries-config}/src/main/resources/notification.conf (100%) rename {scala3-libraries/src/main/scala/com/baledung => scala-libraries-config/src/main/scala/com/baeldung}/clearconfig/ClearConfigLoader.scala (100%) create mode 100644 scala-libraries-config/src/test/resources/application-default.conf create mode 100644 scala-libraries-config/src/test/resources/application.conf create mode 100644 scala-libraries-config/src/test/resources/database.conf create mode 100644 scala-libraries-config/src/test/resources/http.conf create mode 100644 scala-libraries-config/src/test/resources/main.conf create mode 100644 scala-libraries-config/src/test/resources/notification.conf rename {scala-libraries-3/src/test/scala-2 => scala-libraries-config/src/test/scala}/com/baeldung/scala/config/ConfigTest.scala (100%) delete mode 100644 scala3-libraries/README.md diff --git a/build.sbt b/build.sbt index 789add387..a2b00394c 100644 --- a/build.sbt +++ b/build.sbt @@ -335,7 +335,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) ), libraryDependencies ++= Seq( "com.typesafe.slick" %% "slick" % slickVersion, - "com.h2database" % "h2" % "2.2.224", + "com.h2database" % "h2" % "2.2.224" ) ) @@ -526,7 +526,7 @@ lazy val scala_libraries_fp = (project in file("scala-libraries-fp")) catEffectTest, "org.typelevel" %% "cats-effect-testing-scalatest" % "1.5.0" % Test, "org.scalaz" %% "scalaz-core" % scalazVersion, - "junit" % "junit" % "4.13.2" % Test, + "junit" % "junit" % "4.13.2" % Test ) ) @@ -543,21 +543,35 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) ) ) -lazy val scala_libraries_persistence = (project in file("scala-libraries-persistence")) +lazy val scala_libraries_persistence = + (project in file("scala-libraries-persistence")) + .settings( + name := "scala-libraries-persistence", + scalaVersion := scala3Version, + libraryDependencies ++= scalaTestDeps, + libraryDependencies ++= Seq( + "com.typesafe.slick" %% "slick" % slickVersion, + "com.h2database" % "h2" % "2.2.224", + "org.tpolecat" %% "skunk-core" % "0.6.3", + doobieCore, + doobiePGDep, + "org.reactivemongo" %% "reactivemongo" % reactiveMongo, + "org.reactivemongo" %% "reactivemongo-akkastream" % reactiveMongo, + "de.flapdoodle.embed" % "de.flapdoodle.embed.mongo" % embedMongoVersion % Test, + logback + ) + ) + +lazy val scala_libraries_config = (project in file("scala-libraries-config")) .settings( - name := "scala-libraries-persistence", + name := "scala-libraries-config", scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps, libraryDependencies ++= Seq( - "com.typesafe.slick" %% "slick" % slickVersion, - "com.h2database" % "h2" % "2.2.224", - "org.tpolecat" %% "skunk-core" % "0.6.3", - doobieCore, - doobiePGDep, - "org.reactivemongo" %% "reactivemongo" % reactiveMongo, - "org.reactivemongo" %% "reactivemongo-akkastream" % reactiveMongo, - "de.flapdoodle.embed" % "de.flapdoodle.embed.mongo" % embedMongoVersion % Test, - logback + "com.typesafe" % "config" % "1.4.3", + munitDep, + "com.github.japgolly.clearconfig" %% "core" % "3.1.0", + catsEffect ) ) @@ -700,18 +714,6 @@ lazy val reflection = (project in file("reflection")) libraryDependencies += "junit" % "junit" % "4.13.2" % Test ) -lazy val scala3_libraries = (project in file("scala3-libraries")) - .settings( - scalaVersion := scala3Version, - name := "scala3-libraries", - libraryDependencies ++= scalaTestDeps, - libraryDependencies ++= Seq( - "com.github.japgolly.clearconfig" %% "core" % "3.1.0", - munitDep, - catsEffect - ) - ) - Test / testOptions += Tests.Argument(TestFrameworks.ScalaTest, "-eG") lazy val scala212 = (project in file("scala-2-modules/scala212")) diff --git a/scala-libraries-3/README.md b/scala-libraries-3/README.md index 310186875..d0e5d22b6 100644 --- a/scala-libraries-3/README.md +++ b/scala-libraries-3/README.md @@ -2,6 +2,5 @@ - [Load Configuration Files In Scala Using PureConfig](https://www.baeldung.com/scala/pureconfig-load-config-files) - [A Guide to the Scala Retry Library](https://www.baeldung.com/scala/retry-library) -- [Introduction to Lightbend Config](https://www.baeldung.com/scala/lightbend-config) - [Introduction to Apache Log4j in Scala](https://www.baeldung.com/scala/apache-log4j) - [Introduction to Tapir](https://www.baeldung.com/scala/tapir) \ No newline at end of file diff --git a/scala-libraries-config/README.md b/scala-libraries-config/README.md new file mode 100644 index 000000000..e53e97de0 --- /dev/null +++ b/scala-libraries-config/README.md @@ -0,0 +1,6 @@ +### Relevant Articles: + +//from scala-libraries-3 +- [Introduction to Lightbend Config](https://www.baeldung.com/scala/lightbend-config) +//from scala3-libraries +- [Scala App Configurations With Clarity Using ClearConfig](https://www.baeldung.com/scala/clearconfig) diff --git a/scala3-libraries/src/main/resources/kafka.conf b/scala-libraries-config/src/main/resources/kafka.conf similarity index 100% rename from scala3-libraries/src/main/resources/kafka.conf rename to scala-libraries-config/src/main/resources/kafka.conf diff --git a/scala3-libraries/src/main/resources/notification-prod.conf b/scala-libraries-config/src/main/resources/notification-prod.conf similarity index 100% rename from scala3-libraries/src/main/resources/notification-prod.conf rename to scala-libraries-config/src/main/resources/notification-prod.conf diff --git a/scala3-libraries/src/main/resources/notification.conf b/scala-libraries-config/src/main/resources/notification.conf similarity index 100% rename from scala3-libraries/src/main/resources/notification.conf rename to scala-libraries-config/src/main/resources/notification.conf diff --git a/scala3-libraries/src/main/scala/com/baledung/clearconfig/ClearConfigLoader.scala b/scala-libraries-config/src/main/scala/com/baeldung/clearconfig/ClearConfigLoader.scala similarity index 100% rename from scala3-libraries/src/main/scala/com/baledung/clearconfig/ClearConfigLoader.scala rename to scala-libraries-config/src/main/scala/com/baeldung/clearconfig/ClearConfigLoader.scala diff --git a/scala-libraries-config/src/test/resources/application-default.conf b/scala-libraries-config/src/test/resources/application-default.conf new file mode 100644 index 000000000..c129546e1 --- /dev/null +++ b/scala-libraries-config/src/test/resources/application-default.conf @@ -0,0 +1,3 @@ +fallback { + version = "9.9" +} \ No newline at end of file diff --git a/scala-libraries-config/src/test/resources/application.conf b/scala-libraries-config/src/test/resources/application.conf new file mode 100644 index 000000000..f906a11c5 --- /dev/null +++ b/scala-libraries-config/src/test/resources/application.conf @@ -0,0 +1,45 @@ +kafka { + port = 8090 + bootstrap-server = "kafka.mydomain.com" + protocol = "https" + timeout = 2s +} + +graphite { + enabled : true + servers : [ + { + host = "graphite.monitoring.com" + port = 6666 + } + ] +} + +app-name = "baeldung-app" +env = Prod +baseDate = "2022-03-17" + +# Samples used in config blog examples + +id = 100 +name = "baeldung" +price = 2.0 +status = false +mem = 1k +delay = 1 second + +app.database { + postgres { + url = "localhost:5432", + username = "user" + } +} + +complex-types { + duration = 5 seconds + heap-size = 1k +} + +sub { + desc = "This is a "${name}" project" +} diff --git a/scala-libraries-config/src/test/resources/database.conf b/scala-libraries-config/src/test/resources/database.conf new file mode 100644 index 000000000..41d6b8fdd --- /dev/null +++ b/scala-libraries-config/src/test/resources/database.conf @@ -0,0 +1,6 @@ +db { + dbUrl = "postgresql://localhost:5555" + dbName = "baeldung" + username = "postgres" + password = "admin" +} \ No newline at end of file diff --git a/scala-libraries-config/src/test/resources/http.conf b/scala-libraries-config/src/test/resources/http.conf new file mode 100644 index 000000000..f893cca8f --- /dev/null +++ b/scala-libraries-config/src/test/resources/http.conf @@ -0,0 +1,5 @@ +http { + port ="8090" + host = "localhost" + protocol = "https" +} \ No newline at end of file diff --git a/scala-libraries-config/src/test/resources/main.conf b/scala-libraries-config/src/test/resources/main.conf new file mode 100644 index 000000000..88fba87af --- /dev/null +++ b/scala-libraries-config/src/test/resources/main.conf @@ -0,0 +1,3 @@ +include "http.conf" +include "database.conf" +appName = "Baeldung" \ No newline at end of file diff --git a/scala-libraries-config/src/test/resources/notification.conf b/scala-libraries-config/src/test/resources/notification.conf new file mode 100644 index 000000000..e655391da --- /dev/null +++ b/scala-libraries-config/src/test/resources/notification.conf @@ -0,0 +1,2 @@ +notification-url = "http://mynotificationservice.com/push" +params = "status=completed" \ No newline at end of file diff --git a/scala-libraries-3/src/test/scala-2/com/baeldung/scala/config/ConfigTest.scala b/scala-libraries-config/src/test/scala/com/baeldung/scala/config/ConfigTest.scala similarity index 100% rename from scala-libraries-3/src/test/scala-2/com/baeldung/scala/config/ConfigTest.scala rename to scala-libraries-config/src/test/scala/com/baeldung/scala/config/ConfigTest.scala diff --git a/scala3-libraries/README.md b/scala3-libraries/README.md deleted file mode 100644 index 5e9cc8d63..000000000 --- a/scala3-libraries/README.md +++ /dev/null @@ -1,3 +0,0 @@ - -### Relevant Articles: -- [Scala App Configurations With Clarity Using ClearConfig](https://www.baeldung.com/scala/clearconfig) From 3789d6a5c37e6362bb29d7c2763d437ef6eaf21a Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 26 Mar 2024 18:41:20 +0100 Subject: [PATCH 0444/1318] Moved circeyaml code to config module --- build.sbt | 17 ++++------------- scala-libraries-6/README.md | 2 -- scala-libraries-config/README.md | 2 ++ .../com/baeldung/circeyaml/YamlExample.scala | 0 .../baeldung/circeyaml/YamlExampleSpec.scala | 4 ++-- 5 files changed, 8 insertions(+), 17 deletions(-) delete mode 100644 scala-libraries-6/README.md rename {scala-libraries-6/src/main/scala-3 => scala-libraries-config/src/main/scala}/com/baeldung/circeyaml/YamlExample.scala (100%) rename {scala-libraries-6/src/test/scala-3 => scala-libraries-config/src/test/scala}/com/baeldung/circeyaml/YamlExampleSpec.scala (98%) diff --git a/build.sbt b/build.sbt index a2b00394c..cd7652ebc 100644 --- a/build.sbt +++ b/build.sbt @@ -499,18 +499,6 @@ lazy val scala_libraries_5 = (project in file("scala-libraries-5")) ) ) -lazy val scala_libraries_6 = (project in file("scala-libraries-6")) - .settings( - name := "scala-libraries-6", - scalaVersion := scala3Version, - libraryDependencies ++= scalaTestDeps, - libraryDependencies ++= Seq( - "io.circe" %% "circe-yaml" % "1.15.0", - circeDep, - circeParserDep - ) - ) - lazy val scala_libraries_fp = (project in file("scala-libraries-fp")) .settings( name := "scala-libraries-fp", @@ -571,7 +559,10 @@ lazy val scala_libraries_config = (project in file("scala-libraries-config")) "com.typesafe" % "config" % "1.4.3", munitDep, "com.github.japgolly.clearconfig" %% "core" % "3.1.0", - catsEffect + catsEffect, + "io.circe" %% "circe-yaml" % "1.15.0", + circeDep, + circeParserDep ) ) diff --git a/scala-libraries-6/README.md b/scala-libraries-6/README.md deleted file mode 100644 index 136390fc9..000000000 --- a/scala-libraries-6/README.md +++ /dev/null @@ -1,2 +0,0 @@ -## Relevant Articles -- [Handling YAML in Scala 3](https://www.baeldung.com/scala/yaml-scala-3) diff --git a/scala-libraries-config/README.md b/scala-libraries-config/README.md index e53e97de0..62e28b58a 100644 --- a/scala-libraries-config/README.md +++ b/scala-libraries-config/README.md @@ -4,3 +4,5 @@ - [Introduction to Lightbend Config](https://www.baeldung.com/scala/lightbend-config) //from scala3-libraries - [Scala App Configurations With Clarity Using ClearConfig](https://www.baeldung.com/scala/clearconfig) +//from scala-libraries-6 +- [Handling YAML in Scala 3](https://www.baeldung.com/scala/yaml-scala-3) \ No newline at end of file diff --git a/scala-libraries-6/src/main/scala-3/com/baeldung/circeyaml/YamlExample.scala b/scala-libraries-config/src/main/scala/com/baeldung/circeyaml/YamlExample.scala similarity index 100% rename from scala-libraries-6/src/main/scala-3/com/baeldung/circeyaml/YamlExample.scala rename to scala-libraries-config/src/main/scala/com/baeldung/circeyaml/YamlExample.scala diff --git a/scala-libraries-6/src/test/scala-3/com/baeldung/circeyaml/YamlExampleSpec.scala b/scala-libraries-config/src/test/scala/com/baeldung/circeyaml/YamlExampleSpec.scala similarity index 98% rename from scala-libraries-6/src/test/scala-3/com/baeldung/circeyaml/YamlExampleSpec.scala rename to scala-libraries-config/src/test/scala/com/baeldung/circeyaml/YamlExampleSpec.scala index 3ff7871a7..1a30717ad 100644 --- a/scala-libraries-6/src/test/scala-3/com/baeldung/circeyaml/YamlExampleSpec.scala +++ b/scala-libraries-config/src/test/scala/com/baeldung/circeyaml/YamlExampleSpec.scala @@ -7,7 +7,7 @@ import io.circe.* import java.io.* import org.scalatest.prop.TableDrivenPropertyChecks -class YamlExampleSuite +class YamlExampleSpec extends AnyFlatSpec with Matchers with TableDrivenPropertyChecks: @@ -79,4 +79,4 @@ class YamlExampleSuite ) shouldBe an[String] } -end YamlExampleSuite +end YamlExampleSpec From d055a6f3a6b022be8a69958e0d87ce46447b4f17 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 26 Mar 2024 21:09:55 +0100 Subject: [PATCH 0445/1318] Moved spire to fp --- build.sbt | 4 ++-- scala-libraries-5/README.md | 1 - scala-libraries-fp/README.md | 2 ++ .../main/scala}/com/baeldung/scala/spire/Fractional.scala | 0 .../src/main/scala}/com/baeldung/scala/spire/Integral.scala | 0 .../src/main/scala}/com/baeldung/scala/spire/Numeric.scala | 0 .../scala}/com/baeldung/scala/spire/groups/Semigroups.scala | 0 .../com/baeldung/scala/spire/groups/TranscationGroup.scala | 0 .../main/scala}/com/baeldung/scala/spire/macros/CFor.scala | 0 .../baeldung/scala/spire/macros/LiteralNumberSyntax.scala | 0 .../com/baeldung/scala/spire/monoids/AdditiveMonoid.scala | 0 .../scala}/com/baeldung/scala/spire/numbers/Complexes.scala | 0 .../scala}/com/baeldung/scala/spire/numbers/Intervals.scala | 0 .../scala}/com/baeldung/scala/spire/numbers/Naturals.scala | 0 .../scala}/com/baeldung/scala/spire/numbers/Rationals.scala | 0 .../main/scala}/com/baeldung/scala/spire/numbers/Reals.scala | 0 .../com/baeldung/scala/spire/rings/EuclideanRings.scala | 0 .../main/scala}/com/baeldung/scala/spire/rings/Rings.scala | 0 .../scala}/com/baeldung/scala/spire/FractionalUnitTest.scala | 0 .../scala}/com/baeldung/scala/spire/IntegralUnitTest.scala | 2 +- .../scala}/com/baeldung/scala/spire/NumericUnitTest.scala | 0 .../scala/spire/groups/TransactionGroupUnitTest.scala | 2 ++ .../scala/spire/monoids/AdditiveMonoidUnitTest.scala | 3 ++- .../baeldung/scala/spire/rings/EuclideanRingUnitTest.scala | 3 ++- .../com/baeldung/scala/spire/rings/RingsUnitTest.scala | 5 ++++- 25 files changed, 15 insertions(+), 7 deletions(-) rename {scala-libraries-5/src/main/scala-2 => scala-libraries-fp/src/main/scala}/com/baeldung/scala/spire/Fractional.scala (100%) rename {scala-libraries-5/src/main/scala-2 => scala-libraries-fp/src/main/scala}/com/baeldung/scala/spire/Integral.scala (100%) rename {scala-libraries-5/src/main/scala-2 => scala-libraries-fp/src/main/scala}/com/baeldung/scala/spire/Numeric.scala (100%) rename {scala-libraries-5/src/main/scala-2 => scala-libraries-fp/src/main/scala}/com/baeldung/scala/spire/groups/Semigroups.scala (100%) rename {scala-libraries-5/src/main/scala-2 => scala-libraries-fp/src/main/scala}/com/baeldung/scala/spire/groups/TranscationGroup.scala (100%) rename {scala-libraries-5/src/main/scala-2 => scala-libraries-fp/src/main/scala}/com/baeldung/scala/spire/macros/CFor.scala (100%) rename {scala-libraries-5/src/main/scala-2 => scala-libraries-fp/src/main/scala}/com/baeldung/scala/spire/macros/LiteralNumberSyntax.scala (100%) rename {scala-libraries-5/src/main/scala-2 => scala-libraries-fp/src/main/scala}/com/baeldung/scala/spire/monoids/AdditiveMonoid.scala (100%) rename {scala-libraries-5/src/main/scala-2 => scala-libraries-fp/src/main/scala}/com/baeldung/scala/spire/numbers/Complexes.scala (100%) rename {scala-libraries-5/src/main/scala-2 => scala-libraries-fp/src/main/scala}/com/baeldung/scala/spire/numbers/Intervals.scala (100%) rename {scala-libraries-5/src/main/scala-2 => scala-libraries-fp/src/main/scala}/com/baeldung/scala/spire/numbers/Naturals.scala (100%) rename {scala-libraries-5/src/main/scala-2 => scala-libraries-fp/src/main/scala}/com/baeldung/scala/spire/numbers/Rationals.scala (100%) rename {scala-libraries-5/src/main/scala-2 => scala-libraries-fp/src/main/scala}/com/baeldung/scala/spire/numbers/Reals.scala (100%) rename {scala-libraries-5/src/main/scala-2 => scala-libraries-fp/src/main/scala}/com/baeldung/scala/spire/rings/EuclideanRings.scala (100%) rename {scala-libraries-5/src/main/scala-2 => scala-libraries-fp/src/main/scala}/com/baeldung/scala/spire/rings/Rings.scala (100%) rename {scala-libraries-5/src/test/scala-2 => scala-libraries-fp/src/test/scala}/com/baeldung/scala/spire/FractionalUnitTest.scala (100%) rename {scala-libraries-5/src/test/scala-2 => scala-libraries-fp/src/test/scala}/com/baeldung/scala/spire/IntegralUnitTest.scala (95%) rename {scala-libraries-5/src/test/scala-2 => scala-libraries-fp/src/test/scala}/com/baeldung/scala/spire/NumericUnitTest.scala (100%) rename {scala-libraries-5/src/test/scala-2 => scala-libraries-fp/src/test/scala}/com/baeldung/scala/spire/groups/TransactionGroupUnitTest.scala (94%) rename {scala-libraries-5/src/test/scala-2 => scala-libraries-fp/src/test/scala}/com/baeldung/scala/spire/monoids/AdditiveMonoidUnitTest.scala (88%) rename {scala-libraries-5/src/test/scala-2 => scala-libraries-fp/src/test/scala}/com/baeldung/scala/spire/rings/EuclideanRingUnitTest.scala (88%) rename {scala-libraries-5/src/test/scala-2 => scala-libraries-fp/src/test/scala}/com/baeldung/scala/spire/rings/RingsUnitTest.scala (91%) diff --git a/build.sbt b/build.sbt index cd7652ebc..66af6d60b 100644 --- a/build.sbt +++ b/build.sbt @@ -486,7 +486,6 @@ lazy val scala_libraries_5 = (project in file("scala-libraries-5")) scalaVersion := scalaV, libraryDependencies ++= scalaTestDeps, libraryDependencies ++= Seq( - "org.typelevel" %% "spire" % spireVersion, "org.apache.kafka" % "kafka-clients" % kafkaVersion, pureConfigDep, "com.fasterxml.jackson.core" % "jackson-databind" % jackSonVersion, @@ -514,7 +513,8 @@ lazy val scala_libraries_fp = (project in file("scala-libraries-fp")) catEffectTest, "org.typelevel" %% "cats-effect-testing-scalatest" % "1.5.0" % Test, "org.scalaz" %% "scalaz-core" % scalazVersion, - "junit" % "junit" % "4.13.2" % Test + "junit" % "junit" % "4.13.2" % Test, + "org.typelevel" %% "spire" % spireVersion, ) ) diff --git a/scala-libraries-5/README.md b/scala-libraries-5/README.md index 4e3fa6fb2..47d4e3464 100644 --- a/scala-libraries-5/README.md +++ b/scala-libraries-5/README.md @@ -1,3 +1,2 @@ ## Relevant Articles -- [Introduction to Spire](https://www.baeldung.com/scala/spire-intro) - [Introduction to Kafka With Scala](https://www.baeldung.com/scala/kafka) diff --git a/scala-libraries-fp/README.md b/scala-libraries-fp/README.md index 974bb2129..b84b2acd9 100644 --- a/scala-libraries-fp/README.md +++ b/scala-libraries-fp/README.md @@ -12,3 +12,5 @@ //from scala-libraries - [Introduction to Scalaz](https://www.baeldung.com/scala/scalaz-intro) - [The Principles Behind Scalaz](https://www.baeldung.com/scala/scalaz-principles) +//from scala-libraries-5 +- [Introduction to Spire](https://www.baeldung.com/scala/spire-intro) diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/Fractional.scala b/scala-libraries-fp/src/main/scala/com/baeldung/scala/spire/Fractional.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/Fractional.scala rename to scala-libraries-fp/src/main/scala/com/baeldung/scala/spire/Fractional.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/Integral.scala b/scala-libraries-fp/src/main/scala/com/baeldung/scala/spire/Integral.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/Integral.scala rename to scala-libraries-fp/src/main/scala/com/baeldung/scala/spire/Integral.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/Numeric.scala b/scala-libraries-fp/src/main/scala/com/baeldung/scala/spire/Numeric.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/Numeric.scala rename to scala-libraries-fp/src/main/scala/com/baeldung/scala/spire/Numeric.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/groups/Semigroups.scala b/scala-libraries-fp/src/main/scala/com/baeldung/scala/spire/groups/Semigroups.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/groups/Semigroups.scala rename to scala-libraries-fp/src/main/scala/com/baeldung/scala/spire/groups/Semigroups.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/groups/TranscationGroup.scala b/scala-libraries-fp/src/main/scala/com/baeldung/scala/spire/groups/TranscationGroup.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/groups/TranscationGroup.scala rename to scala-libraries-fp/src/main/scala/com/baeldung/scala/spire/groups/TranscationGroup.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/macros/CFor.scala b/scala-libraries-fp/src/main/scala/com/baeldung/scala/spire/macros/CFor.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/macros/CFor.scala rename to scala-libraries-fp/src/main/scala/com/baeldung/scala/spire/macros/CFor.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/macros/LiteralNumberSyntax.scala b/scala-libraries-fp/src/main/scala/com/baeldung/scala/spire/macros/LiteralNumberSyntax.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/macros/LiteralNumberSyntax.scala rename to scala-libraries-fp/src/main/scala/com/baeldung/scala/spire/macros/LiteralNumberSyntax.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/monoids/AdditiveMonoid.scala b/scala-libraries-fp/src/main/scala/com/baeldung/scala/spire/monoids/AdditiveMonoid.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/monoids/AdditiveMonoid.scala rename to scala-libraries-fp/src/main/scala/com/baeldung/scala/spire/monoids/AdditiveMonoid.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/numbers/Complexes.scala b/scala-libraries-fp/src/main/scala/com/baeldung/scala/spire/numbers/Complexes.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/numbers/Complexes.scala rename to scala-libraries-fp/src/main/scala/com/baeldung/scala/spire/numbers/Complexes.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/numbers/Intervals.scala b/scala-libraries-fp/src/main/scala/com/baeldung/scala/spire/numbers/Intervals.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/numbers/Intervals.scala rename to scala-libraries-fp/src/main/scala/com/baeldung/scala/spire/numbers/Intervals.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/numbers/Naturals.scala b/scala-libraries-fp/src/main/scala/com/baeldung/scala/spire/numbers/Naturals.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/numbers/Naturals.scala rename to scala-libraries-fp/src/main/scala/com/baeldung/scala/spire/numbers/Naturals.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/numbers/Rationals.scala b/scala-libraries-fp/src/main/scala/com/baeldung/scala/spire/numbers/Rationals.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/numbers/Rationals.scala rename to scala-libraries-fp/src/main/scala/com/baeldung/scala/spire/numbers/Rationals.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/numbers/Reals.scala b/scala-libraries-fp/src/main/scala/com/baeldung/scala/spire/numbers/Reals.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/numbers/Reals.scala rename to scala-libraries-fp/src/main/scala/com/baeldung/scala/spire/numbers/Reals.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/rings/EuclideanRings.scala b/scala-libraries-fp/src/main/scala/com/baeldung/scala/spire/rings/EuclideanRings.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/rings/EuclideanRings.scala rename to scala-libraries-fp/src/main/scala/com/baeldung/scala/spire/rings/EuclideanRings.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/rings/Rings.scala b/scala-libraries-fp/src/main/scala/com/baeldung/scala/spire/rings/Rings.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/spire/rings/Rings.scala rename to scala-libraries-fp/src/main/scala/com/baeldung/scala/spire/rings/Rings.scala diff --git a/scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/FractionalUnitTest.scala b/scala-libraries-fp/src/test/scala/com/baeldung/scala/spire/FractionalUnitTest.scala similarity index 100% rename from scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/FractionalUnitTest.scala rename to scala-libraries-fp/src/test/scala/com/baeldung/scala/spire/FractionalUnitTest.scala diff --git a/scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/IntegralUnitTest.scala b/scala-libraries-fp/src/test/scala/com/baeldung/scala/spire/IntegralUnitTest.scala similarity index 95% rename from scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/IntegralUnitTest.scala rename to scala-libraries-fp/src/test/scala/com/baeldung/scala/spire/IntegralUnitTest.scala index cc58caafa..70b740931 100644 --- a/scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/IntegralUnitTest.scala +++ b/scala-libraries-fp/src/test/scala/com/baeldung/scala/spire/IntegralUnitTest.scala @@ -1,6 +1,6 @@ package com.baeldung.scala.spire -import com.baeldung.scala.spire.Integral._ +import com.baeldung.scala.spire.Integral.* import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpec import spire.implicits._ diff --git a/scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/NumericUnitTest.scala b/scala-libraries-fp/src/test/scala/com/baeldung/scala/spire/NumericUnitTest.scala similarity index 100% rename from scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/NumericUnitTest.scala rename to scala-libraries-fp/src/test/scala/com/baeldung/scala/spire/NumericUnitTest.scala diff --git a/scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/groups/TransactionGroupUnitTest.scala b/scala-libraries-fp/src/test/scala/com/baeldung/scala/spire/groups/TransactionGroupUnitTest.scala similarity index 94% rename from scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/groups/TransactionGroupUnitTest.scala rename to scala-libraries-fp/src/test/scala/com/baeldung/scala/spire/groups/TransactionGroupUnitTest.scala index 1b8c32949..a838aa364 100644 --- a/scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/groups/TransactionGroupUnitTest.scala +++ b/scala-libraries-fp/src/test/scala/com/baeldung/scala/spire/groups/TransactionGroupUnitTest.scala @@ -2,6 +2,8 @@ package com.baeldung.scala.spire.groups import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpec +import spire.implicits._ +import spire.math._ class TransactionGroupUnitTest extends AnyWordSpec with Matchers { diff --git a/scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/monoids/AdditiveMonoidUnitTest.scala b/scala-libraries-fp/src/test/scala/com/baeldung/scala/spire/monoids/AdditiveMonoidUnitTest.scala similarity index 88% rename from scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/monoids/AdditiveMonoidUnitTest.scala rename to scala-libraries-fp/src/test/scala/com/baeldung/scala/spire/monoids/AdditiveMonoidUnitTest.scala index dee1c549f..15d724d72 100644 --- a/scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/monoids/AdditiveMonoidUnitTest.scala +++ b/scala-libraries-fp/src/test/scala/com/baeldung/scala/spire/monoids/AdditiveMonoidUnitTest.scala @@ -1,9 +1,10 @@ package com.baeldung.scala.spire.monoids -import com.baeldung.scala.spire.monoids.AdditiveMonoid._ +import com.baeldung.scala.spire.monoids.AdditiveMonoid.* import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpec import spire.implicits._ +import spire.math._ class AdditiveMonoidUnitTest extends AnyWordSpec with Matchers { diff --git a/scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/rings/EuclideanRingUnitTest.scala b/scala-libraries-fp/src/test/scala/com/baeldung/scala/spire/rings/EuclideanRingUnitTest.scala similarity index 88% rename from scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/rings/EuclideanRingUnitTest.scala rename to scala-libraries-fp/src/test/scala/com/baeldung/scala/spire/rings/EuclideanRingUnitTest.scala index ecc9638bf..de974daae 100644 --- a/scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/rings/EuclideanRingUnitTest.scala +++ b/scala-libraries-fp/src/test/scala/com/baeldung/scala/spire/rings/EuclideanRingUnitTest.scala @@ -1,8 +1,9 @@ package com.baeldung.scala.spire.rings -import com.baeldung.scala.spire.rings.EuclideanRings._ +import com.baeldung.scala.spire.rings.EuclideanRings.* import org.scalatest.wordspec.AnyWordSpec import spire.implicits._ +import spire.math._ class EuclideanRingUnitTest extends AnyWordSpec { diff --git a/scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/rings/RingsUnitTest.scala b/scala-libraries-fp/src/test/scala/com/baeldung/scala/spire/rings/RingsUnitTest.scala similarity index 91% rename from scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/rings/RingsUnitTest.scala rename to scala-libraries-fp/src/test/scala/com/baeldung/scala/spire/rings/RingsUnitTest.scala index 8b6a6d261..ddc570a8b 100644 --- a/scala-libraries-5/src/test/scala-2/com/baeldung/scala/spire/rings/RingsUnitTest.scala +++ b/scala-libraries-fp/src/test/scala/com/baeldung/scala/spire/rings/RingsUnitTest.scala @@ -1,6 +1,9 @@ package com.baeldung.scala.spire.rings -import com.baeldung.scala.spire.rings.Rings._ + +import com.baeldung.scala.spire.rings.Rings.* import org.scalatest.wordspec.AnyWordSpec +import spire.implicits._ +import spire.math._ class RingsUnitTest extends AnyWordSpec { From 3f296603164e1440a5c8e400bdd02ad21de9e4d2 Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Wed, 27 Mar 2024 10:31:00 +0800 Subject: [PATCH 0446/1318] Update README.md --- scala-strings/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-strings/README.md b/scala-strings/README.md index d3cf09c83..fa97e1412 100644 --- a/scala-strings/README.md +++ b/scala-strings/README.md @@ -12,3 +12,4 @@ This module contains articles about Scala's core features - [Scala Keyword Matching: A Library-First Guide](https://www.baeldung.com/scala/keyword-matching) - [Generate Secure Random Passwords in Scala](https://www.baeldung.com/scala/generate-secure-random-passwords) - [Generate an Acronym for a Given String in Scala](https://www.baeldung.com/scala/string-derive-acronym) +- [Capitalizing Every Word in a Sentence in Scala](https://www.baeldung.com/scala/capitalize-each-word) From e8b5db3e053429aa5577e3904f7138790fb7a17e Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 27 Mar 2024 17:20:28 +0100 Subject: [PATCH 0447/1318] moved testcontainers to test module --- build.sbt | 18 ++++++++++-------- .../src/it/resources/docker-compose.yml | 0 .../src/it/resources/s3-test.txt | 0 .../DockerComposeManualTest.scala | 4 ++-- .../GenericContainerManualTest.scala | 2 +- .../LocalstackModuleManualTest.scala | 2 +- .../testcontainers/SimpleS3Uploader.scala | 0 7 files changed, 14 insertions(+), 12 deletions(-) rename {scala-libraries-4 => scala-libraries-testing}/src/it/resources/docker-compose.yml (100%) rename {scala-libraries-4 => scala-libraries-testing}/src/it/resources/s3-test.txt (100%) rename {scala-libraries-4/src/it/scala-2 => scala-libraries-testing/src/it/scala}/com/baeldung/scala/testcontainers/DockerComposeManualTest.scala (96%) rename {scala-libraries-4/src/it/scala-2 => scala-libraries-testing/src/it/scala}/com/baeldung/scala/testcontainers/GenericContainerManualTest.scala (98%) rename {scala-libraries-4/src/it/scala-2 => scala-libraries-testing/src/it/scala}/com/baeldung/scala/testcontainers/LocalstackModuleManualTest.scala (97%) rename {scala-libraries-4/src/main/scala-2 => scala-libraries-testing/src/main/scala}/com/baeldung/scala/testcontainers/SimpleS3Uploader.scala (100%) diff --git a/build.sbt b/build.sbt index 66af6d60b..f4c44f346 100644 --- a/build.sbt +++ b/build.sbt @@ -455,11 +455,6 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) libraryDependencies ++= Seq( "software.amazon.awssdk" % "s3" % "2.25.9" ), - libraryDependencies ++= Seq( - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.679" % IntegrationTest, - "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, - "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest - ), libraryDependencies ++= Seq( "com.github.seratch" %% "awscala" % "0.9.2" ), @@ -519,16 +514,23 @@ lazy val scala_libraries_fp = (project in file("scala-libraries-fp")) ) lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) + .configs(IntegrationTest) .settings( name := "scala-libraries-testing", scalaVersion := scala3Version, - libraryDependencies ++= scalaTestDeps, + libraryDependencies ++= scalaTestDeps.map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( "org.scalacheck" %% "scalacheck" % "1.17.0" % Test, scalaMock, "com.lihaoyi" %% "utest" % "0.8.2" % "test", - munitDep - ) + munitDep, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.679" % IntegrationTest, + "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, + "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, + "software.amazon.awssdk" % "s3" % "2.25.9" + ), + Defaults.itSettings, + IntegrationTest / fork := true ) lazy val scala_libraries_persistence = diff --git a/scala-libraries-4/src/it/resources/docker-compose.yml b/scala-libraries-testing/src/it/resources/docker-compose.yml similarity index 100% rename from scala-libraries-4/src/it/resources/docker-compose.yml rename to scala-libraries-testing/src/it/resources/docker-compose.yml diff --git a/scala-libraries-4/src/it/resources/s3-test.txt b/scala-libraries-testing/src/it/resources/s3-test.txt similarity index 100% rename from scala-libraries-4/src/it/resources/s3-test.txt rename to scala-libraries-testing/src/it/resources/s3-test.txt diff --git a/scala-libraries-4/src/it/scala-2/com/baeldung/scala/testcontainers/DockerComposeManualTest.scala b/scala-libraries-testing/src/it/scala/com/baeldung/scala/testcontainers/DockerComposeManualTest.scala similarity index 96% rename from scala-libraries-4/src/it/scala-2/com/baeldung/scala/testcontainers/DockerComposeManualTest.scala rename to scala-libraries-testing/src/it/scala/com/baeldung/scala/testcontainers/DockerComposeManualTest.scala index dd541c3f7..91824696a 100644 --- a/scala-libraries-4/src/it/scala-2/com/baeldung/scala/testcontainers/DockerComposeManualTest.scala +++ b/scala-libraries-testing/src/it/scala/com/baeldung/scala/testcontainers/DockerComposeManualTest.scala @@ -39,7 +39,7 @@ class DockerComposeManualTest getClass.getClassLoader.getResource("s3-test.txt").getFile ) - override lazy val containerDef: DockerComposeContainer.Def = { + override val containerDef: DockerComposeContainer.Def = { DockerComposeContainer.Def( new File( this.getClass.getClassLoader.getResource("docker-compose.yml").getFile @@ -90,7 +90,7 @@ class DockerComposeManualTest ).fold( { case ex: NoSuchKeyException => fail("File not found: " + ex) - case _ => fail + case _ => fail() }, _ => succeed ) diff --git a/scala-libraries-4/src/it/scala-2/com/baeldung/scala/testcontainers/GenericContainerManualTest.scala b/scala-libraries-testing/src/it/scala/com/baeldung/scala/testcontainers/GenericContainerManualTest.scala similarity index 98% rename from scala-libraries-4/src/it/scala-2/com/baeldung/scala/testcontainers/GenericContainerManualTest.scala rename to scala-libraries-testing/src/it/scala/com/baeldung/scala/testcontainers/GenericContainerManualTest.scala index 63c924bd4..4773f1eb9 100644 --- a/scala-libraries-4/src/it/scala-2/com/baeldung/scala/testcontainers/GenericContainerManualTest.scala +++ b/scala-libraries-testing/src/it/scala/com/baeldung/scala/testcontainers/GenericContainerManualTest.scala @@ -107,7 +107,7 @@ class GenericContainerManualTest ).fold( { case _: NoSuchKeyException => fail("File not found") - case _ => fail + case _ => fail() }, _ => succeed ) diff --git a/scala-libraries-4/src/it/scala-2/com/baeldung/scala/testcontainers/LocalstackModuleManualTest.scala b/scala-libraries-testing/src/it/scala/com/baeldung/scala/testcontainers/LocalstackModuleManualTest.scala similarity index 97% rename from scala-libraries-4/src/it/scala-2/com/baeldung/scala/testcontainers/LocalstackModuleManualTest.scala rename to scala-libraries-testing/src/it/scala/com/baeldung/scala/testcontainers/LocalstackModuleManualTest.scala index 2ddc89912..c95e51292 100644 --- a/scala-libraries-4/src/it/scala-2/com/baeldung/scala/testcontainers/LocalstackModuleManualTest.scala +++ b/scala-libraries-testing/src/it/scala/com/baeldung/scala/testcontainers/LocalstackModuleManualTest.scala @@ -67,7 +67,7 @@ class LocalstackModuleManualTest ).fold( { case _: NoSuchKeyException => fail("File not found") - case _ => fail + case _ => fail() }, _ => succeed ) diff --git a/scala-libraries-4/src/main/scala-2/com/baeldung/scala/testcontainers/SimpleS3Uploader.scala b/scala-libraries-testing/src/main/scala/com/baeldung/scala/testcontainers/SimpleS3Uploader.scala similarity index 100% rename from scala-libraries-4/src/main/scala-2/com/baeldung/scala/testcontainers/SimpleS3Uploader.scala rename to scala-libraries-testing/src/main/scala/com/baeldung/scala/testcontainers/SimpleS3Uploader.scala From 94682245cc8e6e0d8e5b6463f21f0df29edb5090 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 27 Mar 2024 17:38:55 +0100 Subject: [PATCH 0448/1318] Moved articles around to realted to libraries supporting scala 3 --- build.sbt | 21 +++++++++---------- scala-libraries-2/README.md | 3 --- .../RequestsScalaHttpClientLiveTest.scala | 4 ++-- .../com/baeldung/circe/JSONConversions.scala | 0 .../com/baeldung/elastic4s/Main.scala | 0 .../play_db/PlayDbExample.scala | 0 .../baeldung/circe/JSONConversionsTest.scala | 0 .../baeldung/scala/circe/CirceUnitTest.scala | 0 .../scala/circe/CustomDecoderUnitTest.scala | 0 scala-libraries/README.md | 3 +++ .../service/AsyncQueryMemoizeService.scala | 0 .../cache/service/CacheFlagService.scala | 0 .../cache/service/CaffeineCacheConfig.scala | 0 .../baeldung/cache/service/CatsService.scala | 0 .../cache/service/GenericCacheService.scala | 0 .../com/baeldung/cache/service/Models.scala | 0 .../service/ScalaCacheCachingBlock.scala | 0 .../SyncQueryCustomMemoizeKeyService.scala | 0 .../service/SyncQueryMemoizeService.scala | 0 .../cache/service/SyncQueryService.scala | 0 .../com/baeldung/enumeratum/Enums.scala | 0 .../com/baeldung/scala/monix/MonixTask.scala | 0 .../baeldung/cache/GenericCacheUnitTest.scala | 0 .../cache/ScalaCacheAsyncUnitTest.scala | 0 .../ScalaCacheCachingBlockUnitTest.scala | 0 .../cache/ScalaCacheCatsServiceUnitTest.scala | 0 .../cache/ScalaCacheSyncUnitTest.scala | 0 .../enumeratum/EnumeratumUnitTest.scala | 0 .../scala/monix/MonixTaskUnitTest.scala | 0 29 files changed, 15 insertions(+), 16 deletions(-) rename scala-libraries-2/src/it/{scala-2 => scala}/com/baeldung/requests/RequestsScalaHttpClientLiveTest.scala (97%) rename scala-libraries-2/src/main/{scala-2 => scala}/com/baeldung/circe/JSONConversions.scala (100%) rename scala-libraries-2/src/main/{scala-2 => scala}/com/baeldung/elastic4s/Main.scala (100%) rename scala-libraries-2/src/main/{scala-2 => scala}/play_db/PlayDbExample.scala (100%) rename scala-libraries-2/src/test/{scala-2 => scala}/com/baeldung/circe/JSONConversionsTest.scala (100%) rename scala-libraries-2/src/test/{scala-2 => scala}/com/baeldung/scala/circe/CirceUnitTest.scala (100%) rename scala-libraries-2/src/test/{scala-2 => scala}/com/baeldung/scala/circe/CustomDecoderUnitTest.scala (100%) rename {scala-libraries-2 => scala-libraries}/src/main/scala-2/com/baeldung/cache/service/AsyncQueryMemoizeService.scala (100%) rename {scala-libraries-2 => scala-libraries}/src/main/scala-2/com/baeldung/cache/service/CacheFlagService.scala (100%) rename {scala-libraries-2 => scala-libraries}/src/main/scala-2/com/baeldung/cache/service/CaffeineCacheConfig.scala (100%) rename {scala-libraries-2 => scala-libraries}/src/main/scala-2/com/baeldung/cache/service/CatsService.scala (100%) rename {scala-libraries-2 => scala-libraries}/src/main/scala-2/com/baeldung/cache/service/GenericCacheService.scala (100%) rename {scala-libraries-2 => scala-libraries}/src/main/scala-2/com/baeldung/cache/service/Models.scala (100%) rename {scala-libraries-2 => scala-libraries}/src/main/scala-2/com/baeldung/cache/service/ScalaCacheCachingBlock.scala (100%) rename {scala-libraries-2 => scala-libraries}/src/main/scala-2/com/baeldung/cache/service/SyncQueryCustomMemoizeKeyService.scala (100%) rename {scala-libraries-2 => scala-libraries}/src/main/scala-2/com/baeldung/cache/service/SyncQueryMemoizeService.scala (100%) rename {scala-libraries-2 => scala-libraries}/src/main/scala-2/com/baeldung/cache/service/SyncQueryService.scala (100%) rename {scala-libraries-2 => scala-libraries}/src/main/scala-2/com/baeldung/enumeratum/Enums.scala (100%) rename {scala-libraries-2 => scala-libraries}/src/main/scala-2/com/baeldung/scala/monix/MonixTask.scala (100%) rename {scala-libraries-2 => scala-libraries}/src/test/scala-2/com/baeldung/cache/GenericCacheUnitTest.scala (100%) rename {scala-libraries-2 => scala-libraries}/src/test/scala-2/com/baeldung/cache/ScalaCacheAsyncUnitTest.scala (100%) rename {scala-libraries-2 => scala-libraries}/src/test/scala-2/com/baeldung/cache/ScalaCacheCachingBlockUnitTest.scala (100%) rename {scala-libraries-2 => scala-libraries}/src/test/scala-2/com/baeldung/cache/ScalaCacheCatsServiceUnitTest.scala (100%) rename {scala-libraries-2 => scala-libraries}/src/test/scala-2/com/baeldung/cache/ScalaCacheSyncUnitTest.scala (100%) rename {scala-libraries-2 => scala-libraries}/src/test/scala-2/com/baeldung/enumeratum/EnumeratumUnitTest.scala (100%) rename {scala-libraries-2 => scala-libraries}/src/test/scala-2/com/baeldung/scala/monix/MonixTaskUnitTest.scala (100%) diff --git a/build.sbt b/build.sbt index f4c44f346..2f6a15a99 100644 --- a/build.sbt +++ b/build.sbt @@ -331,7 +331,13 @@ lazy val scala_libraries = (project in file("scala-libraries")) "junit" % "junit" % "4.13.2" % Test, logback % Test, akkaActorTyped, - akkaStreamDep + akkaStreamDep, + "com.github.cb372" %% "scalacache-core" % "0.28.0", + "com.github.cb372" %% "scalacache-guava" % "0.28.0", + "com.github.cb372" %% "scalacache-cats-effect" % "0.28.0", + "com.github.cb372" %% "scalacache-caffeine" % "0.28.0", + enumeratumDep, + "io.monix" %% "monix" % monixVersion ), libraryDependencies ++= Seq( "com.typesafe.slick" %% "slick" % slickVersion, @@ -354,26 +360,19 @@ val circeParserDep = "io.circe" %% "circe-parser" % circeVersion lazy val scala_libraries_2 = (project in file("scala-libraries-2")) .configs(IntegrationTest) .settings( - name := "scala-libraries", + name := "scala-libraries-2", + scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( "io.circe" %% "circe-core" % circeVersion, circeDep, - circeParserDep, - "com.github.cb372" %% "scalacache-core" % "0.28.0", - "com.github.cb372" %% "scalacache-guava" % "0.28.0", - "com.github.cb372" %% "scalacache-cats-effect" % "0.28.0", - "com.github.cb372" %% "scalacache-caffeine" % "0.28.0", - enumeratumDep + circeParserDep ), libraryDependencies ++= Seq( "org.playframework" %% "play-slick" % "6.1.0", "org.postgresql" % "postgresql" % "42.7.2" ), - libraryDependencies ++= Seq( - "io.monix" %% "monix" % monixVersion - ), dependencyOverrides := Seq( "com.typesafe.akka" %% "akka-protobuf-v3" % AkkaVersion, akkaStreamDep, diff --git a/scala-libraries-2/README.md b/scala-libraries-2/README.md index 53692078a..9724679bc 100644 --- a/scala-libraries-2/README.md +++ b/scala-libraries-2/README.md @@ -1,9 +1,6 @@ ## Relevant Articles: - [Parsing JSON with Circe](https://www.baeldung.com/scala/circe-json) -- [Asynchronous and Reactive Programming With Monix in Scala](https://www.baeldung.com/scala/monix) - [Database Access with Play](https://www.baeldung.com/scala/play-database-access) -- [ScalaCache: A Caching Library To Rule Them All](https://www.baeldung.com/scala/scalacache) - [Simple REST Requests Using Requests-Scala](https://www.baeldung.com/scala/rest-with-requests-scala) -- [Better Enumerations in Scala Using Enumeratum](https://www.baeldung.com/scala/enumeratum) - [Guide to elastic4s – Elasticsearch Scala Client](https://www.baeldung.com/scala/elastic4s-elasticsearch-client) \ No newline at end of file diff --git a/scala-libraries-2/src/it/scala-2/com/baeldung/requests/RequestsScalaHttpClientLiveTest.scala b/scala-libraries-2/src/it/scala/com/baeldung/requests/RequestsScalaHttpClientLiveTest.scala similarity index 97% rename from scala-libraries-2/src/it/scala-2/com/baeldung/requests/RequestsScalaHttpClientLiveTest.scala rename to scala-libraries-2/src/it/scala/com/baeldung/requests/RequestsScalaHttpClientLiveTest.scala index 0d5133001..86c2582ee 100644 --- a/scala-libraries-2/src/it/scala-2/com/baeldung/requests/RequestsScalaHttpClientLiveTest.scala +++ b/scala-libraries-2/src/it/scala/com/baeldung/requests/RequestsScalaHttpClientLiveTest.scala @@ -24,7 +24,7 @@ class RequestsScalaHttpClientLiveTest "Requests" should { "invoke a simple GET request" in { val r: Response = requests.get("https://api.github.com/users/baeldung") - assert(r.text.contains("http://www.baeldung.com")) + assert(r.text().contains("http://www.baeldung.com")) assert(r.statusCode == 200) assert(r.contentType.exists(_.contains("application/json"))) assert(r.is2xx) @@ -134,7 +134,7 @@ class RequestsScalaHttpClientLiveTest requests.MultiItem("hint", "This is file upload") ) ) - assert(r.text contains ("multipart/form-data")) + assert(r.text() contains ("multipart/form-data")) } } diff --git a/scala-libraries-2/src/main/scala-2/com/baeldung/circe/JSONConversions.scala b/scala-libraries-2/src/main/scala/com/baeldung/circe/JSONConversions.scala similarity index 100% rename from scala-libraries-2/src/main/scala-2/com/baeldung/circe/JSONConversions.scala rename to scala-libraries-2/src/main/scala/com/baeldung/circe/JSONConversions.scala diff --git a/scala-libraries-2/src/main/scala-2/com/baeldung/elastic4s/Main.scala b/scala-libraries-2/src/main/scala/com/baeldung/elastic4s/Main.scala similarity index 100% rename from scala-libraries-2/src/main/scala-2/com/baeldung/elastic4s/Main.scala rename to scala-libraries-2/src/main/scala/com/baeldung/elastic4s/Main.scala diff --git a/scala-libraries-2/src/main/scala-2/play_db/PlayDbExample.scala b/scala-libraries-2/src/main/scala/play_db/PlayDbExample.scala similarity index 100% rename from scala-libraries-2/src/main/scala-2/play_db/PlayDbExample.scala rename to scala-libraries-2/src/main/scala/play_db/PlayDbExample.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/circe/JSONConversionsTest.scala b/scala-libraries-2/src/test/scala/com/baeldung/circe/JSONConversionsTest.scala similarity index 100% rename from scala-libraries-2/src/test/scala-2/com/baeldung/circe/JSONConversionsTest.scala rename to scala-libraries-2/src/test/scala/com/baeldung/circe/JSONConversionsTest.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/scala/circe/CirceUnitTest.scala b/scala-libraries-2/src/test/scala/com/baeldung/scala/circe/CirceUnitTest.scala similarity index 100% rename from scala-libraries-2/src/test/scala-2/com/baeldung/scala/circe/CirceUnitTest.scala rename to scala-libraries-2/src/test/scala/com/baeldung/scala/circe/CirceUnitTest.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/scala/circe/CustomDecoderUnitTest.scala b/scala-libraries-2/src/test/scala/com/baeldung/scala/circe/CustomDecoderUnitTest.scala similarity index 100% rename from scala-libraries-2/src/test/scala-2/com/baeldung/scala/circe/CustomDecoderUnitTest.scala rename to scala-libraries-2/src/test/scala/com/baeldung/scala/circe/CustomDecoderUnitTest.scala diff --git a/scala-libraries/README.md b/scala-libraries/README.md index 769957b35..a8081c878 100644 --- a/scala-libraries/README.md +++ b/scala-libraries/README.md @@ -3,3 +3,6 @@ - [Introduction to Optics in Scala Using Monocle](https://www.baeldung.com/scala/monocle-optics) - [Building REST APIs in Scala with Finch](https://www.baeldung.com/scala/finch-rest-apis) - [Introduction to Generic Programming in Scala with shapeless](https://www.baeldung.com/scala/generic-programming) +- [Asynchronous and Reactive Programming With Monix in Scala](https://www.baeldung.com/scala/monix) +- [ScalaCache: A Caching Library To Rule Them All](https://www.baeldung.com/scala/scalacache) +- [Better Enumerations in Scala Using Enumeratum](https://www.baeldung.com/scala/enumeratum) \ No newline at end of file diff --git a/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/AsyncQueryMemoizeService.scala b/scala-libraries/src/main/scala-2/com/baeldung/cache/service/AsyncQueryMemoizeService.scala similarity index 100% rename from scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/AsyncQueryMemoizeService.scala rename to scala-libraries/src/main/scala-2/com/baeldung/cache/service/AsyncQueryMemoizeService.scala diff --git a/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/CacheFlagService.scala b/scala-libraries/src/main/scala-2/com/baeldung/cache/service/CacheFlagService.scala similarity index 100% rename from scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/CacheFlagService.scala rename to scala-libraries/src/main/scala-2/com/baeldung/cache/service/CacheFlagService.scala diff --git a/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/CaffeineCacheConfig.scala b/scala-libraries/src/main/scala-2/com/baeldung/cache/service/CaffeineCacheConfig.scala similarity index 100% rename from scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/CaffeineCacheConfig.scala rename to scala-libraries/src/main/scala-2/com/baeldung/cache/service/CaffeineCacheConfig.scala diff --git a/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/CatsService.scala b/scala-libraries/src/main/scala-2/com/baeldung/cache/service/CatsService.scala similarity index 100% rename from scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/CatsService.scala rename to scala-libraries/src/main/scala-2/com/baeldung/cache/service/CatsService.scala diff --git a/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/GenericCacheService.scala b/scala-libraries/src/main/scala-2/com/baeldung/cache/service/GenericCacheService.scala similarity index 100% rename from scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/GenericCacheService.scala rename to scala-libraries/src/main/scala-2/com/baeldung/cache/service/GenericCacheService.scala diff --git a/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/Models.scala b/scala-libraries/src/main/scala-2/com/baeldung/cache/service/Models.scala similarity index 100% rename from scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/Models.scala rename to scala-libraries/src/main/scala-2/com/baeldung/cache/service/Models.scala diff --git a/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/ScalaCacheCachingBlock.scala b/scala-libraries/src/main/scala-2/com/baeldung/cache/service/ScalaCacheCachingBlock.scala similarity index 100% rename from scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/ScalaCacheCachingBlock.scala rename to scala-libraries/src/main/scala-2/com/baeldung/cache/service/ScalaCacheCachingBlock.scala diff --git a/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/SyncQueryCustomMemoizeKeyService.scala b/scala-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryCustomMemoizeKeyService.scala similarity index 100% rename from scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/SyncQueryCustomMemoizeKeyService.scala rename to scala-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryCustomMemoizeKeyService.scala diff --git a/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/SyncQueryMemoizeService.scala b/scala-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryMemoizeService.scala similarity index 100% rename from scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/SyncQueryMemoizeService.scala rename to scala-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryMemoizeService.scala diff --git a/scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/SyncQueryService.scala b/scala-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryService.scala similarity index 100% rename from scala-libraries-2/src/main/scala-2/com/baeldung/cache/service/SyncQueryService.scala rename to scala-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryService.scala diff --git a/scala-libraries-2/src/main/scala-2/com/baeldung/enumeratum/Enums.scala b/scala-libraries/src/main/scala-2/com/baeldung/enumeratum/Enums.scala similarity index 100% rename from scala-libraries-2/src/main/scala-2/com/baeldung/enumeratum/Enums.scala rename to scala-libraries/src/main/scala-2/com/baeldung/enumeratum/Enums.scala diff --git a/scala-libraries-2/src/main/scala-2/com/baeldung/scala/monix/MonixTask.scala b/scala-libraries/src/main/scala-2/com/baeldung/scala/monix/MonixTask.scala similarity index 100% rename from scala-libraries-2/src/main/scala-2/com/baeldung/scala/monix/MonixTask.scala rename to scala-libraries/src/main/scala-2/com/baeldung/scala/monix/MonixTask.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/cache/GenericCacheUnitTest.scala b/scala-libraries/src/test/scala-2/com/baeldung/cache/GenericCacheUnitTest.scala similarity index 100% rename from scala-libraries-2/src/test/scala-2/com/baeldung/cache/GenericCacheUnitTest.scala rename to scala-libraries/src/test/scala-2/com/baeldung/cache/GenericCacheUnitTest.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/cache/ScalaCacheAsyncUnitTest.scala b/scala-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheAsyncUnitTest.scala similarity index 100% rename from scala-libraries-2/src/test/scala-2/com/baeldung/cache/ScalaCacheAsyncUnitTest.scala rename to scala-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheAsyncUnitTest.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/cache/ScalaCacheCachingBlockUnitTest.scala b/scala-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheCachingBlockUnitTest.scala similarity index 100% rename from scala-libraries-2/src/test/scala-2/com/baeldung/cache/ScalaCacheCachingBlockUnitTest.scala rename to scala-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheCachingBlockUnitTest.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/cache/ScalaCacheCatsServiceUnitTest.scala b/scala-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheCatsServiceUnitTest.scala similarity index 100% rename from scala-libraries-2/src/test/scala-2/com/baeldung/cache/ScalaCacheCatsServiceUnitTest.scala rename to scala-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheCatsServiceUnitTest.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/cache/ScalaCacheSyncUnitTest.scala b/scala-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheSyncUnitTest.scala similarity index 100% rename from scala-libraries-2/src/test/scala-2/com/baeldung/cache/ScalaCacheSyncUnitTest.scala rename to scala-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheSyncUnitTest.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/enumeratum/EnumeratumUnitTest.scala b/scala-libraries/src/test/scala-2/com/baeldung/enumeratum/EnumeratumUnitTest.scala similarity index 100% rename from scala-libraries-2/src/test/scala-2/com/baeldung/enumeratum/EnumeratumUnitTest.scala rename to scala-libraries/src/test/scala-2/com/baeldung/enumeratum/EnumeratumUnitTest.scala diff --git a/scala-libraries-2/src/test/scala-2/com/baeldung/scala/monix/MonixTaskUnitTest.scala b/scala-libraries/src/test/scala-2/com/baeldung/scala/monix/MonixTaskUnitTest.scala similarity index 100% rename from scala-libraries-2/src/test/scala-2/com/baeldung/scala/monix/MonixTaskUnitTest.scala rename to scala-libraries/src/test/scala-2/com/baeldung/scala/monix/MonixTaskUnitTest.scala From 5eb0c9779e1107cf9e386fd25cb9b8b9cac2e860 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 27 Mar 2024 17:46:54 +0100 Subject: [PATCH 0449/1318] Moved retry article to scala 3 --- build.sbt | 4 ++-- scala-libraries-2/README.md | 4 +++- .../scala}/com/baeldung/scala/retry/PrimeNumberRetry.scala | 0 .../com/baeldung/scala/retry/PrimeNumberRetryTest.scala | 0 scala-libraries-3/README.md | 1 - 5 files changed, 5 insertions(+), 4 deletions(-) rename {scala-libraries-3/src/main/scala-2 => scala-libraries-2/src/main/scala}/com/baeldung/scala/retry/PrimeNumberRetry.scala (100%) rename {scala-libraries-3/src/test/scala-2 => scala-libraries-2/src/test/scala}/com/baeldung/scala/retry/PrimeNumberRetryTest.scala (100%) diff --git a/build.sbt b/build.sbt index 2f6a15a99..78768fb48 100644 --- a/build.sbt +++ b/build.sbt @@ -367,7 +367,8 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) libraryDependencies ++= Seq( "io.circe" %% "circe-core" % circeVersion, circeDep, - circeParserDep + circeParserDep, + "com.softwaremill.retry" %% "retry" % "0.3.6", ), libraryDependencies ++= Seq( "org.playframework" %% "play-slick" % "6.1.0", @@ -412,7 +413,6 @@ lazy val scala_libraries_3 = (project in file("scala-libraries-3")) "com.typesafe" % "config" % "1.4.3", munitDep ), - libraryDependencies += "com.softwaremill.retry" %% "retry" % "0.3.6", libraryDependencies ++= Seq( log4jApiScalaDep, "org.apache.logging.log4j" % "log4j-core" % "2.23.1" % Runtime diff --git a/scala-libraries-2/README.md b/scala-libraries-2/README.md index 9724679bc..2ebab3ff5 100644 --- a/scala-libraries-2/README.md +++ b/scala-libraries-2/README.md @@ -3,4 +3,6 @@ - [Parsing JSON with Circe](https://www.baeldung.com/scala/circe-json) - [Database Access with Play](https://www.baeldung.com/scala/play-database-access) - [Simple REST Requests Using Requests-Scala](https://www.baeldung.com/scala/rest-with-requests-scala) -- [Guide to elastic4s – Elasticsearch Scala Client](https://www.baeldung.com/scala/elastic4s-elasticsearch-client) \ No newline at end of file +- [Guide to elastic4s – Elasticsearch Scala Client](https://www.baeldung.com/scala/elastic4s-elasticsearch-client) +- [A Guide to the Scala Retry Library](https://www.baeldung.com/scala/retry-library) +- \ No newline at end of file diff --git a/scala-libraries-3/src/main/scala-2/com/baeldung/scala/retry/PrimeNumberRetry.scala b/scala-libraries-2/src/main/scala/com/baeldung/scala/retry/PrimeNumberRetry.scala similarity index 100% rename from scala-libraries-3/src/main/scala-2/com/baeldung/scala/retry/PrimeNumberRetry.scala rename to scala-libraries-2/src/main/scala/com/baeldung/scala/retry/PrimeNumberRetry.scala diff --git a/scala-libraries-3/src/test/scala-2/com/baeldung/scala/retry/PrimeNumberRetryTest.scala b/scala-libraries-2/src/test/scala/com/baeldung/scala/retry/PrimeNumberRetryTest.scala similarity index 100% rename from scala-libraries-3/src/test/scala-2/com/baeldung/scala/retry/PrimeNumberRetryTest.scala rename to scala-libraries-2/src/test/scala/com/baeldung/scala/retry/PrimeNumberRetryTest.scala diff --git a/scala-libraries-3/README.md b/scala-libraries-3/README.md index d0e5d22b6..b6fd05258 100644 --- a/scala-libraries-3/README.md +++ b/scala-libraries-3/README.md @@ -1,6 +1,5 @@ ### Relevant Articles: - [Load Configuration Files In Scala Using PureConfig](https://www.baeldung.com/scala/pureconfig-load-config-files) -- [A Guide to the Scala Retry Library](https://www.baeldung.com/scala/retry-library) - [Introduction to Apache Log4j in Scala](https://www.baeldung.com/scala/apache-log4j) - [Introduction to Tapir](https://www.baeldung.com/scala/tapir) \ No newline at end of file From 4496c9f6616b73d4aca93714cc0813fdfd6e16af Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 27 Mar 2024 17:55:33 +0100 Subject: [PATCH 0450/1318] move pureconfig to scala-2 module --- build.sbt | 9 ++-- scala-libraries-3/README.md | 1 - .../src/test/resources/application.conf | 45 ----------------- scala-libraries/README.md | 4 +- .../baeldung/scala/pureconfig/Configs.scala | 0 .../test/resources/application-default.conf | 0 .../src/test/resources/application.conf | 48 ++++++++++++++++++- .../src/test/resources/database.conf | 0 .../src/test/resources/http.conf | 0 .../src/test/resources/main.conf | 0 .../src/test/resources/notification.conf | 0 .../scala/pureconfig/SampleConfigLoader.scala | 0 12 files changed, 54 insertions(+), 53 deletions(-) delete mode 100644 scala-libraries-3/src/test/resources/application.conf rename {scala-libraries-3 => scala-libraries}/src/main/scala-2/com/baeldung/scala/pureconfig/Configs.scala (100%) rename {scala-libraries-3 => scala-libraries}/src/test/resources/application-default.conf (100%) rename {scala-libraries-3 => scala-libraries}/src/test/resources/database.conf (100%) rename {scala-libraries-3 => scala-libraries}/src/test/resources/http.conf (100%) rename {scala-libraries-3 => scala-libraries}/src/test/resources/main.conf (100%) rename {scala-libraries-3 => scala-libraries}/src/test/resources/notification.conf (100%) rename {scala-libraries-3 => scala-libraries}/src/test/scala-2/com/baeldung/scala/pureconfig/SampleConfigLoader.scala (100%) diff --git a/build.sbt b/build.sbt index 78768fb48..611c0756c 100644 --- a/build.sbt +++ b/build.sbt @@ -337,7 +337,10 @@ lazy val scala_libraries = (project in file("scala-libraries")) "com.github.cb372" %% "scalacache-cats-effect" % "0.28.0", "com.github.cb372" %% "scalacache-caffeine" % "0.28.0", enumeratumDep, - "io.monix" %% "monix" % monixVersion + "io.monix" %% "monix" % monixVersion, + pureConfigDep, + "com.github.pureconfig" %% "pureconfig-enumeratum" % "0.17.6", + "com.typesafe" % "config" % "1.4.3", ), libraryDependencies ++= Seq( "com.typesafe.slick" %% "slick" % slickVersion, @@ -407,10 +410,6 @@ lazy val scala_libraries_3 = (project in file("scala-libraries-3")) name := "scala-libraries", libraryDependencies ++= scalaTestDeps, libraryDependencies ++= Seq( - enumeratumDep, - pureConfigDep, - "com.github.pureconfig" %% "pureconfig-enumeratum" % "0.17.6", - "com.typesafe" % "config" % "1.4.3", munitDep ), libraryDependencies ++= Seq( diff --git a/scala-libraries-3/README.md b/scala-libraries-3/README.md index b6fd05258..7149f52ae 100644 --- a/scala-libraries-3/README.md +++ b/scala-libraries-3/README.md @@ -1,5 +1,4 @@ ### Relevant Articles: -- [Load Configuration Files In Scala Using PureConfig](https://www.baeldung.com/scala/pureconfig-load-config-files) - [Introduction to Apache Log4j in Scala](https://www.baeldung.com/scala/apache-log4j) - [Introduction to Tapir](https://www.baeldung.com/scala/tapir) \ No newline at end of file diff --git a/scala-libraries-3/src/test/resources/application.conf b/scala-libraries-3/src/test/resources/application.conf deleted file mode 100644 index f906a11c5..000000000 --- a/scala-libraries-3/src/test/resources/application.conf +++ /dev/null @@ -1,45 +0,0 @@ -kafka { - port = 8090 - bootstrap-server = "kafka.mydomain.com" - protocol = "https" - timeout = 2s -} - -graphite { - enabled : true - servers : [ - { - host = "graphite.monitoring.com" - port = 6666 - } - ] -} - -app-name = "baeldung-app" -env = Prod -baseDate = "2022-03-17" - -# Samples used in config blog examples - -id = 100 -name = "baeldung" -price = 2.0 -status = false -mem = 1k -delay = 1 second - -app.database { - postgres { - url = "localhost:5432", - username = "user" - } -} - -complex-types { - duration = 5 seconds - heap-size = 1k -} - -sub { - desc = "This is a "${name}" project" -} diff --git a/scala-libraries/README.md b/scala-libraries/README.md index a8081c878..16d7f0fa7 100644 --- a/scala-libraries/README.md +++ b/scala-libraries/README.md @@ -5,4 +5,6 @@ - [Introduction to Generic Programming in Scala with shapeless](https://www.baeldung.com/scala/generic-programming) - [Asynchronous and Reactive Programming With Monix in Scala](https://www.baeldung.com/scala/monix) - [ScalaCache: A Caching Library To Rule Them All](https://www.baeldung.com/scala/scalacache) -- [Better Enumerations in Scala Using Enumeratum](https://www.baeldung.com/scala/enumeratum) \ No newline at end of file +- [Better Enumerations in Scala Using Enumeratum](https://www.baeldung.com/scala/enumeratum) +- [Load Configuration Files In Scala Using PureConfig](https://www.baeldung.com/scala/pureconfig-load-config-files) +- \ No newline at end of file diff --git a/scala-libraries-3/src/main/scala-2/com/baeldung/scala/pureconfig/Configs.scala b/scala-libraries/src/main/scala-2/com/baeldung/scala/pureconfig/Configs.scala similarity index 100% rename from scala-libraries-3/src/main/scala-2/com/baeldung/scala/pureconfig/Configs.scala rename to scala-libraries/src/main/scala-2/com/baeldung/scala/pureconfig/Configs.scala diff --git a/scala-libraries-3/src/test/resources/application-default.conf b/scala-libraries/src/test/resources/application-default.conf similarity index 100% rename from scala-libraries-3/src/test/resources/application-default.conf rename to scala-libraries/src/test/resources/application-default.conf diff --git a/scala-libraries/src/test/resources/application.conf b/scala-libraries/src/test/resources/application.conf index b6b07d594..3496ee306 100644 --- a/scala-libraries/src/test/resources/application.conf +++ b/scala-libraries/src/test/resources/application.conf @@ -10,4 +10,50 @@ akka { loggers = ["akka.event.Logging$DefaultLogger"] # Options: OFF, ERROR, WARNING, INFO, DEBUG loglevel = "INFO" -} \ No newline at end of file +} + +kafka { + port = 8090 + bootstrap-server = "kafka.mydomain.com" + protocol = "https" + timeout = 2s +} + +graphite { + enabled : true + servers : [ + { + host = "graphite.monitoring.com" + port = 6666 + } + ] +} + +app-name = "baeldung-app" +env = Prod +baseDate = "2022-03-17" + +# Samples used in config blog examples + +id = 100 +name = "baeldung" +price = 2.0 +status = false +mem = 1k +delay = 1 second + +app.database { + postgres { + url = "localhost:5432", + username = "user" + } +} + +complex-types { + duration = 5 seconds + heap-size = 1k +} + +sub { + desc = "This is a "${name}" project" +} diff --git a/scala-libraries-3/src/test/resources/database.conf b/scala-libraries/src/test/resources/database.conf similarity index 100% rename from scala-libraries-3/src/test/resources/database.conf rename to scala-libraries/src/test/resources/database.conf diff --git a/scala-libraries-3/src/test/resources/http.conf b/scala-libraries/src/test/resources/http.conf similarity index 100% rename from scala-libraries-3/src/test/resources/http.conf rename to scala-libraries/src/test/resources/http.conf diff --git a/scala-libraries-3/src/test/resources/main.conf b/scala-libraries/src/test/resources/main.conf similarity index 100% rename from scala-libraries-3/src/test/resources/main.conf rename to scala-libraries/src/test/resources/main.conf diff --git a/scala-libraries-3/src/test/resources/notification.conf b/scala-libraries/src/test/resources/notification.conf similarity index 100% rename from scala-libraries-3/src/test/resources/notification.conf rename to scala-libraries/src/test/resources/notification.conf diff --git a/scala-libraries-3/src/test/scala-2/com/baeldung/scala/pureconfig/SampleConfigLoader.scala b/scala-libraries/src/test/scala-2/com/baeldung/scala/pureconfig/SampleConfigLoader.scala similarity index 100% rename from scala-libraries-3/src/test/scala-2/com/baeldung/scala/pureconfig/SampleConfigLoader.scala rename to scala-libraries/src/test/scala-2/com/baeldung/scala/pureconfig/SampleConfigLoader.scala From 0bbe3692b624eda4b653cfbbec1009fd4caf3be2 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 27 Mar 2024 18:04:41 +0100 Subject: [PATCH 0451/1318] Moved scala-async to scala2 libraries module --- build.sbt | 6 +- scala-libraries-4/README.md | 2 - .../baeldung/scala/async/ScalaAsyncTest.scala | 88 ------------------- scala-libraries-testing/README.md | 1 + scala-libraries/README.md | 1 + 5 files changed, 5 insertions(+), 93 deletions(-) delete mode 100644 scala-libraries-4/src/test/scala-2/com/baeldung/scala/async/ScalaAsyncTest.scala diff --git a/build.sbt b/build.sbt index 611c0756c..8f6dc4f9d 100644 --- a/build.sbt +++ b/build.sbt @@ -341,11 +341,13 @@ lazy val scala_libraries = (project in file("scala-libraries")) pureConfigDep, "com.github.pureconfig" %% "pureconfig-enumeratum" % "0.17.6", "com.typesafe" % "config" % "1.4.3", + "org.scala-lang.modules" %% "scala-async" % "1.0.1" ), libraryDependencies ++= Seq( "com.typesafe.slick" %% "slick" % slickVersion, "com.h2database" % "h2" % "2.2.224" - ) + ), + scalacOptions += "-Xasync", ) val circeVersion = "0.14.6" @@ -440,7 +442,6 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) libraryDependencies ++= scalaTestDeps .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( - "org.scala-lang.modules" %% "scala-async" % "1.0.1", scalaReflection % Provided, logback, "com.typesafe.scala-logging" %% "scala-logging" % "3.9.5" @@ -456,7 +457,6 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) libraryDependencies ++= Seq( "com.github.seratch" %% "awscala" % "0.9.2" ), - scalacOptions += "-Xasync", Defaults.itSettings, IntegrationTest / fork := true ) diff --git a/scala-libraries-4/README.md b/scala-libraries-4/README.md index d914a062a..ccdc609fb 100644 --- a/scala-libraries-4/README.md +++ b/scala-libraries-4/README.md @@ -1,8 +1,6 @@ ## Relevant Articles -- [Introduction to scala-async](https://www.baeldung.com/scala/scala-async) - [Apache Pulsar Scala Client – pulsar4s](https://www.baeldung.com/scala/pulsar4s) - [Logging in Scala Applications Using Scala-Logging](https://www.baeldung.com/scala/scala-logging) -- [Making Integration Testing Easier With TestContainers-scala](https://www.baeldung.com/scala/testcontainers-scala) - [AWScala – AWS SDK for Scala](https://www.baeldung.com/scala/awscala-aws-sdk-for-scala) - [Working with Redis in Scala](https://www.baeldung.com/scala/redis) diff --git a/scala-libraries-4/src/test/scala-2/com/baeldung/scala/async/ScalaAsyncTest.scala b/scala-libraries-4/src/test/scala-2/com/baeldung/scala/async/ScalaAsyncTest.scala deleted file mode 100644 index ef797d564..000000000 --- a/scala-libraries-4/src/test/scala-2/com/baeldung/scala/async/ScalaAsyncTest.scala +++ /dev/null @@ -1,88 +0,0 @@ -package com.baeldung.scala.async - -import org.scalatest.concurrent.ScalaFutures -import org.scalatest.matchers.should.Matchers -import org.scalatest.time.{Millis, Seconds, Span} -import org.scalatest.wordspec.{AnyWordSpec, AsyncWordSpec} - -import scala.async.Async.{async, await} -import scala.concurrent.Future - -object ScalaAsyncTest { - import scala.concurrent.ExecutionContext.Implicits.global - - def slowComputation: Future[Int] = Future { - Thread.sleep(1000) - 10 - } - - def anotherSlowComputation(s: String): Future[Int] = Future { - Thread.sleep(1500) - s.length - } - - def sequentialCombination: Future[Int] = async { - await(slowComputation) + await(anotherSlowComputation("Baeldung")) - } - - def parallelCombination: Future[Int] = async { - val r1 = slowComputation - val r2 = anotherSlowComputation("Baeldung") - await(r1) + await(r2) - } - - /* Uncommenting this snippet will produce the following error: - await must not be used under a nested method. await(slowComputation) - - def invalid = async { - def localFunction = { - await(slowComputation) - } - - localFunction - }*/ - - /* Uncommenting this snippet will produce the following error: - await must not be used under a try/catch. await(slowComputation) - - def tryCatch = async { - try { - await(slowComputation) - } catch { - case e: Throwable => println(e.getMessage) - } - }*/ - - def withFor: Future[Int] = for { - r1 <- slowComputation - r2 <- anotherSlowComputation("Baeldung") - } yield r1 + r2 -} - -class ScalaAsyncTest extends AsyncWordSpec with Matchers with ScalaFutures { - - import ScalaAsyncTest._ - - implicit private val defaultPatience: PatienceConfig = - PatienceConfig(timeout = Span(3, Seconds), interval = Span(500, Millis)) - - "Futures combination" should { - "work sequentially" in { - sequentialCombination.map { r => - assert(r == 18) - } - } - - "work in parallel" in { - parallelCombination.map { r => - assert(r == 18) - } - } - - "give the same result as Futures composed with for comprehension" in { - withFor.map { r => - assert(r == 18) - } - } - } -} diff --git a/scala-libraries-testing/README.md b/scala-libraries-testing/README.md index 971bd0d6c..e0cf41096 100644 --- a/scala-libraries-testing/README.md +++ b/scala-libraries-testing/README.md @@ -7,3 +7,4 @@ - [Introduction to uTest](https://www.baeldung.com/scala/utest-intro) //from scala3-libraries - [Introduction to MUnit](https://www.baeldung.com/scala/munit-introduction) +- [Making Integration Testing Easier With TestContainers-scala](https://www.baeldung.com/scala/testcontainers-scala) diff --git a/scala-libraries/README.md b/scala-libraries/README.md index 16d7f0fa7..ddc93a4f8 100644 --- a/scala-libraries/README.md +++ b/scala-libraries/README.md @@ -7,4 +7,5 @@ - [ScalaCache: A Caching Library To Rule Them All](https://www.baeldung.com/scala/scalacache) - [Better Enumerations in Scala Using Enumeratum](https://www.baeldung.com/scala/enumeratum) - [Load Configuration Files In Scala Using PureConfig](https://www.baeldung.com/scala/pureconfig-load-config-files) +- [Introduction to scala-async](https://www.baeldung.com/scala/scala-async) - \ No newline at end of file From 3713b294a7f1f7c235f61adb7bb96969bc64e150 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 27 Mar 2024 18:18:50 +0100 Subject: [PATCH 0452/1318] Moved pulsar4s to scala2 modules --- build.sbt | 14 +-- scala-libraries-4/README.md | 1 - scala-libraries/README.md | 1 + .../pulsar4s/PulsarJsonSchemaManualTest.scala | 0 .../PulsarStringSchemaManualTest.scala | 0 .../scala/pulsar4s/JsonPulsarConsumer.scala | 0 .../scala/pulsar4s/JsonPulsarProducer.scala | 0 .../scala/pulsar4s/PulsarClient.scala | 0 .../scala/pulsar4s/PulsarConsumer.scala | 0 .../scala/pulsar4s/PulsarMessage.scala | 0 .../scala/pulsar4s/PulsarProducer.scala | 0 .../baeldung/scala/async/ScalaAsyncTest.scala | 88 +++++++++++++++++++ 12 files changed, 96 insertions(+), 8 deletions(-) rename {scala-libraries-4/src/it/scala-2 => scala-libraries/src/it/scala}/com/baeldung/scala/pulsar4s/PulsarJsonSchemaManualTest.scala (100%) rename {scala-libraries-4/src/it/scala-2 => scala-libraries/src/it/scala}/com/baeldung/scala/pulsar4s/PulsarStringSchemaManualTest.scala (100%) rename {scala-libraries-4 => scala-libraries}/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarConsumer.scala (100%) rename {scala-libraries-4 => scala-libraries}/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarProducer.scala (100%) rename {scala-libraries-4 => scala-libraries}/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarClient.scala (100%) rename {scala-libraries-4 => scala-libraries}/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarConsumer.scala (100%) rename {scala-libraries-4 => scala-libraries}/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarMessage.scala (100%) rename {scala-libraries-4 => scala-libraries}/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarProducer.scala (100%) create mode 100644 scala-libraries/src/test/scala-2/com/baeldung/scala/async/ScalaAsyncTest.scala diff --git a/build.sbt b/build.sbt index 8f6dc4f9d..585fcb2bb 100644 --- a/build.sbt +++ b/build.sbt @@ -320,9 +320,10 @@ val fs2Version = "3.9.4" val reactiveMongo = "1.1.0-RC12" lazy val scala_libraries = (project in file("scala-libraries")) + .configs(IntegrationTest) .settings( name := "scala-libraries", - libraryDependencies ++= scalaTestDeps, + libraryDependencies ++= scalaTestDeps.map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( "com.github.julien-truffaut" %% "monocle-core" % monocleVersion, "com.github.julien-truffaut" %% "monocle-macro" % monocleVersion, @@ -341,13 +342,17 @@ lazy val scala_libraries = (project in file("scala-libraries")) pureConfigDep, "com.github.pureconfig" %% "pureconfig-enumeratum" % "0.17.6", "com.typesafe" % "config" % "1.4.3", - "org.scala-lang.modules" %% "scala-async" % "1.0.1" + "org.scala-lang.modules" %% "scala-async" % "1.0.1", + "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.9.1", + "com.clever-cloud.pulsar4s" %% "pulsar4s-jackson" % "2.9.1", + "org.testcontainers" % "pulsar" % "1.19.7" % IntegrationTest ), libraryDependencies ++= Seq( "com.typesafe.slick" %% "slick" % slickVersion, "com.h2database" % "h2" % "2.2.224" ), scalacOptions += "-Xasync", + Defaults.itSettings ) val circeVersion = "0.14.6" @@ -446,11 +451,6 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) logback, "com.typesafe.scala-logging" %% "scala-logging" % "3.9.5" ), - libraryDependencies ++= Seq( - "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.9.1", - "com.clever-cloud.pulsar4s" %% "pulsar4s-jackson" % "2.9.1", - "org.testcontainers" % "pulsar" % "1.19.7" % IntegrationTest - ), libraryDependencies ++= Seq( "software.amazon.awssdk" % "s3" % "2.25.9" ), diff --git a/scala-libraries-4/README.md b/scala-libraries-4/README.md index ccdc609fb..e091c4acf 100644 --- a/scala-libraries-4/README.md +++ b/scala-libraries-4/README.md @@ -1,6 +1,5 @@ ## Relevant Articles -- [Apache Pulsar Scala Client – pulsar4s](https://www.baeldung.com/scala/pulsar4s) - [Logging in Scala Applications Using Scala-Logging](https://www.baeldung.com/scala/scala-logging) - [AWScala – AWS SDK for Scala](https://www.baeldung.com/scala/awscala-aws-sdk-for-scala) - [Working with Redis in Scala](https://www.baeldung.com/scala/redis) diff --git a/scala-libraries/README.md b/scala-libraries/README.md index ddc93a4f8..14f90f849 100644 --- a/scala-libraries/README.md +++ b/scala-libraries/README.md @@ -8,4 +8,5 @@ - [Better Enumerations in Scala Using Enumeratum](https://www.baeldung.com/scala/enumeratum) - [Load Configuration Files In Scala Using PureConfig](https://www.baeldung.com/scala/pureconfig-load-config-files) - [Introduction to scala-async](https://www.baeldung.com/scala/scala-async) +- [Apache Pulsar Scala Client – pulsar4s](https://www.baeldung.com/scala/pulsar4s) - \ No newline at end of file diff --git a/scala-libraries-4/src/it/scala-2/com/baeldung/scala/pulsar4s/PulsarJsonSchemaManualTest.scala b/scala-libraries/src/it/scala/com/baeldung/scala/pulsar4s/PulsarJsonSchemaManualTest.scala similarity index 100% rename from scala-libraries-4/src/it/scala-2/com/baeldung/scala/pulsar4s/PulsarJsonSchemaManualTest.scala rename to scala-libraries/src/it/scala/com/baeldung/scala/pulsar4s/PulsarJsonSchemaManualTest.scala diff --git a/scala-libraries-4/src/it/scala-2/com/baeldung/scala/pulsar4s/PulsarStringSchemaManualTest.scala b/scala-libraries/src/it/scala/com/baeldung/scala/pulsar4s/PulsarStringSchemaManualTest.scala similarity index 100% rename from scala-libraries-4/src/it/scala-2/com/baeldung/scala/pulsar4s/PulsarStringSchemaManualTest.scala rename to scala-libraries/src/it/scala/com/baeldung/scala/pulsar4s/PulsarStringSchemaManualTest.scala diff --git a/scala-libraries-4/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarConsumer.scala b/scala-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarConsumer.scala similarity index 100% rename from scala-libraries-4/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarConsumer.scala rename to scala-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarConsumer.scala diff --git a/scala-libraries-4/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarProducer.scala b/scala-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarProducer.scala similarity index 100% rename from scala-libraries-4/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarProducer.scala rename to scala-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarProducer.scala diff --git a/scala-libraries-4/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarClient.scala b/scala-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarClient.scala similarity index 100% rename from scala-libraries-4/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarClient.scala rename to scala-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarClient.scala diff --git a/scala-libraries-4/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarConsumer.scala b/scala-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarConsumer.scala similarity index 100% rename from scala-libraries-4/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarConsumer.scala rename to scala-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarConsumer.scala diff --git a/scala-libraries-4/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarMessage.scala b/scala-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarMessage.scala similarity index 100% rename from scala-libraries-4/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarMessage.scala rename to scala-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarMessage.scala diff --git a/scala-libraries-4/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarProducer.scala b/scala-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarProducer.scala similarity index 100% rename from scala-libraries-4/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarProducer.scala rename to scala-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarProducer.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/async/ScalaAsyncTest.scala b/scala-libraries/src/test/scala-2/com/baeldung/scala/async/ScalaAsyncTest.scala new file mode 100644 index 000000000..ef797d564 --- /dev/null +++ b/scala-libraries/src/test/scala-2/com/baeldung/scala/async/ScalaAsyncTest.scala @@ -0,0 +1,88 @@ +package com.baeldung.scala.async + +import org.scalatest.concurrent.ScalaFutures +import org.scalatest.matchers.should.Matchers +import org.scalatest.time.{Millis, Seconds, Span} +import org.scalatest.wordspec.{AnyWordSpec, AsyncWordSpec} + +import scala.async.Async.{async, await} +import scala.concurrent.Future + +object ScalaAsyncTest { + import scala.concurrent.ExecutionContext.Implicits.global + + def slowComputation: Future[Int] = Future { + Thread.sleep(1000) + 10 + } + + def anotherSlowComputation(s: String): Future[Int] = Future { + Thread.sleep(1500) + s.length + } + + def sequentialCombination: Future[Int] = async { + await(slowComputation) + await(anotherSlowComputation("Baeldung")) + } + + def parallelCombination: Future[Int] = async { + val r1 = slowComputation + val r2 = anotherSlowComputation("Baeldung") + await(r1) + await(r2) + } + + /* Uncommenting this snippet will produce the following error: + await must not be used under a nested method. await(slowComputation) + + def invalid = async { + def localFunction = { + await(slowComputation) + } + + localFunction + }*/ + + /* Uncommenting this snippet will produce the following error: + await must not be used under a try/catch. await(slowComputation) + + def tryCatch = async { + try { + await(slowComputation) + } catch { + case e: Throwable => println(e.getMessage) + } + }*/ + + def withFor: Future[Int] = for { + r1 <- slowComputation + r2 <- anotherSlowComputation("Baeldung") + } yield r1 + r2 +} + +class ScalaAsyncTest extends AsyncWordSpec with Matchers with ScalaFutures { + + import ScalaAsyncTest._ + + implicit private val defaultPatience: PatienceConfig = + PatienceConfig(timeout = Span(3, Seconds), interval = Span(500, Millis)) + + "Futures combination" should { + "work sequentially" in { + sequentialCombination.map { r => + assert(r == 18) + } + } + + "work in parallel" in { + parallelCombination.map { r => + assert(r == 18) + } + } + + "give the same result as Futures composed with for comprehension" in { + withFor.map { r => + assert(r == 18) + } + } + } +} From a67d16da198abf4ea96e1934c4b3c7b36ad63ada Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 27 Mar 2024 18:26:10 +0100 Subject: [PATCH 0453/1318] moved tapir and log4j to correct modules --- build.sbt | 16 ++-------------- scala-libraries-2/README.md | 1 + .../src/main/resources/log4j2.xml | 0 .../com/baeldung/scala/log4j/LoggingApp.scala | 0 scala-libraries-3/README.md | 4 ---- scala-libraries/README.md | 1 + .../src/tapir/build.sbt | 0 .../scala/com/baeldung/tapir/client/Client.scala | 0 .../tapir/endpoint/AnimalEndpoints.scala | 0 .../src/tapir/project/build.properties | 0 .../baeldung/tapir/server/BaseAkkaServer.scala | 0 .../com/baeldung/tapir/server/Database.scala | 0 .../baeldung/tapir/server/KittensServer.scala | 0 13 files changed, 4 insertions(+), 18 deletions(-) rename {scala-libraries-3 => scala-libraries-2}/src/main/resources/log4j2.xml (100%) rename {scala-libraries-3/src/main/scala-2 => scala-libraries-2/src/main/scala}/com/baeldung/scala/log4j/LoggingApp.scala (100%) delete mode 100644 scala-libraries-3/README.md rename {scala-libraries-3 => scala-libraries}/src/tapir/build.sbt (100%) rename {scala-libraries-3 => scala-libraries}/src/tapir/client/src/main/scala/com/baeldung/tapir/client/Client.scala (100%) rename {scala-libraries-3 => scala-libraries}/src/tapir/endpoint/src/main/scala/com/baeldung/tapir/endpoint/AnimalEndpoints.scala (100%) rename {scala-libraries-3 => scala-libraries}/src/tapir/project/build.properties (100%) rename {scala-libraries-3 => scala-libraries}/src/tapir/server/src/main/scala/com/baeldung/tapir/server/BaseAkkaServer.scala (100%) rename {scala-libraries-3 => scala-libraries}/src/tapir/server/src/main/scala/com/baeldung/tapir/server/Database.scala (100%) rename {scala-libraries-3 => scala-libraries}/src/tapir/server/src/main/scala/com/baeldung/tapir/server/KittensServer.scala (100%) diff --git a/build.sbt b/build.sbt index 585fcb2bb..d2355a76a 100644 --- a/build.sbt +++ b/build.sbt @@ -379,6 +379,8 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) circeDep, circeParserDep, "com.softwaremill.retry" %% "retry" % "0.3.6", + log4jApiScalaDep, + "org.apache.logging.log4j" % "log4j-core" % "2.23.1" % Runtime ), libraryDependencies ++= Seq( "org.playframework" %% "play-slick" % "6.1.0", @@ -412,20 +414,6 @@ val log4jApiScalaDep = val munitDep = "org.scalameta" %% "munit" % "0.7.29" % Test -lazy val scala_libraries_3 = (project in file("scala-libraries-3")) - .settings( - name := "scala-libraries", - libraryDependencies ++= scalaTestDeps, - libraryDependencies ++= Seq( - munitDep - ), - libraryDependencies ++= Seq( - log4jApiScalaDep, - "org.apache.logging.log4j" % "log4j-core" % "2.23.1" % Runtime - ), - libraryDependencies += osLibDep - ) - lazy val scala_libraries_os = (project in file("scala-libraries-os")) .settings( name := "scala-libraries", diff --git a/scala-libraries-2/README.md b/scala-libraries-2/README.md index 2ebab3ff5..8766c3671 100644 --- a/scala-libraries-2/README.md +++ b/scala-libraries-2/README.md @@ -5,4 +5,5 @@ - [Simple REST Requests Using Requests-Scala](https://www.baeldung.com/scala/rest-with-requests-scala) - [Guide to elastic4s – Elasticsearch Scala Client](https://www.baeldung.com/scala/elastic4s-elasticsearch-client) - [A Guide to the Scala Retry Library](https://www.baeldung.com/scala/retry-library) +- [Introduction to Apache Log4j in Scala](https://www.baeldung.com/scala/apache-log4j) - \ No newline at end of file diff --git a/scala-libraries-3/src/main/resources/log4j2.xml b/scala-libraries-2/src/main/resources/log4j2.xml similarity index 100% rename from scala-libraries-3/src/main/resources/log4j2.xml rename to scala-libraries-2/src/main/resources/log4j2.xml diff --git a/scala-libraries-3/src/main/scala-2/com/baeldung/scala/log4j/LoggingApp.scala b/scala-libraries-2/src/main/scala/com/baeldung/scala/log4j/LoggingApp.scala similarity index 100% rename from scala-libraries-3/src/main/scala-2/com/baeldung/scala/log4j/LoggingApp.scala rename to scala-libraries-2/src/main/scala/com/baeldung/scala/log4j/LoggingApp.scala diff --git a/scala-libraries-3/README.md b/scala-libraries-3/README.md deleted file mode 100644 index 7149f52ae..000000000 --- a/scala-libraries-3/README.md +++ /dev/null @@ -1,4 +0,0 @@ -### Relevant Articles: - -- [Introduction to Apache Log4j in Scala](https://www.baeldung.com/scala/apache-log4j) -- [Introduction to Tapir](https://www.baeldung.com/scala/tapir) \ No newline at end of file diff --git a/scala-libraries/README.md b/scala-libraries/README.md index 14f90f849..e5307782b 100644 --- a/scala-libraries/README.md +++ b/scala-libraries/README.md @@ -9,4 +9,5 @@ - [Load Configuration Files In Scala Using PureConfig](https://www.baeldung.com/scala/pureconfig-load-config-files) - [Introduction to scala-async](https://www.baeldung.com/scala/scala-async) - [Apache Pulsar Scala Client – pulsar4s](https://www.baeldung.com/scala/pulsar4s) +- [Introduction to Tapir](https://www.baeldung.com/scala/tapir) - \ No newline at end of file diff --git a/scala-libraries-3/src/tapir/build.sbt b/scala-libraries/src/tapir/build.sbt similarity index 100% rename from scala-libraries-3/src/tapir/build.sbt rename to scala-libraries/src/tapir/build.sbt diff --git a/scala-libraries-3/src/tapir/client/src/main/scala/com/baeldung/tapir/client/Client.scala b/scala-libraries/src/tapir/client/src/main/scala/com/baeldung/tapir/client/Client.scala similarity index 100% rename from scala-libraries-3/src/tapir/client/src/main/scala/com/baeldung/tapir/client/Client.scala rename to scala-libraries/src/tapir/client/src/main/scala/com/baeldung/tapir/client/Client.scala diff --git a/scala-libraries-3/src/tapir/endpoint/src/main/scala/com/baeldung/tapir/endpoint/AnimalEndpoints.scala b/scala-libraries/src/tapir/endpoint/src/main/scala/com/baeldung/tapir/endpoint/AnimalEndpoints.scala similarity index 100% rename from scala-libraries-3/src/tapir/endpoint/src/main/scala/com/baeldung/tapir/endpoint/AnimalEndpoints.scala rename to scala-libraries/src/tapir/endpoint/src/main/scala/com/baeldung/tapir/endpoint/AnimalEndpoints.scala diff --git a/scala-libraries-3/src/tapir/project/build.properties b/scala-libraries/src/tapir/project/build.properties similarity index 100% rename from scala-libraries-3/src/tapir/project/build.properties rename to scala-libraries/src/tapir/project/build.properties diff --git a/scala-libraries-3/src/tapir/server/src/main/scala/com/baeldung/tapir/server/BaseAkkaServer.scala b/scala-libraries/src/tapir/server/src/main/scala/com/baeldung/tapir/server/BaseAkkaServer.scala similarity index 100% rename from scala-libraries-3/src/tapir/server/src/main/scala/com/baeldung/tapir/server/BaseAkkaServer.scala rename to scala-libraries/src/tapir/server/src/main/scala/com/baeldung/tapir/server/BaseAkkaServer.scala diff --git a/scala-libraries-3/src/tapir/server/src/main/scala/com/baeldung/tapir/server/Database.scala b/scala-libraries/src/tapir/server/src/main/scala/com/baeldung/tapir/server/Database.scala similarity index 100% rename from scala-libraries-3/src/tapir/server/src/main/scala/com/baeldung/tapir/server/Database.scala rename to scala-libraries/src/tapir/server/src/main/scala/com/baeldung/tapir/server/Database.scala diff --git a/scala-libraries-3/src/tapir/server/src/main/scala/com/baeldung/tapir/server/KittensServer.scala b/scala-libraries/src/tapir/server/src/main/scala/com/baeldung/tapir/server/KittensServer.scala similarity index 100% rename from scala-libraries-3/src/tapir/server/src/main/scala/com/baeldung/tapir/server/KittensServer.scala rename to scala-libraries/src/tapir/server/src/main/scala/com/baeldung/tapir/server/KittensServer.scala From b0b19b31224efe2894abdb551d0c29ca2770ac28 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 27 Mar 2024 19:43:47 +0100 Subject: [PATCH 0454/1318] moved aws code to scala3 module --- build.sbt | 10 +++++----- scala-libraries-2/README.md | 3 ++- .../main/scala}/com/baeldung/scala/awscala/Main.scala | 3 ++- .../baeldung/scala/logging/ScalaLoggingSample.scala | 0 scala-libraries-4/README.md | 2 -- 5 files changed, 9 insertions(+), 9 deletions(-) rename {scala-libraries-4/src/main/scala-2 => scala-libraries-2/src/main/scala}/com/baeldung/scala/awscala/Main.scala (93%) rename {scala-libraries-4/src/main/scala-2 => scala-libraries-2/src/main/scala}/com/baeldung/scala/logging/ScalaLoggingSample.scala (100%) diff --git a/build.sbt b/build.sbt index d2355a76a..125cf08fb 100644 --- a/build.sbt +++ b/build.sbt @@ -380,7 +380,10 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) circeParserDep, "com.softwaremill.retry" %% "retry" % "0.3.6", log4jApiScalaDep, - "org.apache.logging.log4j" % "log4j-core" % "2.23.1" % Runtime + "org.apache.logging.log4j" % "log4j-core" % "2.23.1" % Runtime, + "com.typesafe.scala-logging" %% "scala-logging" % "3.9.5", + "software.amazon.awssdk" % "s3" % "2.25.9", + "com.github.seratch" %% "awscala" % "0.9.2" ), libraryDependencies ++= Seq( "org.playframework" %% "play-slick" % "6.1.0", @@ -436,14 +439,11 @@ lazy val scala_libraries_4 = (project in file("scala-libraries-4")) .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( scalaReflection % Provided, - logback, - "com.typesafe.scala-logging" %% "scala-logging" % "3.9.5" + ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "s3" % "2.25.9" ), libraryDependencies ++= Seq( - "com.github.seratch" %% "awscala" % "0.9.2" ), Defaults.itSettings, IntegrationTest / fork := true diff --git a/scala-libraries-2/README.md b/scala-libraries-2/README.md index 8766c3671..40012dfc6 100644 --- a/scala-libraries-2/README.md +++ b/scala-libraries-2/README.md @@ -6,4 +6,5 @@ - [Guide to elastic4s – Elasticsearch Scala Client](https://www.baeldung.com/scala/elastic4s-elasticsearch-client) - [A Guide to the Scala Retry Library](https://www.baeldung.com/scala/retry-library) - [Introduction to Apache Log4j in Scala](https://www.baeldung.com/scala/apache-log4j) -- \ No newline at end of file +- [Logging in Scala Applications Using Scala-Logging](https://www.baeldung.com/scala/scala-logging) +- [AWScala – AWS SDK for Scala](https://www.baeldung.com/scala/awscala-aws-sdk-for-scala) \ No newline at end of file diff --git a/scala-libraries-4/src/main/scala-2/com/baeldung/scala/awscala/Main.scala b/scala-libraries-2/src/main/scala/com/baeldung/scala/awscala/Main.scala similarity index 93% rename from scala-libraries-4/src/main/scala-2/com/baeldung/scala/awscala/Main.scala rename to scala-libraries-2/src/main/scala/com/baeldung/scala/awscala/Main.scala index da4704041..56854124b 100644 --- a/scala-libraries-4/src/main/scala-2/com/baeldung/scala/awscala/Main.scala +++ b/scala-libraries-2/src/main/scala/com/baeldung/scala/awscala/Main.scala @@ -23,7 +23,8 @@ object Main extends App { .build() Try { - s3.createBucket { req: CreateBucketRequest.Builder => req.bucket(name) } + + s3.createBucket(CreateBucketRequest.builder().bucket(name).build()) s3.headBucket( HeadBucketRequest.builder().bucket(name).build() diff --git a/scala-libraries-4/src/main/scala-2/com/baeldung/scala/logging/ScalaLoggingSample.scala b/scala-libraries-2/src/main/scala/com/baeldung/scala/logging/ScalaLoggingSample.scala similarity index 100% rename from scala-libraries-4/src/main/scala-2/com/baeldung/scala/logging/ScalaLoggingSample.scala rename to scala-libraries-2/src/main/scala/com/baeldung/scala/logging/ScalaLoggingSample.scala diff --git a/scala-libraries-4/README.md b/scala-libraries-4/README.md index e091c4acf..f9f30dc5c 100644 --- a/scala-libraries-4/README.md +++ b/scala-libraries-4/README.md @@ -1,5 +1,3 @@ ## Relevant Articles -- [Logging in Scala Applications Using Scala-Logging](https://www.baeldung.com/scala/scala-logging) -- [AWScala – AWS SDK for Scala](https://www.baeldung.com/scala/awscala-aws-sdk-for-scala) - [Working with Redis in Scala](https://www.baeldung.com/scala/redis) From 0e5063e753f69211df1186a228a7ec5fcb6f4b61 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 27 Mar 2024 21:04:03 +0100 Subject: [PATCH 0455/1318] Created separate modoule for redis --- build.sbt | 22 +++++++------------ .../src/main/resources/logback.xml | 10 --------- scala-libraries-4/src/redis-intro/build.sbt | 14 ------------ .../redis-intro/project/Dependencies.scala | 9 -------- .../src/redis-intro/project/build.properties | 1 - .../README.md | 0 .../src/main/resources}/docker-compose.yml | 0 .../baeldung/redis/cache/CacheThrough.scala | 0 .../scala/com/baeldung/redis/db/BooksDB.scala | 0 .../baeldung/redis/db/VirtualDatabase.scala | 0 .../baeldung/redis/geospatial/GeoPoints.scala | 0 .../redis/geospatial/Geospatial.scala | 0 .../redis/leaderboard/LeaderBoard.scala | 0 .../redis/leaderboard/model/EmployDB.scala | 0 .../redis/leaderboard/model/EmployeeKey.scala | 0 .../com/baeldung/redis/pubsub/Publisher.scala | 0 .../baeldung/redis/pubsub/Subscriber.scala | 0 .../baeldung/redis/ratelimit/RateLimit.scala | 0 .../baeldung/redis/util/RedisClients.scala | 0 .../com/baeldung/redis/util/WithRedis.scala | 0 .../com/baeldung/redis/HelloRedisSpec.scala | 0 .../redis/cache/CacheThroughSpec.scala | 0 .../redis/geospatial/GeospatialSpec.scala | 0 .../redis/leaderboard/LeaderboardSpec.scala | 0 .../redis/ratelimit/RateLimitSpec.scala | 0 .../com/baeldung/redis/util/RedisSpec.scala | 0 26 files changed, 8 insertions(+), 48 deletions(-) delete mode 100644 scala-libraries-4/src/main/resources/logback.xml delete mode 100644 scala-libraries-4/src/redis-intro/build.sbt delete mode 100644 scala-libraries-4/src/redis-intro/project/Dependencies.scala delete mode 100644 scala-libraries-4/src/redis-intro/project/build.properties rename {scala-libraries-4 => scala-libraries-standalone}/README.md (100%) rename {scala-libraries-4/src/redis-intro => scala-libraries-standalone/redis-intro/src/main/resources}/docker-compose.yml (100%) rename {scala-libraries-4/src => scala-libraries-standalone}/redis-intro/src/main/scala/com/baeldung/redis/cache/CacheThrough.scala (100%) rename {scala-libraries-4/src => scala-libraries-standalone}/redis-intro/src/main/scala/com/baeldung/redis/db/BooksDB.scala (100%) rename {scala-libraries-4/src => scala-libraries-standalone}/redis-intro/src/main/scala/com/baeldung/redis/db/VirtualDatabase.scala (100%) rename {scala-libraries-4/src => scala-libraries-standalone}/redis-intro/src/main/scala/com/baeldung/redis/geospatial/GeoPoints.scala (100%) rename {scala-libraries-4/src => scala-libraries-standalone}/redis-intro/src/main/scala/com/baeldung/redis/geospatial/Geospatial.scala (100%) rename {scala-libraries-4/src => scala-libraries-standalone}/redis-intro/src/main/scala/com/baeldung/redis/leaderboard/LeaderBoard.scala (100%) rename {scala-libraries-4/src => scala-libraries-standalone}/redis-intro/src/main/scala/com/baeldung/redis/leaderboard/model/EmployDB.scala (100%) rename {scala-libraries-4/src => scala-libraries-standalone}/redis-intro/src/main/scala/com/baeldung/redis/leaderboard/model/EmployeeKey.scala (100%) rename {scala-libraries-4/src => scala-libraries-standalone}/redis-intro/src/main/scala/com/baeldung/redis/pubsub/Publisher.scala (100%) rename {scala-libraries-4/src => scala-libraries-standalone}/redis-intro/src/main/scala/com/baeldung/redis/pubsub/Subscriber.scala (100%) rename {scala-libraries-4/src => scala-libraries-standalone}/redis-intro/src/main/scala/com/baeldung/redis/ratelimit/RateLimit.scala (100%) rename {scala-libraries-4/src => scala-libraries-standalone}/redis-intro/src/main/scala/com/baeldung/redis/util/RedisClients.scala (100%) rename {scala-libraries-4/src => scala-libraries-standalone}/redis-intro/src/main/scala/com/baeldung/redis/util/WithRedis.scala (100%) rename {scala-libraries-4/src => scala-libraries-standalone}/redis-intro/src/test/scala/com/baeldung/redis/HelloRedisSpec.scala (100%) rename {scala-libraries-4/src => scala-libraries-standalone}/redis-intro/src/test/scala/com/baeldung/redis/cache/CacheThroughSpec.scala (100%) rename {scala-libraries-4/src => scala-libraries-standalone}/redis-intro/src/test/scala/com/baeldung/redis/geospatial/GeospatialSpec.scala (100%) rename {scala-libraries-4/src => scala-libraries-standalone}/redis-intro/src/test/scala/com/baeldung/redis/leaderboard/LeaderboardSpec.scala (100%) rename {scala-libraries-4/src => scala-libraries-standalone}/redis-intro/src/test/scala/com/baeldung/redis/ratelimit/RateLimitSpec.scala (100%) rename {scala-libraries-4/src => scala-libraries-standalone}/redis-intro/src/test/scala/com/baeldung/redis/util/RedisSpec.scala (100%) diff --git a/build.sbt b/build.sbt index 125cf08fb..f2d78f6b5 100644 --- a/build.sbt +++ b/build.sbt @@ -429,24 +429,17 @@ lazy val scala_libraries_os = (project in file("scala-libraries-os")) libraryDependencies += osLibDep ) -lazy val scala_libraries_4 = (project in file("scala-libraries-4")) - .configs(IntegrationTest) +lazy val redis_intro = (project in file("scala-libraries-standalone/redis-intro")) .settings( - name := "scala-libraries-4", - scalaVersion := scalaV, - testFrameworks += new TestFramework("utest.runner.Framework"), + name := "redis-intro", + scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( - scalaReflection % Provided, - - ), - libraryDependencies ++= Seq( - ), - libraryDependencies ++= Seq( - ), - Defaults.itSettings, - IntegrationTest / fork := true + "redis.clients" % "jedis" % "4.3.1", + "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.14.1", + "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % Test + ) ) val spireVersion = "0.18.0" @@ -504,6 +497,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) .settings( name := "scala-libraries-testing", scalaVersion := scala3Version, + testFrameworks += new TestFramework("utest.runner.Framework"), libraryDependencies ++= scalaTestDeps.map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( "org.scalacheck" %% "scalacheck" % "1.17.0" % Test, diff --git a/scala-libraries-4/src/main/resources/logback.xml b/scala-libraries-4/src/main/resources/logback.xml deleted file mode 100644 index 1a457dba4..000000000 --- a/scala-libraries-4/src/main/resources/logback.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%kvp- %msg%n - - - - - - \ No newline at end of file diff --git a/scala-libraries-4/src/redis-intro/build.sbt b/scala-libraries-4/src/redis-intro/build.sbt deleted file mode 100644 index 2ed95e9c8..000000000 --- a/scala-libraries-4/src/redis-intro/build.sbt +++ /dev/null @@ -1,14 +0,0 @@ -import Dependencies._ - -ThisBuild / scalaVersion := "2.13.13" -ThisBuild / version := "1.0.0" -ThisBuild / organization := "com.baeldung" - -lazy val root = (project in file(".")) - .settings( - name := "Redis Intro", - libraryDependencies += redisClients, - libraryDependencies += jacksonScala, - libraryDependencies += scalaTest % Test, - libraryDependencies += mockito % Test - ) diff --git a/scala-libraries-4/src/redis-intro/project/Dependencies.scala b/scala-libraries-4/src/redis-intro/project/Dependencies.scala deleted file mode 100644 index 07ebd10b4..000000000 --- a/scala-libraries-4/src/redis-intro/project/Dependencies.scala +++ /dev/null @@ -1,9 +0,0 @@ -import sbt._ - -object Dependencies { - lazy val scalaTest = "org.scalatest" %% "scalatest" % "3.2.11" - lazy val redisClients = "redis.clients" % "jedis" % "4.3.1" - lazy val jacksonScala = - "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.14.1" - lazy val mockito = "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" -} diff --git a/scala-libraries-4/src/redis-intro/project/build.properties b/scala-libraries-4/src/redis-intro/project/build.properties deleted file mode 100644 index c8fcab543..000000000 --- a/scala-libraries-4/src/redis-intro/project/build.properties +++ /dev/null @@ -1 +0,0 @@ -sbt.version=1.6.2 diff --git a/scala-libraries-4/README.md b/scala-libraries-standalone/README.md similarity index 100% rename from scala-libraries-4/README.md rename to scala-libraries-standalone/README.md diff --git a/scala-libraries-4/src/redis-intro/docker-compose.yml b/scala-libraries-standalone/redis-intro/src/main/resources/docker-compose.yml similarity index 100% rename from scala-libraries-4/src/redis-intro/docker-compose.yml rename to scala-libraries-standalone/redis-intro/src/main/resources/docker-compose.yml diff --git a/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/cache/CacheThrough.scala b/scala-libraries-standalone/redis-intro/src/main/scala/com/baeldung/redis/cache/CacheThrough.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/cache/CacheThrough.scala rename to scala-libraries-standalone/redis-intro/src/main/scala/com/baeldung/redis/cache/CacheThrough.scala diff --git a/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/db/BooksDB.scala b/scala-libraries-standalone/redis-intro/src/main/scala/com/baeldung/redis/db/BooksDB.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/db/BooksDB.scala rename to scala-libraries-standalone/redis-intro/src/main/scala/com/baeldung/redis/db/BooksDB.scala diff --git a/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/db/VirtualDatabase.scala b/scala-libraries-standalone/redis-intro/src/main/scala/com/baeldung/redis/db/VirtualDatabase.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/db/VirtualDatabase.scala rename to scala-libraries-standalone/redis-intro/src/main/scala/com/baeldung/redis/db/VirtualDatabase.scala diff --git a/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/geospatial/GeoPoints.scala b/scala-libraries-standalone/redis-intro/src/main/scala/com/baeldung/redis/geospatial/GeoPoints.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/geospatial/GeoPoints.scala rename to scala-libraries-standalone/redis-intro/src/main/scala/com/baeldung/redis/geospatial/GeoPoints.scala diff --git a/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/geospatial/Geospatial.scala b/scala-libraries-standalone/redis-intro/src/main/scala/com/baeldung/redis/geospatial/Geospatial.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/geospatial/Geospatial.scala rename to scala-libraries-standalone/redis-intro/src/main/scala/com/baeldung/redis/geospatial/Geospatial.scala diff --git a/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/leaderboard/LeaderBoard.scala b/scala-libraries-standalone/redis-intro/src/main/scala/com/baeldung/redis/leaderboard/LeaderBoard.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/leaderboard/LeaderBoard.scala rename to scala-libraries-standalone/redis-intro/src/main/scala/com/baeldung/redis/leaderboard/LeaderBoard.scala diff --git a/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/leaderboard/model/EmployDB.scala b/scala-libraries-standalone/redis-intro/src/main/scala/com/baeldung/redis/leaderboard/model/EmployDB.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/leaderboard/model/EmployDB.scala rename to scala-libraries-standalone/redis-intro/src/main/scala/com/baeldung/redis/leaderboard/model/EmployDB.scala diff --git a/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/leaderboard/model/EmployeeKey.scala b/scala-libraries-standalone/redis-intro/src/main/scala/com/baeldung/redis/leaderboard/model/EmployeeKey.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/leaderboard/model/EmployeeKey.scala rename to scala-libraries-standalone/redis-intro/src/main/scala/com/baeldung/redis/leaderboard/model/EmployeeKey.scala diff --git a/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/pubsub/Publisher.scala b/scala-libraries-standalone/redis-intro/src/main/scala/com/baeldung/redis/pubsub/Publisher.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/pubsub/Publisher.scala rename to scala-libraries-standalone/redis-intro/src/main/scala/com/baeldung/redis/pubsub/Publisher.scala diff --git a/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/pubsub/Subscriber.scala b/scala-libraries-standalone/redis-intro/src/main/scala/com/baeldung/redis/pubsub/Subscriber.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/pubsub/Subscriber.scala rename to scala-libraries-standalone/redis-intro/src/main/scala/com/baeldung/redis/pubsub/Subscriber.scala diff --git a/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/ratelimit/RateLimit.scala b/scala-libraries-standalone/redis-intro/src/main/scala/com/baeldung/redis/ratelimit/RateLimit.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/ratelimit/RateLimit.scala rename to scala-libraries-standalone/redis-intro/src/main/scala/com/baeldung/redis/ratelimit/RateLimit.scala diff --git a/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/util/RedisClients.scala b/scala-libraries-standalone/redis-intro/src/main/scala/com/baeldung/redis/util/RedisClients.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/util/RedisClients.scala rename to scala-libraries-standalone/redis-intro/src/main/scala/com/baeldung/redis/util/RedisClients.scala diff --git a/scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/util/WithRedis.scala b/scala-libraries-standalone/redis-intro/src/main/scala/com/baeldung/redis/util/WithRedis.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/main/scala/com/baeldung/redis/util/WithRedis.scala rename to scala-libraries-standalone/redis-intro/src/main/scala/com/baeldung/redis/util/WithRedis.scala diff --git a/scala-libraries-4/src/redis-intro/src/test/scala/com/baeldung/redis/HelloRedisSpec.scala b/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/HelloRedisSpec.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/test/scala/com/baeldung/redis/HelloRedisSpec.scala rename to scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/HelloRedisSpec.scala diff --git a/scala-libraries-4/src/redis-intro/src/test/scala/com/baeldung/redis/cache/CacheThroughSpec.scala b/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/cache/CacheThroughSpec.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/test/scala/com/baeldung/redis/cache/CacheThroughSpec.scala rename to scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/cache/CacheThroughSpec.scala diff --git a/scala-libraries-4/src/redis-intro/src/test/scala/com/baeldung/redis/geospatial/GeospatialSpec.scala b/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/geospatial/GeospatialSpec.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/test/scala/com/baeldung/redis/geospatial/GeospatialSpec.scala rename to scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/geospatial/GeospatialSpec.scala diff --git a/scala-libraries-4/src/redis-intro/src/test/scala/com/baeldung/redis/leaderboard/LeaderboardSpec.scala b/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/leaderboard/LeaderboardSpec.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/test/scala/com/baeldung/redis/leaderboard/LeaderboardSpec.scala rename to scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/leaderboard/LeaderboardSpec.scala diff --git a/scala-libraries-4/src/redis-intro/src/test/scala/com/baeldung/redis/ratelimit/RateLimitSpec.scala b/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/ratelimit/RateLimitSpec.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/test/scala/com/baeldung/redis/ratelimit/RateLimitSpec.scala rename to scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/ratelimit/RateLimitSpec.scala diff --git a/scala-libraries-4/src/redis-intro/src/test/scala/com/baeldung/redis/util/RedisSpec.scala b/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/util/RedisSpec.scala similarity index 100% rename from scala-libraries-4/src/redis-intro/src/test/scala/com/baeldung/redis/util/RedisSpec.scala rename to scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/util/RedisSpec.scala From 5e576f8d9d2a4201d300f882005924f6364d07a6 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 27 Mar 2024 21:15:43 +0100 Subject: [PATCH 0456/1318] moved tapir to standalone --- build.sbt | 6 ++++++ scala-libraries-standalone/README.md | 1 + scala-libraries/README.md | 4 +--- scala-libraries/src/tapir/build.sbt | 5 ++--- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/build.sbt b/build.sbt index f2d78f6b5..19ec0b203 100644 --- a/build.sbt +++ b/build.sbt @@ -442,6 +442,12 @@ lazy val redis_intro = (project in file("scala-libraries-standalone/redis-intro" ) ) +lazy val tapir = (project in file("scala-libraries-standalone/tapir")) + .settings( + name := "tapir", + scalaVersion := scala3Version + ) + val spireVersion = "0.18.0" val kafkaVersion = "7.6.0-ce" val pureconfigVersion = "0.17.6" diff --git a/scala-libraries-standalone/README.md b/scala-libraries-standalone/README.md index f9f30dc5c..5d52bdded 100644 --- a/scala-libraries-standalone/README.md +++ b/scala-libraries-standalone/README.md @@ -1,3 +1,4 @@ ## Relevant Articles - [Working with Redis in Scala](https://www.baeldung.com/scala/redis) +- [Introduction to Tapir](https://www.baeldung.com/scala/tapir) diff --git a/scala-libraries/README.md b/scala-libraries/README.md index e5307782b..63e7de75f 100644 --- a/scala-libraries/README.md +++ b/scala-libraries/README.md @@ -8,6 +8,4 @@ - [Better Enumerations in Scala Using Enumeratum](https://www.baeldung.com/scala/enumeratum) - [Load Configuration Files In Scala Using PureConfig](https://www.baeldung.com/scala/pureconfig-load-config-files) - [Introduction to scala-async](https://www.baeldung.com/scala/scala-async) -- [Apache Pulsar Scala Client – pulsar4s](https://www.baeldung.com/scala/pulsar4s) -- [Introduction to Tapir](https://www.baeldung.com/scala/tapir) -- \ No newline at end of file +- [Apache Pulsar Scala Client – pulsar4s](https://www.baeldung.com/scala/pulsar4s) \ No newline at end of file diff --git a/scala-libraries/src/tapir/build.sbt b/scala-libraries/src/tapir/build.sbt index d074e5e81..d72883a06 100644 --- a/scala-libraries/src/tapir/build.sbt +++ b/scala-libraries/src/tapir/build.sbt @@ -1,8 +1,7 @@ -val scalaV = "2.12.16" -val tapirV = "1.0.3" -ThisBuild / scalaVersion := scalaV +val tapirV = "1.10.0" ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" +scalaVersion := ScalaVersions.scala3Version lazy val endpoint = (project in file("endpoint")) .settings( From e56e34254b7d2436d52f820339a03369d9c065b0 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 27 Mar 2024 21:19:29 +0100 Subject: [PATCH 0457/1318] Set default scala version to 3 in build.sbt --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 19ec0b203..4cfb82605 100644 --- a/build.sbt +++ b/build.sbt @@ -1,6 +1,6 @@ val scalaV = ScalaVersions.scala2Version val scala3Version = ScalaVersions.scala3Version -ThisBuild / scalaVersion := scalaV +ThisBuild / scalaVersion := scala3Version ThisBuild / version := "1.0-SNAPSHOT" ThisBuild / organization := "com.baeldung" ThisBuild / organizationName := "core-scala" From 0de8f1e62f3e03e69ed8c62be07534912af252a6 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 27 Mar 2024 21:37:22 +0100 Subject: [PATCH 0458/1318] Moved kafka code to scala 2 module --- build.sbt | 31 +++++++------------ scala-libraries-5/README.md | 2 -- .../tapir/build.sbt | 5 +-- .../com/baeldung/tapir/client/Client.scala | 0 .../tapir/endpoint/AnimalEndpoints.scala | 0 .../tapir/project/build.properties | 0 .../tapir/server/BaseAkkaServer.scala | 0 .../com/baeldung/tapir/server/Database.scala | 0 .../baeldung/tapir/server/KittensServer.scala | 0 scala-libraries/README.md | 4 ++- .../src/main/resources/docker-compose.yml | 0 .../src/main/resources/kafka-intro-avro.conf | 0 .../src/main/resources/kafka-intro.conf | 0 .../src/main/resources/log4j2.xml | 0 .../scala/kafka/intro/common/Article.scala | 0 .../kafka/intro/common/ClientConfig.scala | 0 .../kafka/intro/common/SerdeConfig.scala | 0 .../intro/consumer/ArticleAvroConsumer.scala | 0 .../consumer/ArticleJsonStringConsumer.scala | 0 .../consumer/common/AvroDeSerializer.scala | 0 .../consumer/common/ConsumerConfig.scala | 0 .../intro/consumer/common/ConsumerUtils.scala | 0 .../common/JsonStringDeSerializer.scala | 0 .../intro/producer/ArticleAvroProducer.scala | 0 .../producer/ArticleJsonStringProducer.scala | 0 .../kafka/intro/producer/Generator.scala | 0 .../producer/common/AvroSerializer.scala | 0 .../common/JsonStringSerializer.scala | 0 .../producer/common/ProducerConfig.scala | 0 .../intro/producer/common/ProducerUtils.scala | 0 30 files changed, 17 insertions(+), 25 deletions(-) delete mode 100644 scala-libraries-5/README.md rename {scala-libraries/src => scala-libraries-standalone}/tapir/build.sbt (90%) rename {scala-libraries/src => scala-libraries-standalone}/tapir/client/src/main/scala/com/baeldung/tapir/client/Client.scala (100%) rename {scala-libraries/src => scala-libraries-standalone}/tapir/endpoint/src/main/scala/com/baeldung/tapir/endpoint/AnimalEndpoints.scala (100%) rename {scala-libraries/src => scala-libraries-standalone}/tapir/project/build.properties (100%) rename {scala-libraries/src => scala-libraries-standalone}/tapir/server/src/main/scala/com/baeldung/tapir/server/BaseAkkaServer.scala (100%) rename {scala-libraries/src => scala-libraries-standalone}/tapir/server/src/main/scala/com/baeldung/tapir/server/Database.scala (100%) rename {scala-libraries/src => scala-libraries-standalone}/tapir/server/src/main/scala/com/baeldung/tapir/server/KittensServer.scala (100%) rename {scala-libraries-5 => scala-libraries}/src/main/resources/docker-compose.yml (100%) rename {scala-libraries-5 => scala-libraries}/src/main/resources/kafka-intro-avro.conf (100%) rename {scala-libraries-5 => scala-libraries}/src/main/resources/kafka-intro.conf (100%) rename {scala-libraries-5 => scala-libraries}/src/main/resources/log4j2.xml (100%) rename {scala-libraries-5 => scala-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/common/Article.scala (100%) rename {scala-libraries-5 => scala-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/common/ClientConfig.scala (100%) rename {scala-libraries-5 => scala-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/common/SerdeConfig.scala (100%) rename {scala-libraries-5 => scala-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleAvroConsumer.scala (100%) rename {scala-libraries-5 => scala-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleJsonStringConsumer.scala (100%) rename {scala-libraries-5 => scala-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/AvroDeSerializer.scala (100%) rename {scala-libraries-5 => scala-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerConfig.scala (100%) rename {scala-libraries-5 => scala-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerUtils.scala (100%) rename {scala-libraries-5 => scala-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/JsonStringDeSerializer.scala (100%) rename {scala-libraries-5 => scala-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleAvroProducer.scala (100%) rename {scala-libraries-5 => scala-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleJsonStringProducer.scala (100%) rename {scala-libraries-5 => scala-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/Generator.scala (100%) rename {scala-libraries-5 => scala-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/AvroSerializer.scala (100%) rename {scala-libraries-5 => scala-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/JsonStringSerializer.scala (100%) rename {scala-libraries-5 => scala-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerConfig.scala (100%) rename {scala-libraries-5 => scala-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerUtils.scala (100%) diff --git a/build.sbt b/build.sbt index 4cfb82605..33bf93fe9 100644 --- a/build.sbt +++ b/build.sbt @@ -323,7 +323,9 @@ lazy val scala_libraries = (project in file("scala-libraries")) .configs(IntegrationTest) .settings( name := "scala-libraries", + scalaVersion := scalaV, libraryDependencies ++= scalaTestDeps.map(_.withConfigurations(Some("it,test"))), + resolvers += "Kafka avro serializer" at "https://packages.confluent.io/maven", libraryDependencies ++= Seq( "com.github.julien-truffaut" %% "monocle-core" % monocleVersion, "com.github.julien-truffaut" %% "monocle-macro" % monocleVersion, @@ -345,7 +347,15 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.scala-lang.modules" %% "scala-async" % "1.0.1", "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.9.1", "com.clever-cloud.pulsar4s" %% "pulsar4s-jackson" % "2.9.1", - "org.testcontainers" % "pulsar" % "1.19.7" % IntegrationTest + "org.testcontainers" % "pulsar" % "1.19.7" % IntegrationTest, + "org.apache.kafka" % "kafka-clients" % kafkaVersion, + "com.fasterxml.jackson.core" % "jackson-databind" % jackSonVersion, + "com.fasterxml.jackson.datatype" % "jackson-datatype-jsr310" % jackSonVersion, + "com.fasterxml.jackson.module" %% "jackson-module-scala" % jackSonVersion, + "com.sksamuel.avro4s" %% "avro4s-core" % avro4sVersion, + "io.confluent" % "kafka-avro-serializer" % kafkaAvroSerializer, + log4jApiScalaDep, + "org.apache.logging.log4j" % "log4j-core" % log4jVersion % Runtime ), libraryDependencies ++= Seq( "com.typesafe.slick" %% "slick" % slickVersion, @@ -459,25 +469,6 @@ val kafkaAvroSerializer = "7.6.0" val pureConfigDep = "com.github.pureconfig" %% "pureconfig" % pureconfigVersion -lazy val scala_libraries_5 = (project in file("scala-libraries-5")) - .settings( - name := "scala-libraries-5", - resolvers += "Kafka avro serializer" at "https://packages.confluent.io/maven", - scalaVersion := scalaV, - libraryDependencies ++= scalaTestDeps, - libraryDependencies ++= Seq( - "org.apache.kafka" % "kafka-clients" % kafkaVersion, - pureConfigDep, - "com.fasterxml.jackson.core" % "jackson-databind" % jackSonVersion, - "com.fasterxml.jackson.datatype" % "jackson-datatype-jsr310" % jackSonVersion, - "com.fasterxml.jackson.module" %% "jackson-module-scala" % jackSonVersion, - "com.sksamuel.avro4s" %% "avro4s-core" % avro4sVersion, - "io.confluent" % "kafka-avro-serializer" % kafkaAvroSerializer, - log4jApiScalaDep, - "org.apache.logging.log4j" % "log4j-core" % log4jVersion % Runtime - ) - ) - lazy val scala_libraries_fp = (project in file("scala-libraries-fp")) .settings( name := "scala-libraries-fp", diff --git a/scala-libraries-5/README.md b/scala-libraries-5/README.md deleted file mode 100644 index 47d4e3464..000000000 --- a/scala-libraries-5/README.md +++ /dev/null @@ -1,2 +0,0 @@ -## Relevant Articles -- [Introduction to Kafka With Scala](https://www.baeldung.com/scala/kafka) diff --git a/scala-libraries/src/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt similarity index 90% rename from scala-libraries/src/tapir/build.sbt rename to scala-libraries-standalone/tapir/build.sbt index d72883a06..d074e5e81 100644 --- a/scala-libraries/src/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,7 +1,8 @@ -val tapirV = "1.10.0" +val scalaV = "2.12.16" +val tapirV = "1.0.3" +ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" -scalaVersion := ScalaVersions.scala3Version lazy val endpoint = (project in file("endpoint")) .settings( diff --git a/scala-libraries/src/tapir/client/src/main/scala/com/baeldung/tapir/client/Client.scala b/scala-libraries-standalone/tapir/client/src/main/scala/com/baeldung/tapir/client/Client.scala similarity index 100% rename from scala-libraries/src/tapir/client/src/main/scala/com/baeldung/tapir/client/Client.scala rename to scala-libraries-standalone/tapir/client/src/main/scala/com/baeldung/tapir/client/Client.scala diff --git a/scala-libraries/src/tapir/endpoint/src/main/scala/com/baeldung/tapir/endpoint/AnimalEndpoints.scala b/scala-libraries-standalone/tapir/endpoint/src/main/scala/com/baeldung/tapir/endpoint/AnimalEndpoints.scala similarity index 100% rename from scala-libraries/src/tapir/endpoint/src/main/scala/com/baeldung/tapir/endpoint/AnimalEndpoints.scala rename to scala-libraries-standalone/tapir/endpoint/src/main/scala/com/baeldung/tapir/endpoint/AnimalEndpoints.scala diff --git a/scala-libraries/src/tapir/project/build.properties b/scala-libraries-standalone/tapir/project/build.properties similarity index 100% rename from scala-libraries/src/tapir/project/build.properties rename to scala-libraries-standalone/tapir/project/build.properties diff --git a/scala-libraries/src/tapir/server/src/main/scala/com/baeldung/tapir/server/BaseAkkaServer.scala b/scala-libraries-standalone/tapir/server/src/main/scala/com/baeldung/tapir/server/BaseAkkaServer.scala similarity index 100% rename from scala-libraries/src/tapir/server/src/main/scala/com/baeldung/tapir/server/BaseAkkaServer.scala rename to scala-libraries-standalone/tapir/server/src/main/scala/com/baeldung/tapir/server/BaseAkkaServer.scala diff --git a/scala-libraries/src/tapir/server/src/main/scala/com/baeldung/tapir/server/Database.scala b/scala-libraries-standalone/tapir/server/src/main/scala/com/baeldung/tapir/server/Database.scala similarity index 100% rename from scala-libraries/src/tapir/server/src/main/scala/com/baeldung/tapir/server/Database.scala rename to scala-libraries-standalone/tapir/server/src/main/scala/com/baeldung/tapir/server/Database.scala diff --git a/scala-libraries/src/tapir/server/src/main/scala/com/baeldung/tapir/server/KittensServer.scala b/scala-libraries-standalone/tapir/server/src/main/scala/com/baeldung/tapir/server/KittensServer.scala similarity index 100% rename from scala-libraries/src/tapir/server/src/main/scala/com/baeldung/tapir/server/KittensServer.scala rename to scala-libraries-standalone/tapir/server/src/main/scala/com/baeldung/tapir/server/KittensServer.scala diff --git a/scala-libraries/README.md b/scala-libraries/README.md index 63e7de75f..dab9842ec 100644 --- a/scala-libraries/README.md +++ b/scala-libraries/README.md @@ -8,4 +8,6 @@ - [Better Enumerations in Scala Using Enumeratum](https://www.baeldung.com/scala/enumeratum) - [Load Configuration Files In Scala Using PureConfig](https://www.baeldung.com/scala/pureconfig-load-config-files) - [Introduction to scala-async](https://www.baeldung.com/scala/scala-async) -- [Apache Pulsar Scala Client – pulsar4s](https://www.baeldung.com/scala/pulsar4s) \ No newline at end of file +- [Apache Pulsar Scala Client – pulsar4s](https://www.baeldung.com/scala/pulsar4s) +- [Introduction to Kafka With Scala](https://www.baeldung.com/scala/kafka) +- \ No newline at end of file diff --git a/scala-libraries-5/src/main/resources/docker-compose.yml b/scala-libraries/src/main/resources/docker-compose.yml similarity index 100% rename from scala-libraries-5/src/main/resources/docker-compose.yml rename to scala-libraries/src/main/resources/docker-compose.yml diff --git a/scala-libraries-5/src/main/resources/kafka-intro-avro.conf b/scala-libraries/src/main/resources/kafka-intro-avro.conf similarity index 100% rename from scala-libraries-5/src/main/resources/kafka-intro-avro.conf rename to scala-libraries/src/main/resources/kafka-intro-avro.conf diff --git a/scala-libraries-5/src/main/resources/kafka-intro.conf b/scala-libraries/src/main/resources/kafka-intro.conf similarity index 100% rename from scala-libraries-5/src/main/resources/kafka-intro.conf rename to scala-libraries/src/main/resources/kafka-intro.conf diff --git a/scala-libraries-5/src/main/resources/log4j2.xml b/scala-libraries/src/main/resources/log4j2.xml similarity index 100% rename from scala-libraries-5/src/main/resources/log4j2.xml rename to scala-libraries/src/main/resources/log4j2.xml diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/common/Article.scala b/scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/common/Article.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/common/Article.scala rename to scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/common/Article.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/common/ClientConfig.scala b/scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/common/ClientConfig.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/common/ClientConfig.scala rename to scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/common/ClientConfig.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/common/SerdeConfig.scala b/scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/common/SerdeConfig.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/common/SerdeConfig.scala rename to scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/common/SerdeConfig.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleAvroConsumer.scala b/scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleAvroConsumer.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleAvroConsumer.scala rename to scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleAvroConsumer.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleJsonStringConsumer.scala b/scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleJsonStringConsumer.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleJsonStringConsumer.scala rename to scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleJsonStringConsumer.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/AvroDeSerializer.scala b/scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/AvroDeSerializer.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/AvroDeSerializer.scala rename to scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/AvroDeSerializer.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerConfig.scala b/scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerConfig.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerConfig.scala rename to scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerConfig.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerUtils.scala b/scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerUtils.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerUtils.scala rename to scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerUtils.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/JsonStringDeSerializer.scala b/scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/JsonStringDeSerializer.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/JsonStringDeSerializer.scala rename to scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/JsonStringDeSerializer.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleAvroProducer.scala b/scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleAvroProducer.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleAvroProducer.scala rename to scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleAvroProducer.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleJsonStringProducer.scala b/scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleJsonStringProducer.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleJsonStringProducer.scala rename to scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleJsonStringProducer.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/Generator.scala b/scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/Generator.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/Generator.scala rename to scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/Generator.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/AvroSerializer.scala b/scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/AvroSerializer.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/AvroSerializer.scala rename to scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/AvroSerializer.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/JsonStringSerializer.scala b/scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/JsonStringSerializer.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/JsonStringSerializer.scala rename to scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/JsonStringSerializer.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerConfig.scala b/scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerConfig.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerConfig.scala rename to scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerConfig.scala diff --git a/scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerUtils.scala b/scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerUtils.scala similarity index 100% rename from scala-libraries-5/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerUtils.scala rename to scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerUtils.scala From 08e36c35a480cbf06825043d2a332f689d637dee Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 27 Mar 2024 21:52:04 +0100 Subject: [PATCH 0459/1318] Made redis tests as ManualTest to avoid running in jenkins --- build.sbt | 8 +++--- scala-libraries-2/README.md | 10 ------- .../src/main/resources/application.conf | 11 -------- ...sSpec.scala => HelloRedisManualTest.scala} | 4 +-- ...pec.scala => CacheThroughManualTest.scala} | 4 +-- ...lSpec.scala => GeospatialManualTest.scala} | 4 +-- ...Spec.scala => LeaderboardManualTest.scala} | 4 +-- ...itSpec.scala => RateLimitManualTest.scala} | 4 +-- ...{RedisSpec.scala => RedisManualTest.scala} | 2 +- scala-libraries/README.md | 21 ++++++-------- .../RequestsScalaHttpClientLiveTest.scala | 0 .../src/main/resources/application.conf | 28 ++++++++----------- .../com/baeldung/circe/JSONConversions.scala | 0 .../scala/com/baeldung/elastic4s/Main.scala | 0 .../com/baeldung/scala/awscala/Main.scala | 0 .../com/baeldung/scala/log4j/LoggingApp.scala | 0 .../scala/logging/ScalaLoggingSample.scala | 0 .../scala/retry/PrimeNumberRetry.scala | 0 .../main/scala/play_db/PlayDbExample.scala | 0 .../baeldung/circe/JSONConversionsTest.scala | 0 .../baeldung/scala/circe/CirceUnitTest.scala | 0 .../scala/circe/CustomDecoderUnitTest.scala | 0 .../scala/retry/PrimeNumberRetryTest.scala | 0 scala2-libraries/README.md | 12 ++++++++ .../src/finch/hello-world/build.sbt | 0 .../hello-world/project/build.properties | 0 .../com/baeldung/finch/helloWorld/Main.scala | 0 .../src/finch/todo/build.sbt | 0 .../src/finch/todo/project/build.properties | 0 .../scala/com/baeldung/finch/todo/Main.scala | 0 .../com/baeldung/finch/todo/models/Todo.scala | 0 .../pulsar4s/PulsarJsonSchemaManualTest.scala | 0 .../PulsarStringSchemaManualTest.scala | 0 .../src/main/resources/application.conf | 17 +++++++++++ .../src/main/resources/docker-compose.yml | 0 .../src/main/resources/kafka-intro-avro.conf | 0 .../src/main/resources/kafka-intro.conf | 0 .../src/main/resources/log4j2.xml | 0 .../service/AsyncQueryMemoizeService.scala | 0 .../cache/service/CacheFlagService.scala | 0 .../cache/service/CaffeineCacheConfig.scala | 0 .../baeldung/cache/service/CatsService.scala | 0 .../cache/service/GenericCacheService.scala | 0 .../com/baeldung/cache/service/Models.scala | 0 .../service/ScalaCacheCachingBlock.scala | 0 .../SyncQueryCustomMemoizeKeyService.scala | 0 .../service/SyncQueryMemoizeService.scala | 0 .../cache/service/SyncQueryService.scala | 0 .../com/baeldung/enumeratum/Enums.scala | 0 .../scala/kafka/intro/common/Article.scala | 0 .../kafka/intro/common/ClientConfig.scala | 0 .../kafka/intro/common/SerdeConfig.scala | 0 .../intro/consumer/ArticleAvroConsumer.scala | 0 .../consumer/ArticleJsonStringConsumer.scala | 0 .../consumer/common/AvroDeSerializer.scala | 0 .../consumer/common/ConsumerConfig.scala | 0 .../intro/consumer/common/ConsumerUtils.scala | 0 .../common/JsonStringDeSerializer.scala | 0 .../intro/producer/ArticleAvroProducer.scala | 0 .../producer/ArticleJsonStringProducer.scala | 0 .../kafka/intro/producer/Generator.scala | 0 .../producer/common/AvroSerializer.scala | 0 .../common/JsonStringSerializer.scala | 0 .../producer/common/ProducerConfig.scala | 0 .../intro/producer/common/ProducerUtils.scala | 0 .../com/baeldung/scala/monix/MonixTask.scala | 0 .../scala/monocle/OpticsExamples.scala | 0 .../scala/pulsar4s/JsonPulsarConsumer.scala | 0 .../scala/pulsar4s/JsonPulsarProducer.scala | 0 .../scala/pulsar4s/PulsarClient.scala | 0 .../scala/pulsar4s/PulsarConsumer.scala | 0 .../scala/pulsar4s/PulsarMessage.scala | 0 .../scala/pulsar4s/PulsarProducer.scala | 0 .../baeldung/scala/pureconfig/Configs.scala | 0 .../com/baeldung/scala/slick/Connection.scala | 0 .../com/baeldung/scala/slick/Entities.scala | 0 .../baeldung/scala/slick/SlickTables.scala | 0 .../test/resources/application-default.conf | 0 .../src/test/resources/application.conf | 0 .../src/test/resources/database.conf | 0 .../src/test/resources/fs2data.txt | 0 .../src/test/resources/http.conf | 0 .../src/test/resources/logback-test.xml | 0 .../src/test/resources/main.conf | 0 .../src/test/resources/notification.conf | 0 .../baeldung/cache/GenericCacheUnitTest.scala | 0 .../cache/ScalaCacheAsyncUnitTest.scala | 0 .../ScalaCacheCachingBlockUnitTest.scala | 0 .../cache/ScalaCacheCatsServiceUnitTest.scala | 0 .../cache/ScalaCacheSyncUnitTest.scala | 0 .../enumeratum/EnumeratumUnitTest.scala | 0 .../baeldung/scala/async/ScalaAsyncTest.scala | 0 .../scala/monix/MonixTaskUnitTest.scala | 0 .../monocle/OpticsExamplesUnitTest.scala | 0 .../scala/pureconfig/SampleConfigLoader.scala | 0 .../scala/shapeless/ShapelessUnitTest.scala | 0 .../scala/slick/PlayerServiceUnitTest.scala | 0 97 files changed, 64 insertions(+), 65 deletions(-) delete mode 100644 scala-libraries-2/README.md delete mode 100644 scala-libraries-2/src/main/resources/application.conf rename scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/{HelloRedisSpec.scala => HelloRedisManualTest.scala} (66%) rename scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/cache/{CacheThroughSpec.scala => CacheThroughManualTest.scala} (79%) rename scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/geospatial/{GeospatialSpec.scala => GeospatialManualTest.scala} (94%) rename scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/leaderboard/{LeaderboardSpec.scala => LeaderboardManualTest.scala} (92%) rename scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/ratelimit/{RateLimitSpec.scala => RateLimitManualTest.scala} (82%) rename scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/util/{RedisSpec.scala => RedisManualTest.scala} (75%) rename {scala-libraries-2 => scala-libraries}/src/it/scala/com/baeldung/requests/RequestsScalaHttpClientLiveTest.scala (100%) rename {scala-libraries-2 => scala-libraries}/src/main/scala/com/baeldung/circe/JSONConversions.scala (100%) rename {scala-libraries-2 => scala-libraries}/src/main/scala/com/baeldung/elastic4s/Main.scala (100%) rename {scala-libraries-2 => scala-libraries}/src/main/scala/com/baeldung/scala/awscala/Main.scala (100%) rename {scala-libraries-2 => scala-libraries}/src/main/scala/com/baeldung/scala/log4j/LoggingApp.scala (100%) rename {scala-libraries-2 => scala-libraries}/src/main/scala/com/baeldung/scala/logging/ScalaLoggingSample.scala (100%) rename {scala-libraries-2 => scala-libraries}/src/main/scala/com/baeldung/scala/retry/PrimeNumberRetry.scala (100%) rename {scala-libraries-2 => scala-libraries}/src/main/scala/play_db/PlayDbExample.scala (100%) rename {scala-libraries-2 => scala-libraries}/src/test/scala/com/baeldung/circe/JSONConversionsTest.scala (100%) rename {scala-libraries-2 => scala-libraries}/src/test/scala/com/baeldung/scala/circe/CirceUnitTest.scala (100%) rename {scala-libraries-2 => scala-libraries}/src/test/scala/com/baeldung/scala/circe/CustomDecoderUnitTest.scala (100%) rename {scala-libraries-2 => scala-libraries}/src/test/scala/com/baeldung/scala/retry/PrimeNumberRetryTest.scala (100%) create mode 100644 scala2-libraries/README.md rename {scala-libraries => scala2-libraries}/src/finch/hello-world/build.sbt (100%) rename {scala-libraries => scala2-libraries}/src/finch/hello-world/project/build.properties (100%) rename {scala-libraries => scala2-libraries}/src/finch/hello-world/src/main/scala/com/baeldung/finch/helloWorld/Main.scala (100%) rename {scala-libraries => scala2-libraries}/src/finch/todo/build.sbt (100%) rename {scala-libraries => scala2-libraries}/src/finch/todo/project/build.properties (100%) rename {scala-libraries => scala2-libraries}/src/finch/todo/src/main/scala/com/baeldung/finch/todo/Main.scala (100%) rename {scala-libraries => scala2-libraries}/src/finch/todo/src/main/scala/com/baeldung/finch/todo/models/Todo.scala (100%) rename {scala-libraries => scala2-libraries}/src/it/scala/com/baeldung/scala/pulsar4s/PulsarJsonSchemaManualTest.scala (100%) rename {scala-libraries => scala2-libraries}/src/it/scala/com/baeldung/scala/pulsar4s/PulsarStringSchemaManualTest.scala (100%) create mode 100644 scala2-libraries/src/main/resources/application.conf rename {scala-libraries => scala2-libraries}/src/main/resources/docker-compose.yml (100%) rename {scala-libraries => scala2-libraries}/src/main/resources/kafka-intro-avro.conf (100%) rename {scala-libraries => scala2-libraries}/src/main/resources/kafka-intro.conf (100%) rename {scala-libraries-2 => scala2-libraries}/src/main/resources/log4j2.xml (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/cache/service/AsyncQueryMemoizeService.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/cache/service/CacheFlagService.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/cache/service/CaffeineCacheConfig.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/cache/service/CatsService.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/cache/service/GenericCacheService.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/cache/service/Models.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/cache/service/ScalaCacheCachingBlock.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/cache/service/SyncQueryCustomMemoizeKeyService.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/cache/service/SyncQueryMemoizeService.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/cache/service/SyncQueryService.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/enumeratum/Enums.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/common/Article.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/common/ClientConfig.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/common/SerdeConfig.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleAvroConsumer.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleJsonStringConsumer.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/AvroDeSerializer.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerConfig.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerUtils.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/JsonStringDeSerializer.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleAvroProducer.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleJsonStringProducer.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/Generator.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/AvroSerializer.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/JsonStringSerializer.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerConfig.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerUtils.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/scala/monix/MonixTask.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/scala/monocle/OpticsExamples.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarConsumer.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarProducer.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarClient.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarConsumer.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarMessage.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarProducer.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/scala/pureconfig/Configs.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/scala/slick/Connection.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/scala/slick/Entities.scala (100%) rename {scala-libraries => scala2-libraries}/src/main/scala-2/com/baeldung/scala/slick/SlickTables.scala (100%) rename {scala-libraries => scala2-libraries}/src/test/resources/application-default.conf (100%) rename {scala-libraries => scala2-libraries}/src/test/resources/application.conf (100%) rename {scala-libraries => scala2-libraries}/src/test/resources/database.conf (100%) rename {scala-libraries => scala2-libraries}/src/test/resources/fs2data.txt (100%) rename {scala-libraries => scala2-libraries}/src/test/resources/http.conf (100%) rename {scala-libraries => scala2-libraries}/src/test/resources/logback-test.xml (100%) rename {scala-libraries => scala2-libraries}/src/test/resources/main.conf (100%) rename {scala-libraries => scala2-libraries}/src/test/resources/notification.conf (100%) rename {scala-libraries => scala2-libraries}/src/test/scala-2/com/baeldung/cache/GenericCacheUnitTest.scala (100%) rename {scala-libraries => scala2-libraries}/src/test/scala-2/com/baeldung/cache/ScalaCacheAsyncUnitTest.scala (100%) rename {scala-libraries => scala2-libraries}/src/test/scala-2/com/baeldung/cache/ScalaCacheCachingBlockUnitTest.scala (100%) rename {scala-libraries => scala2-libraries}/src/test/scala-2/com/baeldung/cache/ScalaCacheCatsServiceUnitTest.scala (100%) rename {scala-libraries => scala2-libraries}/src/test/scala-2/com/baeldung/cache/ScalaCacheSyncUnitTest.scala (100%) rename {scala-libraries => scala2-libraries}/src/test/scala-2/com/baeldung/enumeratum/EnumeratumUnitTest.scala (100%) rename {scala-libraries => scala2-libraries}/src/test/scala-2/com/baeldung/scala/async/ScalaAsyncTest.scala (100%) rename {scala-libraries => scala2-libraries}/src/test/scala-2/com/baeldung/scala/monix/MonixTaskUnitTest.scala (100%) rename {scala-libraries => scala2-libraries}/src/test/scala-2/com/baeldung/scala/monocle/OpticsExamplesUnitTest.scala (100%) rename {scala-libraries => scala2-libraries}/src/test/scala-2/com/baeldung/scala/pureconfig/SampleConfigLoader.scala (100%) rename {scala-libraries => scala2-libraries}/src/test/scala-2/com/baeldung/scala/shapeless/ShapelessUnitTest.scala (100%) rename {scala-libraries => scala2-libraries}/src/test/scala-2/com/baeldung/scala/slick/PlayerServiceUnitTest.scala (100%) diff --git a/build.sbt b/build.sbt index 33bf93fe9..50d7542a0 100644 --- a/build.sbt +++ b/build.sbt @@ -319,10 +319,10 @@ val scalazVersion = "7.3.8" val fs2Version = "3.9.4" val reactiveMongo = "1.1.0-RC12" -lazy val scala_libraries = (project in file("scala-libraries")) +lazy val scala2_libraries = (project in file("scala2-libraries")) .configs(IntegrationTest) .settings( - name := "scala-libraries", + name := "scala2-libraries", scalaVersion := scalaV, libraryDependencies ++= scalaTestDeps.map(_.withConfigurations(Some("it,test"))), resolvers += "Kafka avro serializer" at "https://packages.confluent.io/maven", @@ -377,10 +377,10 @@ val enumeratumDep = "com.beachape" %% "enumeratum" % "1.7.3" val circeDep = "io.circe" %% "circe-generic" % circeVersion val circeParserDep = "io.circe" %% "circe-parser" % circeVersion -lazy val scala_libraries_2 = (project in file("scala-libraries-2")) +lazy val scala_libraries = (project in file("scala-libraries")) .configs(IntegrationTest) .settings( - name := "scala-libraries-2", + name := "scala-libraries", scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps .map(_.withConfigurations(Some("it,test"))), diff --git a/scala-libraries-2/README.md b/scala-libraries-2/README.md deleted file mode 100644 index 40012dfc6..000000000 --- a/scala-libraries-2/README.md +++ /dev/null @@ -1,10 +0,0 @@ -## Relevant Articles: - -- [Parsing JSON with Circe](https://www.baeldung.com/scala/circe-json) -- [Database Access with Play](https://www.baeldung.com/scala/play-database-access) -- [Simple REST Requests Using Requests-Scala](https://www.baeldung.com/scala/rest-with-requests-scala) -- [Guide to elastic4s – Elasticsearch Scala Client](https://www.baeldung.com/scala/elastic4s-elasticsearch-client) -- [A Guide to the Scala Retry Library](https://www.baeldung.com/scala/retry-library) -- [Introduction to Apache Log4j in Scala](https://www.baeldung.com/scala/apache-log4j) -- [Logging in Scala Applications Using Scala-Logging](https://www.baeldung.com/scala/scala-logging) -- [AWScala – AWS SDK for Scala](https://www.baeldung.com/scala/awscala-aws-sdk-for-scala) \ No newline at end of file diff --git a/scala-libraries-2/src/main/resources/application.conf b/scala-libraries-2/src/main/resources/application.conf deleted file mode 100644 index 25ff922a8..000000000 --- a/scala-libraries-2/src/main/resources/application.conf +++ /dev/null @@ -1,11 +0,0 @@ -slick.dbs.default { - profile = "slick.jdbc.PostgresProfile$" - db { - driver = "org.postgresql.Driver" - url="jdbc:postgres://localhost:5432/postgres" - user=postgres - password=postgres - numThreads=20 - maxConnections=20 - } -} \ No newline at end of file diff --git a/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/HelloRedisSpec.scala b/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/HelloRedisManualTest.scala similarity index 66% rename from scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/HelloRedisSpec.scala rename to scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/HelloRedisManualTest.scala index 255235eff..ddc2affee 100644 --- a/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/HelloRedisSpec.scala +++ b/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/HelloRedisManualTest.scala @@ -1,9 +1,9 @@ package com.baeldung.redis -import com.baeldung.redis.util.RedisSpec +import com.baeldung.redis.util.RedisManualTest import org.scalatest.flatspec.AnyFlatSpec -class HelloRedisSpec extends AnyFlatSpec with RedisSpec { +class HelloRedisManualTest extends AnyFlatSpec with RedisManualTest { "The Hello Redis object" should "retrieve stored values" in { getJedis().set("key1", "value1") diff --git a/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/cache/CacheThroughSpec.scala b/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/cache/CacheThroughManualTest.scala similarity index 79% rename from scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/cache/CacheThroughSpec.scala rename to scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/cache/CacheThroughManualTest.scala index a2423abde..ed70574d8 100644 --- a/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/cache/CacheThroughSpec.scala +++ b/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/cache/CacheThroughManualTest.scala @@ -1,12 +1,12 @@ package com.baeldung.redis.cache import com.baeldung.redis.db.{BooksDB, VirtualDatabase} -import com.baeldung.redis.util.RedisSpec +import com.baeldung.redis.util.RedisManualTest import org.mockito.Mockito._ import org.scalatest.flatspec.AnyFlatSpec import org.scalatestplus.mockito.MockitoSugar -class CacheThroughSpec extends AnyFlatSpec with RedisSpec with MockitoSugar { +class CacheThroughManualTest extends AnyFlatSpec with RedisManualTest with MockitoSugar { "CacheThrough" should "fetch from DB only the first time" in { val mockDb = mock[VirtualDatabase] diff --git a/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/geospatial/GeospatialSpec.scala b/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/geospatial/GeospatialManualTest.scala similarity index 94% rename from scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/geospatial/GeospatialSpec.scala rename to scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/geospatial/GeospatialManualTest.scala index dc23152c4..d267f3cfc 100644 --- a/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/geospatial/GeospatialSpec.scala +++ b/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/geospatial/GeospatialManualTest.scala @@ -9,10 +9,10 @@ import com.baeldung.redis.geospatial.GeoPoints.{ MethanaIndex, Vromolimni } -import com.baeldung.redis.util.RedisSpec +import com.baeldung.redis.util.RedisManualTest import org.scalatest.flatspec.AnyFlatSpec -class GeospatialSpec extends AnyFlatSpec with RedisSpec { +class GeospatialManualTest extends AnyFlatSpec with RedisManualTest { private def loadGeopoints(geoSpatial: Geospatial): Unit = { geoSpatial.add(MethanaIndex)(Methana.name)(Methana.latLon) diff --git a/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/leaderboard/LeaderboardSpec.scala b/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/leaderboard/LeaderboardManualTest.scala similarity index 92% rename from scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/leaderboard/LeaderboardSpec.scala rename to scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/leaderboard/LeaderboardManualTest.scala index fa0f3e0bc..a2d297481 100644 --- a/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/leaderboard/LeaderboardSpec.scala +++ b/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/leaderboard/LeaderboardManualTest.scala @@ -1,10 +1,10 @@ package com.baeldung.redis.leaderboard import com.baeldung.redis.leaderboard.model.EmployDB -import com.baeldung.redis.util.RedisSpec +import com.baeldung.redis.util.RedisManualTest import org.scalatest.flatspec.AnyFlatSpec -class LeaderboardSpec extends AnyFlatSpec with RedisSpec { +class LeaderboardManualTest extends AnyFlatSpec with RedisManualTest { "Leaderboard#count" should "return correct counts for Employees after plus one calls" in { val commitLeaderboardKey = "commits" diff --git a/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/ratelimit/RateLimitSpec.scala b/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/ratelimit/RateLimitManualTest.scala similarity index 82% rename from scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/ratelimit/RateLimitSpec.scala rename to scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/ratelimit/RateLimitManualTest.scala index 1a395f22b..d7a995889 100644 --- a/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/ratelimit/RateLimitSpec.scala +++ b/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/ratelimit/RateLimitManualTest.scala @@ -1,12 +1,12 @@ package com.baeldung.redis.ratelimit -import com.baeldung.redis.util.RedisSpec +import com.baeldung.redis.util.RedisManualTest import org.scalatest.flatspec.AnyFlatSpec import scala.concurrent.duration._ import scala.language.postfixOps -class RateLimitSpec extends AnyFlatSpec with RedisSpec { +class RateLimitManualTest extends AnyFlatSpec with RedisManualTest { "RateLimit" should "respond with not allowed for the given duration" in { val limitedKey = "limited-key" diff --git a/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/util/RedisSpec.scala b/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/util/RedisManualTest.scala similarity index 75% rename from scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/util/RedisSpec.scala rename to scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/util/RedisManualTest.scala index 2e4eb4058..8ff46d301 100644 --- a/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/util/RedisSpec.scala +++ b/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/util/RedisManualTest.scala @@ -3,7 +3,7 @@ package com.baeldung.redis.util import org.scalatest.{BeforeAndAfter, BeforeAndAfterEach, Suite} import redis.clients.jedis.args.FlushMode -trait RedisSpec extends WithRedis with BeforeAndAfter with BeforeAndAfterEach { +trait RedisManualTest extends WithRedis with BeforeAndAfter with BeforeAndAfterEach { this: Suite => diff --git a/scala-libraries/README.md b/scala-libraries/README.md index dab9842ec..40012dfc6 100644 --- a/scala-libraries/README.md +++ b/scala-libraries/README.md @@ -1,13 +1,10 @@ -### Relevant Articles: +## Relevant Articles: -- [Introduction to Optics in Scala Using Monocle](https://www.baeldung.com/scala/monocle-optics) -- [Building REST APIs in Scala with Finch](https://www.baeldung.com/scala/finch-rest-apis) -- [Introduction to Generic Programming in Scala with shapeless](https://www.baeldung.com/scala/generic-programming) -- [Asynchronous and Reactive Programming With Monix in Scala](https://www.baeldung.com/scala/monix) -- [ScalaCache: A Caching Library To Rule Them All](https://www.baeldung.com/scala/scalacache) -- [Better Enumerations in Scala Using Enumeratum](https://www.baeldung.com/scala/enumeratum) -- [Load Configuration Files In Scala Using PureConfig](https://www.baeldung.com/scala/pureconfig-load-config-files) -- [Introduction to scala-async](https://www.baeldung.com/scala/scala-async) -- [Apache Pulsar Scala Client – pulsar4s](https://www.baeldung.com/scala/pulsar4s) -- [Introduction to Kafka With Scala](https://www.baeldung.com/scala/kafka) -- \ No newline at end of file +- [Parsing JSON with Circe](https://www.baeldung.com/scala/circe-json) +- [Database Access with Play](https://www.baeldung.com/scala/play-database-access) +- [Simple REST Requests Using Requests-Scala](https://www.baeldung.com/scala/rest-with-requests-scala) +- [Guide to elastic4s – Elasticsearch Scala Client](https://www.baeldung.com/scala/elastic4s-elasticsearch-client) +- [A Guide to the Scala Retry Library](https://www.baeldung.com/scala/retry-library) +- [Introduction to Apache Log4j in Scala](https://www.baeldung.com/scala/apache-log4j) +- [Logging in Scala Applications Using Scala-Logging](https://www.baeldung.com/scala/scala-logging) +- [AWScala – AWS SDK for Scala](https://www.baeldung.com/scala/awscala-aws-sdk-for-scala) \ No newline at end of file diff --git a/scala-libraries-2/src/it/scala/com/baeldung/requests/RequestsScalaHttpClientLiveTest.scala b/scala-libraries/src/it/scala/com/baeldung/requests/RequestsScalaHttpClientLiveTest.scala similarity index 100% rename from scala-libraries-2/src/it/scala/com/baeldung/requests/RequestsScalaHttpClientLiveTest.scala rename to scala-libraries/src/it/scala/com/baeldung/requests/RequestsScalaHttpClientLiveTest.scala diff --git a/scala-libraries/src/main/resources/application.conf b/scala-libraries/src/main/resources/application.conf index 2272bb414..25ff922a8 100644 --- a/scala-libraries/src/main/resources/application.conf +++ b/scala-libraries/src/main/resources/application.conf @@ -1,17 +1,11 @@ -h2mem { - url = "jdbc:h2:mem:testDB" - driver = org.h2.Driver - keepAliveConnection = true - connectionPool = disabled -} - -#postgres { -# dataSourceClass = "org.postgresql.ds.PGSimpleDataSource" -# properties = { -# serverName = "localhost" -# portNumber = "5432" -# databaseName = "slick-tutorial" -# user = "postgres" -# password = "admin" -# } -#} \ No newline at end of file +slick.dbs.default { + profile = "slick.jdbc.PostgresProfile$" + db { + driver = "org.postgresql.Driver" + url="jdbc:postgres://localhost:5432/postgres" + user=postgres + password=postgres + numThreads=20 + maxConnections=20 + } +} \ No newline at end of file diff --git a/scala-libraries-2/src/main/scala/com/baeldung/circe/JSONConversions.scala b/scala-libraries/src/main/scala/com/baeldung/circe/JSONConversions.scala similarity index 100% rename from scala-libraries-2/src/main/scala/com/baeldung/circe/JSONConversions.scala rename to scala-libraries/src/main/scala/com/baeldung/circe/JSONConversions.scala diff --git a/scala-libraries-2/src/main/scala/com/baeldung/elastic4s/Main.scala b/scala-libraries/src/main/scala/com/baeldung/elastic4s/Main.scala similarity index 100% rename from scala-libraries-2/src/main/scala/com/baeldung/elastic4s/Main.scala rename to scala-libraries/src/main/scala/com/baeldung/elastic4s/Main.scala diff --git a/scala-libraries-2/src/main/scala/com/baeldung/scala/awscala/Main.scala b/scala-libraries/src/main/scala/com/baeldung/scala/awscala/Main.scala similarity index 100% rename from scala-libraries-2/src/main/scala/com/baeldung/scala/awscala/Main.scala rename to scala-libraries/src/main/scala/com/baeldung/scala/awscala/Main.scala diff --git a/scala-libraries-2/src/main/scala/com/baeldung/scala/log4j/LoggingApp.scala b/scala-libraries/src/main/scala/com/baeldung/scala/log4j/LoggingApp.scala similarity index 100% rename from scala-libraries-2/src/main/scala/com/baeldung/scala/log4j/LoggingApp.scala rename to scala-libraries/src/main/scala/com/baeldung/scala/log4j/LoggingApp.scala diff --git a/scala-libraries-2/src/main/scala/com/baeldung/scala/logging/ScalaLoggingSample.scala b/scala-libraries/src/main/scala/com/baeldung/scala/logging/ScalaLoggingSample.scala similarity index 100% rename from scala-libraries-2/src/main/scala/com/baeldung/scala/logging/ScalaLoggingSample.scala rename to scala-libraries/src/main/scala/com/baeldung/scala/logging/ScalaLoggingSample.scala diff --git a/scala-libraries-2/src/main/scala/com/baeldung/scala/retry/PrimeNumberRetry.scala b/scala-libraries/src/main/scala/com/baeldung/scala/retry/PrimeNumberRetry.scala similarity index 100% rename from scala-libraries-2/src/main/scala/com/baeldung/scala/retry/PrimeNumberRetry.scala rename to scala-libraries/src/main/scala/com/baeldung/scala/retry/PrimeNumberRetry.scala diff --git a/scala-libraries-2/src/main/scala/play_db/PlayDbExample.scala b/scala-libraries/src/main/scala/play_db/PlayDbExample.scala similarity index 100% rename from scala-libraries-2/src/main/scala/play_db/PlayDbExample.scala rename to scala-libraries/src/main/scala/play_db/PlayDbExample.scala diff --git a/scala-libraries-2/src/test/scala/com/baeldung/circe/JSONConversionsTest.scala b/scala-libraries/src/test/scala/com/baeldung/circe/JSONConversionsTest.scala similarity index 100% rename from scala-libraries-2/src/test/scala/com/baeldung/circe/JSONConversionsTest.scala rename to scala-libraries/src/test/scala/com/baeldung/circe/JSONConversionsTest.scala diff --git a/scala-libraries-2/src/test/scala/com/baeldung/scala/circe/CirceUnitTest.scala b/scala-libraries/src/test/scala/com/baeldung/scala/circe/CirceUnitTest.scala similarity index 100% rename from scala-libraries-2/src/test/scala/com/baeldung/scala/circe/CirceUnitTest.scala rename to scala-libraries/src/test/scala/com/baeldung/scala/circe/CirceUnitTest.scala diff --git a/scala-libraries-2/src/test/scala/com/baeldung/scala/circe/CustomDecoderUnitTest.scala b/scala-libraries/src/test/scala/com/baeldung/scala/circe/CustomDecoderUnitTest.scala similarity index 100% rename from scala-libraries-2/src/test/scala/com/baeldung/scala/circe/CustomDecoderUnitTest.scala rename to scala-libraries/src/test/scala/com/baeldung/scala/circe/CustomDecoderUnitTest.scala diff --git a/scala-libraries-2/src/test/scala/com/baeldung/scala/retry/PrimeNumberRetryTest.scala b/scala-libraries/src/test/scala/com/baeldung/scala/retry/PrimeNumberRetryTest.scala similarity index 100% rename from scala-libraries-2/src/test/scala/com/baeldung/scala/retry/PrimeNumberRetryTest.scala rename to scala-libraries/src/test/scala/com/baeldung/scala/retry/PrimeNumberRetryTest.scala diff --git a/scala2-libraries/README.md b/scala2-libraries/README.md new file mode 100644 index 000000000..4af05b5f8 --- /dev/null +++ b/scala2-libraries/README.md @@ -0,0 +1,12 @@ +### Relevant Articles: + +- [Introduction to Optics in Scala Using Monocle](https://www.baeldung.com/scala/monocle-optics) +- [Building REST APIs in Scala with Finch](https://www.baeldung.com/scala/finch-rest-apis) +- [Introduction to Generic Programming in Scala with shapeless](https://www.baeldung.com/scala/generic-programming) +- [Asynchronous and Reactive Programming With Monix in Scala](https://www.baeldung.com/scala/monix) +- [ScalaCache: A Caching Library To Rule Them All](https://www.baeldung.com/scala/scalacache) +- [Better Enumerations in Scala Using Enumeratum](https://www.baeldung.com/scala/enumeratum) +- [Load Configuration Files In Scala Using PureConfig](https://www.baeldung.com/scala/pureconfig-load-config-files) +- [Introduction to scala-async](https://www.baeldung.com/scala/scala-async) +- [Apache Pulsar Scala Client – pulsar4s](https://www.baeldung.com/scala/pulsar4s) +- [Introduction to Kafka With Scala](https://www.baeldung.com/scala/kafka) diff --git a/scala-libraries/src/finch/hello-world/build.sbt b/scala2-libraries/src/finch/hello-world/build.sbt similarity index 100% rename from scala-libraries/src/finch/hello-world/build.sbt rename to scala2-libraries/src/finch/hello-world/build.sbt diff --git a/scala-libraries/src/finch/hello-world/project/build.properties b/scala2-libraries/src/finch/hello-world/project/build.properties similarity index 100% rename from scala-libraries/src/finch/hello-world/project/build.properties rename to scala2-libraries/src/finch/hello-world/project/build.properties diff --git a/scala-libraries/src/finch/hello-world/src/main/scala/com/baeldung/finch/helloWorld/Main.scala b/scala2-libraries/src/finch/hello-world/src/main/scala/com/baeldung/finch/helloWorld/Main.scala similarity index 100% rename from scala-libraries/src/finch/hello-world/src/main/scala/com/baeldung/finch/helloWorld/Main.scala rename to scala2-libraries/src/finch/hello-world/src/main/scala/com/baeldung/finch/helloWorld/Main.scala diff --git a/scala-libraries/src/finch/todo/build.sbt b/scala2-libraries/src/finch/todo/build.sbt similarity index 100% rename from scala-libraries/src/finch/todo/build.sbt rename to scala2-libraries/src/finch/todo/build.sbt diff --git a/scala-libraries/src/finch/todo/project/build.properties b/scala2-libraries/src/finch/todo/project/build.properties similarity index 100% rename from scala-libraries/src/finch/todo/project/build.properties rename to scala2-libraries/src/finch/todo/project/build.properties diff --git a/scala-libraries/src/finch/todo/src/main/scala/com/baeldung/finch/todo/Main.scala b/scala2-libraries/src/finch/todo/src/main/scala/com/baeldung/finch/todo/Main.scala similarity index 100% rename from scala-libraries/src/finch/todo/src/main/scala/com/baeldung/finch/todo/Main.scala rename to scala2-libraries/src/finch/todo/src/main/scala/com/baeldung/finch/todo/Main.scala diff --git a/scala-libraries/src/finch/todo/src/main/scala/com/baeldung/finch/todo/models/Todo.scala b/scala2-libraries/src/finch/todo/src/main/scala/com/baeldung/finch/todo/models/Todo.scala similarity index 100% rename from scala-libraries/src/finch/todo/src/main/scala/com/baeldung/finch/todo/models/Todo.scala rename to scala2-libraries/src/finch/todo/src/main/scala/com/baeldung/finch/todo/models/Todo.scala diff --git a/scala-libraries/src/it/scala/com/baeldung/scala/pulsar4s/PulsarJsonSchemaManualTest.scala b/scala2-libraries/src/it/scala/com/baeldung/scala/pulsar4s/PulsarJsonSchemaManualTest.scala similarity index 100% rename from scala-libraries/src/it/scala/com/baeldung/scala/pulsar4s/PulsarJsonSchemaManualTest.scala rename to scala2-libraries/src/it/scala/com/baeldung/scala/pulsar4s/PulsarJsonSchemaManualTest.scala diff --git a/scala-libraries/src/it/scala/com/baeldung/scala/pulsar4s/PulsarStringSchemaManualTest.scala b/scala2-libraries/src/it/scala/com/baeldung/scala/pulsar4s/PulsarStringSchemaManualTest.scala similarity index 100% rename from scala-libraries/src/it/scala/com/baeldung/scala/pulsar4s/PulsarStringSchemaManualTest.scala rename to scala2-libraries/src/it/scala/com/baeldung/scala/pulsar4s/PulsarStringSchemaManualTest.scala diff --git a/scala2-libraries/src/main/resources/application.conf b/scala2-libraries/src/main/resources/application.conf new file mode 100644 index 000000000..2272bb414 --- /dev/null +++ b/scala2-libraries/src/main/resources/application.conf @@ -0,0 +1,17 @@ +h2mem { + url = "jdbc:h2:mem:testDB" + driver = org.h2.Driver + keepAliveConnection = true + connectionPool = disabled +} + +#postgres { +# dataSourceClass = "org.postgresql.ds.PGSimpleDataSource" +# properties = { +# serverName = "localhost" +# portNumber = "5432" +# databaseName = "slick-tutorial" +# user = "postgres" +# password = "admin" +# } +#} \ No newline at end of file diff --git a/scala-libraries/src/main/resources/docker-compose.yml b/scala2-libraries/src/main/resources/docker-compose.yml similarity index 100% rename from scala-libraries/src/main/resources/docker-compose.yml rename to scala2-libraries/src/main/resources/docker-compose.yml diff --git a/scala-libraries/src/main/resources/kafka-intro-avro.conf b/scala2-libraries/src/main/resources/kafka-intro-avro.conf similarity index 100% rename from scala-libraries/src/main/resources/kafka-intro-avro.conf rename to scala2-libraries/src/main/resources/kafka-intro-avro.conf diff --git a/scala-libraries/src/main/resources/kafka-intro.conf b/scala2-libraries/src/main/resources/kafka-intro.conf similarity index 100% rename from scala-libraries/src/main/resources/kafka-intro.conf rename to scala2-libraries/src/main/resources/kafka-intro.conf diff --git a/scala-libraries-2/src/main/resources/log4j2.xml b/scala2-libraries/src/main/resources/log4j2.xml similarity index 100% rename from scala-libraries-2/src/main/resources/log4j2.xml rename to scala2-libraries/src/main/resources/log4j2.xml diff --git a/scala-libraries/src/main/scala-2/com/baeldung/cache/service/AsyncQueryMemoizeService.scala b/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/AsyncQueryMemoizeService.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/cache/service/AsyncQueryMemoizeService.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/cache/service/AsyncQueryMemoizeService.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/cache/service/CacheFlagService.scala b/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/CacheFlagService.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/cache/service/CacheFlagService.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/cache/service/CacheFlagService.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/cache/service/CaffeineCacheConfig.scala b/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/CaffeineCacheConfig.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/cache/service/CaffeineCacheConfig.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/cache/service/CaffeineCacheConfig.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/cache/service/CatsService.scala b/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/CatsService.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/cache/service/CatsService.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/cache/service/CatsService.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/cache/service/GenericCacheService.scala b/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/GenericCacheService.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/cache/service/GenericCacheService.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/cache/service/GenericCacheService.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/cache/service/Models.scala b/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/Models.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/cache/service/Models.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/cache/service/Models.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/cache/service/ScalaCacheCachingBlock.scala b/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/ScalaCacheCachingBlock.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/cache/service/ScalaCacheCachingBlock.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/cache/service/ScalaCacheCachingBlock.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryCustomMemoizeKeyService.scala b/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryCustomMemoizeKeyService.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryCustomMemoizeKeyService.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryCustomMemoizeKeyService.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryMemoizeService.scala b/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryMemoizeService.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryMemoizeService.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryMemoizeService.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryService.scala b/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryService.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryService.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryService.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/enumeratum/Enums.scala b/scala2-libraries/src/main/scala-2/com/baeldung/enumeratum/Enums.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/enumeratum/Enums.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/enumeratum/Enums.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/common/Article.scala b/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/common/Article.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/common/Article.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/common/Article.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/common/ClientConfig.scala b/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/common/ClientConfig.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/common/ClientConfig.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/common/ClientConfig.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/common/SerdeConfig.scala b/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/common/SerdeConfig.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/common/SerdeConfig.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/common/SerdeConfig.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleAvroConsumer.scala b/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleAvroConsumer.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleAvroConsumer.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleAvroConsumer.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleJsonStringConsumer.scala b/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleJsonStringConsumer.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleJsonStringConsumer.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleJsonStringConsumer.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/AvroDeSerializer.scala b/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/AvroDeSerializer.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/AvroDeSerializer.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/AvroDeSerializer.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerConfig.scala b/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerConfig.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerConfig.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerConfig.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerUtils.scala b/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerUtils.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerUtils.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerUtils.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/JsonStringDeSerializer.scala b/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/JsonStringDeSerializer.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/JsonStringDeSerializer.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/JsonStringDeSerializer.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleAvroProducer.scala b/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleAvroProducer.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleAvroProducer.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleAvroProducer.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleJsonStringProducer.scala b/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleJsonStringProducer.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleJsonStringProducer.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleJsonStringProducer.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/Generator.scala b/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/Generator.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/Generator.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/Generator.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/AvroSerializer.scala b/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/AvroSerializer.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/AvroSerializer.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/AvroSerializer.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/JsonStringSerializer.scala b/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/JsonStringSerializer.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/JsonStringSerializer.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/JsonStringSerializer.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerConfig.scala b/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerConfig.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerConfig.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerConfig.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerUtils.scala b/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerUtils.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerUtils.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerUtils.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/monix/MonixTask.scala b/scala2-libraries/src/main/scala-2/com/baeldung/scala/monix/MonixTask.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/monix/MonixTask.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/scala/monix/MonixTask.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/monocle/OpticsExamples.scala b/scala2-libraries/src/main/scala-2/com/baeldung/scala/monocle/OpticsExamples.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/monocle/OpticsExamples.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/scala/monocle/OpticsExamples.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarConsumer.scala b/scala2-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarConsumer.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarConsumer.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarConsumer.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarProducer.scala b/scala2-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarProducer.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarProducer.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarProducer.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarClient.scala b/scala2-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarClient.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarClient.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarClient.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarConsumer.scala b/scala2-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarConsumer.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarConsumer.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarConsumer.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarMessage.scala b/scala2-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarMessage.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarMessage.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarMessage.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarProducer.scala b/scala2-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarProducer.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarProducer.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarProducer.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/pureconfig/Configs.scala b/scala2-libraries/src/main/scala-2/com/baeldung/scala/pureconfig/Configs.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/pureconfig/Configs.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/scala/pureconfig/Configs.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/slick/Connection.scala b/scala2-libraries/src/main/scala-2/com/baeldung/scala/slick/Connection.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/slick/Connection.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/scala/slick/Connection.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/slick/Entities.scala b/scala2-libraries/src/main/scala-2/com/baeldung/scala/slick/Entities.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/slick/Entities.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/scala/slick/Entities.scala diff --git a/scala-libraries/src/main/scala-2/com/baeldung/scala/slick/SlickTables.scala b/scala2-libraries/src/main/scala-2/com/baeldung/scala/slick/SlickTables.scala similarity index 100% rename from scala-libraries/src/main/scala-2/com/baeldung/scala/slick/SlickTables.scala rename to scala2-libraries/src/main/scala-2/com/baeldung/scala/slick/SlickTables.scala diff --git a/scala-libraries/src/test/resources/application-default.conf b/scala2-libraries/src/test/resources/application-default.conf similarity index 100% rename from scala-libraries/src/test/resources/application-default.conf rename to scala2-libraries/src/test/resources/application-default.conf diff --git a/scala-libraries/src/test/resources/application.conf b/scala2-libraries/src/test/resources/application.conf similarity index 100% rename from scala-libraries/src/test/resources/application.conf rename to scala2-libraries/src/test/resources/application.conf diff --git a/scala-libraries/src/test/resources/database.conf b/scala2-libraries/src/test/resources/database.conf similarity index 100% rename from scala-libraries/src/test/resources/database.conf rename to scala2-libraries/src/test/resources/database.conf diff --git a/scala-libraries/src/test/resources/fs2data.txt b/scala2-libraries/src/test/resources/fs2data.txt similarity index 100% rename from scala-libraries/src/test/resources/fs2data.txt rename to scala2-libraries/src/test/resources/fs2data.txt diff --git a/scala-libraries/src/test/resources/http.conf b/scala2-libraries/src/test/resources/http.conf similarity index 100% rename from scala-libraries/src/test/resources/http.conf rename to scala2-libraries/src/test/resources/http.conf diff --git a/scala-libraries/src/test/resources/logback-test.xml b/scala2-libraries/src/test/resources/logback-test.xml similarity index 100% rename from scala-libraries/src/test/resources/logback-test.xml rename to scala2-libraries/src/test/resources/logback-test.xml diff --git a/scala-libraries/src/test/resources/main.conf b/scala2-libraries/src/test/resources/main.conf similarity index 100% rename from scala-libraries/src/test/resources/main.conf rename to scala2-libraries/src/test/resources/main.conf diff --git a/scala-libraries/src/test/resources/notification.conf b/scala2-libraries/src/test/resources/notification.conf similarity index 100% rename from scala-libraries/src/test/resources/notification.conf rename to scala2-libraries/src/test/resources/notification.conf diff --git a/scala-libraries/src/test/scala-2/com/baeldung/cache/GenericCacheUnitTest.scala b/scala2-libraries/src/test/scala-2/com/baeldung/cache/GenericCacheUnitTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/cache/GenericCacheUnitTest.scala rename to scala2-libraries/src/test/scala-2/com/baeldung/cache/GenericCacheUnitTest.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheAsyncUnitTest.scala b/scala2-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheAsyncUnitTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheAsyncUnitTest.scala rename to scala2-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheAsyncUnitTest.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheCachingBlockUnitTest.scala b/scala2-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheCachingBlockUnitTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheCachingBlockUnitTest.scala rename to scala2-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheCachingBlockUnitTest.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheCatsServiceUnitTest.scala b/scala2-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheCatsServiceUnitTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheCatsServiceUnitTest.scala rename to scala2-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheCatsServiceUnitTest.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheSyncUnitTest.scala b/scala2-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheSyncUnitTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheSyncUnitTest.scala rename to scala2-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheSyncUnitTest.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/enumeratum/EnumeratumUnitTest.scala b/scala2-libraries/src/test/scala-2/com/baeldung/enumeratum/EnumeratumUnitTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/enumeratum/EnumeratumUnitTest.scala rename to scala2-libraries/src/test/scala-2/com/baeldung/enumeratum/EnumeratumUnitTest.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/async/ScalaAsyncTest.scala b/scala2-libraries/src/test/scala-2/com/baeldung/scala/async/ScalaAsyncTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/async/ScalaAsyncTest.scala rename to scala2-libraries/src/test/scala-2/com/baeldung/scala/async/ScalaAsyncTest.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/monix/MonixTaskUnitTest.scala b/scala2-libraries/src/test/scala-2/com/baeldung/scala/monix/MonixTaskUnitTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/monix/MonixTaskUnitTest.scala rename to scala2-libraries/src/test/scala-2/com/baeldung/scala/monix/MonixTaskUnitTest.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/monocle/OpticsExamplesUnitTest.scala b/scala2-libraries/src/test/scala-2/com/baeldung/scala/monocle/OpticsExamplesUnitTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/monocle/OpticsExamplesUnitTest.scala rename to scala2-libraries/src/test/scala-2/com/baeldung/scala/monocle/OpticsExamplesUnitTest.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/pureconfig/SampleConfigLoader.scala b/scala2-libraries/src/test/scala-2/com/baeldung/scala/pureconfig/SampleConfigLoader.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/pureconfig/SampleConfigLoader.scala rename to scala2-libraries/src/test/scala-2/com/baeldung/scala/pureconfig/SampleConfigLoader.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/shapeless/ShapelessUnitTest.scala b/scala2-libraries/src/test/scala-2/com/baeldung/scala/shapeless/ShapelessUnitTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/shapeless/ShapelessUnitTest.scala rename to scala2-libraries/src/test/scala-2/com/baeldung/scala/shapeless/ShapelessUnitTest.scala diff --git a/scala-libraries/src/test/scala-2/com/baeldung/scala/slick/PlayerServiceUnitTest.scala b/scala2-libraries/src/test/scala-2/com/baeldung/scala/slick/PlayerServiceUnitTest.scala similarity index 100% rename from scala-libraries/src/test/scala-2/com/baeldung/scala/slick/PlayerServiceUnitTest.scala rename to scala2-libraries/src/test/scala-2/com/baeldung/scala/slick/PlayerServiceUnitTest.scala From 1517021b43d65e6e94b53b89140153faab5551fa Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 27 Mar 2024 21:57:58 +0100 Subject: [PATCH 0460/1318] Moved scala 2 libraries to different module --- build.sbt | 2 +- .../scala2-libraries}/README.md | 0 .../scala2-libraries}/src/finch/hello-world/build.sbt | 0 .../src/finch/hello-world/project/build.properties | 0 .../src/main/scala/com/baeldung/finch/helloWorld/Main.scala | 0 .../scala2-libraries}/src/finch/todo/build.sbt | 0 .../scala2-libraries}/src/finch/todo/project/build.properties | 0 .../todo/src/main/scala/com/baeldung/finch/todo/Main.scala | 0 .../src/main/scala/com/baeldung/finch/todo/models/Todo.scala | 0 .../baeldung/scala/pulsar4s/PulsarJsonSchemaManualTest.scala | 0 .../baeldung/scala/pulsar4s/PulsarStringSchemaManualTest.scala | 0 .../scala2-libraries}/src/main/resources/application.conf | 0 .../scala2-libraries}/src/main/resources/docker-compose.yml | 0 .../scala2-libraries}/src/main/resources/kafka-intro-avro.conf | 0 .../scala2-libraries}/src/main/resources/kafka-intro.conf | 0 .../scala2-libraries}/src/main/resources/log4j2.xml | 0 .../com/baeldung/cache/service/AsyncQueryMemoizeService.scala | 0 .../scala-2/com/baeldung/cache/service/CacheFlagService.scala | 0 .../com/baeldung/cache/service/CaffeineCacheConfig.scala | 0 .../main/scala-2/com/baeldung/cache/service/CatsService.scala | 0 .../com/baeldung/cache/service/GenericCacheService.scala | 0 .../src/main/scala-2/com/baeldung/cache/service/Models.scala | 0 .../com/baeldung/cache/service/ScalaCacheCachingBlock.scala | 0 .../cache/service/SyncQueryCustomMemoizeKeyService.scala | 0 .../com/baeldung/cache/service/SyncQueryMemoizeService.scala | 0 .../scala-2/com/baeldung/cache/service/SyncQueryService.scala | 0 .../src/main/scala-2/com/baeldung/enumeratum/Enums.scala | 0 .../scala-2/com/baeldung/scala/kafka/intro/common/Article.scala | 0 .../com/baeldung/scala/kafka/intro/common/ClientConfig.scala | 0 .../com/baeldung/scala/kafka/intro/common/SerdeConfig.scala | 0 .../scala/kafka/intro/consumer/ArticleAvroConsumer.scala | 0 .../scala/kafka/intro/consumer/ArticleJsonStringConsumer.scala | 0 .../scala/kafka/intro/consumer/common/AvroDeSerializer.scala | 0 .../scala/kafka/intro/consumer/common/ConsumerConfig.scala | 0 .../scala/kafka/intro/consumer/common/ConsumerUtils.scala | 0 .../kafka/intro/consumer/common/JsonStringDeSerializer.scala | 0 .../scala/kafka/intro/producer/ArticleAvroProducer.scala | 0 .../scala/kafka/intro/producer/ArticleJsonStringProducer.scala | 0 .../com/baeldung/scala/kafka/intro/producer/Generator.scala | 0 .../scala/kafka/intro/producer/common/AvroSerializer.scala | 0 .../kafka/intro/producer/common/JsonStringSerializer.scala | 0 .../scala/kafka/intro/producer/common/ProducerConfig.scala | 0 .../scala/kafka/intro/producer/common/ProducerUtils.scala | 0 .../src/main/scala-2/com/baeldung/scala/monix/MonixTask.scala | 0 .../scala-2/com/baeldung/scala/monocle/OpticsExamples.scala | 0 .../com/baeldung/scala/pulsar4s/JsonPulsarConsumer.scala | 0 .../com/baeldung/scala/pulsar4s/JsonPulsarProducer.scala | 0 .../main/scala-2/com/baeldung/scala/pulsar4s/PulsarClient.scala | 0 .../scala-2/com/baeldung/scala/pulsar4s/PulsarConsumer.scala | 0 .../scala-2/com/baeldung/scala/pulsar4s/PulsarMessage.scala | 0 .../scala-2/com/baeldung/scala/pulsar4s/PulsarProducer.scala | 0 .../main/scala-2/com/baeldung/scala/pureconfig/Configs.scala | 0 .../src/main/scala-2/com/baeldung/scala/slick/Connection.scala | 0 .../src/main/scala-2/com/baeldung/scala/slick/Entities.scala | 0 .../src/main/scala-2/com/baeldung/scala/slick/SlickTables.scala | 0 .../src/test/resources/application-default.conf | 0 .../scala2-libraries}/src/test/resources/application.conf | 0 .../scala2-libraries}/src/test/resources/database.conf | 0 .../scala2-libraries}/src/test/resources/fs2data.txt | 0 .../scala2-libraries}/src/test/resources/http.conf | 0 .../scala2-libraries}/src/test/resources/logback-test.xml | 0 .../scala2-libraries}/src/test/resources/main.conf | 0 .../scala2-libraries}/src/test/resources/notification.conf | 0 .../test/scala-2/com/baeldung/cache/GenericCacheUnitTest.scala | 0 .../scala-2/com/baeldung/cache/ScalaCacheAsyncUnitTest.scala | 0 .../com/baeldung/cache/ScalaCacheCachingBlockUnitTest.scala | 0 .../com/baeldung/cache/ScalaCacheCatsServiceUnitTest.scala | 0 .../scala-2/com/baeldung/cache/ScalaCacheSyncUnitTest.scala | 0 .../scala-2/com/baeldung/enumeratum/EnumeratumUnitTest.scala | 0 .../test/scala-2/com/baeldung/scala/async/ScalaAsyncTest.scala | 0 .../scala-2/com/baeldung/scala/monix/MonixTaskUnitTest.scala | 0 .../com/baeldung/scala/monocle/OpticsExamplesUnitTest.scala | 0 .../com/baeldung/scala/pureconfig/SampleConfigLoader.scala | 0 .../com/baeldung/scala/shapeless/ShapelessUnitTest.scala | 0 .../com/baeldung/scala/slick/PlayerServiceUnitTest.scala | 0 75 files changed, 1 insertion(+), 1 deletion(-) rename {scala2-libraries => scala-2-modules/scala2-libraries}/README.md (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/finch/hello-world/build.sbt (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/finch/hello-world/project/build.properties (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/finch/hello-world/src/main/scala/com/baeldung/finch/helloWorld/Main.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/finch/todo/build.sbt (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/finch/todo/project/build.properties (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/finch/todo/src/main/scala/com/baeldung/finch/todo/Main.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/finch/todo/src/main/scala/com/baeldung/finch/todo/models/Todo.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/it/scala/com/baeldung/scala/pulsar4s/PulsarJsonSchemaManualTest.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/it/scala/com/baeldung/scala/pulsar4s/PulsarStringSchemaManualTest.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/resources/application.conf (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/resources/docker-compose.yml (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/resources/kafka-intro-avro.conf (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/resources/kafka-intro.conf (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/resources/log4j2.xml (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/cache/service/AsyncQueryMemoizeService.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/cache/service/CacheFlagService.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/cache/service/CaffeineCacheConfig.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/cache/service/CatsService.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/cache/service/GenericCacheService.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/cache/service/Models.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/cache/service/ScalaCacheCachingBlock.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/cache/service/SyncQueryCustomMemoizeKeyService.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/cache/service/SyncQueryMemoizeService.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/cache/service/SyncQueryService.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/enumeratum/Enums.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/common/Article.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/common/ClientConfig.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/common/SerdeConfig.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleAvroConsumer.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleJsonStringConsumer.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/AvroDeSerializer.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerConfig.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerUtils.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/JsonStringDeSerializer.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleAvroProducer.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleJsonStringProducer.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/Generator.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/AvroSerializer.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/JsonStringSerializer.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerConfig.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerUtils.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/scala/monix/MonixTask.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/scala/monocle/OpticsExamples.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarConsumer.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarProducer.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarClient.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarConsumer.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarMessage.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarProducer.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/scala/pureconfig/Configs.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/scala/slick/Connection.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/scala/slick/Entities.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/main/scala-2/com/baeldung/scala/slick/SlickTables.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/test/resources/application-default.conf (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/test/resources/application.conf (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/test/resources/database.conf (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/test/resources/fs2data.txt (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/test/resources/http.conf (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/test/resources/logback-test.xml (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/test/resources/main.conf (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/test/resources/notification.conf (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/test/scala-2/com/baeldung/cache/GenericCacheUnitTest.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/test/scala-2/com/baeldung/cache/ScalaCacheAsyncUnitTest.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/test/scala-2/com/baeldung/cache/ScalaCacheCachingBlockUnitTest.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/test/scala-2/com/baeldung/cache/ScalaCacheCatsServiceUnitTest.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/test/scala-2/com/baeldung/cache/ScalaCacheSyncUnitTest.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/test/scala-2/com/baeldung/enumeratum/EnumeratumUnitTest.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/test/scala-2/com/baeldung/scala/async/ScalaAsyncTest.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/test/scala-2/com/baeldung/scala/monix/MonixTaskUnitTest.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/test/scala-2/com/baeldung/scala/monocle/OpticsExamplesUnitTest.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/test/scala-2/com/baeldung/scala/pureconfig/SampleConfigLoader.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/test/scala-2/com/baeldung/scala/shapeless/ShapelessUnitTest.scala (100%) rename {scala2-libraries => scala-2-modules/scala2-libraries}/src/test/scala-2/com/baeldung/scala/slick/PlayerServiceUnitTest.scala (100%) diff --git a/build.sbt b/build.sbt index 50d7542a0..de1cfe061 100644 --- a/build.sbt +++ b/build.sbt @@ -319,7 +319,7 @@ val scalazVersion = "7.3.8" val fs2Version = "3.9.4" val reactiveMongo = "1.1.0-RC12" -lazy val scala2_libraries = (project in file("scala2-libraries")) +lazy val scala2_libraries = (project in file("scala-2-modules/scala2-libraries")) .configs(IntegrationTest) .settings( name := "scala2-libraries", diff --git a/scala2-libraries/README.md b/scala-2-modules/scala2-libraries/README.md similarity index 100% rename from scala2-libraries/README.md rename to scala-2-modules/scala2-libraries/README.md diff --git a/scala2-libraries/src/finch/hello-world/build.sbt b/scala-2-modules/scala2-libraries/src/finch/hello-world/build.sbt similarity index 100% rename from scala2-libraries/src/finch/hello-world/build.sbt rename to scala-2-modules/scala2-libraries/src/finch/hello-world/build.sbt diff --git a/scala2-libraries/src/finch/hello-world/project/build.properties b/scala-2-modules/scala2-libraries/src/finch/hello-world/project/build.properties similarity index 100% rename from scala2-libraries/src/finch/hello-world/project/build.properties rename to scala-2-modules/scala2-libraries/src/finch/hello-world/project/build.properties diff --git a/scala2-libraries/src/finch/hello-world/src/main/scala/com/baeldung/finch/helloWorld/Main.scala b/scala-2-modules/scala2-libraries/src/finch/hello-world/src/main/scala/com/baeldung/finch/helloWorld/Main.scala similarity index 100% rename from scala2-libraries/src/finch/hello-world/src/main/scala/com/baeldung/finch/helloWorld/Main.scala rename to scala-2-modules/scala2-libraries/src/finch/hello-world/src/main/scala/com/baeldung/finch/helloWorld/Main.scala diff --git a/scala2-libraries/src/finch/todo/build.sbt b/scala-2-modules/scala2-libraries/src/finch/todo/build.sbt similarity index 100% rename from scala2-libraries/src/finch/todo/build.sbt rename to scala-2-modules/scala2-libraries/src/finch/todo/build.sbt diff --git a/scala2-libraries/src/finch/todo/project/build.properties b/scala-2-modules/scala2-libraries/src/finch/todo/project/build.properties similarity index 100% rename from scala2-libraries/src/finch/todo/project/build.properties rename to scala-2-modules/scala2-libraries/src/finch/todo/project/build.properties diff --git a/scala2-libraries/src/finch/todo/src/main/scala/com/baeldung/finch/todo/Main.scala b/scala-2-modules/scala2-libraries/src/finch/todo/src/main/scala/com/baeldung/finch/todo/Main.scala similarity index 100% rename from scala2-libraries/src/finch/todo/src/main/scala/com/baeldung/finch/todo/Main.scala rename to scala-2-modules/scala2-libraries/src/finch/todo/src/main/scala/com/baeldung/finch/todo/Main.scala diff --git a/scala2-libraries/src/finch/todo/src/main/scala/com/baeldung/finch/todo/models/Todo.scala b/scala-2-modules/scala2-libraries/src/finch/todo/src/main/scala/com/baeldung/finch/todo/models/Todo.scala similarity index 100% rename from scala2-libraries/src/finch/todo/src/main/scala/com/baeldung/finch/todo/models/Todo.scala rename to scala-2-modules/scala2-libraries/src/finch/todo/src/main/scala/com/baeldung/finch/todo/models/Todo.scala diff --git a/scala2-libraries/src/it/scala/com/baeldung/scala/pulsar4s/PulsarJsonSchemaManualTest.scala b/scala-2-modules/scala2-libraries/src/it/scala/com/baeldung/scala/pulsar4s/PulsarJsonSchemaManualTest.scala similarity index 100% rename from scala2-libraries/src/it/scala/com/baeldung/scala/pulsar4s/PulsarJsonSchemaManualTest.scala rename to scala-2-modules/scala2-libraries/src/it/scala/com/baeldung/scala/pulsar4s/PulsarJsonSchemaManualTest.scala diff --git a/scala2-libraries/src/it/scala/com/baeldung/scala/pulsar4s/PulsarStringSchemaManualTest.scala b/scala-2-modules/scala2-libraries/src/it/scala/com/baeldung/scala/pulsar4s/PulsarStringSchemaManualTest.scala similarity index 100% rename from scala2-libraries/src/it/scala/com/baeldung/scala/pulsar4s/PulsarStringSchemaManualTest.scala rename to scala-2-modules/scala2-libraries/src/it/scala/com/baeldung/scala/pulsar4s/PulsarStringSchemaManualTest.scala diff --git a/scala2-libraries/src/main/resources/application.conf b/scala-2-modules/scala2-libraries/src/main/resources/application.conf similarity index 100% rename from scala2-libraries/src/main/resources/application.conf rename to scala-2-modules/scala2-libraries/src/main/resources/application.conf diff --git a/scala2-libraries/src/main/resources/docker-compose.yml b/scala-2-modules/scala2-libraries/src/main/resources/docker-compose.yml similarity index 100% rename from scala2-libraries/src/main/resources/docker-compose.yml rename to scala-2-modules/scala2-libraries/src/main/resources/docker-compose.yml diff --git a/scala2-libraries/src/main/resources/kafka-intro-avro.conf b/scala-2-modules/scala2-libraries/src/main/resources/kafka-intro-avro.conf similarity index 100% rename from scala2-libraries/src/main/resources/kafka-intro-avro.conf rename to scala-2-modules/scala2-libraries/src/main/resources/kafka-intro-avro.conf diff --git a/scala2-libraries/src/main/resources/kafka-intro.conf b/scala-2-modules/scala2-libraries/src/main/resources/kafka-intro.conf similarity index 100% rename from scala2-libraries/src/main/resources/kafka-intro.conf rename to scala-2-modules/scala2-libraries/src/main/resources/kafka-intro.conf diff --git a/scala2-libraries/src/main/resources/log4j2.xml b/scala-2-modules/scala2-libraries/src/main/resources/log4j2.xml similarity index 100% rename from scala2-libraries/src/main/resources/log4j2.xml rename to scala-2-modules/scala2-libraries/src/main/resources/log4j2.xml diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/AsyncQueryMemoizeService.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/AsyncQueryMemoizeService.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/cache/service/AsyncQueryMemoizeService.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/AsyncQueryMemoizeService.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/CacheFlagService.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/CacheFlagService.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/cache/service/CacheFlagService.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/CacheFlagService.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/CaffeineCacheConfig.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/CaffeineCacheConfig.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/cache/service/CaffeineCacheConfig.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/CaffeineCacheConfig.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/CatsService.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/CatsService.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/cache/service/CatsService.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/CatsService.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/GenericCacheService.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/GenericCacheService.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/cache/service/GenericCacheService.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/GenericCacheService.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/Models.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/Models.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/cache/service/Models.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/Models.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/ScalaCacheCachingBlock.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/ScalaCacheCachingBlock.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/cache/service/ScalaCacheCachingBlock.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/ScalaCacheCachingBlock.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryCustomMemoizeKeyService.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryCustomMemoizeKeyService.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryCustomMemoizeKeyService.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryCustomMemoizeKeyService.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryMemoizeService.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryMemoizeService.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryMemoizeService.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryMemoizeService.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryService.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryService.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryService.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryService.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/enumeratum/Enums.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/enumeratum/Enums.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/enumeratum/Enums.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/enumeratum/Enums.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/common/Article.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/common/Article.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/common/Article.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/common/Article.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/common/ClientConfig.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/common/ClientConfig.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/common/ClientConfig.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/common/ClientConfig.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/common/SerdeConfig.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/common/SerdeConfig.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/common/SerdeConfig.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/common/SerdeConfig.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleAvroConsumer.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleAvroConsumer.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleAvroConsumer.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleAvroConsumer.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleJsonStringConsumer.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleJsonStringConsumer.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleJsonStringConsumer.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/ArticleJsonStringConsumer.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/AvroDeSerializer.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/AvroDeSerializer.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/AvroDeSerializer.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/AvroDeSerializer.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerConfig.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerConfig.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerConfig.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerConfig.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerUtils.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerUtils.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerUtils.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/ConsumerUtils.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/JsonStringDeSerializer.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/JsonStringDeSerializer.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/JsonStringDeSerializer.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/consumer/common/JsonStringDeSerializer.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleAvroProducer.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleAvroProducer.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleAvroProducer.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleAvroProducer.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleJsonStringProducer.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleJsonStringProducer.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleJsonStringProducer.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/ArticleJsonStringProducer.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/Generator.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/Generator.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/Generator.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/Generator.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/AvroSerializer.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/AvroSerializer.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/AvroSerializer.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/AvroSerializer.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/JsonStringSerializer.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/JsonStringSerializer.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/JsonStringSerializer.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/JsonStringSerializer.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerConfig.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerConfig.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerConfig.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerConfig.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerUtils.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerUtils.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerUtils.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/kafka/intro/producer/common/ProducerUtils.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/scala/monix/MonixTask.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/monix/MonixTask.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/scala/monix/MonixTask.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/monix/MonixTask.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/scala/monocle/OpticsExamples.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/monocle/OpticsExamples.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/scala/monocle/OpticsExamples.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/monocle/OpticsExamples.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarConsumer.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarConsumer.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarConsumer.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarConsumer.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarProducer.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarProducer.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarProducer.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/JsonPulsarProducer.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarClient.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarClient.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarClient.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarClient.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarConsumer.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarConsumer.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarConsumer.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarConsumer.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarMessage.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarMessage.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarMessage.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarMessage.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarProducer.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarProducer.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarProducer.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/pulsar4s/PulsarProducer.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/scala/pureconfig/Configs.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/pureconfig/Configs.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/scala/pureconfig/Configs.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/pureconfig/Configs.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/scala/slick/Connection.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/slick/Connection.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/scala/slick/Connection.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/slick/Connection.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/scala/slick/Entities.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/slick/Entities.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/scala/slick/Entities.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/slick/Entities.scala diff --git a/scala2-libraries/src/main/scala-2/com/baeldung/scala/slick/SlickTables.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/slick/SlickTables.scala similarity index 100% rename from scala2-libraries/src/main/scala-2/com/baeldung/scala/slick/SlickTables.scala rename to scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/slick/SlickTables.scala diff --git a/scala2-libraries/src/test/resources/application-default.conf b/scala-2-modules/scala2-libraries/src/test/resources/application-default.conf similarity index 100% rename from scala2-libraries/src/test/resources/application-default.conf rename to scala-2-modules/scala2-libraries/src/test/resources/application-default.conf diff --git a/scala2-libraries/src/test/resources/application.conf b/scala-2-modules/scala2-libraries/src/test/resources/application.conf similarity index 100% rename from scala2-libraries/src/test/resources/application.conf rename to scala-2-modules/scala2-libraries/src/test/resources/application.conf diff --git a/scala2-libraries/src/test/resources/database.conf b/scala-2-modules/scala2-libraries/src/test/resources/database.conf similarity index 100% rename from scala2-libraries/src/test/resources/database.conf rename to scala-2-modules/scala2-libraries/src/test/resources/database.conf diff --git a/scala2-libraries/src/test/resources/fs2data.txt b/scala-2-modules/scala2-libraries/src/test/resources/fs2data.txt similarity index 100% rename from scala2-libraries/src/test/resources/fs2data.txt rename to scala-2-modules/scala2-libraries/src/test/resources/fs2data.txt diff --git a/scala2-libraries/src/test/resources/http.conf b/scala-2-modules/scala2-libraries/src/test/resources/http.conf similarity index 100% rename from scala2-libraries/src/test/resources/http.conf rename to scala-2-modules/scala2-libraries/src/test/resources/http.conf diff --git a/scala2-libraries/src/test/resources/logback-test.xml b/scala-2-modules/scala2-libraries/src/test/resources/logback-test.xml similarity index 100% rename from scala2-libraries/src/test/resources/logback-test.xml rename to scala-2-modules/scala2-libraries/src/test/resources/logback-test.xml diff --git a/scala2-libraries/src/test/resources/main.conf b/scala-2-modules/scala2-libraries/src/test/resources/main.conf similarity index 100% rename from scala2-libraries/src/test/resources/main.conf rename to scala-2-modules/scala2-libraries/src/test/resources/main.conf diff --git a/scala2-libraries/src/test/resources/notification.conf b/scala-2-modules/scala2-libraries/src/test/resources/notification.conf similarity index 100% rename from scala2-libraries/src/test/resources/notification.conf rename to scala-2-modules/scala2-libraries/src/test/resources/notification.conf diff --git a/scala2-libraries/src/test/scala-2/com/baeldung/cache/GenericCacheUnitTest.scala b/scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/cache/GenericCacheUnitTest.scala similarity index 100% rename from scala2-libraries/src/test/scala-2/com/baeldung/cache/GenericCacheUnitTest.scala rename to scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/cache/GenericCacheUnitTest.scala diff --git a/scala2-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheAsyncUnitTest.scala b/scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheAsyncUnitTest.scala similarity index 100% rename from scala2-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheAsyncUnitTest.scala rename to scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheAsyncUnitTest.scala diff --git a/scala2-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheCachingBlockUnitTest.scala b/scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheCachingBlockUnitTest.scala similarity index 100% rename from scala2-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheCachingBlockUnitTest.scala rename to scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheCachingBlockUnitTest.scala diff --git a/scala2-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheCatsServiceUnitTest.scala b/scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheCatsServiceUnitTest.scala similarity index 100% rename from scala2-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheCatsServiceUnitTest.scala rename to scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheCatsServiceUnitTest.scala diff --git a/scala2-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheSyncUnitTest.scala b/scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheSyncUnitTest.scala similarity index 100% rename from scala2-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheSyncUnitTest.scala rename to scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/cache/ScalaCacheSyncUnitTest.scala diff --git a/scala2-libraries/src/test/scala-2/com/baeldung/enumeratum/EnumeratumUnitTest.scala b/scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/enumeratum/EnumeratumUnitTest.scala similarity index 100% rename from scala2-libraries/src/test/scala-2/com/baeldung/enumeratum/EnumeratumUnitTest.scala rename to scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/enumeratum/EnumeratumUnitTest.scala diff --git a/scala2-libraries/src/test/scala-2/com/baeldung/scala/async/ScalaAsyncTest.scala b/scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/async/ScalaAsyncTest.scala similarity index 100% rename from scala2-libraries/src/test/scala-2/com/baeldung/scala/async/ScalaAsyncTest.scala rename to scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/async/ScalaAsyncTest.scala diff --git a/scala2-libraries/src/test/scala-2/com/baeldung/scala/monix/MonixTaskUnitTest.scala b/scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/monix/MonixTaskUnitTest.scala similarity index 100% rename from scala2-libraries/src/test/scala-2/com/baeldung/scala/monix/MonixTaskUnitTest.scala rename to scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/monix/MonixTaskUnitTest.scala diff --git a/scala2-libraries/src/test/scala-2/com/baeldung/scala/monocle/OpticsExamplesUnitTest.scala b/scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/monocle/OpticsExamplesUnitTest.scala similarity index 100% rename from scala2-libraries/src/test/scala-2/com/baeldung/scala/monocle/OpticsExamplesUnitTest.scala rename to scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/monocle/OpticsExamplesUnitTest.scala diff --git a/scala2-libraries/src/test/scala-2/com/baeldung/scala/pureconfig/SampleConfigLoader.scala b/scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/pureconfig/SampleConfigLoader.scala similarity index 100% rename from scala2-libraries/src/test/scala-2/com/baeldung/scala/pureconfig/SampleConfigLoader.scala rename to scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/pureconfig/SampleConfigLoader.scala diff --git a/scala2-libraries/src/test/scala-2/com/baeldung/scala/shapeless/ShapelessUnitTest.scala b/scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/shapeless/ShapelessUnitTest.scala similarity index 100% rename from scala2-libraries/src/test/scala-2/com/baeldung/scala/shapeless/ShapelessUnitTest.scala rename to scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/shapeless/ShapelessUnitTest.scala diff --git a/scala2-libraries/src/test/scala-2/com/baeldung/scala/slick/PlayerServiceUnitTest.scala b/scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/slick/PlayerServiceUnitTest.scala similarity index 100% rename from scala2-libraries/src/test/scala-2/com/baeldung/scala/slick/PlayerServiceUnitTest.scala rename to scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/slick/PlayerServiceUnitTest.scala From c8b06daac14acd3dc6407f11f9a495cba4b0bcd5 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 27 Mar 2024 22:05:55 +0100 Subject: [PATCH 0461/1318] fix scalafmt --- .../com/baeldung/redis/cache/CacheThroughManualTest.scala | 5 ++++- .../test/scala/com/baeldung/redis/util/RedisManualTest.scala | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/cache/CacheThroughManualTest.scala b/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/cache/CacheThroughManualTest.scala index ed70574d8..84e1edfc1 100644 --- a/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/cache/CacheThroughManualTest.scala +++ b/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/cache/CacheThroughManualTest.scala @@ -6,7 +6,10 @@ import org.mockito.Mockito._ import org.scalatest.flatspec.AnyFlatSpec import org.scalatestplus.mockito.MockitoSugar -class CacheThroughManualTest extends AnyFlatSpec with RedisManualTest with MockitoSugar { +class CacheThroughManualTest + extends AnyFlatSpec + with RedisManualTest + with MockitoSugar { "CacheThrough" should "fetch from DB only the first time" in { val mockDb = mock[VirtualDatabase] diff --git a/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/util/RedisManualTest.scala b/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/util/RedisManualTest.scala index 8ff46d301..d260e5b88 100644 --- a/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/util/RedisManualTest.scala +++ b/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/util/RedisManualTest.scala @@ -3,7 +3,10 @@ package com.baeldung.redis.util import org.scalatest.{BeforeAndAfter, BeforeAndAfterEach, Suite} import redis.clients.jedis.args.FlushMode -trait RedisManualTest extends WithRedis with BeforeAndAfter with BeforeAndAfterEach { +trait RedisManualTest + extends WithRedis + with BeforeAndAfter + with BeforeAndAfterEach { this: Suite => From 58dba0ea29b9ff9e9d47a0f191ab81c0364ff5eb Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Thu, 28 Mar 2024 08:17:58 +0100 Subject: [PATCH 0462/1318] Moved redis to integration test --- build.sbt | 4 +++- .../scala/com/baeldung/redis/HelloRedisManualTest.scala | 0 .../com/baeldung/redis/cache/CacheThroughManualTest.scala | 0 .../com/baeldung/redis/geospatial/GeospatialManualTest.scala | 0 .../baeldung/redis/leaderboard/LeaderboardManualTest.scala | 0 .../com/baeldung/redis/ratelimit/RateLimitManualTest.scala | 0 .../scala/com/baeldung/redis/util/RedisManualTest.scala | 0 7 files changed, 3 insertions(+), 1 deletion(-) rename scala-libraries-standalone/redis-intro/src/{test => it}/scala/com/baeldung/redis/HelloRedisManualTest.scala (100%) rename scala-libraries-standalone/redis-intro/src/{test => it}/scala/com/baeldung/redis/cache/CacheThroughManualTest.scala (100%) rename scala-libraries-standalone/redis-intro/src/{test => it}/scala/com/baeldung/redis/geospatial/GeospatialManualTest.scala (100%) rename scala-libraries-standalone/redis-intro/src/{test => it}/scala/com/baeldung/redis/leaderboard/LeaderboardManualTest.scala (100%) rename scala-libraries-standalone/redis-intro/src/{test => it}/scala/com/baeldung/redis/ratelimit/RateLimitManualTest.scala (100%) rename scala-libraries-standalone/redis-intro/src/{test => it}/scala/com/baeldung/redis/util/RedisManualTest.scala (100%) diff --git a/build.sbt b/build.sbt index afa51e75f..1a70c0414 100644 --- a/build.sbt +++ b/build.sbt @@ -441,6 +441,7 @@ lazy val scala_libraries_os = (project in file("scala-libraries-os")) ) lazy val redis_intro = (project in file("scala-libraries-standalone/redis-intro")) + .configs(IntegrationTest) .settings( name := "redis-intro", scalaVersion := scala3Version, @@ -450,7 +451,8 @@ lazy val redis_intro = (project in file("scala-libraries-standalone/redis-intro" "redis.clients" % "jedis" % "4.3.1", "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.14.1", "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % Test - ) + ), + Defaults.itSettings ) lazy val tapir = (project in file("scala-libraries-standalone/tapir")) diff --git a/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/HelloRedisManualTest.scala b/scala-libraries-standalone/redis-intro/src/it/scala/com/baeldung/redis/HelloRedisManualTest.scala similarity index 100% rename from scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/HelloRedisManualTest.scala rename to scala-libraries-standalone/redis-intro/src/it/scala/com/baeldung/redis/HelloRedisManualTest.scala diff --git a/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/cache/CacheThroughManualTest.scala b/scala-libraries-standalone/redis-intro/src/it/scala/com/baeldung/redis/cache/CacheThroughManualTest.scala similarity index 100% rename from scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/cache/CacheThroughManualTest.scala rename to scala-libraries-standalone/redis-intro/src/it/scala/com/baeldung/redis/cache/CacheThroughManualTest.scala diff --git a/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/geospatial/GeospatialManualTest.scala b/scala-libraries-standalone/redis-intro/src/it/scala/com/baeldung/redis/geospatial/GeospatialManualTest.scala similarity index 100% rename from scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/geospatial/GeospatialManualTest.scala rename to scala-libraries-standalone/redis-intro/src/it/scala/com/baeldung/redis/geospatial/GeospatialManualTest.scala diff --git a/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/leaderboard/LeaderboardManualTest.scala b/scala-libraries-standalone/redis-intro/src/it/scala/com/baeldung/redis/leaderboard/LeaderboardManualTest.scala similarity index 100% rename from scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/leaderboard/LeaderboardManualTest.scala rename to scala-libraries-standalone/redis-intro/src/it/scala/com/baeldung/redis/leaderboard/LeaderboardManualTest.scala diff --git a/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/ratelimit/RateLimitManualTest.scala b/scala-libraries-standalone/redis-intro/src/it/scala/com/baeldung/redis/ratelimit/RateLimitManualTest.scala similarity index 100% rename from scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/ratelimit/RateLimitManualTest.scala rename to scala-libraries-standalone/redis-intro/src/it/scala/com/baeldung/redis/ratelimit/RateLimitManualTest.scala diff --git a/scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/util/RedisManualTest.scala b/scala-libraries-standalone/redis-intro/src/it/scala/com/baeldung/redis/util/RedisManualTest.scala similarity index 100% rename from scala-libraries-standalone/redis-intro/src/test/scala/com/baeldung/redis/util/RedisManualTest.scala rename to scala-libraries-standalone/redis-intro/src/it/scala/com/baeldung/redis/util/RedisManualTest.scala From e3490aab2cf7019712e7e3ac5243792617697500 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Thu, 28 Mar 2024 08:46:33 +0100 Subject: [PATCH 0463/1318] Moved redis to integration test --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 1a70c0414..551a54a82 100644 --- a/build.sbt +++ b/build.sbt @@ -450,7 +450,7 @@ lazy val redis_intro = (project in file("scala-libraries-standalone/redis-intro" libraryDependencies ++= Seq( "redis.clients" % "jedis" % "4.3.1", "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.14.1", - "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % Test + "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % "it" ), Defaults.itSettings ) From 330c6f0f89f6d276cd6210b9be4e3bbd1013fd6f Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Thu, 28 Mar 2024 18:08:37 +0100 Subject: [PATCH 0464/1318] Corrected the readme --- build.sbt | 8 -------- scala-akka-3/README.md | 2 -- scala-libraries-config/README.md | 3 --- scala-libraries-fp/README.md | 6 ------ scala-libraries-persistence/README.md | 6 ++---- scala-libraries-testing/README.md | 5 +---- 6 files changed, 3 insertions(+), 27 deletions(-) diff --git a/build.sbt b/build.sbt index 551a54a82..48758f2e7 100644 --- a/build.sbt +++ b/build.sbt @@ -653,14 +653,6 @@ val doobieVersion = "1.0.0-RC2" val doobiePGDep = "org.tpolecat" %% "doobie-postgres" % doobieVersion val doobieCore = "org.tpolecat" %% "doobie-core" % doobieVersion -lazy val doobie = (project in file("doobie")) - .settings( - name := "doobie", - scalaVersion := scala3Version, - libraryDependencies += doobieCore, - libraryDependencies += doobiePGDep - ) - // Scala Native Project is disabled as it needs clang to installed in the target machine. // To test the scala-native code, install clang and then uncomment this build // lazy val scala_native = (project in file("scala-native")) diff --git a/scala-akka-3/README.md b/scala-akka-3/README.md index 16a64aaa5..0336ab1c3 100644 --- a/scala-akka-3/README.md +++ b/scala-akka-3/README.md @@ -1,6 +1,4 @@ ### Relevant Articles - [Testing Akka Streams](https://www.baeldung.com/scala/akka-streams-tests) -//from scala-libraries - [Actor Lifecycle in Akka](https://www.baeldung.com/scala/akka-actor-lifecycle) -//from scala-libraries-2 - [Testing Akka Actors](https://www.baeldung.com/scala/testing-akka-actors) diff --git a/scala-libraries-config/README.md b/scala-libraries-config/README.md index 62e28b58a..59809077a 100644 --- a/scala-libraries-config/README.md +++ b/scala-libraries-config/README.md @@ -1,8 +1,5 @@ ### Relevant Articles: -//from scala-libraries-3 - [Introduction to Lightbend Config](https://www.baeldung.com/scala/lightbend-config) -//from scala3-libraries - [Scala App Configurations With Clarity Using ClearConfig](https://www.baeldung.com/scala/clearconfig) -//from scala-libraries-6 - [Handling YAML in Scala 3](https://www.baeldung.com/scala/yaml-scala-3) \ No newline at end of file diff --git a/scala-libraries-fp/README.md b/scala-libraries-fp/README.md index b84b2acd9..d68642919 100644 --- a/scala-libraries-fp/README.md +++ b/scala-libraries-fp/README.md @@ -1,16 +1,10 @@ ### Relevant Articles: -//from scala libraries - [Scala – Introduction to Cats](https://www.baeldung.com/scala/cats-intro) - [Introduction to FS2: Functional Streams for Scala](https://www.baeldung.com/scala/fs2-functional-streams) -//from scala-libraries-3 - [Introduction to http4s](https://www.baeldung.com/scala/http4s-intro) -//from scala-libraries-4 - [Writer Monad in Cats](https://www.baeldung.com/scala/writer-monad-in-cats) -//from scala3-libraries - [Data Validation With Cats](https://www.baeldung.com/scala/cats-data-validation) -//from scala-libraries - [Introduction to Scalaz](https://www.baeldung.com/scala/scalaz-intro) - [The Principles Behind Scalaz](https://www.baeldung.com/scala/scalaz-principles) -//from scala-libraries-5 - [Introduction to Spire](https://www.baeldung.com/scala/spire-intro) diff --git a/scala-libraries-persistence/README.md b/scala-libraries-persistence/README.md index edcb911b3..0cf53191d 100644 --- a/scala-libraries-persistence/README.md +++ b/scala-libraries-persistence/README.md @@ -1,8 +1,6 @@ -//from scala-libraries +### Relevant Articles: + - [Introduction to Slick](https://www.baeldung.com/scala/slick-intro) -//from scala-libraries-4 - [Introduction to Skunk – Scala Driver for PostgreSQL](https://www.baeldung.com/scala/skunk-postgresql-driver) -//from scala3-libraries - [Introduction to doobie – a JDBC Layer for Scala](https://www.baeldung.com/scala/doobie-intro) -//from scala-libraries - [Introduction to Reactive Mongo](https://www.baeldung.com/scala/mongo-reactive-intro) \ No newline at end of file diff --git a/scala-libraries-testing/README.md b/scala-libraries-testing/README.md index e0cf41096..b66635f35 100644 --- a/scala-libraries-testing/README.md +++ b/scala-libraries-testing/README.md @@ -1,10 +1,7 @@ +### Relevant Articles: -//from scala-libraries-2 - [Introduction to ScalaCheck](https://www.baeldung.com/scala/scalacheck) -//from scala-libraries-3 - [Introduction to ScalaMock](https://www.baeldung.com/scala/scalamock) -//from scala-libraries-4 - [Introduction to uTest](https://www.baeldung.com/scala/utest-intro) -//from scala3-libraries - [Introduction to MUnit](https://www.baeldung.com/scala/munit-introduction) - [Making Integration Testing Easier With TestContainers-scala](https://www.baeldung.com/scala/testcontainers-scala) From b27bb3b0e7589c22ddee720ee794e644462772aa Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 29 Mar 2024 10:00:51 +0100 Subject: [PATCH 0465/1318] Use a random port for mongo test to avoid conflict --- .../baeldung/scala/reactivemongo/ReactiveMongoUnitTest.scala | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scala-libraries-persistence/src/test/scala/com/baeldung/scala/reactivemongo/ReactiveMongoUnitTest.scala b/scala-libraries-persistence/src/test/scala/com/baeldung/scala/reactivemongo/ReactiveMongoUnitTest.scala index 92ceca509..91227686f 100644 --- a/scala-libraries-persistence/src/test/scala/com/baeldung/scala/reactivemongo/ReactiveMongoUnitTest.scala +++ b/scala-libraries-persistence/src/test/scala/com/baeldung/scala/reactivemongo/ReactiveMongoUnitTest.scala @@ -16,13 +16,16 @@ import reactivemongo.api.Cursor import reactivemongo.api.bson.BSONDocument import reactivemongo.api.bson.collection.BSONCollection +import java.net.ServerSocket + class ReactiveMongoUnitTest extends AsyncWordSpec with Matchers with BeforeAndAfterAll with BeforeAndAfterEach { - val PORT = 27079 + private val serverSocket = new ServerSocket(0) + val PORT: Int = serverSocket.getLocalPort val IP = "localhost" val mongodInstance: ImmutableMongod = Mongod From 2f182076242b81b8267baece1ffb384490ad3623 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 29 Mar 2024 11:30:20 +0100 Subject: [PATCH 0466/1318] Revert "Use a random port for mongo test to avoid conflict" --- .../baeldung/scala/reactivemongo/ReactiveMongoUnitTest.scala | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/scala-libraries-persistence/src/test/scala/com/baeldung/scala/reactivemongo/ReactiveMongoUnitTest.scala b/scala-libraries-persistence/src/test/scala/com/baeldung/scala/reactivemongo/ReactiveMongoUnitTest.scala index 91227686f..92ceca509 100644 --- a/scala-libraries-persistence/src/test/scala/com/baeldung/scala/reactivemongo/ReactiveMongoUnitTest.scala +++ b/scala-libraries-persistence/src/test/scala/com/baeldung/scala/reactivemongo/ReactiveMongoUnitTest.scala @@ -16,16 +16,13 @@ import reactivemongo.api.Cursor import reactivemongo.api.bson.BSONDocument import reactivemongo.api.bson.collection.BSONCollection -import java.net.ServerSocket - class ReactiveMongoUnitTest extends AsyncWordSpec with Matchers with BeforeAndAfterAll with BeforeAndAfterEach { - private val serverSocket = new ServerSocket(0) - val PORT: Int = serverSocket.getLocalPort + val PORT = 27079 val IP = "localhost" val mongodInstance: ImmutableMongod = Mongod From 87319f36c365595704317883183424b376b43351 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 30 Mar 2024 00:14:12 +0000 Subject: [PATCH 0467/1318] Update fs2-core, fs2-io from 3.10.0 to 3.10.2 --- build.sbt | 128 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 66 insertions(+), 62 deletions(-) diff --git a/build.sbt b/build.sbt index 48758f2e7..a7b33d804 100644 --- a/build.sbt +++ b/build.sbt @@ -317,54 +317,56 @@ val monocleVersion = "2.1.0" val slickVersion = "3.5.0" val shapelessVersion = "2.3.10" val scalazVersion = "7.3.8" -val fs2Version = "3.10.0" +val fs2Version = "3.10.2" val reactiveMongo = "1.1.0-RC12" -lazy val scala2_libraries = (project in file("scala-2-modules/scala2-libraries")) - .configs(IntegrationTest) - .settings( - name := "scala2-libraries", - scalaVersion := scalaV, - libraryDependencies ++= scalaTestDeps.map(_.withConfigurations(Some("it,test"))), - resolvers += "Kafka avro serializer" at "https://packages.confluent.io/maven", - libraryDependencies ++= Seq( - "com.github.julien-truffaut" %% "monocle-core" % monocleVersion, - "com.github.julien-truffaut" %% "monocle-macro" % monocleVersion, - "com.github.julien-truffaut" %% "monocle-law" % monocleVersion % "test", - "com.chuusai" %% "shapeless" % shapelessVersion, - "junit" % "junit" % "4.13.2" % Test, - logback % Test, - akkaActorTyped, - akkaStreamDep, - "com.github.cb372" %% "scalacache-core" % "0.28.0", - "com.github.cb372" %% "scalacache-guava" % "0.28.0", - "com.github.cb372" %% "scalacache-cats-effect" % "0.28.0", - "com.github.cb372" %% "scalacache-caffeine" % "0.28.0", - enumeratumDep, - "io.monix" %% "monix" % monixVersion, - pureConfigDep, - "com.github.pureconfig" %% "pureconfig-enumeratum" % "0.17.6", - "com.typesafe" % "config" % "1.4.3", - "org.scala-lang.modules" %% "scala-async" % "1.0.1", - "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.9.1", - "com.clever-cloud.pulsar4s" %% "pulsar4s-jackson" % "2.9.1", - "org.testcontainers" % "pulsar" % "1.19.7" % IntegrationTest, - "org.apache.kafka" % "kafka-clients" % kafkaVersion, - "com.fasterxml.jackson.core" % "jackson-databind" % jackSonVersion, - "com.fasterxml.jackson.datatype" % "jackson-datatype-jsr310" % jackSonVersion, - "com.fasterxml.jackson.module" %% "jackson-module-scala" % jackSonVersion, - "com.sksamuel.avro4s" %% "avro4s-core" % avro4sVersion, - "io.confluent" % "kafka-avro-serializer" % kafkaAvroSerializer, - log4jApiScalaDep, - "org.apache.logging.log4j" % "log4j-core" % log4jVersion % Runtime - ), - libraryDependencies ++= Seq( - "com.typesafe.slick" %% "slick" % slickVersion, - "com.h2database" % "h2" % "2.2.224" - ), - scalacOptions += "-Xasync", - Defaults.itSettings - ) +lazy val scala2_libraries = + (project in file("scala-2-modules/scala2-libraries")) + .configs(IntegrationTest) + .settings( + name := "scala2-libraries", + scalaVersion := scalaV, + libraryDependencies ++= scalaTestDeps + .map(_.withConfigurations(Some("it,test"))), + resolvers += "Kafka avro serializer" at "https://packages.confluent.io/maven", + libraryDependencies ++= Seq( + "com.github.julien-truffaut" %% "monocle-core" % monocleVersion, + "com.github.julien-truffaut" %% "monocle-macro" % monocleVersion, + "com.github.julien-truffaut" %% "monocle-law" % monocleVersion % "test", + "com.chuusai" %% "shapeless" % shapelessVersion, + "junit" % "junit" % "4.13.2" % Test, + logback % Test, + akkaActorTyped, + akkaStreamDep, + "com.github.cb372" %% "scalacache-core" % "0.28.0", + "com.github.cb372" %% "scalacache-guava" % "0.28.0", + "com.github.cb372" %% "scalacache-cats-effect" % "0.28.0", + "com.github.cb372" %% "scalacache-caffeine" % "0.28.0", + enumeratumDep, + "io.monix" %% "monix" % monixVersion, + pureConfigDep, + "com.github.pureconfig" %% "pureconfig-enumeratum" % "0.17.6", + "com.typesafe" % "config" % "1.4.3", + "org.scala-lang.modules" %% "scala-async" % "1.0.1", + "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.9.1", + "com.clever-cloud.pulsar4s" %% "pulsar4s-jackson" % "2.9.1", + "org.testcontainers" % "pulsar" % "1.19.7" % IntegrationTest, + "org.apache.kafka" % "kafka-clients" % kafkaVersion, + "com.fasterxml.jackson.core" % "jackson-databind" % jackSonVersion, + "com.fasterxml.jackson.datatype" % "jackson-datatype-jsr310" % jackSonVersion, + "com.fasterxml.jackson.module" %% "jackson-module-scala" % jackSonVersion, + "com.sksamuel.avro4s" %% "avro4s-core" % avro4sVersion, + "io.confluent" % "kafka-avro-serializer" % kafkaAvroSerializer, + log4jApiScalaDep, + "org.apache.logging.log4j" % "log4j-core" % log4jVersion % Runtime + ), + libraryDependencies ++= Seq( + "com.typesafe.slick" %% "slick" % slickVersion, + "com.h2database" % "h2" % "2.2.224" + ), + scalacOptions += "-Xasync", + Defaults.itSettings + ) val circeVersion = "0.14.6" val monixVersion = "3.4.1" @@ -440,20 +442,21 @@ lazy val scala_libraries_os = (project in file("scala-libraries-os")) libraryDependencies += osLibDep ) -lazy val redis_intro = (project in file("scala-libraries-standalone/redis-intro")) - .configs(IntegrationTest) - .settings( - name := "redis-intro", - scalaVersion := scala3Version, - libraryDependencies ++= scalaTestDeps - .map(_.withConfigurations(Some("it,test"))), - libraryDependencies ++= Seq( - "redis.clients" % "jedis" % "4.3.1", - "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.14.1", - "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % "it" - ), - Defaults.itSettings - ) +lazy val redis_intro = + (project in file("scala-libraries-standalone/redis-intro")) + .configs(IntegrationTest) + .settings( + name := "redis-intro", + scalaVersion := scala3Version, + libraryDependencies ++= scalaTestDeps + .map(_.withConfigurations(Some("it,test"))), + libraryDependencies ++= Seq( + "redis.clients" % "jedis" % "4.3.1", + "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.14.1", + "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % "it" + ), + Defaults.itSettings + ) lazy val tapir = (project in file("scala-libraries-standalone/tapir")) .settings( @@ -488,7 +491,7 @@ lazy val scala_libraries_fp = (project in file("scala-libraries-fp")) "org.typelevel" %% "cats-effect-testing-scalatest" % "1.5.0" % Test, "org.scalaz" %% "scalaz-core" % scalazVersion, "junit" % "junit" % "4.13.2" % Test, - "org.typelevel" %% "spire" % spireVersion, + "org.typelevel" %% "spire" % spireVersion ) ) @@ -498,7 +501,8 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) name := "scala-libraries-testing", scalaVersion := scala3Version, testFrameworks += new TestFramework("utest.runner.Framework"), - libraryDependencies ++= scalaTestDeps.map(_.withConfigurations(Some("it,test"))), + libraryDependencies ++= scalaTestDeps + .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( "org.scalacheck" %% "scalacheck" % "1.17.0" % Test, scalaMock, From f63a3deac035e832c497093d9988ebd5029f1c40 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 30 Mar 2024 00:14:25 +0000 Subject: [PATCH 0468/1318] Update aws-java-sdk-s3 from 1.12.685 to 1.12.691 --- build.sbt | 128 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 66 insertions(+), 62 deletions(-) diff --git a/build.sbt b/build.sbt index 48758f2e7..1f45eafb9 100644 --- a/build.sbt +++ b/build.sbt @@ -320,51 +320,53 @@ val scalazVersion = "7.3.8" val fs2Version = "3.10.0" val reactiveMongo = "1.1.0-RC12" -lazy val scala2_libraries = (project in file("scala-2-modules/scala2-libraries")) - .configs(IntegrationTest) - .settings( - name := "scala2-libraries", - scalaVersion := scalaV, - libraryDependencies ++= scalaTestDeps.map(_.withConfigurations(Some("it,test"))), - resolvers += "Kafka avro serializer" at "https://packages.confluent.io/maven", - libraryDependencies ++= Seq( - "com.github.julien-truffaut" %% "monocle-core" % monocleVersion, - "com.github.julien-truffaut" %% "monocle-macro" % monocleVersion, - "com.github.julien-truffaut" %% "monocle-law" % monocleVersion % "test", - "com.chuusai" %% "shapeless" % shapelessVersion, - "junit" % "junit" % "4.13.2" % Test, - logback % Test, - akkaActorTyped, - akkaStreamDep, - "com.github.cb372" %% "scalacache-core" % "0.28.0", - "com.github.cb372" %% "scalacache-guava" % "0.28.0", - "com.github.cb372" %% "scalacache-cats-effect" % "0.28.0", - "com.github.cb372" %% "scalacache-caffeine" % "0.28.0", - enumeratumDep, - "io.monix" %% "monix" % monixVersion, - pureConfigDep, - "com.github.pureconfig" %% "pureconfig-enumeratum" % "0.17.6", - "com.typesafe" % "config" % "1.4.3", - "org.scala-lang.modules" %% "scala-async" % "1.0.1", - "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.9.1", - "com.clever-cloud.pulsar4s" %% "pulsar4s-jackson" % "2.9.1", - "org.testcontainers" % "pulsar" % "1.19.7" % IntegrationTest, - "org.apache.kafka" % "kafka-clients" % kafkaVersion, - "com.fasterxml.jackson.core" % "jackson-databind" % jackSonVersion, - "com.fasterxml.jackson.datatype" % "jackson-datatype-jsr310" % jackSonVersion, - "com.fasterxml.jackson.module" %% "jackson-module-scala" % jackSonVersion, - "com.sksamuel.avro4s" %% "avro4s-core" % avro4sVersion, - "io.confluent" % "kafka-avro-serializer" % kafkaAvroSerializer, - log4jApiScalaDep, - "org.apache.logging.log4j" % "log4j-core" % log4jVersion % Runtime - ), - libraryDependencies ++= Seq( - "com.typesafe.slick" %% "slick" % slickVersion, - "com.h2database" % "h2" % "2.2.224" - ), - scalacOptions += "-Xasync", - Defaults.itSettings - ) +lazy val scala2_libraries = + (project in file("scala-2-modules/scala2-libraries")) + .configs(IntegrationTest) + .settings( + name := "scala2-libraries", + scalaVersion := scalaV, + libraryDependencies ++= scalaTestDeps + .map(_.withConfigurations(Some("it,test"))), + resolvers += "Kafka avro serializer" at "https://packages.confluent.io/maven", + libraryDependencies ++= Seq( + "com.github.julien-truffaut" %% "monocle-core" % monocleVersion, + "com.github.julien-truffaut" %% "monocle-macro" % monocleVersion, + "com.github.julien-truffaut" %% "monocle-law" % monocleVersion % "test", + "com.chuusai" %% "shapeless" % shapelessVersion, + "junit" % "junit" % "4.13.2" % Test, + logback % Test, + akkaActorTyped, + akkaStreamDep, + "com.github.cb372" %% "scalacache-core" % "0.28.0", + "com.github.cb372" %% "scalacache-guava" % "0.28.0", + "com.github.cb372" %% "scalacache-cats-effect" % "0.28.0", + "com.github.cb372" %% "scalacache-caffeine" % "0.28.0", + enumeratumDep, + "io.monix" %% "monix" % monixVersion, + pureConfigDep, + "com.github.pureconfig" %% "pureconfig-enumeratum" % "0.17.6", + "com.typesafe" % "config" % "1.4.3", + "org.scala-lang.modules" %% "scala-async" % "1.0.1", + "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.9.1", + "com.clever-cloud.pulsar4s" %% "pulsar4s-jackson" % "2.9.1", + "org.testcontainers" % "pulsar" % "1.19.7" % IntegrationTest, + "org.apache.kafka" % "kafka-clients" % kafkaVersion, + "com.fasterxml.jackson.core" % "jackson-databind" % jackSonVersion, + "com.fasterxml.jackson.datatype" % "jackson-datatype-jsr310" % jackSonVersion, + "com.fasterxml.jackson.module" %% "jackson-module-scala" % jackSonVersion, + "com.sksamuel.avro4s" %% "avro4s-core" % avro4sVersion, + "io.confluent" % "kafka-avro-serializer" % kafkaAvroSerializer, + log4jApiScalaDep, + "org.apache.logging.log4j" % "log4j-core" % log4jVersion % Runtime + ), + libraryDependencies ++= Seq( + "com.typesafe.slick" %% "slick" % slickVersion, + "com.h2database" % "h2" % "2.2.224" + ), + scalacOptions += "-Xasync", + Defaults.itSettings + ) val circeVersion = "0.14.6" val monixVersion = "3.4.1" @@ -440,20 +442,21 @@ lazy val scala_libraries_os = (project in file("scala-libraries-os")) libraryDependencies += osLibDep ) -lazy val redis_intro = (project in file("scala-libraries-standalone/redis-intro")) - .configs(IntegrationTest) - .settings( - name := "redis-intro", - scalaVersion := scala3Version, - libraryDependencies ++= scalaTestDeps - .map(_.withConfigurations(Some("it,test"))), - libraryDependencies ++= Seq( - "redis.clients" % "jedis" % "4.3.1", - "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.14.1", - "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % "it" - ), - Defaults.itSettings - ) +lazy val redis_intro = + (project in file("scala-libraries-standalone/redis-intro")) + .configs(IntegrationTest) + .settings( + name := "redis-intro", + scalaVersion := scala3Version, + libraryDependencies ++= scalaTestDeps + .map(_.withConfigurations(Some("it,test"))), + libraryDependencies ++= Seq( + "redis.clients" % "jedis" % "4.3.1", + "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.14.1", + "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % "it" + ), + Defaults.itSettings + ) lazy val tapir = (project in file("scala-libraries-standalone/tapir")) .settings( @@ -488,7 +491,7 @@ lazy val scala_libraries_fp = (project in file("scala-libraries-fp")) "org.typelevel" %% "cats-effect-testing-scalatest" % "1.5.0" % Test, "org.scalaz" %% "scalaz-core" % scalazVersion, "junit" % "junit" % "4.13.2" % Test, - "org.typelevel" %% "spire" % spireVersion, + "org.typelevel" %% "spire" % spireVersion ) ) @@ -498,13 +501,14 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) name := "scala-libraries-testing", scalaVersion := scala3Version, testFrameworks += new TestFramework("utest.runner.Framework"), - libraryDependencies ++= scalaTestDeps.map(_.withConfigurations(Some("it,test"))), + libraryDependencies ++= scalaTestDeps + .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( "org.scalacheck" %% "scalacheck" % "1.17.0" % Test, scalaMock, "com.lihaoyi" %% "utest" % "0.8.2" % "test", munitDep, - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.685" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.691" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.25.15" From 2b7fbd7e8977b8ad59de87c7ad6e48491b30b456 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 30 Mar 2024 00:14:48 +0000 Subject: [PATCH 0469/1318] Update tapir-akka-http-server, tapir-core, ... from 1.0.3 to 1.0.6 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index d074e5e81..5e28a1866 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.0.3" +val tapirV = "1.0.6" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From 736eeec00bf9f7954a172694fa92194070bf477a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 30 Mar 2024 00:15:06 +0000 Subject: [PATCH 0470/1318] Update jedis from 4.3.1 to 4.3.2 --- build.sbt | 126 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 65 insertions(+), 61 deletions(-) diff --git a/build.sbt b/build.sbt index 48758f2e7..4cd582918 100644 --- a/build.sbt +++ b/build.sbt @@ -320,51 +320,53 @@ val scalazVersion = "7.3.8" val fs2Version = "3.10.0" val reactiveMongo = "1.1.0-RC12" -lazy val scala2_libraries = (project in file("scala-2-modules/scala2-libraries")) - .configs(IntegrationTest) - .settings( - name := "scala2-libraries", - scalaVersion := scalaV, - libraryDependencies ++= scalaTestDeps.map(_.withConfigurations(Some("it,test"))), - resolvers += "Kafka avro serializer" at "https://packages.confluent.io/maven", - libraryDependencies ++= Seq( - "com.github.julien-truffaut" %% "monocle-core" % monocleVersion, - "com.github.julien-truffaut" %% "monocle-macro" % monocleVersion, - "com.github.julien-truffaut" %% "monocle-law" % monocleVersion % "test", - "com.chuusai" %% "shapeless" % shapelessVersion, - "junit" % "junit" % "4.13.2" % Test, - logback % Test, - akkaActorTyped, - akkaStreamDep, - "com.github.cb372" %% "scalacache-core" % "0.28.0", - "com.github.cb372" %% "scalacache-guava" % "0.28.0", - "com.github.cb372" %% "scalacache-cats-effect" % "0.28.0", - "com.github.cb372" %% "scalacache-caffeine" % "0.28.0", - enumeratumDep, - "io.monix" %% "monix" % monixVersion, - pureConfigDep, - "com.github.pureconfig" %% "pureconfig-enumeratum" % "0.17.6", - "com.typesafe" % "config" % "1.4.3", - "org.scala-lang.modules" %% "scala-async" % "1.0.1", - "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.9.1", - "com.clever-cloud.pulsar4s" %% "pulsar4s-jackson" % "2.9.1", - "org.testcontainers" % "pulsar" % "1.19.7" % IntegrationTest, - "org.apache.kafka" % "kafka-clients" % kafkaVersion, - "com.fasterxml.jackson.core" % "jackson-databind" % jackSonVersion, - "com.fasterxml.jackson.datatype" % "jackson-datatype-jsr310" % jackSonVersion, - "com.fasterxml.jackson.module" %% "jackson-module-scala" % jackSonVersion, - "com.sksamuel.avro4s" %% "avro4s-core" % avro4sVersion, - "io.confluent" % "kafka-avro-serializer" % kafkaAvroSerializer, - log4jApiScalaDep, - "org.apache.logging.log4j" % "log4j-core" % log4jVersion % Runtime - ), - libraryDependencies ++= Seq( - "com.typesafe.slick" %% "slick" % slickVersion, - "com.h2database" % "h2" % "2.2.224" - ), - scalacOptions += "-Xasync", - Defaults.itSettings - ) +lazy val scala2_libraries = + (project in file("scala-2-modules/scala2-libraries")) + .configs(IntegrationTest) + .settings( + name := "scala2-libraries", + scalaVersion := scalaV, + libraryDependencies ++= scalaTestDeps + .map(_.withConfigurations(Some("it,test"))), + resolvers += "Kafka avro serializer" at "https://packages.confluent.io/maven", + libraryDependencies ++= Seq( + "com.github.julien-truffaut" %% "monocle-core" % monocleVersion, + "com.github.julien-truffaut" %% "monocle-macro" % monocleVersion, + "com.github.julien-truffaut" %% "monocle-law" % monocleVersion % "test", + "com.chuusai" %% "shapeless" % shapelessVersion, + "junit" % "junit" % "4.13.2" % Test, + logback % Test, + akkaActorTyped, + akkaStreamDep, + "com.github.cb372" %% "scalacache-core" % "0.28.0", + "com.github.cb372" %% "scalacache-guava" % "0.28.0", + "com.github.cb372" %% "scalacache-cats-effect" % "0.28.0", + "com.github.cb372" %% "scalacache-caffeine" % "0.28.0", + enumeratumDep, + "io.monix" %% "monix" % monixVersion, + pureConfigDep, + "com.github.pureconfig" %% "pureconfig-enumeratum" % "0.17.6", + "com.typesafe" % "config" % "1.4.3", + "org.scala-lang.modules" %% "scala-async" % "1.0.1", + "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.9.1", + "com.clever-cloud.pulsar4s" %% "pulsar4s-jackson" % "2.9.1", + "org.testcontainers" % "pulsar" % "1.19.7" % IntegrationTest, + "org.apache.kafka" % "kafka-clients" % kafkaVersion, + "com.fasterxml.jackson.core" % "jackson-databind" % jackSonVersion, + "com.fasterxml.jackson.datatype" % "jackson-datatype-jsr310" % jackSonVersion, + "com.fasterxml.jackson.module" %% "jackson-module-scala" % jackSonVersion, + "com.sksamuel.avro4s" %% "avro4s-core" % avro4sVersion, + "io.confluent" % "kafka-avro-serializer" % kafkaAvroSerializer, + log4jApiScalaDep, + "org.apache.logging.log4j" % "log4j-core" % log4jVersion % Runtime + ), + libraryDependencies ++= Seq( + "com.typesafe.slick" %% "slick" % slickVersion, + "com.h2database" % "h2" % "2.2.224" + ), + scalacOptions += "-Xasync", + Defaults.itSettings + ) val circeVersion = "0.14.6" val monixVersion = "3.4.1" @@ -440,20 +442,21 @@ lazy val scala_libraries_os = (project in file("scala-libraries-os")) libraryDependencies += osLibDep ) -lazy val redis_intro = (project in file("scala-libraries-standalone/redis-intro")) - .configs(IntegrationTest) - .settings( - name := "redis-intro", - scalaVersion := scala3Version, - libraryDependencies ++= scalaTestDeps - .map(_.withConfigurations(Some("it,test"))), - libraryDependencies ++= Seq( - "redis.clients" % "jedis" % "4.3.1", - "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.14.1", - "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % "it" - ), - Defaults.itSettings - ) +lazy val redis_intro = + (project in file("scala-libraries-standalone/redis-intro")) + .configs(IntegrationTest) + .settings( + name := "redis-intro", + scalaVersion := scala3Version, + libraryDependencies ++= scalaTestDeps + .map(_.withConfigurations(Some("it,test"))), + libraryDependencies ++= Seq( + "redis.clients" % "jedis" % "4.3.2", + "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.14.1", + "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % "it" + ), + Defaults.itSettings + ) lazy val tapir = (project in file("scala-libraries-standalone/tapir")) .settings( @@ -488,7 +491,7 @@ lazy val scala_libraries_fp = (project in file("scala-libraries-fp")) "org.typelevel" %% "cats-effect-testing-scalatest" % "1.5.0" % Test, "org.scalaz" %% "scalaz-core" % scalazVersion, "junit" % "junit" % "4.13.2" % Test, - "org.typelevel" %% "spire" % spireVersion, + "org.typelevel" %% "spire" % spireVersion ) ) @@ -498,7 +501,8 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) name := "scala-libraries-testing", scalaVersion := scala3Version, testFrameworks += new TestFramework("utest.runner.Framework"), - libraryDependencies ++= scalaTestDeps.map(_.withConfigurations(Some("it,test"))), + libraryDependencies ++= scalaTestDeps + .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( "org.scalacheck" %% "scalacheck" % "1.17.0" % Test, scalaMock, From 7f2ecc69db605fc72b20dae41209bc7a833851d8 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 30 Mar 2024 00:15:20 +0000 Subject: [PATCH 0471/1318] Update s3 from 2.25.15 to 2.25.21 --- build.sbt | 128 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 66 insertions(+), 62 deletions(-) diff --git a/build.sbt b/build.sbt index 48758f2e7..4aa4bb2a6 100644 --- a/build.sbt +++ b/build.sbt @@ -320,51 +320,53 @@ val scalazVersion = "7.3.8" val fs2Version = "3.10.0" val reactiveMongo = "1.1.0-RC12" -lazy val scala2_libraries = (project in file("scala-2-modules/scala2-libraries")) - .configs(IntegrationTest) - .settings( - name := "scala2-libraries", - scalaVersion := scalaV, - libraryDependencies ++= scalaTestDeps.map(_.withConfigurations(Some("it,test"))), - resolvers += "Kafka avro serializer" at "https://packages.confluent.io/maven", - libraryDependencies ++= Seq( - "com.github.julien-truffaut" %% "monocle-core" % monocleVersion, - "com.github.julien-truffaut" %% "monocle-macro" % monocleVersion, - "com.github.julien-truffaut" %% "monocle-law" % monocleVersion % "test", - "com.chuusai" %% "shapeless" % shapelessVersion, - "junit" % "junit" % "4.13.2" % Test, - logback % Test, - akkaActorTyped, - akkaStreamDep, - "com.github.cb372" %% "scalacache-core" % "0.28.0", - "com.github.cb372" %% "scalacache-guava" % "0.28.0", - "com.github.cb372" %% "scalacache-cats-effect" % "0.28.0", - "com.github.cb372" %% "scalacache-caffeine" % "0.28.0", - enumeratumDep, - "io.monix" %% "monix" % monixVersion, - pureConfigDep, - "com.github.pureconfig" %% "pureconfig-enumeratum" % "0.17.6", - "com.typesafe" % "config" % "1.4.3", - "org.scala-lang.modules" %% "scala-async" % "1.0.1", - "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.9.1", - "com.clever-cloud.pulsar4s" %% "pulsar4s-jackson" % "2.9.1", - "org.testcontainers" % "pulsar" % "1.19.7" % IntegrationTest, - "org.apache.kafka" % "kafka-clients" % kafkaVersion, - "com.fasterxml.jackson.core" % "jackson-databind" % jackSonVersion, - "com.fasterxml.jackson.datatype" % "jackson-datatype-jsr310" % jackSonVersion, - "com.fasterxml.jackson.module" %% "jackson-module-scala" % jackSonVersion, - "com.sksamuel.avro4s" %% "avro4s-core" % avro4sVersion, - "io.confluent" % "kafka-avro-serializer" % kafkaAvroSerializer, - log4jApiScalaDep, - "org.apache.logging.log4j" % "log4j-core" % log4jVersion % Runtime - ), - libraryDependencies ++= Seq( - "com.typesafe.slick" %% "slick" % slickVersion, - "com.h2database" % "h2" % "2.2.224" - ), - scalacOptions += "-Xasync", - Defaults.itSettings - ) +lazy val scala2_libraries = + (project in file("scala-2-modules/scala2-libraries")) + .configs(IntegrationTest) + .settings( + name := "scala2-libraries", + scalaVersion := scalaV, + libraryDependencies ++= scalaTestDeps + .map(_.withConfigurations(Some("it,test"))), + resolvers += "Kafka avro serializer" at "https://packages.confluent.io/maven", + libraryDependencies ++= Seq( + "com.github.julien-truffaut" %% "monocle-core" % monocleVersion, + "com.github.julien-truffaut" %% "monocle-macro" % monocleVersion, + "com.github.julien-truffaut" %% "monocle-law" % monocleVersion % "test", + "com.chuusai" %% "shapeless" % shapelessVersion, + "junit" % "junit" % "4.13.2" % Test, + logback % Test, + akkaActorTyped, + akkaStreamDep, + "com.github.cb372" %% "scalacache-core" % "0.28.0", + "com.github.cb372" %% "scalacache-guava" % "0.28.0", + "com.github.cb372" %% "scalacache-cats-effect" % "0.28.0", + "com.github.cb372" %% "scalacache-caffeine" % "0.28.0", + enumeratumDep, + "io.monix" %% "monix" % monixVersion, + pureConfigDep, + "com.github.pureconfig" %% "pureconfig-enumeratum" % "0.17.6", + "com.typesafe" % "config" % "1.4.3", + "org.scala-lang.modules" %% "scala-async" % "1.0.1", + "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.9.1", + "com.clever-cloud.pulsar4s" %% "pulsar4s-jackson" % "2.9.1", + "org.testcontainers" % "pulsar" % "1.19.7" % IntegrationTest, + "org.apache.kafka" % "kafka-clients" % kafkaVersion, + "com.fasterxml.jackson.core" % "jackson-databind" % jackSonVersion, + "com.fasterxml.jackson.datatype" % "jackson-datatype-jsr310" % jackSonVersion, + "com.fasterxml.jackson.module" %% "jackson-module-scala" % jackSonVersion, + "com.sksamuel.avro4s" %% "avro4s-core" % avro4sVersion, + "io.confluent" % "kafka-avro-serializer" % kafkaAvroSerializer, + log4jApiScalaDep, + "org.apache.logging.log4j" % "log4j-core" % log4jVersion % Runtime + ), + libraryDependencies ++= Seq( + "com.typesafe.slick" %% "slick" % slickVersion, + "com.h2database" % "h2" % "2.2.224" + ), + scalacOptions += "-Xasync", + Defaults.itSettings + ) val circeVersion = "0.14.6" val monixVersion = "3.4.1" @@ -440,20 +442,21 @@ lazy val scala_libraries_os = (project in file("scala-libraries-os")) libraryDependencies += osLibDep ) -lazy val redis_intro = (project in file("scala-libraries-standalone/redis-intro")) - .configs(IntegrationTest) - .settings( - name := "redis-intro", - scalaVersion := scala3Version, - libraryDependencies ++= scalaTestDeps - .map(_.withConfigurations(Some("it,test"))), - libraryDependencies ++= Seq( - "redis.clients" % "jedis" % "4.3.1", - "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.14.1", - "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % "it" - ), - Defaults.itSettings - ) +lazy val redis_intro = + (project in file("scala-libraries-standalone/redis-intro")) + .configs(IntegrationTest) + .settings( + name := "redis-intro", + scalaVersion := scala3Version, + libraryDependencies ++= scalaTestDeps + .map(_.withConfigurations(Some("it,test"))), + libraryDependencies ++= Seq( + "redis.clients" % "jedis" % "4.3.1", + "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.14.1", + "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % "it" + ), + Defaults.itSettings + ) lazy val tapir = (project in file("scala-libraries-standalone/tapir")) .settings( @@ -488,7 +491,7 @@ lazy val scala_libraries_fp = (project in file("scala-libraries-fp")) "org.typelevel" %% "cats-effect-testing-scalatest" % "1.5.0" % Test, "org.scalaz" %% "scalaz-core" % scalazVersion, "junit" % "junit" % "4.13.2" % Test, - "org.typelevel" %% "spire" % spireVersion, + "org.typelevel" %% "spire" % spireVersion ) ) @@ -498,7 +501,8 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) name := "scala-libraries-testing", scalaVersion := scala3Version, testFrameworks += new TestFramework("utest.runner.Framework"), - libraryDependencies ++= scalaTestDeps.map(_.withConfigurations(Some("it,test"))), + libraryDependencies ++= scalaTestDeps + .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( "org.scalacheck" %% "scalacheck" % "1.17.0" % Test, scalaMock, @@ -507,7 +511,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.685" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.25.15" + "software.amazon.awssdk" % "s3" % "2.25.21" ), Defaults.itSettings, IntegrationTest / fork := true From 740b060db1fac8b4fd06bd1be12da51d849f2833 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 30 Mar 2024 08:34:56 +0100 Subject: [PATCH 0472/1318] Code for checking if a string is palindrome --- .../scala/palindrome/Palindrome.scala | 36 ++++++++++++++++ .../scala/palindrom/PalindromeUnitTest.scala | 43 +++++++++++++++++++ 2 files changed, 79 insertions(+) create mode 100644 scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/palindrome/Palindrome.scala create mode 100644 scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/palindrom/PalindromeUnitTest.scala diff --git a/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/palindrome/Palindrome.scala b/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/palindrome/Palindrome.scala new file mode 100644 index 000000000..7fac3faea --- /dev/null +++ b/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/palindrome/Palindrome.scala @@ -0,0 +1,36 @@ +package com.baeldung.scala.palindrome + +import scala.annotation.tailrec + +object Palindrome { + + extension (str: String) { + def sanitize: String = str.replaceAll("[^A-Za-z0-9]", "").toLowerCase + } + + def isPalindromeByReverse(str: String): Boolean = { + val sanitizedStr = str.sanitize + sanitizedStr == sanitizedStr.reverse + } + + def isPalindromeByRecursion(str: String): Boolean = { + val sanitizedStr = str.sanitize + @tailrec + def isPalindromeRec(str: String): Boolean = { + str match { + case _ if str.length <= 1 => true + case _ if str.head == str.last => isPalindromeRec(str.tail.init) + case _ => false + } + } + isPalindromeRec(sanitizedStr) + } + + def isPalindromeByForAll(str: String): Boolean = { + val sanitizedStr = str.sanitize + sanitizedStr.zipWithIndex.forall { case (ch, i) => + ch == sanitizedStr.charAt(sanitizedStr.length - i - 1) + } + } + +} diff --git a/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/palindrom/PalindromeUnitTest.scala b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/palindrom/PalindromeUnitTest.scala new file mode 100644 index 000000000..6b31dfafe --- /dev/null +++ b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/palindrom/PalindromeUnitTest.scala @@ -0,0 +1,43 @@ +package com.baeldung.scala.palindrom + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers +import org.scalatest.prop.TableDrivenPropertyChecks +import com.baeldung.scala.palindrome.Palindrome.* + +class PalindromeUnitTest + extends AnyFlatSpec + with Matchers + with TableDrivenPropertyChecks { + + private val functions = Seq( + ("isPalindromeByReverse", isPalindromeByReverse), + ("isPalindromeByRecursion", isPalindromeByRecursion), + ("isPalindromeByForAll", isPalindromeByForAll) + ) + + private val wordsTable = Table( + ("Word", "Is Palindrome"), + ("racecar", true), + ("Madam", true), + ("AaAA", true), + ("AAbaa", true), + ("mala yalam", true), + ("racecar!!", true), + ("madam1", false), + (" ", true), + ("", true), + ("@#$%", true), + ("hello", false), + ("10101", true), + ) + + functions.foreach { (name, fn) => + it should s"check if a string is palindrome using the function ${name}" in { + forAll(wordsTable) { (str, isPalindrome) => + fn(str) shouldBe isPalindrome + } + } + } + +} From ab8b472a57ee02bce379b42b37c5574d88e817c3 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 30 Mar 2024 08:44:16 +0100 Subject: [PATCH 0473/1318] scalafmt --- .../scala/com/baeldung/scala/palindrom/PalindromeUnitTest.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/palindrom/PalindromeUnitTest.scala b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/palindrom/PalindromeUnitTest.scala index 6b31dfafe..7627af4eb 100644 --- a/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/palindrom/PalindromeUnitTest.scala +++ b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/palindrom/PalindromeUnitTest.scala @@ -29,7 +29,7 @@ class PalindromeUnitTest ("", true), ("@#$%", true), ("hello", false), - ("10101", true), + ("10101", true) ) functions.foreach { (name, fn) => From ce13ba201eb013f8a2bf41abbe4ca0324f23bf77 Mon Sep 17 00:00:00 2001 From: Callum Date: Sun, 31 Mar 2024 13:20:53 +0100 Subject: [PATCH 0474/1318] SCALA-728: Find Twos Complement of Number (#1242) * SCALA-728: Find Twos Complement of Number * SCALA-728: Corrected variable name * SCALA-728: Corrected variable name * Update TwosComplementTest.scala * Update TwosComplementTest.scala --------- Co-authored-by: Callum Gibbons Co-authored-by: Grzegorz Piwowarek --- .../scala/twoscomplement/TwosComplement.scala | 53 +++++++++++++++++++ .../twoscomplement/TwosComplementTest.scala | 31 +++++++++++ 2 files changed, 84 insertions(+) create mode 100644 scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/twoscomplement/TwosComplement.scala create mode 100644 scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/twoscomplement/TwosComplementTest.scala diff --git a/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/twoscomplement/TwosComplement.scala b/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/twoscomplement/TwosComplement.scala new file mode 100644 index 000000000..e655c6c45 --- /dev/null +++ b/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/twoscomplement/TwosComplement.scala @@ -0,0 +1,53 @@ +package com.baeldung.scala.twoscomplement + +import scala.annotation.tailrec + +object TwosComplement { + def convertWithFold(bin: String): String = { + addOneWithFold(onesComplement(bin)) + } + + def convertUsingRecursion(bin: String): String = { + addOneWithRec(onesComplement(bin)) + } + + private def onesComplement(bin: String): String = { + bin.map { + case '1' => '0' + case '0' => '1' + } + } + + private def addOneWithFold(bin: String): String = { + bin.reverse + .foldLeft((true, ""))((added, bit) => { + val (needsAdding, acc) = added + if (needsAdding) { + if (bit == '0') (false, acc + '1') else (true, acc + '0') + } else { + (false, acc + bit) + } + }) + ._2 + .reverse + } + + private def addOneWithRec(bin: String): String = { + @tailrec + def addOne(needsAdding: Boolean, acc: String)(binString: String): String = { + if (needsAdding) { + binString match + case "" => acc + case _ => { + val (bit, tail) = binString.splitAt(1) + if (bit == "0") addOne(false, acc + '1')(tail.mkString) + else addOne(true, acc + '0')(tail.mkString) + } + } else { + acc + binString + } + } + + addOne(true, "")(bin.reverse).reverse + } +} diff --git a/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/twoscomplement/TwosComplementTest.scala b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/twoscomplement/TwosComplementTest.scala new file mode 100644 index 000000000..8ca202da6 --- /dev/null +++ b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/twoscomplement/TwosComplementTest.scala @@ -0,0 +1,31 @@ +package com.baeldung.scala.twoscomplement + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers + +class TwosComplementTest extends AnyFlatSpec with Matchers { + + val testExamples = List( + ("00110100", "11001100"), + ("00110101", "11001011"), + ("01111101", "10000011"), + ("00000000", "00000000"), + ("01111111", "10000001") + ) + + "convertWithFold" should "convert binary to twos complement" in { + val comparer = compare(TwosComplement.convertWithFold) + comparer(testExamples) + } + + "convertUsingRecursion" should "convert binary to twos complement" in { + val comparer = compare(TwosComplement.convertUsingRecursion) + comparer(testExamples) + } + + private def compare( + fn: String => String + )(tests: List[(String, String)]): Unit = { + tests.foreach((input, expected) => fn(input) shouldBe expected) + } +} From 9c31c42fdcc075d0d01a37f9d9092c0ffb312d95 Mon Sep 17 00:00:00 2001 From: kateu herbert Date: Mon, 1 Apr 2024 14:24:40 +0300 Subject: [PATCH 0475/1318] Transfered to scala-libraries-config --- .../src/main/resources/postgresConfig.json | 4 + .../src/main/resources/postgresConfig.yaml | 2 + .../baeldung/cirisconfig/Configuration.scala | 138 ++++++++++++++++++ .../cirisconfig/ConfigurationSpec.scala | 66 +++++++++ 4 files changed, 210 insertions(+) create mode 100644 scala-libraries-config/src/main/resources/postgresConfig.json create mode 100644 scala-libraries-config/src/main/resources/postgresConfig.yaml create mode 100644 scala-libraries-config/src/main/scala/com/baeldung/cirisconfig/Configuration.scala create mode 100644 scala-libraries-config/src/test/scala/com/baeldung/cirisconfig/ConfigurationSpec.scala diff --git a/scala-libraries-config/src/main/resources/postgresConfig.json b/scala-libraries-config/src/main/resources/postgresConfig.json new file mode 100644 index 000000000..19b67de22 --- /dev/null +++ b/scala-libraries-config/src/main/resources/postgresConfig.json @@ -0,0 +1,4 @@ +{ + "username": "username", + "password": "password" +} \ No newline at end of file diff --git a/scala-libraries-config/src/main/resources/postgresConfig.yaml b/scala-libraries-config/src/main/resources/postgresConfig.yaml new file mode 100644 index 000000000..103cb57bd --- /dev/null +++ b/scala-libraries-config/src/main/resources/postgresConfig.yaml @@ -0,0 +1,2 @@ +username: username +password: password \ No newline at end of file diff --git a/scala-libraries-config/src/main/scala/com/baeldung/cirisconfig/Configuration.scala b/scala-libraries-config/src/main/scala/com/baeldung/cirisconfig/Configuration.scala new file mode 100644 index 000000000..bb3194248 --- /dev/null +++ b/scala-libraries-config/src/main/scala/com/baeldung/cirisconfig/Configuration.scala @@ -0,0 +1,138 @@ +package cirisconfig + +import ciris.* +import cats.syntax.all.* +import cats.effect.* +import java.nio.file.Path +import ciris.circe.circeConfigDecoder +import io.circe.Decoder +import cats.effect.Async +import ciris.circe.yaml.circeYamlConfigDecoder + +object Configuration: + + final case class PostgresConfig(username: String, password: String) + + def postgresConfig: ConfigValue[Effect, PostgresConfig] = + ( + env("POSTGRES_USERNAME").as[String], + env("POSTGRES_PASSWORD").as[String] + ).parMapN(PostgresConfig.apply) + + final case class PostgresConfig2( + username: Option[String], + password: Option[String] + ) + + def postgresConfig2: ConfigValue[Effect, PostgresConfig2] = + ( + env("POSTGRES_USERNAME").as[String].option, + env("POSTGRES_PASSWORD").as[String].option + ).parMapN(PostgresConfig2.apply) + + case class Username(name: String) + object Username: + given ConfigDecoder[String, Username] = + ConfigDecoder[String, String].map(Username.apply) + + case class Password(value: String) + object Password: + given ConfigDecoder[String, Password] = + ConfigDecoder[String, String].map(Password.apply) + + final case class PostgresConfig3( + username: Option[Username], + password: Option[Password] + ) + + def postgresConfig3: ConfigValue[Effect, PostgresConfig3] = + ( + env("POSTGRES_USERNAME").as[Username].option, + env("POSTGRES_PASSWORD").as[Password].option + ).parMapN(PostgresConfig3.apply) + + final case class PostgresConfig4(username: Username, password: Password) + + object PostgresConfig4: + // given ConfigDecoder[String, PostgresConfig4] = + // circeConfigDecoder("PostgresConfig4") + + given ConfigDecoder[String, PostgresConfig4] = + circeYamlConfigDecoder("PostgresConfig4") + + given Decoder[PostgresConfig4] = Decoder.instance { h => + for + username <- h.get[String]("username") + password <- h.get[String]("password") + yield PostgresConfig4(Username(username), Password(password)) + } + + val postgresConfig4: ConfigValue[Effect, PostgresConfig4] = + file( + Path.of("src/main/resources/postgresConfig.json") + ).as[PostgresConfig4] + + def postgresConfig5[F[_]: Async]: F[Either[ConfigError, PostgresConfig4]] = + file( + Path.of("src/main/resources/postgresConfig.json") + ).as[PostgresConfig4].attempt[F] + + def postgresConfig6[F[_]: Async]: F[Either[ConfigError, PostgresConfig4]] = + file( + Path.of("src/main/resources/postgresConfig.yaml") + ).as[PostgresConfig4].attempt[F] + + // handling secrets + case class Password2(value: Secret[String]) + object Password2: + def apply(value: String) = + new Password2(Secret(value)) + + def postgresConfig7[F[_]: Async]: F[Either[ConfigError, PostgresConfig4]] = + file( + Path.of("src/main/resources/missing.yaml") + ).as[PostgresConfig4] + .default { + PostgresConfig4(Username("username"), Password("password")) + } + .attempt[F] + +object program extends IOApp.Simple: + import Configuration.* + + override def run: IO[Unit] = + // blows up application + // postgresConfig.load[IO].map(println).void + + // handled errors + // postgresConfig2.load[IO].map(println).void + + // added typeclasses + // postgresConfig3.load[IO].map(println).void + + // config loading from json file + // postgresConfig4.load[IO].map(println).void + + // managing errors + // postgresConfig5[IO].map{config => + // config match + // case Right(value) => println(value) + // case Left(err) => err.messages.map(println) + // } + + // config loading from yaml file + // postgresConfig6[IO].map{config => + // config match + // case Right(value) => println(value) + // case Left(err) => err.messages.map(println) + // } + + // config loading with secret + // IO(println(Password2(Secret("password")))) + + // config loading with fallback values + postgresConfig7[IO].map { config => + config match + case Right(value) => println(value) + case Left(err) => err.messages.map(println) + } diff --git a/scala-libraries-config/src/test/scala/com/baeldung/cirisconfig/ConfigurationSpec.scala b/scala-libraries-config/src/test/scala/com/baeldung/cirisconfig/ConfigurationSpec.scala new file mode 100644 index 000000000..68a1614dc --- /dev/null +++ b/scala-libraries-config/src/test/scala/com/baeldung/cirisconfig/ConfigurationSpec.scala @@ -0,0 +1,66 @@ +package cirisconfig + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers +import org.scalatest.prop.TableDrivenPropertyChecks +import Configuration.* +import ciris.* +import cats.effect.IO + +class ConfigurationSuite + extends AnyFlatSpec + with Matchers + with TableDrivenPropertyChecks: + + "postgresConfig" should "be of type ConfigValue[Effect, PostgresConfig]" in { + postgresConfig shouldBe an[ConfigValue[Effect, PostgresConfig]] + } + + "postgresConfig2" should "be of type ConfigValue[Effect, PostgresConfig2]" in { + postgresConfig2 shouldBe an[ConfigValue[Effect, PostgresConfig2]] + } + + "postgresConfig3" should "be of type ConfigValue[Effect, PostgresConfig3]" in { + postgresConfig3 shouldBe an[ConfigValue[Effect, PostgresConfig3]] + } + + "postgresConfig4, " should "be of type ConfigValue[Effect, PostgresConfig4]" in { + postgresConfig4 shouldBe an[ConfigValue[Effect, PostgresConfig4]] + } + + "postgresConfig5, postgresConfig6, postgresConfig7" should "be of type IO[Either[ConfigError, PostgresConfig4]]" in { + forAll( + Table( + "postgresConfig567", + postgresConfig5[IO], + postgresConfig6[IO], + postgresConfig7[IO] + ) + ) { v => + v shouldBe an[IO[Either[ConfigError, PostgresConfig4]]] + } + } + + "PostgresConfig" should "be of contain type String" in { + val pconfig = PostgresConfig("u", "p") + pconfig.username shouldBe an[String] + pconfig.password shouldBe an[String] + } + + "PostgresConfig2" should "be of contain type Option[String]" in { + val pconfig2 = PostgresConfig2(Some("u"), Some("p")) + pconfig2.username shouldBe an[Option[String]] + pconfig2.password shouldBe an[Option[String]] + } + + "PostgresConfig3" should "be of contain type Option[Username] and Option[Password]" in { + val pconfig3 = PostgresConfig3(Some(Username("u")), Some(Password("p"))) + pconfig3.username shouldBe an[Option[Username]] + pconfig3.password shouldBe an[Option[Password]] + } + + "PostgresConfig4" should "be of contain type Username and Password" in { + val pconfig4 = PostgresConfig4(Username("u"), Password("p")) + pconfig4.username shouldBe an[Username] + pconfig4.password shouldBe an[Password] + } From 23d357125360951d03fa4df07dfceac861dba2c1 Mon Sep 17 00:00:00 2001 From: kateu herbert Date: Mon, 1 Apr 2024 14:28:18 +0300 Subject: [PATCH 0476/1318] Updated build.sbt --- build.sbt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 0a63285dd..6e479a033 100644 --- a/build.sbt +++ b/build.sbt @@ -549,7 +549,10 @@ lazy val scala_libraries_config = (project in file("scala-libraries-config")) "io.circe" %% "circe-yaml" % "1.15.0", circeDep, circeParserDep - ) + ), + libraryDependencies += "is.cir" %% "ciris" % "3.5.0", + libraryDependencies += "is.cir" %% "ciris-circe" % "3.5.0", + libraryDependencies += "is.cir" %% "ciris-circe-yaml" % "3.5.0" ) lazy val scala_strings = (project in file("scala-strings")) From e4eef71c97cf5a0d82bdf3f4da212371c1567b54 Mon Sep 17 00:00:00 2001 From: kateu herbert Date: Mon, 1 Apr 2024 14:54:48 +0300 Subject: [PATCH 0477/1318] Downgraded circe-yaml --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 6e479a033..e29a229bc 100644 --- a/build.sbt +++ b/build.sbt @@ -546,7 +546,7 @@ lazy val scala_libraries_config = (project in file("scala-libraries-config")) munitDep, "com.github.japgolly.clearconfig" %% "core" % "3.1.0", catsEffect, - "io.circe" %% "circe-yaml" % "1.15.0", + "io.circe" %% "circe-yaml" % "0.15.1", circeDep, circeParserDep ), From 288a2c089ebc64d055d44aa01d3d53dab19cd09f Mon Sep 17 00:00:00 2001 From: maenolis Date: Wed, 13 Mar 2024 11:10:32 +0200 Subject: [PATCH 0478/1318] SCALA-614: BitSet article --- .../baeldung/scala/bitset/BitSetTest.scala | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/bitset/BitSetTest.scala diff --git a/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/bitset/BitSetTest.scala b/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/bitset/BitSetTest.scala new file mode 100644 index 000000000..4e1796deb --- /dev/null +++ b/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/bitset/BitSetTest.scala @@ -0,0 +1,86 @@ +package com.baeldung.scala.bitset + +import org.scalatest.Assertions +import org.scalatest.matchers.should.Matchers +import org.scalatest.wordspec.AnyWordSpec + +import scala.collection.immutable.BitSet + +class BitSetTest extends AnyWordSpec with Assertions { + + "BitSet.apply" should { + "create an empty instance" in { + assert(BitSet() === BitSet.empty) + } + + "create an non-empty instance when arguments are provided" in { + assert(BitSet(2) === BitSet() + 2) + assert(BitSet(2) === BitSet().incl(2)) + } + } + + "BitSet.excl" should { + "remove an element if present" in { + assert(BitSet(3, 4).excl(3) === BitSet(4)) + assert(BitSet(4).excl(3) === BitSet(4)) + } + } + + "BitSet.incl" should { + "include an element if not present" in { + assert(BitSet(3).incl(4) === BitSet(3, 4)) + assert(BitSet(3, 4).incl(3) === BitSet(3, 4)) + } + } + + "BitSet.contains" should { + "return true for existing elements" in { + assert(BitSet(3, 4).contains(3)) + } + + "return false for non-existing elements" in { + assert(!BitSet(3, 4).contains(12)) + } + } + + "BitSet.diff" should { + "return the difference of two BitSet instances" in { + assert(BitSet(3, 4).diff(BitSet(2, 3)) == BitSet(4)) + } + + "return an empty BitSet for equal sets" in { + assert(BitSet(3, 4).diff(BitSet(3, 4)) == BitSet.empty) + } + } + + "BitSet.concat" should { + "return a BitSet containing the elements of both sets" in { + assert(BitSet(3, 4).concat(BitSet(2, 3)) == BitSet(2, 3, 4)) + } + } + + "BitSet.intersect" should { + "return a BitSet containing only elements existing in both sets" in { + assert(BitSet(3, 4).intersect(BitSet(2, 3)) == BitSet(3)) + } + } + + "BitSet.xor" should { + "return a BitSet containing only elements existing in either set1 or set2" in { + assert(BitSet(3, 4).xor(BitSet(2, 3)) == BitSet(2, 4)) + } + } + + "BitSet.toBitMask" should { + "return an array containing the words that are stored internally" in { + assert(BitSet(3, 4).toBitMask.sameElements(List(24))) + } + } + + "BitSet.fromBitMask" should { + "return a BitSet containing internally as words the given arguments" in { + assert(BitSet.fromBitMaskNoCopy(Array(25L)) == BitSet(0, 3, 4)) + } + } + +} From 663b572edc2750e953ee0532f5ff0fe8caae7925 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 2 Apr 2024 21:24:32 +0200 Subject: [PATCH 0479/1318] Moved articles to scala-core-numbers module --- build.sbt | 8 ++++++++ scala-core-modules/scala-core-8/README.md | 3 --- scala-core-modules/scala-core-9/README.md | 1 - scala-core-modules/scala-core-numbers/README.md | 6 ++++++ .../baeldung/scala/factorial/FactorialCalculation.scala | 0 .../scala/fibonacci/FibonacciSequenceGenerator.scala | 0 .../com/baeldung/scala/magicnumber/MagicNumber.scala | 0 .../scala/com/baeldung/scala/powerof2/PowerOfTwo.scala | 0 .../scala/com/baeldung/scala/primecheck/PrimeNumber.scala | 0 .../scala/factorial/FactorialCalculationUnitTest.scala | 0 .../scala/fibonacci/FibonacciSequenceGeneratorTest.scala | 0 .../baeldung/scala/magicnumber/MagicNumberUnitTest.scala | 0 .../com/baeldung/scala/powerof2/PowerOfTwoUnitTest.scala | 0 .../baeldung/scala/primecheck/PrimeCheckUnitTest.scala | 2 +- 14 files changed, 15 insertions(+), 5 deletions(-) create mode 100644 scala-core-modules/scala-core-numbers/README.md rename scala-core-modules/{scala-core-9 => scala-core-numbers}/src/main/scala/com/baeldung/scala/factorial/FactorialCalculation.scala (100%) rename scala-core-modules/{scala-core-8 => scala-core-numbers}/src/main/scala/com/baeldung/scala/fibonacci/FibonacciSequenceGenerator.scala (100%) rename scala-core-modules/{scala-core-8 => scala-core-numbers}/src/main/scala/com/baeldung/scala/magicnumber/MagicNumber.scala (100%) rename scala-core-modules/{scala-core-9 => scala-core-numbers}/src/main/scala/com/baeldung/scala/powerof2/PowerOfTwo.scala (100%) rename scala-core-modules/{scala-core-8 => scala-core-numbers}/src/main/scala/com/baeldung/scala/primecheck/PrimeNumber.scala (100%) rename scala-core-modules/{scala-core-9 => scala-core-numbers}/src/test/scala/com/baeldung/scala/factorial/FactorialCalculationUnitTest.scala (100%) rename scala-core-modules/{scala-core-8 => scala-core-numbers}/src/test/scala/com/baeldung/scala/fibonacci/FibonacciSequenceGeneratorTest.scala (100%) rename scala-core-modules/{scala-core-8 => scala-core-numbers}/src/test/scala/com/baeldung/scala/magicnumber/MagicNumberUnitTest.scala (100%) rename scala-core-modules/{scala-core-9 => scala-core-numbers}/src/test/scala/com/baeldung/scala/powerof2/PowerOfTwoUnitTest.scala (100%) rename scala-core-modules/{scala-core-8 => scala-core-numbers}/src/test/scala/com/baeldung/scala/primecheck/PrimeCheckUnitTest.scala (95%) diff --git a/build.sbt b/build.sbt index 0a63285dd..0b684cd47 100644 --- a/build.sbt +++ b/build.sbt @@ -120,6 +120,14 @@ lazy val scala_core_9 = (project in file("scala-core-modules/scala-core-9")) libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test ) +lazy val scala_core_numbers = (project in file("scala-core-modules/scala-core-numbers")) + .settings( + name := "scala-core-numbers", + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version, + libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test + ) + lazy val scala_core_io = (project in file("scala-core-modules/scala-core-io")) .settings( name := "scala-core-io", diff --git a/scala-core-modules/scala-core-8/README.md b/scala-core-modules/scala-core-8/README.md index 8b2b05a01..769ceb05b 100644 --- a/scala-core-modules/scala-core-8/README.md +++ b/scala-core-modules/scala-core-8/README.md @@ -4,8 +4,5 @@ - [The Either Type in Scala](https://www.baeldung.com/scala/either-type) - [Understanding the Differences: reduceLeft, reduceRight, foldLeft, foldRight, scanLeft, and scanRight in Scala](https://www.baeldung.com/scala/reduce-fold-scan-left-right) - [Different Ways to Reverse a Sequence in Scala](https://www.baeldung.com/scala/reverse-sequence) -- [Check if a Number Is Magic Number in Scala](https://www.baeldung.com/scala/check-magic-number) - [Transforming a List of Futures Ignoring Failures](https://www.baeldung.com/scala/transform-list-futures-ignore-failures) - [Difference Between Braces and Parentheses in Scala](https://www.baeldung.com/scala/braces-vs-parentheses) -- [Check if a Number Is Prime in Scala](https://www.baeldung.com/scala/check-number-prime) -- [Generating the Fibonacci Sequence in Scala](https://www.baeldung.com/scala/generating-fibonacci-series) diff --git a/scala-core-modules/scala-core-9/README.md b/scala-core-modules/scala-core-9/README.md index a21ede3e7..a55bdb5eb 100644 --- a/scala-core-modules/scala-core-9/README.md +++ b/scala-core-modules/scala-core-9/README.md @@ -1,3 +1,2 @@ ### Relevant Articles - [Check if a Collection Is Sorted in Scala](https://www.baeldung.com/scala/check-collection-sorted) -- [Find Factorial of a Number in Scala](https://www.baeldung.com/scala/find-factorial) diff --git a/scala-core-modules/scala-core-numbers/README.md b/scala-core-modules/scala-core-numbers/README.md new file mode 100644 index 000000000..a3f20e903 --- /dev/null +++ b/scala-core-modules/scala-core-numbers/README.md @@ -0,0 +1,6 @@ +### Relevant Articles: + +- [Check if a Number Is Magic Number in Scala](https://www.baeldung.com/scala/check-magic-number) +- [Check if a Number Is Prime in Scala](https://www.baeldung.com/scala/check-number-prime) +- [Generating the Fibonacci Sequence in Scala](https://www.baeldung.com/scala/generating-fibonacci-series) +- [Find Factorial of a Number in Scala](https://www.baeldung.com/scala/find-factorial) diff --git a/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/factorial/FactorialCalculation.scala b/scala-core-modules/scala-core-numbers/src/main/scala/com/baeldung/scala/factorial/FactorialCalculation.scala similarity index 100% rename from scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/factorial/FactorialCalculation.scala rename to scala-core-modules/scala-core-numbers/src/main/scala/com/baeldung/scala/factorial/FactorialCalculation.scala diff --git a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/fibonacci/FibonacciSequenceGenerator.scala b/scala-core-modules/scala-core-numbers/src/main/scala/com/baeldung/scala/fibonacci/FibonacciSequenceGenerator.scala similarity index 100% rename from scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/fibonacci/FibonacciSequenceGenerator.scala rename to scala-core-modules/scala-core-numbers/src/main/scala/com/baeldung/scala/fibonacci/FibonacciSequenceGenerator.scala diff --git a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/magicnumber/MagicNumber.scala b/scala-core-modules/scala-core-numbers/src/main/scala/com/baeldung/scala/magicnumber/MagicNumber.scala similarity index 100% rename from scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/magicnumber/MagicNumber.scala rename to scala-core-modules/scala-core-numbers/src/main/scala/com/baeldung/scala/magicnumber/MagicNumber.scala diff --git a/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/powerof2/PowerOfTwo.scala b/scala-core-modules/scala-core-numbers/src/main/scala/com/baeldung/scala/powerof2/PowerOfTwo.scala similarity index 100% rename from scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/powerof2/PowerOfTwo.scala rename to scala-core-modules/scala-core-numbers/src/main/scala/com/baeldung/scala/powerof2/PowerOfTwo.scala diff --git a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/primecheck/PrimeNumber.scala b/scala-core-modules/scala-core-numbers/src/main/scala/com/baeldung/scala/primecheck/PrimeNumber.scala similarity index 100% rename from scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/primecheck/PrimeNumber.scala rename to scala-core-modules/scala-core-numbers/src/main/scala/com/baeldung/scala/primecheck/PrimeNumber.scala diff --git a/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/factorial/FactorialCalculationUnitTest.scala b/scala-core-modules/scala-core-numbers/src/test/scala/com/baeldung/scala/factorial/FactorialCalculationUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/factorial/FactorialCalculationUnitTest.scala rename to scala-core-modules/scala-core-numbers/src/test/scala/com/baeldung/scala/factorial/FactorialCalculationUnitTest.scala diff --git a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/fibonacci/FibonacciSequenceGeneratorTest.scala b/scala-core-modules/scala-core-numbers/src/test/scala/com/baeldung/scala/fibonacci/FibonacciSequenceGeneratorTest.scala similarity index 100% rename from scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/fibonacci/FibonacciSequenceGeneratorTest.scala rename to scala-core-modules/scala-core-numbers/src/test/scala/com/baeldung/scala/fibonacci/FibonacciSequenceGeneratorTest.scala diff --git a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/magicnumber/MagicNumberUnitTest.scala b/scala-core-modules/scala-core-numbers/src/test/scala/com/baeldung/scala/magicnumber/MagicNumberUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/magicnumber/MagicNumberUnitTest.scala rename to scala-core-modules/scala-core-numbers/src/test/scala/com/baeldung/scala/magicnumber/MagicNumberUnitTest.scala diff --git a/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/powerof2/PowerOfTwoUnitTest.scala b/scala-core-modules/scala-core-numbers/src/test/scala/com/baeldung/scala/powerof2/PowerOfTwoUnitTest.scala similarity index 100% rename from scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/powerof2/PowerOfTwoUnitTest.scala rename to scala-core-modules/scala-core-numbers/src/test/scala/com/baeldung/scala/powerof2/PowerOfTwoUnitTest.scala diff --git a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/primecheck/PrimeCheckUnitTest.scala b/scala-core-modules/scala-core-numbers/src/test/scala/com/baeldung/scala/primecheck/PrimeCheckUnitTest.scala similarity index 95% rename from scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/primecheck/PrimeCheckUnitTest.scala rename to scala-core-modules/scala-core-numbers/src/test/scala/com/baeldung/scala/primecheck/PrimeCheckUnitTest.scala index 7450a4465..6d2493868 100644 --- a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/primecheck/PrimeCheckUnitTest.scala +++ b/scala-core-modules/scala-core-numbers/src/test/scala/com/baeldung/scala/primecheck/PrimeCheckUnitTest.scala @@ -3,7 +3,7 @@ package com.baeldung.scala.primecheck import org.scalatest.matchers.should.Matchers import org.scalatest.prop.TableDrivenPropertyChecks import org.scalatest.wordspec.AnyWordSpec -import PrimeNumber.* +import com.baeldung.scala.primecheck.PrimeNumber.* class PrimeCheckUnitTest extends AnyWordSpec From 69bb2fd09ad402809fd041a648f13ede96e4b842 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 2 Apr 2024 21:28:33 +0200 Subject: [PATCH 0480/1318] Moved articles to scala-core-numbers module --- scala-core-modules/scala-core-numbers/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-core-modules/scala-core-numbers/README.md b/scala-core-modules/scala-core-numbers/README.md index a3f20e903..b12e93f0c 100644 --- a/scala-core-modules/scala-core-numbers/README.md +++ b/scala-core-modules/scala-core-numbers/README.md @@ -4,3 +4,4 @@ - [Check if a Number Is Prime in Scala](https://www.baeldung.com/scala/check-number-prime) - [Generating the Fibonacci Sequence in Scala](https://www.baeldung.com/scala/generating-fibonacci-series) - [Find Factorial of a Number in Scala](https://www.baeldung.com/scala/find-factorial) +- [Check if a Number Is Power of Two in Scala](https://www.baeldung.com/scala/check-power-of-two) \ No newline at end of file From ce8d6c0b36c65adfa7740d05f5bcaa6268fd4c7c Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 2 Apr 2024 22:21:04 +0200 Subject: [PATCH 0481/1318] Moved module into scala-core-colelctions module --- build.sbt | 8 +------- .../scala2-core/README.md | 0 .../com/baeldung/scala/argumentparsing/Args4J.scala | 0 .../com/baeldung/scala/argumentparsing/Clist.scala | 0 .../baeldung/scala/argumentparsing/PatternMatching.scala | 0 .../com/baeldung/scala/argumentparsing/Scallop.scala | 0 .../scala/argumentparsing/ScallopPatternMatching.scala | 0 .../com/baeldung/scala/argumentparsing/Scopt.scala | 0 .../com/baeldung/scala/argumentparsing/Sliding.scala | 0 .../scala-2/com/baeldung/scala/bounds/contextbound.scala | 0 .../scala-2/com/baeldung/scala/bounds/conversion.scala | 0 .../com/baeldung/scala/bounds/implicitconversion.scala | 0 .../com/baeldung/scala/bounds/implicitobject.scala | 0 .../com/baeldung/scala/bounds/implicitvalues.scala | 0 .../baeldung/scala/bounds/multipleparameterlists.scala | 0 .../scala-2/com/baeldung/scala/bounds/richobject.scala | 0 .../scala-2/com/baeldung/scala/bounds/viewbound.scala | 0 .../com/baeldung/scala/exceptionhandling/Calculator.scala | 0 .../com/baeldung/scala/exceptionhandling/Examples.scala | 0 .../scala/exceptionhandling/HandlingWithEither.scala | 0 .../scala/exceptionhandling/HandlingWithMonadError.scala | 0 .../scala/exceptionhandling/HandlingWithOption.scala | 0 .../scala/exceptionhandling/HandlingWithTry.scala | 0 .../scala/exceptionhandling/HandlingWithTryOption.scala | 0 .../scala/exceptionhandling/HandlingWithValidated.scala | 0 .../baeldung/scala/exceptionhandling/LegacyErrors.scala | 0 .../baeldung/scala/exceptionhandling/LegacyService.scala | 0 .../com/baeldung/scala/exceptionhandling/Resource.scala | 0 .../com/baeldung/scala/exceptionhandling/Session.scala | 0 .../com/baeldung/scala/exceptionhandling/User.scala | 0 .../scala/exceptionhandling/ValidationErrors.scala | 0 .../baeldung/scala/implicitconversions/LengthUnit.scala | 0 .../scala/introduction/ControlStructuresDemo.scala | 0 .../com/baeldung/scala/introduction/Employee.scala | 0 .../com/baeldung/scala/introduction/HelloWorld.scala | 0 .../scala-2/com/baeldung/scala/introduction/IntSet.scala | 0 .../scala-2/com/baeldung/scala/introduction/Utils.scala | 0 .../scala-2/com/baeldung/scala/macros/GenericMacros.scala | 0 .../scala-2/com/baeldung/scala/macros/OddEvenMacros.scala | 0 .../com/baeldung/scala/typtag/ClassTagExample.scala | 0 .../com/baeldung/scala/typtag/TypeTagExample.scala | 0 .../com/baeldung/scala/typtag/WeakTypeTagExample.scala | 0 .../scala/uniontypes/ArbitraryArityUnionType.scala | 0 .../baeldung/scala/uniontypes/EitherDisjointUnion.scala | 0 .../scala/exceptionhandling/ExamplesUnitTest.scala | 0 .../IdiomaticExceptionHandlingUnitTest.scala | 0 .../scala/implicitconversions/LengthUnitTest.scala | 0 .../introduction/ControlStructuresDemoUnitTest.scala | 0 .../baeldung/scala/introduction/EmployeeUnitTest.scala | 0 .../com/baeldung/scala/introduction/IntSetUnitTest.scala | 0 .../com/baeldung/scala/introduction/UtilsUnitTest.scala | 0 .../com/baeldung/scala/macros/GenericMacrosTest.scala | 0 .../com/baeldung/scala/macros/OddEvenMacrosTest.scala | 0 .../baeldung/scala/typetag/ClassTagExampleUnitTest.scala | 0 .../baeldung/scala/typetag/TypeTagExampleUnitTest.scala | 0 .../scala/typetag/WeakTypeTagExampleUnitTest.scala | 0 .../uniontypes/ArbitraryArityUnionTypeUnitTest.scala | 0 .../scala/uniontypes/EitherDisjointUnionUnitTest.scala | 0 .../scala-core-collections-3/README.md | 1 + .../main/scala/com/baeldung/scala/caching/LRUCache.scala | 0 .../scala/com/baeldung/scala/caching/LRUCacheSpec.scala | 0 scala3-lang-collections/README.md | 2 -- 62 files changed, 2 insertions(+), 9 deletions(-) rename {scala-core-modules => scala-2-modules}/scala2-core/README.md (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/Args4J.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/Clist.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/PatternMatching.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/Scallop.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/ScallopPatternMatching.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/Scopt.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/Sliding.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/contextbound.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/conversion.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/implicitconversion.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/implicitobject.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/implicitvalues.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/multipleparameterlists.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/richobject.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/viewbound.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Calculator.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Examples.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithEither.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithMonadError.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithOption.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTry.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTryOption.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithValidated.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyErrors.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyService.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Resource.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Session.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/User.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/ValidationErrors.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/implicitconversions/LengthUnit.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/introduction/ControlStructuresDemo.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/introduction/Employee.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/introduction/HelloWorld.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/introduction/IntSet.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/introduction/Utils.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/macros/GenericMacros.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/macros/OddEvenMacros.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/typtag/ClassTagExample.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/typtag/TypeTagExample.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/typtag/WeakTypeTagExample.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionType.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/main/scala-2/com/baeldung/scala/uniontypes/EitherDisjointUnion.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/test/scala-2/com/baeldung/scala/exceptionhandling/ExamplesUnitTest.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/test/scala-2/com/baeldung/scala/exceptionhandling/IdiomaticExceptionHandlingUnitTest.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/test/scala-2/com/baeldung/scala/implicitconversions/LengthUnitTest.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/test/scala-2/com/baeldung/scala/introduction/ControlStructuresDemoUnitTest.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/test/scala-2/com/baeldung/scala/introduction/EmployeeUnitTest.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/test/scala-2/com/baeldung/scala/introduction/IntSetUnitTest.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/test/scala-2/com/baeldung/scala/introduction/UtilsUnitTest.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/test/scala-2/com/baeldung/scala/macros/GenericMacrosTest.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/test/scala-2/com/baeldung/scala/macros/OddEvenMacrosTest.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/test/scala-2/com/baeldung/scala/typetag/ClassTagExampleUnitTest.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/test/scala-2/com/baeldung/scala/typetag/TypeTagExampleUnitTest.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/test/scala-2/com/baeldung/scala/typetag/WeakTypeTagExampleUnitTest.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/test/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionTypeUnitTest.scala (100%) rename {scala-core-modules => scala-2-modules}/scala2-core/src/test/scala-2/com/baeldung/scala/uniontypes/EitherDisjointUnionUnitTest.scala (100%) rename {scala3-lang-collections => scala-core-collections-modules/scala-core-collections-3}/src/main/scala/com/baeldung/scala/caching/LRUCache.scala (100%) rename {scala3-lang-collections => scala-core-collections-modules/scala-core-collections-3}/src/test/scala/com/baeldung/scala/caching/LRUCacheSpec.scala (100%) delete mode 100644 scala3-lang-collections/README.md diff --git a/build.sbt b/build.sbt index 0b684cd47..bf9e17829 100644 --- a/build.sbt +++ b/build.sbt @@ -53,7 +53,7 @@ lazy val scala_core_3 = (project in file("scala-core-modules/scala-core-3")) libraryDependencies += scalaXmlDep ) -lazy val scala2_core = (project in file("scala-core-modules/scala2-core")) +lazy val scala2_core = (project in file("scala-2-modules/scala2-core")) .settings( name := "scala2-core", libraryDependencies ++= scalaTestDeps, @@ -600,12 +600,6 @@ lazy val scala3_lang_3 = scalaVersion := scala3Version ) -lazy val scala3_lang_collections = - (project in file("scala3-lang-collections")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version - ) - lazy val cats_effects = (project in file("cats-effects")) .settings( name := "cats-effects", diff --git a/scala-core-modules/scala2-core/README.md b/scala-2-modules/scala2-core/README.md similarity index 100% rename from scala-core-modules/scala2-core/README.md rename to scala-2-modules/scala2-core/README.md diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/Args4J.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/Args4J.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/Args4J.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/Args4J.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/Clist.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/Clist.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/Clist.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/Clist.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/PatternMatching.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/PatternMatching.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/PatternMatching.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/PatternMatching.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/Scallop.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/Scallop.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/Scallop.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/Scallop.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/ScallopPatternMatching.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/ScallopPatternMatching.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/ScallopPatternMatching.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/ScallopPatternMatching.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/Scopt.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/Scopt.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/Scopt.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/Scopt.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/Sliding.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/Sliding.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/Sliding.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/argumentparsing/Sliding.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/contextbound.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/contextbound.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/contextbound.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/contextbound.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/conversion.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/conversion.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/conversion.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/conversion.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/implicitconversion.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/implicitconversion.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/implicitconversion.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/implicitconversion.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/implicitobject.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/implicitobject.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/implicitobject.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/implicitobject.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/implicitvalues.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/implicitvalues.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/implicitvalues.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/implicitvalues.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/multipleparameterlists.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/multipleparameterlists.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/multipleparameterlists.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/multipleparameterlists.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/richobject.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/richobject.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/richobject.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/richobject.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/viewbound.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/viewbound.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/viewbound.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/bounds/viewbound.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Calculator.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Calculator.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Calculator.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Calculator.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Examples.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Examples.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Examples.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Examples.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithEither.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithEither.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithEither.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithEither.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithMonadError.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithMonadError.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithMonadError.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithMonadError.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithOption.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithOption.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithOption.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithOption.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTry.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTry.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTry.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTry.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTryOption.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTryOption.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTryOption.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithTryOption.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithValidated.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithValidated.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithValidated.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/HandlingWithValidated.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyErrors.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyErrors.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyErrors.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyErrors.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyService.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyService.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyService.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/LegacyService.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Resource.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Resource.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Resource.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Resource.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Session.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Session.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Session.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/Session.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/User.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/User.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/User.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/User.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/ValidationErrors.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/ValidationErrors.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/ValidationErrors.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/exceptionhandling/ValidationErrors.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/implicitconversions/LengthUnit.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/implicitconversions/LengthUnit.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/implicitconversions/LengthUnit.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/implicitconversions/LengthUnit.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/introduction/ControlStructuresDemo.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/introduction/ControlStructuresDemo.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/introduction/ControlStructuresDemo.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/introduction/ControlStructuresDemo.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/introduction/Employee.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/introduction/Employee.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/introduction/Employee.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/introduction/Employee.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/introduction/HelloWorld.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/introduction/HelloWorld.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/introduction/HelloWorld.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/introduction/HelloWorld.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/introduction/IntSet.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/introduction/IntSet.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/introduction/IntSet.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/introduction/IntSet.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/introduction/Utils.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/introduction/Utils.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/introduction/Utils.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/introduction/Utils.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/macros/GenericMacros.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/macros/GenericMacros.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/macros/GenericMacros.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/macros/GenericMacros.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/macros/OddEvenMacros.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/macros/OddEvenMacros.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/macros/OddEvenMacros.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/macros/OddEvenMacros.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/typtag/ClassTagExample.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/typtag/ClassTagExample.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/typtag/ClassTagExample.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/typtag/ClassTagExample.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/typtag/TypeTagExample.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/typtag/TypeTagExample.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/typtag/TypeTagExample.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/typtag/TypeTagExample.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/typtag/WeakTypeTagExample.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/typtag/WeakTypeTagExample.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/typtag/WeakTypeTagExample.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/typtag/WeakTypeTagExample.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionType.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionType.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionType.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionType.scala diff --git a/scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/uniontypes/EitherDisjointUnion.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/uniontypes/EitherDisjointUnion.scala similarity index 100% rename from scala-core-modules/scala2-core/src/main/scala-2/com/baeldung/scala/uniontypes/EitherDisjointUnion.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/uniontypes/EitherDisjointUnion.scala diff --git a/scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/exceptionhandling/ExamplesUnitTest.scala b/scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/exceptionhandling/ExamplesUnitTest.scala similarity index 100% rename from scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/exceptionhandling/ExamplesUnitTest.scala rename to scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/exceptionhandling/ExamplesUnitTest.scala diff --git a/scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/exceptionhandling/IdiomaticExceptionHandlingUnitTest.scala b/scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/exceptionhandling/IdiomaticExceptionHandlingUnitTest.scala similarity index 100% rename from scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/exceptionhandling/IdiomaticExceptionHandlingUnitTest.scala rename to scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/exceptionhandling/IdiomaticExceptionHandlingUnitTest.scala diff --git a/scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/implicitconversions/LengthUnitTest.scala b/scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/implicitconversions/LengthUnitTest.scala similarity index 100% rename from scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/implicitconversions/LengthUnitTest.scala rename to scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/implicitconversions/LengthUnitTest.scala diff --git a/scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/introduction/ControlStructuresDemoUnitTest.scala b/scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/introduction/ControlStructuresDemoUnitTest.scala similarity index 100% rename from scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/introduction/ControlStructuresDemoUnitTest.scala rename to scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/introduction/ControlStructuresDemoUnitTest.scala diff --git a/scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/introduction/EmployeeUnitTest.scala b/scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/introduction/EmployeeUnitTest.scala similarity index 100% rename from scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/introduction/EmployeeUnitTest.scala rename to scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/introduction/EmployeeUnitTest.scala diff --git a/scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/introduction/IntSetUnitTest.scala b/scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/introduction/IntSetUnitTest.scala similarity index 100% rename from scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/introduction/IntSetUnitTest.scala rename to scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/introduction/IntSetUnitTest.scala diff --git a/scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/introduction/UtilsUnitTest.scala b/scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/introduction/UtilsUnitTest.scala similarity index 100% rename from scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/introduction/UtilsUnitTest.scala rename to scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/introduction/UtilsUnitTest.scala diff --git a/scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/macros/GenericMacrosTest.scala b/scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/macros/GenericMacrosTest.scala similarity index 100% rename from scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/macros/GenericMacrosTest.scala rename to scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/macros/GenericMacrosTest.scala diff --git a/scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/macros/OddEvenMacrosTest.scala b/scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/macros/OddEvenMacrosTest.scala similarity index 100% rename from scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/macros/OddEvenMacrosTest.scala rename to scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/macros/OddEvenMacrosTest.scala diff --git a/scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/typetag/ClassTagExampleUnitTest.scala b/scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/typetag/ClassTagExampleUnitTest.scala similarity index 100% rename from scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/typetag/ClassTagExampleUnitTest.scala rename to scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/typetag/ClassTagExampleUnitTest.scala diff --git a/scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/typetag/TypeTagExampleUnitTest.scala b/scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/typetag/TypeTagExampleUnitTest.scala similarity index 100% rename from scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/typetag/TypeTagExampleUnitTest.scala rename to scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/typetag/TypeTagExampleUnitTest.scala diff --git a/scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/typetag/WeakTypeTagExampleUnitTest.scala b/scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/typetag/WeakTypeTagExampleUnitTest.scala similarity index 100% rename from scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/typetag/WeakTypeTagExampleUnitTest.scala rename to scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/typetag/WeakTypeTagExampleUnitTest.scala diff --git a/scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionTypeUnitTest.scala b/scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionTypeUnitTest.scala similarity index 100% rename from scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionTypeUnitTest.scala rename to scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionTypeUnitTest.scala diff --git a/scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/uniontypes/EitherDisjointUnionUnitTest.scala b/scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/uniontypes/EitherDisjointUnionUnitTest.scala similarity index 100% rename from scala-core-modules/scala2-core/src/test/scala-2/com/baeldung/scala/uniontypes/EitherDisjointUnionUnitTest.scala rename to scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/uniontypes/EitherDisjointUnionUnitTest.scala diff --git a/scala-core-collections-modules/scala-core-collections-3/README.md b/scala-core-collections-modules/scala-core-collections-3/README.md index e4e120926..9e6bb52e2 100644 --- a/scala-core-collections-modules/scala-core-collections-3/README.md +++ b/scala-core-collections-modules/scala-core-collections-3/README.md @@ -6,3 +6,4 @@ - [Moving Averages in Scala: A Tale of Two Approaches](https://www.baeldung.com/scala/moving-averages) - [Implement a Fixed-Size List in Scala](https://www.baeldung.com/scala/list-finite-size) - [Difference Between zip() and lazyZip() in Scala](https://www.baeldung.com/scala/zip-vs-lazyzip) +- [Implementing an LRU Cache in Scala 3: A Step-by-Step Guide](https://www.baeldung.com/scala/least-recently-used-cache) diff --git a/scala3-lang-collections/src/main/scala/com/baeldung/scala/caching/LRUCache.scala b/scala-core-collections-modules/scala-core-collections-3/src/main/scala/com/baeldung/scala/caching/LRUCache.scala similarity index 100% rename from scala3-lang-collections/src/main/scala/com/baeldung/scala/caching/LRUCache.scala rename to scala-core-collections-modules/scala-core-collections-3/src/main/scala/com/baeldung/scala/caching/LRUCache.scala diff --git a/scala3-lang-collections/src/test/scala/com/baeldung/scala/caching/LRUCacheSpec.scala b/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/caching/LRUCacheSpec.scala similarity index 100% rename from scala3-lang-collections/src/test/scala/com/baeldung/scala/caching/LRUCacheSpec.scala rename to scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/caching/LRUCacheSpec.scala diff --git a/scala3-lang-collections/README.md b/scala3-lang-collections/README.md deleted file mode 100644 index 856d99aa9..000000000 --- a/scala3-lang-collections/README.md +++ /dev/null @@ -1,2 +0,0 @@ -## Relevant Articles -- [Implementing an LRU Cache in Scala 3: A Step-by-Step Guide](https://www.baeldung.com/scala/least-recently-used-cache) From ff0129fd5b5e880899a02de4f3da530c7161d18d Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 3 Apr 2024 18:13:41 +0200 Subject: [PATCH 0482/1318] Upgraded slick to scala 3 --- .../com/baeldung/scala/slick/Connection.scala | 9 - .../com/baeldung/scala/slick/Entities.scala | 10 - .../baeldung/scala/slick/SlickTables.scala | 19 - .../scala/slick/PlayerServiceUnitTest.scala | 231 --------- .../src/test/resources/logback-test.xml | 24 + .../scala/slick/PlayerServiceUnitTest.scala | 462 +++++++++--------- 6 files changed, 255 insertions(+), 500 deletions(-) delete mode 100644 scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/slick/Connection.scala delete mode 100644 scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/slick/Entities.scala delete mode 100644 scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/slick/SlickTables.scala delete mode 100644 scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/slick/PlayerServiceUnitTest.scala create mode 100644 scala-libraries-persistence/src/test/resources/logback-test.xml diff --git a/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/slick/Connection.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/slick/Connection.scala deleted file mode 100644 index e427dd0ad..000000000 --- a/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/slick/Connection.scala +++ /dev/null @@ -1,9 +0,0 @@ -package com.baeldung.scala.slick - -import slick.jdbc.H2Profile.api._ - -object Connection { - - val db = Database.forConfig("h2mem") - -} diff --git a/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/slick/Entities.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/slick/Entities.scala deleted file mode 100644 index c96da944f..000000000 --- a/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/slick/Entities.scala +++ /dev/null @@ -1,10 +0,0 @@ -package com.baeldung.scala.slick - -import java.time.LocalDate - -case class Player( - id: Long, - name: String, - country: String, - dob: Option[LocalDate] -) diff --git a/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/slick/SlickTables.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/slick/SlickTables.scala deleted file mode 100644 index a3b4fa826..000000000 --- a/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/slick/SlickTables.scala +++ /dev/null @@ -1,19 +0,0 @@ -package com.baeldung.scala.slick - -import java.time.LocalDate - -import slick.jdbc.H2Profile.api._ - -object SlickTables { - - class PlayerTable(tag: Tag) extends Table[Player](tag, None, "Player") { - override def * = (id, name, country, dob).mapTo[Player] - - val id: Rep[Long] = column[Long]("player_id", O.AutoInc, O.PrimaryKey) - val name: Rep[String] = column[String]("name") - val country: Rep[String] = column[String]("country") - val dob: Rep[Option[LocalDate]] = - column[Option[LocalDate]]("dob", O.Default(None)) - } - -} diff --git a/scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/slick/PlayerServiceUnitTest.scala b/scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/slick/PlayerServiceUnitTest.scala deleted file mode 100644 index 328ff4ba0..000000000 --- a/scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/slick/PlayerServiceUnitTest.scala +++ /dev/null @@ -1,231 +0,0 @@ -package com.baeldung.scala.slick - -import org.scalactic.Equality -import org.scalatest.concurrent.ScalaFutures -import org.scalatest.matchers.should.Matchers -import org.scalatest.wordspec.AsyncWordSpec -import org.scalatest.{BeforeAndAfterAll, BeforeAndAfterEach, FutureOutcome} -import slick.jdbc.H2Profile.api._ -import com.baeldung.scala.slick.SlickTables.PlayerTable - -import java.sql.SQLException -import java.time.LocalDate -import scala.concurrent.Future - -class PlayerServiceUnitTest - extends AsyncWordSpec - with Matchers - with ScalaFutures - with BeforeAndAfterAll - with BeforeAndAfterEach { - - private val playerTable = TableQuery[PlayerTable] - lazy val db = Connection.db - - "PlayerService" should { - "insert a player to the table and filter by country" in { - val player = Player(100L, "Steffi", "Germany", None) - val insertPlayerQuery = playerTable += player - val insertResult: Future[Int] = db.run(insertPlayerQuery) - insertResult flatMap { insertStatus => - insertStatus shouldBe 1 - - // get inserted record from database and check - val germanPlayersQuery = playerTable.filter(_.country === "Germany") - val germanPlayers: Future[Seq[Player]] = - db.run(germanPlayersQuery.result) - germanPlayers map { allPlayers => - allPlayers.find(_.name == "Steffi").get shouldEqual player - } - } - } - - "insert multiple players together" in { - val steffi = Player(100L, "Steffi", "Germany", None) - val sharapova = Player(100L, "Sharapova", "Russia", None) - - db.run(playerTable ++= (Seq(steffi, sharapova))) flatMap { - insertMultipleResult => - insertMultipleResult should contain(2) - - db.run(playerTable.result) map { playersFromDB => - playersFromDB should contain allElementsOf (Seq(steffi, sharapova)) - playersFromDB - .map(_.id) - .forall(_ > 0) shouldBe true // verify auto-increment field - } - } - } - - "insert and then update the country field of a player" in { - // force insert a record - val player = Player(500L, "Boris", "Deutschland", None) - val forceInsertAction = playerTable.forceInsert(player) - db.run(forceInsertAction).flatMap { insertedResult => - val updateCountryAction = - playerTable - .filter(_.id === 500L) - .map(_.country) - .update("Germany") - db.run(updateCountryAction).flatMap { updateResult => - db.run(playerTable.filter(_.id === 500L).result).map { filterResult => - filterResult.size shouldBe 1 - filterResult.head.country shouldBe "Germany" - } - } - } - } - - "update DoB field of a player" in { - db.run(playerTable.filter(_.name === "Serena").result) flatMap { - foundSerena => - foundSerena should not be empty - - val newDoB = Option(LocalDate.parse("1981-09-26")) - db.run( - playerTable - .filter(_.id === foundSerena.head.id) - .map(_.dob) - .update(newDoB) - ) flatMap { updateResult => - updateResult shouldBe 1 - - db.run(playerTable.result) map { serenasAgain => - val serena = serenasAgain.find(_.name == "Serena") - serena.flatMap(_.dob).get shouldBe newDoB.get - } - } - } - } - - "delete a player from the table by name" in { - val deleteAction = playerTable.filter(_.name === "Nadal").delete - db.run(deleteAction) flatMap { deleteStatus => - deleteStatus shouldBe 1 - - db.run(playerTable.filter(_.name === "Nadal").result) map { nadal => - nadal shouldBe empty - } - } - } - - "combine multiple actions together and execute" in { - val player1 = Player(100L, "Steffi", "Germany", None) - val player2 = Player(100L, "Sharapova", "Russia", None) - - val insertAction = playerTable += player1 - val insertAnotherAction = playerTable += player2 - val updateAction = playerTable - .filter(_.name === "Federer") - .map(_.country) - .update("Swiss") - val combinedAction = - DBIO.seq(insertAction, updateAction, insertAnotherAction) - db.run[Unit] { - combinedAction.transactionally - } flatMap { _ => - db.run(playerTable.result) map { allPlayers => - allPlayers should contain allOf (player1, player2) - allPlayers.find(_.name == "Federer").map(_.country) should contain( - "Swiss" - ) - } - } - } - - "rollback the entire transaction if a failure occur" in { - val steffi = Player(100L, "Steffi", "Germany", None) - val sharapova = Player(100L, "Sharapova", "Russia", None) - // doing force insert to make the second insertion fail - val insertAction1 = playerTable.forceInsert(steffi) - val insertAction2 = playerTable.forceInsert(sharapova) - val transactionAction = insertAction1.andThen(insertAction2) - - recoverToExceptionIf[SQLException] { - db.run(transactionAction.transactionally) - } flatMap { ex => - ex.getMessage should include("primary key violation") - - db.run(playerTable.result) map { allPlayers => - allPlayers should contain noneOf (steffi, sharapova) - } - } - } - - "update multiple records in a single query" in { - val updateMultipleAction = playerTable - .filter(_.country === "Swiss") - .map(_.country) - .update("Switzerland") - val updatedRowsFut = db.run(updateMultipleAction) - updatedRowsFut flatMap { updatedRows => - updatedRows shouldBe 2 - - db.run(playerTable.filter(_.country === "Switzerland").result) map { - swissPlayers => - swissPlayers.size shouldBe 2 - swissPlayers - .map(_.name) should contain allElementsOf (Seq( - "Federer", - "Hingis" - )) - } - } - } - } - - "retrieve the records from the database using sql interpolator" in { - val selectCountryAction: DBIO[Seq[String]] = - sql"""select "name" from "Player" where "country" = 'Spain' """.as[String] - db.run(selectCountryAction) map { spainPlayers => - spainPlayers.size shouldBe 1 - spainPlayers.head shouldBe "Nadal" - } - } - - // This val will be initialized once for test suite with the result of a Future call to create a Table - private val createTableFut = createTable - private val federer = - Player(0L, "Federer", "Swiss", Some(LocalDate.parse("1981-08-08"))) - private val nadal = - Player(0L, "Nadal", "Spain", Some(LocalDate.parse("1986-06-03"))) - private val serena = Player(0L, "Serena", "USA", None) - private val murray = Player(0L, "Murray", "Britain", None) - private val higis = Player(0L, "Hingis", "Swiss", None) - private val players = Seq(federer, nadal, serena, murray, higis) - - // Implicit comparator to skip ID field comparison - implicit private val aEq: Equality[Player] = (a: Player, b: Any) => - b match { - case Player(_, name, country, dob) => - a.name == name && a.country == country && a.dob == dob - case _ => false - } - - override def withFixture(test: NoArgAsyncTest) = - new FutureOutcome(for { - _ <- createTableFut - _ <- clearAll - // Insert multiple players together using ++= - _ <- db.run(playerTable ++= players) - testResult <- super.withFixture(test).toFuture - } yield { - testResult - }) - - def createTable: Future[Int] = { - val createQuery: DBIO[Int] = - sqlu"""create table "Player"( - "player_id" bigserial primary key, - "name" varchar not null, - "country" varchar not null, - "dob" date - ) """ - - db.run(createQuery) - } - - def clearAll: Future[Int] = { - db.run(playerTable.delete) - } -} diff --git a/scala-libraries-persistence/src/test/resources/logback-test.xml b/scala-libraries-persistence/src/test/resources/logback-test.xml new file mode 100644 index 000000000..f35180c79 --- /dev/null +++ b/scala-libraries-persistence/src/test/resources/logback-test.xml @@ -0,0 +1,24 @@ + + + + + myapp.log + false + + myapp_%d{yyyy-MM-dd}.log + + + [%date{ISO8601}] [%level] [%logger] [%marker] [%thread] - %msg MDC: {%mdc}%n + + + + + 8192 + true + + + + + + + \ No newline at end of file diff --git a/scala-libraries-persistence/src/test/scala/com/baeldung/scala/slick/PlayerServiceUnitTest.scala b/scala-libraries-persistence/src/test/scala/com/baeldung/scala/slick/PlayerServiceUnitTest.scala index 61747ef0a..c4f3b8f1a 100644 --- a/scala-libraries-persistence/src/test/scala/com/baeldung/scala/slick/PlayerServiceUnitTest.scala +++ b/scala-libraries-persistence/src/test/scala/com/baeldung/scala/slick/PlayerServiceUnitTest.scala @@ -1,231 +1,231 @@ -//package com.baeldung.scala.slick -// -//import java.sql.SQLException -//import java.time.LocalDate -//import com.baeldung.scala.slick.SlickTables.PlayerTable -//import org.scalactic.Equality -//import org.scalatest.concurrent.ScalaFutures -//import org.scalatest.matchers.should.Matchers -//import org.scalatest.wordspec.AsyncWordSpec -//import org.scalatest.{BeforeAndAfterAll, BeforeAndAfterEach, FutureOutcome} -//import slick.jdbc.H2Profile.api._ -// -//import scala.concurrent.Future -// -//class PlayerServiceUnitTest -// extends AsyncWordSpec -// with Matchers -// with ScalaFutures -// with BeforeAndAfterAll -// with BeforeAndAfterEach { -// -// private val playerTable = TableQuery[PlayerTable] -// lazy val db = Connection.db -// -// "PlayerService" should { -// "insert a player to the table and filter by country" in { -// val player = Player(100L, "Steffi", "Germany", None) -// val insertPlayerQuery = playerTable += player -// val insertResult: Future[Int] = db.run(insertPlayerQuery) -// insertResult flatMap { insertStatus => -// insertStatus shouldBe 1 -// -// // get inserted record from database and check -// val germanPlayersQuery = playerTable.filter(_.country === "Germany") -// val germanPlayers: Future[Seq[Player]] = -// db.run(germanPlayersQuery.result) -// germanPlayers map { allPlayers => -// allPlayers.find(_.name == "Steffi").get shouldEqual player -// } -// } -// } -// -// "insert multiple players together" in { -// val steffi = Player(100L, "Steffi", "Germany", None) -// val sharapova = Player(100L, "Sharapova", "Russia", None) -// -// db.run(playerTable ++= (Seq(steffi, sharapova))) flatMap { -// insertMultipleResult => -// insertMultipleResult should contain(2) -// -// db.run(playerTable.result) map { playersFromDB => -// playersFromDB should contain allElementsOf (Seq(steffi, sharapova)) -// playersFromDB -// .map(_.id) -// .forall(_ > 0) shouldBe true // verify auto-increment field -// } -// } -// } -// -// "insert and then update the country field of a player" in { -// // force insert a record -// val player = Player(500L, "Boris", "Deutschland", None) -// val forceInsertAction = playerTable.forceInsert(player) -// db.run(forceInsertAction).flatMap { insertedResult => -// val updateCountryAction = -// playerTable -// .filter(_.id === 500L) -// .map(_.country) -// .update("Germany") -// db.run(updateCountryAction).flatMap { updateResult => -// db.run(playerTable.filter(_.id === 500L).result).map { filterResult => -// filterResult.size shouldBe 1 -// filterResult.head.country shouldBe "Germany" -// } -// } -// } -// } -// -// "update DoB field of a player" in { -// db.run(playerTable.filter(_.name === "Serena").result) flatMap { -// foundSerena => -// foundSerena should not be empty -// -// val newDoB = Option(LocalDate.parse("1981-09-26")) -// db.run( -// playerTable -// .filter(_.id === foundSerena.head.id) -// .map(_.dob) -// .update(newDoB) -// ) flatMap { updateResult => -// updateResult shouldBe 1 -// -// db.run(playerTable.result) map { serenasAgain => -// val serena = serenasAgain.find(_.name == "Serena") -// serena.flatMap(_.dob).get shouldBe newDoB.get -// } -// } -// } -// } -// -// "delete a player from the table by name" in { -// val deleteAction = playerTable.filter(_.name === "Nadal").delete -// db.run(deleteAction) flatMap { deleteStatus => -// deleteStatus shouldBe 1 -// -// db.run(playerTable.filter(_.name === "Nadal").result) map { nadal => -// nadal shouldBe empty -// } -// } -// } -// -// "combine multiple actions together and execute" in { -// val player1 = Player(100L, "Steffi", "Germany", None) -// val player2 = Player(100L, "Sharapova", "Russia", None) -// -// val insertAction = playerTable += player1 -// val insertAnotherAction = playerTable += player2 -// val updateAction = playerTable -// .filter(_.name === "Federer") -// .map(_.country) -// .update("Swiss") -// val combinedAction = -// DBIO.seq(insertAction, updateAction, insertAnotherAction) -// db.run[Unit] { -// combinedAction.transactionally -// } flatMap { _ => -// db.run(playerTable.result) map { allPlayers => -// allPlayers should contain allOf (player1, player2) -// allPlayers.find(_.name == "Federer").map(_.country) should contain( -// "Swiss" -// ) -// } -// } -// } -// -// "rollback the entire transaction if a failure occur" in { -// val steffi = Player(100L, "Steffi", "Germany", None) -// val sharapova = Player(100L, "Sharapova", "Russia", None) -// // doing force insert to make the second insertion fail -// val insertAction1 = playerTable.forceInsert(steffi) -// val insertAction2 = playerTable.forceInsert(sharapova) -// val transactionAction = insertAction1.andThen(insertAction2) -// -// recoverToExceptionIf[SQLException] { -// db.run(transactionAction.transactionally) -// } flatMap { ex => -// ex.getMessage should include("primary key violation") -// -// db.run(playerTable.result) map { allPlayers => -// allPlayers should contain noneOf (steffi, sharapova) -// } -// } -// } -// -// "update multiple records in a single query" in { -// val updateMultipleAction = playerTable -// .filter(_.country === "Swiss") -// .map(_.country) -// .update("Switzerland") -// val updatedRowsFut = db.run(updateMultipleAction) -// updatedRowsFut flatMap { updatedRows => -// updatedRows shouldBe 2 -// -// db.run(playerTable.filter(_.country === "Switzerland").result) map { -// swissPlayers => -// swissPlayers.size shouldBe 2 -// swissPlayers -// .map(_.name) should contain allElementsOf (Seq( -// "Federer", -// "Hingis" -// )) -// } -// } -// } -// } -// -// "retrieve the records from the database using sql interpolator" in { -// val selectCountryAction: DBIO[Seq[String]] = -// sql"""select "name" from "Player" where "country" = 'Spain' """.as[String] -// db.run(selectCountryAction) map { spainPlayers => -// spainPlayers.size shouldBe 1 -// spainPlayers.head shouldBe "Nadal" -// } -// } -// -// // This val will be initialized once for test suite with the result of a Future call to create a Table -// private val createTableFut = createTable -// private val federer = -// Player(0L, "Federer", "Swiss", Some(LocalDate.parse("1981-08-08"))) -// private val nadal = -// Player(0L, "Nadal", "Spain", Some(LocalDate.parse("1986-06-03"))) -// private val serena = Player(0L, "Serena", "USA", None) -// private val murray = Player(0L, "Murray", "Britain", None) -// private val higis = Player(0L, "Hingis", "Swiss", None) -// private val players = Seq(federer, nadal, serena, murray, higis) -// -// // Implicit comparator to skip ID field comparison -// implicit private val aEq: Equality[Player] = (a: Player, b: Any) => -// b match { -// case Player(_, name, country, dob) => -// a.name == name && a.country == country && a.dob == dob -// case _ => false -// } -// -// override def withFixture(test: NoArgAsyncTest) = -// new FutureOutcome(for { -// _ <- createTableFut -// _ <- clearAll -// // Insert multiple players together using ++= -// _ <- db.run(playerTable ++= players) -// testResult <- super.withFixture(test).toFuture -// } yield { -// testResult -// }) -// -// def createTable: Future[Int] = { -// val createQuery: DBIO[Int] = -// sqlu"""create table "Player"( -// "player_id" bigserial primary key, -// "name" varchar not null, -// "country" varchar not null, -// "dob" date -// ) """ -// -// db.run(createQuery) -// } -// -// def clearAll: Future[Int] = { -// db.run(playerTable.delete) -// } -//} +package com.baeldung.scala.slick + +import java.sql.SQLException +import java.time.LocalDate +import com.baeldung.scala.slick.SlickTables.PlayerTable +import org.scalactic.Equality +import org.scalatest.concurrent.ScalaFutures +import org.scalatest.matchers.should.Matchers +import org.scalatest.wordspec.AsyncWordSpec +import org.scalatest.{BeforeAndAfterAll, BeforeAndAfterEach, FutureOutcome} + +import scala.concurrent.Future + +class PlayerServiceUnitTest + extends AsyncWordSpec + with Matchers + with ScalaFutures + with BeforeAndAfterAll + with BeforeAndAfterEach { + + import slick.jdbc.H2Profile.api._ + private val playerTable = TableQuery[PlayerTable] + lazy val db = Connection.db + + "PlayerService" should { + "insert a player to the table and filter by country" in { + val player = Player(100L, "Steffi", "Germany", None) + val insertPlayerQuery = playerTable += player + val insertResult: Future[Int] = db.run(insertPlayerQuery) + insertResult flatMap { insertStatus => + insertStatus shouldBe 1 + + // get inserted record from database and check + val germanPlayersQuery = playerTable.filter(_.country === "Germany") + val germanPlayers: Future[Seq[Player]] = + db.run(germanPlayersQuery.result) + germanPlayers map { allPlayers => + allPlayers.find(_.name == "Steffi").get shouldEqual player + } + } + } + + "insert multiple players together" in { + val steffi = Player(100L, "Steffi", "Germany", None) + val sharapova = Player(100L, "Sharapova", "Russia", None) + + db.run(playerTable ++= (Seq(steffi, sharapova))) flatMap { + insertMultipleResult => + insertMultipleResult should contain(2) + + db.run(playerTable.result) map { playersFromDB => + playersFromDB should contain allElementsOf (Seq(steffi, sharapova)) + playersFromDB + .map(_.id) + .forall(_ > 0) shouldBe true // verify auto-increment field + } + } + } + + "insert and then update the country field of a player" in { + // force insert a record + val player = Player(500L, "Boris", "Deutschland", None) + val forceInsertAction = playerTable.forceInsert(player) + db.run(forceInsertAction).flatMap { insertedResult => + val updateCountryAction = + playerTable + .filter(_.id === 500L) + .map(_.country) + .update("Germany") + db.run(updateCountryAction).flatMap { updateResult => + db.run(playerTable.filter(_.id === 500L).result).map { filterResult => + filterResult.size shouldBe 1 + filterResult.head.country shouldBe "Germany" + } + } + } + } + + "update DoB field of a player" in { + db.run(playerTable.filter(_.name === "Serena").result) flatMap { + foundSerena => + foundSerena should not be empty + + val newDoB = Option(LocalDate.parse("1981-09-26")) + db.run( + playerTable + .filter(_.id === foundSerena.head.id) + .map(_.dob) + .update(newDoB) + ) flatMap { updateResult => + updateResult shouldBe 1 + + db.run(playerTable.result) map { serenasAgain => + val serena = serenasAgain.find(_.name == "Serena") + serena.flatMap(_.dob).get shouldBe newDoB.get + } + } + } + } + + "delete a player from the table by name" in { + val deleteAction = playerTable.filter(_.name === "Nadal").delete + db.run(deleteAction) flatMap { deleteStatus => + deleteStatus shouldBe 1 + + db.run(playerTable.filter(_.name === "Nadal").result) map { nadal => + nadal shouldBe empty + } + } + } + + "combine multiple actions together and execute" in { + val player1 = Player(100L, "Steffi", "Germany", None) + val player2 = Player(100L, "Sharapova", "Russia", None) + + val insertAction = playerTable += player1 + val insertAnotherAction = playerTable += player2 + val updateAction = playerTable + .filter(_.name === "Federer") + .map(_.country) + .update("Swiss") + val combinedAction = + DBIO.seq(insertAction, updateAction, insertAnotherAction) + db.run[Unit] { + combinedAction.transactionally + } flatMap { _ => + db.run(playerTable.result) map { allPlayers => + allPlayers should contain allOf (player1, player2) + allPlayers.find(_.name == "Federer").map(_.country) should contain( + "Swiss" + ) + } + } + } + + "rollback the entire transaction if a failure occur" in { + val steffi = Player(100L, "Steffi", "Germany", None) + val sharapova = Player(100L, "Sharapova", "Russia", None) + // doing force insert to make the second insertion fail + val insertAction1 = playerTable.forceInsert(steffi) + val insertAction2 = playerTable.forceInsert(sharapova) + val transactionAction = insertAction1.andThen(insertAction2) + + recoverToExceptionIf[SQLException] { + db.run(transactionAction.transactionally) + } flatMap { ex => + ex.getMessage should include("primary key violation") + + db.run(playerTable.result) map { allPlayers => + allPlayers should contain noneOf (steffi, sharapova) + } + } + } + + "update multiple records in a single query" in { + val updateMultipleAction = playerTable + .filter(_.country === "Swiss") + .map(_.country) + .update("Switzerland") + val updatedRowsFut = db.run(updateMultipleAction) + updatedRowsFut flatMap { updatedRows => + updatedRows shouldBe 2 + + db.run(playerTable.filter(_.country === "Switzerland").result) map { + swissPlayers => + swissPlayers.size shouldBe 2 + swissPlayers + .map(_.name) should contain allElementsOf (Seq( + "Federer", + "Hingis" + )) + } + } + } + } + + "retrieve the records from the database using sql interpolator" in { + val selectCountryAction: DBIO[Seq[String]] = + sql"""select "name" from "Player" where "country" = 'Spain' """.as[String] + db.run(selectCountryAction) map { spainPlayers => + spainPlayers.size shouldBe 1 + spainPlayers.head shouldBe "Nadal" + } + } + + // This val will be initialized once for test suite with the result of a Future call to create a Table + private val createTableFut = createTable + private val federer = + Player(0L, "Federer", "Swiss", Some(LocalDate.parse("1981-08-08"))) + private val nadal = + Player(0L, "Nadal", "Spain", Some(LocalDate.parse("1986-06-03"))) + private val serena = Player(0L, "Serena", "USA", None) + private val murray = Player(0L, "Murray", "Britain", None) + private val higis = Player(0L, "Hingis", "Swiss", None) + private val players = Seq(federer, nadal, serena, murray, higis) + + // Implicit comparator to skip ID field comparison + implicit private val aEq: Equality[Player] = (a: Player, b: Any) => + b match { + case Player(_, name, country, dob) => + a.name == name && a.country == country && a.dob == dob + case _ => false + } + + override def withFixture(test: NoArgAsyncTest) = + new FutureOutcome(for { + _ <- createTableFut + _ <- clearAll + // Insert multiple players together using ++= + _ <- db.run(playerTable ++= players) + testResult <- super.withFixture(test).toFuture + } yield { + testResult + }) + + def createTable: Future[Int] = { + val createQuery: DBIO[Int] = + sqlu"""create table "Player"( + "player_id" bigserial primary key, + "name" varchar not null, + "country" varchar not null, + "dob" date + ) """ + + db.run(createQuery) + } + + def clearAll: Future[Int] = { + db.run(playerTable.delete) + } +} From f844f338cd2b08e4eba4f22d550c34ecd93defa9 Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Thu, 4 Apr 2024 00:14:57 +0800 Subject: [PATCH 0483/1318] Update README.md --- scala-core-modules/scala-core-numbers/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-core-modules/scala-core-numbers/README.md b/scala-core-modules/scala-core-numbers/README.md index b12e93f0c..fd4ae9bce 100644 --- a/scala-core-modules/scala-core-numbers/README.md +++ b/scala-core-modules/scala-core-numbers/README.md @@ -4,4 +4,4 @@ - [Check if a Number Is Prime in Scala](https://www.baeldung.com/scala/check-number-prime) - [Generating the Fibonacci Sequence in Scala](https://www.baeldung.com/scala/generating-fibonacci-series) - [Find Factorial of a Number in Scala](https://www.baeldung.com/scala/find-factorial) -- [Check if a Number Is Power of Two in Scala](https://www.baeldung.com/scala/check-power-of-two) \ No newline at end of file +- [Check if a Number Is a Power of Two in Scala](https://www.baeldung.com/scala/check-power-of-two) From cdf220f9e4ca1263bc27b91dcfc9e490ac66bd8e Mon Sep 17 00:00:00 2001 From: Bruno Unna Date: Wed, 3 Apr 2024 21:03:20 +0100 Subject: [PATCH 0484/1318] Propose dependencies for the ZIO Prelude article --- build.sbt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/build.sbt b/build.sbt index bf9e17829..b7a0f171c 100644 --- a/build.sbt +++ b/build.sbt @@ -622,6 +622,8 @@ lazy val zio = (project in file("zio")) libraryDependencies += zioTestSbt, libraryDependencies += "dev.zio" %% "zio-kafka" % "2.7.4", libraryDependencies += zioJsonDep, + libraryDependencies += "dev.zio" %% "zio-prelude" % "1.0.0-RC23", + libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.17" % Test, testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework") ) From 8b4038a6a3f13f5586677ff92c6738ca7b196398 Mon Sep 17 00:00:00 2001 From: Bruno Unna Date: Wed, 3 Apr 2024 21:04:20 +0100 Subject: [PATCH 0485/1318] Create a simple example of type classes --- .../scala/zio/prelude/typeclass/Demo.scala | 12 +++++++ .../zio/prelude/typeclass/Printable.scala | 32 +++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 zio/src/main/scala/com/baeldung/scala/zio/prelude/typeclass/Demo.scala create mode 100644 zio/src/main/scala/com/baeldung/scala/zio/prelude/typeclass/Printable.scala diff --git a/zio/src/main/scala/com/baeldung/scala/zio/prelude/typeclass/Demo.scala b/zio/src/main/scala/com/baeldung/scala/zio/prelude/typeclass/Demo.scala new file mode 100644 index 000000000..0e3865b97 --- /dev/null +++ b/zio/src/main/scala/com/baeldung/scala/zio/prelude/typeclass/Demo.scala @@ -0,0 +1,12 @@ +package com.baeldung.scala.zio.prelude.typeclass + +import com.baeldung.scala.zio.prelude.typeclass.Printable._ + +object Demo extends App { + private def printAny[A](value: A)(implicit printable: Printable[A]): Unit = { + println(printable.format(value)) + } + + printAny("Hello") // Prints "Hello" + printAny(10) // Prints "10" +} diff --git a/zio/src/main/scala/com/baeldung/scala/zio/prelude/typeclass/Printable.scala b/zio/src/main/scala/com/baeldung/scala/zio/prelude/typeclass/Printable.scala new file mode 100644 index 000000000..f14b3cd50 --- /dev/null +++ b/zio/src/main/scala/com/baeldung/scala/zio/prelude/typeclass/Printable.scala @@ -0,0 +1,32 @@ +package com.baeldung.scala.zio.prelude.typeclass + +/** + * Type class that instructs implementing types to be able to be formatted as strings. + * + * @tparam A type that needs to implement the trait + */ +trait Printable[A] { + /** + * Any type A that implements this trait must be able to present itself as a string. + * + * @param value instance of type [[A]] that implements the type class + * @return string representation of the parameter `value` + */ + def format(value: A): String +} + +/** + * Provides implementations of the [[Printable]] type class for types [[String]] and [[Int]]. + */ +object Printable { + + /** + * Implementation of the [[Printable]] type class for [[String]]. + */ + implicit val stringPrintable: Printable[String] = (value: String) => value + + /** + * Implementation of the [[Printable]] type class for [[Int]]. + */ + implicit val intPrintable: Printable[Int] = (value: Int) => value.toString +} From 836c1bb7ec5e730ddddde97f7bef67fe915b42e0 Mon Sep 17 00:00:00 2001 From: Bruno Unna Date: Wed, 3 Apr 2024 21:04:49 +0100 Subject: [PATCH 0486/1318] Write a combined average class and test --- .../prelude/averages/CombinedAverage.scala | 28 ++++++++++++++++ .../averages/CombinedAverageTest.scala | 33 +++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 zio/src/main/scala/com/baeldung/scala/zio/prelude/averages/CombinedAverage.scala create mode 100644 zio/src/test/scala/com/baeldung/scala/zio/prelude/averages/CombinedAverageTest.scala diff --git a/zio/src/main/scala/com/baeldung/scala/zio/prelude/averages/CombinedAverage.scala b/zio/src/main/scala/com/baeldung/scala/zio/prelude/averages/CombinedAverage.scala new file mode 100644 index 000000000..bad859cdb --- /dev/null +++ b/zio/src/main/scala/com/baeldung/scala/zio/prelude/averages/CombinedAverage.scala @@ -0,0 +1,28 @@ +package com.baeldung.scala.zio.prelude.averages + +import zio.prelude._ + +/** A combined average class that takes into consideration the need of carrying + * the count of elements. + * + * @param sum + * average of elements + * @param count + * number of elements + */ +case class CombinedAverage(sum: Double, count: Int) + +object CombinedAverage { + implicit val AvgAssociative: Associative[CombinedAverage] = { + new Associative[CombinedAverage] { + override def combine( + l: => CombinedAverage, + r: => CombinedAverage + ): CombinedAverage = { + val sum = l.sum * l.count + r.sum * r.count + val count = l.count + r.count + CombinedAverage(sum / count, count) + } + } + } +} diff --git a/zio/src/test/scala/com/baeldung/scala/zio/prelude/averages/CombinedAverageTest.scala b/zio/src/test/scala/com/baeldung/scala/zio/prelude/averages/CombinedAverageTest.scala new file mode 100644 index 000000000..e9a65de1a --- /dev/null +++ b/zio/src/test/scala/com/baeldung/scala/zio/prelude/averages/CombinedAverageTest.scala @@ -0,0 +1,33 @@ +package com.baeldung.scala.zio.prelude.averages + +import com.baeldung.scala.zio.prelude.averages.CombinedAverage.* +import org.scalatest.wordspec.AnyWordSpec +import zio.prelude.AssociativeOps + +class CombinedAverageTest extends AnyWordSpec { + val avg1: Double = (2.0 + 3.0 + 4.0) / 3 // avg1 is 3.0 + val avg2: Double = (10.0 + 11.0) / 2 // avg2 is 10.5 + + "a simple average" should { + "sum its elements and divide them by their count" in { + assertResult(3.0)(avg1) + assertResult(10.5)(avg2) + } + "not be associative" in { + val avgAvg = (avg1 + avg2) / 2 + + // if "average" were associative, the average of the two averages + // would be 6, but it's 6.75 instead! + assert(avgAvg != 6.0) + } + } + + "a smarter average" should { + "properly combine partial averages" in { + val avg1 = CombinedAverage(3.0, 3) + val avg2 = CombinedAverage(10.5, 2) + val avgAvg = avg1 <> avg2 + assertResult(CombinedAverage(6.0, 5))(avgAvg) + } + } +} From 231ec81dbfc62c96f7e918b1fcd4c0c30a49c13a Mon Sep 17 00:00:00 2001 From: Bruno Unna Date: Wed, 3 Apr 2024 21:05:30 +0100 Subject: [PATCH 0487/1318] Adapt the voting example from documentation --- .../scala/zio/prelude/voting/Voting.scala | 28 +++++++++++++++++++ .../scala/zio/prelude/voting/VotingTest.scala | 26 +++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 zio/src/main/scala/com/baeldung/scala/zio/prelude/voting/Voting.scala create mode 100644 zio/src/test/scala/com/baeldung/scala/zio/prelude/voting/VotingTest.scala diff --git a/zio/src/main/scala/com/baeldung/scala/zio/prelude/voting/Voting.scala b/zio/src/main/scala/com/baeldung/scala/zio/prelude/voting/Voting.scala new file mode 100644 index 000000000..a518cfbbe --- /dev/null +++ b/zio/src/main/scala/com/baeldung/scala/zio/prelude/voting/Voting.scala @@ -0,0 +1,28 @@ +package com.baeldung.scala.zio.prelude.voting + +import zio.prelude._ + +object Voting { + + object Votes extends Subtype[Int] { + implicit val associativeVotes: Associative[Votes] = + new Associative[Votes] { + override def combine(l: => Votes, r: => Votes): Votes = + Votes(l + r) + } + } + + private type Votes = Votes.Type + + object Topic extends Subtype[String] + + private type Topic = Topic.Type + + final case class VoteState(map: Map[Topic, Votes]) { + self => + def combine(that: VoteState): VoteState = + VoteState(self.map combine that.map) + + } + +} diff --git a/zio/src/test/scala/com/baeldung/scala/zio/prelude/voting/VotingTest.scala b/zio/src/test/scala/com/baeldung/scala/zio/prelude/voting/VotingTest.scala new file mode 100644 index 000000000..e6a9f2277 --- /dev/null +++ b/zio/src/test/scala/com/baeldung/scala/zio/prelude/voting/VotingTest.scala @@ -0,0 +1,26 @@ +package com.baeldung.scala.zio.prelude.voting + +import org.scalatest.wordspec.AnyWordSpec + +class VotingTest extends AnyWordSpec { + + import Voting._ + + "a voting object" should { + "correctly combine vote states" in { + val zioHttp = Topic("zio-http") + val uziHttp = Topic("uzi-http") + val zioTlsHttp = Topic("zio-tls-http") + + val leftVotes = VoteState(Map(zioHttp -> Votes(4), uziHttp -> Votes(2))) + val rightVotes = + VoteState(Map(zioHttp -> Votes(2), zioTlsHttp -> Votes(2))) + + val totalVotes = leftVotes combine rightVotes + + assertResult(Votes(6))(totalVotes.map(zioHttp)) + assertResult(Votes(2))(totalVotes.map(uziHttp)) + assertResult(Votes(2))(totalVotes.map(zioTlsHttp)) + } + } +} From bdbe44d22fa2c5c889c5117a43b94f55c0e849d8 Mon Sep 17 00:00:00 2001 From: Bruno Unna Date: Wed, 3 Apr 2024 21:06:20 +0100 Subject: [PATCH 0488/1318] Implement word count in three abstraction levels --- .../zio/prelude/mapreduce/MapReduce.scala | 27 +++++++++++++++++ .../zio/prelude/mapreduce/MapReduceTest.scala | 29 +++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 zio/src/main/scala/com/baeldung/scala/zio/prelude/mapreduce/MapReduce.scala create mode 100644 zio/src/test/scala/com/baeldung/scala/zio/prelude/mapreduce/MapReduceTest.scala diff --git a/zio/src/main/scala/com/baeldung/scala/zio/prelude/mapreduce/MapReduce.scala b/zio/src/main/scala/com/baeldung/scala/zio/prelude/mapreduce/MapReduce.scala new file mode 100644 index 000000000..a336de15b --- /dev/null +++ b/zio/src/main/scala/com/baeldung/scala/zio/prelude/mapreduce/MapReduce.scala @@ -0,0 +1,27 @@ +package com.baeldung.scala.zio.prelude.mapreduce + +import zio.prelude._ + +object MapReduce { + implicit val intIdentity: Identity[Int] = Identity.make(0, (a, b) => a + b) + + implicit val intAssociative: Associative[Int] = + new Associative[Int] { + def combine(left: => Int, right: => Int): Int = + left + right + } + + def mapReduce[A, B](as: List[A])(f: A => B)(implicit identity: Identity[B]): B = + as.map(f).toNonEmptyList.map(_.reduce1).getOrElse(identity.identity) + + def mapReduce2[F[+_] : ForEach, A, B: Identity](as: F[A])(f: A => B): B = as.foldMap(f) + + private val wordsPerLine: String => Int = _.split(" ").length + + def wordCount(lines: List[String]): Int = lines.map(wordsPerLine).sum + + def wordCountAbstract(as: List[String]): Int = mapReduce(as)(wordsPerLine) + + def wordCountVeryAbstract(as: List[String]): Int = mapReduce2(as)(wordsPerLine) + +} diff --git a/zio/src/test/scala/com/baeldung/scala/zio/prelude/mapreduce/MapReduceTest.scala b/zio/src/test/scala/com/baeldung/scala/zio/prelude/mapreduce/MapReduceTest.scala new file mode 100644 index 000000000..b3564a86d --- /dev/null +++ b/zio/src/test/scala/com/baeldung/scala/zio/prelude/mapreduce/MapReduceTest.scala @@ -0,0 +1,29 @@ +package com.baeldung.scala.zio.prelude.mapreduce + +import org.scalatest.wordspec.AnyWordSpec + +class MapReduceTest extends AnyWordSpec { + + import MapReduce._ + + val book: List[String] = + "This eBook is for the use of anyone anywhere at no cost and with" :: + "almost no restrictions whatsoever. You may copy it, give it away or" :: + "re-use it under the terms of the Project Gutenberg License included" :: + "with this eBook or online at www.gutenberg.org" :: Nil + + "MapReduce" should { + "count correctly words without abstractions" in { + val n = wordCount(book) + assertResult(45)(n) + } + "count correctly words abstracting the map function" in { + val n = wordCountAbstract(book) + assertResult(45)(n) + } + "count correctly words abstracting also the data structure" in { + val n = wordCountVeryAbstract(book) + assertResult(45)(n) + } + } +} From 4adb85802b925299ab29159c1545d290e5510eec Mon Sep 17 00:00:00 2001 From: Matteo Di Pirro Date: Thu, 4 Apr 2024 08:41:30 +0200 Subject: [PATCH 0489/1318] SCALA-612 Add code for integration tests article --- scala-sbt/integration-tests-post-1-9-0/build.sbt | 13 +++++++++++++ .../src/test/scala/com/baeldung/it/SampleTest.scala | 9 +++++++++ .../project/build.properties | 1 + scala-sbt/integration-tests-pre-1-9-0/build.sbt | 11 +++++++++++ .../project/build.properties | 1 + .../src/it/scala/com/baeldung/it/SampleTest.scala | 9 +++++++++ 6 files changed, 44 insertions(+) create mode 100644 scala-sbt/integration-tests-post-1-9-0/build.sbt create mode 100644 scala-sbt/integration-tests-post-1-9-0/integration/src/test/scala/com/baeldung/it/SampleTest.scala create mode 100644 scala-sbt/integration-tests-post-1-9-0/project/build.properties create mode 100644 scala-sbt/integration-tests-pre-1-9-0/build.sbt create mode 100644 scala-sbt/integration-tests-pre-1-9-0/project/build.properties create mode 100644 scala-sbt/integration-tests-pre-1-9-0/src/it/scala/com/baeldung/it/SampleTest.scala diff --git a/scala-sbt/integration-tests-post-1-9-0/build.sbt b/scala-sbt/integration-tests-post-1-9-0/build.sbt new file mode 100644 index 000000000..551cdbe92 --- /dev/null +++ b/scala-sbt/integration-tests-post-1-9-0/build.sbt @@ -0,0 +1,13 @@ +name := "sbt-integration-tests-post-1-9-0" +version := "1.0.0" + +ThisBuild / scalaVersion := "3.2.0" + +lazy val root = (project in file(".")) + +lazy val integration = (project in file("integration")) + .dependsOn(root) + .settings( + publish / skip := true, + libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.17" % Test + ) diff --git a/scala-sbt/integration-tests-post-1-9-0/integration/src/test/scala/com/baeldung/it/SampleTest.scala b/scala-sbt/integration-tests-post-1-9-0/integration/src/test/scala/com/baeldung/it/SampleTest.scala new file mode 100644 index 000000000..e804cd765 --- /dev/null +++ b/scala-sbt/integration-tests-post-1-9-0/integration/src/test/scala/com/baeldung/it/SampleTest.scala @@ -0,0 +1,9 @@ +package com.baeldung.it + +import org.scalatest.flatspec.AnyFlatSpec + +class SampleTest extends AnyFlatSpec { + "The sample test" should "pass" in { + assert(1 + 1 == 2) + } +} diff --git a/scala-sbt/integration-tests-post-1-9-0/project/build.properties b/scala-sbt/integration-tests-post-1-9-0/project/build.properties new file mode 100644 index 000000000..abbbce5da --- /dev/null +++ b/scala-sbt/integration-tests-post-1-9-0/project/build.properties @@ -0,0 +1 @@ +sbt.version=1.9.8 diff --git a/scala-sbt/integration-tests-pre-1-9-0/build.sbt b/scala-sbt/integration-tests-pre-1-9-0/build.sbt new file mode 100644 index 000000000..dad925273 --- /dev/null +++ b/scala-sbt/integration-tests-pre-1-9-0/build.sbt @@ -0,0 +1,11 @@ +name := "sbt-integration-tests-pre-1-9-0" +version := "1.0.0" + +ThisBuild / scalaVersion := "3.2.0" + +lazy val root = (project in file(".")) + .configs(IntegrationTest) + .settings( + Defaults.itSettings, + libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.17" % "it" + ) diff --git a/scala-sbt/integration-tests-pre-1-9-0/project/build.properties b/scala-sbt/integration-tests-pre-1-9-0/project/build.properties new file mode 100644 index 000000000..abbbce5da --- /dev/null +++ b/scala-sbt/integration-tests-pre-1-9-0/project/build.properties @@ -0,0 +1 @@ +sbt.version=1.9.8 diff --git a/scala-sbt/integration-tests-pre-1-9-0/src/it/scala/com/baeldung/it/SampleTest.scala b/scala-sbt/integration-tests-pre-1-9-0/src/it/scala/com/baeldung/it/SampleTest.scala new file mode 100644 index 000000000..e804cd765 --- /dev/null +++ b/scala-sbt/integration-tests-pre-1-9-0/src/it/scala/com/baeldung/it/SampleTest.scala @@ -0,0 +1,9 @@ +package com.baeldung.it + +import org.scalatest.flatspec.AnyFlatSpec + +class SampleTest extends AnyFlatSpec { + "The sample test" should "pass" in { + assert(1 + 1 == 2) + } +} From bd29eb828444c70a3aa20e79251e3eaf630c89e5 Mon Sep 17 00:00:00 2001 From: Loredana Crusoveanu Date: Thu, 4 Apr 2024 11:39:11 +0300 Subject: [PATCH 0490/1318] ignore ReactiveMongoUnitTest.scala --- .../baeldung/scala/reactivemongo/ReactiveMongoUnitTest.scala | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scala-libraries-persistence/src/test/scala/com/baeldung/scala/reactivemongo/ReactiveMongoUnitTest.scala b/scala-libraries-persistence/src/test/scala/com/baeldung/scala/reactivemongo/ReactiveMongoUnitTest.scala index 92ceca509..d6faab191 100644 --- a/scala-libraries-persistence/src/test/scala/com/baeldung/scala/reactivemongo/ReactiveMongoUnitTest.scala +++ b/scala-libraries-persistence/src/test/scala/com/baeldung/scala/reactivemongo/ReactiveMongoUnitTest.scala @@ -16,6 +16,10 @@ import reactivemongo.api.Cursor import reactivemongo.api.bson.BSONDocument import reactivemongo.api.bson.collection.BSONCollection +import org.scalatest.Ignore + +@Ignore +// fixing in JAVA-33525 class ReactiveMongoUnitTest extends AsyncWordSpec with Matchers From 6d16e8496baf58ba8d8f27ef25b454c61f76cfff Mon Sep 17 00:00:00 2001 From: Bruno Unna Date: Thu, 4 Apr 2024 09:43:43 +0100 Subject: [PATCH 0491/1318] Let scalafmt decide how my code should look like --- .../zio/prelude/mapreduce/MapReduce.scala | 10 +++-- .../zio/prelude/typeclass/Printable.scala | 42 ++++++++++--------- 2 files changed, 29 insertions(+), 23 deletions(-) diff --git a/zio/src/main/scala/com/baeldung/scala/zio/prelude/mapreduce/MapReduce.scala b/zio/src/main/scala/com/baeldung/scala/zio/prelude/mapreduce/MapReduce.scala index a336de15b..0232e62be 100644 --- a/zio/src/main/scala/com/baeldung/scala/zio/prelude/mapreduce/MapReduce.scala +++ b/zio/src/main/scala/com/baeldung/scala/zio/prelude/mapreduce/MapReduce.scala @@ -11,10 +11,13 @@ object MapReduce { left + right } - def mapReduce[A, B](as: List[A])(f: A => B)(implicit identity: Identity[B]): B = + def mapReduce[A, B](as: List[A])(f: A => B)(implicit + identity: Identity[B] + ): B = as.map(f).toNonEmptyList.map(_.reduce1).getOrElse(identity.identity) - def mapReduce2[F[+_] : ForEach, A, B: Identity](as: F[A])(f: A => B): B = as.foldMap(f) + def mapReduce2[F[+_]: ForEach, A, B: Identity](as: F[A])(f: A => B): B = + as.foldMap(f) private val wordsPerLine: String => Int = _.split(" ").length @@ -22,6 +25,7 @@ object MapReduce { def wordCountAbstract(as: List[String]): Int = mapReduce(as)(wordsPerLine) - def wordCountVeryAbstract(as: List[String]): Int = mapReduce2(as)(wordsPerLine) + def wordCountVeryAbstract(as: List[String]): Int = + mapReduce2(as)(wordsPerLine) } diff --git a/zio/src/main/scala/com/baeldung/scala/zio/prelude/typeclass/Printable.scala b/zio/src/main/scala/com/baeldung/scala/zio/prelude/typeclass/Printable.scala index f14b3cd50..bb0494a8b 100644 --- a/zio/src/main/scala/com/baeldung/scala/zio/prelude/typeclass/Printable.scala +++ b/zio/src/main/scala/com/baeldung/scala/zio/prelude/typeclass/Printable.scala @@ -1,32 +1,34 @@ package com.baeldung.scala.zio.prelude.typeclass -/** - * Type class that instructs implementing types to be able to be formatted as strings. - * - * @tparam A type that needs to implement the trait - */ +/** Type class that instructs implementing types to be able to be formatted as + * strings. + * + * @tparam A + * type that needs to implement the trait + */ trait Printable[A] { - /** - * Any type A that implements this trait must be able to present itself as a string. - * - * @param value instance of type [[A]] that implements the type class - * @return string representation of the parameter `value` - */ + + /** Any type A that implements this trait must be able to present itself as a + * string. + * + * @param value + * instance of type [[A]] that implements the type class + * @return + * string representation of the parameter `value` + */ def format(value: A): String } -/** - * Provides implementations of the [[Printable]] type class for types [[String]] and [[Int]]. - */ +/** Provides implementations of the [[Printable]] type class for types + * [[String]] and [[Int]]. + */ object Printable { - /** - * Implementation of the [[Printable]] type class for [[String]]. - */ + /** Implementation of the [[Printable]] type class for [[String]]. + */ implicit val stringPrintable: Printable[String] = (value: String) => value - /** - * Implementation of the [[Printable]] type class for [[Int]]. - */ + /** Implementation of the [[Printable]] type class for [[Int]]. + */ implicit val intPrintable: Printable[Int] = (value: Int) => value.toString } From 125058eece1d9ba4c9e83ccc441631269966a06a Mon Sep 17 00:00:00 2001 From: Loredana Crusoveanu Date: Thu, 4 Apr 2024 11:51:36 +0300 Subject: [PATCH 0492/1318] format file --- .../baeldung/scala/reactivemongo/ReactiveMongoUnitTest.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-persistence/src/test/scala/com/baeldung/scala/reactivemongo/ReactiveMongoUnitTest.scala b/scala-libraries-persistence/src/test/scala/com/baeldung/scala/reactivemongo/ReactiveMongoUnitTest.scala index d6faab191..66b155f25 100644 --- a/scala-libraries-persistence/src/test/scala/com/baeldung/scala/reactivemongo/ReactiveMongoUnitTest.scala +++ b/scala-libraries-persistence/src/test/scala/com/baeldung/scala/reactivemongo/ReactiveMongoUnitTest.scala @@ -19,7 +19,7 @@ import reactivemongo.api.bson.collection.BSONCollection import org.scalatest.Ignore @Ignore -// fixing in JAVA-33525 +// fixing in JAVA-33525 class ReactiveMongoUnitTest extends AsyncWordSpec with Matchers From 70d93d90129b15a224cdc7fa9e87ba49dbc4c92e Mon Sep 17 00:00:00 2001 From: Bruno Unna Date: Thu, 4 Apr 2024 17:27:29 +0100 Subject: [PATCH 0493/1318] Update scalatest to version 3.2.18 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index b7a0f171c..1f4360663 100644 --- a/build.sbt +++ b/build.sbt @@ -623,7 +623,7 @@ lazy val zio = (project in file("zio")) libraryDependencies += "dev.zio" %% "zio-kafka" % "2.7.4", libraryDependencies += zioJsonDep, libraryDependencies += "dev.zio" %% "zio-prelude" % "1.0.0-RC23", - libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.17" % Test, + libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.18" % Test, testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework") ) From d30fb14c79fc4671e73d8d84f79f2b66bee56204 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Thu, 4 Apr 2024 21:43:13 +0200 Subject: [PATCH 0494/1318] Renamed modules in scala-lang --- build.sbt | 12 +++++----- .../scala-core-collections-3/README.md | 1 + .../slidinggrouped/SlidingGroupedTest.scala | 0 .../{scala3-lang-3 => scala-lang-3}/README.md | 3 +-- .../com/baeldung/scala/typelambdas/Main.scala | 0 .../scala/filters/FindFilterCollector.scala | 0 .../immutablearrays/ImmutableArraySpec.scala | 0 .../nonfatal/NonFatalExceptionsTest.scala | 2 +- .../{scala3-lang-2 => scala-lang-4}/README.md | 1 - .../{scala3-lang-2 => scala-lang-4}/build.sbt | 0 .../project/build.properties | 0 .../main/java/com/baeldung/JavaOperator.java | 2 +- .../com/baeldung/scala}/TuplesInScala.scala | 3 ++- .../contextualabstractions/Givens.scala | 2 +- .../contextualabstractions/UsingClause.scala | 4 ++-- .../scala}/locally/LocallyBlockSample.scala | 2 +- .../scala}/macros/GenericMacros.scala | 2 +- .../scala}/macros/OddEvenMacros.scala | 2 +- .../baeldung/scala}/mainfeatures/App.scala | 2 +- .../MatchExpressionImprovements.scala | 2 +- .../matchtypes/FirstComponentOfScala2.scala | 2 +- .../scala}/targetname/TargetNameSample.scala | 3 ++- .../transparent/TrasparentTraitDemo.scala | 2 +- .../ThreadUnsafeAnnotationTest.scala | 2 +- .../GivensUsingClauseUnitTest.scala | 5 +++-- .../exportclause/ExportClauseUnitTest.scala | 2 +- .../scala}/locally/LocallyBlockTest.scala | 2 +- .../scala}/macros/GenericMacrosTest.scala | 2 +- .../scala}/macros/OddEvenMacrosTest.scala | 2 +- .../MatchExpressionImprovementstTest.scala | 3 +-- .../FirstComponentOfScala2Spec.scala | 2 +- .../scala}/matchtypes/MatchTypesSpec.scala | 2 +- .../{scala3-lang => scala-lang-5}/README.md | 0 .../project/build.properties | 0 .../com/baeldung/scala3/enum/ADTExample.scala | 0 .../baeldung/scala3/enum/ColorExamples.scala | 0 .../scala3/implicits/ExtensionMethod.scala | 0 .../scala3/implicits/ImplicitConversion.scala | 0 .../ProvidingContextualEnvironment.scala | 0 .../implicits/WritingTypeclassInstances.scala | 0 .../comparison/scala2/Extension.scala | 0 .../scala2/ImplicitConversion.scala | 0 .../comparison/scala2/ImplicitParameter.scala | 0 .../comparison/scala2/ImplicitlyMagic.scala | 0 .../comparison/scala3/Extension.scala | 0 .../scala3/ImplicitConversion.scala | 0 .../comparison/scala3/ImplicitParameter.scala | 0 .../comparison/scala3/ImplicitlyMagic.scala | 0 .../extensions/StringExtensions.scala | 0 .../BasicIntersectionType.scala | 0 .../scala3/intersectiontypes/DuckTyping.scala | 0 .../intersectiontypes/Inheritance.scala | 0 .../intersectiontypes/Overloading.scala | 0 .../inline/InlineCompilerValidation.scala | 0 .../scala3/macros/inline/InlineDef.scala | 0 .../scala3/macros/inline/InlineIf.scala | 0 .../scala3/macros/inline/InlineMatch.scala | 0 .../scala3/macros/inline/InlineParams.scala | 0 .../scala3/macros/inline/InlineVal.scala | 0 .../scala3/macros/inline/InlineValDef.scala | 0 .../macros/inline/TransparentInline.scala | 0 .../scala3/mainmethods/HelloWorld.scala | 0 .../scala3/mainmethods/HelloWorldObject.scala | 0 .../scala3/mainmethods/WithParameters.scala | 0 .../CanEqualDeriveClause.scala | 0 .../CanEqualGivenInstance.scala | 0 .../MultiversalEquality.scala | 0 .../UniversalEquality.scala | 0 .../baeldung/scala3/openclasses/Album.scala | 0 .../scala3/openclasses/DeluxeEdition.scala | 0 .../baeldung/scala3/quitesyntax/Example.scala | 0 .../scala3/traits/ParameterizedTrait.scala | 0 .../scala3/typesystem/CompoundTypes.scala | 0 .../scala3/typesystem/OpaqueTypeAlias.scala | 0 .../implicits/ExtensionMethodUnitTest.scala | 0 .../ImplicitConversionUnitTest.scala | 0 ...ovidingContextualEnvironmentUnitTest.scala | 0 .../comparison/scala2/ExtensionUnitTest.scala | 0 .../scala2/ImplicitConversionUnitTest.scala | 0 .../scala2/ImplicitParameterUnitTest.scala | 0 .../comparison/scala3/ExtensionUnitTest.scala | 0 .../scala3/ImplicitConversionUnitTest.scala | 0 .../scala3/ImplicitParameterUnitTest.scala | 0 .../extensions/ExtensionsUnitTest.scala | 0 .../BasicIntersectionTypeUnitTest.scala | 0 .../DuckTypingUnitTest.scala | 0 .../InheritanceUnitTest.scala | 0 .../OverloadingUnitTest.scala | 0 .../CanEqualDeriveClauseUnitTest.scala | 0 .../CanEqualGivenInstanceUnitTest.scala | 0 .../MultiversalEqualityUnitTest.scala | 0 .../UniversalEqualityUnitTest.scala | 0 .../traits/ParameterizedTraitUnitTest.scala | 0 .../typesystem/CompoundTypesUnitTest.scala | 0 .../typesystem/OpaqueTypeAliasUnitTest.scala | 0 .../scala3/matchtypes/MatchTypes.scala | 22 ------------------- 96 files changed, 35 insertions(+), 56 deletions(-) rename {scala-lang-modules/scala3-lang-3 => scala-core-collections-modules/scala-core-collections-3}/src/test/scala/com/baeldung/scala/slidinggrouped/SlidingGroupedTest.scala (100%) rename scala-lang-modules/{scala3-lang-3 => scala-lang-3}/README.md (68%) rename scala-lang-modules/{scala3-lang-3 => scala-lang-3}/src/main/scala/com/baeldung/scala/typelambdas/Main.scala (100%) rename scala-lang-modules/{scala3-lang-3 => scala-lang-3}/src/test/scala/com/baeldung/scala/filters/FindFilterCollector.scala (100%) rename scala-lang-modules/{scala3-lang-3 => scala-lang-3}/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala (100%) rename scala-lang-modules/{scala3-lang-2/src/test/scala/com/baeldung/scala3 => scala-lang-3/src/test/scala/com/baeldung/scala}/nonfatal/NonFatalExceptionsTest.scala (99%) rename scala-lang-modules/{scala3-lang-2 => scala-lang-4}/README.md (89%) rename scala-lang-modules/{scala3-lang-2 => scala-lang-4}/build.sbt (100%) rename scala-lang-modules/{scala3-lang-2 => scala-lang-4}/project/build.properties (100%) rename scala-lang-modules/{scala3-lang-2 => scala-lang-4}/src/main/java/com/baeldung/JavaOperator.java (79%) rename scala-lang-modules/{scala3-lang-2/src/main/scala/com/baeldung/scala3 => scala-lang-4/src/main/scala/com/baeldung/scala}/TuplesInScala.scala (95%) rename scala-lang-modules/{scala3-lang-2/src/main/scala/com/baeldung/scala3 => scala-lang-4/src/main/scala/com/baeldung/scala}/contextualabstractions/Givens.scala (85%) rename scala-lang-modules/{scala3-lang-2/src/main/scala/com/baeldung/scala3 => scala-lang-4/src/main/scala/com/baeldung/scala}/contextualabstractions/UsingClause.scala (80%) rename scala-lang-modules/{scala3-lang-2/src/main/scala/com/baeldung/scala3 => scala-lang-4/src/main/scala/com/baeldung/scala}/locally/LocallyBlockSample.scala (96%) rename scala-lang-modules/{scala3-lang-2/src/main/scala/com/baeldung/scala3 => scala-lang-4/src/main/scala/com/baeldung/scala}/macros/GenericMacros.scala (89%) rename scala-lang-modules/{scala3-lang-2/src/main/scala/com/baeldung/scala3 => scala-lang-4/src/main/scala/com/baeldung/scala}/macros/OddEvenMacros.scala (96%) rename scala-lang-modules/{scala3-lang-2/src/main/scala/com/baeldung/scala3 => scala-lang-4/src/main/scala/com/baeldung/scala}/mainfeatures/App.scala (97%) rename scala-lang-modules/{scala3-lang-2/src/main/scala/com/baeldung/scala3 => scala-lang-4/src/main/scala/com/baeldung/scala}/matchexpressions/MatchExpressionImprovements.scala (95%) rename scala-lang-modules/{scala3-lang-2/src/main/scala/com/baeldung/scala3 => scala-lang-4/src/main/scala/com/baeldung/scala}/matchtypes/FirstComponentOfScala2.scala (97%) rename scala-lang-modules/{scala3-lang-2/src/main/scala/com/baeldung/scala3 => scala-lang-4/src/main/scala/com/baeldung/scala}/targetname/TargetNameSample.scala (96%) rename scala-lang-modules/{scala3-lang-2/src/main/scala/com/baeldung/scala3 => scala-lang-4/src/main/scala/com/baeldung/scala}/transparent/TrasparentTraitDemo.scala (94%) rename scala-lang-modules/{scala3-lang-2/src/test/scala/com/baeldung/scala3 => scala-lang-4/src/test/scala/com/baeldung/scala}/annotations/ThreadUnsafeAnnotationTest.scala (98%) rename scala-lang-modules/{scala3-lang-2/src/test/scala/com/baeldung/scala3 => scala-lang-4/src/test/scala/com/baeldung/scala}/contextualabstractions/GivensUsingClauseUnitTest.scala (83%) rename scala-lang-modules/{scala3-lang-2/src/test/scala/com/baeldung/scala3 => scala-lang-4/src/test/scala/com/baeldung/scala}/exportclause/ExportClauseUnitTest.scala (98%) rename scala-lang-modules/{scala3-lang-2/src/test/scala/com/baeldung/scala3 => scala-lang-4/src/test/scala/com/baeldung/scala}/locally/LocallyBlockTest.scala (93%) rename scala-lang-modules/{scala3-lang-2/src/test/scala/com/baeldung/scala3 => scala-lang-4/src/test/scala/com/baeldung/scala}/macros/GenericMacrosTest.scala (94%) rename scala-lang-modules/{scala3-lang-2/src/test/scala/com/baeldung/scala3 => scala-lang-4/src/test/scala/com/baeldung/scala}/macros/OddEvenMacrosTest.scala (97%) rename scala-lang-modules/{scala3-lang-2/src/test/scala/com/baeldung/scala3 => scala-lang-4/src/test/scala/com/baeldung/scala}/matchexpressions/MatchExpressionImprovementstTest.scala (93%) rename scala-lang-modules/{scala3-lang-2/src/test/scala/com/baeldung/scala3 => scala-lang-4/src/test/scala/com/baeldung/scala}/matchtypes/FirstComponentOfScala2Spec.scala (96%) rename scala-lang-modules/{scala3-lang-2/src/test/scala/com/baeldung/scala3 => scala-lang-4/src/test/scala/com/baeldung/scala}/matchtypes/MatchTypesSpec.scala (95%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/README.md (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/project/build.properties (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/enum/ADTExample.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/enum/ColorExamples.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/implicits/ExtensionMethod.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/implicits/ImplicitConversion.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/implicits/ProvidingContextualEnvironment.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/implicits/WritingTypeclassInstances.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/Extension.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitConversion.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitParameter.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitlyMagic.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/Extension.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitConversion.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitParameter.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitlyMagic.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/implicits/extensions/StringExtensions.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/intersectiontypes/BasicIntersectionType.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/intersectiontypes/DuckTyping.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/intersectiontypes/Inheritance.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/intersectiontypes/Overloading.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/macros/inline/InlineCompilerValidation.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/macros/inline/InlineDef.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/macros/inline/InlineIf.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/macros/inline/InlineMatch.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/macros/inline/InlineParams.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/macros/inline/InlineVal.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/macros/inline/InlineValDef.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/macros/inline/TransparentInline.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/mainmethods/HelloWorld.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/mainmethods/HelloWorldObject.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/mainmethods/WithParameters.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/multiversalequality/CanEqualDeriveClause.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/multiversalequality/CanEqualGivenInstance.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/multiversalequality/MultiversalEquality.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/multiversalequality/UniversalEquality.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/openclasses/Album.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/openclasses/DeluxeEdition.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/quitesyntax/Example.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/traits/ParameterizedTrait.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/typesystem/CompoundTypes.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/main/scala/com/baeldung/scala3/typesystem/OpaqueTypeAlias.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/test/scala/com/baeldung/scala3/implicits/ExtensionMethodUnitTest.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/test/scala/com/baeldung/scala3/implicits/ImplicitConversionUnitTest.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/test/scala/com/baeldung/scala3/implicits/ProvidingContextualEnvironmentUnitTest.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ExtensionUnitTest.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitConversionUnitTest.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitParameterUnitTest.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ExtensionUnitTest.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitConversionUnitTest.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitParameterUnitTest.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/test/scala/com/baeldung/scala3/implicits/extensions/ExtensionsUnitTest.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/test/scala/com/baeldung/scala3/intersectiontypes/BasicIntersectionTypeUnitTest.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/test/scala/com/baeldung/scala3/intersectiontypes/DuckTypingUnitTest.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/test/scala/com/baeldung/scala3/intersectiontypes/InheritanceUnitTest.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/test/scala/com/baeldung/scala3/intersectiontypes/OverloadingUnitTest.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/test/scala/com/baeldung/scala3/multiversalequality/CanEqualDeriveClauseUnitTest.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/test/scala/com/baeldung/scala3/multiversalequality/CanEqualGivenInstanceUnitTest.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/test/scala/com/baeldung/scala3/multiversalequality/MultiversalEqualityUnitTest.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/test/scala/com/baeldung/scala3/multiversalequality/UniversalEqualityUnitTest.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/test/scala/com/baeldung/scala3/traits/ParameterizedTraitUnitTest.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/test/scala/com/baeldung/scala3/typesystem/CompoundTypesUnitTest.scala (100%) rename scala-lang-modules/{scala3-lang => scala-lang-5}/src/test/scala/com/baeldung/scala3/typesystem/OpaqueTypeAliasUnitTest.scala (100%) delete mode 100644 scala-lang-modules/scala3-lang-2/src/main/scala/com/baeldung/scala3/matchtypes/MatchTypes.scala diff --git a/build.sbt b/build.sbt index bf9e17829..6ad2c79ca 100644 --- a/build.sbt +++ b/build.sbt @@ -582,20 +582,20 @@ lazy val scala_design_patterns = (project in file("scala-design-patterns")) libraryDependencies += "com.novocode" % "junit-interface" % "0.11" % Test ) -lazy val scala3_lang = - (project in file("scala-lang-modules/scala3-lang")).settings( +lazy val scala_lang_5 = + (project in file("scala-lang-modules/scala-lang-5")).settings( libraryDependencies ++= scalaTestDeps, scalaVersion := scala3Version ) -lazy val scala3_lang_2 = - (project in file("scala-lang-modules/scala3-lang-2")).settings( +lazy val scala_lang_4 = + (project in file("scala-lang-modules/scala-lang-4")).settings( libraryDependencies ++= scalaTestDeps, scalaVersion := scala3Version ) -lazy val scala3_lang_3 = - (project in file("scala-lang-modules/scala3-lang-3")).settings( +lazy val scala_lang_3 = + (project in file("scala-lang-modules/scala-lang-3")).settings( libraryDependencies ++= scalaTestDeps, scalaVersion := scala3Version ) diff --git a/scala-core-collections-modules/scala-core-collections-3/README.md b/scala-core-collections-modules/scala-core-collections-3/README.md index 9e6bb52e2..da68dc68a 100644 --- a/scala-core-collections-modules/scala-core-collections-3/README.md +++ b/scala-core-collections-modules/scala-core-collections-3/README.md @@ -7,3 +7,4 @@ - [Implement a Fixed-Size List in Scala](https://www.baeldung.com/scala/list-finite-size) - [Difference Between zip() and lazyZip() in Scala](https://www.baeldung.com/scala/zip-vs-lazyzip) - [Implementing an LRU Cache in Scala 3: A Step-by-Step Guide](https://www.baeldung.com/scala/least-recently-used-cache) +- [Using the sliding() and grouped() Methods With Scala Collections](https://www.baeldung.com/scala/sliding-grouped-methods-with-collections) diff --git a/scala-lang-modules/scala3-lang-3/src/test/scala/com/baeldung/scala/slidinggrouped/SlidingGroupedTest.scala b/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/slidinggrouped/SlidingGroupedTest.scala similarity index 100% rename from scala-lang-modules/scala3-lang-3/src/test/scala/com/baeldung/scala/slidinggrouped/SlidingGroupedTest.scala rename to scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/slidinggrouped/SlidingGroupedTest.scala diff --git a/scala-lang-modules/scala3-lang-3/README.md b/scala-lang-modules/scala-lang-3/README.md similarity index 68% rename from scala-lang-modules/scala3-lang-3/README.md rename to scala-lang-modules/scala-lang-3/README.md index 9e15e60d4..77b7b5135 100644 --- a/scala-lang-modules/scala3-lang-3/README.md +++ b/scala-lang-modules/scala-lang-3/README.md @@ -1,6 +1,5 @@ ## Relevant Articles - [Different Ways to Filter Elements From a Scala Collection](https://www.baeldung.com/scala/filter-collections) - [Type Lambdas in Scala 3](https://www.baeldung.com/scala/type-lambdas-scala-3) -- [Using the sliding() and grouped() Methods With Scala Collections](https://www.baeldung.com/scala/sliding-grouped-methods-with-collections) - [Immutable Arrays in Scala 3 Using IArray](https://www.baeldung.com/scala/iarray-immutable-arrays) - +- [Difference Between NonFatal and Exception in Scala](https://www.baeldung.com/scala/nonfatal-vs-exception) diff --git a/scala-lang-modules/scala3-lang-3/src/main/scala/com/baeldung/scala/typelambdas/Main.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala/typelambdas/Main.scala similarity index 100% rename from scala-lang-modules/scala3-lang-3/src/main/scala/com/baeldung/scala/typelambdas/Main.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala/typelambdas/Main.scala diff --git a/scala-lang-modules/scala3-lang-3/src/test/scala/com/baeldung/scala/filters/FindFilterCollector.scala b/scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala/filters/FindFilterCollector.scala similarity index 100% rename from scala-lang-modules/scala3-lang-3/src/test/scala/com/baeldung/scala/filters/FindFilterCollector.scala rename to scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala/filters/FindFilterCollector.scala diff --git a/scala-lang-modules/scala3-lang-3/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala b/scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala similarity index 100% rename from scala-lang-modules/scala3-lang-3/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala rename to scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala diff --git a/scala-lang-modules/scala3-lang-2/src/test/scala/com/baeldung/scala3/nonfatal/NonFatalExceptionsTest.scala b/scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala/nonfatal/NonFatalExceptionsTest.scala similarity index 99% rename from scala-lang-modules/scala3-lang-2/src/test/scala/com/baeldung/scala3/nonfatal/NonFatalExceptionsTest.scala rename to scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala/nonfatal/NonFatalExceptionsTest.scala index 491739381..5d61a15fa 100644 --- a/scala-lang-modules/scala3-lang-2/src/test/scala/com/baeldung/scala3/nonfatal/NonFatalExceptionsTest.scala +++ b/scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala/nonfatal/NonFatalExceptionsTest.scala @@ -1,4 +1,4 @@ -package com.baeldung.scala3.nonfatal +package com.baeldung.scala.nonfatal import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpec diff --git a/scala-lang-modules/scala3-lang-2/README.md b/scala-lang-modules/scala-lang-4/README.md similarity index 89% rename from scala-lang-modules/scala3-lang-2/README.md rename to scala-lang-modules/scala-lang-4/README.md index ead4a2699..f8b84e55a 100644 --- a/scala-lang-modules/scala3-lang-2/README.md +++ b/scala-lang-modules/scala-lang-4/README.md @@ -7,7 +7,6 @@ - [@targetName Annotation in Scala 3](https://www.baeldung.com/scala/targetname-annotation) - [Export Clause in Scala 3](https://www.baeldung.com/scala/scala-3-export) - [Introduction to Macros in Scala 3](https://www.baeldung.com/scala/macros-scala-3) -- [Difference Between NonFatal and Exception in Scala](https://www.baeldung.com/scala/nonfatal-vs-exception) - [Introduction to the @threadUnsafe Annotation in Scala 3](https://www.baeldung.com/scala/scala-3-threadunsafe) - [locally Block In Scala](https://www.baeldung.com/scala/locally-block) - [Match Expression Improvements in Scala 3](https://www.baeldung.com/scala/scala-3-match-expression) diff --git a/scala-lang-modules/scala3-lang-2/build.sbt b/scala-lang-modules/scala-lang-4/build.sbt similarity index 100% rename from scala-lang-modules/scala3-lang-2/build.sbt rename to scala-lang-modules/scala-lang-4/build.sbt diff --git a/scala-lang-modules/scala3-lang-2/project/build.properties b/scala-lang-modules/scala-lang-4/project/build.properties similarity index 100% rename from scala-lang-modules/scala3-lang-2/project/build.properties rename to scala-lang-modules/scala-lang-4/project/build.properties diff --git a/scala-lang-modules/scala3-lang-2/src/main/java/com/baeldung/JavaOperator.java b/scala-lang-modules/scala-lang-4/src/main/java/com/baeldung/JavaOperator.java similarity index 79% rename from scala-lang-modules/scala3-lang-2/src/main/java/com/baeldung/JavaOperator.java rename to scala-lang-modules/scala-lang-4/src/main/java/com/baeldung/JavaOperator.java index d01118180..5ee1676ce 100644 --- a/scala-lang-modules/scala3-lang-2/src/main/java/com/baeldung/JavaOperator.java +++ b/scala-lang-modules/scala-lang-4/src/main/java/com/baeldung/JavaOperator.java @@ -1,5 +1,5 @@ package com.baeldung; -import com.baeldung.scala3.targetname.*; +import com.baeldung.scala.targetname.Operator; public class JavaOperator { public static void main(String[] args) { diff --git a/scala-lang-modules/scala3-lang-2/src/main/scala/com/baeldung/scala3/TuplesInScala.scala b/scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/TuplesInScala.scala similarity index 95% rename from scala-lang-modules/scala3-lang-2/src/main/scala/com/baeldung/scala3/TuplesInScala.scala rename to scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/TuplesInScala.scala index 056f1aeb8..168e3892e 100644 --- a/scala-lang-modules/scala3-lang-2/src/main/scala/com/baeldung/scala3/TuplesInScala.scala +++ b/scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/TuplesInScala.scala @@ -1,4 +1,5 @@ -package com.baeldung.tuples +package com.baeldung.scala + object TupleTest { @main def tupleMain = { diff --git a/scala-lang-modules/scala3-lang-2/src/main/scala/com/baeldung/scala3/contextualabstractions/Givens.scala b/scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/contextualabstractions/Givens.scala similarity index 85% rename from scala-lang-modules/scala3-lang-2/src/main/scala/com/baeldung/scala3/contextualabstractions/Givens.scala rename to scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/contextualabstractions/Givens.scala index b0ee7f7b6..d70cf00f6 100644 --- a/scala-lang-modules/scala3-lang-2/src/main/scala/com/baeldung/scala3/contextualabstractions/Givens.scala +++ b/scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/contextualabstractions/Givens.scala @@ -1,4 +1,4 @@ -package com.baeldung.scala3.contextualabstractions +package com.baeldung.scala.contextualabstractions object Givens extends App { diff --git a/scala-lang-modules/scala3-lang-2/src/main/scala/com/baeldung/scala3/contextualabstractions/UsingClause.scala b/scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/contextualabstractions/UsingClause.scala similarity index 80% rename from scala-lang-modules/scala3-lang-2/src/main/scala/com/baeldung/scala3/contextualabstractions/UsingClause.scala rename to scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/contextualabstractions/UsingClause.scala index 3d8c7d92f..7395dea62 100644 --- a/scala-lang-modules/scala3-lang-2/src/main/scala/com/baeldung/scala3/contextualabstractions/UsingClause.scala +++ b/scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/contextualabstractions/UsingClause.scala @@ -1,6 +1,6 @@ -package com.baeldung.scala3.contextualabstractions +package com.baeldung.scala.contextualabstractions -import com.baeldung.scala3.contextualabstractions.Givens.Item +import Givens.Item import Givens.{Item, priceOrdering, pageLimit} object UsingClause extends App { diff --git a/scala-lang-modules/scala3-lang-2/src/main/scala/com/baeldung/scala3/locally/LocallyBlockSample.scala b/scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/locally/LocallyBlockSample.scala similarity index 96% rename from scala-lang-modules/scala3-lang-2/src/main/scala/com/baeldung/scala3/locally/LocallyBlockSample.scala rename to scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/locally/LocallyBlockSample.scala index b8388642a..db36c70eb 100644 --- a/scala-lang-modules/scala3-lang-2/src/main/scala/com/baeldung/scala3/locally/LocallyBlockSample.scala +++ b/scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/locally/LocallyBlockSample.scala @@ -1,4 +1,4 @@ -package com.baeldung.scala3.locally +package com.baeldung.scala.locally object LocallyBlockSampleDangling extends App { class MyClass diff --git a/scala-lang-modules/scala3-lang-2/src/main/scala/com/baeldung/scala3/macros/GenericMacros.scala b/scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/macros/GenericMacros.scala similarity index 89% rename from scala-lang-modules/scala3-lang-2/src/main/scala/com/baeldung/scala3/macros/GenericMacros.scala rename to scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/macros/GenericMacros.scala index 6b0bb9fc3..8e362f980 100644 --- a/scala-lang-modules/scala3-lang-2/src/main/scala/com/baeldung/scala3/macros/GenericMacros.scala +++ b/scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/macros/GenericMacros.scala @@ -1,4 +1,4 @@ -package com.baeldung.scala3.macros +package com.baeldung.scala.macros import scala.quoted.* import scala.reflect.ClassTag diff --git a/scala-lang-modules/scala3-lang-2/src/main/scala/com/baeldung/scala3/macros/OddEvenMacros.scala b/scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/macros/OddEvenMacros.scala similarity index 96% rename from scala-lang-modules/scala3-lang-2/src/main/scala/com/baeldung/scala3/macros/OddEvenMacros.scala rename to scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/macros/OddEvenMacros.scala index 30e05782d..4a5fad4a5 100644 --- a/scala-lang-modules/scala3-lang-2/src/main/scala/com/baeldung/scala3/macros/OddEvenMacros.scala +++ b/scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/macros/OddEvenMacros.scala @@ -1,4 +1,4 @@ -package com.baeldung.scala3.macros +package com.baeldung.scala.macros import scala.quoted._ diff --git a/scala-lang-modules/scala3-lang-2/src/main/scala/com/baeldung/scala3/mainfeatures/App.scala b/scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/mainfeatures/App.scala similarity index 97% rename from scala-lang-modules/scala3-lang-2/src/main/scala/com/baeldung/scala3/mainfeatures/App.scala rename to scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/mainfeatures/App.scala index b6e4e595a..e85550a1e 100644 --- a/scala-lang-modules/scala3-lang-2/src/main/scala/com/baeldung/scala3/mainfeatures/App.scala +++ b/scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/mainfeatures/App.scala @@ -1,4 +1,4 @@ -package com.baeldung.scala3.mainfeatures +package com.baeldung.scala.mainfeatures import java.util import java.util.regex.Pattern diff --git a/scala-lang-modules/scala3-lang-2/src/main/scala/com/baeldung/scala3/matchexpressions/MatchExpressionImprovements.scala b/scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/matchexpressions/MatchExpressionImprovements.scala similarity index 95% rename from scala-lang-modules/scala3-lang-2/src/main/scala/com/baeldung/scala3/matchexpressions/MatchExpressionImprovements.scala rename to scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/matchexpressions/MatchExpressionImprovements.scala index 97d9fd6fc..2b20da594 100644 --- a/scala-lang-modules/scala3-lang-2/src/main/scala/com/baeldung/scala3/matchexpressions/MatchExpressionImprovements.scala +++ b/scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/matchexpressions/MatchExpressionImprovements.scala @@ -1,4 +1,4 @@ -package com.baeldung.scala3.matchexpressions +package com.baeldung.scala.matchexpressions object MatchExpressionImprovements { def wordFromOptionNoBraces(strOpt: Option[String]) = { diff --git a/scala-lang-modules/scala3-lang-2/src/main/scala/com/baeldung/scala3/matchtypes/FirstComponentOfScala2.scala b/scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/matchtypes/FirstComponentOfScala2.scala similarity index 97% rename from scala-lang-modules/scala3-lang-2/src/main/scala/com/baeldung/scala3/matchtypes/FirstComponentOfScala2.scala rename to scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/matchtypes/FirstComponentOfScala2.scala index dbec00f9f..2f10152d6 100644 --- a/scala-lang-modules/scala3-lang-2/src/main/scala/com/baeldung/scala3/matchtypes/FirstComponentOfScala2.scala +++ b/scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/matchtypes/FirstComponentOfScala2.scala @@ -1,4 +1,4 @@ -package com.baeldung.scala3.matchtypes +package com.baeldung.scala.matchtypes sealed trait FirstComponentOfScala2[-T] { type Result diff --git a/scala-lang-modules/scala3-lang-2/src/main/scala/com/baeldung/scala3/targetname/TargetNameSample.scala b/scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/targetname/TargetNameSample.scala similarity index 96% rename from scala-lang-modules/scala3-lang-2/src/main/scala/com/baeldung/scala3/targetname/TargetNameSample.scala rename to scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/targetname/TargetNameSample.scala index 3fa0cf8fa..7050535c2 100644 --- a/scala-lang-modules/scala3-lang-2/src/main/scala/com/baeldung/scala3/targetname/TargetNameSample.scala +++ b/scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/targetname/TargetNameSample.scala @@ -1,4 +1,5 @@ -package com.baeldung.scala3.targetname +package com.baeldung.scala.targetname + import scala.annotation.targetName class Operator { diff --git a/scala-lang-modules/scala3-lang-2/src/main/scala/com/baeldung/scala3/transparent/TrasparentTraitDemo.scala b/scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/transparent/TrasparentTraitDemo.scala similarity index 94% rename from scala-lang-modules/scala3-lang-2/src/main/scala/com/baeldung/scala3/transparent/TrasparentTraitDemo.scala rename to scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/transparent/TrasparentTraitDemo.scala index 317eeebcd..62965b42c 100644 --- a/scala-lang-modules/scala3-lang-2/src/main/scala/com/baeldung/scala3/transparent/TrasparentTraitDemo.scala +++ b/scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/transparent/TrasparentTraitDemo.scala @@ -1,4 +1,4 @@ -package com.baeldung.scala3.transparent +package com.baeldung.scala.transparent object NonTransparent { trait Marker diff --git a/scala-lang-modules/scala3-lang-2/src/test/scala/com/baeldung/scala3/annotations/ThreadUnsafeAnnotationTest.scala b/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/annotations/ThreadUnsafeAnnotationTest.scala similarity index 98% rename from scala-lang-modules/scala3-lang-2/src/test/scala/com/baeldung/scala3/annotations/ThreadUnsafeAnnotationTest.scala rename to scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/annotations/ThreadUnsafeAnnotationTest.scala index 26f0c5d6f..802f6c57f 100644 --- a/scala-lang-modules/scala3-lang-2/src/test/scala/com/baeldung/scala3/annotations/ThreadUnsafeAnnotationTest.scala +++ b/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/annotations/ThreadUnsafeAnnotationTest.scala @@ -1,4 +1,4 @@ -package com.baeldung.scala3.annotations +package com.baeldung.scala.annotations import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers diff --git a/scala-lang-modules/scala3-lang-2/src/test/scala/com/baeldung/scala3/contextualabstractions/GivensUsingClauseUnitTest.scala b/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/contextualabstractions/GivensUsingClauseUnitTest.scala similarity index 83% rename from scala-lang-modules/scala3-lang-2/src/test/scala/com/baeldung/scala3/contextualabstractions/GivensUsingClauseUnitTest.scala rename to scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/contextualabstractions/GivensUsingClauseUnitTest.scala index b6bf9defd..b420d4733 100644 --- a/scala-lang-modules/scala3-lang-2/src/test/scala/com/baeldung/scala3/contextualabstractions/GivensUsingClauseUnitTest.scala +++ b/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/contextualabstractions/GivensUsingClauseUnitTest.scala @@ -1,5 +1,6 @@ -package com.baeldung.scala3.contextualabstractions -import com.baeldung.scala3.contextualabstractions.Givens.Item +package com.baeldung.scala.contextualabstractions + +import Givens.Item import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpec diff --git a/scala-lang-modules/scala3-lang-2/src/test/scala/com/baeldung/scala3/exportclause/ExportClauseUnitTest.scala b/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/exportclause/ExportClauseUnitTest.scala similarity index 98% rename from scala-lang-modules/scala3-lang-2/src/test/scala/com/baeldung/scala3/exportclause/ExportClauseUnitTest.scala rename to scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/exportclause/ExportClauseUnitTest.scala index 2f48f5bad..bac1eae2f 100644 --- a/scala-lang-modules/scala3-lang-2/src/test/scala/com/baeldung/scala3/exportclause/ExportClauseUnitTest.scala +++ b/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/exportclause/ExportClauseUnitTest.scala @@ -1,4 +1,4 @@ -package com.baeldung.scala3.exportclause +package com.baeldung.scala.exportclause import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers diff --git a/scala-lang-modules/scala3-lang-2/src/test/scala/com/baeldung/scala3/locally/LocallyBlockTest.scala b/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/locally/LocallyBlockTest.scala similarity index 93% rename from scala-lang-modules/scala3-lang-2/src/test/scala/com/baeldung/scala3/locally/LocallyBlockTest.scala rename to scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/locally/LocallyBlockTest.scala index 183cf0dd5..e67c3e113 100644 --- a/scala-lang-modules/scala3-lang-2/src/test/scala/com/baeldung/scala3/locally/LocallyBlockTest.scala +++ b/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/locally/LocallyBlockTest.scala @@ -1,4 +1,4 @@ -package com.baeldung.scala3.locally +package com.baeldung.scala.locally import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers diff --git a/scala-lang-modules/scala3-lang-2/src/test/scala/com/baeldung/scala3/macros/GenericMacrosTest.scala b/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/macros/GenericMacrosTest.scala similarity index 94% rename from scala-lang-modules/scala3-lang-2/src/test/scala/com/baeldung/scala3/macros/GenericMacrosTest.scala rename to scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/macros/GenericMacrosTest.scala index cb20654fc..ecbb70571 100644 --- a/scala-lang-modules/scala3-lang-2/src/test/scala/com/baeldung/scala3/macros/GenericMacrosTest.scala +++ b/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/macros/GenericMacrosTest.scala @@ -1,4 +1,4 @@ -package com.baeldung.scala3.macros +package com.baeldung.scala.macros import org.scalatest.matchers.must.Matchers import org.scalatest.wordspec.AnyWordSpec diff --git a/scala-lang-modules/scala3-lang-2/src/test/scala/com/baeldung/scala3/macros/OddEvenMacrosTest.scala b/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/macros/OddEvenMacrosTest.scala similarity index 97% rename from scala-lang-modules/scala3-lang-2/src/test/scala/com/baeldung/scala3/macros/OddEvenMacrosTest.scala rename to scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/macros/OddEvenMacrosTest.scala index cfd93ec40..8f18efa51 100644 --- a/scala-lang-modules/scala3-lang-2/src/test/scala/com/baeldung/scala3/macros/OddEvenMacrosTest.scala +++ b/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/macros/OddEvenMacrosTest.scala @@ -1,4 +1,4 @@ -package com.baeldung.scala3.macros +package com.baeldung.scala.macros import org.scalatest.matchers.must.Matchers import org.scalatest.wordspec.AnyWordSpec diff --git a/scala-lang-modules/scala3-lang-2/src/test/scala/com/baeldung/scala3/matchexpressions/MatchExpressionImprovementstTest.scala b/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/matchexpressions/MatchExpressionImprovementstTest.scala similarity index 93% rename from scala-lang-modules/scala3-lang-2/src/test/scala/com/baeldung/scala3/matchexpressions/MatchExpressionImprovementstTest.scala rename to scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/matchexpressions/MatchExpressionImprovementstTest.scala index f21718d11..aa6d15010 100644 --- a/scala-lang-modules/scala3-lang-2/src/test/scala/com/baeldung/scala3/matchexpressions/MatchExpressionImprovementstTest.scala +++ b/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/matchexpressions/MatchExpressionImprovementstTest.scala @@ -1,6 +1,5 @@ -package com.baeldung.scala3.matchexpressions +package com.baeldung.scala.matchexpressions -import com.baeldung.scala3.matchexpressions.MatchExpressionImprovements import org.scalatest.matchers.must.Matchers import org.scalatest.wordspec.AnyWordSpec diff --git a/scala-lang-modules/scala3-lang-2/src/test/scala/com/baeldung/scala3/matchtypes/FirstComponentOfScala2Spec.scala b/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/matchtypes/FirstComponentOfScala2Spec.scala similarity index 96% rename from scala-lang-modules/scala3-lang-2/src/test/scala/com/baeldung/scala3/matchtypes/FirstComponentOfScala2Spec.scala rename to scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/matchtypes/FirstComponentOfScala2Spec.scala index 352cbe305..d46674b16 100644 --- a/scala-lang-modules/scala3-lang-2/src/test/scala/com/baeldung/scala3/matchtypes/FirstComponentOfScala2Spec.scala +++ b/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/matchtypes/FirstComponentOfScala2Spec.scala @@ -1,4 +1,4 @@ -package com.baeldung.scala3.matchtypes +package com.baeldung.scala.matchtypes import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpec diff --git a/scala-lang-modules/scala3-lang-2/src/test/scala/com/baeldung/scala3/matchtypes/MatchTypesSpec.scala b/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/matchtypes/MatchTypesSpec.scala similarity index 95% rename from scala-lang-modules/scala3-lang-2/src/test/scala/com/baeldung/scala3/matchtypes/MatchTypesSpec.scala rename to scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/matchtypes/MatchTypesSpec.scala index c69b18070..eef99c9f3 100644 --- a/scala-lang-modules/scala3-lang-2/src/test/scala/com/baeldung/scala3/matchtypes/MatchTypesSpec.scala +++ b/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/matchtypes/MatchTypesSpec.scala @@ -1,4 +1,4 @@ -package com.baeldung.scala3.matchtypes +package com.baeldung.scala.matchtypes import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpec diff --git a/scala-lang-modules/scala3-lang/README.md b/scala-lang-modules/scala-lang-5/README.md similarity index 100% rename from scala-lang-modules/scala3-lang/README.md rename to scala-lang-modules/scala-lang-5/README.md diff --git a/scala-lang-modules/scala3-lang/project/build.properties b/scala-lang-modules/scala-lang-5/project/build.properties similarity index 100% rename from scala-lang-modules/scala3-lang/project/build.properties rename to scala-lang-modules/scala-lang-5/project/build.properties diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/enum/ADTExample.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/enum/ADTExample.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/enum/ADTExample.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/enum/ADTExample.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/enum/ColorExamples.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/enum/ColorExamples.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/enum/ColorExamples.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/enum/ColorExamples.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/ExtensionMethod.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/ExtensionMethod.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/ExtensionMethod.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/ExtensionMethod.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/ImplicitConversion.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/ImplicitConversion.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/ImplicitConversion.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/ImplicitConversion.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/ProvidingContextualEnvironment.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/ProvidingContextualEnvironment.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/ProvidingContextualEnvironment.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/ProvidingContextualEnvironment.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/WritingTypeclassInstances.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/WritingTypeclassInstances.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/WritingTypeclassInstances.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/WritingTypeclassInstances.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/Extension.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/Extension.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/Extension.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/Extension.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitConversion.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitConversion.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitConversion.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitConversion.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitParameter.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitParameter.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitParameter.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitParameter.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitlyMagic.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitlyMagic.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitlyMagic.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitlyMagic.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/Extension.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/Extension.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/Extension.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/Extension.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitConversion.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitConversion.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitConversion.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitConversion.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitParameter.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitParameter.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitParameter.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitParameter.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitlyMagic.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitlyMagic.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitlyMagic.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitlyMagic.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/extensions/StringExtensions.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/extensions/StringExtensions.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/implicits/extensions/StringExtensions.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/extensions/StringExtensions.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/intersectiontypes/BasicIntersectionType.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/intersectiontypes/BasicIntersectionType.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/intersectiontypes/BasicIntersectionType.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/intersectiontypes/BasicIntersectionType.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/intersectiontypes/DuckTyping.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/intersectiontypes/DuckTyping.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/intersectiontypes/DuckTyping.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/intersectiontypes/DuckTyping.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/intersectiontypes/Inheritance.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/intersectiontypes/Inheritance.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/intersectiontypes/Inheritance.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/intersectiontypes/Inheritance.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/intersectiontypes/Overloading.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/intersectiontypes/Overloading.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/intersectiontypes/Overloading.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/intersectiontypes/Overloading.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/macros/inline/InlineCompilerValidation.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/macros/inline/InlineCompilerValidation.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/macros/inline/InlineCompilerValidation.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/macros/inline/InlineCompilerValidation.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/macros/inline/InlineDef.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/macros/inline/InlineDef.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/macros/inline/InlineDef.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/macros/inline/InlineDef.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/macros/inline/InlineIf.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/macros/inline/InlineIf.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/macros/inline/InlineIf.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/macros/inline/InlineIf.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/macros/inline/InlineMatch.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/macros/inline/InlineMatch.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/macros/inline/InlineMatch.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/macros/inline/InlineMatch.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/macros/inline/InlineParams.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/macros/inline/InlineParams.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/macros/inline/InlineParams.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/macros/inline/InlineParams.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/macros/inline/InlineVal.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/macros/inline/InlineVal.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/macros/inline/InlineVal.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/macros/inline/InlineVal.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/macros/inline/InlineValDef.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/macros/inline/InlineValDef.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/macros/inline/InlineValDef.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/macros/inline/InlineValDef.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/macros/inline/TransparentInline.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/macros/inline/TransparentInline.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/macros/inline/TransparentInline.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/macros/inline/TransparentInline.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/mainmethods/HelloWorld.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/mainmethods/HelloWorld.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/mainmethods/HelloWorld.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/mainmethods/HelloWorld.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/mainmethods/HelloWorldObject.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/mainmethods/HelloWorldObject.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/mainmethods/HelloWorldObject.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/mainmethods/HelloWorldObject.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/mainmethods/WithParameters.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/mainmethods/WithParameters.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/mainmethods/WithParameters.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/mainmethods/WithParameters.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/multiversalequality/CanEqualDeriveClause.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/multiversalequality/CanEqualDeriveClause.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/multiversalequality/CanEqualDeriveClause.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/multiversalequality/CanEqualDeriveClause.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/multiversalequality/CanEqualGivenInstance.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/multiversalequality/CanEqualGivenInstance.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/multiversalequality/CanEqualGivenInstance.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/multiversalequality/CanEqualGivenInstance.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/multiversalequality/MultiversalEquality.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/multiversalequality/MultiversalEquality.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/multiversalequality/MultiversalEquality.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/multiversalequality/MultiversalEquality.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/multiversalequality/UniversalEquality.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/multiversalequality/UniversalEquality.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/multiversalequality/UniversalEquality.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/multiversalequality/UniversalEquality.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/openclasses/Album.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/openclasses/Album.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/openclasses/Album.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/openclasses/Album.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/openclasses/DeluxeEdition.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/openclasses/DeluxeEdition.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/openclasses/DeluxeEdition.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/openclasses/DeluxeEdition.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/quitesyntax/Example.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/quitesyntax/Example.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/quitesyntax/Example.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/quitesyntax/Example.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/traits/ParameterizedTrait.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/traits/ParameterizedTrait.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/traits/ParameterizedTrait.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/traits/ParameterizedTrait.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/typesystem/CompoundTypes.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/typesystem/CompoundTypes.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/typesystem/CompoundTypes.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/typesystem/CompoundTypes.scala diff --git a/scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/typesystem/OpaqueTypeAlias.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/typesystem/OpaqueTypeAlias.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/main/scala/com/baeldung/scala3/typesystem/OpaqueTypeAlias.scala rename to scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/typesystem/OpaqueTypeAlias.scala diff --git a/scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/implicits/ExtensionMethodUnitTest.scala b/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/ExtensionMethodUnitTest.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/implicits/ExtensionMethodUnitTest.scala rename to scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/ExtensionMethodUnitTest.scala diff --git a/scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/implicits/ImplicitConversionUnitTest.scala b/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/ImplicitConversionUnitTest.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/implicits/ImplicitConversionUnitTest.scala rename to scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/ImplicitConversionUnitTest.scala diff --git a/scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/implicits/ProvidingContextualEnvironmentUnitTest.scala b/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/ProvidingContextualEnvironmentUnitTest.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/implicits/ProvidingContextualEnvironmentUnitTest.scala rename to scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/ProvidingContextualEnvironmentUnitTest.scala diff --git a/scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ExtensionUnitTest.scala b/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ExtensionUnitTest.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ExtensionUnitTest.scala rename to scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ExtensionUnitTest.scala diff --git a/scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitConversionUnitTest.scala b/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitConversionUnitTest.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitConversionUnitTest.scala rename to scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitConversionUnitTest.scala diff --git a/scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitParameterUnitTest.scala b/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitParameterUnitTest.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitParameterUnitTest.scala rename to scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitParameterUnitTest.scala diff --git a/scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ExtensionUnitTest.scala b/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ExtensionUnitTest.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ExtensionUnitTest.scala rename to scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ExtensionUnitTest.scala diff --git a/scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitConversionUnitTest.scala b/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitConversionUnitTest.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitConversionUnitTest.scala rename to scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitConversionUnitTest.scala diff --git a/scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitParameterUnitTest.scala b/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitParameterUnitTest.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitParameterUnitTest.scala rename to scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitParameterUnitTest.scala diff --git a/scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/implicits/extensions/ExtensionsUnitTest.scala b/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/extensions/ExtensionsUnitTest.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/implicits/extensions/ExtensionsUnitTest.scala rename to scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/extensions/ExtensionsUnitTest.scala diff --git a/scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/intersectiontypes/BasicIntersectionTypeUnitTest.scala b/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/intersectiontypes/BasicIntersectionTypeUnitTest.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/intersectiontypes/BasicIntersectionTypeUnitTest.scala rename to scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/intersectiontypes/BasicIntersectionTypeUnitTest.scala diff --git a/scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/intersectiontypes/DuckTypingUnitTest.scala b/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/intersectiontypes/DuckTypingUnitTest.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/intersectiontypes/DuckTypingUnitTest.scala rename to scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/intersectiontypes/DuckTypingUnitTest.scala diff --git a/scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/intersectiontypes/InheritanceUnitTest.scala b/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/intersectiontypes/InheritanceUnitTest.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/intersectiontypes/InheritanceUnitTest.scala rename to scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/intersectiontypes/InheritanceUnitTest.scala diff --git a/scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/intersectiontypes/OverloadingUnitTest.scala b/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/intersectiontypes/OverloadingUnitTest.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/intersectiontypes/OverloadingUnitTest.scala rename to scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/intersectiontypes/OverloadingUnitTest.scala diff --git a/scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/multiversalequality/CanEqualDeriveClauseUnitTest.scala b/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/multiversalequality/CanEqualDeriveClauseUnitTest.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/multiversalequality/CanEqualDeriveClauseUnitTest.scala rename to scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/multiversalequality/CanEqualDeriveClauseUnitTest.scala diff --git a/scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/multiversalequality/CanEqualGivenInstanceUnitTest.scala b/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/multiversalequality/CanEqualGivenInstanceUnitTest.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/multiversalequality/CanEqualGivenInstanceUnitTest.scala rename to scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/multiversalequality/CanEqualGivenInstanceUnitTest.scala diff --git a/scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/multiversalequality/MultiversalEqualityUnitTest.scala b/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/multiversalequality/MultiversalEqualityUnitTest.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/multiversalequality/MultiversalEqualityUnitTest.scala rename to scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/multiversalequality/MultiversalEqualityUnitTest.scala diff --git a/scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/multiversalequality/UniversalEqualityUnitTest.scala b/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/multiversalequality/UniversalEqualityUnitTest.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/multiversalequality/UniversalEqualityUnitTest.scala rename to scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/multiversalequality/UniversalEqualityUnitTest.scala diff --git a/scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/traits/ParameterizedTraitUnitTest.scala b/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/traits/ParameterizedTraitUnitTest.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/traits/ParameterizedTraitUnitTest.scala rename to scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/traits/ParameterizedTraitUnitTest.scala diff --git a/scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/typesystem/CompoundTypesUnitTest.scala b/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/typesystem/CompoundTypesUnitTest.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/typesystem/CompoundTypesUnitTest.scala rename to scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/typesystem/CompoundTypesUnitTest.scala diff --git a/scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/typesystem/OpaqueTypeAliasUnitTest.scala b/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/typesystem/OpaqueTypeAliasUnitTest.scala similarity index 100% rename from scala-lang-modules/scala3-lang/src/test/scala/com/baeldung/scala3/typesystem/OpaqueTypeAliasUnitTest.scala rename to scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/typesystem/OpaqueTypeAliasUnitTest.scala diff --git a/scala-lang-modules/scala3-lang-2/src/main/scala/com/baeldung/scala3/matchtypes/MatchTypes.scala b/scala-lang-modules/scala3-lang-2/src/main/scala/com/baeldung/scala3/matchtypes/MatchTypes.scala deleted file mode 100644 index 667143ac6..000000000 --- a/scala-lang-modules/scala3-lang-2/src/main/scala/com/baeldung/scala3/matchtypes/MatchTypes.scala +++ /dev/null @@ -1,22 +0,0 @@ -package com.baeldung.scala3.matchtypes - -type FirstComponentOf[T] = T match - case String => Option[Char] - case Int => Int - case Iterable[t] => Option[t] - case Any => T - -def firstComponentOf[U](elem: U): FirstComponentOf[U] = elem match - case s: String => if (s.nonEmpty) Some(s.charAt(0)) else Option.empty[Char] - case i: Int => i.abs.toString.charAt(0).asDigit - case it: Iterable[_] => it.headOption - case a: Any => a - -val aNumber: FirstComponentOf[Int] = 2 -val aChar: FirstComponentOf[String] = Some('b') -val anItem: FirstComponentOf[Seq[Float]] = Some(3.2f) - -type Node[T] = T match - case Iterable[t] => Node[t] - case Array[t] => Node[t] - case AnyVal => T From acac9c692642d378fc210018cd936545071d0cf4 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Thu, 4 Apr 2024 21:57:32 +0200 Subject: [PATCH 0495/1318] Fixed the compilation error in test --- .../scala/matchtypes/MatchTypes.scala | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/matchtypes/MatchTypes.scala diff --git a/scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/matchtypes/MatchTypes.scala b/scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/matchtypes/MatchTypes.scala new file mode 100644 index 000000000..9d7691137 --- /dev/null +++ b/scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/matchtypes/MatchTypes.scala @@ -0,0 +1,22 @@ +package com.baeldung.scala.matchtypes + +type FirstComponentOf[T] = T match + case String => Option[Char] + case Int => Int + case Iterable[t] => Option[t] + case Any => T + +def firstComponentOf[U](elem: U): FirstComponentOf[U] = elem match + case s: String => if (s.nonEmpty) Some(s.charAt(0)) else Option.empty[Char] + case i: Int => i.abs.toString.charAt(0).asDigit + case it: Iterable[_] => it.headOption + case a: Any => a + +val aNumber: FirstComponentOf[Int] = 2 +val aChar: FirstComponentOf[String] = Some('b') +val anItem: FirstComponentOf[Seq[Float]] = Some(3.2f) + +type Node[T] = T match + case Iterable[t] => Node[t] + case Array[t] => Node[t] + case AnyVal => T \ No newline at end of file From 795db645838807318b1ee1c5a94f373bc4e0bdb5 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Thu, 4 Apr 2024 22:06:52 +0200 Subject: [PATCH 0496/1318] rearrange scala-lang modules --- build.sbt | 9 ++------- scala-lang-modules/scala-lang-2/README.md | 4 ++++ .../com/baeldung/scala/typelambdas/Main.scala | 2 ++ .../scala/filters/FindFilterCollector.scala | 0 .../immutablearrays/ImmutableArraySpec.scala | 0 .../scala/nonfatal/NonFatalExceptionsTest.scala | 0 scala-lang-modules/scala-lang-3/README.md | 17 ++++++++++++----- .../project/build.properties | 0 .../com/baeldung/scala3/enum/ADTExample.scala | 0 .../baeldung/scala3/enum/ColorExamples.scala | 0 .../scala3/implicits/ExtensionMethod.scala | 0 .../scala3/implicits/ImplicitConversion.scala | 0 .../ProvidingContextualEnvironment.scala | 0 .../implicits/WritingTypeclassInstances.scala | 0 .../implicits/comparison/scala2/Extension.scala | 0 .../comparison/scala2/ImplicitConversion.scala | 0 .../comparison/scala2/ImplicitParameter.scala | 0 .../comparison/scala2/ImplicitlyMagic.scala | 0 .../implicits/comparison/scala3/Extension.scala | 0 .../comparison/scala3/ImplicitConversion.scala | 0 .../comparison/scala3/ImplicitParameter.scala | 0 .../comparison/scala3/ImplicitlyMagic.scala | 0 .../implicits/extensions/StringExtensions.scala | 0 .../BasicIntersectionType.scala | 0 .../scala3/intersectiontypes/DuckTyping.scala | 0 .../scala3/intersectiontypes/Inheritance.scala | 0 .../scala3/intersectiontypes/Overloading.scala | 0 .../inline/InlineCompilerValidation.scala | 0 .../scala3/macros/inline/InlineDef.scala | 0 .../scala3/macros/inline/InlineIf.scala | 0 .../scala3/macros/inline/InlineMatch.scala | 0 .../scala3/macros/inline/InlineParams.scala | 0 .../scala3/macros/inline/InlineVal.scala | 0 .../scala3/macros/inline/InlineValDef.scala | 0 .../macros/inline/TransparentInline.scala | 0 .../scala3/mainmethods/HelloWorld.scala | 0 .../scala3/mainmethods/HelloWorldObject.scala | 0 .../scala3/mainmethods/WithParameters.scala | 0 .../CanEqualDeriveClause.scala | 0 .../CanEqualGivenInstance.scala | 0 .../MultiversalEquality.scala | 0 .../multiversalequality/UniversalEquality.scala | 0 .../com/baeldung/scala3/openclasses/Album.scala | 0 .../scala3/openclasses/DeluxeEdition.scala | 0 .../baeldung/scala3/quitesyntax/Example.scala | 0 .../scala3/traits/ParameterizedTrait.scala | 0 .../scala3/typesystem/CompoundTypes.scala | 0 .../scala3/typesystem/OpaqueTypeAlias.scala | 0 .../implicits/ExtensionMethodUnitTest.scala | 0 .../implicits/ImplicitConversionUnitTest.scala | 0 ...ProvidingContextualEnvironmentUnitTest.scala | 0 .../comparison/scala2/ExtensionUnitTest.scala | 0 .../scala2/ImplicitConversionUnitTest.scala | 0 .../scala2/ImplicitParameterUnitTest.scala | 0 .../comparison/scala3/ExtensionUnitTest.scala | 0 .../scala3/ImplicitConversionUnitTest.scala | 0 .../scala3/ImplicitParameterUnitTest.scala | 0 .../extensions/ExtensionsUnitTest.scala | 0 .../BasicIntersectionTypeUnitTest.scala | 0 .../intersectiontypes/DuckTypingUnitTest.scala | 0 .../intersectiontypes/InheritanceUnitTest.scala | 0 .../intersectiontypes/OverloadingUnitTest.scala | 0 .../CanEqualDeriveClauseUnitTest.scala | 0 .../CanEqualGivenInstanceUnitTest.scala | 0 .../MultiversalEqualityUnitTest.scala | 0 .../UniversalEqualityUnitTest.scala | 0 .../traits/ParameterizedTraitUnitTest.scala | 0 .../typesystem/CompoundTypesUnitTest.scala | 0 .../typesystem/OpaqueTypeAliasUnitTest.scala | 0 scala-lang-modules/scala-lang-5/README.md | 12 ------------ 70 files changed, 20 insertions(+), 24 deletions(-) rename scala-lang-modules/{scala-lang-3 => scala-lang-2}/src/main/scala/com/baeldung/scala/typelambdas/Main.scala (88%) rename scala-lang-modules/{scala-lang-3 => scala-lang-2}/src/test/scala/com/baeldung/scala/filters/FindFilterCollector.scala (100%) rename scala-lang-modules/{scala-lang-3 => scala-lang-2}/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala (100%) rename scala-lang-modules/{scala-lang-3 => scala-lang-2}/src/test/scala/com/baeldung/scala/nonfatal/NonFatalExceptionsTest.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/project/build.properties (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/enum/ADTExample.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/enum/ColorExamples.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/implicits/ExtensionMethod.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/implicits/ImplicitConversion.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/implicits/ProvidingContextualEnvironment.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/implicits/WritingTypeclassInstances.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/Extension.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitConversion.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitParameter.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitlyMagic.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/Extension.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitConversion.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitParameter.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitlyMagic.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/implicits/extensions/StringExtensions.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/intersectiontypes/BasicIntersectionType.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/intersectiontypes/DuckTyping.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/intersectiontypes/Inheritance.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/intersectiontypes/Overloading.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/macros/inline/InlineCompilerValidation.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/macros/inline/InlineDef.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/macros/inline/InlineIf.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/macros/inline/InlineMatch.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/macros/inline/InlineParams.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/macros/inline/InlineVal.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/macros/inline/InlineValDef.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/macros/inline/TransparentInline.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/mainmethods/HelloWorld.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/mainmethods/HelloWorldObject.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/mainmethods/WithParameters.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/multiversalequality/CanEqualDeriveClause.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/multiversalequality/CanEqualGivenInstance.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/multiversalequality/MultiversalEquality.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/multiversalequality/UniversalEquality.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/openclasses/Album.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/openclasses/DeluxeEdition.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/quitesyntax/Example.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/traits/ParameterizedTrait.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/typesystem/CompoundTypes.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/main/scala/com/baeldung/scala3/typesystem/OpaqueTypeAlias.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/test/scala/com/baeldung/scala3/implicits/ExtensionMethodUnitTest.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/test/scala/com/baeldung/scala3/implicits/ImplicitConversionUnitTest.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/test/scala/com/baeldung/scala3/implicits/ProvidingContextualEnvironmentUnitTest.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ExtensionUnitTest.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitConversionUnitTest.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitParameterUnitTest.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ExtensionUnitTest.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitConversionUnitTest.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitParameterUnitTest.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/test/scala/com/baeldung/scala3/implicits/extensions/ExtensionsUnitTest.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/test/scala/com/baeldung/scala3/intersectiontypes/BasicIntersectionTypeUnitTest.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/test/scala/com/baeldung/scala3/intersectiontypes/DuckTypingUnitTest.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/test/scala/com/baeldung/scala3/intersectiontypes/InheritanceUnitTest.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/test/scala/com/baeldung/scala3/intersectiontypes/OverloadingUnitTest.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/test/scala/com/baeldung/scala3/multiversalequality/CanEqualDeriveClauseUnitTest.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/test/scala/com/baeldung/scala3/multiversalequality/CanEqualGivenInstanceUnitTest.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/test/scala/com/baeldung/scala3/multiversalequality/MultiversalEqualityUnitTest.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/test/scala/com/baeldung/scala3/multiversalequality/UniversalEqualityUnitTest.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/test/scala/com/baeldung/scala3/traits/ParameterizedTraitUnitTest.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/test/scala/com/baeldung/scala3/typesystem/CompoundTypesUnitTest.scala (100%) rename scala-lang-modules/{scala-lang-5 => scala-lang-3}/src/test/scala/com/baeldung/scala3/typesystem/OpaqueTypeAliasUnitTest.scala (100%) delete mode 100644 scala-lang-modules/scala-lang-5/README.md diff --git a/build.sbt b/build.sbt index 6ad2c79ca..d53082a1c 100644 --- a/build.sbt +++ b/build.sbt @@ -582,8 +582,8 @@ lazy val scala_design_patterns = (project in file("scala-design-patterns")) libraryDependencies += "com.novocode" % "junit-interface" % "0.11" % Test ) -lazy val scala_lang_5 = - (project in file("scala-lang-modules/scala-lang-5")).settings( +lazy val scala_lang_3 = + (project in file("scala-lang-modules/scala-lang-3")).settings( libraryDependencies ++= scalaTestDeps, scalaVersion := scala3Version ) @@ -594,11 +594,6 @@ lazy val scala_lang_4 = scalaVersion := scala3Version ) -lazy val scala_lang_3 = - (project in file("scala-lang-modules/scala-lang-3")).settings( - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version - ) lazy val cats_effects = (project in file("cats-effects")) .settings( diff --git a/scala-lang-modules/scala-lang-2/README.md b/scala-lang-modules/scala-lang-2/README.md index ce9c60d99..610a8ae08 100644 --- a/scala-lang-modules/scala-lang-2/README.md +++ b/scala-lang-modules/scala-lang-2/README.md @@ -5,3 +5,7 @@ - [Nested Functions in Scala](https://www.baeldung.com/scala/nested-functions) - [Guide to Inheritance in Scala](https://www.baeldung.com/scala/inheritance) - [Using the “with” Keyword When Creating Instances](https://www.baeldung.com/scala/create-instances-with) +- [Different Ways to Filter Elements From a Scala Collection](https://www.baeldung.com/scala/filter-collections) +- [Type Lambdas in Scala 3](https://www.baeldung.com/scala/type-lambdas-scala-3) +- [Immutable Arrays in Scala 3 Using IArray](https://www.baeldung.com/scala/iarray-immutable-arrays) +- [Difference Between NonFatal and Exception in Scala](https://www.baeldung.com/scala/nonfatal-vs-exception) diff --git a/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala/typelambdas/Main.scala b/scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/typelambdas/Main.scala similarity index 88% rename from scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala/typelambdas/Main.scala rename to scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/typelambdas/Main.scala index b780653d0..e811c5ae8 100644 --- a/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala/typelambdas/Main.scala +++ b/scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/typelambdas/Main.scala @@ -1,3 +1,5 @@ +package com.baeldung.scala.typelambdas + type MyTry = [X] =>> Either[Throwable, X] type MyTuple = [X] =>> [Y] =>> (X, Y) diff --git a/scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala/filters/FindFilterCollector.scala b/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/filters/FindFilterCollector.scala similarity index 100% rename from scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala/filters/FindFilterCollector.scala rename to scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/filters/FindFilterCollector.scala diff --git a/scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala b/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala similarity index 100% rename from scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala rename to scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala diff --git a/scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala/nonfatal/NonFatalExceptionsTest.scala b/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/nonfatal/NonFatalExceptionsTest.scala similarity index 100% rename from scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala/nonfatal/NonFatalExceptionsTest.scala rename to scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/nonfatal/NonFatalExceptionsTest.scala diff --git a/scala-lang-modules/scala-lang-3/README.md b/scala-lang-modules/scala-lang-3/README.md index 77b7b5135..8ccc00699 100644 --- a/scala-lang-modules/scala-lang-3/README.md +++ b/scala-lang-modules/scala-lang-3/README.md @@ -1,5 +1,12 @@ -## Relevant Articles -- [Different Ways to Filter Elements From a Scala Collection](https://www.baeldung.com/scala/filter-collections) -- [Type Lambdas in Scala 3](https://www.baeldung.com/scala/type-lambdas-scala-3) -- [Immutable Arrays in Scala 3 Using IArray](https://www.baeldung.com/scala/iarray-immutable-arrays) -- [Difference Between NonFatal and Exception in Scala](https://www.baeldung.com/scala/nonfatal-vs-exception) +### Relevant Articles: + +- [Opaque Type Alias in Scala 3](https://www.baeldung.com/scala/opaque-type-alias) +- [Introduction to Dotty and Scala 3](https://www.baeldung.com/scala/dotty-scala-3) +- [Scala 3 Implicit Redesign](https://www.baeldung.com/scala/scala-3-implicit-redesign) +- [Main Methods in Scala 3](https://www.baeldung.com/scala/scala-3-main-methods) +- [Multiversal Equality in Scala 3](https://www.baeldung.com/scala/multiversal-equality) +- [Intersection Types in Scala 3](https://www.baeldung.com/scala/intersection-types-scala-3) +- [Open Classes in Scala 3](https://www.baeldung.com/scala/open-classes) +- [Extension Methods in Scala 3](https://www.baeldung.com/scala/extension-methods) +- [The inline Modifier in Scala 3](https://www.baeldung.com/scala/inline-modifier) +- [New Control and Quiet Syntax in Scala 3](https://www.baeldung.com/scala/control-quiet-syntax) diff --git a/scala-lang-modules/scala-lang-5/project/build.properties b/scala-lang-modules/scala-lang-3/project/build.properties similarity index 100% rename from scala-lang-modules/scala-lang-5/project/build.properties rename to scala-lang-modules/scala-lang-3/project/build.properties diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/enum/ADTExample.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/enum/ADTExample.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/enum/ADTExample.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/enum/ADTExample.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/enum/ColorExamples.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/enum/ColorExamples.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/enum/ColorExamples.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/enum/ColorExamples.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/ExtensionMethod.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/implicits/ExtensionMethod.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/ExtensionMethod.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/implicits/ExtensionMethod.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/ImplicitConversion.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/implicits/ImplicitConversion.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/ImplicitConversion.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/implicits/ImplicitConversion.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/ProvidingContextualEnvironment.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/implicits/ProvidingContextualEnvironment.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/ProvidingContextualEnvironment.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/implicits/ProvidingContextualEnvironment.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/WritingTypeclassInstances.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/implicits/WritingTypeclassInstances.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/WritingTypeclassInstances.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/implicits/WritingTypeclassInstances.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/Extension.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/Extension.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/Extension.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/Extension.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitConversion.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitConversion.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitConversion.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitConversion.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitParameter.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitParameter.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitParameter.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitParameter.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitlyMagic.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitlyMagic.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitlyMagic.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitlyMagic.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/Extension.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/Extension.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/Extension.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/Extension.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitConversion.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitConversion.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitConversion.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitConversion.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitParameter.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitParameter.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitParameter.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitParameter.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitlyMagic.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitlyMagic.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitlyMagic.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitlyMagic.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/extensions/StringExtensions.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/implicits/extensions/StringExtensions.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/implicits/extensions/StringExtensions.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/implicits/extensions/StringExtensions.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/intersectiontypes/BasicIntersectionType.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/intersectiontypes/BasicIntersectionType.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/intersectiontypes/BasicIntersectionType.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/intersectiontypes/BasicIntersectionType.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/intersectiontypes/DuckTyping.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/intersectiontypes/DuckTyping.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/intersectiontypes/DuckTyping.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/intersectiontypes/DuckTyping.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/intersectiontypes/Inheritance.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/intersectiontypes/Inheritance.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/intersectiontypes/Inheritance.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/intersectiontypes/Inheritance.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/intersectiontypes/Overloading.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/intersectiontypes/Overloading.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/intersectiontypes/Overloading.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/intersectiontypes/Overloading.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/macros/inline/InlineCompilerValidation.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/macros/inline/InlineCompilerValidation.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/macros/inline/InlineCompilerValidation.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/macros/inline/InlineCompilerValidation.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/macros/inline/InlineDef.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/macros/inline/InlineDef.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/macros/inline/InlineDef.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/macros/inline/InlineDef.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/macros/inline/InlineIf.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/macros/inline/InlineIf.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/macros/inline/InlineIf.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/macros/inline/InlineIf.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/macros/inline/InlineMatch.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/macros/inline/InlineMatch.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/macros/inline/InlineMatch.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/macros/inline/InlineMatch.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/macros/inline/InlineParams.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/macros/inline/InlineParams.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/macros/inline/InlineParams.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/macros/inline/InlineParams.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/macros/inline/InlineVal.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/macros/inline/InlineVal.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/macros/inline/InlineVal.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/macros/inline/InlineVal.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/macros/inline/InlineValDef.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/macros/inline/InlineValDef.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/macros/inline/InlineValDef.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/macros/inline/InlineValDef.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/macros/inline/TransparentInline.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/macros/inline/TransparentInline.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/macros/inline/TransparentInline.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/macros/inline/TransparentInline.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/mainmethods/HelloWorld.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/mainmethods/HelloWorld.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/mainmethods/HelloWorld.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/mainmethods/HelloWorld.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/mainmethods/HelloWorldObject.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/mainmethods/HelloWorldObject.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/mainmethods/HelloWorldObject.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/mainmethods/HelloWorldObject.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/mainmethods/WithParameters.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/mainmethods/WithParameters.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/mainmethods/WithParameters.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/mainmethods/WithParameters.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/multiversalequality/CanEqualDeriveClause.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/multiversalequality/CanEqualDeriveClause.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/multiversalequality/CanEqualDeriveClause.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/multiversalequality/CanEqualDeriveClause.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/multiversalequality/CanEqualGivenInstance.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/multiversalequality/CanEqualGivenInstance.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/multiversalequality/CanEqualGivenInstance.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/multiversalequality/CanEqualGivenInstance.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/multiversalequality/MultiversalEquality.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/multiversalequality/MultiversalEquality.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/multiversalequality/MultiversalEquality.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/multiversalequality/MultiversalEquality.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/multiversalequality/UniversalEquality.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/multiversalequality/UniversalEquality.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/multiversalequality/UniversalEquality.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/multiversalequality/UniversalEquality.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/openclasses/Album.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/openclasses/Album.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/openclasses/Album.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/openclasses/Album.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/openclasses/DeluxeEdition.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/openclasses/DeluxeEdition.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/openclasses/DeluxeEdition.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/openclasses/DeluxeEdition.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/quitesyntax/Example.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/quitesyntax/Example.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/quitesyntax/Example.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/quitesyntax/Example.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/traits/ParameterizedTrait.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/traits/ParameterizedTrait.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/traits/ParameterizedTrait.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/traits/ParameterizedTrait.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/typesystem/CompoundTypes.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/typesystem/CompoundTypes.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/typesystem/CompoundTypes.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/typesystem/CompoundTypes.scala diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/typesystem/OpaqueTypeAlias.scala b/scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/typesystem/OpaqueTypeAlias.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala3/typesystem/OpaqueTypeAlias.scala rename to scala-lang-modules/scala-lang-3/src/main/scala/com/baeldung/scala3/typesystem/OpaqueTypeAlias.scala diff --git a/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/ExtensionMethodUnitTest.scala b/scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/implicits/ExtensionMethodUnitTest.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/ExtensionMethodUnitTest.scala rename to scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/implicits/ExtensionMethodUnitTest.scala diff --git a/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/ImplicitConversionUnitTest.scala b/scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/implicits/ImplicitConversionUnitTest.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/ImplicitConversionUnitTest.scala rename to scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/implicits/ImplicitConversionUnitTest.scala diff --git a/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/ProvidingContextualEnvironmentUnitTest.scala b/scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/implicits/ProvidingContextualEnvironmentUnitTest.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/ProvidingContextualEnvironmentUnitTest.scala rename to scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/implicits/ProvidingContextualEnvironmentUnitTest.scala diff --git a/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ExtensionUnitTest.scala b/scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ExtensionUnitTest.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ExtensionUnitTest.scala rename to scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ExtensionUnitTest.scala diff --git a/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitConversionUnitTest.scala b/scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitConversionUnitTest.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitConversionUnitTest.scala rename to scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitConversionUnitTest.scala diff --git a/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitParameterUnitTest.scala b/scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitParameterUnitTest.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitParameterUnitTest.scala rename to scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/implicits/comparison/scala2/ImplicitParameterUnitTest.scala diff --git a/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ExtensionUnitTest.scala b/scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ExtensionUnitTest.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ExtensionUnitTest.scala rename to scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ExtensionUnitTest.scala diff --git a/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitConversionUnitTest.scala b/scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitConversionUnitTest.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitConversionUnitTest.scala rename to scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitConversionUnitTest.scala diff --git a/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitParameterUnitTest.scala b/scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitParameterUnitTest.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitParameterUnitTest.scala rename to scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/implicits/comparison/scala3/ImplicitParameterUnitTest.scala diff --git a/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/extensions/ExtensionsUnitTest.scala b/scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/implicits/extensions/ExtensionsUnitTest.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/implicits/extensions/ExtensionsUnitTest.scala rename to scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/implicits/extensions/ExtensionsUnitTest.scala diff --git a/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/intersectiontypes/BasicIntersectionTypeUnitTest.scala b/scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/intersectiontypes/BasicIntersectionTypeUnitTest.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/intersectiontypes/BasicIntersectionTypeUnitTest.scala rename to scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/intersectiontypes/BasicIntersectionTypeUnitTest.scala diff --git a/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/intersectiontypes/DuckTypingUnitTest.scala b/scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/intersectiontypes/DuckTypingUnitTest.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/intersectiontypes/DuckTypingUnitTest.scala rename to scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/intersectiontypes/DuckTypingUnitTest.scala diff --git a/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/intersectiontypes/InheritanceUnitTest.scala b/scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/intersectiontypes/InheritanceUnitTest.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/intersectiontypes/InheritanceUnitTest.scala rename to scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/intersectiontypes/InheritanceUnitTest.scala diff --git a/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/intersectiontypes/OverloadingUnitTest.scala b/scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/intersectiontypes/OverloadingUnitTest.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/intersectiontypes/OverloadingUnitTest.scala rename to scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/intersectiontypes/OverloadingUnitTest.scala diff --git a/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/multiversalequality/CanEqualDeriveClauseUnitTest.scala b/scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/multiversalequality/CanEqualDeriveClauseUnitTest.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/multiversalequality/CanEqualDeriveClauseUnitTest.scala rename to scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/multiversalequality/CanEqualDeriveClauseUnitTest.scala diff --git a/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/multiversalequality/CanEqualGivenInstanceUnitTest.scala b/scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/multiversalequality/CanEqualGivenInstanceUnitTest.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/multiversalequality/CanEqualGivenInstanceUnitTest.scala rename to scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/multiversalequality/CanEqualGivenInstanceUnitTest.scala diff --git a/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/multiversalequality/MultiversalEqualityUnitTest.scala b/scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/multiversalequality/MultiversalEqualityUnitTest.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/multiversalequality/MultiversalEqualityUnitTest.scala rename to scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/multiversalequality/MultiversalEqualityUnitTest.scala diff --git a/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/multiversalequality/UniversalEqualityUnitTest.scala b/scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/multiversalequality/UniversalEqualityUnitTest.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/multiversalequality/UniversalEqualityUnitTest.scala rename to scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/multiversalequality/UniversalEqualityUnitTest.scala diff --git a/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/traits/ParameterizedTraitUnitTest.scala b/scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/traits/ParameterizedTraitUnitTest.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/traits/ParameterizedTraitUnitTest.scala rename to scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/traits/ParameterizedTraitUnitTest.scala diff --git a/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/typesystem/CompoundTypesUnitTest.scala b/scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/typesystem/CompoundTypesUnitTest.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/typesystem/CompoundTypesUnitTest.scala rename to scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/typesystem/CompoundTypesUnitTest.scala diff --git a/scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/typesystem/OpaqueTypeAliasUnitTest.scala b/scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/typesystem/OpaqueTypeAliasUnitTest.scala similarity index 100% rename from scala-lang-modules/scala-lang-5/src/test/scala/com/baeldung/scala3/typesystem/OpaqueTypeAliasUnitTest.scala rename to scala-lang-modules/scala-lang-3/src/test/scala/com/baeldung/scala3/typesystem/OpaqueTypeAliasUnitTest.scala diff --git a/scala-lang-modules/scala-lang-5/README.md b/scala-lang-modules/scala-lang-5/README.md deleted file mode 100644 index 8ccc00699..000000000 --- a/scala-lang-modules/scala-lang-5/README.md +++ /dev/null @@ -1,12 +0,0 @@ -### Relevant Articles: - -- [Opaque Type Alias in Scala 3](https://www.baeldung.com/scala/opaque-type-alias) -- [Introduction to Dotty and Scala 3](https://www.baeldung.com/scala/dotty-scala-3) -- [Scala 3 Implicit Redesign](https://www.baeldung.com/scala/scala-3-implicit-redesign) -- [Main Methods in Scala 3](https://www.baeldung.com/scala/scala-3-main-methods) -- [Multiversal Equality in Scala 3](https://www.baeldung.com/scala/multiversal-equality) -- [Intersection Types in Scala 3](https://www.baeldung.com/scala/intersection-types-scala-3) -- [Open Classes in Scala 3](https://www.baeldung.com/scala/open-classes) -- [Extension Methods in Scala 3](https://www.baeldung.com/scala/extension-methods) -- [The inline Modifier in Scala 3](https://www.baeldung.com/scala/inline-modifier) -- [New Control and Quiet Syntax in Scala 3](https://www.baeldung.com/scala/control-quiet-syntax) From b57b969adf2bbd2d9239d2a2c3b51772ba5ec888 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Thu, 4 Apr 2024 22:17:12 +0200 Subject: [PATCH 0497/1318] fixed scalafmt --- .../main/scala/com/baeldung/scala/matchtypes/MatchTypes.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/matchtypes/MatchTypes.scala b/scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/matchtypes/MatchTypes.scala index 9d7691137..d6b820f66 100644 --- a/scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/matchtypes/MatchTypes.scala +++ b/scala-lang-modules/scala-lang-4/src/main/scala/com/baeldung/scala/matchtypes/MatchTypes.scala @@ -19,4 +19,4 @@ val anItem: FirstComponentOf[Seq[Float]] = Some(3.2f) type Node[T] = T match case Iterable[t] => Node[t] case Array[t] => Node[t] - case AnyVal => T \ No newline at end of file + case AnyVal => T From e2f58ae1d9e30dfef598acdbef5c884817d82133 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 5 Apr 2024 17:45:53 +0200 Subject: [PATCH 0498/1318] Added code for getting digits from the number --- .../scala/digits/IndividualDigits.scala | 31 ++++++++++++++ .../digits/IndividualDigitsUnitTest.scala | 40 +++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 scala-core-modules/scala-core-numbers/src/main/scala/com/baeldung/scala/digits/IndividualDigits.scala create mode 100644 scala-core-modules/scala-core-numbers/src/test/scala/com/baeldung/scala/digits/IndividualDigitsUnitTest.scala diff --git a/scala-core-modules/scala-core-numbers/src/main/scala/com/baeldung/scala/digits/IndividualDigits.scala b/scala-core-modules/scala-core-numbers/src/main/scala/com/baeldung/scala/digits/IndividualDigits.scala new file mode 100644 index 000000000..fe933c35d --- /dev/null +++ b/scala-core-modules/scala-core-numbers/src/main/scala/com/baeldung/scala/digits/IndividualDigits.scala @@ -0,0 +1,31 @@ +package com.baeldung.scala.digits + +import scala.annotation.tailrec + +object IndividualDigits { + + def getDigitsByTailRecursion(num: Long): List[Int] = { + @tailrec + def rec(num: Long, digits: List[Int]): List[Int] = { + if (num < 10) { + num.toInt :: digits + } else { + rec((num / 10), (num % 10).toInt :: digits) + } + } + rec(num, Nil) + } + + def getDigitsByRecursion(num: Long): List[Int] = { + if (num < 10) { + List(num.toInt) + } else { + getDigitsByRecursion(num / 10) ++ List((num % 10).toInt) + } + } + + def getDigitsByToString(num: Long): List[Int] = { + num.toString.map(_.asDigit).toList + } + +} diff --git a/scala-core-modules/scala-core-numbers/src/test/scala/com/baeldung/scala/digits/IndividualDigitsUnitTest.scala b/scala-core-modules/scala-core-numbers/src/test/scala/com/baeldung/scala/digits/IndividualDigitsUnitTest.scala new file mode 100644 index 000000000..1680fa1ae --- /dev/null +++ b/scala-core-modules/scala-core-numbers/src/test/scala/com/baeldung/scala/digits/IndividualDigitsUnitTest.scala @@ -0,0 +1,40 @@ +package com.baeldung.scala.digits + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers +import org.scalatest.prop.TableDrivenPropertyChecks + +class IndividualDigitsUnitTest + extends AnyFlatSpec + with Matchers + with TableDrivenPropertyChecks { + + private val table = Table( + ("Number", "Digits"), + (987654321L, List(9, 8, 7, 6, 5, 4, 3, 2, 1)), + (123456L, List(1, 2, 3, 4, 5, 6)), + (1L, List(1)), + (0L, List(0)) + ) + + it should "get individual digits of a number using getDigitsByTailRecursion" in { + forAll(table) { (number, digits) => + val result = IndividualDigits.getDigitsByTailRecursion(number) + result shouldBe digits + } + } + + it should "get individual digits of a number using getDigitsByToString" in { + forAll(table) { (number, digits) => + val result = IndividualDigits.getDigitsByToString(number) + result shouldBe digits + } + } + + it should "get individual digits of a number using getDigitsByRecursion" in { + forAll(table) { (number, digits) => + val result = IndividualDigits.getDigitsByRecursion(number) + result shouldBe digits + } + } +} From da3c937532bfa637d53f21b08fb9f6ec7dd4bab9 Mon Sep 17 00:00:00 2001 From: Varvarigos Manolis Date: Fri, 5 Apr 2024 20:41:36 +0300 Subject: [PATCH 0499/1318] Review changes --- .../scala/com/baeldung/scala/bitset/BitSetTest.scala | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/bitset/BitSetTest.scala b/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/bitset/BitSetTest.scala index 4e1796deb..d598949cb 100644 --- a/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/bitset/BitSetTest.scala +++ b/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/bitset/BitSetTest.scala @@ -1,7 +1,6 @@ package com.baeldung.scala.bitset import org.scalatest.Assertions -import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpec import scala.collection.immutable.BitSet @@ -59,6 +58,15 @@ class BitSetTest extends AnyWordSpec with Assertions { } } + "BitSet.union" should { + "return a BitSet containing the elements of both sets" in { + assert(BitSet(3, 4).union(BitSet(2, 3)) == BitSet(2, 3, 4)) + assert( + BitSet(3, 4).union(BitSet(2, 3)) == BitSet(3, 4).concat(BitSet(2, 3)) + ) + } + } + "BitSet.intersect" should { "return a BitSet containing only elements existing in both sets" in { assert(BitSet(3, 4).intersect(BitSet(2, 3)) == BitSet(3)) From ac6e1adcf7028b213d8f52f49f97aa3ec1b7c1b8 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 7 Apr 2024 00:15:30 +0000 Subject: [PATCH 0500/1318] Update aws-java-sdk-s3 from 1.12.691 to 1.12.696 --- build.sbt | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/build.sbt b/build.sbt index d53082a1c..b2e05fbdf 100644 --- a/build.sbt +++ b/build.sbt @@ -120,13 +120,14 @@ lazy val scala_core_9 = (project in file("scala-core-modules/scala-core-9")) libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test ) -lazy val scala_core_numbers = (project in file("scala-core-modules/scala-core-numbers")) - .settings( - name := "scala-core-numbers", - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version, - libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test - ) +lazy val scala_core_numbers = + (project in file("scala-core-modules/scala-core-numbers")) + .settings( + name := "scala-core-numbers", + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version, + libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test + ) lazy val scala_core_io = (project in file("scala-core-modules/scala-core-io")) .settings( @@ -516,7 +517,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) scalaMock, "com.lihaoyi" %% "utest" % "0.8.2" % "test", munitDep, - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.691" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.696" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.25.21" @@ -594,7 +595,6 @@ lazy val scala_lang_4 = scalaVersion := scala3Version ) - lazy val cats_effects = (project in file("cats-effects")) .settings( name := "cats-effects", From 6f4b0a8ecf9ae3c8b76a8f13ecc7229379043892 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 7 Apr 2024 00:15:40 +0000 Subject: [PATCH 0501/1318] Update requests from 0.8.0 to 0.8.2 --- build.sbt | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/build.sbt b/build.sbt index d53082a1c..d0ae9fa0b 100644 --- a/build.sbt +++ b/build.sbt @@ -120,13 +120,14 @@ lazy val scala_core_9 = (project in file("scala-core-modules/scala-core-9")) libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test ) -lazy val scala_core_numbers = (project in file("scala-core-modules/scala-core-numbers")) - .settings( - name := "scala-core-numbers", - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version, - libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test - ) +lazy val scala_core_numbers = + (project in file("scala-core-modules/scala-core-numbers")) + .settings( + name := "scala-core-numbers", + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version, + libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test + ) lazy val scala_core_io = (project in file("scala-core-modules/scala-core-io")) .settings( @@ -417,7 +418,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) ), libraryDependencies ++= Seq( akkaTypedTestkit, - "com.lihaoyi" %% "requests" % "0.8.0" + "com.lihaoyi" %% "requests" % "0.8.2" ), libraryDependencies ++= Seq( "com.sksamuel.elastic4s" %% "elastic4s-client-esjava" % elastic4sVersion, @@ -594,7 +595,6 @@ lazy val scala_lang_4 = scalaVersion := scala3Version ) - lazy val cats_effects = (project in file("cats-effects")) .settings( name := "cats-effects", From aaf19bcba6ad634616f200f1da54a80b6a71c829 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 7 Apr 2024 00:15:54 +0000 Subject: [PATCH 0502/1318] Update tapir-akka-http-server, tapir-core, ... from 1.0.6 to 1.10.3 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index 5e28a1866..e861d8d20 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.0.6" +val tapirV = "1.10.3" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From c1933c210261fd4f9e06d4595388b5280bc663a7 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 7 Apr 2024 00:16:12 +0000 Subject: [PATCH 0503/1318] Update de.flapdoodle.embed.mongo from 4.12.2 to 4.12.6 --- build.sbt | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/build.sbt b/build.sbt index d53082a1c..8c8431204 100644 --- a/build.sbt +++ b/build.sbt @@ -10,7 +10,7 @@ val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.4" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.4" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV val logback = "ch.qos.logback" % "logback-classic" % "1.5.3" -val embedMongoVersion = "4.12.2" +val embedMongoVersion = "4.12.6" val AkkaVersion = "2.8.5" val AkkaHttpVersion = "10.5.0" @@ -120,13 +120,14 @@ lazy val scala_core_9 = (project in file("scala-core-modules/scala-core-9")) libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test ) -lazy val scala_core_numbers = (project in file("scala-core-modules/scala-core-numbers")) - .settings( - name := "scala-core-numbers", - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version, - libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test - ) +lazy val scala_core_numbers = + (project in file("scala-core-modules/scala-core-numbers")) + .settings( + name := "scala-core-numbers", + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version, + libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test + ) lazy val scala_core_io = (project in file("scala-core-modules/scala-core-io")) .settings( @@ -594,7 +595,6 @@ lazy val scala_lang_4 = scalaVersion := scala3Version ) - lazy val cats_effects = (project in file("cats-effects")) .settings( name := "cats-effects", From fefcdc73f9fd18d6b9d96afa595038f7eb2887e2 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 7 Apr 2024 00:16:22 +0000 Subject: [PATCH 0504/1318] Update zio-http, zio-http-testkit from 3.0.0-RC2 to 3.0.0-RC6 --- build.sbt | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/build.sbt b/build.sbt index d53082a1c..393d42710 100644 --- a/build.sbt +++ b/build.sbt @@ -120,13 +120,14 @@ lazy val scala_core_9 = (project in file("scala-core-modules/scala-core-9")) libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test ) -lazy val scala_core_numbers = (project in file("scala-core-modules/scala-core-numbers")) - .settings( - name := "scala-core-numbers", - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version, - libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test - ) +lazy val scala_core_numbers = + (project in file("scala-core-modules/scala-core-numbers")) + .settings( + name := "scala-core-numbers", + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version, + libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test + ) lazy val scala_core_io = (project in file("scala-core-modules/scala-core-io")) .settings( @@ -594,7 +595,6 @@ lazy val scala_lang_4 = scalaVersion := scala3Version ) - lazy val cats_effects = (project in file("cats-effects")) .settings( name := "cats-effects", @@ -634,7 +634,7 @@ lazy val zio3 = (project in file("zio3")) .settings( libraryDependencies ++= Seq( zioJsonDep, - "dev.zio" %% "zio-http" % "3.0.0-RC2", + "dev.zio" %% "zio-http" % "3.0.0-RC6", "io.getquill" %% "quill-zio" % "4.8.3", "io.getquill" %% "quill-jdbc-zio" % "4.8.3", "com.h2database" % "h2" % "2.2.220" @@ -643,7 +643,7 @@ lazy val zio3 = (project in file("zio3")) "dev.zio" %% "zio-test" % zioVersion % Test, zioTestSbt, "dev.zio" %% "zio-test-magnolia" % zioVersion % Test, - "dev.zio" %% "zio-http-testkit" % "3.0.0-RC2" % Test + "dev.zio" %% "zio-http-testkit" % "3.0.0-RC6" % Test ), testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework"), run / fork := true From ffd2cc5aeef3493a2f721c715dc4f87c8b49f4a8 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 7 Apr 2024 00:16:35 +0000 Subject: [PATCH 0505/1318] Update mockito-scala_2.13 from 1.17.30 to 1.17.31 --- play-scala/configuration-access/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/play-scala/configuration-access/build.sbt b/play-scala/configuration-access/build.sbt index 6a394dffe..2822ad59d 100644 --- a/play-scala/configuration-access/build.sbt +++ b/play-scala/configuration-access/build.sbt @@ -9,7 +9,7 @@ scalaVersion := ScalaVersions.scala2Version libraryDependencies += guice libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % Test -libraryDependencies += "org.mockito" % "mockito-scala_2.13" % "1.17.30" % Test +libraryDependencies += "org.mockito" % "mockito-scala_2.13" % "1.17.31" % Test // Adds additional packages into Twirl //TwirlKeys.templateImports += "com.baeldung.controllers._" From dd43526f33b661c3f57f306b405f7a524e623f15 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 7 Apr 2024 00:16:50 +0000 Subject: [PATCH 0506/1318] Update mongo-scala-driver from 5.0.0 to 5.0.1 --- build.sbt | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/build.sbt b/build.sbt index d53082a1c..00768879f 100644 --- a/build.sbt +++ b/build.sbt @@ -120,13 +120,14 @@ lazy val scala_core_9 = (project in file("scala-core-modules/scala-core-9")) libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test ) -lazy val scala_core_numbers = (project in file("scala-core-modules/scala-core-numbers")) - .settings( - name := "scala-core-numbers", - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version, - libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test - ) +lazy val scala_core_numbers = + (project in file("scala-core-modules/scala-core-numbers")) + .settings( + name := "scala-core-numbers", + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version, + libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test + ) lazy val scala_core_io = (project in file("scala-core-modules/scala-core-io")) .settings( @@ -248,7 +249,7 @@ lazy val scala_akka_dependencies: Seq[ModuleID] = Seq( akkaTypedTestkit, "com.lightbend.akka" %% "akka-stream-alpakka-mongodb" % "5.0.0", akkaStreamDep, - "org.mongodb.scala" %% "mongo-scala-driver" % "5.0.0", + "org.mongodb.scala" %% "mongo-scala-driver" % "5.0.1", "com.lightbend.akka" %% "akka-stream-alpakka-file" % "5.0.0", jUnitInterface, embeddedMongo % Test, @@ -594,7 +595,6 @@ lazy val scala_lang_4 = scalaVersion := scala3Version ) - lazy val cats_effects = (project in file("cats-effects")) .settings( name := "cats-effects", From a59122ec0b9449803ab36a90d3c347c5b9ddf7a4 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 7 Apr 2024 00:17:06 +0000 Subject: [PATCH 0507/1318] Update scalamock from 6.0.0-M2 to 6.0.0 --- build.sbt | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/build.sbt b/build.sbt index d53082a1c..6d4c211db 100644 --- a/build.sbt +++ b/build.sbt @@ -21,7 +21,7 @@ val scalaTestDeps = Seq( "org.scalatest" %% "scalatest-flatspec" % "3.2.18" % Test ) -val scalaMock = "org.scalamock" %% "scalamock" % "6.0.0-M2" % Test +val scalaMock = "org.scalamock" %% "scalamock" % "6.0.0" % Test val zioVersion = "2.0.21" lazy val scala_core = (project in file("scala-core-modules/scala-core")) @@ -120,13 +120,14 @@ lazy val scala_core_9 = (project in file("scala-core-modules/scala-core-9")) libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test ) -lazy val scala_core_numbers = (project in file("scala-core-modules/scala-core-numbers")) - .settings( - name := "scala-core-numbers", - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version, - libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test - ) +lazy val scala_core_numbers = + (project in file("scala-core-modules/scala-core-numbers")) + .settings( + name := "scala-core-numbers", + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version, + libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test + ) lazy val scala_core_io = (project in file("scala-core-modules/scala-core-io")) .settings( @@ -594,7 +595,6 @@ lazy val scala_lang_4 = scalaVersion := scala3Version ) - lazy val cats_effects = (project in file("cats-effects")) .settings( name := "cats-effects", From d1c40c7473ff37881daed6c3bb33e54074e02906 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 7 Apr 2024 00:17:23 +0000 Subject: [PATCH 0508/1318] Update jedis from 4.3.2 to 4.4.8 --- build.sbt | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/build.sbt b/build.sbt index d53082a1c..89f36e3a9 100644 --- a/build.sbt +++ b/build.sbt @@ -120,13 +120,14 @@ lazy val scala_core_9 = (project in file("scala-core-modules/scala-core-9")) libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test ) -lazy val scala_core_numbers = (project in file("scala-core-modules/scala-core-numbers")) - .settings( - name := "scala-core-numbers", - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version, - libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test - ) +lazy val scala_core_numbers = + (project in file("scala-core-modules/scala-core-numbers")) + .settings( + name := "scala-core-numbers", + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version, + libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test + ) lazy val scala_core_io = (project in file("scala-core-modules/scala-core-io")) .settings( @@ -459,7 +460,7 @@ lazy val redis_intro = libraryDependencies ++= scalaTestDeps .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( - "redis.clients" % "jedis" % "4.3.2", + "redis.clients" % "jedis" % "4.4.8", "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.14.1", "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % "it" ), @@ -594,7 +595,6 @@ lazy val scala_lang_4 = scalaVersion := scala3Version ) - lazy val cats_effects = (project in file("cats-effects")) .settings( name := "cats-effects", From 5b61797250d9a2681a455106ddd16ee8e79c5f49 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 7 Apr 2024 00:17:39 +0000 Subject: [PATCH 0509/1318] Update s3 from 2.25.21 to 2.25.26 --- build.sbt | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/build.sbt b/build.sbt index d53082a1c..a7a2ec182 100644 --- a/build.sbt +++ b/build.sbt @@ -120,13 +120,14 @@ lazy val scala_core_9 = (project in file("scala-core-modules/scala-core-9")) libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test ) -lazy val scala_core_numbers = (project in file("scala-core-modules/scala-core-numbers")) - .settings( - name := "scala-core-numbers", - libraryDependencies ++= scalaTestDeps, - scalaVersion := scala3Version, - libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test - ) +lazy val scala_core_numbers = + (project in file("scala-core-modules/scala-core-numbers")) + .settings( + name := "scala-core-numbers", + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version, + libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test + ) lazy val scala_core_io = (project in file("scala-core-modules/scala-core-io")) .settings( @@ -519,7 +520,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.691" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.25.21" + "software.amazon.awssdk" % "s3" % "2.25.26" ), Defaults.itSettings, IntegrationTest / fork := true @@ -594,7 +595,6 @@ lazy val scala_lang_4 = scalaVersion := scala3Version ) - lazy val cats_effects = (project in file("cats-effects")) .settings( name := "cats-effects", From 7a7b130f283f8faee458ff2424c001a42b13c092 Mon Sep 17 00:00:00 2001 From: Oscar Mauricio Forero Carrillo Date: Sun, 7 Apr 2024 13:29:29 +0200 Subject: [PATCH 0510/1318] Scala 185 - Companion code for the article (#1267) * SCALA-185: Companion code to the article. * SCALA-185: Companion code to the article. --- .../scala/destructuring/Notifications.scala | 16 ++++ .../destructuring/DestructuringTests.scala | 95 +++++++++++++++++++ 2 files changed, 111 insertions(+) create mode 100644 scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/destructuring/Notifications.scala create mode 100644 scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/destructuring/DestructuringTests.scala diff --git a/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/destructuring/Notifications.scala b/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/destructuring/Notifications.scala new file mode 100644 index 000000000..5e057a7a6 --- /dev/null +++ b/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/destructuring/Notifications.scala @@ -0,0 +1,16 @@ +package com.baeldung.scala.destructuring + +trait Notification +case class Email(subject: String, body: String, recipient: String) + extends Notification +case class SMS(number: String, message: String) extends Notification + +case class Processed[N <: Notification](notification: N, msg: String) + +def processEmail(email: Email): Processed[Email] = Processed( + email, + s"Sent email to ${email.recipient} with subject: ${email.subject}" +) + +def processSMS(sms: SMS): Processed[SMS] = + Processed(sms, s"Sending SMS to ${sms.number}: ${sms.message}") diff --git a/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/destructuring/DestructuringTests.scala b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/destructuring/DestructuringTests.scala new file mode 100644 index 000000000..722c79f6f --- /dev/null +++ b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/destructuring/DestructuringTests.scala @@ -0,0 +1,95 @@ +package com.baeldung.scala.destructuring + +import scala.util.Random + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers + +class DestructuringTests extends AnyFlatSpec with Matchers { + val random = new Random + + def getRandomElement[A](seq: Seq[A], random: Random): A = seq( + random.nextInt(seq.length) + ) + + // Sample notifications + val emailNotification1 = + Email("Greeting", "Hello, Scala user!", "user@example.com") + val emailNotification2 = + Email("Follow up", "Hello, are you loving scala?", "user@example.com") + val emails = List(emailNotification1, emailNotification2) + val smsNotification = SMS("1234567890", "Your verification code is 12345") + val notifications = List(emailNotification1, smsNotification) + + "We" should "be able to pattern match without @" in { + getRandomElement(notifications, random) match { + case Email(subject, body, recipient) => + println(s"Logging Email to $recipient with subject $subject") + // Reassemble and call the specific handler + processEmail( + Email(subject, body, recipient) + ).msg startsWith ("Sent email to ") + + case SMS(number, message) => + println(s"Logging SMS to $number: $message") + // Reassemble and call the specific handler + processSMS(SMS(number, message)).msg startsWith ("Sending SMS to") + } + } + + "We" should "be able to pattern match on the types without @" in { + getRandomElement(notifications, random) match { + case email: Email => + println( + s"Logging Email to ${email.recipient} with subject ${email.subject}" + ) + // Reassemble and call the specific handler + processEmail( + email + ).msg startsWith ("Sent email to ") + + case sms: SMS => + println(s"Logging SMS to ${sms.number}: ${sms.message}") + // Reassemble and call the specific handler + processSMS(sms).msg startsWith ("Sending SMS to") + } + } + + "We" should "be able to pattern match with @" in { + getRandomElement(notifications, random) match { + case email @ Email(subject, _, recipient) => + println(s"Logging Email to $recipient with subject $subject") + processEmail(email).msg startsWith ("Sent email to ") + + case sms @ SMS(number, message) => + println(s"Logging SMS to $number: $message") + // Reassemble and call the specific handler + processSMS(sms).msg startsWith ("Sending SMS to") + } + } + + "We" should "be able to use @ while declaring a variable" in { + val email @ Email(subject, _, recipient) = getRandomElement(emails, random) + println(s"Logging Email to $recipient with subject $subject") + processEmail(email).msg startsWith ("Sent email to ") + } + + "We" should "be able to use @ in for comprehensions" in { + for (email @ Email(subject, _, recipient) <- emails) { + println(s"Logging Email to $recipient with subject $subject") + processEmail(email).msg startsWith ("Sent email to ") + } + } + + "We" should "be able to use @ in a subpattern" in { + emails match { + case _ :: (email2 @ Email(subject, _, recipient)) :: _ => + println(s"Logging 2nd Email to $recipient with subject $subject") + processEmail(email2).msg startsWith ("Sent email to ") + + case _ => + println(s"Only one message") + } + } + +} From cc452471017ccdb47784e0bf464e8a9a67347ad2 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Mon, 8 Apr 2024 17:17:25 +0200 Subject: [PATCH 0511/1318] Moved reactive mongo test as live test --- build.sbt | 6 ++++-- .../com/baeldung/scala/reactivemongo/MongoEntities.scala | 0 .../scala/reactivemongo/ReactiveMongoLiveTest.scala} | 6 +----- 3 files changed, 5 insertions(+), 7 deletions(-) rename scala-libraries-persistence/src/{test => it}/scala/com/baeldung/scala/reactivemongo/MongoEntities.scala (100%) rename scala-libraries-persistence/src/{test/scala/com/baeldung/scala/reactivemongo/ReactiveMongoUnitTest.scala => it/scala/com/baeldung/scala/reactivemongo/ReactiveMongoLiveTest.scala} (99%) diff --git a/build.sbt b/build.sbt index d53082a1c..f751cb1a1 100644 --- a/build.sbt +++ b/build.sbt @@ -527,10 +527,12 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) lazy val scala_libraries_persistence = (project in file("scala-libraries-persistence")) + .configs(IntegrationTest) .settings( name := "scala-libraries-persistence", scalaVersion := scala3Version, - libraryDependencies ++= scalaTestDeps, + Defaults.itSettings, + libraryDependencies ++= scalaTestDeps.map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( "com.typesafe.slick" %% "slick" % slickVersion, "com.h2database" % "h2" % "2.2.224", @@ -539,7 +541,7 @@ lazy val scala_libraries_persistence = doobiePGDep, "org.reactivemongo" %% "reactivemongo" % reactiveMongo, "org.reactivemongo" %% "reactivemongo-akkastream" % reactiveMongo, - "de.flapdoodle.embed" % "de.flapdoodle.embed.mongo" % embedMongoVersion % Test, + "de.flapdoodle.embed" % "de.flapdoodle.embed.mongo" % embedMongoVersion % IntegrationTest, logback ) ) diff --git a/scala-libraries-persistence/src/test/scala/com/baeldung/scala/reactivemongo/MongoEntities.scala b/scala-libraries-persistence/src/it/scala/com/baeldung/scala/reactivemongo/MongoEntities.scala similarity index 100% rename from scala-libraries-persistence/src/test/scala/com/baeldung/scala/reactivemongo/MongoEntities.scala rename to scala-libraries-persistence/src/it/scala/com/baeldung/scala/reactivemongo/MongoEntities.scala diff --git a/scala-libraries-persistence/src/test/scala/com/baeldung/scala/reactivemongo/ReactiveMongoUnitTest.scala b/scala-libraries-persistence/src/it/scala/com/baeldung/scala/reactivemongo/ReactiveMongoLiveTest.scala similarity index 99% rename from scala-libraries-persistence/src/test/scala/com/baeldung/scala/reactivemongo/ReactiveMongoUnitTest.scala rename to scala-libraries-persistence/src/it/scala/com/baeldung/scala/reactivemongo/ReactiveMongoLiveTest.scala index 66b155f25..33553796f 100644 --- a/scala-libraries-persistence/src/test/scala/com/baeldung/scala/reactivemongo/ReactiveMongoUnitTest.scala +++ b/scala-libraries-persistence/src/it/scala/com/baeldung/scala/reactivemongo/ReactiveMongoLiveTest.scala @@ -16,11 +16,7 @@ import reactivemongo.api.Cursor import reactivemongo.api.bson.BSONDocument import reactivemongo.api.bson.collection.BSONCollection -import org.scalatest.Ignore - -@Ignore -// fixing in JAVA-33525 -class ReactiveMongoUnitTest +class ReactiveMongoLiveTest extends AsyncWordSpec with Matchers with BeforeAndAfterAll From bc5239e864f1a39c7444b95ab50584530692d5ca Mon Sep 17 00:00:00 2001 From: Zeeshan Arif Date: Thu, 11 Apr 2024 10:36:48 +0500 Subject: [PATCH 0512/1318] BAEL-704 Check whether strings are isomorphic or not (#1257) * BAEL-704 Check whether strings are isomorphic or not * BAEL-704 fixed formatting * BAEL-704 fixed formatting of unit test source file * BAEL-704 Added another method to check if strings are Isomorphic along with test --- .../isomorphic/IsomorphicStringsChecker.scala | 35 ++++++++++++++++++ .../IsomorphicStringsUnitTest.scala | 37 +++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/isomorphic/IsomorphicStringsChecker.scala create mode 100644 scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/isomorphic/IsomorphicStringsUnitTest.scala diff --git a/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/isomorphic/IsomorphicStringsChecker.scala b/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/isomorphic/IsomorphicStringsChecker.scala new file mode 100644 index 000000000..35af8615d --- /dev/null +++ b/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/isomorphic/IsomorphicStringsChecker.scala @@ -0,0 +1,35 @@ +package com.baeldung.scala.isomorphic + +object IsomorphicStringsChecker: + def checkIsomorphicBothWays(str1: String, str2: String): Boolean = + if (str1.length == str2.length) + checkIsomorphic(str1, str2) && checkIsomorphic(str2, str1) + else + false + + def checkIsomorphic2BothWays(str1: String, str2: String): Boolean = + if (str1.length == str2.length) + checkIsomorphic2(str1, str2) && checkIsomorphic2(str2, str1) + else + false + + private def checkIsomorphic(str1: String, str2: String): Boolean = + val z = str1.zip(str2) + // for each distinct pair, count the number of occurrences of tup._1 char + val distinctCounts = z.map(tup => { + z.distinct.count(tupZ => tupZ._1 == tup._1) + }) + // if all occurrence occur once only + if (distinctCounts.count(_ > 1) == 0) + true + else + false + + private def checkIsomorphic2(str1: String, str2: String): Boolean = + val z = str1.zip(str2) + val m = z.groupMap(_._1)(_._2) + // println(m) + if (m.forall(_._2.distinct.length == 1)) + true + else + false diff --git a/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/isomorphic/IsomorphicStringsUnitTest.scala b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/isomorphic/IsomorphicStringsUnitTest.scala new file mode 100644 index 000000000..de78a75cd --- /dev/null +++ b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/isomorphic/IsomorphicStringsUnitTest.scala @@ -0,0 +1,37 @@ +package com.baeldung.scala.isomorphic + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should +import com.baeldung.scala.isomorphic.IsomorphicStringsChecker.* +import org.scalatest.matchers.should.Matchers +import org.scalatest.prop.TableDrivenPropertyChecks +class IsomorphicStringsUnitTest + extends AnyFlatSpec + with TableDrivenPropertyChecks + with Matchers { + private val isomorphicStringChecker = Seq( + ("isomorphicChecker", checkIsomorphicBothWays), + ("isomorphicChecker2", checkIsomorphic2BothWays) + ) + + private val table = Table( + ("str1", "str2", "Isomorphic"), + ("aab", "xxy", true), + ("aab", "xxyz", false), + ("aaba", "xxyz", false), + ("ab", "xxyz", false), + ("aabac", "xxyz", false), + ("aab", "xxb", true), + (" ", "x", true), + ("", "x", false), + ("aab", "xyy", false), + ("xxm", "aab", true) + ) + isomorphicStringChecker.foreach { (name, fn) => + it should s"Check Isomorphic two String using $name" in { + forAll(table) { (str1, str2, expectedResult) => + fn(str1, str2) shouldBe expectedResult + } + } + } +} From 1c73cda9a77285944d795a902825f9bc2df602b4 Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Thu, 11 Apr 2024 22:06:03 +0800 Subject: [PATCH 0513/1318] Update README.md --- scala-core-modules/scala-core-9/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-core-modules/scala-core-9/README.md b/scala-core-modules/scala-core-9/README.md index a55bdb5eb..e8a3d991d 100644 --- a/scala-core-modules/scala-core-9/README.md +++ b/scala-core-modules/scala-core-9/README.md @@ -1,2 +1,3 @@ ### Relevant Articles - [Check if a Collection Is Sorted in Scala](https://www.baeldung.com/scala/check-collection-sorted) +- [Check if a String Is a Palindrome in Scala](https://www.baeldung.com/scala/string-palindrome-test) From bc93a5c54145038ebafc90cf94a2d856a7b2d2e1 Mon Sep 17 00:00:00 2001 From: Oscar Mauricio Forero Carrillo Date: Sun, 14 Apr 2024 17:56:58 +0200 Subject: [PATCH 0514/1318] =?UTF-8?q?SCALA-185:=20Rename=20the=20test=20fo?= =?UTF-8?q?lder=20and=20add=20the=20scope=20to=20dependencies=20a=E2=80=A6?= =?UTF-8?q?=20(#1280)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * SCALA-185: Rename the test folder and add the scope to dependencies at the module level. * SCALA-185: Improve the poms to reduce repetition * SCALA-185: Improve the poms to reduce repetition --- scala-with-maven/hello-rest/pom.xml | 6 +-- scala-with-maven/hello-world/pom.xml | 35 +------------- .../scala/HelloWorldSpec.scala | 0 scala-with-maven/pom.xml | 46 ++++++++++++++++++- 4 files changed, 48 insertions(+), 39 deletions(-) rename scala-with-maven/hello-world/src/{tests => test}/scala/HelloWorldSpec.scala (100%) diff --git a/scala-with-maven/hello-rest/pom.xml b/scala-with-maven/hello-rest/pom.xml index 66fc5785a..1da06cd21 100644 --- a/scala-with-maven/hello-rest/pom.xml +++ b/scala-with-maven/hello-rest/pom.xml @@ -19,14 +19,10 @@ org.scala-lang scala3-library_3 - - org.scalatest - scalatest_3 - org.typelevel cats-effect_3 - 3.5.4 + 3.5.4 org.http4s diff --git a/scala-with-maven/hello-world/pom.xml b/scala-with-maven/hello-world/pom.xml index dfd24de9a..a9de8cdbf 100644 --- a/scala-with-maven/hello-world/pom.xml +++ b/scala-with-maven/hello-world/pom.xml @@ -13,7 +13,6 @@ hello-world - org.scala-lang @@ -29,42 +28,12 @@ - src/main/scala - src/tests/scala - - net.alchim31.maven - scala-maven-plugin - 4.8.1 - - incremental - ${scala.version} - - -Xlint:unchecked - -Xlint:deprecation - - - - - - compile - testCompile - - - - org.scalatest scalatest-maven-plugin - 2.2.0 - - - - test - - - - + + \ No newline at end of file diff --git a/scala-with-maven/hello-world/src/tests/scala/HelloWorldSpec.scala b/scala-with-maven/hello-world/src/test/scala/HelloWorldSpec.scala similarity index 100% rename from scala-with-maven/hello-world/src/tests/scala/HelloWorldSpec.scala rename to scala-with-maven/hello-world/src/test/scala/HelloWorldSpec.scala diff --git a/scala-with-maven/pom.xml b/scala-with-maven/pom.xml index 01811476e..7024503be 100644 --- a/scala-with-maven/pom.xml +++ b/scala-with-maven/pom.xml @@ -25,7 +25,6 @@ org.scalatest scalatest_3 3.2.18 - test @@ -34,4 +33,49 @@ hello-world hello-rest + + + src/main/scala + src/test/scala + + + + org.scalatest + scalatest-maven-plugin + 2.2.0 + + + + test + + + + + + + + + net.alchim31.maven + scala-maven-plugin + 4.8.1 + + incremental + ${scala.version} + + -Xlint:unchecked + -Xlint:deprecation + + + + + + compile + testCompile + + + + + + + \ No newline at end of file From 47d69aa879d9e72a1594c40592e5e858d4134e98 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 02:32:31 +0000 Subject: [PATCH 0515/1318] Update logback-classic from 1.5.3 to 1.5.5 --- build.sbt | 5 +++-- scalatra/build.sbt | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index 0147a5973..082524490 100644 --- a/build.sbt +++ b/build.sbt @@ -9,7 +9,7 @@ val jUnitInterface = "com.github.sbt" % "junit-interface" % "0.13.3" % "test" val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.4" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.4" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV -val logback = "ch.qos.logback" % "logback-classic" % "1.5.3" +val logback = "ch.qos.logback" % "logback-classic" % "1.5.5" val embedMongoVersion = "4.12.6" val AkkaVersion = "2.8.5" val AkkaHttpVersion = "10.5.0" @@ -533,7 +533,8 @@ lazy val scala_libraries_persistence = name := "scala-libraries-persistence", scalaVersion := scala3Version, Defaults.itSettings, - libraryDependencies ++= scalaTestDeps.map(_.withConfigurations(Some("it,test"))), + libraryDependencies ++= scalaTestDeps + .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( "com.typesafe.slick" %% "slick" % slickVersion, "com.h2database" % "h2" % "2.2.224", diff --git a/scalatra/build.sbt b/scalatra/build.sbt index 46baf9b84..3139317b3 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -8,7 +8,7 @@ version := "0.1.0-SNAPSHOT" libraryDependencies ++= Seq( "org.scalatra" %% "scalatra" % ScalatraVersion, "org.scalatra" %% "scalatra-scalatest" % ScalatraVersion % "test", - "ch.qos.logback" % "logback-classic" % "1.5.3" % "runtime", + "ch.qos.logback" % "logback-classic" % "1.5.5" % "runtime", "org.eclipse.jetty" % "jetty-webapp" % "11.0.20" % "container", "javax.servlet" % "javax.servlet-api" % "4.0.1" % "provided", "org.scalatra" %% "scalatra-auth" % ScalatraVersion, From d100be33a3da4054a3135e399b67259f05a82cd0 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 02:32:47 +0000 Subject: [PATCH 0516/1318] Update aws-java-sdk-s3 from 1.12.696 to 1.12.701 --- build.sbt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 0147a5973..f383cdb0c 100644 --- a/build.sbt +++ b/build.sbt @@ -517,7 +517,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) scalaMock, "com.lihaoyi" %% "utest" % "0.8.2" % "test", munitDep, - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.696" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.701" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.25.26" @@ -533,7 +533,8 @@ lazy val scala_libraries_persistence = name := "scala-libraries-persistence", scalaVersion := scala3Version, Defaults.itSettings, - libraryDependencies ++= scalaTestDeps.map(_.withConfigurations(Some("it,test"))), + libraryDependencies ++= scalaTestDeps + .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( "com.typesafe.slick" %% "slick" % slickVersion, "com.h2database" % "h2" % "2.2.224", From 08cbdc20931ad92442a138164b58179327766efb Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 02:32:57 +0000 Subject: [PATCH 0517/1318] Update os-lib from 0.9.3 to 0.10.0 --- build.sbt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 0147a5973..6a0c31a0f 100644 --- a/build.sbt +++ b/build.sbt @@ -430,7 +430,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) val http4sBlaze = "0.23.16" val http4sVersion = "0.23.26" -val osLibVersion = "0.9.3" +val osLibVersion = "0.10.0" val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion @@ -533,7 +533,8 @@ lazy val scala_libraries_persistence = name := "scala-libraries-persistence", scalaVersion := scala3Version, Defaults.itSettings, - libraryDependencies ++= scalaTestDeps.map(_.withConfigurations(Some("it,test"))), + libraryDependencies ++= scalaTestDeps + .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( "com.typesafe.slick" %% "slick" % slickVersion, "com.h2database" % "h2" % "2.2.224", From 3236267026548d0cdf21d280c7d4dad79ea6a623 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 02:33:09 +0000 Subject: [PATCH 0518/1318] Update utest from 0.8.2 to 0.8.3 --- build.sbt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 0147a5973..5a0a85413 100644 --- a/build.sbt +++ b/build.sbt @@ -515,7 +515,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) libraryDependencies ++= Seq( "org.scalacheck" %% "scalacheck" % "1.17.0" % Test, scalaMock, - "com.lihaoyi" %% "utest" % "0.8.2" % "test", + "com.lihaoyi" %% "utest" % "0.8.3" % "test", munitDep, "com.amazonaws" % "aws-java-sdk-s3" % "1.12.696" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, @@ -533,7 +533,8 @@ lazy val scala_libraries_persistence = name := "scala-libraries-persistence", scalaVersion := scala3Version, Defaults.itSettings, - libraryDependencies ++= scalaTestDeps.map(_.withConfigurations(Some("it,test"))), + libraryDependencies ++= scalaTestDeps + .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( "com.typesafe.slick" %% "slick" % slickVersion, "com.h2database" % "h2" % "2.2.224", From 8ae5cb85ca8c422cc0990e5eb6634443d7aadccc Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 02:33:22 +0000 Subject: [PATCH 0519/1318] Update tapir-akka-http-server, tapir-core, ... from 1.10.3 to 1.10.4 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index e861d8d20..379ceaddb 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.10.3" +val tapirV = "1.10.4" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From d2c3a1ee0cc0d7b7a8fde0ed6bbc68c0a2abd0aa Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 02:33:38 +0000 Subject: [PATCH 0520/1318] Update slick from 3.5.0 to 3.5.1 --- build.sbt | 5 +++-- scalatra/build.sbt | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index 0147a5973..7d60327cc 100644 --- a/build.sbt +++ b/build.sbt @@ -323,7 +323,7 @@ lazy val scala_akka_3 = (project in file("scala-akka-3")) ) val monocleVersion = "2.1.0" -val slickVersion = "3.5.0" +val slickVersion = "3.5.1" val shapelessVersion = "2.3.10" val scalazVersion = "7.3.8" val fs2Version = "3.10.2" @@ -533,7 +533,8 @@ lazy val scala_libraries_persistence = name := "scala-libraries-persistence", scalaVersion := scala3Version, Defaults.itSettings, - libraryDependencies ++= scalaTestDeps.map(_.withConfigurations(Some("it,test"))), + libraryDependencies ++= scalaTestDeps + .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( "com.typesafe.slick" %% "slick" % slickVersion, "com.h2database" % "h2" % "2.2.224", diff --git a/scalatra/build.sbt b/scalatra/build.sbt index 46baf9b84..2a3110f70 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -14,7 +14,7 @@ libraryDependencies ++= Seq( "org.scalatra" %% "scalatra-auth" % ScalatraVersion, "org.scalatra" %% "scalatra-json" % "2.8.4", "org.json4s" %% "json4s-jackson" % "4.0.7", - "com.typesafe.slick" %% "slick" % "3.5.0", + "com.typesafe.slick" %% "slick" % "3.5.1", "com.h2database" % "h2" % "2.1.214", "com.mchange" % "c3p0" % "0.10.0" ) From 3e112d16035eea9561b1916e66d7af167a84fed8 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 02:33:51 +0000 Subject: [PATCH 0521/1318] Update zio, zio-streams, zio-test, ... from 2.0.21 to 2.0.22 --- build.sbt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 0147a5973..cc762650b 100644 --- a/build.sbt +++ b/build.sbt @@ -22,7 +22,7 @@ val scalaTestDeps = Seq( ) val scalaMock = "org.scalamock" %% "scalamock" % "6.0.0" % Test -val zioVersion = "2.0.21" +val zioVersion = "2.0.22" lazy val scala_core = (project in file("scala-core-modules/scala-core")) .settings( @@ -533,7 +533,8 @@ lazy val scala_libraries_persistence = name := "scala-libraries-persistence", scalaVersion := scala3Version, Defaults.itSettings, - libraryDependencies ++= scalaTestDeps.map(_.withConfigurations(Some("it,test"))), + libraryDependencies ++= scalaTestDeps + .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( "com.typesafe.slick" %% "slick" % slickVersion, "com.h2database" % "h2" % "2.2.224", From 0cc71126937a9ad02f220f2e2ce9c524ea177a6e Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 02:34:07 +0000 Subject: [PATCH 0522/1318] Update kafka-avro-serializer from 7.6.0 to 7.6.1 --- build.sbt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 0147a5973..279b4fe63 100644 --- a/build.sbt +++ b/build.sbt @@ -480,7 +480,7 @@ val jackSonVersion = "2.17.0" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" -val kafkaAvroSerializer = "7.6.0" +val kafkaAvroSerializer = "7.6.1" val pureConfigDep = "com.github.pureconfig" %% "pureconfig" % pureconfigVersion @@ -533,7 +533,8 @@ lazy val scala_libraries_persistence = name := "scala-libraries-persistence", scalaVersion := scala3Version, Defaults.itSettings, - libraryDependencies ++= scalaTestDeps.map(_.withConfigurations(Some("it,test"))), + libraryDependencies ++= scalaTestDeps + .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( "com.typesafe.slick" %% "slick" % slickVersion, "com.h2database" % "h2" % "2.2.224", From 9110f6ced8a4f87da6405257758845d45ec918af Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 02:34:22 +0000 Subject: [PATCH 0523/1318] Update kafka-clients from 7.6.0-ce to 7.6.1-ce --- build.sbt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 0147a5973..813405502 100644 --- a/build.sbt +++ b/build.sbt @@ -474,7 +474,7 @@ lazy val tapir = (project in file("scala-libraries-standalone/tapir")) ) val spireVersion = "0.18.0" -val kafkaVersion = "7.6.0-ce" +val kafkaVersion = "7.6.1-ce" val pureconfigVersion = "0.17.6" val jackSonVersion = "2.17.0" val log4jApiScalaVersion = "13.1.0" @@ -533,7 +533,8 @@ lazy val scala_libraries_persistence = name := "scala-libraries-persistence", scalaVersion := scala3Version, Defaults.itSettings, - libraryDependencies ++= scalaTestDeps.map(_.withConfigurations(Some("it,test"))), + libraryDependencies ++= scalaTestDeps + .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( "com.typesafe.slick" %% "slick" % slickVersion, "com.h2database" % "h2" % "2.2.224", From 3a9230801db8e422f09c9a211f4438e687841372 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 02:34:29 +0000 Subject: [PATCH 0524/1318] Update sbt-scala-native from 0.4.17 to 0.5.0 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index 5864ab14d..6187f9169 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,6 +1,6 @@ addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.2") -addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.4.17") +addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.0") addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.16.0") addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.2.1") From 0f2ccd012252330b4a6388cff9ab99e07a07513a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 02:34:42 +0000 Subject: [PATCH 0525/1318] Update jedis from 4.4.8 to 5.1.2 --- build.sbt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 0147a5973..023088b1b 100644 --- a/build.sbt +++ b/build.sbt @@ -460,7 +460,7 @@ lazy val redis_intro = libraryDependencies ++= scalaTestDeps .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( - "redis.clients" % "jedis" % "4.4.8", + "redis.clients" % "jedis" % "5.1.2", "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.14.1", "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % "it" ), @@ -533,7 +533,8 @@ lazy val scala_libraries_persistence = name := "scala-libraries-persistence", scalaVersion := scala3Version, Defaults.itSettings, - libraryDependencies ++= scalaTestDeps.map(_.withConfigurations(Some("it,test"))), + libraryDependencies ++= scalaTestDeps + .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( "com.typesafe.slick" %% "slick" % slickVersion, "com.h2database" % "h2" % "2.2.224", From 61aa0b8d49d69bfe3b764a944def49240dcf53ee Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 02:34:57 +0000 Subject: [PATCH 0526/1318] Update s3 from 2.25.26 to 2.25.31 --- build.sbt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 0147a5973..272808b5c 100644 --- a/build.sbt +++ b/build.sbt @@ -520,7 +520,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.696" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.25.26" + "software.amazon.awssdk" % "s3" % "2.25.31" ), Defaults.itSettings, IntegrationTest / fork := true @@ -533,7 +533,8 @@ lazy val scala_libraries_persistence = name := "scala-libraries-persistence", scalaVersion := scala3Version, Defaults.itSettings, - libraryDependencies ++= scalaTestDeps.map(_.withConfigurations(Some("it,test"))), + libraryDependencies ++= scalaTestDeps + .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( "com.typesafe.slick" %% "slick" % slickVersion, "com.h2database" % "h2" % "2.2.224", From 010d74448016846cba4efbaa8ef8e1040eb24164 Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Wed, 17 Apr 2024 15:59:55 +0800 Subject: [PATCH 0527/1318] Update README.md --- .../scala-core-collections-3/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-core-collections-modules/scala-core-collections-3/README.md b/scala-core-collections-modules/scala-core-collections-3/README.md index da68dc68a..9668e04f6 100644 --- a/scala-core-collections-modules/scala-core-collections-3/README.md +++ b/scala-core-collections-modules/scala-core-collections-3/README.md @@ -8,3 +8,4 @@ - [Difference Between zip() and lazyZip() in Scala](https://www.baeldung.com/scala/zip-vs-lazyzip) - [Implementing an LRU Cache in Scala 3: A Step-by-Step Guide](https://www.baeldung.com/scala/least-recently-used-cache) - [Using the sliding() and grouped() Methods With Scala Collections](https://www.baeldung.com/scala/sliding-grouped-methods-with-collections) +- [Introduction to BitSet in Scala](https://www.baeldung.com/scala/bitiset) From 9fbbc45cf94a71eec376adca7a6b87720a560488 Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Wed, 17 Apr 2024 16:00:54 +0800 Subject: [PATCH 0528/1318] Update README.md --- zio/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/zio/README.md b/zio/README.md index 40a5e41c1..59036189a 100644 --- a/zio/README.md +++ b/zio/README.md @@ -9,3 +9,4 @@ - [Introduction to Fibers in ZIO](https://www.baeldung.com/scala/zio-fibers-tutorial) - [Error Handling in ZIO](https://www.baeldung.com/scala/zio-error-handling) - [Introduction to zio-kafka](https://www.baeldung.com/scala/zio-kafka-intro) +- [Functional Abstraction in Scala Using ZIO Prelude](https://www.baeldung.com/scala/zio-prelude-functional-abstraction) From 935342c203e9991bcb398d06fae730fd04e7c396 Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Wed, 17 Apr 2024 16:02:01 +0800 Subject: [PATCH 0529/1318] Update README.md --- scala-core-modules/scala-core-numbers/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-core-modules/scala-core-numbers/README.md b/scala-core-modules/scala-core-numbers/README.md index fd4ae9bce..15ce81225 100644 --- a/scala-core-modules/scala-core-numbers/README.md +++ b/scala-core-modules/scala-core-numbers/README.md @@ -5,3 +5,4 @@ - [Generating the Fibonacci Sequence in Scala](https://www.baeldung.com/scala/generating-fibonacci-series) - [Find Factorial of a Number in Scala](https://www.baeldung.com/scala/find-factorial) - [Check if a Number Is a Power of Two in Scala](https://www.baeldung.com/scala/check-power-of-two) +- [Get the Individual Digits of a Number in Scala](https://www.baeldung.com/scala/number-extract-digits) From a0c0f00ce0ccdc87c6bf64605daafb1652e51111 Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Wed, 17 Apr 2024 16:02:59 +0800 Subject: [PATCH 0530/1318] Update README.md --- scala-core-modules/scala-core-9/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-core-modules/scala-core-9/README.md b/scala-core-modules/scala-core-9/README.md index e8a3d991d..f42881578 100644 --- a/scala-core-modules/scala-core-9/README.md +++ b/scala-core-modules/scala-core-9/README.md @@ -1,3 +1,4 @@ ### Relevant Articles - [Check if a Collection Is Sorted in Scala](https://www.baeldung.com/scala/check-collection-sorted) - [Check if a String Is a Palindrome in Scala](https://www.baeldung.com/scala/string-palindrome-test) +- [Scala’s Destructuring with the @ Operator](https://www.baeldung.com/scala/destructuring-operator) From cd43b544796c3bda1544a96387479e47e5f08b20 Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Wed, 17 Apr 2024 16:04:17 +0800 Subject: [PATCH 0531/1318] Update README.md --- scala-sbt/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-sbt/README.md b/scala-sbt/README.md index 1867e73ce..0b46e4b68 100644 --- a/scala-sbt/README.md +++ b/scala-sbt/README.md @@ -3,3 +3,4 @@ - [Introduction to SBT](https://www.baeldung.com/scala/sbt-intro) - [Setting up Global Configurations in SBT](https://www.baeldung.com/scala/sbt-global-configurations) - [Safer Scala Code by Using WartRemover](https://www.baeldung.com/scala/wartremover) +- [Integration Testing with SBT](https://www.baeldung.com/scala/sbt-integration-testing) From f80195c6731d253ff456d102eb69e44b32ebb20c Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Wed, 17 Apr 2024 16:05:19 +0800 Subject: [PATCH 0532/1318] Update README.md --- scala-core-modules/scala-core-9/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-core-modules/scala-core-9/README.md b/scala-core-modules/scala-core-9/README.md index f42881578..024063eb7 100644 --- a/scala-core-modules/scala-core-9/README.md +++ b/scala-core-modules/scala-core-9/README.md @@ -2,3 +2,4 @@ - [Check if a Collection Is Sorted in Scala](https://www.baeldung.com/scala/check-collection-sorted) - [Check if a String Is a Palindrome in Scala](https://www.baeldung.com/scala/string-palindrome-test) - [Scala’s Destructuring with the @ Operator](https://www.baeldung.com/scala/destructuring-operator) +- [Check if Two Strings Are Isomorphic in Scala](https://www.baeldung.com/scala/string-isomorphism) From ba01b1a13dca877dcd5ec6593e0c4d2de9b15321 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 17 Apr 2024 18:08:07 +0200 Subject: [PATCH 0533/1318] zip, zipWithIndex and zipAll method usage in Scala --- .../zipvariants/ZipVariantUnitTest.scala | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/zipvariants/ZipVariantUnitTest.scala diff --git a/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/zipvariants/ZipVariantUnitTest.scala b/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/zipvariants/ZipVariantUnitTest.scala new file mode 100644 index 000000000..9e7d6466c --- /dev/null +++ b/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/zipvariants/ZipVariantUnitTest.scala @@ -0,0 +1,48 @@ +package com.baeldung.scala.zipvariants + +import org.scalatest.wordspec.AnyWordSpec + +class ZipVariantUnitTest extends AnyWordSpec { + + "zip method" should { + "combine two collections of equal size correctly" in { + val numbers = List(1, 2, 3) + val words = List("one", "two", "three") + val zipped = numbers.zip(words) + assert(zipped == List((1, "one"), (2, "two"), (3, "three"))) + } + + "drop elements from larger collection" in { + val numbers = List(1, 2, 3) + val words = List("one", "two", "three", "four") + val zipped = numbers.zip(words) + assert(zipped == List((1, "one"), (2, "two"), (3, "three"))) + } + } + + "zipAll" should { + "combine two collections of unequal size with default values" in { + val numbers = List(1, 2, 3) + val words = List("one", "two", "three", "four") + val zipped = numbers.zipAll(words, 0, "unknown") + assert(zipped == List((1, "one"), (2, "two"), (3, "three"), (0, "four"))) + val zipped2 = numbers.zipAll(words.take(2), 0, "unknown") + assert(zipped2 == List((1, "one"), (2, "two"), (3, "unknown"))) + } + } + + "zipWithIndex" should { + "combine each element of a list with its corresponding index" in { + val words = List("one", "two", "three", "four") + assert( + words.zipWithIndex == List( + ("one", 0), + ("two", 1), + ("three", 2), + ("four", 3) + ) + ) + } + } + +} From 0f68eab9fef87605872b310f14eb7b0aabec1983 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 20 Apr 2024 16:41:12 +0400 Subject: [PATCH 0534/1318] Added sample code for removing special characters from a string --- .../RemoveSpecialCharactersUnitTest.scala | 98 +++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 scala-strings/src/test/scala/com/baeldung/scala/strings/removespecialchars/RemoveSpecialCharactersUnitTest.scala diff --git a/scala-strings/src/test/scala/com/baeldung/scala/strings/removespecialchars/RemoveSpecialCharactersUnitTest.scala b/scala-strings/src/test/scala/com/baeldung/scala/strings/removespecialchars/RemoveSpecialCharactersUnitTest.scala new file mode 100644 index 000000000..e21496922 --- /dev/null +++ b/scala-strings/src/test/scala/com/baeldung/scala/strings/removespecialchars/RemoveSpecialCharactersUnitTest.scala @@ -0,0 +1,98 @@ +package com.baeldung.scala.strings.removespecialchars + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers +import org.scalatest.prop.TableDrivenPropertyChecks + +class RemoveSpecialCharactersUnitTest + extends AnyFlatSpec + with Matchers + with TableDrivenPropertyChecks { + + def removeAllSpecialCharUsingRegex(text: String): String = { + text.replaceAll("[^a-zA-Z0-9]", "") + } + + def removeSomeSpecialCharUsingRegex(text: String): String = { + text.replaceAll("[^a-zA-Z0-9_\\s]", "") + } + + def removeSpecialCharUsingWordRegex(text: String): String = { + text.replaceAll("\\W", "") + } + + def removeSpecialCharUsingAnotherWordRegex(text: String): String = { + text.replaceAll("[^\\w\\s]", "") + } + + def removeAllSpecialCharsUsingFilter(text: String): String = { + text.filter(_.isLetterOrDigit) + } + + def removeSpecialCharsUsingCollect(text: String): String = { + text.collect { + case c if c.isLetterOrDigit || Set(' ', '_').contains(c) => c + } + } + + private val removeAllSpecialTable = Table( + ("text", "expected"), + ("Special_Chars**Text $#^{} Here 2", "SpecialCharsTextHere2"), + (" ", ""), + ("!@#$.... ", ""), + ("baeldung", "baeldung") + ) + + it should "remove all the special characters using regex" in { + forAll(removeAllSpecialTable) { (text, expected) => + removeAllSpecialCharUsingRegex(text) shouldBe expected + } + } + + it should "remove all the special characters using filter" in { + forAll(removeAllSpecialTable) { (text, expected) => + removeAllSpecialCharsUsingFilter(text) shouldBe expected + } + } + + it should "remove all special characters using removeAllSpecialCharUsingRegex" in { + assert( + removeAllSpecialCharUsingRegex("Hello Baeldung_!") == "HelloBaeldung" + ) + } + + it should "remove all special characters using removeAllSpecialCharsUsingFilter" in { + assert( + removeAllSpecialCharsUsingFilter("Hello Baeldung_!") == "HelloBaeldung" + ) + } + + it should "remove some special characters using removeSomeSpecialCharUsingRegex" in { + assert( + removeSomeSpecialCharUsingRegex("Hello Baeldung_!") == "Hello Baeldung_" + ) + } + + it should "remove special characters using removeSpecialCharUsingWordRegex" in { + assert( + removeSomeSpecialCharUsingRegex( + "Hello Baeldung_*()!" + ) == "Hello Baeldung_" + ) + } + + it should "remove special characters using removeSpecialCharsUsingCollect" in { + assert( + removeSpecialCharsUsingCollect("Hello Baeldung_*()!") == "Hello Baeldung_" + ) + } + + it should "remove special characters using removeSpecialCharUsingAnotherWordRegex" in { + assert( + removeSpecialCharUsingAnotherWordRegex( + "Hello Baeldung_*()!" + ) == "Hello Baeldung_" + ) + } + +} From 9343bb88e5509318fa225beaaad7006534421e6f Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 20 Apr 2024 18:21:45 +0400 Subject: [PATCH 0535/1318] added more tests --- .../RemoveSpecialCharactersUnitTest.scala | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/scala-strings/src/test/scala/com/baeldung/scala/strings/removespecialchars/RemoveSpecialCharactersUnitTest.scala b/scala-strings/src/test/scala/com/baeldung/scala/strings/removespecialchars/RemoveSpecialCharactersUnitTest.scala index e21496922..e53a7578a 100644 --- a/scala-strings/src/test/scala/com/baeldung/scala/strings/removespecialchars/RemoveSpecialCharactersUnitTest.scala +++ b/scala-strings/src/test/scala/com/baeldung/scala/strings/removespecialchars/RemoveSpecialCharactersUnitTest.scala @@ -14,7 +14,7 @@ class RemoveSpecialCharactersUnitTest } def removeSomeSpecialCharUsingRegex(text: String): String = { - text.replaceAll("[^a-zA-Z0-9_\\s]", "") + text.replaceAll("[^a-zA-Z0-9_]", "") } def removeSpecialCharUsingWordRegex(text: String): String = { @@ -22,7 +22,7 @@ class RemoveSpecialCharactersUnitTest } def removeSpecialCharUsingAnotherWordRegex(text: String): String = { - text.replaceAll("[^\\w\\s]", "") + text.replaceAll("[^\\w]", "") } def removeAllSpecialCharsUsingFilter(text: String): String = { @@ -69,15 +69,15 @@ class RemoveSpecialCharactersUnitTest it should "remove some special characters using removeSomeSpecialCharUsingRegex" in { assert( - removeSomeSpecialCharUsingRegex("Hello Baeldung_!") == "Hello Baeldung_" + removeSomeSpecialCharUsingRegex("Hello Baeldung_!") == "HelloBaeldung_" ) } it should "remove special characters using removeSpecialCharUsingWordRegex" in { assert( - removeSomeSpecialCharUsingRegex( + removeSpecialCharUsingWordRegex( "Hello Baeldung_*()!" - ) == "Hello Baeldung_" + ) == "HelloBaeldung_" ) } @@ -91,8 +91,15 @@ class RemoveSpecialCharactersUnitTest assert( removeSpecialCharUsingAnotherWordRegex( "Hello Baeldung_*()!" - ) == "Hello Baeldung_" + ) == "HelloBaeldung_" ) } + it should "filter only required character from string" in { + val text = "Hello Baeldung_!*&$" + val sanitized = + text.filter(c => c.isLetterOrDigit || Set(' ', '_').contains(c)) + assert(sanitized == "Hello Baeldung_") + } + } From 9259aff6156e52addddbe30e8efa6cc0801c1323 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 23 Apr 2024 00:14:03 +0000 Subject: [PATCH 0536/1318] Update logback-classic from 1.5.5 to 1.5.6 --- build.sbt | 2 +- scalatra/build.sbt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 490bb2593..0840ae8c6 100644 --- a/build.sbt +++ b/build.sbt @@ -9,7 +9,7 @@ val jUnitInterface = "com.github.sbt" % "junit-interface" % "0.13.3" % "test" val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.4" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.4" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV -val logback = "ch.qos.logback" % "logback-classic" % "1.5.5" +val logback = "ch.qos.logback" % "logback-classic" % "1.5.6" val embedMongoVersion = "4.12.6" val AkkaVersion = "2.8.5" val AkkaHttpVersion = "10.5.0" diff --git a/scalatra/build.sbt b/scalatra/build.sbt index c19f43cb4..a613f7eb8 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -8,7 +8,7 @@ version := "0.1.0-SNAPSHOT" libraryDependencies ++= Seq( "org.scalatra" %% "scalatra" % ScalatraVersion, "org.scalatra" %% "scalatra-scalatest" % ScalatraVersion % "test", - "ch.qos.logback" % "logback-classic" % "1.5.5" % "runtime", + "ch.qos.logback" % "logback-classic" % "1.5.6" % "runtime", "org.eclipse.jetty" % "jetty-webapp" % "11.0.20" % "container", "javax.servlet" % "javax.servlet-api" % "4.0.1" % "provided", "org.scalatra" %% "scalatra-auth" % ScalatraVersion, From 2313bf24a8b41285a9eedd3a81556c13197927ed Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 23 Apr 2024 00:14:19 +0000 Subject: [PATCH 0537/1318] Update aws-java-sdk-s3 from 1.12.701 to 1.12.706 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 490bb2593..9ad3f6179 100644 --- a/build.sbt +++ b/build.sbt @@ -517,7 +517,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) scalaMock, "com.lihaoyi" %% "utest" % "0.8.3" % "test", munitDep, - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.701" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.706" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.25.31" From a3e4828b67c3af3f5f121d728ab4c203f18ae4d9 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 23 Apr 2024 00:14:28 +0000 Subject: [PATCH 0538/1318] Update tapir-akka-http-server, tapir-core, ... from 1.10.4 to 1.10.5 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index 379ceaddb..48a68a00b 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.10.4" +val tapirV = "1.10.5" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From 3e0545057cf11cc69a1551daa1606f5a605784de Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 23 Apr 2024 00:14:45 +0000 Subject: [PATCH 0539/1318] Update scala-xml from 2.2.0 to 2.3.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 490bb2593..49d3cb8b0 100644 --- a/build.sbt +++ b/build.sbt @@ -42,7 +42,7 @@ lazy val scala_core_2 = (project in file("scala-core-modules/scala-core-2")) scalaVersion := scala3Version ) -val scalaXmlDep = "org.scala-lang.modules" %% "scala-xml" % "2.2.0" +val scalaXmlDep = "org.scala-lang.modules" %% "scala-xml" % "2.3.0" lazy val scala_core_3 = (project in file("scala-core-modules/scala-core-3")) .settings( From e96df0ba04f9791ccbd88ab9301a6fb0bcad1521 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 23 Apr 2024 00:14:58 +0000 Subject: [PATCH 0540/1318] Update sbt-scala-native from 0.5.0 to 0.5.1 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index 6187f9169..495d216b1 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,6 +1,6 @@ addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.2") -addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.0") +addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.1") addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.16.0") addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.2.1") From a5f10d4efaee7b920a1995262eea5020901472d6 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 23 Apr 2024 00:15:13 +0000 Subject: [PATCH 0541/1318] Update scalacheck from 1.17.0 to 1.17.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 490bb2593..c43072ba9 100644 --- a/build.sbt +++ b/build.sbt @@ -513,7 +513,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) libraryDependencies ++= scalaTestDeps .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( - "org.scalacheck" %% "scalacheck" % "1.17.0" % Test, + "org.scalacheck" %% "scalacheck" % "1.17.1" % Test, scalaMock, "com.lihaoyi" %% "utest" % "0.8.3" % "test", munitDep, From 31f068da00141a2801668446cd4c5f8f7e816f56 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 23 Apr 2024 00:15:26 +0000 Subject: [PATCH 0542/1318] Update s3 from 2.25.31 to 2.25.36 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 490bb2593..0e12d01b3 100644 --- a/build.sbt +++ b/build.sbt @@ -520,7 +520,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.701" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.25.31" + "software.amazon.awssdk" % "s3" % "2.25.36" ), Defaults.itSettings, IntegrationTest / fork := true From a6ead713c8e2a85f630d3152a0e351c7852fe212 Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Tue, 23 Apr 2024 16:14:48 +0800 Subject: [PATCH 0543/1318] Update README.md --- scala-test/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-test/README.md b/scala-test/README.md index ef154e02a..518672b75 100644 --- a/scala-test/README.md +++ b/scala-test/README.md @@ -14,3 +14,4 @@ This module contains articles about the ScalaTest framework in Scala. - [ScalaTest Assertions: A Comprehensive Guide](https://www.baeldung.com/scala/scalatest-assertions) - [Test for Exceptions in ScalaTest](https://www.baeldung.com/scala/scalatest-test-exceptions) - [Guide to Parameterized Tests in ScalaTest](https://www.baeldung.com/scala/scalatest-parameterized-tests) +- [Building Scala Projects With Maven](https://www.baeldung.com/scala/maven) From 83a0147aacc7e8e355c7f9084ac4017fc396133a Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Tue, 23 Apr 2024 16:15:39 +0800 Subject: [PATCH 0544/1318] Update README.md --- scala-core-modules/scala-core-9/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-core-modules/scala-core-9/README.md b/scala-core-modules/scala-core-9/README.md index 024063eb7..3eec29534 100644 --- a/scala-core-modules/scala-core-9/README.md +++ b/scala-core-modules/scala-core-9/README.md @@ -3,3 +3,4 @@ - [Check if a String Is a Palindrome in Scala](https://www.baeldung.com/scala/string-palindrome-test) - [Scala’s Destructuring with the @ Operator](https://www.baeldung.com/scala/destructuring-operator) - [Check if Two Strings Are Isomorphic in Scala](https://www.baeldung.com/scala/string-isomorphism) +- [Find Two’s Complement of a Number in Scala](https://www.baeldung.com/scala/compute-twos-complement) From 920598403f1321840f56ef0172d91f22e2d6aaeb Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 24 Apr 2024 17:10:03 +0530 Subject: [PATCH 0545/1318] Update scala version to 3.4.1 --- project/ScalaVersions.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/ScalaVersions.scala b/project/ScalaVersions.scala index 9f8be5991..d4e0344a7 100644 --- a/project/ScalaVersions.scala +++ b/project/ScalaVersions.scala @@ -1,6 +1,6 @@ object ScalaVersions { val scala2Version = "2.13.13" - val scala3Version = "3.3.3" + val scala3Version = "3.4.1" @deprecated( "Use Scala 2.13 or Scala 3. Don't use 2.12 unless it is a specific feature in 2.12." ) From 962ee453f9288c0a077633159ac3c82edfe5601f Mon Sep 17 00:00:00 2001 From: Zeeshan Arif Date: Fri, 26 Apr 2024 13:05:40 +0500 Subject: [PATCH 0546/1318] SCALA-704 Refactored code after received comment. --- .../isomorphic/IsomorphicStringsChecker.scala | 23 ++++--------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/isomorphic/IsomorphicStringsChecker.scala b/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/isomorphic/IsomorphicStringsChecker.scala index 35af8615d..c520e84bc 100644 --- a/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/isomorphic/IsomorphicStringsChecker.scala +++ b/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/isomorphic/IsomorphicStringsChecker.scala @@ -2,34 +2,19 @@ package com.baeldung.scala.isomorphic object IsomorphicStringsChecker: def checkIsomorphicBothWays(str1: String, str2: String): Boolean = - if (str1.length == str2.length) - checkIsomorphic(str1, str2) && checkIsomorphic(str2, str1) - else - false + (str1.length == str2.length) && checkIsomorphic(str1, str2) && checkIsomorphic(str2, str1) def checkIsomorphic2BothWays(str1: String, str2: String): Boolean = - if (str1.length == str2.length) - checkIsomorphic2(str1, str2) && checkIsomorphic2(str2, str1) - else - false + (str1.length == str2.length) && checkIsomorphic2(str1, str2) && checkIsomorphic2(str2, str1) private def checkIsomorphic(str1: String, str2: String): Boolean = val z = str1.zip(str2) - // for each distinct pair, count the number of occurrences of tup._1 char val distinctCounts = z.map(tup => { z.distinct.count(tupZ => tupZ._1 == tup._1) }) - // if all occurrence occur once only - if (distinctCounts.count(_ > 1) == 0) - true - else - false + distinctCounts.count(_ > 1) == 0 private def checkIsomorphic2(str1: String, str2: String): Boolean = val z = str1.zip(str2) val m = z.groupMap(_._1)(_._2) - // println(m) - if (m.forall(_._2.distinct.length == 1)) - true - else - false + m.forall(_._2.distinct.length == 1) From 9ae02e579bab7bac0019aa4a00bce9f3bd75483e Mon Sep 17 00:00:00 2001 From: Zeeshan Arif Date: Fri, 26 Apr 2024 17:14:58 +0500 Subject: [PATCH 0547/1318] SCALA-704 code formatted. --- .../scala/isomorphic/IsomorphicStringsChecker.scala | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/isomorphic/IsomorphicStringsChecker.scala b/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/isomorphic/IsomorphicStringsChecker.scala index c520e84bc..9cbe61ca7 100644 --- a/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/isomorphic/IsomorphicStringsChecker.scala +++ b/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/isomorphic/IsomorphicStringsChecker.scala @@ -2,10 +2,16 @@ package com.baeldung.scala.isomorphic object IsomorphicStringsChecker: def checkIsomorphicBothWays(str1: String, str2: String): Boolean = - (str1.length == str2.length) && checkIsomorphic(str1, str2) && checkIsomorphic(str2, str1) + (str1.length == str2.length) && checkIsomorphic( + str1, + str2 + ) && checkIsomorphic(str2, str1) def checkIsomorphic2BothWays(str1: String, str2: String): Boolean = - (str1.length == str2.length) && checkIsomorphic2(str1, str2) && checkIsomorphic2(str2, str1) + (str1.length == str2.length) && checkIsomorphic2( + str1, + str2 + ) && checkIsomorphic2(str2, str1) private def checkIsomorphic(str1: String, str2: String): Boolean = val z = str1.zip(str2) From 75a9e98b1f28b1ddeb90ee61511c73cae2f420b4 Mon Sep 17 00:00:00 2001 From: Loredana Crusoveanu Date: Fri, 26 Apr 2024 16:02:53 +0300 Subject: [PATCH 0548/1318] Update README.md --- scala-test/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/scala-test/README.md b/scala-test/README.md index 518672b75..ef154e02a 100644 --- a/scala-test/README.md +++ b/scala-test/README.md @@ -14,4 +14,3 @@ This module contains articles about the ScalaTest framework in Scala. - [ScalaTest Assertions: A Comprehensive Guide](https://www.baeldung.com/scala/scalatest-assertions) - [Test for Exceptions in ScalaTest](https://www.baeldung.com/scala/scalatest-test-exceptions) - [Guide to Parameterized Tests in ScalaTest](https://www.baeldung.com/scala/scalatest-parameterized-tests) -- [Building Scala Projects With Maven](https://www.baeldung.com/scala/maven) From c6fbc6e31008782d451eed4500837f7e5fb347bf Mon Sep 17 00:00:00 2001 From: Loredana Crusoveanu Date: Fri, 26 Apr 2024 16:03:05 +0300 Subject: [PATCH 0549/1318] Create README.md --- scala-with-maven/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 scala-with-maven/README.md diff --git a/scala-with-maven/README.md b/scala-with-maven/README.md new file mode 100644 index 000000000..351eabd0d --- /dev/null +++ b/scala-with-maven/README.md @@ -0,0 +1 @@ +- [Building Scala Projects With Maven](https://www.baeldung.com/scala/maven) From 8441940b9bd639afb2558f2f1aed9c0534bccd5f Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Mon, 29 Apr 2024 18:08:16 +0200 Subject: [PATCH 0550/1318] Sample test code for showing ignore usecases --- .../ConditionalUnitTest.scala | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 scala-test-2/src/test/scala/com/baeldung/scala/conditionaltests/ConditionalUnitTest.scala diff --git a/scala-test-2/src/test/scala/com/baeldung/scala/conditionaltests/ConditionalUnitTest.scala b/scala-test-2/src/test/scala/com/baeldung/scala/conditionaltests/ConditionalUnitTest.scala new file mode 100644 index 000000000..cc85acbff --- /dev/null +++ b/scala-test-2/src/test/scala/com/baeldung/scala/conditionaltests/ConditionalUnitTest.scala @@ -0,0 +1,64 @@ +package com.baeldung.scala.conditionaltests + +import org.scalatest.{Assertion, Ignore, Tag} +import org.scalatest.wordspec.AnyWordSpec + +object ServiceChecker { + def isServiceAvailable: Boolean = false +} + +object RequiresAvailableService extends Tag("RequiresAvailableService") +object RequiresAvailableServiceConditional + extends Tag( + if (ServiceChecker.isServiceAvailable) "" else classOf[Ignore].getName + ) + +object AlwaysIgnoreTest extends Tag("org.scalatest.Ignore") + +class ConditionalUnitTest extends AnyWordSpec { + + private def skipTestIfServerUnavailable(test: => Assertion): Assertion = { + if (ServiceChecker.isServiceAvailable) { + test + } else cancel("Not executing test since the service is not available") + } + + "Conditional Tests" should { + "run this test only if the service is available by checking tag" taggedAs (RequiresAvailableService) in { + succeed + } + + "run this test anyways" in { + succeed + } + + "run this test using the conditional if-else tag if service is available" taggedAs (RequiresAvailableServiceConditional) in { + succeed + } + + "run this test using simple if-else condition" in { + if (!ServiceChecker.isServiceAvailable) { + cancel("excluding this test due to service not available") + } + succeed + } + + "run this test based on assume" in { + assume(ServiceChecker.isServiceAvailable) + succeed + } + + "run this test using skipTestIfServerUnavailable method" in skipTestIfServerUnavailable { + succeed + } + + "always ignore this test since Ignore name is used in Tag" taggedAs (AlwaysIgnoreTest) in { + fail("this fails, but it should never reaches here due to the tag") + } + + "ignore this test using the ignore keyword conditionally" ignore { + fail() + } + } + +} From eed02923d4ea55aa8bcb0e149a8a2fa7b6e7ef05 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 1 May 2024 00:14:47 +0000 Subject: [PATCH 0551/1318] Update aws-java-sdk-s3 from 1.12.706 to 1.12.712 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 1c9f06f5e..3221d104e 100644 --- a/build.sbt +++ b/build.sbt @@ -517,7 +517,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) scalaMock, "com.lihaoyi" %% "utest" % "0.8.3" % "test", munitDep, - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.706" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.712" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.25.36" From 1e6a30abfdf513cdd1613ecb01bf68e6bdf3a2f5 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 1 May 2024 00:14:57 +0000 Subject: [PATCH 0552/1318] Update tapir-akka-http-server, tapir-core, ... from 1.10.5 to 1.10.6 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index 48a68a00b..42425a841 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.10.5" +val tapirV = "1.10.6" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From 7d29992762abfd021b6a0cce226c5dc5ae9108d2 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 1 May 2024 00:15:16 +0000 Subject: [PATCH 0553/1318] Update de.flapdoodle.embed.mongo from 4.12.6 to 4.13.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 1c9f06f5e..95896d74b 100644 --- a/build.sbt +++ b/build.sbt @@ -10,7 +10,7 @@ val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.4" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.4" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV val logback = "ch.qos.logback" % "logback-classic" % "1.5.6" -val embedMongoVersion = "4.12.6" +val embedMongoVersion = "4.13.0" val AkkaVersion = "2.8.5" val AkkaHttpVersion = "10.5.0" From 5db726d21158ac15b4e91e18078615e18b282e26 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 1 May 2024 00:15:40 +0000 Subject: [PATCH 0554/1318] Update circe-core, circe-generic, ... from 0.14.6 to 0.14.7 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 1c9f06f5e..8ddd9cf3c 100644 --- a/build.sbt +++ b/build.sbt @@ -377,7 +377,7 @@ lazy val scala2_libraries = Defaults.itSettings ) -val circeVersion = "0.14.6" +val circeVersion = "0.14.7" val monixVersion = "3.4.1" val elastic4sVersion = "8.11.5" val sparkVersion = "3.5.1" From 4f8cca9c7123fd6f73abc67c968575b3a276aa21 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 1 May 2024 00:15:54 +0000 Subject: [PATCH 0555/1318] Update mongo-scala-driver from 5.0.1 to 5.1.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 1c9f06f5e..4b65ddad2 100644 --- a/build.sbt +++ b/build.sbt @@ -249,7 +249,7 @@ lazy val scala_akka_dependencies: Seq[ModuleID] = Seq( akkaTypedTestkit, "com.lightbend.akka" %% "akka-stream-alpakka-mongodb" % "5.0.0", akkaStreamDep, - "org.mongodb.scala" %% "mongo-scala-driver" % "5.0.1", + "org.mongodb.scala" %% "mongo-scala-driver" % "5.1.0", "com.lightbend.akka" %% "akka-stream-alpakka-file" % "5.0.0", jUnitInterface, embeddedMongo % Test, From 42d15b14c9e75b606697f5bd50fc264a14839ff4 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 1 May 2024 00:16:08 +0000 Subject: [PATCH 0556/1318] Update sbt-twirl, twirl-api from 2.0.4 to 2.0.5 --- scalatra/project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scalatra/project/plugins.sbt b/scalatra/project/plugins.sbt index d2c1e5ce9..6d057860a 100644 --- a/scalatra/project/plugins.sbt +++ b/scalatra/project/plugins.sbt @@ -1,3 +1,3 @@ -addSbtPlugin("org.playframework.twirl" % "sbt-twirl" % "2.0.4") +addSbtPlugin("org.playframework.twirl" % "sbt-twirl" % "2.0.5") addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "4.2.4") libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always From f32c43b94156d2c258b091c781c2e960afb4fea9 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 1 May 2024 00:16:22 +0000 Subject: [PATCH 0557/1318] Update scalacheck from 1.17.1 to 1.18.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 1c9f06f5e..7043b063d 100644 --- a/build.sbt +++ b/build.sbt @@ -513,7 +513,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) libraryDependencies ++= scalaTestDeps .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( - "org.scalacheck" %% "scalacheck" % "1.17.1" % Test, + "org.scalacheck" %% "scalacheck" % "1.18.0" % Test, scalaMock, "com.lihaoyi" %% "utest" % "0.8.3" % "test", munitDep, From 8a029b67a68bd4309c71a15b972b230b5ec77b05 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 1 May 2024 00:16:35 +0000 Subject: [PATCH 0558/1318] Update s3 from 2.25.36 to 2.25.42 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 1c9f06f5e..079bf455c 100644 --- a/build.sbt +++ b/build.sbt @@ -520,7 +520,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.706" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.25.36" + "software.amazon.awssdk" % "s3" % "2.25.42" ), Defaults.itSettings, IntegrationTest / fork := true From e60a29b5ffc5072cf317636c01e00a5f73827ddb Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Wed, 1 May 2024 23:46:15 +0800 Subject: [PATCH 0559/1318] Update README.md --- scala-strings/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-strings/README.md b/scala-strings/README.md index fa97e1412..07a72f801 100644 --- a/scala-strings/README.md +++ b/scala-strings/README.md @@ -13,3 +13,4 @@ This module contains articles about Scala's core features - [Generate Secure Random Passwords in Scala](https://www.baeldung.com/scala/generate-secure-random-passwords) - [Generate an Acronym for a Given String in Scala](https://www.baeldung.com/scala/string-derive-acronym) - [Capitalizing Every Word in a Sentence in Scala](https://www.baeldung.com/scala/capitalize-each-word) +- [Remove Special Characters From a String in Scala](https://www.baeldung.com/scala/string-delete-special-characters) From 38f72299597ae7ba480aaa8b475d70c5517b58d4 Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Wed, 1 May 2024 23:49:11 +0800 Subject: [PATCH 0560/1318] Update README.md --- .../scala-core-collections-3/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-core-collections-modules/scala-core-collections-3/README.md b/scala-core-collections-modules/scala-core-collections-3/README.md index 9668e04f6..6968c0213 100644 --- a/scala-core-collections-modules/scala-core-collections-3/README.md +++ b/scala-core-collections-modules/scala-core-collections-3/README.md @@ -9,3 +9,4 @@ - [Implementing an LRU Cache in Scala 3: A Step-by-Step Guide](https://www.baeldung.com/scala/least-recently-used-cache) - [Using the sliding() and grouped() Methods With Scala Collections](https://www.baeldung.com/scala/sliding-grouped-methods-with-collections) - [Introduction to BitSet in Scala](https://www.baeldung.com/scala/bitiset) +- [zip(), zipAll(), and zipWithIndex() Methods in Scala](https://www.baeldung.com/scala/zip-zipall-zipwithindex) From 2ebeeffb8285c4a31c6bbebe618a8543a9d7d2df Mon Sep 17 00:00:00 2001 From: Oscar Mauricio Forero Carrillo Date: Sun, 5 May 2024 23:38:21 +0200 Subject: [PATCH 0561/1318] SCALA-724: Code companion for the article. --- .../patternmatching/MultipleMatches.scala | 34 +++++++++++++++++++ .../patternmatching/MultipleMatchesUnitTest | 12 +++++++ 2 files changed, 46 insertions(+) create mode 100644 scala-core-modules/scala-core/src/main/scala-3/com/baeldung/scala/patternmatching/MultipleMatches.scala create mode 100644 scala-core-modules/scala-core/src/test/scala-3/com/baeldung/scala/patternmatching/MultipleMatchesUnitTest diff --git a/scala-core-modules/scala-core/src/main/scala-3/com/baeldung/scala/patternmatching/MultipleMatches.scala b/scala-core-modules/scala-core/src/main/scala-3/com/baeldung/scala/patternmatching/MultipleMatches.scala new file mode 100644 index 000000000..f8f157ba8 --- /dev/null +++ b/scala-core-modules/scala-core/src/main/scala-3/com/baeldung/scala/patternmatching/MultipleMatches.scala @@ -0,0 +1,34 @@ +package com.baeldung.scala.patternmatching + +sealed trait Command +case object Start extends Command +case object Stop extends Command +case object Report extends Command +case class CustomCommand(cmd: String) extends Command + +def executeCommand(command: Command): String = command match { + case Start | CustomCommand("begin") => + "System Starting." + case Stop | CustomCommand("halt") => + "System Stopping." + case Report | CustomCommand("status") => + "Generating Report." + case _ => + "Unknown Command." +} + +def httpResponse(response: Int): String = response match { + case 200 | 201 | 202 => "Success" + case 400 | 404 | 500 => "Error" + case _ => "Unknown status" +} + +def multipleTypePatterns(obj: Any): String = obj match { + case _: String | _: Int => "It's either a String or an Int" + case _ => "It's something else" +} + +def unionTypePattern(obj: Any): String = obj match { + case _: (String | Int) => "It's either a String or an Int" + case _ => "It's something else" +} diff --git a/scala-core-modules/scala-core/src/test/scala-3/com/baeldung/scala/patternmatching/MultipleMatchesUnitTest b/scala-core-modules/scala-core/src/test/scala-3/com/baeldung/scala/patternmatching/MultipleMatchesUnitTest new file mode 100644 index 000000000..1cf54122e --- /dev/null +++ b/scala-core-modules/scala-core/src/test/scala-3/com/baeldung/scala/patternmatching/MultipleMatchesUnitTest @@ -0,0 +1,12 @@ +package com.baeldung.scala.patternmatching + +import org.scalatest.flatspec.AnyFlatSpec + +class MultipleMatchesUnitTest extends AnyFlatSpec { + + "executeCommand" should "start the system when given the command" in { + val result = executeCommand(Start) + assert("" == result) + } + +} \ No newline at end of file From 4d35bfd7420fccd4f521f0f94f1d7c7f38a4f9dc Mon Sep 17 00:00:00 2001 From: mahamhameed <167339633+mahamhameed@users.noreply.github.com> Date: Tue, 7 May 2024 23:03:42 +0500 Subject: [PATCH 0562/1318] Update README.md --- scala-test-2/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-test-2/README.md b/scala-test-2/README.md index 5cc64c586..033b6435f 100644 --- a/scala-test-2/README.md +++ b/scala-test-2/README.md @@ -1,2 +1,3 @@ ### Relevant Articles: - [Comparing Double Values in ScalaTest](https://www.baeldung.com/scala/scalatest-compare-double-values) +- [Ignore Tests Conditionally in ScalaTest](https://www.baeldung.com/scala/scalatest-ignore-conditionally) From 77323e2b6ab7caee342cb2afe8fcad08420d6fd3 Mon Sep 17 00:00:00 2001 From: mahamhameed <167339633+mahamhameed@users.noreply.github.com> Date: Tue, 7 May 2024 23:34:37 +0500 Subject: [PATCH 0563/1318] Update README.md --- cats-effects/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/cats-effects/README.md b/cats-effects/README.md index 58bd956f1..b9e239bf3 100644 --- a/cats-effects/README.md +++ b/cats-effects/README.md @@ -7,3 +7,4 @@ - [Difference Between flatMap(), flatTap(), evalMap() and evalTap() in Cats Effect](https://www.baeldung.com/scala/cats-effect) - [Error Handling in Cats Effect](https://www.baeldung.com/scala/cats-effect-error-handling) - [Cancellation in Cats Effect](https://www.baeldung.com/scala/cats-effect-cancellation) +- [Configuration Loading With Ciris](https://www.baeldung.com/scala/ciris-configuration-loading) From b2d9b2fe7b048564b9f3e833a0fb202cc29dd0d9 Mon Sep 17 00:00:00 2001 From: Oscar Mauricio Forero Carrillo Date: Wed, 8 May 2024 12:06:21 +0200 Subject: [PATCH 0564/1318] SCALA-724: Code companion for the article (Improve the tests) --- .../patternmatching/MultipleMatchesUnitTest | 12 ------- .../MultipleMatchesUnitTest.scala | 33 +++++++++++++++++++ 2 files changed, 33 insertions(+), 12 deletions(-) delete mode 100644 scala-core-modules/scala-core/src/test/scala-3/com/baeldung/scala/patternmatching/MultipleMatchesUnitTest create mode 100644 scala-core-modules/scala-core/src/test/scala-3/com/baeldung/scala/patternmatching/MultipleMatchesUnitTest.scala diff --git a/scala-core-modules/scala-core/src/test/scala-3/com/baeldung/scala/patternmatching/MultipleMatchesUnitTest b/scala-core-modules/scala-core/src/test/scala-3/com/baeldung/scala/patternmatching/MultipleMatchesUnitTest deleted file mode 100644 index 1cf54122e..000000000 --- a/scala-core-modules/scala-core/src/test/scala-3/com/baeldung/scala/patternmatching/MultipleMatchesUnitTest +++ /dev/null @@ -1,12 +0,0 @@ -package com.baeldung.scala.patternmatching - -import org.scalatest.flatspec.AnyFlatSpec - -class MultipleMatchesUnitTest extends AnyFlatSpec { - - "executeCommand" should "start the system when given the command" in { - val result = executeCommand(Start) - assert("" == result) - } - -} \ No newline at end of file diff --git a/scala-core-modules/scala-core/src/test/scala-3/com/baeldung/scala/patternmatching/MultipleMatchesUnitTest.scala b/scala-core-modules/scala-core/src/test/scala-3/com/baeldung/scala/patternmatching/MultipleMatchesUnitTest.scala new file mode 100644 index 000000000..e35a99fa1 --- /dev/null +++ b/scala-core-modules/scala-core/src/test/scala-3/com/baeldung/scala/patternmatching/MultipleMatchesUnitTest.scala @@ -0,0 +1,33 @@ +package com.baeldung.scala.patternmatching + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers + +class MultipleMatchesUnitTest extends AnyFlatSpec with Matchers { + + "executeCommand" should "start the system when given the command" in { + val result = executeCommand(Start) + result shouldEqual "System Starting." + } + + it should "stop the system when given the command" in { + val result = executeCommand(CustomCommand("halt")) + result shouldEqual "System Stopping." + } + + "httpResponse" should "Error" in { + val result = httpResponse(404) + result shouldEqual "Error" + } + + "multipleTypePatterns" should "Error" in { + val result = multipleTypePatterns(4.4) + result shouldEqual "It's something else" + } + + "unionTypePattern" should "Error" in { + val result = unionTypePattern(42) + result shouldEqual "It's either a String or an Int" + } + +} \ No newline at end of file From 2307ecbfba39e25569f5788450c58a7e30c8f61c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 9 May 2024 00:15:29 +0000 Subject: [PATCH 0565/1318] Update aws-java-sdk-s3 from 1.12.712 to 1.12.718 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 2ebcab566..2946b5747 100644 --- a/build.sbt +++ b/build.sbt @@ -517,7 +517,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) scalaMock, "com.lihaoyi" %% "utest" % "0.8.3" % "test", munitDep, - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.712" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.718" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.25.42" From e99b3facefa4b610aba53e1e8313c93988a41f30 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 9 May 2024 00:15:41 +0000 Subject: [PATCH 0566/1318] Update jackson-databind from 2.17.0 to 2.17.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 2ebcab566..6c7dee185 100644 --- a/build.sbt +++ b/build.sbt @@ -476,7 +476,7 @@ lazy val tapir = (project in file("scala-libraries-standalone/tapir")) val spireVersion = "0.18.0" val kafkaVersion = "7.6.1-ce" val pureconfigVersion = "0.17.6" -val jackSonVersion = "2.17.0" +val jackSonVersion = "2.17.1" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" From cafead5acaa8f8b1df7e467b08615882c28e92f0 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 9 May 2024 00:16:02 +0000 Subject: [PATCH 0567/1318] Update jackson-datatype-jsr310 from 2.17.0 to 2.17.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 2ebcab566..6c7dee185 100644 --- a/build.sbt +++ b/build.sbt @@ -476,7 +476,7 @@ lazy val tapir = (project in file("scala-libraries-standalone/tapir")) val spireVersion = "0.18.0" val kafkaVersion = "7.6.1-ce" val pureconfigVersion = "0.17.6" -val jackSonVersion = "2.17.0" +val jackSonVersion = "2.17.1" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" From 021fd43f515253338f5a2d055d20113eae377acb Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 9 May 2024 00:16:20 +0000 Subject: [PATCH 0568/1318] Update jackson-module-scala from 2.17.0 to 2.17.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 2ebcab566..6c7dee185 100644 --- a/build.sbt +++ b/build.sbt @@ -476,7 +476,7 @@ lazy val tapir = (project in file("scala-libraries-standalone/tapir")) val spireVersion = "0.18.0" val kafkaVersion = "7.6.1-ce" val pureconfigVersion = "0.17.6" -val jackSonVersion = "2.17.0" +val jackSonVersion = "2.17.1" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" From 5d49a6629d264349d2397b7a5adc0c2508ee5065 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 9 May 2024 00:16:37 +0000 Subject: [PATCH 0569/1318] Update c3p0 from 0.10.0 to 0.10.1 --- scalatra/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scalatra/build.sbt b/scalatra/build.sbt index a613f7eb8..b5491eda9 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -16,7 +16,7 @@ libraryDependencies ++= Seq( "org.json4s" %% "json4s-jackson" % "4.0.7", "com.typesafe.slick" %% "slick" % "3.5.1", "com.h2database" % "h2" % "2.1.214", - "com.mchange" % "c3p0" % "0.10.0" + "com.mchange" % "c3p0" % "0.10.1" ) libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always enablePlugins(SbtTwirl) From 8879c90a344349a2e9d4207ec321860ba5732ad6 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 9 May 2024 00:16:53 +0000 Subject: [PATCH 0570/1318] Update elastic4s-client-esjava, ... from 8.11.5 to 8.12.0 --- build.sbt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index 2ebcab566..510e7162b 100644 --- a/build.sbt +++ b/build.sbt @@ -379,7 +379,7 @@ lazy val scala2_libraries = val circeVersion = "0.14.7" val monixVersion = "3.4.1" -val elastic4sVersion = "8.11.5" +val elastic4sVersion = "8.12.0" val sparkVersion = "3.5.1" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion @@ -421,8 +421,8 @@ lazy val scala_libraries = (project in file("scala-libraries")) "com.lihaoyi" %% "requests" % "0.8.2" ), libraryDependencies ++= Seq( - "com.sksamuel.elastic4s" %% "elastic4s-client-esjava" % elastic4sVersion, - "com.sksamuel.elastic4s" %% "elastic4s-core" % elastic4sVersion, + "nl.gn0s1s" %% "elastic4s-client-esjava" % elastic4sVersion, + "nl.gn0s1s" %% "elastic4s-core" % elastic4sVersion, logback ), Defaults.itSettings From a1bc5916826c058c157c9e506d5603e474405d6e Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 9 May 2024 00:17:24 +0000 Subject: [PATCH 0571/1318] Update quill-jdbc-zio, quill-zio from 4.8.3 to 4.8.4 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 2ebcab566..a7324220e 100644 --- a/build.sbt +++ b/build.sbt @@ -643,8 +643,8 @@ lazy val zio3 = (project in file("zio3")) libraryDependencies ++= Seq( zioJsonDep, "dev.zio" %% "zio-http" % "3.0.0-RC6", - "io.getquill" %% "quill-zio" % "4.8.3", - "io.getquill" %% "quill-jdbc-zio" % "4.8.3", + "io.getquill" %% "quill-zio" % "4.8.4", + "io.getquill" %% "quill-jdbc-zio" % "4.8.4", "com.h2database" % "h2" % "2.2.220" ), libraryDependencies ++= Seq( From f55343b39df7bc168ed26040cdcb6237e1a2c707 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 9 May 2024 00:17:43 +0000 Subject: [PATCH 0572/1318] Update ciris, ciris-circe, ciris-circe-yaml from 3.5.0 to 3.6.0 --- build.sbt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index 2ebcab566..82e6ded01 100644 --- a/build.sbt +++ b/build.sbt @@ -562,9 +562,9 @@ lazy val scala_libraries_config = (project in file("scala-libraries-config")) circeDep, circeParserDep ), - libraryDependencies += "is.cir" %% "ciris" % "3.5.0", - libraryDependencies += "is.cir" %% "ciris-circe" % "3.5.0", - libraryDependencies += "is.cir" %% "ciris-circe-yaml" % "3.5.0" + libraryDependencies += "is.cir" %% "ciris" % "3.6.0", + libraryDependencies += "is.cir" %% "ciris-circe" % "3.6.0", + libraryDependencies += "is.cir" %% "ciris-circe-yaml" % "3.6.0" ) lazy val scala_strings = (project in file("scala-strings")) From 16277bbb2b8d4a8cf12219f9865aee96c95bac0a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 9 May 2024 00:18:02 +0000 Subject: [PATCH 0573/1318] Update http4s-dsl from 0.23.26 to 0.23.27 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 2ebcab566..dd734507e 100644 --- a/build.sbt +++ b/build.sbt @@ -429,7 +429,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) ) val http4sBlaze = "0.23.16" -val http4sVersion = "0.23.26" +val http4sVersion = "0.23.27" val osLibVersion = "0.10.0" val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion From fa00c22eae6a4411818a569f7236d1e4ee4e4422 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 9 May 2024 00:18:20 +0000 Subject: [PATCH 0574/1318] Update play-ahc-ws, play-caffeine-cache, ... from 3.0.2 to 3.0.3 --- play-scala/application-tests/project/plugins.sbt | 2 +- play-scala/async-tasks/project/plugins.sbt | 2 +- play-scala/caching-in-play/project/plugins.sbt | 2 +- play-scala/configuration-access/project/plugins.sbt | 2 +- play-scala/custom-error-handling/project/plugins.sbt | 2 +- play-scala/dependency-injection/project/plugins.sbt | 2 +- play-scala/introduction-to-play/project/plugins.sbt | 2 +- play-scala/play-static-assets/project/plugins.sbt | 2 +- play-scala/play-templates/project/plugins.sbt | 2 +- play-scala/rest-api/project/plugins.sbt | 2 +- project/plugins.sbt | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/play-scala/application-tests/project/plugins.sbt b/play-scala/application-tests/project/plugins.sbt index 12a44d0f4..6a36a90ab 100644 --- a/play-scala/application-tests/project/plugins.sbt +++ b/play-scala/application-tests/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.2") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.3") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.16.2") diff --git a/play-scala/async-tasks/project/plugins.sbt b/play-scala/async-tasks/project/plugins.sbt index f583f5efe..e3f41a797 100644 --- a/play-scala/async-tasks/project/plugins.sbt +++ b/play-scala/async-tasks/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.2") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.3") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") diff --git a/play-scala/caching-in-play/project/plugins.sbt b/play-scala/caching-in-play/project/plugins.sbt index 5069a27aa..3a1210b48 100644 --- a/play-scala/caching-in-play/project/plugins.sbt +++ b/play-scala/caching-in-play/project/plugins.sbt @@ -1,3 +1,3 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.2") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.3") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.0") diff --git a/play-scala/configuration-access/project/plugins.sbt b/play-scala/configuration-access/project/plugins.sbt index 5069a27aa..3a1210b48 100644 --- a/play-scala/configuration-access/project/plugins.sbt +++ b/play-scala/configuration-access/project/plugins.sbt @@ -1,3 +1,3 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.2") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.3") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.0") diff --git a/play-scala/custom-error-handling/project/plugins.sbt b/play-scala/custom-error-handling/project/plugins.sbt index f583f5efe..e3f41a797 100644 --- a/play-scala/custom-error-handling/project/plugins.sbt +++ b/play-scala/custom-error-handling/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.2") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.3") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") diff --git a/play-scala/dependency-injection/project/plugins.sbt b/play-scala/dependency-injection/project/plugins.sbt index c4bb3b527..4733ac31c 100644 --- a/play-scala/dependency-injection/project/plugins.sbt +++ b/play-scala/dependency-injection/project/plugins.sbt @@ -1,3 +1,3 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.2") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.3") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.2") diff --git a/play-scala/introduction-to-play/project/plugins.sbt b/play-scala/introduction-to-play/project/plugins.sbt index f583f5efe..e3f41a797 100644 --- a/play-scala/introduction-to-play/project/plugins.sbt +++ b/play-scala/introduction-to-play/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.2") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.3") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") diff --git a/play-scala/play-static-assets/project/plugins.sbt b/play-scala/play-static-assets/project/plugins.sbt index a69f1ef1b..c890e0c7a 100644 --- a/play-scala/play-static-assets/project/plugins.sbt +++ b/play-scala/play-static-assets/project/plugins.sbt @@ -1,4 +1,4 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.2") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.3") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") addSbtPlugin("com.typesafe.sbt" % "sbt-coffeescript" % "1.0.2") addSbtPlugin("com.github.platypii" % "sbt-typescript" % "4.6.4") diff --git a/play-scala/play-templates/project/plugins.sbt b/play-scala/play-templates/project/plugins.sbt index f583f5efe..e3f41a797 100644 --- a/play-scala/play-templates/project/plugins.sbt +++ b/play-scala/play-templates/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.2") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.3") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") diff --git a/play-scala/rest-api/project/plugins.sbt b/play-scala/rest-api/project/plugins.sbt index f583f5efe..e3f41a797 100644 --- a/play-scala/rest-api/project/plugins.sbt +++ b/play-scala/rest-api/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.2") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.3") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") diff --git a/project/plugins.sbt b/project/plugins.sbt index 495d216b1..c6fe4239f 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -7,7 +7,7 @@ addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.2.1") libraryDependencies += "ai.kien" %% "python-native-libs" % "0.2.4" // Make sure to keep the play plugin in sync with the sub modules under play-scala group -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.2") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.3") addSbtPlugin("org.playframework.twirl" % "sbt-twirl" % "2.0.1") addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "4.2.1") From 2f48d8f7b9460b1182b683b3ca86caa513ae15bd Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 9 May 2024 00:18:45 +0000 Subject: [PATCH 0575/1318] Update scala-compiler, scala-library, ... from 2.13.13 to 2.13.14 --- project/ScalaVersions.scala | 2 +- scala-graalvm/scala-graalvm-http-app/build.sbt | 2 +- scala-lagom/build.sbt | 2 +- scala-sbt/intro-to-sbt/build.sbt | 2 +- scala-sbt/wart-remover/build.sbt | 4 ++-- scala-sbt/wart-remover/custom-warts/build.sbt | 2 +- scalatra/build.sbt | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/project/ScalaVersions.scala b/project/ScalaVersions.scala index d4e0344a7..89f51f838 100644 --- a/project/ScalaVersions.scala +++ b/project/ScalaVersions.scala @@ -1,5 +1,5 @@ object ScalaVersions { - val scala2Version = "2.13.13" + val scala2Version = "2.13.14" val scala3Version = "3.4.1" @deprecated( "Use Scala 2.13 or Scala 3. Don't use 2.12 unless it is a specific feature in 2.12." diff --git a/scala-graalvm/scala-graalvm-http-app/build.sbt b/scala-graalvm/scala-graalvm-http-app/build.sbt index 099783006..13c6785bd 100644 --- a/scala-graalvm/scala-graalvm-http-app/build.sbt +++ b/scala-graalvm/scala-graalvm-http-app/build.sbt @@ -3,7 +3,7 @@ organization := "com.baeldung" version := "1.0-SNAPSHOT" -scalaVersion := "2.13.13" +scalaVersion := "2.13.14" libraryDependencies ++= Seq( "com.typesafe.akka" %% "akka-actor" % "2.8.0", "com.typesafe.akka" %% "akka-stream" % "2.8.0", diff --git a/scala-lagom/build.sbt b/scala-lagom/build.sbt index fbe2c3ca8..67cb48957 100644 --- a/scala-lagom/build.sbt +++ b/scala-lagom/build.sbt @@ -2,7 +2,7 @@ organization in ThisBuild := "com.baeldung" version in ThisBuild := "1.0-SNAPSHOT" // the Scala version that will be used for cross-compiled libraries -scalaVersion in ThisBuild := "2.13.13" +scalaVersion in ThisBuild := "2.13.14" val macwire = "com.softwaremill.macwire" %% "macros" % "2.3.3" % "provided" val scalaTest = "org.scalatest" %% "scalatest" % "3.1.1" % Test diff --git a/scala-sbt/intro-to-sbt/build.sbt b/scala-sbt/intro-to-sbt/build.sbt index 0b0eea08d..387920449 100644 --- a/scala-sbt/intro-to-sbt/build.sbt +++ b/scala-sbt/intro-to-sbt/build.sbt @@ -1,6 +1,6 @@ import Dependencies._ -ThisBuild / scalaVersion := "2.13.13" +ThisBuild / scalaVersion := "2.13.14" ThisBuild / version := "0.1.0-SNAPSHOT" lazy val printHello = taskKey[Unit]("prints hello") diff --git a/scala-sbt/wart-remover/build.sbt b/scala-sbt/wart-remover/build.sbt index be7086f87..2fc355eae 100644 --- a/scala-sbt/wart-remover/build.sbt +++ b/scala-sbt/wart-remover/build.sbt @@ -1,5 +1,5 @@ lazy val customWarts = (project in file("custom-warts")).settings( - scalaVersion := "2.13.13", + scalaVersion := "2.13.14", name := "CustomWarts", version := "1.0.0", exportJars := true, @@ -10,7 +10,7 @@ lazy val root = (project in file(".")) .dependsOn(customWarts) .settings( name := "wart-remover", - scalaVersion := "2.13.13", + scalaVersion := "2.13.14", version := "1.0.0", wartremoverWarnings ++= Seq(Wart.AsInstanceOf, Wart.Null), wartremoverExcluded += baseDirectory.value / "src" / "main" / "scala" / "com" / "baeldung" / "scala" / "wartremover" / "Excluded.scala", diff --git a/scala-sbt/wart-remover/custom-warts/build.sbt b/scala-sbt/wart-remover/custom-warts/build.sbt index 36f15bd59..74e5c673f 100644 --- a/scala-sbt/wart-remover/custom-warts/build.sbt +++ b/scala-sbt/wart-remover/custom-warts/build.sbt @@ -1,6 +1,6 @@ /*lazy val root = (project in file(".")).settings( name := "custom-warts", - scalaVersion := "2.13.13", + scalaVersion := "2.13.14", organization := "com.baeldung", version := "1.0.0-SNAPSHOT", libraryDependencies ++= Seq( diff --git a/scalatra/build.sbt b/scalatra/build.sbt index a613f7eb8..e1447ac23 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -1,6 +1,6 @@ val ScalatraVersion = "2.8.4" -ThisBuild / scalaVersion := "2.13.13" +ThisBuild / scalaVersion := "2.13.14" ThisBuild / organization := "baeldung" name := "scalatratutorial" From 67baa848e262d2b84947b288b66e4d4913e7a088 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 9 May 2024 00:19:14 +0000 Subject: [PATCH 0576/1318] Update pulsar from 1.19.7 to 1.19.8 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 2ebcab566..7863666be 100644 --- a/build.sbt +++ b/build.sbt @@ -359,7 +359,7 @@ lazy val scala2_libraries = "org.scala-lang.modules" %% "scala-async" % "1.0.1", "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.9.1", "com.clever-cloud.pulsar4s" %% "pulsar4s-jackson" % "2.9.1", - "org.testcontainers" % "pulsar" % "1.19.7" % IntegrationTest, + "org.testcontainers" % "pulsar" % "1.19.8" % IntegrationTest, "org.apache.kafka" % "kafka-clients" % kafkaVersion, "com.fasterxml.jackson.core" % "jackson-databind" % jackSonVersion, "com.fasterxml.jackson.datatype" % "jackson-datatype-jsr310" % jackSonVersion, From 2642106316cbc3679179e69a46f982b3175414e5 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 9 May 2024 00:19:30 +0000 Subject: [PATCH 0577/1318] Update s3 from 2.25.42 to 2.25.48 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 2ebcab566..804ff8e83 100644 --- a/build.sbt +++ b/build.sbt @@ -520,7 +520,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.712" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.25.42" + "software.amazon.awssdk" % "s3" % "2.25.48" ), Defaults.itSettings, IntegrationTest / fork := true From 4b62af3c81ea37b703125f404bb9d806dc9e5cbc Mon Sep 17 00:00:00 2001 From: Oscar Mauricio Forero Carrillo Date: Thu, 9 May 2024 08:05:10 +0200 Subject: [PATCH 0578/1318] SCALA-724: Code companion for the article (Improve the tests) --- .../scala/patternmatching/MultipleMatchesUnitTest.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-core-modules/scala-core/src/test/scala-3/com/baeldung/scala/patternmatching/MultipleMatchesUnitTest.scala b/scala-core-modules/scala-core/src/test/scala-3/com/baeldung/scala/patternmatching/MultipleMatchesUnitTest.scala index e35a99fa1..1264fd75e 100644 --- a/scala-core-modules/scala-core/src/test/scala-3/com/baeldung/scala/patternmatching/MultipleMatchesUnitTest.scala +++ b/scala-core-modules/scala-core/src/test/scala-3/com/baeldung/scala/patternmatching/MultipleMatchesUnitTest.scala @@ -30,4 +30,4 @@ class MultipleMatchesUnitTest extends AnyFlatSpec with Matchers { result shouldEqual "It's either a String or an Int" } -} \ No newline at end of file +} From 4af48e4f60009e4f68c1ceb1f9214b03c3804865 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 9 May 2024 00:18:59 +0000 Subject: [PATCH 0579/1318] Update sbt from 1.9.9 to 1.10.0 --- project/build.properties | 2 +- scalatra/project/build.properties | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/project/build.properties b/project/build.properties index b089b60c7..16c8f5b8d 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1,2 +1,2 @@ -sbt.version=1.9.9 +sbt.version=1.10.0 diff --git a/scalatra/project/build.properties b/scalatra/project/build.properties index 04267b14a..081fdbbc7 100644 --- a/scalatra/project/build.properties +++ b/scalatra/project/build.properties @@ -1 +1 @@ -sbt.version=1.9.9 +sbt.version=1.10.0 From ce27ce0945cad0e66b6ff13931c04d624ba31f20 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 10 May 2024 21:29:16 +0200 Subject: [PATCH 0580/1318] Validation for unit test names --- validate.sbt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 validate.sbt diff --git a/validate.sbt b/validate.sbt new file mode 100644 index 000000000..2954c57b2 --- /dev/null +++ b/validate.sbt @@ -0,0 +1,15 @@ +lazy val validateTestNames = taskKey[Int]("Validate test naming convention") +val inAllTest = ScopeFilter(inAnyProject, inConfigurations(Test)) +validateTestNames := { + val testFileFullPath: Seq[Seq[String]] = definedTestNames.all(inAllTest).value + val log = streams.value.log + val invalidTestName = testFileFullPath.flatMap(_.filterNot(_.endsWith("UnitTest"))) + val invalidTestNameFormatted = invalidTestName.mkString("\n") + log.error( + s"""Found unit test files not matching with naming standards. Unit test files must end with UnitTest.scala. + | Invalid files: + | ${invalidTestNameFormatted} + |""".stripMargin) + require(invalidTestName.isEmpty, s"Found ${invalidTestName.size} tests that doesn't follow naming convention!") + 0 +} \ No newline at end of file From df3ed45e046763241c04dcb45288d1fbffb8d348 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 11 May 2024 13:42:59 +0200 Subject: [PATCH 0581/1318] Code sample for filter and takeWhile method differences --- build.sbt | 7 ++++ .../scala-core-collections-4/README.md | 3 ++ .../FilterAndTakeWhileUnitTest.scala | 42 +++++++++++++++++++ 3 files changed, 52 insertions(+) create mode 100644 scala-core-collections-modules/scala-core-collections-4/README.md create mode 100644 scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/filtertakewhile/FilterAndTakeWhileUnitTest.scala diff --git a/build.sbt b/build.sbt index 1cedbd74f..c3d7fb091 100644 --- a/build.sbt +++ b/build.sbt @@ -208,6 +208,13 @@ lazy val scala_core_collections_3 = libraryDependencies ++= scalaTestDeps ) +lazy val scala_core_collections_4 = + (project in file("scala-core-collections-modules/scala-core-collections-4")) + .settings( + scalaVersion := scala3Version, + libraryDependencies ++= scalaTestDeps + ) + lazy val scala_core_map = (project in file("scala-core-collections-modules/scala-core-map")) .settings( diff --git a/scala-core-collections-modules/scala-core-collections-4/README.md b/scala-core-collections-modules/scala-core-collections-4/README.md new file mode 100644 index 000000000..e5554115a --- /dev/null +++ b/scala-core-collections-modules/scala-core-collections-4/README.md @@ -0,0 +1,3 @@ +## Relevant Articles + +- diff --git a/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/filtertakewhile/FilterAndTakeWhileUnitTest.scala b/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/filtertakewhile/FilterAndTakeWhileUnitTest.scala new file mode 100644 index 000000000..80964369c --- /dev/null +++ b/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/filtertakewhile/FilterAndTakeWhileUnitTest.scala @@ -0,0 +1,42 @@ +package com.baeldung.scala.filtertakewhile + +import org.scalatest.matchers.should.Matchers +import org.scalatest.wordspec.AnyWordSpec + +import java.time.{LocalDate, LocalDateTime} +import scala.concurrent.{Await, Future, TimeoutException} +import scala.concurrent.ExecutionContext.Implicits.global +import scala.concurrent.duration.* + +class FilterAndTakeWhileUnitTest extends AnyWordSpec with Matchers { + + "filter" should { + "filter all elements matching the condition" in { + val numbers = List(1, 2, 3, 4, 5, 6) + val oddNumbers = numbers.filter(_ % 2 != 0) + oddNumbers shouldBe List(1, 3, 5) + } + + "not complete the execution due to infinite collection" in { + val infiniteNumbers = LazyList.from(1) + val lessThan100Future = Future(infiniteNumbers.filter(_ < 100).toList) + val lessThan100 = + intercept[TimeoutException](Await.result(lessThan100Future, 1.seconds)) + lessThan100.getMessage should include("Future timed out") + } + } + + "takeWhile" should { + "select elements until the predicate fails" in { + val numbers = List(1, 2, 3, 4, 5, 6) + val numbersBeforeFirstEven = numbers.takeWhile(_ % 2 != 0) + numbersBeforeFirstEven shouldBe List(1) + } + + "successfully get result from an infinite collection" in { + val infiniteNumbers = LazyList.from(1) + val first100 = infiniteNumbers.takeWhile(_ < 100).toList + first100 shouldBe (1 to 99).toList + } + } +} From d5c359c1990e4192c9994556ef86228dab79b5a2 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sun, 12 May 2024 21:17:15 +0200 Subject: [PATCH 0582/1318] remove test due to non-termination situation --- .../scala/filtertakewhile/FilterAndTakeWhileUnitTest.scala | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/filtertakewhile/FilterAndTakeWhileUnitTest.scala b/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/filtertakewhile/FilterAndTakeWhileUnitTest.scala index 80964369c..ac10a4ee5 100644 --- a/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/filtertakewhile/FilterAndTakeWhileUnitTest.scala +++ b/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/filtertakewhile/FilterAndTakeWhileUnitTest.scala @@ -17,12 +17,10 @@ class FilterAndTakeWhileUnitTest extends AnyWordSpec with Matchers { oddNumbers shouldBe List(1, 3, 5) } - "not complete the execution due to infinite collection" in { + "not complete the execution due to infinite collection" ignore { val infiniteNumbers = LazyList.from(1) - val lessThan100Future = Future(infiniteNumbers.filter(_ < 100).toList) val lessThan100 = - intercept[TimeoutException](Await.result(lessThan100Future, 1.seconds)) - lessThan100.getMessage should include("Future timed out") + infiniteNumbers.filter(_ < 100).toList // never completes } } From ea61322b51556452cce0580c298061106085ab5a Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Mon, 13 May 2024 22:12:19 +0200 Subject: [PATCH 0583/1318] Option to either conversion --- .../OptionToEitherUnitTest.scala | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/optiontoeither/OptionToEitherUnitTest.scala diff --git a/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/optiontoeither/OptionToEitherUnitTest.scala b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/optiontoeither/OptionToEitherUnitTest.scala new file mode 100644 index 000000000..2d67db31a --- /dev/null +++ b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/optiontoeither/OptionToEitherUnitTest.scala @@ -0,0 +1,82 @@ +package com.baeldung.scala.optiontoeither + +import org.scalatest.matchers.should.Matchers +import org.scalatest.wordspec.AnyWordSpec + +sealed trait Error +case object EmptyOptionValue extends Error + +class OptionToEitherUnitTest extends AnyWordSpec with Matchers { + + def usingIfElse(option: Option[String]): Either[Error, String] = { + if (option.isDefined) Right(option.get) else Left(EmptyOptionValue) + } + + def usingPatternMatch(option: Option[String]): Either[Error, String] = { + option match { + case Some(value) => Right(value) + case None => Left(EmptyOptionValue) + } + } + + def usingToRight(option: Option[String]): Either[Error, String] = { + option.toRight(EmptyOptionValue) + } + + def usingCond(option: Option[String]): Either[Error, String] = { + Either.cond(option.nonEmpty, option.get, EmptyOptionValue) + } + + def usingFold(option: Option[String]): Either[Error, String] = { + option.fold(Left(EmptyOptionValue))(Right(_)) + } + + def usingMap(option: Option[String]): Either[Error, String] = { + option.map(Right(_)).getOrElse(Left(EmptyOptionValue)) + } + + "Option" should { + "be converted to Either using if else" in { + val either = usingIfElse(Option("Baeldung")) + either shouldBe Right("Baeldung") + val left = usingIfElse(None) + left shouldBe Left(EmptyOptionValue) + } + + "be converted to Either using pattern matching" in { + val either = usingPatternMatch(Option("Baeldung")) + either shouldBe Right("Baeldung") + val left = usingPatternMatch(None) + left shouldBe Left(EmptyOptionValue) + } + + "be converted to Either using usingToRight" in { + val either = usingToRight(Option("Baeldung")) + either shouldBe Right("Baeldung") + val left = usingToRight(None) + left shouldBe Left(EmptyOptionValue) + } + + "be converted to Either using usingCond" in { + val either = usingCond(Option("Baeldung")) + either shouldBe Right("Baeldung") + val left = usingCond(None) + left shouldBe Left(EmptyOptionValue) + } + + "be converted to Either using fold" in { + val either = usingFold(Option("Baeldung")) + either shouldBe Right("Baeldung") + val left = usingFold(None) + left shouldBe Left(EmptyOptionValue) + } + + "be converted to Either using map" in { + val either = usingMap(Option("Baeldung")) + either shouldBe Right("Baeldung") + val left = usingMap(None) + left shouldBe Left(EmptyOptionValue) + } + } + +} From c39099dea2bced2f3386aa3a1933a437b534ef78 Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Tue, 14 May 2024 20:52:10 +0800 Subject: [PATCH 0584/1318] Update README.md --- scala-core-modules/scala-core/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-core-modules/scala-core/README.md b/scala-core-modules/scala-core/README.md index 53249ab46..448b80317 100644 --- a/scala-core-modules/scala-core/README.md +++ b/scala-core-modules/scala-core/README.md @@ -13,3 +13,4 @@ This module contains articles about Scala's core features - [Sealed Keyword in Scala](https://www.baeldung.com/scala/sealed-keyword) - [Pattern Matching in Scala](https://www.baeldung.com/scala/pattern-matching) - [Using java.lang.class Objects in Scala](https://www.baeldung.com/scala/java-lang-class) +- [Handling Multiple Patterns with Scala Pattern Matching](https://www.baeldung.com/scala/multiple-pattern-matching) From c8ba5055ddca899b32508809309b234d7597fee6 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 14 May 2024 21:43:58 +0200 Subject: [PATCH 0585/1318] Internal script to rename files as per standard (#117) Fixed naming conventions in all unit tests, added name validation to ci task --- build.sbt | 2 +- ...nSpec.scala => CancellationUnitTest.scala} | 2 +- ...Spec.scala => ErrorHandlingUnitTest.scala} | 2 +- internal-scripts/ClassRenamer.scala | 72 +++++++++++++++++++ ...Test.scala => SourceActionsUnitTest.scala} | 2 +- ...cala => ArrivalControllerH2UnitTest.scala} | 2 +- ... => ArrivalDecoratorServiceUnitTest.scala} | 2 +- ...t.scala => ArrivalServiceH2UnitTest.scala} | 2 +- ...a => ArrivalServiceIsolatedUnitTest.scala} | 2 +- ...cala => ArrivalServiceMocksUnitTest.scala} | 2 +- ...la => ServiceWithRemoteCallUnitTest.scala} | 2 +- ...la => ServiceWithRemoteCallUnitTest.scala} | 2 +- ...est.scala => JavaReflectionUnitTest.scala} | 2 +- ...st.scala => ScalaReflectionUnitTest.scala} | 2 +- ...Test.scala => GenericMacrosUnitTest.scala} | 2 +- ...Test.scala => OddEvenMacrosUnitTest.scala} | 2 +- ...yncTest.scala => ScalaAsyncUnitTest.scala} | 2 +- ...scala => SampleConfigLoaderUnitTest.scala} | 2 +- ...a => MessageExchangeServiceUnitTest.scala} | 2 +- ...ntTest.scala => BankAccountUnitTest.scala} | 2 +- ...st.scala => QueryParametersUnitTest.scala} | 2 +- ...tesTest.scala => AkkaRoutesUnitTest.scala} | 2 +- ...{StreamTest.scala => StreamUnitTest.scala} | 2 +- ...ervice.scala => TestServiceUnitTest.scala} | 2 +- .../akka/{Tests.scala => UnitTest.scala} | 6 +- ...{StreamTest.scala => StreamUnitTest.scala} | 2 +- ....scala => GracefulStopActorUnitTest.scala} | 2 +- ...st.scala => PoisonPillActorUnitTest.scala} | 2 +- ...ctorTest.scala => StopActorUnitTest.scala} | 2 +- ...{FinderSpec.scala => FinderUnitTest.scala} | 2 +- ...enerSpec.scala => FlattenerUnitTest.scala} | 2 +- ...{FinderSpec.scala => FinderUnitTest.scala} | 2 +- ...pec.scala => SimpleLazyListUnitTest.scala} | 2 +- ...istSpec.scala => SimpleListUnitTest.scala} | 2 +- ...la => RandomFixedSizeSampleUnitTest.scala} | 2 +- ...otatorSpec.scala => RotatorUnitTest.scala} | 2 +- ...Spec.scala => SubListOfListUnitTest.scala} | 2 +- ...{BitSetTest.scala => BitSetUnitTest.scala} | 2 +- ...CacheSpec.scala => LRUCacheUnitTest.scala} | 2 +- ...CircularBufferFixedSizeListUnitTest.scala} | 2 +- ...Spec.scala => FixedSizeListUnitTest.scala} | 2 +- ...est.scala => SlidingGroupedUnitTest.scala} | 2 +- ...scala => ParallelCollectionUnitTest.scala} | 2 +- ...enerSpec.scala => FlattenerUnitTest.scala} | 2 +- ...rSpec.scala => ListSplitterUnitTest.scala} | 2 +- ....scala => DuplicatesRemoverUnitTest.scala} | 2 +- ...yValue.scala => MapKeyValueUnitTest.scala} | 2 +- ...rMapSpec.scala => FilterMapUnitTest.scala} | 2 +- .../ImplicitParameterUnitTest.scala | 2 +- ...=> TypeInferenceLimitationsUnitTest.scala} | 2 +- ...la => TypeInferredFunctionsUnitTest.scala} | 2 +- ...la => TypeInferredVariablesUnitTest.scala} | 2 +- ...{GuitarSpec.scala => GuitarUnitTest.scala} | 2 +- ...{EitherTest.scala => EitherUnitTest.scala} | 2 +- ...scala => FutureFailuresListUnitTest.scala} | 2 +- ...rSpec.scala => ListReverserUnitTest.scala} | 2 +- ...ClassTTests.scala => ClassTUnitTest.scala} | 2 +- ...ests.scala => DestructuringUnitTest.scala} | 2 +- ...est.scala => TwosComplementUnitTest.scala} | 2 +- ...serSpec.scala => DateParserUnitTest.scala} | 2 +- ...a => DifferenceBetweenDatesUnitTest.scala} | 2 +- ...ationTest.scala => DurationUnitTest.scala} | 2 +- ...cala => FunctionCompositionUnitTest.scala} | 2 +- ...nTest.scala => FileDeletionUnitTest.scala} | 2 +- ... FibonacciSequenceGeneratorUnitTest.scala} | 2 +- ...Test.scala => MagnetPatternUnitTest.scala} | 2 +- ...cala => FindFilterCollectorUnitTest.scala} | 2 +- ...pec.scala => ImmutableArrayUnitTest.scala} | 2 +- ...scala => NonFatalExceptionsUnitTest.scala} | 2 +- ...raitSpec.scala => WithTraitUnitTest.scala} | 2 +- ...a => ThreadUnsafeAnnotationUnitTest.scala} | 2 +- ...kTest.scala => LocallyBlockUnitTest.scala} | 2 +- ...Test.scala => GenericMacrosUnitTest.scala} | 2 +- ...Test.scala => OddEvenMacrosUnitTest.scala} | 2 +- ...atchExpressionImprovementstUnitTest.scala} | 2 +- ...a => FirstComponentOfScala2UnitTest.scala} | 2 +- ...pesSpec.scala => MatchTypesUnitTest.scala} | 2 +- ...leSpec.scala => YamlExampleUnitTest.scala} | 4 +- ...Spec.scala => ConfigurationUnitTest.scala} | 2 +- ...{ConfigTest.scala => ConfigUnitTest.scala} | 2 +- ...pec.scala => DataValidationUnitTest.scala} | 2 +- ...mpleTest.scala => FS2SampleUnitTest.scala} | 2 +- .../scala/com/baeldung/munit/MUnitTest.scala | 2 +- .../{AsyncTest.scala => AsyncUnitTest.scala} | 2 +- ...erTest.scala => BeforeAfterUnitTest.scala} | 2 +- ....scala => ExceptionHandlingUnitTest.scala} | 2 +- ...{NestedTest.scala => NestedUnitTest.scala} | 2 +- ...estSuite.scala => RetryTestUnitTest.scala} | 2 +- .../{RetryTest.scala => RetryUnitTest.scala} | 2 +- ...SimpleUTest.scala => SimpleUnitTest.scala} | 2 +- .../scalacheck/CommandsUnitTest.scala | 2 +- ....scala => ScalamockFeaturesUnitTest.scala} | 2 +- ....scala => ScalamockFunctionUnitTest.scala} | 2 +- ...a => ScalamockMockingStylesUnitTest.scala} | 2 +- ...st.scala => JSONConversionsUnitTest.scala} | 2 +- ...t.scala => PrimeNumberRetryUnitTest.scala} | 2 +- ...{SampleTest.scala => SampleUnitTest.scala} | 2 +- .../{HelloSpec.scala => HelloUnitTest.scala} | 2 +- ....scala => ByteArrayToStringUnitTest.scala} | 2 +- ...CaseSpec.scala => CamelCaseUnitTest.scala} | 2 +- ...ala => InterpolationEscapesUnitTest.scala} | 2 +- ...ec.scala => KeywordMatchingUnitTest.scala} | 2 +- ...Spec.scala => CompareDoubleUnitTest.scala} | 2 +- ...unitTests.scala => IntJunitUnitTest.scala} | 2 +- ...Tests.scala => STAssertionsUnitTest.scala} | 2 +- ...tTests.scala => StringJunitUnitTest.scala} | 2 +- ...estSuite.scala => TypesTestUnitTest.scala} | 4 +- ...ampleTests.scala => ExampleUnitTest.scala} | 0 ...nsTests.scala => AssertionsUnitTest.scala} | 2 +- ...encyTests.scala => CurrencyUnitTest.scala} | 2 +- ...lesTest.scala => IfCompilesUnitTest.scala} | 2 +- ...stFunSuite.scala => ListFunUnitTest.scala} | 2 +- ...ionTest.scala => CollectionUnitTest.scala} | 2 +- ...t.scala => InventoryServiceUnitTest.scala} | 2 +- ...ts.scala => ScalaTestRunnerUnitTest.scala} | 2 +- ...rldSpec.scala => HelloWorldUnitTest.scala} | 2 +- ....scala => MyScalatraServletUnitTest.scala} | 2 +- ...owsTest.scala => FirstNRowsUnitTest.scala} | 2 +- ...est.scala => RDDToDataframeUnitTest.scala} | 2 +- ...ntRDDTest.scala => PrintRDDUnitTest.scala} | 2 +- ...alTest.scala => RDDTutorialUnitTest.scala} | 2 +- ...insTest.scala => SparkJoinsUnitTest.scala} | 2 +- validate.sbt | 52 ++++++++++---- ...pectsSpec.scala => ZAspectsUnitTest.scala} | 4 +- ...c.scala => CreateZIOEffectsUnitTest.scala} | 2 +- ...Spec.scala => ErrorHandlingUnitTest.scala} | 4 +- ...st.scala => CombinedAverageUnitTest.scala} | 2 +- ...duceTest.scala => MapReduceUnitTest.scala} | 2 +- ...{VotingTest.scala => VotingUnitTest.scala} | 2 +- ...ryTest.scala => RepeatRetryUnitTest.scala} | 2 +- ...TestingApplicationsExamplesUnitTest.scala} | 4 +- ...Spec.scala => RecipeHttpAppUnitTest.scala} | 0 132 files changed, 247 insertions(+), 147 deletions(-) rename cats-effects/src/test/scala/com/baeldung/scala/catseffects/{CancellationSpec.scala => CancellationUnitTest.scala} (98%) rename cats-effects/src/test/scala/com/baeldung/scala/catseffects/{ErrorHandlingSpec.scala => ErrorHandlingUnitTest.scala} (99%) create mode 100644 internal-scripts/ClassRenamer.scala rename play-scala/application-tests/test/com/baeldung/arrival/actions/{SourceActionsTest.scala => SourceActionsUnitTest.scala} (97%) rename play-scala/application-tests/test/com/baeldung/arrival/controller/{ArrivalControllerH2Test.scala => ArrivalControllerH2UnitTest.scala} (97%) rename play-scala/application-tests/test/com/baeldung/arrival/service/{ArrivalDecoratorServiceTest.scala => ArrivalDecoratorServiceUnitTest.scala} (96%) rename play-scala/application-tests/test/com/baeldung/arrival/service/{ArrivalServiceH2Test.scala => ArrivalServiceH2UnitTest.scala} (96%) rename play-scala/application-tests/test/com/baeldung/arrival/service/{ArrivalServiceIsolatedTest.scala => ArrivalServiceIsolatedUnitTest.scala} (97%) rename play-scala/application-tests/test/com/baeldung/arrival/service/{ArrivalServiceMocksTest.scala => ArrivalServiceMocksUnitTest.scala} (98%) rename play-scala/dependency-injection/test/guice/service/{ServiceWithRemoteCallTest.scala => ServiceWithRemoteCallUnitTest.scala} (96%) rename play-scala/dependency-injection/test/macwire/service/{ServiceWithRemoteCallTest.scala => ServiceWithRemoteCallUnitTest.scala} (90%) rename reflection/src/test/scala-2/com/baeldung/reflection/{JavaReflectionTest.scala => JavaReflectionUnitTest.scala} (92%) rename reflection/src/test/scala-2/com/baeldung/reflection/{ScalaReflectionTest.scala => ScalaReflectionUnitTest.scala} (98%) rename scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/macros/{GenericMacrosTest.scala => GenericMacrosUnitTest.scala} (89%) rename scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/macros/{OddEvenMacrosTest.scala => OddEvenMacrosUnitTest.scala} (94%) rename scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/async/{ScalaAsyncTest.scala => ScalaAsyncUnitTest.scala} (96%) rename scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/pureconfig/{SampleConfigLoader.scala => SampleConfigLoaderUnitTest.scala} (96%) rename scala-akka-2/src/test/scala-2/com/baeldung/scala/akka_2/grpc/{MessageExchangeServiceTest.scala => MessageExchangeServiceUnitTest.scala} (98%) rename scala-akka-2/src/test/scala-2/com/baeldung/scala/akka_2/persistence/{BankAccountTest.scala => BankAccountUnitTest.scala} (97%) rename scala-akka-2/src/test/scala-2/com/baeldung/scala/akka_2/query_parameters/{QueryParametersTest.scala => QueryParametersUnitTest.scala} (98%) rename scala-akka-2/src/test/scala/com/baeldung/scala/akka/http/routetesting/{AkkaRoutesTest.scala => AkkaRoutesUnitTest.scala} (95%) rename scala-akka-2/src/test/scala/com/baeldung/scala/akka/stream/{StreamTest.scala => StreamUnitTest.scala} (95%) rename scala-akka-3/src/test/scala/com/baeldung/scala/akka/{TestService.scala => TestServiceUnitTest.scala} (82%) rename scala-akka-3/src/test/scala/com/baeldung/scala/akka/{Tests.scala => UnitTest.scala} (95%) rename scala-akka-3/src/test/scala/com/baeldung/scala/akka/stream/{StreamTest.scala => StreamUnitTest.scala} (98%) rename scala-akka/src/test/scala-2/com/baeldung/scala/akka/stopping/{GracefulStopActorTest.scala => GracefulStopActorUnitTest.scala} (97%) rename scala-akka/src/test/scala-2/com/baeldung/scala/akka/stopping/{PoisonPillActorTest.scala => PoisonPillActorUnitTest.scala} (97%) rename scala-akka/src/test/scala-2/com/baeldung/scala/akka/stopping/{StopActorTest.scala => StopActorUnitTest.scala} (97%) rename scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/firstmatching/{FinderSpec.scala => FinderUnitTest.scala} (95%) rename scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/flattening/{FlattenerSpec.scala => FlattenerUnitTest.scala} (96%) rename scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/lastelement/{FinderSpec.scala => FinderUnitTest.scala} (94%) rename scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/lazylists/{SimpleLazyListSpec.scala => SimpleLazyListUnitTest.scala} (96%) rename scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/lazylists/{SimpleListSpec.scala => SimpleListUnitTest.scala} (91%) rename scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/randomfixedsizesample/{RandomFixedSizeSampleSpec.scala => RandomFixedSizeSampleUnitTest.scala} (96%) rename scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/rotation/{RotatorSpec.scala => RotatorUnitTest.scala} (96%) rename scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/sublist/{SubListOfListSpec.scala => SubListOfListUnitTest.scala} (97%) rename scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/bitset/{BitSetTest.scala => BitSetUnitTest.scala} (97%) rename scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/caching/{LRUCacheSpec.scala => LRUCacheUnitTest.scala} (97%) rename scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/fixedsizelist/{CircularBufferFixedSizeListSpec.scala => CircularBufferFixedSizeListUnitTest.scala} (92%) rename scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/fixedsizelist/{FixedSizeListSpec.scala => FixedSizeListUnitTest.scala} (93%) rename scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/slidinggrouped/{SlidingGroupedTest.scala => SlidingGroupedUnitTest.scala} (96%) rename scala-core-collections-modules/scala-core-collections/src/test/scala/com/baedung/scala/collections/{ParallelCollectionTest.scala => ParallelCollectionUnitTest.scala} (93%) rename scala-core-collections-modules/scala-core-collections/src/test/scala/com/baedung/scala/flattening/{FlattenerSpec.scala => FlattenerUnitTest.scala} (96%) rename scala-core-collections-modules/scala-core-collections/src/test/scala/com/baedung/scala/splitlist/{ListSplitterSpec.scala => ListSplitterUnitTest.scala} (97%) rename scala-core-collections-modules/scala-core-collections/src/test/scala/com/baeldung/scala/removeduplicates/{DuplicatesRemoverSpec.scala => DuplicatesRemoverUnitTest.scala} (99%) rename scala-core-collections-modules/scala-core-map/src/test/scala/com/baeldung/scala/collections/{MapKeyValue.scala => MapKeyValueUnitTest.scala} (96%) rename scala-core-collections-modules/scala-core-map/src/test/scala/com/baeldung/scala/filtermap/{FilterMapSpec.scala => FilterMapUnitTest.scala} (97%) rename scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/typeinference/{TypeInferenceLimitationsTest.scala => TypeInferenceLimitationsUnitTest.scala} (86%) rename scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/typeinference/{TypeInferredFunctionsTest.scala => TypeInferredFunctionsUnitTest.scala} (87%) rename scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/typeinference/{TypeInferredVariablesTest.scala => TypeInferredVariablesUnitTest.scala} (91%) rename scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/builderpattern/{GuitarSpec.scala => GuitarUnitTest.scala} (96%) rename scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/either/{EitherTest.scala => EitherUnitTest.scala} (97%) rename scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/futurelist/{FutureFailuresListSpec.scala => FutureFailuresListUnitTest.scala} (96%) rename scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/reverselists/{ListReverserSpec.scala => ListReverserUnitTest.scala} (96%) rename scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/classT/{ClassTTests.scala => ClassTUnitTest.scala} (97%) rename scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/destructuring/{DestructuringTests.scala => DestructuringUnitTest.scala} (98%) rename scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/twoscomplement/{TwosComplementTest.scala => TwosComplementUnitTest.scala} (92%) rename scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/date/{DateParserSpec.scala => DateParserUnitTest.scala} (98%) rename scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/differencedates/{DifferenceBetweenDatesTest.scala => DifferenceBetweenDatesUnitTest.scala} (96%) rename scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/duration/{DurationTest.scala => DurationUnitTest.scala} (96%) rename scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/functioncomposition/{FunctionCompositionTest.scala => FunctionCompositionUnitTest.scala} (96%) rename scala-core-modules/scala-core-io/src/test/scala/com/baeldung/scala/io/{FileDeletionTest.scala => FileDeletionUnitTest.scala} (97%) rename scala-core-modules/scala-core-numbers/src/test/scala/com/baeldung/scala/fibonacci/{FibonacciSequenceGeneratorTest.scala => FibonacciSequenceGeneratorUnitTest.scala} (95%) rename scala-design-patterns/src/test/scala/com/baeldung/scala/magnetpattern/{MagnetPatternTest.scala => MagnetPatternUnitTest.scala} (86%) rename scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/filters/{FindFilterCollector.scala => FindFilterCollectorUnitTest.scala} (97%) rename scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/immutablearrays/{ImmutableArraySpec.scala => ImmutableArrayUnitTest.scala} (96%) rename scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/nonfatal/{NonFatalExceptionsTest.scala => NonFatalExceptionsUnitTest.scala} (98%) rename scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/withtrait/{WithTraitSpec.scala => WithTraitUnitTest.scala} (97%) rename scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/annotations/{ThreadUnsafeAnnotationTest.scala => ThreadUnsafeAnnotationUnitTest.scala} (96%) rename scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/locally/{LocallyBlockTest.scala => LocallyBlockUnitTest.scala} (88%) rename scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/macros/{GenericMacrosTest.scala => GenericMacrosUnitTest.scala} (90%) rename scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/macros/{OddEvenMacrosTest.scala => OddEvenMacrosUnitTest.scala} (95%) rename scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/matchexpressions/{MatchExpressionImprovementstTest.scala => MatchExpressionImprovementstUnitTest.scala} (95%) rename scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/matchtypes/{FirstComponentOfScala2Spec.scala => FirstComponentOfScala2UnitTest.scala} (92%) rename scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/matchtypes/{MatchTypesSpec.scala => MatchTypesUnitTest.scala} (92%) rename scala-libraries-config/src/test/scala/com/baeldung/circeyaml/{YamlExampleSpec.scala => YamlExampleUnitTest.scala} (97%) rename scala-libraries-config/src/test/scala/com/baeldung/cirisconfig/{ConfigurationSpec.scala => ConfigurationUnitTest.scala} (98%) rename scala-libraries-config/src/test/scala/com/baeldung/scala/config/{ConfigTest.scala => ConfigUnitTest.scala} (98%) rename scala-libraries-fp/src/test/scala/com/baeldung/datavalidation/{DataValidationSpec.scala => DataValidationUnitTest.scala} (97%) rename scala-libraries-fp/src/test/scala/com/baeldung/scala/fs2/{FS2SampleTest.scala => FS2SampleUnitTest.scala} (88%) rename scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/{AsyncTest.scala => AsyncUnitTest.scala} (88%) rename scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/{BeforeAfterTest.scala => BeforeAfterUnitTest.scala} (88%) rename scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/{ExceptionHandling.scala => ExceptionHandlingUnitTest.scala} (85%) rename scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/{NestedTest.scala => NestedUnitTest.scala} (92%) rename scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/{RetryTestSuite.scala => RetryTestUnitTest.scala} (78%) rename scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/{RetryTest.scala => RetryUnitTest.scala} (88%) rename scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/{SimpleUTest.scala => SimpleUnitTest.scala} (86%) rename scala-libraries-testing/src/test/scala/com/baeldung/scalamock/{ScalamockFeaturesTest.scala => ScalamockFeaturesUnitTest.scala} (98%) rename scala-libraries-testing/src/test/scala/com/baeldung/scalamock/{ScalamockFunctionTest.scala => ScalamockFunctionUnitTest.scala} (97%) rename scala-libraries-testing/src/test/scala/com/baeldung/scalamock/{ScalamockMockingStylesTest.scala => ScalamockMockingStylesUnitTest.scala} (85%) rename scala-libraries/src/test/scala/com/baeldung/circe/{JSONConversionsTest.scala => JSONConversionsUnitTest.scala} (86%) rename scala-libraries/src/test/scala/com/baeldung/scala/retry/{PrimeNumberRetryTest.scala => PrimeNumberRetryUnitTest.scala} (96%) rename scala-sbt/integration-tests-post-1-9-0/integration/src/test/scala/com/baeldung/it/{SampleTest.scala => SampleUnitTest.scala} (75%) rename scala-sbt/intro-to-sbt/src/test/scala/com/baeldung/{HelloSpec.scala => HelloUnitTest.scala} (78%) rename scala-strings/src/test/scala/com/baeldung/scala/strings/bytes/{ByteArrayToStringTest.scala => ByteArrayToStringUnitTest.scala} (91%) rename scala-strings/src/test/scala/com/baeldung/scala/strings/camelcase/{CamelCaseSpec.scala => CamelCaseUnitTest.scala} (93%) rename scala-strings/src/test/scala/com/baeldung/scala/strings/interpolation/strings/interpolation/{EscapeUsingMetaCharUnitTest.scala => InterpolationEscapesUnitTest.scala} (92%) rename scala-strings/src/test/scala/com/baeldung/scala/strings/keywordsearch/{KeywordMatchingSpec.scala => KeywordMatchingUnitTest.scala} (94%) rename scala-test-2/src/test/scala/com/baeldung/scala/comparedouble/{CompareDoubleSpec.scala => CompareDoubleUnitTest.scala} (88%) rename scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/{IntJunitTests.scala => IntJunitUnitTest.scala} (89%) rename scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/{STAssertionsTests.scala => STAssertionsUnitTest.scala} (90%) rename scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/{StringJunitTests.scala => StringJunitUnitTest.scala} (85%) rename scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/{TypesTestSuite.scala => TypesTestUnitTest.scala} (53%) rename scala-test-junit5/src/test/scala-2/com/baeldung/junit5/{ExampleTests.scala => ExampleUnitTest.scala} (100%) rename scala-test/src/test/scala/com/baeldung/scala/assertions/{AssertionsTests.scala => AssertionsUnitTest.scala} (95%) rename scala-test/src/test/scala/com/baeldung/scala/assertions/{CurrencyTests.scala => CurrencyUnitTest.scala} (90%) rename scala-test/src/test/scala/com/baeldung/scala/scalatest/{IfCompilesTest.scala => IfCompilesUnitTest.scala} (80%) rename scala-test/src/test/scala/com/baeldung/scala/scalatest/{ListFunSuite.scala => ListFunUnitTest.scala} (90%) rename scala-test/src/test/scala/com/baeldung/scala/scalatest/collectiontest/{CollectionTest.scala => CollectionUnitTest.scala} (98%) rename scala-test/src/test/scala/com/baeldung/scala/scalatest/mockito/{InventoryServiceTest.scala => InventoryServiceUnitTest.scala} (99%) rename scala-test/src/test/scala/com/baeldung/scala/scalatest/runner/{ScalaTestRunnerTests.scala => ScalaTestRunnerUnitTest.scala} (91%) rename scala-with-maven/hello-world/src/test/scala/{HelloWorldSpec.scala => HelloWorldUnitTest.scala} (81%) rename scalatra/src/test/scala-2/scalatra/tutorial/{MyScalatraServletTests.scala => MyScalatraServletUnitTest.scala} (82%) rename spark-scala/src/test/scala-2/com/baeldung/scala/spark/{FirstNRowsTest.scala => FirstNRowsUnitTest.scala} (96%) rename spark-scala/src/test/scala-2/com/baeldung/scala/spark/{RDDToDataframeTest.scala => RDDToDataframeUnitTest.scala} (93%) rename spark-scala/src/test/scala-2/com/baeldung/scala/spark/rdd/{PrintRDDTest.scala => PrintRDDUnitTest.scala} (94%) rename spark-scala/src/test/scala-2/com/baeldung/scala/spark/rdd/{RDDTutorialTest.scala => RDDTutorialUnitTest.scala} (96%) rename spark-scala/src/test/scala-2/com/baeldung/scala/sparkjoin/{SparkJoinsTest.scala => SparkJoinsUnitTest.scala} (97%) rename zio-2/src/test/scala/com/baeldung/scala/zio/aspects/{ZAspectsSpec.scala => ZAspectsUnitTest.scala} (89%) rename zio/src/test/scala/com/baeldung/scala/zio/createeffects/{CreateZIOEffectsSpec.scala => CreateZIOEffectsUnitTest.scala} (98%) rename zio/src/test/scala/com/baeldung/scala/zio/errorhandling/{ErrorHandlingSpec.scala => ErrorHandlingUnitTest.scala} (94%) rename zio/src/test/scala/com/baeldung/scala/zio/prelude/averages/{CombinedAverageTest.scala => CombinedAverageUnitTest.scala} (94%) rename zio/src/test/scala/com/baeldung/scala/zio/prelude/mapreduce/{MapReduceTest.scala => MapReduceUnitTest.scala} (94%) rename zio/src/test/scala/com/baeldung/scala/zio/prelude/voting/{VotingTest.scala => VotingUnitTest.scala} (94%) rename zio/src/test/scala/com/baeldung/scala/zio/repeatretry/{RepeatRetryTest.scala => RepeatRetryUnitTest.scala} (94%) rename zio/src/test/scala/com/bealdung/scala/zio/testingapplications/{TestingApplicationsExamplesSpec.scala => TestingApplicationsExamplesUnitTest.scala} (92%) rename zio3/src/test/scala-3/com/baeldung/scala/zio/httpapp/app/{RecipeHttpAppSpec.scala => RecipeHttpAppUnitTest.scala} (100%) diff --git a/build.sbt b/build.sbt index 1cedbd74f..211cdfa3c 100644 --- a/build.sbt +++ b/build.sbt @@ -715,7 +715,7 @@ lazy val spark_scala = (project in file("spark-scala")) addCommandAlias( "ci", - ";compile;test:compile;it:compile;scalafmtCheckAll;test" + ";compile;test:compile;it:compile;scalafmtCheckAll;validateUnitTestNames;test" ) addCommandAlias( diff --git a/cats-effects/src/test/scala/com/baeldung/scala/catseffects/CancellationSpec.scala b/cats-effects/src/test/scala/com/baeldung/scala/catseffects/CancellationUnitTest.scala similarity index 98% rename from cats-effects/src/test/scala/com/baeldung/scala/catseffects/CancellationSpec.scala rename to cats-effects/src/test/scala/com/baeldung/scala/catseffects/CancellationUnitTest.scala index 2b5401ff1..9c72fc153 100644 --- a/cats-effects/src/test/scala/com/baeldung/scala/catseffects/CancellationSpec.scala +++ b/cats-effects/src/test/scala/com/baeldung/scala/catseffects/CancellationUnitTest.scala @@ -10,7 +10,7 @@ import java.util.concurrent.atomic.AtomicBoolean import scala.concurrent.duration.DurationInt -class CancellationSpec extends AnyWordSpec with Matchers { +class CancellationUnitTest extends AnyWordSpec with Matchers { "Cancellation" should { "cancel the fiber directly and execute the action on cancellation" in { diff --git a/cats-effects/src/test/scala/com/baeldung/scala/catseffects/ErrorHandlingSpec.scala b/cats-effects/src/test/scala/com/baeldung/scala/catseffects/ErrorHandlingUnitTest.scala similarity index 99% rename from cats-effects/src/test/scala/com/baeldung/scala/catseffects/ErrorHandlingSpec.scala rename to cats-effects/src/test/scala/com/baeldung/scala/catseffects/ErrorHandlingUnitTest.scala index 77ff28e01..359f7d675 100644 --- a/cats-effects/src/test/scala/com/baeldung/scala/catseffects/ErrorHandlingSpec.scala +++ b/cats-effects/src/test/scala/com/baeldung/scala/catseffects/ErrorHandlingUnitTest.scala @@ -10,7 +10,7 @@ import org.scalatest.wordspec.AnyWordSpec import scala.util.Try import scala.util.control.NoStackTrace; -class ErrorHandlingSpec extends AnyWordSpec with Matchers { +class ErrorHandlingUnitTest extends AnyWordSpec with Matchers { "Calculator" should { "return left value using attempt in case of division by zero" in { diff --git a/internal-scripts/ClassRenamer.scala b/internal-scripts/ClassRenamer.scala new file mode 100644 index 000000000..3aa99b706 --- /dev/null +++ b/internal-scripts/ClassRenamer.scala @@ -0,0 +1,72 @@ +/** This is an internal scala-cli script written just to reduce manual work of + * renaming files and class names to follow naming standards. This doesn't fully correct all the class names, + * however reduces the manual effort by 90%. + */ +//> using toolkit default +import os._ + +object RenameClassNames { + def main(args: Array[String]): Unit = { + val directory = os.pwd / os.up + + os.walk(directory) + .filter(_.ext == "scala") + .filter(_.toString.contains("src/test/scala")) + .filterNot(_.toString.endsWith("UnitTest.scala")) + .filter(f => + f.toString.endsWith("Test.scala") || f.toString.endsWith("Spec.scala") || f.toString.endsWith("Tests.scala") || f.toString.endsWith("Suite.scala") + ) + .foreach { _filePath => + val _fileName = _filePath.last + + val newFileName = _filePath.toString + .replace("Test.scala", "UnitTest.scala") + .replace("Spec.scala", "UnitTest.scala") + .replace("Suite.scala", "UnitTest.scala") + .replace("Tests.scala", "UnitTest.scala") + + // rename file + val newFilePath = os.Path(newFileName) + os.move(_filePath, newFilePath) + + val content = os.read(newFilePath) + val existingClassName = getClassFromContent(content) + + val fileNameWithoutExtension = newFilePath.last.dropRight(6) + + def isTestClass(existingClassName: String): Boolean = { + existingClassName + .endsWith("Spec") || existingClassName.endsWith("Test") + } + + // Rename the class if it doesn't match the filename + if ( + isTestClass( + existingClassName + ) && existingClassName.toLowerCase != fileNameWithoutExtension.toLowerCase + ) { + // Update the content with the new class name + val updatedContent = content.replaceAll( + s"class\\s+$existingClassName", + s"class $fileNameWithoutExtension" + ) + + // Now, rename the class + os.write.over(newFilePath, updatedContent) + println( + s"Renamed class in ${newFilePath.last} to $fileNameWithoutExtension" + ) + } + } + } + + // Extract class name from file content + def getClassFromContent(content: String): String = { + val classNameRegex = """class\s+(\w+)""".r + val matchResult = classNameRegex.findFirstMatchIn(content) + matchResult match { + case Some(m) => m.group(1) + case None => "" + } + } +} diff --git a/play-scala/application-tests/test/com/baeldung/arrival/actions/SourceActionsTest.scala b/play-scala/application-tests/test/com/baeldung/arrival/actions/SourceActionsUnitTest.scala similarity index 97% rename from play-scala/application-tests/test/com/baeldung/arrival/actions/SourceActionsTest.scala rename to play-scala/application-tests/test/com/baeldung/arrival/actions/SourceActionsUnitTest.scala index 1ed3d1b5e..f8138b30f 100644 --- a/play-scala/application-tests/test/com/baeldung/arrival/actions/SourceActionsTest.scala +++ b/play-scala/application-tests/test/com/baeldung/arrival/actions/SourceActionsUnitTest.scala @@ -8,7 +8,7 @@ import play.api.mvc.Headers import play.api.mvc.Results.NoContent import play.api.test.{FakeRequest, Helpers} -class SourceActionsTest +class SourceActionsUnitTest extends AnyWordSpec with SourceActions with ScalaFutures { diff --git a/play-scala/application-tests/test/com/baeldung/arrival/controller/ArrivalControllerH2Test.scala b/play-scala/application-tests/test/com/baeldung/arrival/controller/ArrivalControllerH2UnitTest.scala similarity index 97% rename from play-scala/application-tests/test/com/baeldung/arrival/controller/ArrivalControllerH2Test.scala rename to play-scala/application-tests/test/com/baeldung/arrival/controller/ArrivalControllerH2UnitTest.scala index 53a31b2e9..e959b6ac6 100644 --- a/play-scala/application-tests/test/com/baeldung/arrival/controller/ArrivalControllerH2Test.scala +++ b/play-scala/application-tests/test/com/baeldung/arrival/controller/ArrivalControllerH2UnitTest.scala @@ -11,7 +11,7 @@ import play.api.libs.ws.{WSClient, WSResponse} import scala.concurrent.Future -class ArrivalControllerH2Test +class ArrivalControllerH2UnitTest extends AnyWordSpec with WsScalaTestClient with GuiceOneServerPerTest diff --git a/play-scala/application-tests/test/com/baeldung/arrival/service/ArrivalDecoratorServiceTest.scala b/play-scala/application-tests/test/com/baeldung/arrival/service/ArrivalDecoratorServiceUnitTest.scala similarity index 96% rename from play-scala/application-tests/test/com/baeldung/arrival/service/ArrivalDecoratorServiceTest.scala rename to play-scala/application-tests/test/com/baeldung/arrival/service/ArrivalDecoratorServiceUnitTest.scala index ad5a6d609..8494bc16a 100644 --- a/play-scala/application-tests/test/com/baeldung/arrival/service/ArrivalDecoratorServiceTest.scala +++ b/play-scala/application-tests/test/com/baeldung/arrival/service/ArrivalDecoratorServiceUnitTest.scala @@ -5,7 +5,7 @@ import org.scalatestplus.play.MixedPlaySpec import play.api.Configuration import play.api.inject.guice.GuiceApplicationBuilder -class ArrivalDecoratorServiceTest extends MixedPlaySpec { +class ArrivalDecoratorServiceUnitTest extends MixedPlaySpec { "ArrivalDecoratorService#decorate" should { "mark as short an arrival with plane name length = 5" in new App( diff --git a/play-scala/application-tests/test/com/baeldung/arrival/service/ArrivalServiceH2Test.scala b/play-scala/application-tests/test/com/baeldung/arrival/service/ArrivalServiceH2UnitTest.scala similarity index 96% rename from play-scala/application-tests/test/com/baeldung/arrival/service/ArrivalServiceH2Test.scala rename to play-scala/application-tests/test/com/baeldung/arrival/service/ArrivalServiceH2UnitTest.scala index 6c053ea73..f0459fca0 100644 --- a/play-scala/application-tests/test/com/baeldung/arrival/service/ArrivalServiceH2Test.scala +++ b/play-scala/application-tests/test/com/baeldung/arrival/service/ArrivalServiceH2UnitTest.scala @@ -8,7 +8,7 @@ import org.scalatestplus.play.guice.GuiceOneAppPerTest import scala.language.postfixOps -class ArrivalServiceH2Test +class ArrivalServiceH2UnitTest extends AnyWordSpec with GuiceOneAppPerTest with ScalaFutures diff --git a/play-scala/application-tests/test/com/baeldung/arrival/service/ArrivalServiceIsolatedTest.scala b/play-scala/application-tests/test/com/baeldung/arrival/service/ArrivalServiceIsolatedUnitTest.scala similarity index 97% rename from play-scala/application-tests/test/com/baeldung/arrival/service/ArrivalServiceIsolatedTest.scala rename to play-scala/application-tests/test/com/baeldung/arrival/service/ArrivalServiceIsolatedUnitTest.scala index e1c8dd578..aff1c16fd 100644 --- a/play-scala/application-tests/test/com/baeldung/arrival/service/ArrivalServiceIsolatedTest.scala +++ b/play-scala/application-tests/test/com/baeldung/arrival/service/ArrivalServiceIsolatedUnitTest.scala @@ -13,7 +13,7 @@ import org.scalatestplus.play.guice.GuiceOneAppPerTest import play.api.inject.guice.GuiceApplicationBuilder import play.api.{Application, Configuration, inject} -class ArrivalServiceIsolatedTest +class ArrivalServiceIsolatedUnitTest extends AnyWordSpec with GuiceOneAppPerTest with ScalaFutures { diff --git a/play-scala/application-tests/test/com/baeldung/arrival/service/ArrivalServiceMocksTest.scala b/play-scala/application-tests/test/com/baeldung/arrival/service/ArrivalServiceMocksUnitTest.scala similarity index 98% rename from play-scala/application-tests/test/com/baeldung/arrival/service/ArrivalServiceMocksTest.scala rename to play-scala/application-tests/test/com/baeldung/arrival/service/ArrivalServiceMocksUnitTest.scala index 0ba97efa1..d2c888827 100644 --- a/play-scala/application-tests/test/com/baeldung/arrival/service/ArrivalServiceMocksTest.scala +++ b/play-scala/application-tests/test/com/baeldung/arrival/service/ArrivalServiceMocksUnitTest.scala @@ -15,7 +15,7 @@ import slick.dbio.{DBIO, SuccessAction} import scala.concurrent.Future -class ArrivalServiceMocksTest +class ArrivalServiceMocksUnitTest extends AnyWordSpec with GuiceOneAppPerTest with ScalaFutures diff --git a/play-scala/dependency-injection/test/guice/service/ServiceWithRemoteCallTest.scala b/play-scala/dependency-injection/test/guice/service/ServiceWithRemoteCallUnitTest.scala similarity index 96% rename from play-scala/dependency-injection/test/guice/service/ServiceWithRemoteCallTest.scala rename to play-scala/dependency-injection/test/guice/service/ServiceWithRemoteCallUnitTest.scala index c00e553e7..8e7375b3b 100644 --- a/play-scala/dependency-injection/test/guice/service/ServiceWithRemoteCallTest.scala +++ b/play-scala/dependency-injection/test/guice/service/ServiceWithRemoteCallUnitTest.scala @@ -10,7 +10,7 @@ import org.scalatest.wordspec.FixtureAnyWordSpecLike import org.scalatestplus.play.MixedFixtures import play.api.inject.guice.GuiceApplicationBuilder -class ServiceWithRemoteCallTest +class ServiceWithRemoteCallUnitTest extends MixedFixtures with FixtureAnyWordSpecLike { diff --git a/play-scala/dependency-injection/test/macwire/service/ServiceWithRemoteCallTest.scala b/play-scala/dependency-injection/test/macwire/service/ServiceWithRemoteCallUnitTest.scala similarity index 90% rename from play-scala/dependency-injection/test/macwire/service/ServiceWithRemoteCallTest.scala rename to play-scala/dependency-injection/test/macwire/service/ServiceWithRemoteCallUnitTest.scala index 9d8904f1e..44850fc31 100644 --- a/play-scala/dependency-injection/test/macwire/service/ServiceWithRemoteCallTest.scala +++ b/play-scala/dependency-injection/test/macwire/service/ServiceWithRemoteCallUnitTest.scala @@ -3,7 +3,7 @@ package macwire.service import macwire.components.{ApiComponents, MockApiComponents, ServiceComponents} import org.scalatest.wordspec.AnyWordSpec -class ServiceWithRemoteCallTest extends AnyWordSpec { +class ServiceWithRemoteCallUnitTest extends AnyWordSpec { "ServiceWithRemoteCall call" should { diff --git a/reflection/src/test/scala-2/com/baeldung/reflection/JavaReflectionTest.scala b/reflection/src/test/scala-2/com/baeldung/reflection/JavaReflectionUnitTest.scala similarity index 92% rename from reflection/src/test/scala-2/com/baeldung/reflection/JavaReflectionTest.scala rename to reflection/src/test/scala-2/com/baeldung/reflection/JavaReflectionUnitTest.scala index eb8ebd85d..9eb874f6b 100644 --- a/reflection/src/test/scala-2/com/baeldung/reflection/JavaReflectionTest.scala +++ b/reflection/src/test/scala-2/com/baeldung/reflection/JavaReflectionUnitTest.scala @@ -2,7 +2,7 @@ package com.baeldung.reflection import org.junit.Test -class JavaReflectionTest { +class JavaReflectionUnitTest { @Test def invoke_method_dynamically(): Unit = { val person = Person("John", 20) diff --git a/reflection/src/test/scala-2/com/baeldung/reflection/ScalaReflectionTest.scala b/reflection/src/test/scala-2/com/baeldung/reflection/ScalaReflectionUnitTest.scala similarity index 98% rename from reflection/src/test/scala-2/com/baeldung/reflection/ScalaReflectionTest.scala rename to reflection/src/test/scala-2/com/baeldung/reflection/ScalaReflectionUnitTest.scala index 3046d8234..08e58cc03 100644 --- a/reflection/src/test/scala-2/com/baeldung/reflection/ScalaReflectionTest.scala +++ b/reflection/src/test/scala-2/com/baeldung/reflection/ScalaReflectionUnitTest.scala @@ -4,7 +4,7 @@ import org.junit.Test import scala.reflect.runtime.{universe => ru} -class ScalaReflectionTest { +class ScalaReflectionUnitTest { @Test def instantiate_a_class_at_runtime_v1: Unit = { val mirror: ru.Mirror = ru.runtimeMirror(getClass.getClassLoader) diff --git a/scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/macros/GenericMacrosTest.scala b/scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/macros/GenericMacrosUnitTest.scala similarity index 89% rename from scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/macros/GenericMacrosTest.scala rename to scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/macros/GenericMacrosUnitTest.scala index f918b6d62..41e6816d1 100644 --- a/scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/macros/GenericMacrosTest.scala +++ b/scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/macros/GenericMacrosUnitTest.scala @@ -3,7 +3,7 @@ package com.baeldung.scala.macros import org.scalatest.matchers.must.Matchers import org.scalatest.wordspec.AnyWordSpec -class GenericMacrosTest extends AnyWordSpec with Matchers { +class GenericMacrosUnitTest extends AnyWordSpec with Matchers { "generic macro" should { "return String for string argument" in { GenericMacros.getType("this is a string") mustBe "String" diff --git a/scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/macros/OddEvenMacrosTest.scala b/scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/macros/OddEvenMacrosUnitTest.scala similarity index 94% rename from scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/macros/OddEvenMacrosTest.scala rename to scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/macros/OddEvenMacrosUnitTest.scala index 66373cd7e..64305d1a0 100644 --- a/scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/macros/OddEvenMacrosTest.scala +++ b/scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/macros/OddEvenMacrosUnitTest.scala @@ -3,7 +3,7 @@ package com.baeldung.scala.macros import org.scalatest.matchers.must.Matchers import org.scalatest.wordspec.AnyWordSpec -class OddEvenMacrosTest extends AnyWordSpec with Matchers { +class OddEvenMacrosUnitTest extends AnyWordSpec with Matchers { "def macros" should { "return literal odd for odd number" in { diff --git a/scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/async/ScalaAsyncTest.scala b/scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/async/ScalaAsyncUnitTest.scala similarity index 96% rename from scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/async/ScalaAsyncTest.scala rename to scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/async/ScalaAsyncUnitTest.scala index ef797d564..e487cf75d 100644 --- a/scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/async/ScalaAsyncTest.scala +++ b/scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/async/ScalaAsyncUnitTest.scala @@ -59,7 +59,7 @@ object ScalaAsyncTest { } yield r1 + r2 } -class ScalaAsyncTest extends AsyncWordSpec with Matchers with ScalaFutures { +class ScalaAsyncUnitTest extends AsyncWordSpec with Matchers with ScalaFutures { import ScalaAsyncTest._ diff --git a/scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/pureconfig/SampleConfigLoader.scala b/scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/pureconfig/SampleConfigLoaderUnitTest.scala similarity index 96% rename from scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/pureconfig/SampleConfigLoader.scala rename to scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/pureconfig/SampleConfigLoaderUnitTest.scala index 6a67d949d..c4b860db3 100644 --- a/scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/pureconfig/SampleConfigLoader.scala +++ b/scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/pureconfig/SampleConfigLoaderUnitTest.scala @@ -12,7 +12,7 @@ import pureconfig.generic.ProductHint import pureconfig.error.ConfigReaderException import scala.concurrent.duration._ -class SampleConfigLoader extends AnyWordSpec with Matchers { +class SampleConfigLoaderUnitTest extends AnyWordSpec with Matchers { "pureconfig" should { "load config successfully" in { diff --git a/scala-akka-2/src/test/scala-2/com/baeldung/scala/akka_2/grpc/MessageExchangeServiceTest.scala b/scala-akka-2/src/test/scala-2/com/baeldung/scala/akka_2/grpc/MessageExchangeServiceUnitTest.scala similarity index 98% rename from scala-akka-2/src/test/scala-2/com/baeldung/scala/akka_2/grpc/MessageExchangeServiceTest.scala rename to scala-akka-2/src/test/scala-2/com/baeldung/scala/akka_2/grpc/MessageExchangeServiceUnitTest.scala index 367b113a5..1720973f9 100644 --- a/scala-akka-2/src/test/scala-2/com/baeldung/scala/akka_2/grpc/MessageExchangeServiceTest.scala +++ b/scala-akka-2/src/test/scala-2/com/baeldung/scala/akka_2/grpc/MessageExchangeServiceUnitTest.scala @@ -6,7 +6,7 @@ import akka.testkit.TestKit import org.scalatest.BeforeAndAfterAll import org.scalatest.wordspec.AsyncWordSpecLike -class MessageExchangeServiceTest +class MessageExchangeServiceUnitTest extends TestKit(ActorSystem("Akka-gRPC")) with AsyncWordSpecLike with BeforeAndAfterAll { diff --git a/scala-akka-2/src/test/scala-2/com/baeldung/scala/akka_2/persistence/BankAccountTest.scala b/scala-akka-2/src/test/scala-2/com/baeldung/scala/akka_2/persistence/BankAccountUnitTest.scala similarity index 97% rename from scala-akka-2/src/test/scala-2/com/baeldung/scala/akka_2/persistence/BankAccountTest.scala rename to scala-akka-2/src/test/scala-2/com/baeldung/scala/akka_2/persistence/BankAccountUnitTest.scala index f3fa4061a..3f124d357 100644 --- a/scala-akka-2/src/test/scala-2/com/baeldung/scala/akka_2/persistence/BankAccountTest.scala +++ b/scala-akka-2/src/test/scala-2/com/baeldung/scala/akka_2/persistence/BankAccountUnitTest.scala @@ -4,7 +4,7 @@ import akka.actor.testkit.typed.scaladsl.ScalaTestWithActorTestKit import akka.pattern.StatusReply import org.scalatest.wordspec.AnyWordSpecLike -class BankAccountTest extends ScalaTestWithActorTestKit with AnyWordSpecLike { +class BankAccountUnitTest extends ScalaTestWithActorTestKit with AnyWordSpecLike { "A Bank Account" should { "deposit money to a bank account" in { diff --git a/scala-akka-2/src/test/scala-2/com/baeldung/scala/akka_2/query_parameters/QueryParametersTest.scala b/scala-akka-2/src/test/scala-2/com/baeldung/scala/akka_2/query_parameters/QueryParametersUnitTest.scala similarity index 98% rename from scala-akka-2/src/test/scala-2/com/baeldung/scala/akka_2/query_parameters/QueryParametersTest.scala rename to scala-akka-2/src/test/scala-2/com/baeldung/scala/akka_2/query_parameters/QueryParametersUnitTest.scala index 18f1d4798..7e0d50299 100644 --- a/scala-akka-2/src/test/scala-2/com/baeldung/scala/akka_2/query_parameters/QueryParametersTest.scala +++ b/scala-akka-2/src/test/scala-2/com/baeldung/scala/akka_2/query_parameters/QueryParametersUnitTest.scala @@ -7,7 +7,7 @@ import akka.http.scaladsl.testkit.ScalatestRouteTest import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpec -class QueryParametersTest +class QueryParametersUnitTest extends AnyWordSpec with ScalatestRouteTest with Matchers { diff --git a/scala-akka-2/src/test/scala/com/baeldung/scala/akka/http/routetesting/AkkaRoutesTest.scala b/scala-akka-2/src/test/scala/com/baeldung/scala/akka/http/routetesting/AkkaRoutesUnitTest.scala similarity index 95% rename from scala-akka-2/src/test/scala/com/baeldung/scala/akka/http/routetesting/AkkaRoutesTest.scala rename to scala-akka-2/src/test/scala/com/baeldung/scala/akka/http/routetesting/AkkaRoutesUnitTest.scala index a3e2cd735..afa63035c 100644 --- a/scala-akka-2/src/test/scala/com/baeldung/scala/akka/http/routetesting/AkkaRoutesTest.scala +++ b/scala-akka-2/src/test/scala/com/baeldung/scala/akka/http/routetesting/AkkaRoutesUnitTest.scala @@ -7,7 +7,7 @@ import com.baeldung.scala.akka.http.routetesting.AkkaRoutes.routes import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers -class AkkaRoutesTest extends AnyFlatSpec with Matchers with ScalatestRouteTest { +class AkkaRoutesUnitTest extends AnyFlatSpec with Matchers with ScalatestRouteTest { "/hello" should "return Hello World!" in { Get("/hello") ~> routes ~> check { status shouldEqual StatusCodes.OK diff --git a/scala-akka-2/src/test/scala/com/baeldung/scala/akka/stream/StreamTest.scala b/scala-akka-2/src/test/scala/com/baeldung/scala/akka/stream/StreamUnitTest.scala similarity index 95% rename from scala-akka-2/src/test/scala/com/baeldung/scala/akka/stream/StreamTest.scala rename to scala-akka-2/src/test/scala/com/baeldung/scala/akka/stream/StreamUnitTest.scala index 9827c322e..ec7169d4e 100644 --- a/scala-akka-2/src/test/scala/com/baeldung/scala/akka/stream/StreamTest.scala +++ b/scala-akka-2/src/test/scala/com/baeldung/scala/akka/stream/StreamUnitTest.scala @@ -7,7 +7,7 @@ import org.scalatest.concurrent.ScalaFutures.convertScalaFuture import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers -class StreamTest extends AnyFlatSpec with Matchers { +class StreamUnitTest extends AnyFlatSpec with Matchers { implicit val system: ActorSystem = ActorSystem("baeldung") "The parse flow" should "parse pairs of integers" in { diff --git a/scala-akka-3/src/test/scala/com/baeldung/scala/akka/TestService.scala b/scala-akka-3/src/test/scala/com/baeldung/scala/akka/TestServiceUnitTest.scala similarity index 82% rename from scala-akka-3/src/test/scala/com/baeldung/scala/akka/TestService.scala rename to scala-akka-3/src/test/scala/com/baeldung/scala/akka/TestServiceUnitTest.scala index 7e82644b7..7b2874dca 100644 --- a/scala-akka-3/src/test/scala/com/baeldung/scala/akka/TestService.scala +++ b/scala-akka-3/src/test/scala/com/baeldung/scala/akka/TestServiceUnitTest.scala @@ -5,7 +5,7 @@ import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpec import akka.actor.testkit.typed.scaladsl.ActorTestKit -class TestService extends AnyWordSpec with BeforeAndAfterAll with Matchers { +class TestServiceUnitTest extends AnyWordSpec with BeforeAndAfterAll with Matchers { val testKit = ActorTestKit() implicit val system = testKit.system diff --git a/scala-akka-3/src/test/scala/com/baeldung/scala/akka/Tests.scala b/scala-akka-3/src/test/scala/com/baeldung/scala/akka/UnitTest.scala similarity index 95% rename from scala-akka-3/src/test/scala/com/baeldung/scala/akka/Tests.scala rename to scala-akka-3/src/test/scala/com/baeldung/scala/akka/UnitTest.scala index 46b0ae571..92fc1a139 100644 --- a/scala-akka-3/src/test/scala/com/baeldung/scala/akka/Tests.scala +++ b/scala-akka-3/src/test/scala/com/baeldung/scala/akka/UnitTest.scala @@ -68,7 +68,7 @@ object ActorTest { } } -class GreeterTest extends TestService { +class GreeterUnitTest extends TestServiceUnitTest { import scala.concurrent.duration._ val greeting = "Hello there" val sender = testKit.spawn(Greeter(), "greeter") @@ -80,7 +80,7 @@ class GreeterTest extends TestService { probe.expectNoMessage(50.millis) } -class TrafficLightTest extends TestService { +class TrafficLightUnitTest extends TestServiceUnitTest { import scala.concurrent.duration._ val sender = testKit.spawn(TrafficLight(), "traffic") val probe = testKit.createTestProbe[TrafficLight.CurrentSignal]() @@ -106,7 +106,7 @@ class TrafficLightTest extends TestService { probe.expectNoMessage(50.millis) } -class TrafficLightTestFut extends TestService { +class TrafficLightTestFutUnitTest extends TestServiceUnitTest { import scala.concurrent.duration._ val sender = testKit.spawn(TrafficLight(), "traffic") val duration = 300.millis diff --git a/scala-akka-3/src/test/scala/com/baeldung/scala/akka/stream/StreamTest.scala b/scala-akka-3/src/test/scala/com/baeldung/scala/akka/stream/StreamUnitTest.scala similarity index 98% rename from scala-akka-3/src/test/scala/com/baeldung/scala/akka/stream/StreamTest.scala rename to scala-akka-3/src/test/scala/com/baeldung/scala/akka/stream/StreamUnitTest.scala index d6ca94742..04d75a40c 100644 --- a/scala-akka-3/src/test/scala/com/baeldung/scala/akka/stream/StreamTest.scala +++ b/scala-akka-3/src/test/scala/com/baeldung/scala/akka/stream/StreamUnitTest.scala @@ -7,7 +7,7 @@ import org.scalatest.concurrent.ScalaFutures.convertScalaFuture import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers -class StreamTest extends AnyFlatSpec with Matchers { +class StreamUnitTest extends AnyFlatSpec with Matchers { implicit val system: ActorSystem = ActorSystem("baeldung") "The \"parse\" flow" should "parse pairs of integers" in { diff --git a/scala-akka/src/test/scala-2/com/baeldung/scala/akka/stopping/GracefulStopActorTest.scala b/scala-akka/src/test/scala-2/com/baeldung/scala/akka/stopping/GracefulStopActorUnitTest.scala similarity index 97% rename from scala-akka/src/test/scala-2/com/baeldung/scala/akka/stopping/GracefulStopActorTest.scala rename to scala-akka/src/test/scala-2/com/baeldung/scala/akka/stopping/GracefulStopActorUnitTest.scala index 58f76b2f2..53ca3e0f9 100644 --- a/scala-akka/src/test/scala-2/com/baeldung/scala/akka/stopping/GracefulStopActorTest.scala +++ b/scala-akka/src/test/scala-2/com/baeldung/scala/akka/stopping/GracefulStopActorUnitTest.scala @@ -11,7 +11,7 @@ import org.scalatest.wordspec.AnyWordSpecLike import scala.concurrent.Await import scala.concurrent.duration._ -class GracefulStopActorTest +class GracefulStopActorUnitTest extends TestKit(ActorSystem("test_system")) with AnyWordSpecLike with Matchers diff --git a/scala-akka/src/test/scala-2/com/baeldung/scala/akka/stopping/PoisonPillActorTest.scala b/scala-akka/src/test/scala-2/com/baeldung/scala/akka/stopping/PoisonPillActorUnitTest.scala similarity index 97% rename from scala-akka/src/test/scala-2/com/baeldung/scala/akka/stopping/PoisonPillActorTest.scala rename to scala-akka/src/test/scala-2/com/baeldung/scala/akka/stopping/PoisonPillActorUnitTest.scala index 42a612255..915df9a4e 100644 --- a/scala-akka/src/test/scala-2/com/baeldung/scala/akka/stopping/PoisonPillActorTest.scala +++ b/scala-akka/src/test/scala-2/com/baeldung/scala/akka/stopping/PoisonPillActorUnitTest.scala @@ -7,7 +7,7 @@ import com.baeldung.scala.akka.stopping.MessageProcessorActor._ import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpecLike -class PoisonPillActorTest +class PoisonPillActorUnitTest extends TestKit(ActorSystem("test_system")) with AnyWordSpecLike with Matchers diff --git a/scala-akka/src/test/scala-2/com/baeldung/scala/akka/stopping/StopActorTest.scala b/scala-akka/src/test/scala-2/com/baeldung/scala/akka/stopping/StopActorUnitTest.scala similarity index 97% rename from scala-akka/src/test/scala-2/com/baeldung/scala/akka/stopping/StopActorTest.scala rename to scala-akka/src/test/scala-2/com/baeldung/scala/akka/stopping/StopActorUnitTest.scala index b10d31c16..60d773065 100644 --- a/scala-akka/src/test/scala-2/com/baeldung/scala/akka/stopping/StopActorTest.scala +++ b/scala-akka/src/test/scala-2/com/baeldung/scala/akka/stopping/StopActorUnitTest.scala @@ -8,7 +8,7 @@ import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpecLike import scala.concurrent.duration._ -class StoppingActorTest +class StopActorUnitTest extends TestKit(ActorSystem("test_system")) with AnyWordSpecLike with Matchers diff --git a/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/firstmatching/FinderSpec.scala b/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/firstmatching/FinderUnitTest.scala similarity index 95% rename from scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/firstmatching/FinderSpec.scala rename to scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/firstmatching/FinderUnitTest.scala index 2f51a3247..5d1df91ff 100644 --- a/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/firstmatching/FinderSpec.scala +++ b/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/firstmatching/FinderUnitTest.scala @@ -2,7 +2,7 @@ package com.baeldung.scala.firstmatching import org.scalatest.wordspec.AnyWordSpec -class FinderSpec extends AnyWordSpec { +class FinderUnitTest extends AnyWordSpec { import Finder._ "A finder" should { diff --git a/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/flattening/FlattenerSpec.scala b/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/flattening/FlattenerUnitTest.scala similarity index 96% rename from scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/flattening/FlattenerSpec.scala rename to scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/flattening/FlattenerUnitTest.scala index b313ca633..657c7d3b3 100644 --- a/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/flattening/FlattenerSpec.scala +++ b/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/flattening/FlattenerUnitTest.scala @@ -5,7 +5,7 @@ import Flattener._ import scala.collection.immutable.Queue -class FlattenerSpec extends AnyWordSpec { +class FlattenerUnitTest extends AnyWordSpec { "A full flattener" should { "respect the contents of an already flat sequence" in { diff --git a/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/lastelement/FinderSpec.scala b/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/lastelement/FinderUnitTest.scala similarity index 94% rename from scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/lastelement/FinderSpec.scala rename to scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/lastelement/FinderUnitTest.scala index f8d8f0f4b..a81f769e8 100644 --- a/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/lastelement/FinderSpec.scala +++ b/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/lastelement/FinderUnitTest.scala @@ -2,7 +2,7 @@ package com.baeldung.scala.lastelement import org.scalatest.wordspec.AnyWordSpec -class FinderSpec extends AnyWordSpec { +class FinderUnitTest extends AnyWordSpec { import Finder._ "A last element finder" should { diff --git a/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/lazylists/SimpleLazyListSpec.scala b/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/lazylists/SimpleLazyListUnitTest.scala similarity index 96% rename from scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/lazylists/SimpleLazyListSpec.scala rename to scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/lazylists/SimpleLazyListUnitTest.scala index 3bb388e9c..a5ae16656 100644 --- a/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/lazylists/SimpleLazyListSpec.scala +++ b/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/lazylists/SimpleLazyListUnitTest.scala @@ -2,7 +2,7 @@ package com.baeldung.scala.lazylists import org.scalatest.wordspec.AnyWordSpec -class SimpleLazyListSpec extends AnyWordSpec { +class SimpleLazyListUnitTest extends AnyWordSpec { "A list" should { "Allow the creation of a one Element list" in { assertResult(5)((5 :: SLNil).head) diff --git a/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/lazylists/SimpleListSpec.scala b/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/lazylists/SimpleListUnitTest.scala similarity index 91% rename from scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/lazylists/SimpleListSpec.scala rename to scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/lazylists/SimpleListUnitTest.scala index ba10b63fa..9ef1cf9fd 100644 --- a/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/lazylists/SimpleListSpec.scala +++ b/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/lazylists/SimpleListUnitTest.scala @@ -2,7 +2,7 @@ package com.baeldung.scala.lazylists import org.scalatest.wordspec.AnyWordSpec -class SimpleListSpec extends AnyWordSpec { +class SimpleListUnitTest extends AnyWordSpec { "A list" should { "Allow the creation of a one Element list" in { assertResult(5)((5 :: SLNil).head) diff --git a/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/randomfixedsizesample/RandomFixedSizeSampleSpec.scala b/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/randomfixedsizesample/RandomFixedSizeSampleUnitTest.scala similarity index 96% rename from scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/randomfixedsizesample/RandomFixedSizeSampleSpec.scala rename to scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/randomfixedsizesample/RandomFixedSizeSampleUnitTest.scala index 49a0fb527..05ec62550 100644 --- a/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/randomfixedsizesample/RandomFixedSizeSampleSpec.scala +++ b/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/randomfixedsizesample/RandomFixedSizeSampleUnitTest.scala @@ -5,7 +5,7 @@ import org.scalatest.matchers.should.Matchers import scala.annotation.tailrec; -class RandomFixedSizeSampleSpec extends AnyWordSpec with Matchers { +class RandomFixedSizeSampleUnitTest extends AnyWordSpec with Matchers { "RandomFixedSizeSample" should { "create a random sample out of the initial List" in { diff --git a/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/rotation/RotatorSpec.scala b/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/rotation/RotatorUnitTest.scala similarity index 96% rename from scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/rotation/RotatorSpec.scala rename to scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/rotation/RotatorUnitTest.scala index b83e713af..bc61eefc5 100644 --- a/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/rotation/RotatorSpec.scala +++ b/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/rotation/RotatorUnitTest.scala @@ -2,7 +2,7 @@ package com.baeldung.scala.rotation import org.scalatest.wordspec.AnyWordSpec -class RotatorSpec extends AnyWordSpec { +class RotatorUnitTest extends AnyWordSpec { import Rotator._ "A rotator of collections" should { diff --git a/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/sublist/SubListOfListSpec.scala b/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/sublist/SubListOfListUnitTest.scala similarity index 97% rename from scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/sublist/SubListOfListSpec.scala rename to scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/sublist/SubListOfListUnitTest.scala index 177934346..8bc38d08c 100644 --- a/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/sublist/SubListOfListSpec.scala +++ b/scala-core-collections-modules/scala-core-collections-2/src/test/scala/com/baeldung/scala/sublist/SubListOfListUnitTest.scala @@ -3,7 +3,7 @@ package com.baeldung.scala.sublist import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpec -class SubListOfListSpec extends AnyWordSpec with Matchers { +class SubListOfListUnitTest extends AnyWordSpec with Matchers { val fullList = "a" :: "b" :: "c" :: "d" :: Nil val subList = "a" :: "b" :: "c" :: Nil val notSubList = "e" :: "f" :: Nil diff --git a/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/bitset/BitSetTest.scala b/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/bitset/BitSetUnitTest.scala similarity index 97% rename from scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/bitset/BitSetTest.scala rename to scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/bitset/BitSetUnitTest.scala index d598949cb..5e755b3e6 100644 --- a/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/bitset/BitSetTest.scala +++ b/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/bitset/BitSetUnitTest.scala @@ -5,7 +5,7 @@ import org.scalatest.wordspec.AnyWordSpec import scala.collection.immutable.BitSet -class BitSetTest extends AnyWordSpec with Assertions { +class BitSetUnitTest extends AnyWordSpec with Assertions { "BitSet.apply" should { "create an empty instance" in { diff --git a/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/caching/LRUCacheSpec.scala b/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/caching/LRUCacheUnitTest.scala similarity index 97% rename from scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/caching/LRUCacheSpec.scala rename to scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/caching/LRUCacheUnitTest.scala index 58290474a..98baa437c 100644 --- a/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/caching/LRUCacheSpec.scala +++ b/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/caching/LRUCacheUnitTest.scala @@ -3,7 +3,7 @@ package com.baeldung.scala.caching import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers -class LRUCacheSpec extends AnyFlatSpec with Matchers: +class LRUCacheUnitTest extends AnyFlatSpec with Matchers: "An LRU Cache" should "throw IllegalArgumentException if created with zero or negative size" in { an[IllegalArgumentException] should be thrownBy { diff --git a/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/fixedsizelist/CircularBufferFixedSizeListSpec.scala b/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/fixedsizelist/CircularBufferFixedSizeListUnitTest.scala similarity index 92% rename from scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/fixedsizelist/CircularBufferFixedSizeListSpec.scala rename to scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/fixedsizelist/CircularBufferFixedSizeListUnitTest.scala index 262284cfe..d18a06cb2 100644 --- a/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/fixedsizelist/CircularBufferFixedSizeListSpec.scala +++ b/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/fixedsizelist/CircularBufferFixedSizeListUnitTest.scala @@ -3,7 +3,7 @@ package com.baeldung.scala.fixedsizelist import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers -class CircularBufferFixedSizeListSpec extends AnyFlatSpec with Matchers { +class CircularBufferFixedSizeListUnitTest extends AnyFlatSpec with Matchers { "A CircularBufferFixedSizeListSpec" should "limit its size to the specified maximum" in { val list = FixedSizeList[Int](3) list.add(1) diff --git a/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/fixedsizelist/FixedSizeListSpec.scala b/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/fixedsizelist/FixedSizeListUnitTest.scala similarity index 93% rename from scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/fixedsizelist/FixedSizeListSpec.scala rename to scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/fixedsizelist/FixedSizeListUnitTest.scala index e6c10fe06..b3e5ffe3d 100644 --- a/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/fixedsizelist/FixedSizeListSpec.scala +++ b/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/fixedsizelist/FixedSizeListUnitTest.scala @@ -3,7 +3,7 @@ package com.baeldung.scala.fixedsizelist import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers -class FixedSizeListSpec extends AnyFlatSpec with Matchers { +class FixedSizeListUnitTest extends AnyFlatSpec with Matchers { "A FixedSizeList" should "limit its size to the specified maximum" in { val list = FixedSizeList[Int](3) list.add(1) diff --git a/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/slidinggrouped/SlidingGroupedTest.scala b/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/slidinggrouped/SlidingGroupedUnitTest.scala similarity index 96% rename from scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/slidinggrouped/SlidingGroupedTest.scala rename to scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/slidinggrouped/SlidingGroupedUnitTest.scala index 11f112005..0155b2972 100644 --- a/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/slidinggrouped/SlidingGroupedTest.scala +++ b/scala-core-collections-modules/scala-core-collections-3/src/test/scala/com/baeldung/scala/slidinggrouped/SlidingGroupedUnitTest.scala @@ -2,7 +2,7 @@ package com.baeldung.scala.slidinggrouped import org.scalatest.wordspec.AnyWordSpec -class SlidingGroupedTest extends AnyWordSpec { +class SlidingGroupedUnitTest extends AnyWordSpec { "sliding method" should { "creating a sliding window with 2 elements" in { diff --git a/scala-core-collections-modules/scala-core-collections/src/test/scala/com/baedung/scala/collections/ParallelCollectionTest.scala b/scala-core-collections-modules/scala-core-collections/src/test/scala/com/baedung/scala/collections/ParallelCollectionUnitTest.scala similarity index 93% rename from scala-core-collections-modules/scala-core-collections/src/test/scala/com/baedung/scala/collections/ParallelCollectionTest.scala rename to scala-core-collections-modules/scala-core-collections/src/test/scala/com/baedung/scala/collections/ParallelCollectionUnitTest.scala index f9c2ce5f7..010b251ff 100644 --- a/scala-core-collections-modules/scala-core-collections/src/test/scala/com/baedung/scala/collections/ParallelCollectionTest.scala +++ b/scala-core-collections-modules/scala-core-collections/src/test/scala/com/baedung/scala/collections/ParallelCollectionUnitTest.scala @@ -3,7 +3,7 @@ package com.baedung.scala.collections import com.baeldung.scala.collections.ParallelCollections._ import org.scalatest.flatspec.AnyFlatSpec -class ParallelCollectionTest extends AnyFlatSpec { +class ParallelCollectionUnitTest extends AnyFlatSpec { val ZERO_TO_HUNDRED_SUM = 5050 val ZERO_TO_HUNDRED_SUM_TIMES2 = 10100 diff --git a/scala-core-collections-modules/scala-core-collections/src/test/scala/com/baedung/scala/flattening/FlattenerSpec.scala b/scala-core-collections-modules/scala-core-collections/src/test/scala/com/baedung/scala/flattening/FlattenerUnitTest.scala similarity index 96% rename from scala-core-collections-modules/scala-core-collections/src/test/scala/com/baedung/scala/flattening/FlattenerSpec.scala rename to scala-core-collections-modules/scala-core-collections/src/test/scala/com/baedung/scala/flattening/FlattenerUnitTest.scala index 424efcfc3..49996e43a 100644 --- a/scala-core-collections-modules/scala-core-collections/src/test/scala/com/baedung/scala/flattening/FlattenerSpec.scala +++ b/scala-core-collections-modules/scala-core-collections/src/test/scala/com/baedung/scala/flattening/FlattenerUnitTest.scala @@ -4,7 +4,7 @@ import org.scalatest.wordspec.AnyWordSpec import scala.collection.immutable.Queue -class FlattenerSpec extends AnyWordSpec { +class FlattenerUnitTest extends AnyWordSpec { import com.baeldung.scala.flattening.Flattener.sequenceFlattener diff --git a/scala-core-collections-modules/scala-core-collections/src/test/scala/com/baedung/scala/splitlist/ListSplitterSpec.scala b/scala-core-collections-modules/scala-core-collections/src/test/scala/com/baedung/scala/splitlist/ListSplitterUnitTest.scala similarity index 97% rename from scala-core-collections-modules/scala-core-collections/src/test/scala/com/baedung/scala/splitlist/ListSplitterSpec.scala rename to scala-core-collections-modules/scala-core-collections/src/test/scala/com/baedung/scala/splitlist/ListSplitterUnitTest.scala index d7e00c1c4..d1f2843b5 100644 --- a/scala-core-collections-modules/scala-core-collections/src/test/scala/com/baedung/scala/splitlist/ListSplitterSpec.scala +++ b/scala-core-collections-modules/scala-core-collections/src/test/scala/com/baedung/scala/splitlist/ListSplitterUnitTest.scala @@ -3,7 +3,7 @@ package com.baedung.scala.splitlist import com.baeldung.scala.splitlist.ListSplitter import org.scalatest.wordspec.AnyWordSpec -class ListSplitterSpec extends AnyWordSpec { +class ListSplitterUnitTest extends AnyWordSpec { "ListSplitter" should { "return a list of the right number of lists" in { diff --git a/scala-core-collections-modules/scala-core-collections/src/test/scala/com/baeldung/scala/removeduplicates/DuplicatesRemoverSpec.scala b/scala-core-collections-modules/scala-core-collections/src/test/scala/com/baeldung/scala/removeduplicates/DuplicatesRemoverUnitTest.scala similarity index 99% rename from scala-core-collections-modules/scala-core-collections/src/test/scala/com/baeldung/scala/removeduplicates/DuplicatesRemoverSpec.scala rename to scala-core-collections-modules/scala-core-collections/src/test/scala/com/baeldung/scala/removeduplicates/DuplicatesRemoverUnitTest.scala index 169b2de82..047217154 100644 --- a/scala-core-collections-modules/scala-core-collections/src/test/scala/com/baeldung/scala/removeduplicates/DuplicatesRemoverSpec.scala +++ b/scala-core-collections-modules/scala-core-collections/src/test/scala/com/baeldung/scala/removeduplicates/DuplicatesRemoverUnitTest.scala @@ -2,7 +2,7 @@ package com.baeldung.scala.removeduplicates import org.scalatest.wordspec.AnyWordSpec -class DuplicatesRemoverSpec extends AnyWordSpec { +class DuplicatesRemoverUnitTest extends AnyWordSpec { "DuplicatesRemover" should { "return a shorter integers list without duplicates" in { diff --git a/scala-core-collections-modules/scala-core-map/src/test/scala/com/baeldung/scala/collections/MapKeyValue.scala b/scala-core-collections-modules/scala-core-map/src/test/scala/com/baeldung/scala/collections/MapKeyValueUnitTest.scala similarity index 96% rename from scala-core-collections-modules/scala-core-map/src/test/scala/com/baeldung/scala/collections/MapKeyValue.scala rename to scala-core-collections-modules/scala-core-map/src/test/scala/com/baeldung/scala/collections/MapKeyValueUnitTest.scala index 4c04a7d35..66e416798 100644 --- a/scala-core-collections-modules/scala-core-map/src/test/scala/com/baeldung/scala/collections/MapKeyValue.scala +++ b/scala-core-collections-modules/scala-core-map/src/test/scala/com/baeldung/scala/collections/MapKeyValueUnitTest.scala @@ -3,7 +3,7 @@ package com.baeldung.scala.collections import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpec -class MapKeyValue extends AnyWordSpec with Matchers { +class MapKeyValueUnitTest extends AnyWordSpec with Matchers { "Map::map" should { "map both keys and values to a new Iterable" in { val m = Map(1 -> "A", 2 -> "B") diff --git a/scala-core-collections-modules/scala-core-map/src/test/scala/com/baeldung/scala/filtermap/FilterMapSpec.scala b/scala-core-collections-modules/scala-core-map/src/test/scala/com/baeldung/scala/filtermap/FilterMapUnitTest.scala similarity index 97% rename from scala-core-collections-modules/scala-core-map/src/test/scala/com/baeldung/scala/filtermap/FilterMapSpec.scala rename to scala-core-collections-modules/scala-core-map/src/test/scala/com/baeldung/scala/filtermap/FilterMapUnitTest.scala index 42d735bfc..112523268 100644 --- a/scala-core-collections-modules/scala-core-map/src/test/scala/com/baeldung/scala/filtermap/FilterMapSpec.scala +++ b/scala-core-collections-modules/scala-core-map/src/test/scala/com/baeldung/scala/filtermap/FilterMapUnitTest.scala @@ -5,7 +5,7 @@ import org.scalatest.matchers.should.Matchers import org.scalatest.prop.TableDrivenPropertyChecks import FilterMap._ -class FilterMapSpec +class FilterMapUnitTest extends AnyFlatSpec with Matchers with TableDrivenPropertyChecks { diff --git a/scala-core-modules/scala-core-3/src/test/scala/com/baeldung/scala/implicitparameter/ImplicitParameterUnitTest.scala b/scala-core-modules/scala-core-3/src/test/scala/com/baeldung/scala/implicitparameter/ImplicitParameterUnitTest.scala index 2e050f6c3..f1ee58f51 100644 --- a/scala-core-modules/scala-core-3/src/test/scala/com/baeldung/scala/implicitparameter/ImplicitParameterUnitTest.scala +++ b/scala-core-modules/scala-core-3/src/test/scala/com/baeldung/scala/implicitparameter/ImplicitParameterUnitTest.scala @@ -3,7 +3,7 @@ package com.baeldung.scala.implicitparameter import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpec -class ImplicitParameterTest extends AnyWordSpec with Matchers { +class ImplicitParameterUnitTest extends AnyWordSpec with Matchers { import ImplicitParameter._ "Implicit Parameter" should { diff --git a/scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/typeinference/TypeInferenceLimitationsTest.scala b/scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/typeinference/TypeInferenceLimitationsUnitTest.scala similarity index 86% rename from scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/typeinference/TypeInferenceLimitationsTest.scala rename to scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/typeinference/TypeInferenceLimitationsUnitTest.scala index 052b099f2..70deb1e87 100644 --- a/scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/typeinference/TypeInferenceLimitationsTest.scala +++ b/scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/typeinference/TypeInferenceLimitationsUnitTest.scala @@ -3,7 +3,7 @@ package com.baeldung.scala.typeinference import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpec -class TypeInferenceLimitationsTest extends AnyWordSpec with Matchers { +class TypeInferenceLimitationsUnitTest extends AnyWordSpec with Matchers { "type inference limitations" should { import com.baeldung.scala.typeinference.TypeInferenceLimitations._ "An list of integers given input to recursiveSum function should calculate sum of its elements" in { diff --git a/scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/typeinference/TypeInferredFunctionsTest.scala b/scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/typeinference/TypeInferredFunctionsUnitTest.scala similarity index 87% rename from scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/typeinference/TypeInferredFunctionsTest.scala rename to scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/typeinference/TypeInferredFunctionsUnitTest.scala index 568de7c07..45642f479 100644 --- a/scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/typeinference/TypeInferredFunctionsTest.scala +++ b/scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/typeinference/TypeInferredFunctionsUnitTest.scala @@ -3,7 +3,7 @@ package com.baeldung.scala.typeinference import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpec -class TypeInferredFunctionsTest extends AnyWordSpec with Matchers { +class TypeInferredFunctionsUnitTest extends AnyWordSpec with Matchers { "type inference for functions" should { import com.baeldung.scala.typeinference.TypeInferredFunctions._ "An integer number given as input to the function squareInt should calculate its square value, and its return type is inferred as Integer type" in { diff --git a/scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/typeinference/TypeInferredVariablesTest.scala b/scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/typeinference/TypeInferredVariablesUnitTest.scala similarity index 91% rename from scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/typeinference/TypeInferredVariablesTest.scala rename to scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/typeinference/TypeInferredVariablesUnitTest.scala index e37541c4b..f16388ee4 100644 --- a/scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/typeinference/TypeInferredVariablesTest.scala +++ b/scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/typeinference/TypeInferredVariablesUnitTest.scala @@ -3,7 +3,7 @@ package com.baeldung.scala.typeinference import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpec -class TypeInferredVariablesTest extends AnyWordSpec with Matchers { +class TypeInferredVariablesUnitTest extends AnyWordSpec with Matchers { "type inference for variables " should { import com.baeldung.scala.typeinference.TypeInferredVariables._ "An integer number given as initial value should infer a Integer type" in { diff --git a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/builderpattern/GuitarSpec.scala b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/builderpattern/GuitarUnitTest.scala similarity index 96% rename from scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/builderpattern/GuitarSpec.scala rename to scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/builderpattern/GuitarUnitTest.scala index 9f7a80734..46fa01d6f 100644 --- a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/builderpattern/GuitarSpec.scala +++ b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/builderpattern/GuitarUnitTest.scala @@ -2,7 +2,7 @@ package com.baeldung.scala.builderpattern import org.scalatest.wordspec.AnyWordSpec -class GuitarSpec extends AnyWordSpec { +class GuitarUnitTest extends AnyWordSpec { "an unsafe guitar builder" should { "resort to defaults when not initialised" in { diff --git a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/either/EitherTest.scala b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/either/EitherUnitTest.scala similarity index 97% rename from scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/either/EitherTest.scala rename to scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/either/EitherUnitTest.scala index f3d1de3bc..d1ada69cd 100644 --- a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/either/EitherTest.scala +++ b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/either/EitherUnitTest.scala @@ -2,7 +2,7 @@ package com.baeldung.scala.either import org.scalatest.funsuite.AnyFunSuite -class EitherTest extends AnyFunSuite { +class EitherUnitTest extends AnyFunSuite { test("Pattern matching can be used to extract the value of an Either") { val e: Either[String, Int] = Right(5) e match { diff --git a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/futurelist/FutureFailuresListSpec.scala b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/futurelist/FutureFailuresListUnitTest.scala similarity index 96% rename from scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/futurelist/FutureFailuresListSpec.scala rename to scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/futurelist/FutureFailuresListUnitTest.scala index c9d3168c0..077b4e406 100644 --- a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/futurelist/FutureFailuresListSpec.scala +++ b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/futurelist/FutureFailuresListUnitTest.scala @@ -7,7 +7,7 @@ import scala.concurrent.duration._ import scala.concurrent.{Future, Await} -class FutureFailuresListSpec extends AnyFlatSpec with Matchers { +class FutureFailuresListUnitTest extends AnyFlatSpec with Matchers { val testList = List( Future.successful("success 1"), Future.failed(Exception("failure 1")), diff --git a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/reverselists/ListReverserSpec.scala b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/reverselists/ListReverserUnitTest.scala similarity index 96% rename from scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/reverselists/ListReverserSpec.scala rename to scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/reverselists/ListReverserUnitTest.scala index e6cf21635..2ba6874ce 100644 --- a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/reverselists/ListReverserSpec.scala +++ b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/reverselists/ListReverserUnitTest.scala @@ -5,7 +5,7 @@ import org.scalatest.{Assertion, BeforeAndAfterEach} import scala.util.Random -class ListReverserSpec extends AnyWordSpec with BeforeAndAfterEach { +class ListReverserUnitTest extends AnyWordSpec with BeforeAndAfterEach { import ListReverser._ diff --git a/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/classT/ClassTTests.scala b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/classT/ClassTUnitTest.scala similarity index 97% rename from scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/classT/ClassTTests.scala rename to scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/classT/ClassTUnitTest.scala index 977ba43d1..5d241aae9 100644 --- a/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/classT/ClassTTests.scala +++ b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/classT/ClassTUnitTest.scala @@ -3,7 +3,7 @@ package com.baeldung.scala.classT import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers -class ClassTSpec extends AnyFlatSpec with Matchers { +class ClassTUnitTest extends AnyFlatSpec with Matchers { def createInstance[T](clazz: Class[T], args: Array[AnyRef]): Option[T] = { try { // Find the appropriate constructor based on the args types diff --git a/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/destructuring/DestructuringTests.scala b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/destructuring/DestructuringUnitTest.scala similarity index 98% rename from scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/destructuring/DestructuringTests.scala rename to scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/destructuring/DestructuringUnitTest.scala index 722c79f6f..cf151612e 100644 --- a/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/destructuring/DestructuringTests.scala +++ b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/destructuring/DestructuringUnitTest.scala @@ -5,7 +5,7 @@ import scala.util.Random import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers -class DestructuringTests extends AnyFlatSpec with Matchers { +class DestructuringUnitTest extends AnyFlatSpec with Matchers { val random = new Random def getRandomElement[A](seq: Seq[A], random: Random): A = seq( diff --git a/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/twoscomplement/TwosComplementTest.scala b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/twoscomplement/TwosComplementUnitTest.scala similarity index 92% rename from scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/twoscomplement/TwosComplementTest.scala rename to scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/twoscomplement/TwosComplementUnitTest.scala index 8ca202da6..f7467e0e2 100644 --- a/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/twoscomplement/TwosComplementTest.scala +++ b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/twoscomplement/TwosComplementUnitTest.scala @@ -3,7 +3,7 @@ package com.baeldung.scala.twoscomplement import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers -class TwosComplementTest extends AnyFlatSpec with Matchers { +class TwosComplementUnitTest extends AnyFlatSpec with Matchers { val testExamples = List( ("00110100", "11001100"), diff --git a/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/date/DateParserSpec.scala b/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/date/DateParserUnitTest.scala similarity index 98% rename from scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/date/DateParserSpec.scala rename to scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/date/DateParserUnitTest.scala index b3c42f093..69a5ce742 100644 --- a/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/date/DateParserSpec.scala +++ b/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/date/DateParserUnitTest.scala @@ -8,7 +8,7 @@ import java.time.{ZoneId, ZonedDateTime} import java.util.Calendar import scala.util.Try -class DateParserSpec extends AnyWordSpec with Matchers { +class DateParserUnitTest extends AnyWordSpec with Matchers { val parser = new DateParser "a simple parser" should { diff --git a/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/differencedates/DifferenceBetweenDatesTest.scala b/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/differencedates/DifferenceBetweenDatesUnitTest.scala similarity index 96% rename from scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/differencedates/DifferenceBetweenDatesTest.scala rename to scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/differencedates/DifferenceBetweenDatesUnitTest.scala index 6a4303182..df7e726c7 100644 --- a/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/differencedates/DifferenceBetweenDatesTest.scala +++ b/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/differencedates/DifferenceBetweenDatesUnitTest.scala @@ -7,7 +7,7 @@ import java.time.temporal.ChronoUnit import java.time.{LocalDate, Period} import DifferenceBetweenDates._ -class DifferenceBetweenDatesTest extends AnyWordSpec with Matchers { +class DifferenceBetweenDatesUnitTest extends AnyWordSpec with Matchers { val testDate1 = LocalDate.parse("2020-01-01") val testDate2 = LocalDate.parse("2020-01-04") diff --git a/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/duration/DurationTest.scala b/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/duration/DurationUnitTest.scala similarity index 96% rename from scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/duration/DurationTest.scala rename to scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/duration/DurationUnitTest.scala index dddf81230..61182c523 100644 --- a/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/duration/DurationTest.scala +++ b/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/duration/DurationUnitTest.scala @@ -12,7 +12,7 @@ import java.util.concurrent.TimeUnit import scala.concurrent.duration.{FiniteDuration, HOURS} import scala.jdk.DurationConverters.JavaDurationOps -class DurationTest extends AnyFunSuite { +class DurationUnitTest extends AnyFunSuite { test("conversion from javaDuration using constructor") { val javaDuration = Duration.of(1, ChronoUnit.HOURS) diff --git a/scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/functioncomposition/FunctionCompositionTest.scala b/scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/functioncomposition/FunctionCompositionUnitTest.scala similarity index 96% rename from scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/functioncomposition/FunctionCompositionTest.scala rename to scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/functioncomposition/FunctionCompositionUnitTest.scala index b27fb4001..8435dff96 100644 --- a/scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/functioncomposition/FunctionCompositionTest.scala +++ b/scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/functioncomposition/FunctionCompositionUnitTest.scala @@ -2,7 +2,7 @@ package com.baeldung.scala.functioncomposition import org.scalatest.wordspec.AnyWordSpec -class FunctionCompositionTest extends AnyWordSpec { +class FunctionCompositionUnitTest extends AnyWordSpec { "f andThen g" should { "apply first f and then g" in { diff --git a/scala-core-modules/scala-core-io/src/test/scala/com/baeldung/scala/io/FileDeletionTest.scala b/scala-core-modules/scala-core-io/src/test/scala/com/baeldung/scala/io/FileDeletionUnitTest.scala similarity index 97% rename from scala-core-modules/scala-core-io/src/test/scala/com/baeldung/scala/io/FileDeletionTest.scala rename to scala-core-modules/scala-core-io/src/test/scala/com/baeldung/scala/io/FileDeletionUnitTest.scala index 1aaeae4fd..0b4a4c341 100644 --- a/scala-core-modules/scala-core-io/src/test/scala/com/baeldung/scala/io/FileDeletionTest.scala +++ b/scala-core-modules/scala-core-io/src/test/scala/com/baeldung/scala/io/FileDeletionUnitTest.scala @@ -8,7 +8,7 @@ import org.scalatest.BeforeAndAfterAll import java.io.{File, FileWriter} import java.nio.file.{Files, Paths} -class FileDeletionTest +class FileDeletionUnitTest extends AnyFlatSpec with Matchers with BeforeAndAfterAll { diff --git a/scala-core-modules/scala-core-numbers/src/test/scala/com/baeldung/scala/fibonacci/FibonacciSequenceGeneratorTest.scala b/scala-core-modules/scala-core-numbers/src/test/scala/com/baeldung/scala/fibonacci/FibonacciSequenceGeneratorUnitTest.scala similarity index 95% rename from scala-core-modules/scala-core-numbers/src/test/scala/com/baeldung/scala/fibonacci/FibonacciSequenceGeneratorTest.scala rename to scala-core-modules/scala-core-numbers/src/test/scala/com/baeldung/scala/fibonacci/FibonacciSequenceGeneratorUnitTest.scala index 51842f12f..21be19fcf 100644 --- a/scala-core-modules/scala-core-numbers/src/test/scala/com/baeldung/scala/fibonacci/FibonacciSequenceGeneratorTest.scala +++ b/scala-core-modules/scala-core-numbers/src/test/scala/com/baeldung/scala/fibonacci/FibonacciSequenceGeneratorUnitTest.scala @@ -5,7 +5,7 @@ import org.scalatest.matchers.should.Matchers import org.scalatest.prop.TableDrivenPropertyChecks import FibonacciSequenceGenerator._ -class FibonacciSequenceGeneratorTest +class FibonacciSequenceGeneratorUnitTest extends AnyFlatSpec with Matchers with TableDrivenPropertyChecks { diff --git a/scala-design-patterns/src/test/scala/com/baeldung/scala/magnetpattern/MagnetPatternTest.scala b/scala-design-patterns/src/test/scala/com/baeldung/scala/magnetpattern/MagnetPatternUnitTest.scala similarity index 86% rename from scala-design-patterns/src/test/scala/com/baeldung/scala/magnetpattern/MagnetPatternTest.scala rename to scala-design-patterns/src/test/scala/com/baeldung/scala/magnetpattern/MagnetPatternUnitTest.scala index 84b688960..583cec60d 100644 --- a/scala-design-patterns/src/test/scala/com/baeldung/scala/magnetpattern/MagnetPatternTest.scala +++ b/scala-design-patterns/src/test/scala/com/baeldung/scala/magnetpattern/MagnetPatternUnitTest.scala @@ -3,7 +3,7 @@ package com.baeldung.scala.magnetpattern import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers -class MagnetPatternTest extends AnyFlatSpec with Matchers { +class MagnetPatternUnitTest extends AnyFlatSpec with Matchers { "combineElements" should "be able to combine the elements in a collection" in { val intList = List(1, 2, 3, 4) val strList = List("a", "b", "c") diff --git a/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/filters/FindFilterCollector.scala b/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/filters/FindFilterCollectorUnitTest.scala similarity index 97% rename from scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/filters/FindFilterCollector.scala rename to scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/filters/FindFilterCollectorUnitTest.scala index 424b4ddc1..d4028b91a 100644 --- a/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/filters/FindFilterCollector.scala +++ b/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/filters/FindFilterCollectorUnitTest.scala @@ -5,7 +5,7 @@ import org.scalatest.wordspec.AnyWordSpec import scala.collection.SortedSet -class FindFilterCollector extends AnyWordSpec with Matchers { +class FindFilterCollectorUnitTest extends AnyWordSpec with Matchers { "find method" should { "select one element from a collection using find method" in { val numbers = List(1, 2, 3, 4, 5, 6) diff --git a/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala b/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArrayUnitTest.scala similarity index 96% rename from scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala rename to scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArrayUnitTest.scala index f56bca889..3c3d995f5 100644 --- a/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArraySpec.scala +++ b/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/immutablearrays/ImmutableArrayUnitTest.scala @@ -2,7 +2,7 @@ package com.baeldung.scala.immutablearrays import org.scalatest.wordspec.AnyWordSpec -class ImmutableArraySpec extends AnyWordSpec { +class ImmutableArrayUnitTest extends AnyWordSpec { trait Pet(val name: String, val age: Int) case class Dog(override val name: String, override val age: Int) extends Pet(name = name, age = age) diff --git a/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/nonfatal/NonFatalExceptionsTest.scala b/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/nonfatal/NonFatalExceptionsUnitTest.scala similarity index 98% rename from scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/nonfatal/NonFatalExceptionsTest.scala rename to scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/nonfatal/NonFatalExceptionsUnitTest.scala index 5d61a15fa..373d835f2 100644 --- a/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/nonfatal/NonFatalExceptionsTest.scala +++ b/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/nonfatal/NonFatalExceptionsUnitTest.scala @@ -6,7 +6,7 @@ import org.scalatest.wordspec.AnyWordSpec import scala.util.* import scala.util.control.{ControlThrowable, NonFatal} -class NonFatalExceptionsTest extends AnyWordSpec with Matchers { +class NonFatalExceptionsUnitTest extends AnyWordSpec with Matchers { "NonFatalExceptionsTest" should { diff --git a/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/withtrait/WithTraitSpec.scala b/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/withtrait/WithTraitUnitTest.scala similarity index 97% rename from scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/withtrait/WithTraitSpec.scala rename to scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/withtrait/WithTraitUnitTest.scala index 24cb2f15a..baf13adfa 100644 --- a/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/withtrait/WithTraitSpec.scala +++ b/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/withtrait/WithTraitUnitTest.scala @@ -4,7 +4,7 @@ import org.scalatest.wordspec.AnyWordSpec import java.time.LocalDate -class WithTraitSpec extends AnyWordSpec { +class WithTraitUnitTest extends AnyWordSpec { import WithTraitSpec._ diff --git a/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/annotations/ThreadUnsafeAnnotationTest.scala b/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/annotations/ThreadUnsafeAnnotationUnitTest.scala similarity index 96% rename from scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/annotations/ThreadUnsafeAnnotationTest.scala rename to scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/annotations/ThreadUnsafeAnnotationUnitTest.scala index 802f6c57f..9aabcd0b6 100644 --- a/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/annotations/ThreadUnsafeAnnotationTest.scala +++ b/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/annotations/ThreadUnsafeAnnotationUnitTest.scala @@ -6,7 +6,7 @@ import org.scalatest.matchers.should.Matchers import java.util.concurrent.atomic.AtomicInteger import scala.annotation.threadUnsafe -class ThreadUnsafeAnnotationTest extends AnyFlatSpec with Matchers { +class ThreadUnsafeAnnotationUnitTest extends AnyFlatSpec with Matchers { it should "lock the entire class when lazy val is initialized" in { val lazyValClass = new LazyValClass() diff --git a/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/locally/LocallyBlockTest.scala b/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/locally/LocallyBlockUnitTest.scala similarity index 88% rename from scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/locally/LocallyBlockTest.scala rename to scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/locally/LocallyBlockUnitTest.scala index e67c3e113..0fcb31f9a 100644 --- a/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/locally/LocallyBlockTest.scala +++ b/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/locally/LocallyBlockUnitTest.scala @@ -3,7 +3,7 @@ package com.baeldung.scala.locally import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers -class LocallyBlockTest extends AnyFlatSpec with Matchers { +class LocallyBlockUnitTest extends AnyFlatSpec with Matchers { it should "create dangling code block without locally" in { // intentionally place a new line to create dangling code block diff --git a/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/macros/GenericMacrosTest.scala b/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/macros/GenericMacrosUnitTest.scala similarity index 90% rename from scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/macros/GenericMacrosTest.scala rename to scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/macros/GenericMacrosUnitTest.scala index ecbb70571..4d913964a 100644 --- a/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/macros/GenericMacrosTest.scala +++ b/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/macros/GenericMacrosUnitTest.scala @@ -3,7 +3,7 @@ package com.baeldung.scala.macros import org.scalatest.matchers.must.Matchers import org.scalatest.wordspec.AnyWordSpec -class GenericMacrosTest extends AnyWordSpec with Matchers { +class GenericMacrosUnitTest extends AnyWordSpec with Matchers { "generic macro" should { "return String for string argument" in { GenericMacros.getTypeMacro("this is a string") mustBe "String" diff --git a/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/macros/OddEvenMacrosTest.scala b/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/macros/OddEvenMacrosUnitTest.scala similarity index 95% rename from scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/macros/OddEvenMacrosTest.scala rename to scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/macros/OddEvenMacrosUnitTest.scala index 8f18efa51..9f9b24473 100644 --- a/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/macros/OddEvenMacrosTest.scala +++ b/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/macros/OddEvenMacrosUnitTest.scala @@ -3,7 +3,7 @@ package com.baeldung.scala.macros import org.scalatest.matchers.must.Matchers import org.scalatest.wordspec.AnyWordSpec -class OddEvenMacrosTest extends AnyWordSpec with Matchers { +class OddEvenMacrosUnitTest extends AnyWordSpec with Matchers { "inline macros" should { "return literal odd for odd number" in { val res: String = OddEvenMacros.oddEvenMacroInline(3) diff --git a/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/matchexpressions/MatchExpressionImprovementstTest.scala b/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/matchexpressions/MatchExpressionImprovementstUnitTest.scala similarity index 95% rename from scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/matchexpressions/MatchExpressionImprovementstTest.scala rename to scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/matchexpressions/MatchExpressionImprovementstUnitTest.scala index aa6d15010..bec98590d 100644 --- a/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/matchexpressions/MatchExpressionImprovementstTest.scala +++ b/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/matchexpressions/MatchExpressionImprovementstUnitTest.scala @@ -3,7 +3,7 @@ package com.baeldung.scala.matchexpressions import org.scalatest.matchers.must.Matchers import org.scalatest.wordspec.AnyWordSpec -class MatchExpressionImprovementsTest extends AnyWordSpec with Matchers { +class MatchExpressionImprovementstUnitTest extends AnyWordSpec with Matchers { val testNone = None val testSome = Some("Hello World!") diff --git a/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/matchtypes/FirstComponentOfScala2Spec.scala b/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/matchtypes/FirstComponentOfScala2UnitTest.scala similarity index 92% rename from scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/matchtypes/FirstComponentOfScala2Spec.scala rename to scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/matchtypes/FirstComponentOfScala2UnitTest.scala index d46674b16..ec09b0ce9 100644 --- a/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/matchtypes/FirstComponentOfScala2Spec.scala +++ b/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/matchtypes/FirstComponentOfScala2UnitTest.scala @@ -3,7 +3,7 @@ package com.baeldung.scala.matchtypes import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpec -class FirstComponentOfScala2Spec extends AnyWordSpec with Matchers { +class FirstComponentOfScala2UnitTest extends AnyWordSpec with Matchers { "firstComponentOf" should { "return the first digit of an Int" in { FirstComponentOfScala2.firstComponentOf(-153) shouldEqual 1 diff --git a/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/matchtypes/MatchTypesSpec.scala b/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/matchtypes/MatchTypesUnitTest.scala similarity index 92% rename from scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/matchtypes/MatchTypesSpec.scala rename to scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/matchtypes/MatchTypesUnitTest.scala index eef99c9f3..b171f3135 100644 --- a/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/matchtypes/MatchTypesSpec.scala +++ b/scala-lang-modules/scala-lang-4/src/test/scala/com/baeldung/scala/matchtypes/MatchTypesUnitTest.scala @@ -3,7 +3,7 @@ package com.baeldung.scala.matchtypes import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpec -class MatchTypesSpec extends AnyWordSpec with Matchers: +class MatchTypesUnitTest extends AnyWordSpec with Matchers: "firstComponentOf" should { "return the first digit of an Int" in { firstComponentOf(-153) shouldEqual 1 diff --git a/scala-libraries-config/src/test/scala/com/baeldung/circeyaml/YamlExampleSpec.scala b/scala-libraries-config/src/test/scala/com/baeldung/circeyaml/YamlExampleUnitTest.scala similarity index 97% rename from scala-libraries-config/src/test/scala/com/baeldung/circeyaml/YamlExampleSpec.scala rename to scala-libraries-config/src/test/scala/com/baeldung/circeyaml/YamlExampleUnitTest.scala index 1a30717ad..a4f19e2b8 100644 --- a/scala-libraries-config/src/test/scala/com/baeldung/circeyaml/YamlExampleSpec.scala +++ b/scala-libraries-config/src/test/scala/com/baeldung/circeyaml/YamlExampleUnitTest.scala @@ -7,7 +7,7 @@ import io.circe.* import java.io.* import org.scalatest.prop.TableDrivenPropertyChecks -class YamlExampleSpec +class YamlExampleUnitTest extends AnyFlatSpec with Matchers with TableDrivenPropertyChecks: @@ -79,4 +79,4 @@ class YamlExampleSpec ) shouldBe an[String] } -end YamlExampleSpec +end YamlExampleUnitTest diff --git a/scala-libraries-config/src/test/scala/com/baeldung/cirisconfig/ConfigurationSpec.scala b/scala-libraries-config/src/test/scala/com/baeldung/cirisconfig/ConfigurationUnitTest.scala similarity index 98% rename from scala-libraries-config/src/test/scala/com/baeldung/cirisconfig/ConfigurationSpec.scala rename to scala-libraries-config/src/test/scala/com/baeldung/cirisconfig/ConfigurationUnitTest.scala index 68a1614dc..500f9e527 100644 --- a/scala-libraries-config/src/test/scala/com/baeldung/cirisconfig/ConfigurationSpec.scala +++ b/scala-libraries-config/src/test/scala/com/baeldung/cirisconfig/ConfigurationUnitTest.scala @@ -7,7 +7,7 @@ import Configuration.* import ciris.* import cats.effect.IO -class ConfigurationSuite +class ConfigurationUnitTest extends AnyFlatSpec with Matchers with TableDrivenPropertyChecks: diff --git a/scala-libraries-config/src/test/scala/com/baeldung/scala/config/ConfigTest.scala b/scala-libraries-config/src/test/scala/com/baeldung/scala/config/ConfigUnitTest.scala similarity index 98% rename from scala-libraries-config/src/test/scala/com/baeldung/scala/config/ConfigTest.scala rename to scala-libraries-config/src/test/scala/com/baeldung/scala/config/ConfigUnitTest.scala index 512eb0c4f..ee4e15b9e 100644 --- a/scala-libraries-config/src/test/scala/com/baeldung/scala/config/ConfigTest.scala +++ b/scala-libraries-config/src/test/scala/com/baeldung/scala/config/ConfigUnitTest.scala @@ -6,7 +6,7 @@ import java.time import com.typesafe.config.ConfigMemorySize import com.typesafe.config.ConfigException -class ConfigTest extends munit.FunSuite { +class ConfigUnitTest extends munit.FunSuite { test("Read configs with primitive types") { val config: Config = ConfigFactory.load() diff --git a/scala-libraries-fp/src/test/scala/com/baeldung/datavalidation/DataValidationSpec.scala b/scala-libraries-fp/src/test/scala/com/baeldung/datavalidation/DataValidationUnitTest.scala similarity index 97% rename from scala-libraries-fp/src/test/scala/com/baeldung/datavalidation/DataValidationSpec.scala rename to scala-libraries-fp/src/test/scala/com/baeldung/datavalidation/DataValidationUnitTest.scala index 25b42e39c..39b2d37ea 100644 --- a/scala-libraries-fp/src/test/scala/com/baeldung/datavalidation/DataValidationSpec.scala +++ b/scala-libraries-fp/src/test/scala/com/baeldung/datavalidation/DataValidationUnitTest.scala @@ -6,7 +6,7 @@ import org.scalatest.prop.TableDrivenPropertyChecks import cats.data.NonEmptyChain import cats.data.Validated.Invalid -class DataValidationSuite +class DataValidationUnitTest extends AnyFlatSpec with Matchers with TableDrivenPropertyChecks: diff --git a/scala-libraries-fp/src/test/scala/com/baeldung/scala/fs2/FS2SampleTest.scala b/scala-libraries-fp/src/test/scala/com/baeldung/scala/fs2/FS2SampleUnitTest.scala similarity index 88% rename from scala-libraries-fp/src/test/scala/com/baeldung/scala/fs2/FS2SampleTest.scala rename to scala-libraries-fp/src/test/scala/com/baeldung/scala/fs2/FS2SampleUnitTest.scala index 08426b24b..02fd156cc 100644 --- a/scala-libraries-fp/src/test/scala/com/baeldung/scala/fs2/FS2SampleTest.scala +++ b/scala-libraries-fp/src/test/scala/com/baeldung/scala/fs2/FS2SampleUnitTest.scala @@ -7,7 +7,7 @@ import org.scalatest.matchers.should.Matchers import java.nio.file.Paths import scala.io.Source -class FS2SampleTest extends AsyncFlatSpec with AsyncIOSpec with Matchers { +class FS2SampleUnitTest extends AsyncFlatSpec with AsyncIOSpec with Matchers { it should "read from a file and calculate word count" in { val outFile = "wc-fs2-output.log" diff --git a/scala-libraries-testing/src/test/scala/com/baeldung/munit/MUnitTest.scala b/scala-libraries-testing/src/test/scala/com/baeldung/munit/MUnitTest.scala index f4664e0a6..83f228156 100644 --- a/scala-libraries-testing/src/test/scala/com/baeldung/munit/MUnitTest.scala +++ b/scala-libraries-testing/src/test/scala/com/baeldung/munit/MUnitTest.scala @@ -66,7 +66,7 @@ class MUnitTest extends munit.FunSuite { ) } -class MacOnlyTest extends munit.FunSuite { +class MacOnlyUnitTest extends munit.FunSuite { override def munitIgnore: Boolean = !scala.util.Properties.isWin test("This is a mac only test") { println("mac only test") diff --git a/scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/AsyncTest.scala b/scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/AsyncUnitTest.scala similarity index 88% rename from scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/AsyncTest.scala rename to scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/AsyncUnitTest.scala index 2949b18df..80f8e7589 100644 --- a/scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/AsyncTest.scala +++ b/scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/AsyncUnitTest.scala @@ -5,7 +5,7 @@ import utest._ import scala.concurrent.Future import scala.concurrent.ExecutionContext.Implicits.global -object AsyncTest extends TestSuite { +object AsyncUnitTest extends TestSuite { def getFromDB(): Future[Int] = Future { 42 } override def tests: Tests = Tests { diff --git a/scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/BeforeAfterTest.scala b/scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/BeforeAfterUnitTest.scala similarity index 88% rename from scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/BeforeAfterTest.scala rename to scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/BeforeAfterUnitTest.scala index cf4df8f97..96b753f40 100644 --- a/scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/BeforeAfterTest.scala +++ b/scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/BeforeAfterUnitTest.scala @@ -2,7 +2,7 @@ package com.baeldung.scala.utest import utest._ -object BeforeAfterTest extends TestSuite { +object BeforeAfterUnitTest extends TestSuite { println("This is executed before the tests") override def utestAfterAll() = { println("This method will be executed after all the tests") diff --git a/scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/ExceptionHandling.scala b/scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/ExceptionHandlingUnitTest.scala similarity index 85% rename from scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/ExceptionHandling.scala rename to scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/ExceptionHandlingUnitTest.scala index c9a97ad01..6b4b5f20c 100644 --- a/scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/ExceptionHandling.scala +++ b/scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/ExceptionHandlingUnitTest.scala @@ -2,7 +2,7 @@ package com.baeldung.scala.utest import utest._ -object ExceptionHandling extends TestSuite { +object ExceptionHandlingUnitTest extends TestSuite { override def tests: Tests = Tests { def funnyMethod: String = throw new RuntimeException("Uh oh...") test("Handle an exception") { diff --git a/scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/NestedTest.scala b/scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/NestedUnitTest.scala similarity index 92% rename from scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/NestedTest.scala rename to scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/NestedUnitTest.scala index ba2226212..68cc92236 100644 --- a/scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/NestedTest.scala +++ b/scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/NestedUnitTest.scala @@ -2,7 +2,7 @@ package com.baeldung.scala.utest import utest._ -object NestedTest extends TestSuite { +object NestedUnitTest extends TestSuite { override def tests: Tests = Tests { test("outer test") - { val list = List(1, 2) diff --git a/scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/RetryTestSuite.scala b/scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/RetryTestUnitTest.scala similarity index 78% rename from scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/RetryTestSuite.scala rename to scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/RetryTestUnitTest.scala index 8beb3180a..ffd2bb034 100644 --- a/scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/RetryTestSuite.scala +++ b/scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/RetryTestUnitTest.scala @@ -2,7 +2,7 @@ package com.baeldung.scala.utest import utest._ -object RetryTestSuite extends TestSuite with TestSuite.Retries { +object RetryTestUnitTest extends TestSuite with TestSuite.Retries { override def utestRetryCount: Int = 3 override def tests: Tests = Tests { test("retryable test 1") { diff --git a/scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/RetryTest.scala b/scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/RetryUnitTest.scala similarity index 88% rename from scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/RetryTest.scala rename to scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/RetryUnitTest.scala index 497116eb0..535e9fa0f 100644 --- a/scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/RetryTest.scala +++ b/scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/RetryUnitTest.scala @@ -4,7 +4,7 @@ import utest._ import scala.util.Random -object RetryTest extends TestSuite { +object RetryUnitTest extends TestSuite { override def tests: Tests = Tests { def flakyMethod: Int = Random.nextInt(2) // change this value to test failure diff --git a/scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/SimpleUTest.scala b/scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/SimpleUnitTest.scala similarity index 86% rename from scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/SimpleUTest.scala rename to scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/SimpleUnitTest.scala index 546a90457..0f58fb048 100644 --- a/scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/SimpleUTest.scala +++ b/scala-libraries-testing/src/test/scala/com/baeldung/scala/utest/SimpleUnitTest.scala @@ -2,7 +2,7 @@ package com.baeldung.scala.utest import utest._ -object SimpleUTest extends TestSuite { +object SimpleUnitTest extends TestSuite { override def tests: Tests = Tests { test("str") { val name = "Baeldung" diff --git a/scala-libraries-testing/src/test/scala/com/baeldung/scalacheck/CommandsUnitTest.scala b/scala-libraries-testing/src/test/scala/com/baeldung/scalacheck/CommandsUnitTest.scala index b3d3eeab5..844653995 100644 --- a/scala-libraries-testing/src/test/scala/com/baeldung/scalacheck/CommandsUnitTest.scala +++ b/scala-libraries-testing/src/test/scala/com/baeldung/scalacheck/CommandsUnitTest.scala @@ -8,7 +8,7 @@ import java.time.Clock import java.util.UUID import scala.util.{Success, Try} -object TrafficLightCommandsTest extends Properties("TrafficLightCommands") { +object TrafficLightCommandsUnitTest extends Properties("TrafficLightCommands") { property("TrafficLight") = CommandsUnitTest.property() } diff --git a/scala-libraries-testing/src/test/scala/com/baeldung/scalamock/ScalamockFeaturesTest.scala b/scala-libraries-testing/src/test/scala/com/baeldung/scalamock/ScalamockFeaturesUnitTest.scala similarity index 98% rename from scala-libraries-testing/src/test/scala/com/baeldung/scalamock/ScalamockFeaturesTest.scala rename to scala-libraries-testing/src/test/scala/com/baeldung/scalamock/ScalamockFeaturesUnitTest.scala index 9ec760dfa..1341a80c8 100644 --- a/scala-libraries-testing/src/test/scala/com/baeldung/scalamock/ScalamockFeaturesTest.scala +++ b/scala-libraries-testing/src/test/scala/com/baeldung/scalamock/ScalamockFeaturesUnitTest.scala @@ -6,7 +6,7 @@ import org.scalamock.matchers.ArgCapture.CaptureOne import org.scalamock.scalatest.MockFactory import org.scalatest.wordspec.AnyWordSpec -class ScalamockFeaturesTest extends AnyWordSpec with MockFactory { +class ScalamockFeaturesUnitTest extends AnyWordSpec with MockFactory { "ArgumentMatching" should { "call Service1 doSomething result" in { diff --git a/scala-libraries-testing/src/test/scala/com/baeldung/scalamock/ScalamockFunctionTest.scala b/scala-libraries-testing/src/test/scala/com/baeldung/scalamock/ScalamockFunctionUnitTest.scala similarity index 97% rename from scala-libraries-testing/src/test/scala/com/baeldung/scalamock/ScalamockFunctionTest.scala rename to scala-libraries-testing/src/test/scala/com/baeldung/scalamock/ScalamockFunctionUnitTest.scala index c2be9996e..09b8cc8f6 100644 --- a/scala-libraries-testing/src/test/scala/com/baeldung/scalamock/ScalamockFunctionTest.scala +++ b/scala-libraries-testing/src/test/scala/com/baeldung/scalamock/ScalamockFunctionUnitTest.scala @@ -3,7 +3,7 @@ package com.baeldung.scalamock import org.scalamock.scalatest.MockFactory import org.scalatest.wordspec.AnyWordSpec -class ScalamockFunctionTest extends AnyWordSpec with MockFactory { +class ScalamockFunctionUnitTest extends AnyWordSpec with MockFactory { "MockedFunction" should { diff --git a/scala-libraries-testing/src/test/scala/com/baeldung/scalamock/ScalamockMockingStylesTest.scala b/scala-libraries-testing/src/test/scala/com/baeldung/scalamock/ScalamockMockingStylesUnitTest.scala similarity index 85% rename from scala-libraries-testing/src/test/scala/com/baeldung/scalamock/ScalamockMockingStylesTest.scala rename to scala-libraries-testing/src/test/scala/com/baeldung/scalamock/ScalamockMockingStylesUnitTest.scala index d13da6e26..44013b84e 100644 --- a/scala-libraries-testing/src/test/scala/com/baeldung/scalamock/ScalamockMockingStylesTest.scala +++ b/scala-libraries-testing/src/test/scala/com/baeldung/scalamock/ScalamockMockingStylesUnitTest.scala @@ -3,7 +3,7 @@ package com.baeldung.scalamock import org.scalamock.scalatest.MockFactory import org.scalatest.wordspec.AnyWordSpec -class ScalamockMockingStylesTest extends AnyWordSpec with MockFactory { +class ScalamockMockingStylesUnitTest extends AnyWordSpec with MockFactory { "MockingStyle" should { trait MockitoWannabe { diff --git a/scala-libraries/src/test/scala/com/baeldung/circe/JSONConversionsTest.scala b/scala-libraries/src/test/scala/com/baeldung/circe/JSONConversionsUnitTest.scala similarity index 86% rename from scala-libraries/src/test/scala/com/baeldung/circe/JSONConversionsTest.scala rename to scala-libraries/src/test/scala/com/baeldung/circe/JSONConversionsUnitTest.scala index 496d6e4ca..d68956764 100644 --- a/scala-libraries/src/test/scala/com/baeldung/circe/JSONConversionsTest.scala +++ b/scala-libraries/src/test/scala/com/baeldung/circe/JSONConversionsUnitTest.scala @@ -5,7 +5,7 @@ import io.circe.parser.parse import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should -class JSONConversionsTest extends AnyFlatSpec with should.Matchers { +class JSONConversionsUnitTest extends AnyFlatSpec with should.Matchers { "Convert Json String" should "successfully" in { val parseResult = parse(stringJson) assert(parseResult.isRight) diff --git a/scala-libraries/src/test/scala/com/baeldung/scala/retry/PrimeNumberRetryTest.scala b/scala-libraries/src/test/scala/com/baeldung/scala/retry/PrimeNumberRetryUnitTest.scala similarity index 96% rename from scala-libraries/src/test/scala/com/baeldung/scala/retry/PrimeNumberRetryTest.scala rename to scala-libraries/src/test/scala/com/baeldung/scala/retry/PrimeNumberRetryUnitTest.scala index 3509fea05..2c5f6a2cd 100644 --- a/scala-libraries/src/test/scala/com/baeldung/scala/retry/PrimeNumberRetryTest.scala +++ b/scala-libraries/src/test/scala/com/baeldung/scala/retry/PrimeNumberRetryUnitTest.scala @@ -7,7 +7,7 @@ import org.scalatest.wordspec.AsyncWordSpec import java.util.concurrent.atomic.AtomicInteger import scala.concurrent.Future -class PrimeNumberRetryTest extends AsyncWordSpec with Matchers { +class PrimeNumberRetryUnitTest extends AsyncWordSpec with Matchers { "PrimeNumberRetry" should { "FailFast when an NumberFormatException is thrown" in { diff --git a/scala-sbt/integration-tests-post-1-9-0/integration/src/test/scala/com/baeldung/it/SampleTest.scala b/scala-sbt/integration-tests-post-1-9-0/integration/src/test/scala/com/baeldung/it/SampleUnitTest.scala similarity index 75% rename from scala-sbt/integration-tests-post-1-9-0/integration/src/test/scala/com/baeldung/it/SampleTest.scala rename to scala-sbt/integration-tests-post-1-9-0/integration/src/test/scala/com/baeldung/it/SampleUnitTest.scala index e804cd765..96a490681 100644 --- a/scala-sbt/integration-tests-post-1-9-0/integration/src/test/scala/com/baeldung/it/SampleTest.scala +++ b/scala-sbt/integration-tests-post-1-9-0/integration/src/test/scala/com/baeldung/it/SampleUnitTest.scala @@ -2,7 +2,7 @@ package com.baeldung.it import org.scalatest.flatspec.AnyFlatSpec -class SampleTest extends AnyFlatSpec { +class SampleUnitTest extends AnyFlatSpec { "The sample test" should "pass" in { assert(1 + 1 == 2) } diff --git a/scala-sbt/intro-to-sbt/src/test/scala/com/baeldung/HelloSpec.scala b/scala-sbt/intro-to-sbt/src/test/scala/com/baeldung/HelloUnitTest.scala similarity index 78% rename from scala-sbt/intro-to-sbt/src/test/scala/com/baeldung/HelloSpec.scala rename to scala-sbt/intro-to-sbt/src/test/scala/com/baeldung/HelloUnitTest.scala index 320d1e067..bd44c437b 100644 --- a/scala-sbt/intro-to-sbt/src/test/scala/com/baeldung/HelloSpec.scala +++ b/scala-sbt/intro-to-sbt/src/test/scala/com/baeldung/HelloUnitTest.scala @@ -3,7 +3,7 @@ package com.baeldung import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers -class HelloSpec extends AnyFlatSpec with Matchers { +class HelloUnitTest extends AnyFlatSpec with Matchers { "The Hello object" should "say hello" in { Hello.greeting shouldEqual "hello" } diff --git a/scala-strings/src/test/scala/com/baeldung/scala/strings/bytes/ByteArrayToStringTest.scala b/scala-strings/src/test/scala/com/baeldung/scala/strings/bytes/ByteArrayToStringUnitTest.scala similarity index 91% rename from scala-strings/src/test/scala/com/baeldung/scala/strings/bytes/ByteArrayToStringTest.scala rename to scala-strings/src/test/scala/com/baeldung/scala/strings/bytes/ByteArrayToStringUnitTest.scala index 4a54e0c5e..61c9e2e97 100644 --- a/scala-strings/src/test/scala/com/baeldung/scala/strings/bytes/ByteArrayToStringTest.scala +++ b/scala-strings/src/test/scala/com/baeldung/scala/strings/bytes/ByteArrayToStringUnitTest.scala @@ -4,7 +4,7 @@ import com.baeldung.scala.strings.bytes.ByteArrayToString._ import org.scalatest.matchers.must.Matchers import org.scalatest.wordspec.AnyWordSpec -class ByteArrayToStringTest extends AnyWordSpec with Matchers { +class ByteArrayToStringUnitTest extends AnyWordSpec with Matchers { "byte array" should { val helloInUtf8 = Array[Byte](104, 101, 108, 108, 111) val helloInUtf16Le = Array[Byte](104, 0, 101, 0, 108, 0, 108, 0, 111, 0) diff --git a/scala-strings/src/test/scala/com/baeldung/scala/strings/camelcase/CamelCaseSpec.scala b/scala-strings/src/test/scala/com/baeldung/scala/strings/camelcase/CamelCaseUnitTest.scala similarity index 93% rename from scala-strings/src/test/scala/com/baeldung/scala/strings/camelcase/CamelCaseSpec.scala rename to scala-strings/src/test/scala/com/baeldung/scala/strings/camelcase/CamelCaseUnitTest.scala index ac6707781..37aaf0d14 100644 --- a/scala-strings/src/test/scala/com/baeldung/scala/strings/camelcase/CamelCaseSpec.scala +++ b/scala-strings/src/test/scala/com/baeldung/scala/strings/camelcase/CamelCaseUnitTest.scala @@ -2,7 +2,7 @@ package com.baeldung.scala.strings.camelcase import org.scalatest.wordspec.AnyWordSpec -class CamelCaseSpec extends AnyWordSpec { +class CamelCaseUnitTest extends AnyWordSpec { import StringWrapper._ diff --git a/scala-strings/src/test/scala/com/baeldung/scala/strings/interpolation/strings/interpolation/EscapeUsingMetaCharUnitTest.scala b/scala-strings/src/test/scala/com/baeldung/scala/strings/interpolation/strings/interpolation/InterpolationEscapesUnitTest.scala similarity index 92% rename from scala-strings/src/test/scala/com/baeldung/scala/strings/interpolation/strings/interpolation/EscapeUsingMetaCharUnitTest.scala rename to scala-strings/src/test/scala/com/baeldung/scala/strings/interpolation/strings/interpolation/InterpolationEscapesUnitTest.scala index 9dea700d7..2ffbdf645 100644 --- a/scala-strings/src/test/scala/com/baeldung/scala/strings/interpolation/strings/interpolation/EscapeUsingMetaCharUnitTest.scala +++ b/scala-strings/src/test/scala/com/baeldung/scala/strings/interpolation/strings/interpolation/InterpolationEscapesUnitTest.scala @@ -2,7 +2,7 @@ package com.baeldung.scala.strings.interpolation.strings.interpolation import org.scalatest.flatspec.AnyFlatSpec -class InterpolationEscapesSpec extends AnyFlatSpec { +class InterpolationEscapesUnitTest extends AnyFlatSpec { val DOUBLE_QUOTE: Char = '"' diff --git a/scala-strings/src/test/scala/com/baeldung/scala/strings/keywordsearch/KeywordMatchingSpec.scala b/scala-strings/src/test/scala/com/baeldung/scala/strings/keywordsearch/KeywordMatchingUnitTest.scala similarity index 94% rename from scala-strings/src/test/scala/com/baeldung/scala/strings/keywordsearch/KeywordMatchingSpec.scala rename to scala-strings/src/test/scala/com/baeldung/scala/strings/keywordsearch/KeywordMatchingUnitTest.scala index 630d97185..86a02ac1c 100644 --- a/scala-strings/src/test/scala/com/baeldung/scala/strings/keywordsearch/KeywordMatchingSpec.scala +++ b/scala-strings/src/test/scala/com/baeldung/scala/strings/keywordsearch/KeywordMatchingUnitTest.scala @@ -3,7 +3,7 @@ package com.baeldung.scala.strings.keywordsearch import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers -class KeywordMatchingSpec extends AnyFlatSpec with Matchers { +class KeywordMatchingUnitTest extends AnyFlatSpec with Matchers { "Keyword Matching" should "detect keywords in a string using brute-force" in { val text = "May the Force be with you" diff --git a/scala-test-2/src/test/scala/com/baeldung/scala/comparedouble/CompareDoubleSpec.scala b/scala-test-2/src/test/scala/com/baeldung/scala/comparedouble/CompareDoubleUnitTest.scala similarity index 88% rename from scala-test-2/src/test/scala/com/baeldung/scala/comparedouble/CompareDoubleSpec.scala rename to scala-test-2/src/test/scala/com/baeldung/scala/comparedouble/CompareDoubleUnitTest.scala index 32931be50..b91887340 100644 --- a/scala-test-2/src/test/scala/com/baeldung/scala/comparedouble/CompareDoubleSpec.scala +++ b/scala-test-2/src/test/scala/com/baeldung/scala/comparedouble/CompareDoubleUnitTest.scala @@ -4,7 +4,7 @@ import org.scalactic.TolerantNumerics import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers -class CompareDoubleSpec extends AnyFlatSpec with Matchers { +class CompareDoubleUnitTest extends AnyFlatSpec with Matchers { val doubleToTest: Double = 100.123 "double" should "pass test with implicit tolerance" in { diff --git a/scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/IntJunitTests.scala b/scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/IntJunitUnitTest.scala similarity index 89% rename from scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/IntJunitTests.scala rename to scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/IntJunitUnitTest.scala index 98cd06d1b..bf3d104a5 100644 --- a/scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/IntJunitTests.scala +++ b/scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/IntJunitUnitTest.scala @@ -3,7 +3,7 @@ package com.baeldung.scala.junit4 import org.junit.Test import org.junit.Assert._ -class IntJunitTests { +class IntJunitUnitTest { @Test def testOneIsPositive = { diff --git a/scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/STAssertionsTests.scala b/scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/STAssertionsUnitTest.scala similarity index 90% rename from scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/STAssertionsTests.scala rename to scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/STAssertionsUnitTest.scala index 9ebf27dd9..3b0a4331d 100644 --- a/scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/STAssertionsTests.scala +++ b/scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/STAssertionsUnitTest.scala @@ -4,7 +4,7 @@ import org.scalatestplus.junit.AssertionsForJUnit import org.junit.Assert._ import org.junit.Test -class STAssertionsTests extends AssertionsForJUnit { +class STAssertionsUnitTest extends AssertionsForJUnit { private final val myInt = 1 @Test diff --git a/scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/StringJunitTests.scala b/scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/StringJunitUnitTest.scala similarity index 85% rename from scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/StringJunitTests.scala rename to scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/StringJunitUnitTest.scala index 95e9a9d63..e4a62173b 100644 --- a/scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/StringJunitTests.scala +++ b/scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/StringJunitUnitTest.scala @@ -3,7 +3,7 @@ package com.baeldung.scala.junit4 import org.junit.Test import org.junit.Assert._ -class StringJunitTests { +class StringJunitUnitTest { @Test def testEmptyStringLengthIsZero = { diff --git a/scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/TypesTestSuite.scala b/scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/TypesTestUnitTest.scala similarity index 53% rename from scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/TypesTestSuite.scala rename to scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/TypesTestUnitTest.scala index 92919b3e5..b6e50c4fe 100644 --- a/scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/TypesTestSuite.scala +++ b/scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/TypesTestUnitTest.scala @@ -4,5 +4,5 @@ import org.junit.runner.RunWith import org.junit.runners.Suite @RunWith(classOf[Suite]) -@Suite.SuiteClasses(Array(classOf[IntJunitTests], classOf[StringJunitTests])) -class TypesTestSuite +@Suite.SuiteClasses(Array(classOf[IntJunitUnitTest], classOf[StringJunitUnitTest])) +class TypesTestUnitTest diff --git a/scala-test-junit5/src/test/scala-2/com/baeldung/junit5/ExampleTests.scala b/scala-test-junit5/src/test/scala-2/com/baeldung/junit5/ExampleUnitTest.scala similarity index 100% rename from scala-test-junit5/src/test/scala-2/com/baeldung/junit5/ExampleTests.scala rename to scala-test-junit5/src/test/scala-2/com/baeldung/junit5/ExampleUnitTest.scala diff --git a/scala-test/src/test/scala/com/baeldung/scala/assertions/AssertionsTests.scala b/scala-test/src/test/scala/com/baeldung/scala/assertions/AssertionsUnitTest.scala similarity index 95% rename from scala-test/src/test/scala/com/baeldung/scala/assertions/AssertionsTests.scala rename to scala-test/src/test/scala/com/baeldung/scala/assertions/AssertionsUnitTest.scala index 2f59d985c..8bb6bd6c8 100644 --- a/scala-test/src/test/scala/com/baeldung/scala/assertions/AssertionsTests.scala +++ b/scala-test/src/test/scala/com/baeldung/scala/assertions/AssertionsUnitTest.scala @@ -4,7 +4,7 @@ import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers import org.scalatest.exceptions.TestFailedException -class AssertionsTests extends AnyFlatSpec with Matchers { +class AssertionsUnitTest extends AnyFlatSpec with Matchers { def parseAge(ageString: String): Int = { if (ageString.isEmpty) diff --git a/scala-test/src/test/scala/com/baeldung/scala/assertions/CurrencyTests.scala b/scala-test/src/test/scala/com/baeldung/scala/assertions/CurrencyUnitTest.scala similarity index 90% rename from scala-test/src/test/scala/com/baeldung/scala/assertions/CurrencyTests.scala rename to scala-test/src/test/scala/com/baeldung/scala/assertions/CurrencyUnitTest.scala index cc70c6c74..b979b5510 100644 --- a/scala-test/src/test/scala/com/baeldung/scala/assertions/CurrencyTests.scala +++ b/scala-test/src/test/scala/com/baeldung/scala/assertions/CurrencyUnitTest.scala @@ -3,7 +3,7 @@ package com.baeldung.scala.assertions import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers -class CurrencyTests extends AnyFlatSpec with Matchers { +class CurrencyUnitTest extends AnyFlatSpec with Matchers { import Currency.RichDouble "Currency DSL" should "allow adding amounts of the same currency" in { diff --git a/scala-test/src/test/scala/com/baeldung/scala/scalatest/IfCompilesTest.scala b/scala-test/src/test/scala/com/baeldung/scala/scalatest/IfCompilesUnitTest.scala similarity index 80% rename from scala-test/src/test/scala/com/baeldung/scala/scalatest/IfCompilesTest.scala rename to scala-test/src/test/scala/com/baeldung/scala/scalatest/IfCompilesUnitTest.scala index a738a305b..82485656b 100644 --- a/scala-test/src/test/scala/com/baeldung/scala/scalatest/IfCompilesTest.scala +++ b/scala-test/src/test/scala/com/baeldung/scala/scalatest/IfCompilesUnitTest.scala @@ -3,7 +3,7 @@ package com.baeldung.scala.scalatest import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers -class IfCompilesTest extends AnyFlatSpec with Matchers { +class IfCompilesUnitTest extends AnyFlatSpec with Matchers { "val x: Int = 2" should compile diff --git a/scala-test/src/test/scala/com/baeldung/scala/scalatest/ListFunSuite.scala b/scala-test/src/test/scala/com/baeldung/scala/scalatest/ListFunUnitTest.scala similarity index 90% rename from scala-test/src/test/scala/com/baeldung/scala/scalatest/ListFunSuite.scala rename to scala-test/src/test/scala/com/baeldung/scala/scalatest/ListFunUnitTest.scala index c7628d0ac..33d7880d8 100644 --- a/scala-test/src/test/scala/com/baeldung/scala/scalatest/ListFunSuite.scala +++ b/scala-test/src/test/scala/com/baeldung/scala/scalatest/ListFunUnitTest.scala @@ -2,7 +2,7 @@ package com.baeldung.scala.scalatest import org.scalatest.funsuite.AnyFunSuite -class ListFunSuite extends AnyFunSuite { +class ListFunUnitTest extends AnyFunSuite { test("An empty List should have size 0") { assert(List.empty.size == 0) diff --git a/scala-test/src/test/scala/com/baeldung/scala/scalatest/collectiontest/CollectionTest.scala b/scala-test/src/test/scala/com/baeldung/scala/scalatest/collectiontest/CollectionUnitTest.scala similarity index 98% rename from scala-test/src/test/scala/com/baeldung/scala/scalatest/collectiontest/CollectionTest.scala rename to scala-test/src/test/scala/com/baeldung/scala/scalatest/collectiontest/CollectionUnitTest.scala index aa2772f1f..1f2ee5891 100644 --- a/scala-test/src/test/scala/com/baeldung/scala/scalatest/collectiontest/CollectionTest.scala +++ b/scala-test/src/test/scala/com/baeldung/scala/scalatest/collectiontest/CollectionUnitTest.scala @@ -5,7 +5,7 @@ import org.scalatest.matchers.should.Matchers import scala.util.Random -class CollectionTest extends AnyFlatSpec with Matchers { +class CollectionUnitTest extends AnyFlatSpec with Matchers { it should "compare equality for a list of numbers in same order" in { val intList = List(1, 2, 3, 4) diff --git a/scala-test/src/test/scala/com/baeldung/scala/scalatest/mockito/InventoryServiceTest.scala b/scala-test/src/test/scala/com/baeldung/scala/scalatest/mockito/InventoryServiceUnitTest.scala similarity index 99% rename from scala-test/src/test/scala/com/baeldung/scala/scalatest/mockito/InventoryServiceTest.scala rename to scala-test/src/test/scala/com/baeldung/scala/scalatest/mockito/InventoryServiceUnitTest.scala index 4d5a1efc6..60d9db53c 100644 --- a/scala-test/src/test/scala/com/baeldung/scala/scalatest/mockito/InventoryServiceTest.scala +++ b/scala-test/src/test/scala/com/baeldung/scala/scalatest/mockito/InventoryServiceUnitTest.scala @@ -11,7 +11,7 @@ import org.scalatestplus.mockito.MockitoSugar import java.time.LocalDateTime import scala.concurrent.Future -class InventoryServiceTest +class InventoryServiceUnitTest extends AnyWordSpec with MockitoSugar with ScalaFutures diff --git a/scala-test/src/test/scala/com/baeldung/scala/scalatest/runner/ScalaTestRunnerTests.scala b/scala-test/src/test/scala/com/baeldung/scala/scalatest/runner/ScalaTestRunnerUnitTest.scala similarity index 91% rename from scala-test/src/test/scala/com/baeldung/scala/scalatest/runner/ScalaTestRunnerTests.scala rename to scala-test/src/test/scala/com/baeldung/scala/scalatest/runner/ScalaTestRunnerUnitTest.scala index d20e27088..976f021b0 100644 --- a/scala-test/src/test/scala/com/baeldung/scala/scalatest/runner/ScalaTestRunnerTests.scala +++ b/scala-test/src/test/scala/com/baeldung/scala/scalatest/runner/ScalaTestRunnerUnitTest.scala @@ -10,7 +10,7 @@ import org.scalatest.wordspec.AnyWordSpec object BooleanTests extends Tag("BooleanTests") -class ScalaTestRunnerTests extends AnyWordSpec with Matchers { +class ScalaTestRunnerUnitTest extends AnyWordSpec with Matchers { "Scalatest runnner" should { "convert string true to boolean true" taggedAs (BooleanTests) in { diff --git a/scala-with-maven/hello-world/src/test/scala/HelloWorldSpec.scala b/scala-with-maven/hello-world/src/test/scala/HelloWorldUnitTest.scala similarity index 81% rename from scala-with-maven/hello-world/src/test/scala/HelloWorldSpec.scala rename to scala-with-maven/hello-world/src/test/scala/HelloWorldUnitTest.scala index 9b9000580..f5b5558aa 100644 --- a/scala-with-maven/hello-world/src/test/scala/HelloWorldSpec.scala +++ b/scala-with-maven/hello-world/src/test/scala/HelloWorldUnitTest.scala @@ -3,7 +3,7 @@ package com.baeldung.scalawithmaven import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers -class HelloWorldSpec extends AnyFlatSpec with Matchers { +class HelloWorldUnitTest extends AnyFlatSpec with Matchers { "The HelloWorld object" should "say hello" in { val greeting = HelloWorld.message diff --git a/scalatra/src/test/scala-2/scalatra/tutorial/MyScalatraServletTests.scala b/scalatra/src/test/scala-2/scalatra/tutorial/MyScalatraServletUnitTest.scala similarity index 82% rename from scalatra/src/test/scala-2/scalatra/tutorial/MyScalatraServletTests.scala rename to scalatra/src/test/scala-2/scalatra/tutorial/MyScalatraServletUnitTest.scala index e57601936..9b734ed29 100644 --- a/scalatra/src/test/scala-2/scalatra/tutorial/MyScalatraServletTests.scala +++ b/scalatra/src/test/scala-2/scalatra/tutorial/MyScalatraServletUnitTest.scala @@ -3,7 +3,7 @@ package scalatra.tutorial import org.scalatra.test.scalatest._ import scalatra.tutorial.servlet.MyScalatraServlet -class MyScalatraServletTests extends ScalatraFunSuite { +class MyScalatraServletUnitTest extends ScalatraFunSuite { addServlet(classOf[MyScalatraServlet], "/*") diff --git a/spark-scala/src/test/scala-2/com/baeldung/scala/spark/FirstNRowsTest.scala b/spark-scala/src/test/scala-2/com/baeldung/scala/spark/FirstNRowsUnitTest.scala similarity index 96% rename from spark-scala/src/test/scala-2/com/baeldung/scala/spark/FirstNRowsTest.scala rename to spark-scala/src/test/scala-2/com/baeldung/scala/spark/FirstNRowsUnitTest.scala index 7c8671f4b..9eca5ba18 100644 --- a/spark-scala/src/test/scala-2/com/baeldung/scala/spark/FirstNRowsTest.scala +++ b/spark-scala/src/test/scala-2/com/baeldung/scala/spark/FirstNRowsUnitTest.scala @@ -8,7 +8,7 @@ import org.apache.spark.sql.Dataset import info.{data, spark} import spark.implicits._ -class FirstNRowsSpec extends AnyFlatSpec with Matchers { +class FirstNRowsUnitTest extends AnyFlatSpec with Matchers { "The data Dataframe" should "contain 6 elements" in { data.count() shouldBe (6) diff --git a/spark-scala/src/test/scala-2/com/baeldung/scala/spark/RDDToDataframeTest.scala b/spark-scala/src/test/scala-2/com/baeldung/scala/spark/RDDToDataframeUnitTest.scala similarity index 93% rename from spark-scala/src/test/scala-2/com/baeldung/scala/spark/RDDToDataframeTest.scala rename to spark-scala/src/test/scala-2/com/baeldung/scala/spark/RDDToDataframeUnitTest.scala index ed391d67d..0dd52a58b 100644 --- a/spark-scala/src/test/scala-2/com/baeldung/scala/spark/RDDToDataframeTest.scala +++ b/spark-scala/src/test/scala-2/com/baeldung/scala/spark/RDDToDataframeUnitTest.scala @@ -10,7 +10,7 @@ import org.apache.spark.sql.types.{ } import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should -class RDDToDataframeTest extends AnyFlatSpec with should.Matchers { +class RDDToDataframeUnitTest extends AnyFlatSpec with should.Matchers { val spark: SparkSession = SparkSession.builder.master("local").getOrCreate "convertRowRDDToDataframe" should "be able to convert an RDD[Row] and return a DataFrame" in { diff --git a/spark-scala/src/test/scala-2/com/baeldung/scala/spark/rdd/PrintRDDTest.scala b/spark-scala/src/test/scala-2/com/baeldung/scala/spark/rdd/PrintRDDUnitTest.scala similarity index 94% rename from spark-scala/src/test/scala-2/com/baeldung/scala/spark/rdd/PrintRDDTest.scala rename to spark-scala/src/test/scala-2/com/baeldung/scala/spark/rdd/PrintRDDUnitTest.scala index 31bc24a0c..ee78d3de7 100644 --- a/spark-scala/src/test/scala-2/com/baeldung/scala/spark/rdd/PrintRDDTest.scala +++ b/spark-scala/src/test/scala-2/com/baeldung/scala/spark/rdd/PrintRDDUnitTest.scala @@ -4,7 +4,7 @@ import org.apache.spark.sql.SparkSession import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.must.Matchers -class PrintRDDTest extends AnyFlatSpec with Matchers { +class PrintRDDUnitTest extends AnyFlatSpec with Matchers { val spark: SparkSession = SparkSession.builder.master("local").getOrCreate "default rdd" should "have size six" in { diff --git a/spark-scala/src/test/scala-2/com/baeldung/scala/spark/rdd/RDDTutorialTest.scala b/spark-scala/src/test/scala-2/com/baeldung/scala/spark/rdd/RDDTutorialUnitTest.scala similarity index 96% rename from spark-scala/src/test/scala-2/com/baeldung/scala/spark/rdd/RDDTutorialTest.scala rename to spark-scala/src/test/scala-2/com/baeldung/scala/spark/rdd/RDDTutorialUnitTest.scala index 82578f632..eef5dbfaf 100644 --- a/spark-scala/src/test/scala-2/com/baeldung/scala/spark/rdd/RDDTutorialTest.scala +++ b/spark-scala/src/test/scala-2/com/baeldung/scala/spark/rdd/RDDTutorialUnitTest.scala @@ -4,7 +4,7 @@ import org.apache.spark.rdd.RDD import org.apache.spark.sql.SparkSession import org.scalatest.flatspec.AnyFlatSpec -class RDDTutorialTest extends AnyFlatSpec { +class RDDTutorialUnitTest extends AnyFlatSpec { val spark: SparkSession = SparkSession.builder.master("local").getOrCreate val sc = spark.sparkContext diff --git a/spark-scala/src/test/scala-2/com/baeldung/scala/sparkjoin/SparkJoinsTest.scala b/spark-scala/src/test/scala-2/com/baeldung/scala/sparkjoin/SparkJoinsUnitTest.scala similarity index 97% rename from spark-scala/src/test/scala-2/com/baeldung/scala/sparkjoin/SparkJoinsTest.scala rename to spark-scala/src/test/scala-2/com/baeldung/scala/sparkjoin/SparkJoinsUnitTest.scala index 9c32ddf56..8c9279d1c 100644 --- a/spark-scala/src/test/scala-2/com/baeldung/scala/sparkjoin/SparkJoinsTest.scala +++ b/spark-scala/src/test/scala-2/com/baeldung/scala/sparkjoin/SparkJoinsUnitTest.scala @@ -7,7 +7,7 @@ import org.apache.spark.sql.SparkSession import org.apache.spark.sql.Column import com.baeldung.scala.sparkjoin.SparkJoins._ -class SparkJoinsSpec extends AnyFlatSpec with Matchers { +class SparkJoinsUnitTest extends AnyFlatSpec with Matchers { val spark = SparkSession.builder().appName("Joins").master("local").getOrCreate() diff --git a/validate.sbt b/validate.sbt index 2954c57b2..031f3ad0c 100644 --- a/validate.sbt +++ b/validate.sbt @@ -1,15 +1,43 @@ -lazy val validateTestNames = taskKey[Int]("Validate test naming convention") -val inAllTest = ScopeFilter(inAnyProject, inConfigurations(Test)) -validateTestNames := { - val testFileFullPath: Seq[Seq[String]] = definedTestNames.all(inAllTest).value +lazy val validateUnitTestNames = + taskKey[Int]("Validate test naming convention for unit tests") +val inAllUnitTest = ScopeFilter(inAnyProject, inConfigurations(Test)) +validateUnitTestNames := { + val testFileFullPath: Seq[Seq[String]] = + definedTestNames.all(inAllUnitTest).value val log = streams.value.log - val invalidTestName = testFileFullPath.flatMap(_.filterNot(_.endsWith("UnitTest"))) + val invalidTestName = testFileFullPath + .flatMap(_.filterNot(_.endsWith("UnitTest"))) + .filterNot(_.trim.isEmpty) val invalidTestNameFormatted = invalidTestName.mkString("\n") - log.error( - s"""Found unit test files not matching with naming standards. Unit test files must end with UnitTest.scala. - | Invalid files: - | ${invalidTestNameFormatted} - |""".stripMargin) - require(invalidTestName.isEmpty, s"Found ${invalidTestName.size} tests that doesn't follow naming convention!") + if (invalidTestName.nonEmpty) { + log.error( + s"""Found unit test files not matching with naming standards. Unit test files must end with UnitTest.scala. + | Invalid files: + | ${invalidTestNameFormatted} + |""".stripMargin + ) + } + require( + invalidTestName.isEmpty, + s"Found ${invalidTestName.size} tests that doesn't follow naming convention!" + ) 0 -} \ No newline at end of file +} + +// for integration tests +// +//lazy val validateIntegrationTestNames = taskKey[Int]("Validate test naming convention for unit tests") +//val inAllIntegrationTest = ScopeFilter(inAnyProject, inConfigurations(IntegrationTest)) +//validateIntegrationTestNames := { +// val testFileFullPath: Seq[Seq[String]] = definedTestNames.all(inAllIntegrationTest).value +// val log = streams.value.log +// val invalidTestName = testFileFullPath.flatMap(_.filterNot(_.endsWith("IntegrationTest"))).filterNot(_.trim.isEmpty) +// val invalidTestNameFormatted = invalidTestName.mkString("\n") +// log.error( +// s"""Found integration test files not matching with naming standards. Integration test files must end with IntegrationTest.scala. +// | Invalid files: +// | ${invalidTestNameFormatted} +// |""".stripMargin) +// require(invalidTestName.isEmpty, s"Found ${invalidTestName.size} tests that doesn't follow naming convention!") +// 0 +//} diff --git a/zio-2/src/test/scala/com/baeldung/scala/zio/aspects/ZAspectsSpec.scala b/zio-2/src/test/scala/com/baeldung/scala/zio/aspects/ZAspectsUnitTest.scala similarity index 89% rename from zio-2/src/test/scala/com/baeldung/scala/zio/aspects/ZAspectsSpec.scala rename to zio-2/src/test/scala/com/baeldung/scala/zio/aspects/ZAspectsUnitTest.scala index 9e557fabb..446b088a8 100644 --- a/zio-2/src/test/scala/com/baeldung/scala/zio/aspects/ZAspectsSpec.scala +++ b/zio-2/src/test/scala/com/baeldung/scala/zio/aspects/ZAspectsUnitTest.scala @@ -1,11 +1,11 @@ package com.baeldung.scala.zio.aspects -import com.baeldung.scala.zio.aspects.ZAspectsSpec.test +import com.baeldung.scala.zio.aspects.ZAspectsUnitTest.test import zio.* import zio.test.* import zio.test.TestAspect.{aroundWith, ignore, nonFlaky, timeout} -object ZAspectsSpec extends ZIOSpecDefault { +object ZAspectsUnitTest extends ZIOSpecDefault { override def spec = suite("ZAspectSpec")( test("Tautology test") { assertTrue(true) diff --git a/zio/src/test/scala/com/baeldung/scala/zio/createeffects/CreateZIOEffectsSpec.scala b/zio/src/test/scala/com/baeldung/scala/zio/createeffects/CreateZIOEffectsUnitTest.scala similarity index 98% rename from zio/src/test/scala/com/baeldung/scala/zio/createeffects/CreateZIOEffectsSpec.scala rename to zio/src/test/scala/com/baeldung/scala/zio/createeffects/CreateZIOEffectsUnitTest.scala index 7dbc414ab..9a6f577b6 100644 --- a/zio/src/test/scala/com/baeldung/scala/zio/createeffects/CreateZIOEffectsSpec.scala +++ b/zio/src/test/scala/com/baeldung/scala/zio/createeffects/CreateZIOEffectsUnitTest.scala @@ -7,7 +7,7 @@ import com.baeldung.scala.zio.createeffects.CreateZIOEffects._ import scala.concurrent.Future import scala.util.Try -object CreateZIOEffectsSpec extends ZIOSpecDefault { +object CreateZIOEffectsUnitTest extends ZIOSpecDefault { override def spec = suite("CreateZIOEffects")( test("fromValue") { for { diff --git a/zio/src/test/scala/com/baeldung/scala/zio/errorhandling/ErrorHandlingSpec.scala b/zio/src/test/scala/com/baeldung/scala/zio/errorhandling/ErrorHandlingUnitTest.scala similarity index 94% rename from zio/src/test/scala/com/baeldung/scala/zio/errorhandling/ErrorHandlingSpec.scala rename to zio/src/test/scala/com/baeldung/scala/zio/errorhandling/ErrorHandlingUnitTest.scala index c19cd66c7..0745baa06 100644 --- a/zio/src/test/scala/com/baeldung/scala/zio/errorhandling/ErrorHandlingSpec.scala +++ b/zio/src/test/scala/com/baeldung/scala/zio/errorhandling/ErrorHandlingUnitTest.scala @@ -4,10 +4,10 @@ import zio.{Scope, ZIO} import zio.test.{Spec, TestEnvironment, ZIOSpecDefault} import zio.test._ -object ErrorHandlingSpec extends ZIOSpecDefault { +object ErrorHandlingUnitTest extends ZIOSpecDefault { val successResult = "success" override def spec: Spec[TestEnvironment with Scope, Any] = - suite("ErrorHandlingSpec")( + suite("ErrorHandlingUnitTest")( test("usingEither returns Either of String") { for { result <- ErrorHandling.usingEither diff --git a/zio/src/test/scala/com/baeldung/scala/zio/prelude/averages/CombinedAverageTest.scala b/zio/src/test/scala/com/baeldung/scala/zio/prelude/averages/CombinedAverageUnitTest.scala similarity index 94% rename from zio/src/test/scala/com/baeldung/scala/zio/prelude/averages/CombinedAverageTest.scala rename to zio/src/test/scala/com/baeldung/scala/zio/prelude/averages/CombinedAverageUnitTest.scala index e9a65de1a..296765c47 100644 --- a/zio/src/test/scala/com/baeldung/scala/zio/prelude/averages/CombinedAverageTest.scala +++ b/zio/src/test/scala/com/baeldung/scala/zio/prelude/averages/CombinedAverageUnitTest.scala @@ -4,7 +4,7 @@ import com.baeldung.scala.zio.prelude.averages.CombinedAverage.* import org.scalatest.wordspec.AnyWordSpec import zio.prelude.AssociativeOps -class CombinedAverageTest extends AnyWordSpec { +class CombinedAverageUnitTest extends AnyWordSpec { val avg1: Double = (2.0 + 3.0 + 4.0) / 3 // avg1 is 3.0 val avg2: Double = (10.0 + 11.0) / 2 // avg2 is 10.5 diff --git a/zio/src/test/scala/com/baeldung/scala/zio/prelude/mapreduce/MapReduceTest.scala b/zio/src/test/scala/com/baeldung/scala/zio/prelude/mapreduce/MapReduceUnitTest.scala similarity index 94% rename from zio/src/test/scala/com/baeldung/scala/zio/prelude/mapreduce/MapReduceTest.scala rename to zio/src/test/scala/com/baeldung/scala/zio/prelude/mapreduce/MapReduceUnitTest.scala index b3564a86d..407233f1e 100644 --- a/zio/src/test/scala/com/baeldung/scala/zio/prelude/mapreduce/MapReduceTest.scala +++ b/zio/src/test/scala/com/baeldung/scala/zio/prelude/mapreduce/MapReduceUnitTest.scala @@ -2,7 +2,7 @@ package com.baeldung.scala.zio.prelude.mapreduce import org.scalatest.wordspec.AnyWordSpec -class MapReduceTest extends AnyWordSpec { +class MapReduceUnitTest extends AnyWordSpec { import MapReduce._ diff --git a/zio/src/test/scala/com/baeldung/scala/zio/prelude/voting/VotingTest.scala b/zio/src/test/scala/com/baeldung/scala/zio/prelude/voting/VotingUnitTest.scala similarity index 94% rename from zio/src/test/scala/com/baeldung/scala/zio/prelude/voting/VotingTest.scala rename to zio/src/test/scala/com/baeldung/scala/zio/prelude/voting/VotingUnitTest.scala index e6a9f2277..01b3dded5 100644 --- a/zio/src/test/scala/com/baeldung/scala/zio/prelude/voting/VotingTest.scala +++ b/zio/src/test/scala/com/baeldung/scala/zio/prelude/voting/VotingUnitTest.scala @@ -2,7 +2,7 @@ package com.baeldung.scala.zio.prelude.voting import org.scalatest.wordspec.AnyWordSpec -class VotingTest extends AnyWordSpec { +class VotingUnitTest extends AnyWordSpec { import Voting._ diff --git a/zio/src/test/scala/com/baeldung/scala/zio/repeatretry/RepeatRetryTest.scala b/zio/src/test/scala/com/baeldung/scala/zio/repeatretry/RepeatRetryUnitTest.scala similarity index 94% rename from zio/src/test/scala/com/baeldung/scala/zio/repeatretry/RepeatRetryTest.scala rename to zio/src/test/scala/com/baeldung/scala/zio/repeatretry/RepeatRetryUnitTest.scala index 17e096c67..08c3fde1e 100644 --- a/zio/src/test/scala/com/baeldung/scala/zio/repeatretry/RepeatRetryTest.scala +++ b/zio/src/test/scala/com/baeldung/scala/zio/repeatretry/RepeatRetryUnitTest.scala @@ -3,7 +3,7 @@ package com.baeldung.scala.zio.repeatretry import zio._ import zio.test._ -object RepeatRetryTest extends ZIOSpecDefault { +object RepeatRetryUnitTest extends ZIOSpecDefault { override def spec = suite("CreateZIOEffects")( test("execute retry and end with default handler") { val failingZIO = ZIO.fail(new Exception("Fail!")) diff --git a/zio/src/test/scala/com/bealdung/scala/zio/testingapplications/TestingApplicationsExamplesSpec.scala b/zio/src/test/scala/com/bealdung/scala/zio/testingapplications/TestingApplicationsExamplesUnitTest.scala similarity index 92% rename from zio/src/test/scala/com/bealdung/scala/zio/testingapplications/TestingApplicationsExamplesSpec.scala rename to zio/src/test/scala/com/bealdung/scala/zio/testingapplications/TestingApplicationsExamplesUnitTest.scala index cd6ac6a8b..0085f04ab 100644 --- a/zio/src/test/scala/com/bealdung/scala/zio/testingapplications/TestingApplicationsExamplesSpec.scala +++ b/zio/src/test/scala/com/bealdung/scala/zio/testingapplications/TestingApplicationsExamplesUnitTest.scala @@ -5,8 +5,8 @@ import zio.test._ import zio.test.Assertion._ import com.baeldung.scala.zio.testingapplications.TestingApplicationsExamples._ -object TestingApplicationsExamplesSpec extends ZIOSpecDefault { - override def spec = suite("TestingApplicationsExamplesSpec")( +object TestingApplicationsExamplesUnitTest extends ZIOSpecDefault { + override def spec = suite("TestingApplicationsExamplesUnitTest")( test("returnString correctly returns string") { val testString = "Hello World!" for { diff --git a/zio3/src/test/scala-3/com/baeldung/scala/zio/httpapp/app/RecipeHttpAppSpec.scala b/zio3/src/test/scala-3/com/baeldung/scala/zio/httpapp/app/RecipeHttpAppUnitTest.scala similarity index 100% rename from zio3/src/test/scala-3/com/baeldung/scala/zio/httpapp/app/RecipeHttpAppSpec.scala rename to zio3/src/test/scala-3/com/baeldung/scala/zio/httpapp/app/RecipeHttpAppUnitTest.scala From b32a366e0a5bdb19d24bdf49e5613f773ed3b120 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 15 May 2024 12:44:25 +0200 Subject: [PATCH 0586/1318] scalafmt ran --- internal-scripts/ClassRenamer.scala | 9 +++++--- sbt-standalone/build.sbt | 17 ++++++++------- .../project/CompatibleJavaVersion.scala | 19 +++++++++-------- sbt-standalone/src/main/scala/Main.scala | 2 +- .../scala/com/baeldung/finch/todo/Main.scala | 21 +++++++++---------- .../persistence/BankAccountUnitTest.scala | 4 +++- .../routetesting/AkkaRoutesUnitTest.scala | 5 ++++- .../scala/akka/TestServiceUnitTest.scala | 5 ++++- .../scala/junit4/TypesTestUnitTest.scala | 4 +++- .../hello-rest/src/main/scala/HelloRest.scala | 6 +++--- .../src/main/scala/HelloWorld.scala | 4 ++-- .../src/test/scala/HelloWorldUnitTest.scala | 4 ++-- 12 files changed, 57 insertions(+), 43 deletions(-) diff --git a/internal-scripts/ClassRenamer.scala b/internal-scripts/ClassRenamer.scala index 3aa99b706..21c21b0aa 100644 --- a/internal-scripts/ClassRenamer.scala +++ b/internal-scripts/ClassRenamer.scala @@ -1,6 +1,6 @@ /** This is an internal scala-cli script written just to reduce manual work of - * renaming files and class names to follow naming standards. This doesn't fully correct all the class names, - * however reduces the manual effort by 90%. + * renaming files and class names to follow naming standards. This doesn't + * fully correct all the class names, however reduces the manual effort by 90%. */ //> using toolkit default import os._ @@ -14,7 +14,10 @@ object RenameClassNames { .filter(_.toString.contains("src/test/scala")) .filterNot(_.toString.endsWith("UnitTest.scala")) .filter(f => - f.toString.endsWith("Test.scala") || f.toString.endsWith("Spec.scala") || f.toString.endsWith("Tests.scala") || f.toString.endsWith("Suite.scala") + f.toString.endsWith("Test.scala") || f.toString.endsWith( + "Spec.scala" + ) || f.toString.endsWith("Tests.scala") || f.toString + .endsWith("Suite.scala") ) .foreach { _filePath => val _fileName = _filePath.last diff --git a/sbt-standalone/build.sbt b/sbt-standalone/build.sbt index 2764412a6..7e73b1708 100644 --- a/sbt-standalone/build.sbt +++ b/sbt-standalone/build.sbt @@ -10,14 +10,15 @@ scalacOptions += "-target:17" // Setting source and target for Java javacOptions ++= Seq("-source", "17", "-target", "17") - // Enforcing the minimum JVM version initialize := { - val _ = initialize.value // Ensure previous initializations are run - - val required = VersionNumber("17") - val current = VersionNumber(sys.props("java.specification.version")) - println(current) - assert(CompatibleJavaVersion(current, required), s"Java $required or above is required to run this project.") + val _ = initialize.value // Ensure previous initializations are run + + val required = VersionNumber("17") + val current = VersionNumber(sys.props("java.specification.version")) + println(current) + assert( + CompatibleJavaVersion(current, required), + s"Java $required or above is required to run this project." + ) } - diff --git a/sbt-standalone/project/CompatibleJavaVersion.scala b/sbt-standalone/project/CompatibleJavaVersion.scala index fd640e583..b9b61fe24 100644 --- a/sbt-standalone/project/CompatibleJavaVersion.scala +++ b/sbt-standalone/project/CompatibleJavaVersion.scala @@ -2,14 +2,15 @@ import sbt._ // Define a custom object for Java specification version compatibility object CompatibleJavaVersion extends VersionNumberCompatibility { - def name = "Java specification compatibility" + def name = "Java specification compatibility" - def isCompatible(current: VersionNumber, required: VersionNumber): Boolean = - current.numbers.zip(required.numbers) - .foldRight(required.numbers.size <= current.numbers.size) { - case ((curr, req), acc) => (curr > req) || (curr == req && acc) - } + def isCompatible(current: VersionNumber, required: VersionNumber): Boolean = + current.numbers + .zip(required.numbers) + .foldRight(required.numbers.size <= current.numbers.size) { + case ((curr, req), acc) => (curr > req) || (curr == req && acc) + } - def apply(current: VersionNumber, required: VersionNumber): Boolean = - isCompatible(current, required) -} \ No newline at end of file + def apply(current: VersionNumber, required: VersionNumber): Boolean = + isCompatible(current, required) +} diff --git a/sbt-standalone/src/main/scala/Main.scala b/sbt-standalone/src/main/scala/Main.scala index e011393f4..7a5149ffd 100644 --- a/sbt-standalone/src/main/scala/Main.scala +++ b/sbt-standalone/src/main/scala/Main.scala @@ -1,3 +1,3 @@ object Main extends App { println("Hello from Scala!") -} \ No newline at end of file +} diff --git a/scala-2-modules/scala2-libraries/src/finch/todo/src/main/scala/com/baeldung/finch/todo/Main.scala b/scala-2-modules/scala2-libraries/src/finch/todo/src/main/scala/com/baeldung/finch/todo/Main.scala index 119ea51af..f3fb1036d 100644 --- a/scala-2-modules/scala2-libraries/src/finch/todo/src/main/scala/com/baeldung/finch/todo/Main.scala +++ b/scala-2-modules/scala2-libraries/src/finch/todo/src/main/scala/com/baeldung/finch/todo/Main.scala @@ -55,17 +55,16 @@ object Main extends IOApp { } yield Created(created) } - val getTodo: Endpoint[IO, Todo] = get(todosPath :: path[Int]) { - id: Int => - for { - todos <- sql"select * from todo where id = $id" - .query[Todo] - .to[Set] - .transact(xa) - } yield todos.headOption match { - case None => NotFound(new Exception("Record not found")) - case Some(todo) => Ok(todo) - } + val getTodo: Endpoint[IO, Todo] = get(todosPath :: path[Int]) { id: Int => + for { + todos <- sql"select * from todo where id = $id" + .query[Todo] + .to[Set] + .transact(xa) + } yield todos.headOption match { + case None => NotFound(new Exception("Record not found")) + case Some(todo) => Ok(todo) + } } val updateTodo: Endpoint[IO, Todo] = diff --git a/scala-akka-2/src/test/scala-2/com/baeldung/scala/akka_2/persistence/BankAccountUnitTest.scala b/scala-akka-2/src/test/scala-2/com/baeldung/scala/akka_2/persistence/BankAccountUnitTest.scala index 3f124d357..7e30da328 100644 --- a/scala-akka-2/src/test/scala-2/com/baeldung/scala/akka_2/persistence/BankAccountUnitTest.scala +++ b/scala-akka-2/src/test/scala-2/com/baeldung/scala/akka_2/persistence/BankAccountUnitTest.scala @@ -4,7 +4,9 @@ import akka.actor.testkit.typed.scaladsl.ScalaTestWithActorTestKit import akka.pattern.StatusReply import org.scalatest.wordspec.AnyWordSpecLike -class BankAccountUnitTest extends ScalaTestWithActorTestKit with AnyWordSpecLike { +class BankAccountUnitTest + extends ScalaTestWithActorTestKit + with AnyWordSpecLike { "A Bank Account" should { "deposit money to a bank account" in { diff --git a/scala-akka-2/src/test/scala/com/baeldung/scala/akka/http/routetesting/AkkaRoutesUnitTest.scala b/scala-akka-2/src/test/scala/com/baeldung/scala/akka/http/routetesting/AkkaRoutesUnitTest.scala index afa63035c..2de25508d 100644 --- a/scala-akka-2/src/test/scala/com/baeldung/scala/akka/http/routetesting/AkkaRoutesUnitTest.scala +++ b/scala-akka-2/src/test/scala/com/baeldung/scala/akka/http/routetesting/AkkaRoutesUnitTest.scala @@ -7,7 +7,10 @@ import com.baeldung.scala.akka.http.routetesting.AkkaRoutes.routes import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers -class AkkaRoutesUnitTest extends AnyFlatSpec with Matchers with ScalatestRouteTest { +class AkkaRoutesUnitTest + extends AnyFlatSpec + with Matchers + with ScalatestRouteTest { "/hello" should "return Hello World!" in { Get("/hello") ~> routes ~> check { status shouldEqual StatusCodes.OK diff --git a/scala-akka-3/src/test/scala/com/baeldung/scala/akka/TestServiceUnitTest.scala b/scala-akka-3/src/test/scala/com/baeldung/scala/akka/TestServiceUnitTest.scala index 7b2874dca..5a7eeab4a 100644 --- a/scala-akka-3/src/test/scala/com/baeldung/scala/akka/TestServiceUnitTest.scala +++ b/scala-akka-3/src/test/scala/com/baeldung/scala/akka/TestServiceUnitTest.scala @@ -5,7 +5,10 @@ import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpec import akka.actor.testkit.typed.scaladsl.ActorTestKit -class TestServiceUnitTest extends AnyWordSpec with BeforeAndAfterAll with Matchers { +class TestServiceUnitTest + extends AnyWordSpec + with BeforeAndAfterAll + with Matchers { val testKit = ActorTestKit() implicit val system = testKit.system diff --git a/scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/TypesTestUnitTest.scala b/scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/TypesTestUnitTest.scala index b6e50c4fe..147738d12 100644 --- a/scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/TypesTestUnitTest.scala +++ b/scala-test-junit4/src/test/scala/com/baeldung/scala/junit4/TypesTestUnitTest.scala @@ -4,5 +4,7 @@ import org.junit.runner.RunWith import org.junit.runners.Suite @RunWith(classOf[Suite]) -@Suite.SuiteClasses(Array(classOf[IntJunitUnitTest], classOf[StringJunitUnitTest])) +@Suite.SuiteClasses( + Array(classOf[IntJunitUnitTest], classOf[StringJunitUnitTest]) +) class TypesTestUnitTest diff --git a/scala-with-maven/hello-rest/src/main/scala/HelloRest.scala b/scala-with-maven/hello-rest/src/main/scala/HelloRest.scala index d81051568..2eeb09043 100644 --- a/scala-with-maven/hello-rest/src/main/scala/HelloRest.scala +++ b/scala-with-maven/hello-rest/src/main/scala/HelloRest.scala @@ -2,6 +2,6 @@ import org.http4s.HttpRoutes import org.http4s.dsl.io._ import cats.effect._ -val helloWorldService = HttpRoutes.of[IO] { - case GET -> Root / "hello" => Ok("Hello, World!") -} \ No newline at end of file +val helloWorldService = HttpRoutes.of[IO] { case GET -> Root / "hello" => + Ok("Hello, World!") +} diff --git a/scala-with-maven/hello-world/src/main/scala/HelloWorld.scala b/scala-with-maven/hello-world/src/main/scala/HelloWorld.scala index d724412ee..30b197e49 100644 --- a/scala-with-maven/hello-world/src/main/scala/HelloWorld.scala +++ b/scala-with-maven/hello-world/src/main/scala/HelloWorld.scala @@ -5,5 +5,5 @@ object HelloWorld { def message: String = "Hello, World!" def main(args: Array[String]): Unit = println(message) - -} \ No newline at end of file + +} diff --git a/scala-with-maven/hello-world/src/test/scala/HelloWorldUnitTest.scala b/scala-with-maven/hello-world/src/test/scala/HelloWorldUnitTest.scala index f5b5558aa..edb69636b 100644 --- a/scala-with-maven/hello-world/src/test/scala/HelloWorldUnitTest.scala +++ b/scala-with-maven/hello-world/src/test/scala/HelloWorldUnitTest.scala @@ -4,9 +4,9 @@ import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers class HelloWorldUnitTest extends AnyFlatSpec with Matchers { - + "The HelloWorld object" should "say hello" in { val greeting = HelloWorld.message greeting shouldEqual "Hello, World!" } -} \ No newline at end of file +} From cdc94cde6ae254f73b5980f5286bc9f340ff6a19 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Thu, 16 May 2024 08:28:26 +0200 Subject: [PATCH 0587/1318] Added extra messages for error --- validate.sbt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/validate.sbt b/validate.sbt index 031f3ad0c..fe6eef58e 100644 --- a/validate.sbt +++ b/validate.sbt @@ -11,15 +11,18 @@ validateUnitTestNames := { val invalidTestNameFormatted = invalidTestName.mkString("\n") if (invalidTestName.nonEmpty) { log.error( - s"""Found unit test files not matching with naming standards. Unit test files must end with UnitTest.scala. + s""" *************************************************** + | Found unit test files not matching with naming standards. Unit test files must end with UnitTest.scala. + | Refer to README.md file in the GitHub for more information. | Invalid files: | ${invalidTestNameFormatted} + | *************************************************** |""".stripMargin ) } require( invalidTestName.isEmpty, - s"Found ${invalidTestName.size} tests that doesn't follow naming convention!" + s"Found ${invalidTestName.size} tests that doesn't follow naming convention, check the logs above for list of files!" ) 0 } From 0576c5bb97517f76a89d76c1cad91fa1a8886b0a Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Thu, 16 May 2024 22:16:24 +0200 Subject: [PATCH 0588/1318] Slight correction in error message for clarity --- validate.sbt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/validate.sbt b/validate.sbt index fe6eef58e..f7dcaae2a 100644 --- a/validate.sbt +++ b/validate.sbt @@ -12,17 +12,17 @@ validateUnitTestNames := { if (invalidTestName.nonEmpty) { log.error( s""" *************************************************** - | Found unit test files not matching with naming standards. Unit test files must end with UnitTest.scala. - | Refer to README.md file in the GitHub for more information. - | Invalid files: - | ${invalidTestNameFormatted} - | *************************************************** + |Found unit test classes not matching with naming standards. Unit test class must end with `UnitTest`. + |Refer to README.md file in the GitHub for more information. + |Invalid test classes: + |${invalidTestNameFormatted} + |*************************************************** |""".stripMargin ) } require( invalidTestName.isEmpty, - s"Found ${invalidTestName.size} tests that doesn't follow naming convention, check the logs above for list of files!" + s"Found ${invalidTestName.size} tests that doesn't follow naming convention, check the logs above for list of test classes!" ) 0 } From 72e4db01031eec0819eb7676104407ba7cd85aea Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 17 May 2024 00:16:20 +0000 Subject: [PATCH 0589/1318] Update aws-java-sdk-s3 from 1.12.718 to 1.12.724 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 211cdfa3c..783b52b47 100644 --- a/build.sbt +++ b/build.sbt @@ -517,7 +517,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) scalaMock, "com.lihaoyi" %% "utest" % "0.8.3" % "test", munitDep, - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.718" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.724" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.25.48" From 3cb429d6f822d39a5642ce3739a3f1c8d08e49ac Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 17 May 2024 00:16:31 +0000 Subject: [PATCH 0590/1318] Update shapeless from 2.3.10 to 2.3.11 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 211cdfa3c..24977ae81 100644 --- a/build.sbt +++ b/build.sbt @@ -324,7 +324,7 @@ lazy val scala_akka_3 = (project in file("scala-akka-3")) val monocleVersion = "2.1.0" val slickVersion = "3.5.1" -val shapelessVersion = "2.3.10" +val shapelessVersion = "2.3.11" val scalazVersion = "7.3.8" val fs2Version = "3.10.2" val reactiveMongo = "1.1.0-RC12" From ffe7bdafb21b2c27083c4871a1c3ebc3afda72ec Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 17 May 2024 00:16:45 +0000 Subject: [PATCH 0591/1318] Update tapir-akka-http-server, tapir-core, ... from 1.10.6 to 1.10.7 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index 42425a841..5aec6f86c 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.10.6" +val tapirV = "1.10.7" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From 05470cb7568c2eaa4b5eec1919c686b9334bb8d0 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 17 May 2024 00:17:05 +0000 Subject: [PATCH 0592/1318] Update de.flapdoodle.embed.mongo from 4.13.0 to 4.13.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 211cdfa3c..3f2629157 100644 --- a/build.sbt +++ b/build.sbt @@ -10,7 +10,7 @@ val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.4" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.4" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV val logback = "ch.qos.logback" % "logback-classic" % "1.5.6" -val embedMongoVersion = "4.13.0" +val embedMongoVersion = "4.13.1" val AkkaVersion = "2.8.5" val AkkaHttpVersion = "10.5.0" From 5ec1f4a270cba4ed7144d7fa44f0d66b91f380ce Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 17 May 2024 00:17:16 +0000 Subject: [PATCH 0593/1318] Update zio, zio-streams, zio-test, ... from 2.0.22 to 2.1.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 211cdfa3c..9af5193a4 100644 --- a/build.sbt +++ b/build.sbt @@ -22,7 +22,7 @@ val scalaTestDeps = Seq( ) val scalaMock = "org.scalamock" %% "scalamock" % "6.0.0" % Test -val zioVersion = "2.0.22" +val zioVersion = "2.1.1" lazy val scala_core = (project in file("scala-core-modules/scala-core")) .settings( From b5baf97369d55b106ff1169718da13a2020dbc86 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 17 May 2024 00:18:07 +0000 Subject: [PATCH 0594/1318] Update jetty-webapp from 11.0.20 to 11.0.21 --- scalatra/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scalatra/build.sbt b/scalatra/build.sbt index e3daa7dde..a082aedb6 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -9,7 +9,7 @@ libraryDependencies ++= Seq( "org.scalatra" %% "scalatra" % ScalatraVersion, "org.scalatra" %% "scalatra-scalatest" % ScalatraVersion % "test", "ch.qos.logback" % "logback-classic" % "1.5.6" % "runtime", - "org.eclipse.jetty" % "jetty-webapp" % "11.0.20" % "container", + "org.eclipse.jetty" % "jetty-webapp" % "11.0.21" % "container", "javax.servlet" % "javax.servlet-api" % "4.0.1" % "provided", "org.scalatra" %% "scalatra-auth" % ScalatraVersion, "org.scalatra" %% "scalatra-json" % "2.8.4", From 4245bfaae3328db46eb007d5d483e274db08d35a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 17 May 2024 00:18:27 +0000 Subject: [PATCH 0595/1318] Update mockito-core from 5.11.0 to 5.12.0 --- play-scala/caching-in-play/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/play-scala/caching-in-play/build.sbt b/play-scala/caching-in-play/build.sbt index ca0e8af15..58f7dafcd 100644 --- a/play-scala/caching-in-play/build.sbt +++ b/play-scala/caching-in-play/build.sbt @@ -11,6 +11,6 @@ libraryDependencies += guice libraryDependencies += caffeine libraryDependencies += ws libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % Test -libraryDependencies += "org.mockito" % "mockito-core" % "5.11.0" % Test +libraryDependencies += "org.mockito" % "mockito-core" % "5.12.0" % Test PlayKeys.devSettings += "play.server.http.port" -> "9000" From 7f07a51a03dab2cdd021a6f61c1674a0af06a3b9 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 17 May 2024 00:18:50 +0000 Subject: [PATCH 0596/1318] Update scala3-library from 3.4.1 to 3.4.2 --- project/ScalaVersions.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/ScalaVersions.scala b/project/ScalaVersions.scala index 89f51f838..4b0f8690f 100644 --- a/project/ScalaVersions.scala +++ b/project/ScalaVersions.scala @@ -1,6 +1,6 @@ object ScalaVersions { val scala2Version = "2.13.14" - val scala3Version = "3.4.1" + val scala3Version = "3.4.2" @deprecated( "Use Scala 2.13 or Scala 3. Don't use 2.12 unless it is a specific feature in 2.12." ) From 7160b6375a41d90ec9d4c6dc6a3ff3abb9283636 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 17 May 2024 00:19:05 +0000 Subject: [PATCH 0597/1318] Update skunk-core from 0.6.3 to 0.6.4 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 211cdfa3c..6d1dcf97e 100644 --- a/build.sbt +++ b/build.sbt @@ -538,7 +538,7 @@ lazy val scala_libraries_persistence = libraryDependencies ++= Seq( "com.typesafe.slick" %% "slick" % slickVersion, "com.h2database" % "h2" % "2.2.224", - "org.tpolecat" %% "skunk-core" % "0.6.3", + "org.tpolecat" %% "skunk-core" % "0.6.4", doobieCore, doobiePGDep, "org.reactivemongo" %% "reactivemongo" % reactiveMongo, From 630514f5a017d494e252440dcfe8d029713ea13c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 17 May 2024 00:19:21 +0000 Subject: [PATCH 0598/1318] Update s3 from 2.25.48 to 2.25.54 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 211cdfa3c..69f2a5bba 100644 --- a/build.sbt +++ b/build.sbt @@ -520,7 +520,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.718" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.25.48" + "software.amazon.awssdk" % "s3" % "2.25.54" ), Defaults.itSettings, IntegrationTest / fork := true From 5c48066bff4d2727b3dbf6b9ab5c4e8c65865c61 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 18 May 2024 11:16:13 +0200 Subject: [PATCH 0599/1318] updated scala cli example --- scala-sbt/app-packaging/scalacli-app/ScalaCliApp.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scala-sbt/app-packaging/scalacli-app/ScalaCliApp.scala b/scala-sbt/app-packaging/scalacli-app/ScalaCliApp.scala index 17341f95d..8cff03a13 100644 --- a/scala-sbt/app-packaging/scalacli-app/ScalaCliApp.scala +++ b/scala-sbt/app-packaging/scalacli-app/ScalaCliApp.scala @@ -1,6 +1,6 @@ -//> using scala "3.1.0" +//> using scala 3.4.2 +//> using dep com.lihaoyi::os-lib:0.10.1 package com.baeldung.scalacli -import $dep.`com.lihaoyi::os-lib:0.7.8` import os._ object ScalaCliApp { From 295dd0c47323e29f678ef2bd28d21dc0ebe2d674 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 18 May 2024 20:54:09 +0200 Subject: [PATCH 0600/1318] more test --- .../scala/filtertakewhile/FilterAndTakeWhileUnitTest.scala | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/filtertakewhile/FilterAndTakeWhileUnitTest.scala b/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/filtertakewhile/FilterAndTakeWhileUnitTest.scala index ac10a4ee5..23cddb503 100644 --- a/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/filtertakewhile/FilterAndTakeWhileUnitTest.scala +++ b/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/filtertakewhile/FilterAndTakeWhileUnitTest.scala @@ -31,6 +31,12 @@ class FilterAndTakeWhileUnitTest extends AnyWordSpec with Matchers { numbersBeforeFirstEven shouldBe List(1) } + "select different list of elements if the list item changes" in { + val numbers = List(1, 3, 4, 5, 6) + val numbersBeforeFirstEven = numbers.takeWhile(_ % 2 != 0) + numbersBeforeFirstEven shouldBe List(1, 3) + } + "successfully get result from an infinite collection" in { val infiniteNumbers = LazyList.from(1) val first100 = infiniteNumbers.takeWhile(_ < 100).toList From fd9b55967706b5a63ba6949a7939728df2682cbd Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 18 May 2024 21:29:38 +0200 Subject: [PATCH 0601/1318] Added sample for string interpolation matching --- .../patternmatching/PatternMatching.scala | 9 +++++++ .../PatternMatchingUnitTest.scala | 24 +++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/patternmatching/PatternMatching.scala b/scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/patternmatching/PatternMatching.scala index 2769b27a1..521edbd0c 100644 --- a/scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/patternmatching/PatternMatching.scala +++ b/scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/patternmatching/PatternMatching.scala @@ -91,6 +91,15 @@ class PatternMatching { } } + def stringInterpolationMatching(toMatch: String): String = { + toMatch match { + case s"$firstName.$lastName@$domain.$extension" => + s"Hey ${firstName.capitalize} ${lastName.capitalize}, $domain.$extension is your email domain" + case s"$day-$month-${year}T$time" => s"$month $day, $year" + case _ => "unknown pattern" + } + } + def optionsPatternMatching(option: Option[String]): String = { option match { case Some(value) => s"I'm not an empty option. Value $value" diff --git a/scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/patternmatching/PatternMatchingUnitTest.scala b/scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/patternmatching/PatternMatchingUnitTest.scala index 8a4791ed8..650bb0c14 100644 --- a/scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/patternmatching/PatternMatchingUnitTest.scala +++ b/scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/patternmatching/PatternMatchingUnitTest.scala @@ -155,6 +155,30 @@ class PatternMatchingUnitTest { ) } + @Test + def whenEmailIsPassedWithComDomain_itShouldExtractParts(): Unit = { + val result = new PatternMatching().stringInterpolationMatching("james.kirk@starfleet.com") + assertEquals("Hey James Kirk, starfleet.com is your email domain", result) + } + + @Test + def whenEmailIsPassedWithCoInDomain_itShouldExtractParts(): Unit = { + val result = new PatternMatching().stringInterpolationMatching("james.kirk@starfleet.co.in") + assertEquals("Hey James Kirk, starfleet.co.in is your email domain", result) + } + + @Test + def whenDateTimeIsPassed_itShouldExtractDate(): Unit = { + val result = new PatternMatching().stringInterpolationMatching("01-April-2024T10:20:30") + assertEquals("April 01, 2024", result) + } + + @Test + def whenUnknownDataIsPassed_itShouldReturnDefaultString(): Unit = { + val result = new PatternMatching().stringInterpolationMatching("something-unknown.unmatched") + assertEquals("unknown pattern", result) + } + @Test def whenAFilledOptionIsPassed_ThenItShouldMatchTheSomeClause(): Unit = { val result = From 9a3427e2801f41b1589e8bfbbb37c78d45944f96 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 18 May 2024 21:47:44 +0200 Subject: [PATCH 0602/1318] added one more case --- .../baeldung/scala/patternmatching/PatternMatching.scala | 1 + .../scala/patternmatching/PatternMatchingUnitTest.scala | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/patternmatching/PatternMatching.scala b/scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/patternmatching/PatternMatching.scala index 521edbd0c..0320b1bdf 100644 --- a/scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/patternmatching/PatternMatching.scala +++ b/scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/patternmatching/PatternMatching.scala @@ -96,6 +96,7 @@ class PatternMatching { case s"$firstName.$lastName@$domain.$extension" => s"Hey ${firstName.capitalize} ${lastName.capitalize}, $domain.$extension is your email domain" case s"$day-$month-${year}T$time" => s"$month $day, $year" + case s"$something($parenthesis)${_}" => s"String between parenthesis: $parenthesis" case _ => "unknown pattern" } } diff --git a/scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/patternmatching/PatternMatchingUnitTest.scala b/scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/patternmatching/PatternMatchingUnitTest.scala index 650bb0c14..cea3ec625 100644 --- a/scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/patternmatching/PatternMatchingUnitTest.scala +++ b/scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/patternmatching/PatternMatchingUnitTest.scala @@ -173,6 +173,12 @@ class PatternMatchingUnitTest { assertEquals("April 01, 2024", result) } + @Test + def whenStringIsPassed_itShouldExtractDataBetweenParenthesis(): Unit = { + val result = new PatternMatching().stringInterpolationMatching("Here is a (special) string") + assertEquals("String between parenthesis: special", result) + } + @Test def whenUnknownDataIsPassed_itShouldReturnDefaultString(): Unit = { val result = new PatternMatching().stringInterpolationMatching("something-unknown.unmatched") From 9bf6907a87c9870d8919704b7a74ed87e5f6b575 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 18 May 2024 22:41:02 +0200 Subject: [PATCH 0603/1318] Fixed many compiler warnings after Scala 3.4 migration --- .../commoncollections/ScalaCollections.scala | 2 +- .../forcomprehension/ForComprehension.scala | 2 +- .../scala/underscore/UnderscoreUsages.scala | 4 +-- .../underscore/UnderscoreUsagesUnitTest.scala | 8 +++--- .../scala/accessmodifiers/Figure.scala | 4 +-- .../NonStrictDataStructures.scala | 2 +- .../scala/typecasts/TypeErasure.scala | 2 +- .../scala/typecasts/TypeErasureUnitTest.scala | 2 +- .../baeldung/scala/functions/Functions.scala | 4 +-- .../productserializable/ColorInference.scala | 2 +- .../arrays/CopyAnArrayToAnotherUnitTest.scala | 2 +- .../arrays/InitializeAnArrayUnitTest.scala | 2 +- .../baeldung/scala/braces/NoParenthesis.scala | 2 +- .../reverselists/ListReverserUnitTest.scala | 10 +++---- .../scala/classT/ClassTUnitTest.scala | 6 ++-- .../destructuring/DestructuringUnitTest.scala | 18 ++++++------ .../scala/currying/CurryingUnitTest.scala | 2 +- .../scala/generics/GenericsIntro.scala | 2 +- .../com/baeldung/scala/lifting/Examples.scala | 4 +-- .../HigherOrderFunctionsUnitTest.scala | 2 +- .../scala/cakepattern/CakePattern.scala | 2 +- .../NullTypeAndNullValueUnitTest.scala | 2 +- .../scala/withtrait/WithTraitUnitTest.scala | 10 +++---- .../scala/operators/ScalaOperators.scala | 4 +-- .../caseclasses/CaseClassesUnitTest.scala | 2 +- .../com/baeldung/scala/fs2/Fs2Examples.scala | 6 ++-- .../principles/ScalazPrinciplesExamples.scala | 2 +- .../redis/leaderboard/LeaderBoard.scala | 6 ++-- .../com/baeldung/redis/util/WithRedis.scala | 2 +- .../scalamock/ScalamockFeaturesUnitTest.scala | 28 +++++++++---------- .../scalamock/ScalamockFunctionUnitTest.scala | 2 +- .../ScalamockMockingStylesUnitTest.scala | 4 +-- .../RequestsScalaHttpClientLiveTest.scala | 2 +- .../strings/camelcase/StringWrapper.scala | 2 +- .../ExampleFlatSpecWithMatchersUnitTest.scala | 4 +-- .../com/baeldung/scala/zio/FiberExample.scala | 2 +- .../fibers/PastaCookingFiberAppExample.scala | 2 +- .../scala/zio/repeatretry/RepeatSamples.scala | 4 +-- .../scala/zio/repeatretry/RetrySamples.scala | 2 +- .../zio/streams/FailureRecoveryExample.scala | 2 +- .../zio/streams/FailureRetryExample.scala | 2 +- .../zio/streams/FileProcessingExample.scala | 4 +-- .../scala/zio/streams/ZPipelineExample.scala | 2 +- .../zio_kafka/workflow/KafkaProducer.scala | 2 +- .../errorhandling/ErrorHandlingUnitTest.scala | 2 +- .../zio/prelude/voting/VotingUnitTest.scala | 2 +- 46 files changed, 93 insertions(+), 93 deletions(-) diff --git a/scala-core-collections-modules/scala-core-collections-3/src/main/scala/com/baeldung/scala/commoncollections/ScalaCollections.scala b/scala-core-collections-modules/scala-core-collections-3/src/main/scala/com/baeldung/scala/commoncollections/ScalaCollections.scala index f8083d32f..078296450 100644 --- a/scala-core-collections-modules/scala-core-collections-3/src/main/scala/com/baeldung/scala/commoncollections/ScalaCollections.scala +++ b/scala-core-collections-modules/scala-core-collections-3/src/main/scala/com/baeldung/scala/commoncollections/ScalaCollections.scala @@ -10,7 +10,7 @@ object ScalaCollections { val numbersListWithOperator: List[Int] = 1 :: 2 :: 3 :: 4 :: Nil val emptyListWithNil: List[Int] = Nil - val x :: xs = numbersList + val x :: xs = numbersList: @unchecked // Scala Set val emptySet: Set[Int] = Set() diff --git a/scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/forcomprehension/ForComprehension.scala b/scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/forcomprehension/ForComprehension.scala index 325dfa40e..600d463a5 100644 --- a/scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/forcomprehension/ForComprehension.scala +++ b/scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/forcomprehension/ForComprehension.scala @@ -56,7 +56,7 @@ object ForComprehension { def foreach(f: A => Unit): Unit = f(result) def map[B](f: A => B): Result[B] = Result(f(result)) def flatMap[B](f: A => Result[B]): Result[B] = f(result) - def withFilter(f: A => Boolean): Result[_] = + def withFilter(f: A => Boolean): Result[?] = if (f(result)) this else EmptyResult } diff --git a/scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/underscore/UnderscoreUsages.scala b/scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/underscore/UnderscoreUsages.scala index 157b6cda5..9b181442d 100644 --- a/scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/underscore/UnderscoreUsages.scala +++ b/scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/underscore/UnderscoreUsages.scala @@ -2,7 +2,7 @@ package com.baeldung.scala.underscore object UnderscoreUsages { - def getLength(x: List[List[_]]): Int = x.length + def getLength(x: List[List[?]]): Int = x.length def itemTransaction(price: Double): String = { price match { @@ -33,7 +33,7 @@ object UnderscoreUsages { } } - def list_++(list: List[_]): List[_] = List.concat(list, list) + def list_++(list: List[?]): List[?] = List.concat(list, list) trait ObjectContainer[T[_]] { // higher kinded type parameter def checkIfEmpty[A](collection: T[A]): Boolean diff --git a/scala-core-modules/scala-core-2/src/test/scala/com/baeldung/scala/underscore/UnderscoreUsagesUnitTest.scala b/scala-core-modules/scala-core-2/src/test/scala/com/baeldung/scala/underscore/UnderscoreUsagesUnitTest.scala index 0f19873b1..d2c6204e6 100644 --- a/scala-core-modules/scala-core-2/src/test/scala/com/baeldung/scala/underscore/UnderscoreUsagesUnitTest.scala +++ b/scala-core-modules/scala-core-2/src/test/scala/com/baeldung/scala/underscore/UnderscoreUsagesUnitTest.scala @@ -48,7 +48,7 @@ class UnderscoreUsagesUnitTest extends AnyWordSpec with Matchers { b shouldBe "b" text = "a,b,c,d,e" - val Array(a2, _*) = text.split(",") + val Array(a2, _*) = text.split(","): @unchecked a2 shouldBe "a" val Array(a3, b3, _, d, e) = text.split(",") @@ -58,12 +58,12 @@ class UnderscoreUsagesUnitTest extends AnyWordSpec with Matchers { e shouldBe "e" } "work in reassigning a a function to a value" in { - val times = multiplier _ + val times = multiplier multiplier(8, 13) shouldBe times(8, 13) } "work in converting a sequence to variable arguments" in { val sumable = Seq(4, 5, 10, 3) - val sumOfSumable = sum(sumable: _*) + val sumOfSumable = sum(sumable*) sumOfSumable shouldBe 22 } "generate a partially applied function" in { @@ -71,7 +71,7 @@ class UnderscoreUsagesUnitTest extends AnyWordSpec with Matchers { val sumFiveAndTen = sumToTen(5) sumFiveAndTen shouldBe 15 - val foo = bar(1, 2) _ + val foo = bar(1, 2) foo("Some string", "Another string")(3 / 5, 6 / 5) shouldBe 1 } "work in overriding a method's setter" in { diff --git a/scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/accessmodifiers/Figure.scala b/scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/accessmodifiers/Figure.scala index 96dec3234..c4d7dcb25 100644 --- a/scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/accessmodifiers/Figure.scala +++ b/scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/accessmodifiers/Figure.scala @@ -3,12 +3,12 @@ package com.baeldung.scala.accessmodifiers import java.util.UUID.randomUUID abstract class Figure { - private[this] val code = + private val code = randomUUID.toString // accessible in the scope of the object-only def printCode: Unit = println(s"$code") // public access protected[accessmodifiers] val color: String // accessible in the scope of the package - protected[this] val lineWidth: Int // accessible for instances of this class and its subclasses instances + protected val lineWidth: Int // accessible for instances of this class and its subclasses instances protected val topPoint: Double // accessible in the scope of the class and subclasses protected val rightMostPoint: Double diff --git a/scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/iteratorsvsstreamsvsviews/NonStrictDataStructures.scala b/scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/iteratorsvsstreamsvsviews/NonStrictDataStructures.scala index 3c01e6250..acdc563f3 100644 --- a/scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/iteratorsvsstreamsvsviews/NonStrictDataStructures.scala +++ b/scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/iteratorsvsstreamsvsviews/NonStrictDataStructures.scala @@ -8,7 +8,7 @@ object NonStrictDataStructures { val stream = data.toStream // todo: check if this is ok, better to separate into separate module // val view: AnyRef with SeqView[Int, Seq[Int]] = data.view - val view: AnyRef with SeqView[Int] = data.view + val view: AnyRef & SeqView[Int] = data.view } case class Factorial() { diff --git a/scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/typecasts/TypeErasure.scala b/scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/typecasts/TypeErasure.scala index 1501db2ec..3ed06179f 100644 --- a/scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/typecasts/TypeErasure.scala +++ b/scala-core-modules/scala-core-3/src/main/scala/com/baeldung/scala/typecasts/TypeErasure.scala @@ -13,6 +13,6 @@ object TypeErasure { // Simply function that converts a variable number of values to a List of that type def convertValuesToList[T](values: T*): List[T] = { - List[T](values: _*) + List[T](values*) } } diff --git a/scala-core-modules/scala-core-3/src/test/scala/com/baeldung/scala/typecasts/TypeErasureUnitTest.scala b/scala-core-modules/scala-core-3/src/test/scala/com/baeldung/scala/typecasts/TypeErasureUnitTest.scala index 75746a447..3017b884f 100644 --- a/scala-core-modules/scala-core-3/src/test/scala/com/baeldung/scala/typecasts/TypeErasureUnitTest.scala +++ b/scala-core-modules/scala-core-3/src/test/scala/com/baeldung/scala/typecasts/TypeErasureUnitTest.scala @@ -39,7 +39,7 @@ class TypeErasureUnitTest extends AnyWordSpec with Matchers { "work with varargs" in { def varargFn(str: String*) = str.length val input = Seq("Hello", "World") - assert(varargFn(input: _*) == 2) + assert(varargFn(input*) == 2) } } } diff --git a/scala-core-modules/scala-core-6/src/main/scala/com/baeldung/scala/functions/Functions.scala b/scala-core-modules/scala-core-6/src/main/scala/com/baeldung/scala/functions/Functions.scala index 7824334b6..6294ac7a0 100644 --- a/scala-core-modules/scala-core-6/src/main/scala/com/baeldung/scala/functions/Functions.scala +++ b/scala-core-modules/scala-core-6/src/main/scala/com/baeldung/scala/functions/Functions.scala @@ -35,8 +35,8 @@ object Functions { // getNameLengthDef.andThen(multiplyByTwoDef) //doesn't compile /** Method to Function value */ - val getNameLengthDefFnValue = getNameLengthDef _ - val multiplyByTwoDefFnValue = multiplyByTwoDef _ + val getNameLengthDefFnValue = getNameLengthDef + val multiplyByTwoDefFnValue = multiplyByTwoDef getNameLengthDefFnValue.andThen(multiplyByTwoDefFnValue) // compiles diff --git a/scala-core-modules/scala-core-7/src/main/scala/com/baeldung/scala/productserializable/ColorInference.scala b/scala-core-modules/scala-core-7/src/main/scala/com/baeldung/scala/productserializable/ColorInference.scala index 2a5f13dc6..69fc8044e 100644 --- a/scala-core-modules/scala-core-7/src/main/scala/com/baeldung/scala/productserializable/ColorInference.scala +++ b/scala-core-modules/scala-core-7/src/main/scala/com/baeldung/scala/productserializable/ColorInference.scala @@ -14,7 +14,7 @@ object ColorV2 { object Inference { def isError: Boolean = true - val consoleColor: Product with Serializable with Color = + val consoleColor: Product & Serializable & Color = if (isError) Color.Red else Color.Green val consoleColorV2: Color = if (isError) Color.Red else Color.Green diff --git a/scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/arrays/CopyAnArrayToAnotherUnitTest.scala b/scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/arrays/CopyAnArrayToAnotherUnitTest.scala index 5a14a240d..1625443fc 100644 --- a/scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/arrays/CopyAnArrayToAnotherUnitTest.scala +++ b/scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/arrays/CopyAnArrayToAnotherUnitTest.scala @@ -7,7 +7,7 @@ class CopyAnArrayToAnotherUnitTest extends AnyFlatSpec with Matchers { val array1 = Array(1, 2, 3, 4) "splat operator" should "copy an entire array to another" in { - var array2 = Array(array1: _*) + var array2 = Array(array1*) array1(1) should be(array2(1)) array1 should not be (array2) diff --git a/scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/arrays/InitializeAnArrayUnitTest.scala b/scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/arrays/InitializeAnArrayUnitTest.scala index 347041189..ed2b8b963 100644 --- a/scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/arrays/InitializeAnArrayUnitTest.scala +++ b/scala-core-modules/scala-core-7/src/test/scala/com/baeldung/scala/arrays/InitializeAnArrayUnitTest.scala @@ -30,7 +30,7 @@ class InitializeAnArrayUnitTest extends AnyFlatSpec with Matchers { "splat operator" should "copy an entire list to an array" in { var list = List(1, 2, 3, 4) - var array = Array[Int](list: _*) + var array = Array[Int](list*) array(1) should be(list(1)) array.length should be(4) diff --git a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/braces/NoParenthesis.scala b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/braces/NoParenthesis.scala index c8649371e..98fad9980 100644 --- a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/braces/NoParenthesis.scala +++ b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/braces/NoParenthesis.scala @@ -9,6 +9,6 @@ object NoParenthesis extends App { // greet "Alice" // But this works and it equivalent to greet("Alice") - this greet "Alice" + this `greet` "Alice" } diff --git a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/reverselists/ListReverserUnitTest.scala b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/reverselists/ListReverserUnitTest.scala index 2ba6874ce..a92485526 100644 --- a/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/reverselists/ListReverserUnitTest.scala +++ b/scala-core-modules/scala-core-8/src/test/scala/com/baeldung/scala/reverselists/ListReverserUnitTest.scala @@ -9,14 +9,14 @@ class ListReverserUnitTest extends AnyWordSpec with BeforeAndAfterEach { import ListReverser._ - def testReverseSmallList(f: Seq[_] => Seq[_]): Assertion = { + def testReverseSmallList(f: Seq[?] => Seq[?]): Assertion = { val list = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) val expectedReversedList = List(10, 9, 8, 7, 6, 5, 4, 3, 2, 1) val actualReversedList = f(list) assertResult(expectedReversedList)(actualReversedList) } - def testReverseBigList(f: Seq[_] => Seq[_]): Assertion = { + def testReverseBigList(f: Seq[?] => Seq[?]): Assertion = { val n = 100_000 val vector: Vector[String] = (0 to n).foldLeft(Vector.empty[String])((v, _) => @@ -29,7 +29,7 @@ class ListReverserUnitTest extends AnyWordSpec with BeforeAndAfterEach { } "The naive list reverser" should { - val reversingFunction: Seq[_] => Seq[_] = naiveRecursiveReverse + val reversingFunction: Seq[?] => Seq[?] = naiveRecursiveReverse "reverse small lists" in { testReverseSmallList(reversingFunction) @@ -41,7 +41,7 @@ class ListReverserUnitTest extends AnyWordSpec with BeforeAndAfterEach { } "The tail-recursive list reverser" should { - val reversingFunction: Seq[_] => Seq[_] = tailRecursiveReverse + val reversingFunction: Seq[?] => Seq[?] = tailRecursiveReverse "reverse small lists" in { testReverseSmallList(reversingFunction) @@ -53,7 +53,7 @@ class ListReverserUnitTest extends AnyWordSpec with BeforeAndAfterEach { } "The folding list reverser" should { - val reversingFunction: Seq[_] => Seq[_] = foldBasedReverse + val reversingFunction: Seq[?] => Seq[?] = foldBasedReverse "reverse small lists" in { testReverseSmallList(reversingFunction) diff --git a/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/classT/ClassTUnitTest.scala b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/classT/ClassTUnitTest.scala index 5d241aae9..8778658d7 100644 --- a/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/classT/ClassTUnitTest.scala +++ b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/classT/ClassTUnitTest.scala @@ -19,7 +19,7 @@ class ClassTUnitTest extends AnyFlatSpec with Matchers { ) // Instantiate the class with arguments - Some(constructor.newInstance(args: _*).asInstanceOf[T]) + Some(constructor.newInstance(args*).asInstanceOf[T]) } catch { case e: Exception => println(s"Error creating instance of ${clazz.getName}: ${e.getMessage}") @@ -37,7 +37,7 @@ class ClassTUnitTest extends AnyFlatSpec with Matchers { "createInstance with .getClass" should "successfully create another instance of Person" in { val dummyPerson = new Person("Dummy") - val personClass: Class[_ <: Person] = dummyPerson.getClass + val personClass: Class[? <: Person] = dummyPerson.getClass val personInstance = createInstance(personClass, Array("Jane Doe": AnyRef)) personInstance should not be empty @@ -46,7 +46,7 @@ class ClassTUnitTest extends AnyFlatSpec with Matchers { "createInstance with .getClass" should "use the type of the variable to bound the type" in { val dummyPerson: Object = new Person("Dummy") - val personClass: Class[_ <: AnyRef] = dummyPerson.getClass + val personClass: Class[? <: AnyRef] = dummyPerson.getClass val personInstance = createInstance(personClass, Array("Jane Doe": AnyRef)) personInstance should not be empty diff --git a/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/destructuring/DestructuringUnitTest.scala b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/destructuring/DestructuringUnitTest.scala index cf151612e..63b9203ef 100644 --- a/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/destructuring/DestructuringUnitTest.scala +++ b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/destructuring/DestructuringUnitTest.scala @@ -28,12 +28,12 @@ class DestructuringUnitTest extends AnyFlatSpec with Matchers { // Reassemble and call the specific handler processEmail( Email(subject, body, recipient) - ).msg startsWith ("Sent email to ") + ).msg `startsWith` ("Sent email to ") case SMS(number, message) => println(s"Logging SMS to $number: $message") // Reassemble and call the specific handler - processSMS(SMS(number, message)).msg startsWith ("Sending SMS to") + processSMS(SMS(number, message)).msg `startsWith` ("Sending SMS to") } } @@ -46,12 +46,12 @@ class DestructuringUnitTest extends AnyFlatSpec with Matchers { // Reassemble and call the specific handler processEmail( email - ).msg startsWith ("Sent email to ") + ).msg `startsWith` ("Sent email to ") case sms: SMS => println(s"Logging SMS to ${sms.number}: ${sms.message}") // Reassemble and call the specific handler - processSMS(sms).msg startsWith ("Sending SMS to") + processSMS(sms).msg `startsWith` ("Sending SMS to") } } @@ -59,25 +59,25 @@ class DestructuringUnitTest extends AnyFlatSpec with Matchers { getRandomElement(notifications, random) match { case email @ Email(subject, _, recipient) => println(s"Logging Email to $recipient with subject $subject") - processEmail(email).msg startsWith ("Sent email to ") + processEmail(email).msg `startsWith` ("Sent email to ") case sms @ SMS(number, message) => println(s"Logging SMS to $number: $message") // Reassemble and call the specific handler - processSMS(sms).msg startsWith ("Sending SMS to") + processSMS(sms).msg `startsWith` ("Sending SMS to") } } "We" should "be able to use @ while declaring a variable" in { val email @ Email(subject, _, recipient) = getRandomElement(emails, random) println(s"Logging Email to $recipient with subject $subject") - processEmail(email).msg startsWith ("Sent email to ") + processEmail(email).msg `startsWith` ("Sent email to ") } "We" should "be able to use @ in for comprehensions" in { for (email @ Email(subject, _, recipient) <- emails) { println(s"Logging Email to $recipient with subject $subject") - processEmail(email).msg startsWith ("Sent email to ") + processEmail(email).msg `startsWith` ("Sent email to ") } } @@ -85,7 +85,7 @@ class DestructuringUnitTest extends AnyFlatSpec with Matchers { emails match { case _ :: (email2 @ Email(subject, _, recipient)) :: _ => println(s"Logging 2nd Email to $recipient with subject $subject") - processEmail(email2).msg startsWith ("Sent email to ") + processEmail(email2).msg `startsWith` ("Sent email to ") case _ => println(s"Only one message") diff --git a/scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/currying/CurryingUnitTest.scala b/scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/currying/CurryingUnitTest.scala index 44cee0f5b..5272ada5f 100644 --- a/scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/currying/CurryingUnitTest.scala +++ b/scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/currying/CurryingUnitTest.scala @@ -20,7 +20,7 @@ class CurryingUnitTest extends Matchers { : Unit = { def sum(x: Int, y: Int): Int = x + y - val curriedSum: Int => Int => Int = (sum _).curried + val curriedSum: Int => Int => Int = (sum).curried sum(1, 2) shouldBe 3 curriedSum(1)(2) shouldBe 3 diff --git a/scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/generics/GenericsIntro.scala b/scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/generics/GenericsIntro.scala index fcdb4481f..6429ad8dc 100644 --- a/scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/generics/GenericsIntro.scala +++ b/scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/generics/GenericsIntro.scala @@ -69,7 +69,7 @@ object GenericsIntro { } object NonGenericMethods { - def totalSize(list1: List[_], list2: List[_]): Int = + def totalSize(list1: List[?], list2: List[?]): Int = list1.length + list2.length def run() = { val rabbits = List[Rabbit](Rabbit(2), Rabbit(3), Rabbit(7)) diff --git a/scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/lifting/Examples.scala b/scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/lifting/Examples.scala index 3fae5ef3a..bcec58cc0 100644 --- a/scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/lifting/Examples.scala +++ b/scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/lifting/Examples.scala @@ -31,8 +31,8 @@ object Examples { def add5(x: Int) = x + 5 def isEven(x: Int) = x % 2 == 0 - val funcAdd5 = add5 _ - val funcIsEven = isEven _ + val funcAdd5 = add5 + val funcIsEven = isEven val sayHello: Future[Option[String]] = Future.successful(Some("Say hello to")) val firstname: Future[String] = Future.successful("Fabio") diff --git a/scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/higherorder/HigherOrderFunctionsUnitTest.scala b/scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/higherorder/HigherOrderFunctionsUnitTest.scala index 11a966271..bf98ab67a 100644 --- a/scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/higherorder/HigherOrderFunctionsUnitTest.scala +++ b/scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/higherorder/HigherOrderFunctionsUnitTest.scala @@ -40,7 +40,7 @@ class HigherOrderFunctionsUnitTest { // partial application of curried function // trailing underscore is required to make function type explicit - val sumMod5 = sum(mod(5)) _ + val sumMod5 = sum(mod(5)) assertEquals(10, sumMod5(6, 10)) } diff --git a/scala-design-patterns/src/main/scala/com/baeldung/scala/cakepattern/CakePattern.scala b/scala-design-patterns/src/main/scala/com/baeldung/scala/cakepattern/CakePattern.scala index 56bafb6f9..e8e2176c1 100644 --- a/scala-design-patterns/src/main/scala/com/baeldung/scala/cakepattern/CakePattern.scala +++ b/scala-design-patterns/src/main/scala/com/baeldung/scala/cakepattern/CakePattern.scala @@ -36,7 +36,7 @@ object CakePattern { } trait TestExecutorComponentWithLogging { - this: TestEnvironmentComponent with LoggingComponent => + this: TestEnvironmentComponent & LoggingComponent => val testExecutor: TestExecutor class TestExecutor { def execute(tests: List[Test]): Boolean = { diff --git a/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/voidtypes/NullTypeAndNullValueUnitTest.scala b/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/voidtypes/NullTypeAndNullValueUnitTest.scala index 1c8dd2d36..753ebaf98 100644 --- a/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/voidtypes/NullTypeAndNullValueUnitTest.scala +++ b/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/voidtypes/NullTypeAndNullValueUnitTest.scala @@ -13,7 +13,7 @@ class NullTypeAndNullValueUnitTest extends AnyFunSuite { test("null equality check using equals ") { val exceptionThrown = intercept[NullPointerException] { - NullTypeAndnullValue.nullValue equals NullTypeAndnullValue.nullRefCar + NullTypeAndnullValue.nullValue `equals` NullTypeAndnullValue.nullRefCar } } diff --git a/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/withtrait/WithTraitUnitTest.scala b/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/withtrait/WithTraitUnitTest.scala index baf13adfa..1929b7915 100644 --- a/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/withtrait/WithTraitUnitTest.scala +++ b/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/withtrait/WithTraitUnitTest.scala @@ -51,28 +51,28 @@ object WithTraitSpec { val pat: Person = new Person("Pat", "123 Main St.", LocalDate.of(1933, 10, 11)) - val mary: Person with Musician = + val mary: Person & Musician = new Person("Mary", "456 Second St.", LocalDate.of(1982, 9, 9)) with Musician { override val instrument: String = "guitar" } - val prudence: Person with Politician = + val prudence: Person & Politician = new Person("Prudence", "789 Third St.", LocalDate.of(1972, 6, 3)) with Politician - val giorgio: Person with Politician with Musician = + val giorgio: Person & Politician & Musician = new Person("Giorgio", "121 Fourth St.", LocalDate.of(1980, 2, 19)) with Politician with Musician { override val instrument: String = "flute" } - val ellie: Animal with Musician = + val ellie: Animal & Musician = new Animal("Ellie", "elephant") with Musician { override val instrument: String = "trombone" } - val vasily: Animal with Politician = + val vasily: Animal & Politician = new Animal("Vasily", "monkey") with Politician } diff --git a/scala-lang-modules/scala-lang/src/main/scala/com/baeldung/scala/operators/ScalaOperators.scala b/scala-lang-modules/scala-lang/src/main/scala/com/baeldung/scala/operators/ScalaOperators.scala index f3dfe43a5..bce84d829 100644 --- a/scala-lang-modules/scala-lang/src/main/scala/com/baeldung/scala/operators/ScalaOperators.scala +++ b/scala-lang-modules/scala-lang/src/main/scala/com/baeldung/scala/operators/ScalaOperators.scala @@ -9,11 +9,11 @@ object ScalaOperators { assert(1.+(2) == 3) assert("Baeldung".charAt(0) == 'B') - val char: Char = "Baeldung" charAt 0 + val char: Char = "Baeldung" `charAt` 0 assert(char == 'B') assert("Baeldung".replace('g', 'G') == "BaeldunG") - val str: String = "Baeldung" replace ('g', 'G') + val str: String = "Baeldung" `replace` ('g', 'G') assert(str == "BaeldunG") // Unary operator notation diff --git a/scala-lang-modules/scala-lang/src/test/scala/com/baeldung/scala/caseclasses/CaseClassesUnitTest.scala b/scala-lang-modules/scala-lang/src/test/scala/com/baeldung/scala/caseclasses/CaseClassesUnitTest.scala index 510357df1..37820b50c 100644 --- a/scala-lang-modules/scala-lang/src/test/scala/com/baeldung/scala/caseclasses/CaseClassesUnitTest.scala +++ b/scala-lang-modules/scala-lang/src/test/scala/com/baeldung/scala/caseclasses/CaseClassesUnitTest.scala @@ -43,7 +43,7 @@ class CaseClassesUnitTest { @Test def givenTuple_whenCallingApply_thenCreatesNewInstance() = { val tuple = ("PL", 776, 15366) - val covidPL = (CovidCountryStats.apply _).tupled(tuple) + val covidPL = (CovidCountryStats.apply).tupled(tuple) assertEquals(CovidCountryStats("PL", 776, 15366), covidPL) } diff --git a/scala-libraries-fp/src/main/scala/com/baeldung/scala/fs2/Fs2Examples.scala b/scala-libraries-fp/src/main/scala/com/baeldung/scala/fs2/Fs2Examples.scala index 1432dbdb0..3ca908a47 100644 --- a/scala-libraries-fp/src/main/scala/com/baeldung/scala/fs2/Fs2Examples.scala +++ b/scala-libraries-fp/src/main/scala/com/baeldung/scala/fs2/Fs2Examples.scala @@ -59,7 +59,7 @@ object Fs2Examples { src .through(text.utf8.decode) .through(text.lines) - .flatMap(line => Stream.apply(line.split("\\W+"): _*)) + .flatMap(line => Stream.apply(line.split("\\W+")*)) .fold(Map.empty[String, Int]) { (count, word) => count + (word -> (count.getOrElse(word, 0) + 1)) } @@ -80,7 +80,7 @@ object Fs2Examples { } // Batching in Fs2 - Stream((1 to 100): _*) + Stream((1 to 100)*) .chunkN(10) // group 10 elements together .map(println) .compile @@ -97,7 +97,7 @@ object Fs2Examples { } - Stream((1 to 100).map(_.toString): _*) + Stream((1 to 100).map(_.toString)*) .chunkN(10) .covary[IO] .parEvalMapUnordered(10)(writeToSocket[IO]) diff --git a/scala-libraries-fp/src/main/scala/com/baeldung/scala/scalaz/principles/ScalazPrinciplesExamples.scala b/scala-libraries-fp/src/main/scala/com/baeldung/scala/scalaz/principles/ScalazPrinciplesExamples.scala index c6a6a35e4..f75deb2f9 100644 --- a/scala-libraries-fp/src/main/scala/com/baeldung/scala/scalaz/principles/ScalazPrinciplesExamples.scala +++ b/scala-libraries-fp/src/main/scala/com/baeldung/scala/scalaz/principles/ScalazPrinciplesExamples.scala @@ -10,7 +10,7 @@ object ScalazPrinciplesExamples { } implicit object stringListDoubler extends Doubler[List, String] { - def makeDouble(xs: List[String]): List[String] = xs.map(s => s concat s) + def makeDouble(xs: List[String]): List[String] = xs.map(s => s `concat` s) } implicit object intOptionDoubler extends Doubler[Option, Int] { diff --git a/scala-libraries-standalone/redis-intro/src/main/scala/com/baeldung/redis/leaderboard/LeaderBoard.scala b/scala-libraries-standalone/redis-intro/src/main/scala/com/baeldung/redis/leaderboard/LeaderBoard.scala index 24ae2a497..4f90eacb3 100644 --- a/scala-libraries-standalone/redis-intro/src/main/scala/com/baeldung/redis/leaderboard/LeaderBoard.scala +++ b/scala-libraries-standalone/redis-intro/src/main/scala/com/baeldung/redis/leaderboard/LeaderBoard.scala @@ -15,9 +15,9 @@ class LeaderBoard(hllKey: String, jedis: Jedis) { def plusN(key: LeaderboardKey, n: Int): Unit = { val randValues = (0 until n) map (_ => random()) - jedis.pfadd(s"$hllKey:${key.firstLevelKey}", randValues: _*) - jedis.pfadd(s"$hllKey:${key.secondLevelKey}", randValues: _*) - jedis.pfadd(s"$hllKey:${key.thirdLevelKey}", randValues: _*) + jedis.pfadd(s"$hllKey:${key.firstLevelKey}", randValues*) + jedis.pfadd(s"$hllKey:${key.secondLevelKey}", randValues*) + jedis.pfadd(s"$hllKey:${key.thirdLevelKey}", randValues*) } def count(key: String): Long = { diff --git a/scala-libraries-standalone/redis-intro/src/main/scala/com/baeldung/redis/util/WithRedis.scala b/scala-libraries-standalone/redis-intro/src/main/scala/com/baeldung/redis/util/WithRedis.scala index ffe18e955..54b417fc6 100644 --- a/scala-libraries-standalone/redis-intro/src/main/scala/com/baeldung/redis/util/WithRedis.scala +++ b/scala-libraries-standalone/redis-intro/src/main/scala/com/baeldung/redis/util/WithRedis.scala @@ -4,7 +4,7 @@ import redis.clients.jedis.Jedis trait WithRedis { - private var clients: RedisClients = _ + private var clients: RedisClients = scala.compiletime.uninitialized protected def initialize(): Unit = { clients = new RedisClients("localhost", 6379) diff --git a/scala-libraries-testing/src/test/scala/com/baeldung/scalamock/ScalamockFeaturesUnitTest.scala b/scala-libraries-testing/src/test/scala/com/baeldung/scalamock/ScalamockFeaturesUnitTest.scala index 1341a80c8..a823121dc 100644 --- a/scala-libraries-testing/src/test/scala/com/baeldung/scalamock/ScalamockFeaturesUnitTest.scala +++ b/scala-libraries-testing/src/test/scala/com/baeldung/scalamock/ScalamockFeaturesUnitTest.scala @@ -13,7 +13,7 @@ class ScalamockFeaturesUnitTest extends AnyWordSpec with MockFactory { val m1 = Model1(1L, "Jim") val m2 = Model2(2L, "Timmy") val mockUnitService1 = mock[UnitService1] - (mockUnitService1.doSomething _).expects(m1, m2) + (mockUnitService1.doSomething).expects(m1, m2) val unitService2 = new UnitService2Impl(mockUnitService1) unitService2.doSomething(m1, m2) succeed @@ -23,7 +23,7 @@ class ScalamockFeaturesUnitTest extends AnyWordSpec with MockFactory { val m1 = Model1(1L, "Jim") val m2 = Model2(2L, "Timmy") val mockUnitService1 = mock[UnitService1] - (mockUnitService1.doSomething _).expects(m1, *) + (mockUnitService1.doSomething).expects(m1, *) val unitService2 = new UnitService2Impl(mockUnitService1) unitService2.doSomething(m1, m2) succeed @@ -33,7 +33,7 @@ class ScalamockFeaturesUnitTest extends AnyWordSpec with MockFactory { val m1 = Model1(1L, "Jim") val m2 = Model2(2L, "Timmy") val mockUnitService1 = mock[UnitService1] - (mockUnitService1.doSomething _).expects(where { + (mockUnitService1.doSomething).expects(where { (_m1: Model1, _m2: Model2) => _m1.id == 1L && _m2.id == 2L }) val unitService2 = new UnitService2Impl(mockUnitService1) @@ -49,7 +49,7 @@ class ScalamockFeaturesUnitTest extends AnyWordSpec with MockFactory { } "match close numbers" in { val mockedModel3 = mock[Model3] - (mockedModel3.numFunc _).expects(~71.5f) + (mockedModel3.numFunc).expects(~71.5f) mockedModel3.numFunc(71.50002f) // success // mockedModel3.numFunc(71.502f) // failure succeed @@ -62,8 +62,8 @@ class ScalamockFeaturesUnitTest extends AnyWordSpec with MockFactory { val m2 = Model2(2L, "Timmy") val mockUnitService1 = mock[UnitService1] inSequence { - (mockUnitService1.doSomething _).expects(m1, m2) - (mockUnitService1.doSomethingElse _).expects(m1, m2) + (mockUnitService1.doSomething).expects(m1, m2) + (mockUnitService1.doSomethingElse).expects(m1, m2) } val unitService2 = new UnitService2Impl(mockUnitService1) unitService2.doManyThings(m1, m2) // success @@ -76,8 +76,8 @@ class ScalamockFeaturesUnitTest extends AnyWordSpec with MockFactory { val m2 = Model2(2L, "Timmy") val mockUnitService1 = mock[UnitService1] inAnyOrder { - (mockUnitService1.doSomething _).expects(m1, m2) - (mockUnitService1.doSomethingElse _).expects(m1, m2) + (mockUnitService1.doSomething).expects(m1, m2) + (mockUnitService1.doSomethingElse).expects(m1, m2) } val unitService2 = new UnitService2Impl(mockUnitService1) // unitService2.doManyThings(m1, m2) // also success @@ -92,7 +92,7 @@ class ScalamockFeaturesUnitTest extends AnyWordSpec with MockFactory { } "verify the number of calls" in { val mockedModel3 = mock[Model3] - (mockedModel3.emptyFunc _).expects().once() + ((() => mockedModel3.emptyFunc())).expects().once() // (mockedModel3.emptyFunc _).expects().twice() // exactly 2 times // (mockedModel3.emptyFunc _).expects().never() // never called // (mockedModel3.emptyFunc _).expects().repeat(4) // exactly 4 times @@ -108,7 +108,7 @@ class ScalamockFeaturesUnitTest extends AnyWordSpec with MockFactory { } "verify the number of calls" in { val mockedModel3 = mock[Model3] - (mockedModel3.getInt _).expects().returning(12) + ((() => mockedModel3.getInt())).expects().returning(12) assert(mockedModel3.getInt() === 12) } } @@ -119,7 +119,7 @@ class ScalamockFeaturesUnitTest extends AnyWordSpec with MockFactory { } "throw exception on mock call" in { val mockedModel3 = mock[Model3] - (mockedModel3.getInt _) + ((() => mockedModel3.getInt())) .expects() .throwing(new RuntimeException("getInt called")) assertThrows[RuntimeException](mockedModel3.getInt()) @@ -132,7 +132,7 @@ class ScalamockFeaturesUnitTest extends AnyWordSpec with MockFactory { } "return argument plus 1" in { val mockedModel3 = mock[Model3] - (mockedModel3.get _).expects(*).onCall((i: Int) => i + 1) + (mockedModel3.get).expects(*).onCall((i: Int) => i + 1) assert(mockedModel3.get(4) === 5) } } @@ -144,7 +144,7 @@ class ScalamockFeaturesUnitTest extends AnyWordSpec with MockFactory { "capture arguments" in { val mockedOneArg = mock[OneArg] val captor = CaptureOne[Int]() - (mockedOneArg.func _).expects(capture(captor)).atLeastOnce() + (mockedOneArg.func).expects(capture(captor)).atLeastOnce() mockedOneArg.func(32) assert(captor.value === 32) } @@ -156,7 +156,7 @@ class ScalamockFeaturesUnitTest extends AnyWordSpec with MockFactory { def call[A](arg: A): A } val mockPolymorphic = mock[Polymorphic] - (mockPolymorphic.call[Int] _).expects(1).onCall((i: Int) => i * 2) + (mockPolymorphic.call[Int]).expects(1).onCall((i: Int) => i * 2) assert(mockPolymorphic.call(1) === 2) } } diff --git a/scala-libraries-testing/src/test/scala/com/baeldung/scalamock/ScalamockFunctionUnitTest.scala b/scala-libraries-testing/src/test/scala/com/baeldung/scalamock/ScalamockFunctionUnitTest.scala index 09b8cc8f6..7478b2193 100644 --- a/scala-libraries-testing/src/test/scala/com/baeldung/scalamock/ScalamockFunctionUnitTest.scala +++ b/scala-libraries-testing/src/test/scala/com/baeldung/scalamock/ScalamockFunctionUnitTest.scala @@ -20,7 +20,7 @@ class ScalamockFunctionUnitTest extends AnyWordSpec with MockFactory { def call(f: Int => String, i: Int): String } val mockedFoo = mock[Foo] - (mockedFoo.call _) + (mockedFoo.call) .expects(*, *) .onCall((f: Int => String, i: Int) => Range(0, i).mkString(",")) assert(mockedFoo.call(_ => "bla", 3) === "0,1,2") diff --git a/scala-libraries-testing/src/test/scala/com/baeldung/scalamock/ScalamockMockingStylesUnitTest.scala b/scala-libraries-testing/src/test/scala/com/baeldung/scalamock/ScalamockMockingStylesUnitTest.scala index 44013b84e..1e38f0d74 100644 --- a/scala-libraries-testing/src/test/scala/com/baeldung/scalamock/ScalamockMockingStylesUnitTest.scala +++ b/scala-libraries-testing/src/test/scala/com/baeldung/scalamock/ScalamockMockingStylesUnitTest.scala @@ -11,9 +11,9 @@ class ScalamockMockingStylesUnitTest extends AnyWordSpec with MockFactory { } "record and then verify" in { val mockedWannabe = stub[MockitoWannabe] - (mockedWannabe.foo _).when(*).onCall((i: Int) => i * 2) + (mockedWannabe.foo).when(*).onCall((i: Int) => i * 2) assert(mockedWannabe.foo(12) === 24) - (mockedWannabe.foo _).verify(12) + (mockedWannabe.foo).verify(12) } } diff --git a/scala-libraries/src/it/scala/com/baeldung/requests/RequestsScalaHttpClientLiveTest.scala b/scala-libraries/src/it/scala/com/baeldung/requests/RequestsScalaHttpClientLiveTest.scala index 86c2582ee..f6715ffb9 100644 --- a/scala-libraries/src/it/scala/com/baeldung/requests/RequestsScalaHttpClientLiveTest.scala +++ b/scala-libraries/src/it/scala/com/baeldung/requests/RequestsScalaHttpClientLiveTest.scala @@ -134,7 +134,7 @@ class RequestsScalaHttpClientLiveTest requests.MultiItem("hint", "This is file upload") ) ) - assert(r.text() contains ("multipart/form-data")) + assert(r.text() `contains` ("multipart/form-data")) } } diff --git a/scala-strings/src/main/scala/com/baeldung/scala/strings/camelcase/StringWrapper.scala b/scala-strings/src/main/scala/com/baeldung/scala/strings/camelcase/StringWrapper.scala index 5c3cc425b..ca0ddfb15 100644 --- a/scala-strings/src/main/scala/com/baeldung/scala/strings/camelcase/StringWrapper.scala +++ b/scala-strings/src/main/scala/com/baeldung/scala/strings/camelcase/StringWrapper.scala @@ -19,7 +19,7 @@ object StringWrapper { val useMapReduce: String => String = { spacedString => val first :: rest = - spacedString.split(Array(' ', '_')).toList.map(_.toLowerCase) + spacedString.split(Array(' ', '_')).toList.map(_.toLowerCase): @unchecked val changedRest = rest.map(w => w.take(1).toUpperCase + w.drop(1)) val reunited = first :: changedRest reunited.mkString diff --git a/scala-test/src/test/scala/com/baeldung/scala/scalatest/ExampleFlatSpecWithMatchersUnitTest.scala b/scala-test/src/test/scala/com/baeldung/scala/scalatest/ExampleFlatSpecWithMatchersUnitTest.scala index 2ecb7b076..ed3339a81 100644 --- a/scala-test/src/test/scala/com/baeldung/scala/scalatest/ExampleFlatSpecWithMatchersUnitTest.scala +++ b/scala-test/src/test/scala/com/baeldung/scala/scalatest/ExampleFlatSpecWithMatchersUnitTest.scala @@ -64,8 +64,8 @@ class ExampleFlatSpecWithMatchersUnitTest extends AnyFlatSpec with Matchers { } it should "let us check the type of an object" in { - List(1, 2, 3) shouldBe a[List[_]] - List(1, 2, 3) should not be a[Map[_, _]] + List(1, 2, 3) shouldBe a[List[?]] + List(1, 2, 3) should not be a[Map[?, ?]] } } diff --git a/zio/src/main/scala/com/baeldung/scala/zio/FiberExample.scala b/zio/src/main/scala/com/baeldung/scala/zio/FiberExample.scala index c9c1abc0f..67d660e6e 100644 --- a/zio/src/main/scala/com/baeldung/scala/zio/FiberExample.scala +++ b/zio/src/main/scala/com/baeldung/scala/zio/FiberExample.scala @@ -22,5 +22,5 @@ object FiberExample extends zio.ZIOAppDefault { result <- (fiber1 <*> fiber2).join } yield result - override def run: ZIO[Any with ZIOAppArgs with Scope, Any, Any] = myApp + override def run: ZIO[Any & ZIOAppArgs & Scope, Any, Any] = myApp } diff --git a/zio/src/main/scala/com/baeldung/scala/zio/fibers/PastaCookingFiberAppExample.scala b/zio/src/main/scala/com/baeldung/scala/zio/fibers/PastaCookingFiberAppExample.scala index e65042147..d0e04aa38 100644 --- a/zio/src/main/scala/com/baeldung/scala/zio/fibers/PastaCookingFiberAppExample.scala +++ b/zio/src/main/scala/com/baeldung/scala/zio/fibers/PastaCookingFiberAppExample.scala @@ -61,5 +61,5 @@ object PastaCookingFiberAppExample extends ZIOAppDefault { _ <- orderFiber.join.ensuring(cleanup) } yield () - override def run: ZIO[Any with ZIOAppArgs with Scope, Any, Any] = pastaApp + override def run: ZIO[Any & ZIOAppArgs & Scope, Any, Any] = pastaApp } diff --git a/zio/src/main/scala/com/baeldung/scala/zio/repeatretry/RepeatSamples.scala b/zio/src/main/scala/com/baeldung/scala/zio/repeatretry/RepeatSamples.scala index d3e812334..78abe0ee5 100644 --- a/zio/src/main/scala/com/baeldung/scala/zio/repeatretry/RepeatSamples.scala +++ b/zio/src/main/scala/com/baeldung/scala/zio/repeatretry/RepeatSamples.scala @@ -5,7 +5,7 @@ import zio.{Schedule, Scope, Task, ZIO, ZIOAppArgs, ZIOAppDefault} import scala.util.Random object RepeatSamples extends ZIOAppDefault { - override def run: ZIO[Any with ZIOAppArgs with Scope, Any, Any] = { + override def run: ZIO[Any & ZIOAppArgs & Scope, Any, Any] = { val simpleZio: ZIO[Any, Nothing, Unit] = ZIO.succeed(println("Hello ZIO!")) val aFailingZio = ZIO.fail(new Exception("failed!")) @@ -40,7 +40,7 @@ object RepeatSamples extends ZIOAppDefault { } object FailingRepeatSamples extends ZIOAppDefault { - override def run: ZIO[Any with ZIOAppArgs with Scope, Any, Any] = { + override def run: ZIO[Any & ZIOAppArgs & Scope, Any, Any] = { val aFailingZIO = ZIO.attempt { println("A failing action here") throw new Exception("Failure block") diff --git a/zio/src/main/scala/com/baeldung/scala/zio/repeatretry/RetrySamples.scala b/zio/src/main/scala/com/baeldung/scala/zio/repeatretry/RetrySamples.scala index 533e54ec0..d118d7713 100644 --- a/zio/src/main/scala/com/baeldung/scala/zio/repeatretry/RetrySamples.scala +++ b/zio/src/main/scala/com/baeldung/scala/zio/repeatretry/RetrySamples.scala @@ -3,7 +3,7 @@ package com.baeldung.scala.zio.repeatretry import zio.{Random, Schedule, Scope, ZIO, ZIOAppArgs, ZIOAppDefault} object RetrySamples extends ZIOAppDefault { - override def run: ZIO[Any with ZIOAppArgs with Scope, Any, Any] = { + override def run: ZIO[Any & ZIOAppArgs & Scope, Any, Any] = { val mayBeFailingZIO = for { num <- Random.nextIntBounded(100) _ <- zio.Console.printLine("Calculating with number: " + num) diff --git a/zio/src/main/scala/com/baeldung/scala/zio/streams/FailureRecoveryExample.scala b/zio/src/main/scala/com/baeldung/scala/zio/streams/FailureRecoveryExample.scala index 7a01dbc2d..d511d76cf 100644 --- a/zio/src/main/scala/com/baeldung/scala/zio/streams/FailureRecoveryExample.scala +++ b/zio/src/main/scala/com/baeldung/scala/zio/streams/FailureRecoveryExample.scala @@ -9,7 +9,7 @@ object FailureRecoveryExample extends ZIOAppDefault { ZStream.range(6, 10) val recoveryStream: ZStream[Any, Throwable, Int] = ZStream.range(10, 15) - override def run: ZIO[Any with ZIOAppArgs with Scope, Any, Any] = { + override def run: ZIO[Any & ZIOAppArgs & Scope, Any, Any] = { ZStream.range(0, 5).runSum } diff --git a/zio/src/main/scala/com/baeldung/scala/zio/streams/FailureRetryExample.scala b/zio/src/main/scala/com/baeldung/scala/zio/streams/FailureRetryExample.scala index 51ee5fe2b..bab986480 100644 --- a/zio/src/main/scala/com/baeldung/scala/zio/streams/FailureRetryExample.scala +++ b/zio/src/main/scala/com/baeldung/scala/zio/streams/FailureRetryExample.scala @@ -15,6 +15,6 @@ object FailureRetryExample extends ZIOAppDefault { val failingStream: ZStream[Any, Throwable, Int] = ZStream.range(0, 5).flatMap(_ => ZStream.fromZIO(Generator.getNext())) - override def run: ZIO[Any with ZIOAppArgs with Scope, Any, Any] = + override def run: ZIO[Any & ZIOAppArgs & Scope, Any, Any] = failingStream.retry(Schedule.once).runSum } diff --git a/zio/src/main/scala/com/baeldung/scala/zio/streams/FileProcessingExample.scala b/zio/src/main/scala/com/baeldung/scala/zio/streams/FileProcessingExample.scala index 70ed27c90..ed13fa703 100644 --- a/zio/src/main/scala/com/baeldung/scala/zio/streams/FileProcessingExample.scala +++ b/zio/src/main/scala/com/baeldung/scala/zio/streams/FileProcessingExample.scala @@ -14,9 +14,9 @@ object FileProcessingExample extends ZIOAppDefault { val fileSink = ZSink.fromFile(new File("outputFile.txt")) val fileOutputStream = fileInputStream .intersperse("\n") - .flatMap(line => ZStream(line.getBytes.toList: _*)) + .flatMap(line => ZStream(line.getBytes.toList*)) .run(fileSink) - override def run: ZIO[Any with ZIOAppArgs with Scope, Any, Any] = + override def run: ZIO[Any & ZIOAppArgs & Scope, Any, Any] = fileOutputStream } diff --git a/zio/src/main/scala/com/baeldung/scala/zio/streams/ZPipelineExample.scala b/zio/src/main/scala/com/baeldung/scala/zio/streams/ZPipelineExample.scala index 4cf36cdb8..c68f7d80d 100644 --- a/zio/src/main/scala/com/baeldung/scala/zio/streams/ZPipelineExample.scala +++ b/zio/src/main/scala/com/baeldung/scala/zio/streams/ZPipelineExample.scala @@ -16,5 +16,5 @@ object ZPipelineExample extends ZIOAppDefault { val totalSum: ZIO[Any, Nothing, Int] = firstStreamMapped.concat(secondStreamMapped).runSum - override def run: ZIO[Any with ZIOAppArgs with Scope, Any, Any] = totalSum + override def run: ZIO[Any & ZIOAppArgs & Scope, Any, Any] = totalSum } diff --git a/zio/src/main/scala/com/baeldung/scala/zio/zio_kafka/workflow/KafkaProducer.scala b/zio/src/main/scala/com/baeldung/scala/zio/zio_kafka/workflow/KafkaProducer.scala index d6baedf4f..0527b92dc 100644 --- a/zio/src/main/scala/com/baeldung/scala/zio/zio_kafka/workflow/KafkaProducer.scala +++ b/zio/src/main/scala/com/baeldung/scala/zio/zio_kafka/workflow/KafkaProducer.scala @@ -10,7 +10,7 @@ object KafkaProducer { topic: String, key: String, value: CustomMessage - ): RIO[Any with Producer, RecordMetadata] = + ): RIO[Any & Producer, RecordMetadata] = Producer.produce[Any, String, CustomMessage]( topic = topic, key = key, diff --git a/zio/src/test/scala/com/baeldung/scala/zio/errorhandling/ErrorHandlingUnitTest.scala b/zio/src/test/scala/com/baeldung/scala/zio/errorhandling/ErrorHandlingUnitTest.scala index 0745baa06..54af05577 100644 --- a/zio/src/test/scala/com/baeldung/scala/zio/errorhandling/ErrorHandlingUnitTest.scala +++ b/zio/src/test/scala/com/baeldung/scala/zio/errorhandling/ErrorHandlingUnitTest.scala @@ -6,7 +6,7 @@ import zio.test._ object ErrorHandlingUnitTest extends ZIOSpecDefault { val successResult = "success" - override def spec: Spec[TestEnvironment with Scope, Any] = + override def spec: Spec[TestEnvironment & Scope, Any] = suite("ErrorHandlingUnitTest")( test("usingEither returns Either of String") { for { diff --git a/zio/src/test/scala/com/baeldung/scala/zio/prelude/voting/VotingUnitTest.scala b/zio/src/test/scala/com/baeldung/scala/zio/prelude/voting/VotingUnitTest.scala index 01b3dded5..064008bca 100644 --- a/zio/src/test/scala/com/baeldung/scala/zio/prelude/voting/VotingUnitTest.scala +++ b/zio/src/test/scala/com/baeldung/scala/zio/prelude/voting/VotingUnitTest.scala @@ -16,7 +16,7 @@ class VotingUnitTest extends AnyWordSpec { val rightVotes = VoteState(Map(zioHttp -> Votes(2), zioTlsHttp -> Votes(2))) - val totalVotes = leftVotes combine rightVotes + val totalVotes = leftVotes `combine` rightVotes assertResult(Votes(6))(totalVotes.map(zioHttp)) assertResult(Votes(2))(totalVotes.map(uziHttp)) From 61c2084c7f02118f8066b830d0dd74c2d59d4c44 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 18 May 2024 22:50:47 +0200 Subject: [PATCH 0604/1318] ran scalafmt --- .../patternmatching/PatternMatching.scala | 5 +++-- .../PatternMatchingUnitTest.scala | 20 ++++++++++++++----- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/patternmatching/PatternMatching.scala b/scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/patternmatching/PatternMatching.scala index 0320b1bdf..68f8e20d7 100644 --- a/scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/patternmatching/PatternMatching.scala +++ b/scala-core-modules/scala-core/src/main/scala/com/baeldung/scala/patternmatching/PatternMatching.scala @@ -96,8 +96,9 @@ class PatternMatching { case s"$firstName.$lastName@$domain.$extension" => s"Hey ${firstName.capitalize} ${lastName.capitalize}, $domain.$extension is your email domain" case s"$day-$month-${year}T$time" => s"$month $day, $year" - case s"$something($parenthesis)${_}" => s"String between parenthesis: $parenthesis" - case _ => "unknown pattern" + case s"$something($parenthesis)${_}" => + s"String between parenthesis: $parenthesis" + case _ => "unknown pattern" } } diff --git a/scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/patternmatching/PatternMatchingUnitTest.scala b/scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/patternmatching/PatternMatchingUnitTest.scala index cea3ec625..0dfae9c2b 100644 --- a/scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/patternmatching/PatternMatchingUnitTest.scala +++ b/scala-core-modules/scala-core/src/test/scala/com/baeldung/scala/patternmatching/PatternMatchingUnitTest.scala @@ -157,31 +157,41 @@ class PatternMatchingUnitTest { @Test def whenEmailIsPassedWithComDomain_itShouldExtractParts(): Unit = { - val result = new PatternMatching().stringInterpolationMatching("james.kirk@starfleet.com") + val result = new PatternMatching().stringInterpolationMatching( + "james.kirk@starfleet.com" + ) assertEquals("Hey James Kirk, starfleet.com is your email domain", result) } @Test def whenEmailIsPassedWithCoInDomain_itShouldExtractParts(): Unit = { - val result = new PatternMatching().stringInterpolationMatching("james.kirk@starfleet.co.in") + val result = new PatternMatching().stringInterpolationMatching( + "james.kirk@starfleet.co.in" + ) assertEquals("Hey James Kirk, starfleet.co.in is your email domain", result) } @Test def whenDateTimeIsPassed_itShouldExtractDate(): Unit = { - val result = new PatternMatching().stringInterpolationMatching("01-April-2024T10:20:30") + val result = new PatternMatching().stringInterpolationMatching( + "01-April-2024T10:20:30" + ) assertEquals("April 01, 2024", result) } @Test def whenStringIsPassed_itShouldExtractDataBetweenParenthesis(): Unit = { - val result = new PatternMatching().stringInterpolationMatching("Here is a (special) string") + val result = new PatternMatching().stringInterpolationMatching( + "Here is a (special) string" + ) assertEquals("String between parenthesis: special", result) } @Test def whenUnknownDataIsPassed_itShouldReturnDefaultString(): Unit = { - val result = new PatternMatching().stringInterpolationMatching("something-unknown.unmatched") + val result = new PatternMatching().stringInterpolationMatching( + "something-unknown.unmatched" + ) assertEquals("unknown pattern", result) } From 9cdf4c558f2efaf427e32c9e8f14dd15b7505529 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sun, 19 May 2024 09:48:44 +0200 Subject: [PATCH 0605/1318] fixed more warnings --- .../scala/com/baeldung/scala/adt/Examples.scala | 16 ++++++++-------- .../scala/voidtypes/UnitReturnType.scala | 8 ++++---- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/adt/Examples.scala b/scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/adt/Examples.scala index e75be00f4..d2ab5f295 100644 --- a/scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/adt/Examples.scala +++ b/scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/adt/Examples.scala @@ -2,16 +2,16 @@ package com.baeldung.scala.adt object Examples { sealed trait Color - final case object White extends Color - final case object Black extends Color + case object White extends Color + case object Black extends Color sealed trait Name - final case object Pawn extends Name - final case object Rook extends Name - final case object Knight extends Name - final case object Bishop extends Name - final case object Queen extends Name - final case object King extends Name + case object Pawn extends Name + case object Rook extends Name + case object Knight extends Name + case object Bishop extends Name + case object Queen extends Name + case object King extends Name case class ChessPiece(color: Color, name: Name) diff --git a/scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/voidtypes/UnitReturnType.scala b/scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/voidtypes/UnitReturnType.scala index 2b18aae32..389459a74 100644 --- a/scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/voidtypes/UnitReturnType.scala +++ b/scala-lang-modules/scala-lang-2/src/main/scala/com/baeldung/scala/voidtypes/UnitReturnType.scala @@ -2,21 +2,21 @@ package com.baeldung.scala.voidtypes object UnitReturnType extends App { - def functionReturnUnit: Unit = { + def functionReturnUnit(): Unit = { """ do something, don't return anything """ } - println("result of function returning Unit: %s".format(functionReturnUnit)) + println("result of function returning Unit: %s".format(functionReturnUnit())) - def functionReturnImplicitUnit: Unit = { + def functionReturnImplicitUnit(): Unit = { s""" do something, don't return anything """ } println( "result of function returning implicit Unit: %s".format( - functionReturnImplicitUnit + functionReturnImplicitUnit() ) ) } From 52332eed58b7923a64d07a5ca76ead4eb1adbc44 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sun, 19 May 2024 10:37:35 +0200 Subject: [PATCH 0606/1318] Fixed more warnings --- play-scala/dependency-injection/app/models/Order.scala | 2 +- play-scala/dependency-injection/app/models/User.scala | 2 +- .../rest-api/app/controllers/TodoListController.scala | 4 ++-- .../baeldung/scala/uniontypes/ArbitraryArityUnionType.scala | 4 ++-- .../cache/service/SyncQueryCustomMemoizeKeyService.scala | 2 +- .../scala-2/com/baeldung/scala/pureconfig/Configs.scala | 4 ++-- .../com/baeldung/scala/shapeless/ShapelessUnitTest.scala | 6 +++--- .../scala-2/com/baeldung/scala/akka/http/MovieServer.scala | 4 ++-- .../scala/com/baeldung/scala/akka/TestServiceUnitTest.scala | 2 +- .../src/test/scala/com/baeldung/scala/akka/UnitTest.scala | 2 +- .../scala-2/com/baeldung/scala/akka/alpakka/Configs.scala | 4 ++-- .../src/main/scala/com/baeldung/scala/adt/Examples.scala | 6 +++--- .../baeldung/scala/voidtypes/UnitReturnTypeUnitTest.scala | 4 ++-- .../main/scala-2/scalatra/tutorial/model/DbSupport.scala | 2 +- 14 files changed, 24 insertions(+), 24 deletions(-) diff --git a/play-scala/dependency-injection/app/models/Order.scala b/play-scala/dependency-injection/app/models/Order.scala index 7c3f2c55f..083194f3f 100644 --- a/play-scala/dependency-injection/app/models/Order.scala +++ b/play-scala/dependency-injection/app/models/Order.scala @@ -3,7 +3,7 @@ package models import play.api.libs.json.Json object Order { - implicit val writes = Json.writes[Order] + implicit val writes: play.api.libs.json.OWrites[models.Order] = Json.writes[Order] } case class Order(id: Long, userId: Long, date: Long, isEnterprise: Boolean) diff --git a/play-scala/dependency-injection/app/models/User.scala b/play-scala/dependency-injection/app/models/User.scala index 63a93960a..d4fc5defb 100644 --- a/play-scala/dependency-injection/app/models/User.scala +++ b/play-scala/dependency-injection/app/models/User.scala @@ -5,5 +5,5 @@ import play.api.libs.json.Json case class User(id: Long, name: String) object User { - implicit val writes = Json.writes[User] + implicit val writes: play.api.libs.json.OWrites[models.User] = Json.writes[User] } diff --git a/play-scala/rest-api/app/controllers/TodoListController.scala b/play-scala/rest-api/app/controllers/TodoListController.scala index c299f94fb..86ba47ca7 100644 --- a/play-scala/rest-api/app/controllers/TodoListController.scala +++ b/play-scala/rest-api/app/controllers/TodoListController.scala @@ -14,8 +14,8 @@ class TodoListController @Inject() ( todoList += TodoListItem(1, "test", true) todoList += TodoListItem(2, "some other value", false) - implicit val todoListJson = Json.format[TodoListItem] - implicit val newTodoListJson = Json.format[NewTodoListItem] + implicit val todoListJson: play.api.libs.json.OFormat[models.TodoListItem] = Json.format[TodoListItem] + implicit val newTodoListJson: play.api.libs.json.OFormat[models.NewTodoListItem] = Json.format[NewTodoListItem] // curl localhost:9000/todo def getAll(): Action[AnyContent] = Action { diff --git a/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionType.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionType.scala index d8ffe31b3..7d7e7e708 100644 --- a/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionType.scala +++ b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionType.scala @@ -25,8 +25,8 @@ object ArbitraryArityUnionType extends App { sealed trait AOrB[A, B] object AOrB { - implicit def aInstance[A, B](a: A) = new AOrB[A, B] {} - implicit def bInstance[A, B](b: B) = new AOrB[A, B] {} + implicit def aInstance[A, B](a: A): AOrB[A,B] = new AOrB[A, B] {} + implicit def bInstance[A, B](b: B): AOrB[A,B] = new AOrB[A, B] {} } def isIntOrString[T <% String AOrB Int](t: T): String = t match { diff --git a/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryCustomMemoizeKeyService.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryCustomMemoizeKeyService.scala index e06317ea7..fee0ce2ea 100644 --- a/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryCustomMemoizeKeyService.scala +++ b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryCustomMemoizeKeyService.scala @@ -28,7 +28,7 @@ object GuavaCacheCustomMemoizationKeyConfig { val memoizedUnderlyingCustomKeyGuavaCache = CacheBuilder.newBuilder().maximumSize(10000L).build[String, Entry[User]] - implicit val customKeyCacheConfig = CacheConfig(memoization = + implicit val customKeyCacheConfig: scalacache.CacheConfig = CacheConfig(memoization = MemoizationConfig(toStringConverter = CustomKeyGenerator) ) diff --git a/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/pureconfig/Configs.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/pureconfig/Configs.scala index 4ab46e027..7d2580ad4 100644 --- a/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/pureconfig/Configs.scala +++ b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/pureconfig/Configs.scala @@ -18,10 +18,10 @@ object Protocol { } object impl { - implicit val localDateConvert = localDateConfigConvert( + implicit val localDateConvert: pureconfig.ConfigConvert[java.time.LocalDate] = localDateConfigConvert( DateTimeFormatter.ISO_DATE ) - implicit val localDateTimeConvert = localDateTimeConfigConvert( + implicit val localDateTimeConvert: pureconfig.ConfigConvert[java.time.LocalDateTime] = localDateTimeConfigConvert( DateTimeFormatter.ISO_DATE_TIME ) } diff --git a/scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/shapeless/ShapelessUnitTest.scala b/scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/shapeless/ShapelessUnitTest.scala index fd7339df7..04aa5095b 100644 --- a/scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/shapeless/ShapelessUnitTest.scala +++ b/scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/shapeless/ShapelessUnitTest.scala @@ -138,9 +138,9 @@ class ShapelessUnitTest extends AnyWordSpec with Matchers { "calculate length of variant input types" in { import shapeless._ object polyLength extends Poly1 { - implicit val listCase = at[List[Int]](i => i.length) - implicit val stringCase = at[String](d => d.length) - implicit val arrayCase = at[Array[Int]](d => d.length) + implicit val listCase: polyLength.Case.Aux[List[Int], Int] = at[List[Int]](i => i.length) + implicit val stringCase: polyLength.Case.Aux[String, Int] = at[String](d => d.length) + implicit val arrayCase: polyLength.Case.Aux[Array[Int], Int] = at[Array[Int]](d => d.length) } val list = List(1, 2) :: "123" :: Array(1, 2, 3, 4) :: HNil diff --git a/scala-akka-2/src/main/scala-2/com/baeldung/scala/akka/http/MovieServer.scala b/scala-akka-2/src/main/scala-2/com/baeldung/scala/akka/http/MovieServer.scala index eb934ff68..7674fb5f0 100644 --- a/scala-akka-2/src/main/scala-2/com/baeldung/scala/akka/http/MovieServer.scala +++ b/scala-akka-2/src/main/scala-2/com/baeldung/scala/akka/http/MovieServer.scala @@ -13,9 +13,9 @@ import scala.util._ object MovieServer extends App { - implicit val system = ActorSystem("MoviesServer") + implicit val system: akka.actor.ActorSystem = ActorSystem("MoviesServer") val movieService = new MovieService() - implicit val movieFormat = jsonFormat3(Movie) + implicit val movieFormat: spray.json.RootJsonFormat[com.baeldung.scala.akka.http.Movie] = jsonFormat3(Movie) val route = path("movies" / "heartbeat") { get { diff --git a/scala-akka-3/src/test/scala/com/baeldung/scala/akka/TestServiceUnitTest.scala b/scala-akka-3/src/test/scala/com/baeldung/scala/akka/TestServiceUnitTest.scala index 5a7eeab4a..a3b078546 100644 --- a/scala-akka-3/src/test/scala/com/baeldung/scala/akka/TestServiceUnitTest.scala +++ b/scala-akka-3/src/test/scala/com/baeldung/scala/akka/TestServiceUnitTest.scala @@ -10,7 +10,7 @@ class TestServiceUnitTest with BeforeAndAfterAll with Matchers { val testKit = ActorTestKit() - implicit val system = testKit.system + implicit val system: akka.actor.typed.ActorSystem[Nothing] = testKit.system // responsible for shutting down the ActorSystem override def afterAll(): Unit = testKit.shutdownTestKit() diff --git a/scala-akka-3/src/test/scala/com/baeldung/scala/akka/UnitTest.scala b/scala-akka-3/src/test/scala/com/baeldung/scala/akka/UnitTest.scala index 92fc1a139..16dd4181f 100644 --- a/scala-akka-3/src/test/scala/com/baeldung/scala/akka/UnitTest.scala +++ b/scala-akka-3/src/test/scala/com/baeldung/scala/akka/UnitTest.scala @@ -110,7 +110,7 @@ class TrafficLightTestFutUnitTest extends TestServiceUnitTest { import scala.concurrent.duration._ val sender = testKit.spawn(TrafficLight(), "traffic") val duration = 300.millis - implicit val timeout = Timeout(duration) + implicit val timeout: akka.util.Timeout = Timeout(duration) val signalFut = sender.ask(replyTo => TrafficLight.SignalCommand.GetSignal(replyTo)) diff --git a/scala-akka/src/main/scala-2/com/baeldung/scala/akka/alpakka/Configs.scala b/scala-akka/src/main/scala-2/com/baeldung/scala/akka/alpakka/Configs.scala index 5d899f691..a93434a4f 100644 --- a/scala-akka/src/main/scala-2/com/baeldung/scala/akka/alpakka/Configs.scala +++ b/scala-akka/src/main/scala-2/com/baeldung/scala/akka/alpakka/Configs.scala @@ -5,8 +5,8 @@ import akka.stream.ActorMaterializer object Configs { - implicit val actorSystem = ActorSystem("Alpakka") - implicit val materializer = ActorMaterializer() + implicit val actorSystem: akka.actor.ActorSystem = ActorSystem("Alpakka") + implicit val materializer: akka.stream.ActorMaterializer = ActorMaterializer() val filePath = "vehicle_data.log" diff --git a/scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/adt/Examples.scala b/scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/adt/Examples.scala index d2ab5f295..bb266bce3 100644 --- a/scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/adt/Examples.scala +++ b/scala-core-modules/scala-core-5/src/main/scala/com/baeldung/scala/adt/Examples.scala @@ -25,9 +25,9 @@ object Examples { } sealed trait SemaphoreColor - final case object Green extends SemaphoreColor - final case object Amber extends SemaphoreColor - final case object Red extends SemaphoreColor + case object Green extends SemaphoreColor + case object Amber extends SemaphoreColor + case object Red extends SemaphoreColor trait Feline trait Animal diff --git a/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/voidtypes/UnitReturnTypeUnitTest.scala b/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/voidtypes/UnitReturnTypeUnitTest.scala index 37b1d8ebd..4b6849e46 100644 --- a/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/voidtypes/UnitReturnTypeUnitTest.scala +++ b/scala-lang-modules/scala-lang-2/src/test/scala/com/baeldung/scala/voidtypes/UnitReturnTypeUnitTest.scala @@ -5,11 +5,11 @@ import org.scalatest.funsuite.AnyFunSuite class UnitReturnTypeUnitTest extends AnyFunSuite { test("test return value of unit function") { - assert(UnitReturnType.functionReturnUnit == ()) + assert(UnitReturnType.functionReturnUnit() == ()) } test("test return value of implicit unit function") { - assert(UnitReturnType.functionReturnImplicitUnit == ()) + assert(UnitReturnType.functionReturnImplicitUnit() == ()) } } diff --git a/scalatra/src/main/scala-2/scalatra/tutorial/model/DbSupport.scala b/scalatra/src/main/scala-2/scalatra/tutorial/model/DbSupport.scala index ef04324a5..7523830e0 100644 --- a/scalatra/src/main/scala-2/scalatra/tutorial/model/DbSupport.scala +++ b/scalatra/src/main/scala-2/scalatra/tutorial/model/DbSupport.scala @@ -5,7 +5,7 @@ import slick.jdbc.H2Profile.api._ trait DbSupport extends FutureSupport { - protected implicit def executor = + protected implicit def executor: scala.concurrent.ExecutionContext = scala.concurrent.ExecutionContext.Implicits.global def db: Database From 53b140662f157255d32820f39bb4719cf39cbeca Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sun, 19 May 2024 21:57:35 +0200 Subject: [PATCH 0607/1318] ran scalafmt --- .../dependency-injection/app/models/Order.scala | 3 ++- .../dependency-injection/app/models/User.scala | 3 ++- .../app/controllers/TodoListController.scala | 7 +++++-- .../uniontypes/ArbitraryArityUnionType.scala | 4 ++-- .../SyncQueryCustomMemoizeKeyService.scala | 7 ++++--- .../com/baeldung/scala/pureconfig/Configs.scala | 15 +++++++++------ .../scala/shapeless/ShapelessUnitTest.scala | 9 ++++++--- .../baeldung/scala/akka/http/MovieServer.scala | 4 +++- 8 files changed, 33 insertions(+), 19 deletions(-) diff --git a/play-scala/dependency-injection/app/models/Order.scala b/play-scala/dependency-injection/app/models/Order.scala index 083194f3f..df07a0337 100644 --- a/play-scala/dependency-injection/app/models/Order.scala +++ b/play-scala/dependency-injection/app/models/Order.scala @@ -3,7 +3,8 @@ package models import play.api.libs.json.Json object Order { - implicit val writes: play.api.libs.json.OWrites[models.Order] = Json.writes[Order] + implicit val writes: play.api.libs.json.OWrites[models.Order] = + Json.writes[Order] } case class Order(id: Long, userId: Long, date: Long, isEnterprise: Boolean) diff --git a/play-scala/dependency-injection/app/models/User.scala b/play-scala/dependency-injection/app/models/User.scala index d4fc5defb..63336411a 100644 --- a/play-scala/dependency-injection/app/models/User.scala +++ b/play-scala/dependency-injection/app/models/User.scala @@ -5,5 +5,6 @@ import play.api.libs.json.Json case class User(id: Long, name: String) object User { - implicit val writes: play.api.libs.json.OWrites[models.User] = Json.writes[User] + implicit val writes: play.api.libs.json.OWrites[models.User] = + Json.writes[User] } diff --git a/play-scala/rest-api/app/controllers/TodoListController.scala b/play-scala/rest-api/app/controllers/TodoListController.scala index 86ba47ca7..ebfaef806 100644 --- a/play-scala/rest-api/app/controllers/TodoListController.scala +++ b/play-scala/rest-api/app/controllers/TodoListController.scala @@ -14,8 +14,11 @@ class TodoListController @Inject() ( todoList += TodoListItem(1, "test", true) todoList += TodoListItem(2, "some other value", false) - implicit val todoListJson: play.api.libs.json.OFormat[models.TodoListItem] = Json.format[TodoListItem] - implicit val newTodoListJson: play.api.libs.json.OFormat[models.NewTodoListItem] = Json.format[NewTodoListItem] + implicit val todoListJson: play.api.libs.json.OFormat[models.TodoListItem] = + Json.format[TodoListItem] + implicit val newTodoListJson + : play.api.libs.json.OFormat[models.NewTodoListItem] = + Json.format[NewTodoListItem] // curl localhost:9000/todo def getAll(): Action[AnyContent] = Action { diff --git a/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionType.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionType.scala index 7d7e7e708..f7f44b6da 100644 --- a/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionType.scala +++ b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/uniontypes/ArbitraryArityUnionType.scala @@ -25,8 +25,8 @@ object ArbitraryArityUnionType extends App { sealed trait AOrB[A, B] object AOrB { - implicit def aInstance[A, B](a: A): AOrB[A,B] = new AOrB[A, B] {} - implicit def bInstance[A, B](b: B): AOrB[A,B] = new AOrB[A, B] {} + implicit def aInstance[A, B](a: A): AOrB[A, B] = new AOrB[A, B] {} + implicit def bInstance[A, B](b: B): AOrB[A, B] = new AOrB[A, B] {} } def isIntOrString[T <% String AOrB Int](t: T): String = t match { diff --git a/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryCustomMemoizeKeyService.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryCustomMemoizeKeyService.scala index fee0ce2ea..6c8d03fe7 100644 --- a/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryCustomMemoizeKeyService.scala +++ b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/cache/service/SyncQueryCustomMemoizeKeyService.scala @@ -28,9 +28,10 @@ object GuavaCacheCustomMemoizationKeyConfig { val memoizedUnderlyingCustomKeyGuavaCache = CacheBuilder.newBuilder().maximumSize(10000L).build[String, Entry[User]] - implicit val customKeyCacheConfig: scalacache.CacheConfig = CacheConfig(memoization = - MemoizationConfig(toStringConverter = CustomKeyGenerator) - ) + implicit val customKeyCacheConfig: scalacache.CacheConfig = + CacheConfig(memoization = + MemoizationConfig(toStringConverter = CustomKeyGenerator) + ) implicit val guavaCache: Cache[User] = GuavaCache( memoizedUnderlyingCustomKeyGuavaCache diff --git a/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/pureconfig/Configs.scala b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/pureconfig/Configs.scala index 7d2580ad4..3b6ef44bf 100644 --- a/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/pureconfig/Configs.scala +++ b/scala-2-modules/scala2-libraries/src/main/scala-2/com/baeldung/scala/pureconfig/Configs.scala @@ -18,12 +18,15 @@ object Protocol { } object impl { - implicit val localDateConvert: pureconfig.ConfigConvert[java.time.LocalDate] = localDateConfigConvert( - DateTimeFormatter.ISO_DATE - ) - implicit val localDateTimeConvert: pureconfig.ConfigConvert[java.time.LocalDateTime] = localDateTimeConfigConvert( - DateTimeFormatter.ISO_DATE_TIME - ) + implicit val localDateConvert: pureconfig.ConfigConvert[java.time.LocalDate] = + localDateConfigConvert( + DateTimeFormatter.ISO_DATE + ) + implicit val localDateTimeConvert + : pureconfig.ConfigConvert[java.time.LocalDateTime] = + localDateTimeConfigConvert( + DateTimeFormatter.ISO_DATE_TIME + ) } final case class Port(number: Int) extends AnyVal diff --git a/scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/shapeless/ShapelessUnitTest.scala b/scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/shapeless/ShapelessUnitTest.scala index 04aa5095b..6b91c7ad2 100644 --- a/scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/shapeless/ShapelessUnitTest.scala +++ b/scala-2-modules/scala2-libraries/src/test/scala-2/com/baeldung/scala/shapeless/ShapelessUnitTest.scala @@ -138,9 +138,12 @@ class ShapelessUnitTest extends AnyWordSpec with Matchers { "calculate length of variant input types" in { import shapeless._ object polyLength extends Poly1 { - implicit val listCase: polyLength.Case.Aux[List[Int], Int] = at[List[Int]](i => i.length) - implicit val stringCase: polyLength.Case.Aux[String, Int] = at[String](d => d.length) - implicit val arrayCase: polyLength.Case.Aux[Array[Int], Int] = at[Array[Int]](d => d.length) + implicit val listCase: polyLength.Case.Aux[List[Int], Int] = + at[List[Int]](i => i.length) + implicit val stringCase: polyLength.Case.Aux[String, Int] = + at[String](d => d.length) + implicit val arrayCase: polyLength.Case.Aux[Array[Int], Int] = + at[Array[Int]](d => d.length) } val list = List(1, 2) :: "123" :: Array(1, 2, 3, 4) :: HNil diff --git a/scala-akka-2/src/main/scala-2/com/baeldung/scala/akka/http/MovieServer.scala b/scala-akka-2/src/main/scala-2/com/baeldung/scala/akka/http/MovieServer.scala index 7674fb5f0..6f3ab509e 100644 --- a/scala-akka-2/src/main/scala-2/com/baeldung/scala/akka/http/MovieServer.scala +++ b/scala-akka-2/src/main/scala-2/com/baeldung/scala/akka/http/MovieServer.scala @@ -15,7 +15,9 @@ object MovieServer extends App { implicit val system: akka.actor.ActorSystem = ActorSystem("MoviesServer") val movieService = new MovieService() - implicit val movieFormat: spray.json.RootJsonFormat[com.baeldung.scala.akka.http.Movie] = jsonFormat3(Movie) + implicit val movieFormat + : spray.json.RootJsonFormat[com.baeldung.scala.akka.http.Movie] = + jsonFormat3(Movie) val route = path("movies" / "heartbeat") { get { From 032dcde052db5219e98f2f75ccdf839ad4d78c23 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Mon, 20 May 2024 10:13:43 +0200 Subject: [PATCH 0608/1318] Moved underscore tutorial to Scala 2 module --- scala-2-modules/scala2-core/README.md | 3 ++- .../com/baeldung/scala/underscore/UnderscoreUsages.scala | 4 ++-- .../scala/underscore/UnderscoreUsagesUnitTest.scala | 9 +++++---- scala-core-modules/scala-core-2/README.md | 1 - 4 files changed, 9 insertions(+), 8 deletions(-) rename {scala-core-modules/scala-core-2/src/main/scala => scala-2-modules/scala2-core/src/main/scala-2}/com/baeldung/scala/underscore/UnderscoreUsages.scala (88%) rename {scala-core-modules/scala-core-2/src/test/scala => scala-2-modules/scala2-core/src/test/scala-2}/com/baeldung/scala/underscore/UnderscoreUsagesUnitTest.scala (95%) diff --git a/scala-2-modules/scala2-core/README.md b/scala-2-modules/scala2-core/README.md index 7956a5737..818ad117f 100644 --- a/scala-2-modules/scala2-core/README.md +++ b/scala-2-modules/scala2-core/README.md @@ -8,4 +8,5 @@ - [Introduction to Macros in Scala 2](https://www.baeldung.com/scala/scala2-macros) - [Demystifying View and Context Bounds](https://www.baeldung.com/scala/view-context-bounds) - [Introduction to Scala](https://www.baeldung.com/scala/scala-intro) -- [Exception Handling in Scala](https://www.baeldung.com/scala/exception-handling) \ No newline at end of file +- [Exception Handling in Scala](https://www.baeldung.com/scala/exception-handling) +- [Usages of Underscore (_) in Scala](https://www.baeldung.com/scala/underscore) \ No newline at end of file diff --git a/scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/underscore/UnderscoreUsages.scala b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/underscore/UnderscoreUsages.scala similarity index 88% rename from scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/underscore/UnderscoreUsages.scala rename to scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/underscore/UnderscoreUsages.scala index 9b181442d..157b6cda5 100644 --- a/scala-core-modules/scala-core-2/src/main/scala/com/baeldung/scala/underscore/UnderscoreUsages.scala +++ b/scala-2-modules/scala2-core/src/main/scala-2/com/baeldung/scala/underscore/UnderscoreUsages.scala @@ -2,7 +2,7 @@ package com.baeldung.scala.underscore object UnderscoreUsages { - def getLength(x: List[List[?]]): Int = x.length + def getLength(x: List[List[_]]): Int = x.length def itemTransaction(price: Double): String = { price match { @@ -33,7 +33,7 @@ object UnderscoreUsages { } } - def list_++(list: List[?]): List[?] = List.concat(list, list) + def list_++(list: List[_]): List[_] = List.concat(list, list) trait ObjectContainer[T[_]] { // higher kinded type parameter def checkIfEmpty[A](collection: T[A]): Boolean diff --git a/scala-core-modules/scala-core-2/src/test/scala/com/baeldung/scala/underscore/UnderscoreUsagesUnitTest.scala b/scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/underscore/UnderscoreUsagesUnitTest.scala similarity index 95% rename from scala-core-modules/scala-core-2/src/test/scala/com/baeldung/scala/underscore/UnderscoreUsagesUnitTest.scala rename to scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/underscore/UnderscoreUsagesUnitTest.scala index d2c6204e6..d72fb0391 100644 --- a/scala-core-modules/scala-core-2/src/test/scala/com/baeldung/scala/underscore/UnderscoreUsagesUnitTest.scala +++ b/scala-2-modules/scala2-core/src/test/scala-2/com/baeldung/scala/underscore/UnderscoreUsagesUnitTest.scala @@ -1,8 +1,9 @@ package com.baeldung.scala.underscore -import com.baeldung.scala.underscore.UnderscoreUsages._ import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpec +import UnderscoreUsages._ + class UnderscoreUsagesUnitTest extends AnyWordSpec with Matchers { "The underscore" should { @@ -58,12 +59,12 @@ class UnderscoreUsagesUnitTest extends AnyWordSpec with Matchers { e shouldBe "e" } "work in reassigning a a function to a value" in { - val times = multiplier + val times = multiplier _ multiplier(8, 13) shouldBe times(8, 13) } "work in converting a sequence to variable arguments" in { val sumable = Seq(4, 5, 10, 3) - val sumOfSumable = sum(sumable*) + val sumOfSumable = sum(sumable: _*) sumOfSumable shouldBe 22 } "generate a partially applied function" in { @@ -71,7 +72,7 @@ class UnderscoreUsagesUnitTest extends AnyWordSpec with Matchers { val sumFiveAndTen = sumToTen(5) sumFiveAndTen shouldBe 15 - val foo = bar(1, 2) + val foo = bar(1, 2) _ foo("Some string", "Another string")(3 / 5, 6 / 5) shouldBe 1 } "work in overriding a method's setter" in { diff --git a/scala-core-modules/scala-core-2/README.md b/scala-core-modules/scala-core-2/README.md index b5acf3ade..3cc148175 100644 --- a/scala-core-modules/scala-core-2/README.md +++ b/scala-core-modules/scala-core-2/README.md @@ -9,7 +9,6 @@ This module contains articles about Scala's core features. - [Futures and Promises in Scala](https://www.baeldung.com/scala/futures-promises) - [Named and Default Arguments in Scala](https://www.baeldung.com/scala/named-default-arguments) - [Self-Type Annotation in Scala](https://www.baeldung.com/scala/self-type-annotation) -- [Usages of Underscore (_) in Scala](https://www.baeldung.com/scala/underscore) - [A DSL for Writing “20 seconds” in Scala](https://www.baeldung.com/scala/dsl-writing-20-seconds) - [Error Handling in Scala](https://www.baeldung.com/scala/error-handling) - [Higher-Kinded Types](https://www.baeldung.com/scala/higher-kinded-types) From ad27f481489f1d2d62823299f202a5f4c171afbe Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Wed, 22 May 2024 16:58:06 +0800 Subject: [PATCH 0609/1318] Update README.md --- scala-libraries-standalone/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-libraries-standalone/README.md b/scala-libraries-standalone/README.md index 5d52bdded..34c58c4d2 100644 --- a/scala-libraries-standalone/README.md +++ b/scala-libraries-standalone/README.md @@ -2,3 +2,4 @@ - [Working with Redis in Scala](https://www.baeldung.com/scala/redis) - [Introduction to Tapir](https://www.baeldung.com/scala/tapir) +- [Refining Existing Types in Scala With Refined](https://www.baeldung.com/scala/refined-types) From cf6b701c8b4949b1b84654c4ebf236309dd9ff4d Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Wed, 22 May 2024 16:58:57 +0800 Subject: [PATCH 0610/1318] Update README.md --- .../scala-core-collections-4/README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/scala-core-collections-modules/scala-core-collections-4/README.md b/scala-core-collections-modules/scala-core-collections-4/README.md index e5554115a..ba4f56f04 100644 --- a/scala-core-collections-modules/scala-core-collections-4/README.md +++ b/scala-core-collections-modules/scala-core-collections-4/README.md @@ -1,3 +1,2 @@ ## Relevant Articles - -- +- [Using filter() and takeWhile() With Collections in Scala](https://www.baeldung.com/scala/filter-takewhile) From 34ac49a9047ff99a1c8f55efa017a0c38196ef7b Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 24 May 2024 15:16:41 +0200 Subject: [PATCH 0611/1318] Upgrade play modules to scala 3 --- .../app/com/baeldung/arrival/db/manager/DbManager.scala | 2 +- .../arrival/db/repository/SlickArrivalRepository.scala | 2 +- .../baeldung/arrival/service/ArrivalDecoratorService.scala | 2 +- play-scala/application-tests/build.sbt | 2 +- .../baeldung/arrival/actions/SourceActionsUnitTest.scala | 5 +++-- .../arrival/service/isolated/InMemoryDbManager.scala | 2 +- play-scala/async-tasks/build.sbt | 2 +- play-scala/caching-in-play/build.sbt | 2 +- play-scala/configuration-access/build.sbt | 2 +- .../test/controllers/HomeControllerUnitTest.scala | 2 +- .../test/services/MyServiceUnitTest.scala | 2 +- play-scala/custom-error-handling/build.sbt | 2 +- .../app/macwire/components/OrderComponents.scala | 2 +- play-scala/dependency-injection/build.sbt | 2 +- play-scala/introduction-to-play/build.sbt | 2 +- play-scala/introduction-to-play/conf/routes | 2 +- play-scala/play-static-assets/build.sbt | 2 +- .../play-templates/app/controllers/MenuController.scala | 2 +- .../app/controllers/ViewTemplateController.scala | 4 ++-- play-scala/play-templates/build.sbt | 2 +- .../test/controllers/MenuControllerUnitTest.scala | 4 ++-- .../test/controllers/ViewTemplateControllerUnitTest.scala | 4 ++-- .../rest-api/app/controllers/TodoListController.scala | 2 +- play-scala/rest-api/build.sbt | 2 +- play-scala/rest-api/conf/routes | 6 +++--- 25 files changed, 32 insertions(+), 31 deletions(-) diff --git a/play-scala/application-tests/app/com/baeldung/arrival/db/manager/DbManager.scala b/play-scala/application-tests/app/com/baeldung/arrival/db/manager/DbManager.scala index e901d2585..8fe37f96f 100644 --- a/play-scala/application-tests/app/com/baeldung/arrival/db/manager/DbManager.scala +++ b/play-scala/application-tests/app/com/baeldung/arrival/db/manager/DbManager.scala @@ -7,7 +7,7 @@ import scala.concurrent.Future trait DbManager { - def dbConfig: DatabaseConfig[_] + def dbConfig: DatabaseConfig[?] def execute[T](dbio: DBIO[T]): Future[T] = dbConfig.db.run(dbio) diff --git a/play-scala/application-tests/app/com/baeldung/arrival/db/repository/SlickArrivalRepository.scala b/play-scala/application-tests/app/com/baeldung/arrival/db/repository/SlickArrivalRepository.scala index dfb13c55e..62a9296f5 100644 --- a/play-scala/application-tests/app/com/baeldung/arrival/db/repository/SlickArrivalRepository.scala +++ b/play-scala/application-tests/app/com/baeldung/arrival/db/repository/SlickArrivalRepository.scala @@ -26,7 +26,7 @@ class SlickArrivalRepository @Inject() (val dbProfile: JdbcProfile)(implicit origin, destination, plane - ) <> ((Arrival.apply _).tupled, Arrival.unapply) + ) <> ((Arrival.apply).tupled, Arrival.unapply) } /** The starting point for all queries on the people table. diff --git a/play-scala/application-tests/app/com/baeldung/arrival/service/ArrivalDecoratorService.scala b/play-scala/application-tests/app/com/baeldung/arrival/service/ArrivalDecoratorService.scala index e21795b1e..9e8003fc4 100644 --- a/play-scala/application-tests/app/com/baeldung/arrival/service/ArrivalDecoratorService.scala +++ b/play-scala/application-tests/app/com/baeldung/arrival/service/ArrivalDecoratorService.scala @@ -19,7 +19,7 @@ class ArrivalDecoratorService @Inject() (configuration: Configuration) { private val maximumMediumNameLength = configuration.get[Int]("medium-name-max") - def decorate(undecorated: Arrival): Arrival with Size = new Arrival( + def decorate(undecorated: Arrival): Arrival & Size = new Arrival( undecorated.planeId, undecorated.origin, undecorated.destination, diff --git a/play-scala/application-tests/build.sbt b/play-scala/application-tests/build.sbt index 69f8a6d86..393a2a995 100644 --- a/play-scala/application-tests/build.sbt +++ b/play-scala/application-tests/build.sbt @@ -5,7 +5,7 @@ version := "1.0-SNAPSHOT" enablePlugins(PlayScala) -scalaVersion := ScalaVersions.scala2Version +scalaVersion := ScalaVersions.scala3Version libraryDependencies += guice libraryDependencies += "com.h2database" % "h2" % "1.4.200" diff --git a/play-scala/application-tests/test/com/baeldung/arrival/actions/SourceActionsUnitTest.scala b/play-scala/application-tests/test/com/baeldung/arrival/actions/SourceActionsUnitTest.scala index f8138b30f..3b4c0c222 100644 --- a/play-scala/application-tests/test/com/baeldung/arrival/actions/SourceActionsUnitTest.scala +++ b/play-scala/application-tests/test/com/baeldung/arrival/actions/SourceActionsUnitTest.scala @@ -7,6 +7,7 @@ import play.api.http.Status.{BAD_REQUEST, NO_CONTENT} import play.api.mvc.Headers import play.api.mvc.Results.NoContent import play.api.test.{FakeRequest, Helpers} +import play.api.mvc.{Action, AnyContent} class SourceActionsUnitTest extends AnyWordSpec @@ -20,7 +21,7 @@ class SourceActionsUnitTest "SourceAction" should { "return BAD_REQUEST status for missing source header" in { - val testee = SourceAction(anyContentParser)(globalEc) { _ => NoContent } + val testee: Action[AnyContent] = SourceAction(anyContentParser)(globalEc) { _ => NoContent } whenReady(testee.apply(FakeRequest())) { result => assert(result.header.status === BAD_REQUEST) @@ -28,7 +29,7 @@ class SourceActionsUnitTest } "return NO_CONTENT status for when source header is present" in { - val testee = SourceAction(anyContentParser)(globalEc) { _ => NoContent } + val testee: Action[AnyContent] = SourceAction(anyContentParser)(globalEc) { _ => NoContent } whenReady( testee.apply(FakeRequest().withHeaders(Headers("source" -> "foo"))) ) { result => diff --git a/play-scala/application-tests/test/com/baeldung/arrival/service/isolated/InMemoryDbManager.scala b/play-scala/application-tests/test/com/baeldung/arrival/service/isolated/InMemoryDbManager.scala index 82b08be5f..4b9934cb2 100644 --- a/play-scala/application-tests/test/com/baeldung/arrival/service/isolated/InMemoryDbManager.scala +++ b/play-scala/application-tests/test/com/baeldung/arrival/service/isolated/InMemoryDbManager.scala @@ -7,7 +7,7 @@ import slick.dbio.{DBIO, SuccessAction} import scala.concurrent.Future class InMemoryDbManager extends DbManager { - override def dbConfig: DatabaseConfig[_] = ??? + override def dbConfig: DatabaseConfig[?] = ??? override def execute[T](dbio: DBIO[T]): Future[T] = Future.successful(dbio.asInstanceOf[SuccessAction[T]].value) diff --git a/play-scala/async-tasks/build.sbt b/play-scala/async-tasks/build.sbt index 43f5da87d..f70ccaa23 100644 --- a/play-scala/async-tasks/build.sbt +++ b/play-scala/async-tasks/build.sbt @@ -5,6 +5,6 @@ version := "1.0-SNAPSHOT" enablePlugins(PlayScala) -scalaVersion := ScalaVersions.scala2Version +scalaVersion := ScalaVersions.scala3Version libraryDependencies += guice diff --git a/play-scala/caching-in-play/build.sbt b/play-scala/caching-in-play/build.sbt index 58f7dafcd..0f4fc58f2 100644 --- a/play-scala/caching-in-play/build.sbt +++ b/play-scala/caching-in-play/build.sbt @@ -5,7 +5,7 @@ version := "1.0-SNAPSHOT" enablePlugins(PlayScala) -scalaVersion := ScalaVersions.scala2Version +scalaVersion := ScalaVersions.scala3Version libraryDependencies += guice libraryDependencies += caffeine diff --git a/play-scala/configuration-access/build.sbt b/play-scala/configuration-access/build.sbt index 2822ad59d..b2bda2848 100644 --- a/play-scala/configuration-access/build.sbt +++ b/play-scala/configuration-access/build.sbt @@ -9,7 +9,7 @@ scalaVersion := ScalaVersions.scala2Version libraryDependencies += guice libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % Test -libraryDependencies += "org.mockito" % "mockito-scala_2.13" % "1.17.31" % Test +libraryDependencies += "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" // Adds additional packages into Twirl //TwirlKeys.templateImports += "com.baeldung.controllers._" diff --git a/play-scala/configuration-access/test/controllers/HomeControllerUnitTest.scala b/play-scala/configuration-access/test/controllers/HomeControllerUnitTest.scala index 542dab5ae..29b84c8cd 100644 --- a/play-scala/configuration-access/test/controllers/HomeControllerUnitTest.scala +++ b/play-scala/configuration-access/test/controllers/HomeControllerUnitTest.scala @@ -1,11 +1,11 @@ package controllers -import org.mockito.MockitoSugar import org.scalatestplus.play._ import org.scalatestplus.play.guice._ import play.api.test.Helpers._ import play.api.test._ import services.MyService +import org.scalatestplus.mockito.MockitoSugar /** Add your spec here. You can mock out a whole application including requests, * plugins etc. diff --git a/play-scala/configuration-access/test/services/MyServiceUnitTest.scala b/play-scala/configuration-access/test/services/MyServiceUnitTest.scala index 5e0252b07..1fcdccacf 100644 --- a/play-scala/configuration-access/test/services/MyServiceUnitTest.scala +++ b/play-scala/configuration-access/test/services/MyServiceUnitTest.scala @@ -2,10 +2,10 @@ package services import java.util.{Calendar, Date, TimeZone} -import org.mockito.MockitoSugar import org.scalatestplus.play._ import org.scalatestplus.play.guice._ import play.api.test._ +import org.scalatestplus.mockito.MockitoSugar class MyServiceUnitTest extends PlaySpec diff --git a/play-scala/custom-error-handling/build.sbt b/play-scala/custom-error-handling/build.sbt index f6f4fd0a5..132de1f4d 100644 --- a/play-scala/custom-error-handling/build.sbt +++ b/play-scala/custom-error-handling/build.sbt @@ -5,7 +5,7 @@ version := "1.0-SNAPSHOT" enablePlugins(PlayScala) -scalaVersion := ScalaVersions.scala2Version +scalaVersion := ScalaVersions.scala3Version libraryDependencies += guice libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % Test diff --git a/play-scala/dependency-injection/app/macwire/components/OrderComponents.scala b/play-scala/dependency-injection/app/macwire/components/OrderComponents.scala index 00ee58f2b..efe52de92 100644 --- a/play-scala/dependency-injection/app/macwire/components/OrderComponents.scala +++ b/play-scala/dependency-injection/app/macwire/components/OrderComponents.scala @@ -12,7 +12,7 @@ import macwire.services.{ OrderService } -trait OrderComponents extends { +trait OrderComponents { lazy val p1: OrderPipelineProcessor = (order: Order) => println("Processor 1 processed") diff --git a/play-scala/dependency-injection/build.sbt b/play-scala/dependency-injection/build.sbt index d9313bae8..19319c798 100644 --- a/play-scala/dependency-injection/build.sbt +++ b/play-scala/dependency-injection/build.sbt @@ -4,7 +4,7 @@ version := "1.0-SNAPSHOT" enablePlugins(PlayScala) -scalaVersion := ScalaVersions.scala2Version +scalaVersion := ScalaVersions.scala3Version libraryDependencies += guice libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % Test diff --git a/play-scala/introduction-to-play/build.sbt b/play-scala/introduction-to-play/build.sbt index ce659d126..4d1d1b138 100644 --- a/play-scala/introduction-to-play/build.sbt +++ b/play-scala/introduction-to-play/build.sbt @@ -5,7 +5,7 @@ version := "1.0-SNAPSHOT" enablePlugins(PlayScala) -scalaVersion := ScalaVersions.scala2Version +scalaVersion := ScalaVersions.scala3Version libraryDependencies += guice libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % Test diff --git a/play-scala/introduction-to-play/conf/routes b/play-scala/introduction-to-play/conf/routes index 575ecef46..81afe0062 100644 --- a/play-scala/introduction-to-play/conf/routes +++ b/play-scala/introduction-to-play/conf/routes @@ -4,7 +4,7 @@ # ~~~~ # An example controller showing a sample home page -GET / controllers.HomeController.index +GET / controllers.HomeController.index() GET /sum/:first/:second controllers.HomeController.printSum(first: Long, second: Long) # Map static resources from the /public folder to the /assets URL path diff --git a/play-scala/play-static-assets/build.sbt b/play-scala/play-static-assets/build.sbt index 5bec44058..98edfab12 100644 --- a/play-scala/play-static-assets/build.sbt +++ b/play-scala/play-static-assets/build.sbt @@ -6,7 +6,7 @@ version := "1.0-SNAPSHOT" enablePlugins(PlayScala) enablePlugins(SbtWeb) -scalaVersion := ScalaVersions.scala2Version +scalaVersion := ScalaVersions.scala3Version libraryDependencies += guice libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % Test diff --git a/play-scala/play-templates/app/controllers/MenuController.scala b/play-scala/play-templates/app/controllers/MenuController.scala index a5c89c086..33b799c22 100644 --- a/play-scala/play-templates/app/controllers/MenuController.scala +++ b/play-scala/play-templates/app/controllers/MenuController.scala @@ -10,7 +10,7 @@ class MenuController @Inject() ( cc: ControllerComponents ) extends AbstractController(cc) { - def availableProducts = Action { implicit request => + def availableProducts = Action { val products = List( Product("coffee", 8.99, true), Product("cake", 12.00, true), diff --git a/play-scala/play-templates/app/controllers/ViewTemplateController.scala b/play-scala/play-templates/app/controllers/ViewTemplateController.scala index 58dcc126b..336047a13 100644 --- a/play-scala/play-templates/app/controllers/ViewTemplateController.scala +++ b/play-scala/play-templates/app/controllers/ViewTemplateController.scala @@ -8,7 +8,7 @@ case class Article(title: String, url: String) class ViewTemplateController @Inject() (cc: ControllerComponents) extends AbstractController(cc) { - def index = Action { implicit request => + def index = Action { val articles = List( ( "Introduction to Play Framework", @@ -22,7 +22,7 @@ class ViewTemplateController @Inject() (cc: ControllerComponents) Ok(views.html.Baeldung.index(articles)) } - def withClass = Action { implicit request => + def withClass = Action { val articles = List( Article( "Introduction to Play Framework", diff --git a/play-scala/play-templates/build.sbt b/play-scala/play-templates/build.sbt index 87248526a..e043a703c 100644 --- a/play-scala/play-templates/build.sbt +++ b/play-scala/play-templates/build.sbt @@ -5,7 +5,7 @@ version := "1.0-SNAPSHOT" enablePlugins(PlayScala) -scalaVersion := ScalaVersions.scala2Version +scalaVersion := ScalaVersions.scala3Version libraryDependencies += guice libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % Test diff --git a/play-scala/play-templates/test/controllers/MenuControllerUnitTest.scala b/play-scala/play-templates/test/controllers/MenuControllerUnitTest.scala index 071889919..c17836cb2 100644 --- a/play-scala/play-templates/test/controllers/MenuControllerUnitTest.scala +++ b/play-scala/play-templates/test/controllers/MenuControllerUnitTest.scala @@ -18,12 +18,12 @@ class MenuControllerUnitTest val controller = new MenuController(template, stubControllerComponents()) val result = controller - .availableProducts() + .availableProducts .apply( FakeRequest(GET, "/menu") ) - contentAsString(result) must include("coffee 8,99 €") + contentAsString(result) `must` include("coffee 8,99 €") } } } diff --git a/play-scala/play-templates/test/controllers/ViewTemplateControllerUnitTest.scala b/play-scala/play-templates/test/controllers/ViewTemplateControllerUnitTest.scala index f8ec7d11d..3b746f7a2 100644 --- a/play-scala/play-templates/test/controllers/ViewTemplateControllerUnitTest.scala +++ b/play-scala/play-templates/test/controllers/ViewTemplateControllerUnitTest.scala @@ -14,7 +14,7 @@ class ViewTemplateControllerUnitTest "should return two articles" in { val controller = new ViewTemplateController(stubControllerComponents()) val result = controller - .index() + .index .apply( FakeRequest(GET, "/template") ) @@ -28,7 +28,7 @@ class ViewTemplateControllerUnitTest "with_class function returns the same two articles" in { val controller = new ViewTemplateController(stubControllerComponents()) val result = controller - .withClass() + .withClass .apply( FakeRequest(GET, "/withclass") ) diff --git a/play-scala/rest-api/app/controllers/TodoListController.scala b/play-scala/rest-api/app/controllers/TodoListController.scala index ebfaef806..b624e68cc 100644 --- a/play-scala/rest-api/app/controllers/TodoListController.scala +++ b/play-scala/rest-api/app/controllers/TodoListController.scala @@ -54,7 +54,7 @@ class TodoListController @Inject() ( } // curl -v -d '{"description": "some new item"}' -H 'Content-Type: application/json' -X POST localhost:9000/todo - def addNewItem() = Action { implicit request => + def addNewItem(): Action[AnyContent] = Action { request => val content = request.body val jsonObject = content.asJson diff --git a/play-scala/rest-api/build.sbt b/play-scala/rest-api/build.sbt index 0a87feb62..c6855a2d1 100644 --- a/play-scala/rest-api/build.sbt +++ b/play-scala/rest-api/build.sbt @@ -5,7 +5,7 @@ version := "1.0-SNAPSHOT" enablePlugins(PlayScala) -scalaVersion := ScalaVersions.scala2Version +scalaVersion := ScalaVersions.scala3Version libraryDependencies += guice libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % Test diff --git a/play-scala/rest-api/conf/routes b/play-scala/rest-api/conf/routes index 521a8d3db..f933d081a 100644 --- a/play-scala/rest-api/conf/routes +++ b/play-scala/rest-api/conf/routes @@ -7,8 +7,8 @@ # Map static resources from the /public folder to the /assets URL path -GET /todo controllers.TodoListController.getAll +GET /todo controllers.TodoListController.getAll() GET /todo/:itemId controllers.TodoListController.getById(itemId: Long) PUT /todo/done/:itemId controllers.TodoListController.markAsDone(itemId: Long) -DELETE /todo/done controllers.TodoListController.deleteAllDone -POST /todo controllers.TodoListController.addNewItem \ No newline at end of file +DELETE /todo/done controllers.TodoListController.deleteAllDone() +POST /todo controllers.TodoListController.addNewItem() \ No newline at end of file From 02239437498085242328e089dc0ceb90faa50a72 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 24 May 2024 15:30:38 +0200 Subject: [PATCH 0612/1318] fixed scalafmt issues --- .../baeldung/arrival/actions/SourceActionsUnitTest.scala | 6 ++++-- .../app/controllers/ViewTemplateController.scala | 4 ++-- .../test/controllers/MenuControllerUnitTest.scala | 3 +-- .../test/controllers/ViewTemplateControllerUnitTest.scala | 6 ++---- 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/play-scala/application-tests/test/com/baeldung/arrival/actions/SourceActionsUnitTest.scala b/play-scala/application-tests/test/com/baeldung/arrival/actions/SourceActionsUnitTest.scala index 3b4c0c222..32d3b6398 100644 --- a/play-scala/application-tests/test/com/baeldung/arrival/actions/SourceActionsUnitTest.scala +++ b/play-scala/application-tests/test/com/baeldung/arrival/actions/SourceActionsUnitTest.scala @@ -21,7 +21,8 @@ class SourceActionsUnitTest "SourceAction" should { "return BAD_REQUEST status for missing source header" in { - val testee: Action[AnyContent] = SourceAction(anyContentParser)(globalEc) { _ => NoContent } + val testee: Action[AnyContent] = + SourceAction(anyContentParser)(globalEc) { _ => NoContent } whenReady(testee.apply(FakeRequest())) { result => assert(result.header.status === BAD_REQUEST) @@ -29,7 +30,8 @@ class SourceActionsUnitTest } "return NO_CONTENT status for when source header is present" in { - val testee: Action[AnyContent] = SourceAction(anyContentParser)(globalEc) { _ => NoContent } + val testee: Action[AnyContent] = + SourceAction(anyContentParser)(globalEc) { _ => NoContent } whenReady( testee.apply(FakeRequest().withHeaders(Headers("source" -> "foo"))) ) { result => diff --git a/play-scala/play-templates/app/controllers/ViewTemplateController.scala b/play-scala/play-templates/app/controllers/ViewTemplateController.scala index 336047a13..b990e4535 100644 --- a/play-scala/play-templates/app/controllers/ViewTemplateController.scala +++ b/play-scala/play-templates/app/controllers/ViewTemplateController.scala @@ -8,7 +8,7 @@ case class Article(title: String, url: String) class ViewTemplateController @Inject() (cc: ControllerComponents) extends AbstractController(cc) { - def index = Action { + def index = Action { val articles = List( ( "Introduction to Play Framework", @@ -22,7 +22,7 @@ class ViewTemplateController @Inject() (cc: ControllerComponents) Ok(views.html.Baeldung.index(articles)) } - def withClass = Action { + def withClass = Action { val articles = List( Article( "Introduction to Play Framework", diff --git a/play-scala/play-templates/test/controllers/MenuControllerUnitTest.scala b/play-scala/play-templates/test/controllers/MenuControllerUnitTest.scala index c17836cb2..439c343f3 100644 --- a/play-scala/play-templates/test/controllers/MenuControllerUnitTest.scala +++ b/play-scala/play-templates/test/controllers/MenuControllerUnitTest.scala @@ -17,8 +17,7 @@ class MenuControllerUnitTest val controller = new MenuController(template, stubControllerComponents()) - val result = controller - .availableProducts + val result = controller.availableProducts .apply( FakeRequest(GET, "/menu") ) diff --git a/play-scala/play-templates/test/controllers/ViewTemplateControllerUnitTest.scala b/play-scala/play-templates/test/controllers/ViewTemplateControllerUnitTest.scala index 3b746f7a2..1917aa9fc 100644 --- a/play-scala/play-templates/test/controllers/ViewTemplateControllerUnitTest.scala +++ b/play-scala/play-templates/test/controllers/ViewTemplateControllerUnitTest.scala @@ -13,8 +13,7 @@ class ViewTemplateControllerUnitTest "should return two articles" in { val controller = new ViewTemplateController(stubControllerComponents()) - val result = controller - .index + val result = controller.index .apply( FakeRequest(GET, "/template") ) @@ -27,8 +26,7 @@ class ViewTemplateControllerUnitTest "with_class function returns the same two articles" in { val controller = new ViewTemplateController(stubControllerComponents()) - val result = controller - .withClass + val result = controller.withClass .apply( FakeRequest(GET, "/withclass") ) From a95482d918796e341aedf86398c8c003c6d0a76b Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 24 May 2024 15:36:38 +0200 Subject: [PATCH 0613/1318] updated last play module to scala 3 --- play-scala/configuration-access/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/play-scala/configuration-access/build.sbt b/play-scala/configuration-access/build.sbt index b2bda2848..9a5b4aa00 100644 --- a/play-scala/configuration-access/build.sbt +++ b/play-scala/configuration-access/build.sbt @@ -5,7 +5,7 @@ version := "1.0-SNAPSHOT" enablePlugins(PlayScala) -scalaVersion := ScalaVersions.scala2Version +scalaVersion := ScalaVersions.scala3Version libraryDependencies += guice libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % Test From 214c8298d1c2e419dab4acec92ac62d4667da9d1 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 24 May 2024 15:40:13 +0200 Subject: [PATCH 0614/1318] updated scala-sbt module to scala 3 --- scala-sbt/intro-to-sbt/build.sbt | 2 +- scala-sbt/intro-to-sbt/project/build.properties | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scala-sbt/intro-to-sbt/build.sbt b/scala-sbt/intro-to-sbt/build.sbt index 387920449..b5602f056 100644 --- a/scala-sbt/intro-to-sbt/build.sbt +++ b/scala-sbt/intro-to-sbt/build.sbt @@ -1,6 +1,6 @@ import Dependencies._ -ThisBuild / scalaVersion := "2.13.14" +ThisBuild / scalaVersion := "3.4.1" ThisBuild / version := "0.1.0-SNAPSHOT" lazy val printHello = taskKey[Unit]("prints hello") diff --git a/scala-sbt/intro-to-sbt/project/build.properties b/scala-sbt/intro-to-sbt/project/build.properties index c8fcab543..1ec79c245 100644 --- a/scala-sbt/intro-to-sbt/project/build.properties +++ b/scala-sbt/intro-to-sbt/project/build.properties @@ -1 +1 @@ -sbt.version=1.6.2 +sbt.version=1.9.10 From 6b5abfa6327491e2022edd20bd81617ccbd57358 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 24 May 2024 15:45:29 +0200 Subject: [PATCH 0615/1318] Upgraded sbt-standalone to scala 3 --- sbt-standalone/build.sbt | 2 +- sbt-standalone/project/build.properties | 2 +- scala-sbt/intro-to-sbt/project/build.properties | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sbt-standalone/build.sbt b/sbt-standalone/build.sbt index 7e73b1708..6a03bd976 100644 --- a/sbt-standalone/build.sbt +++ b/sbt-standalone/build.sbt @@ -2,7 +2,7 @@ name := "SCALA-156" version := "0.1" -scalaVersion := "2.13.6" +scalaVersion := "3.4.1" // Setting target for Scala scalacOptions += "-target:17" diff --git a/sbt-standalone/project/build.properties b/sbt-standalone/project/build.properties index e8a1e246e..081fdbbc7 100644 --- a/sbt-standalone/project/build.properties +++ b/sbt-standalone/project/build.properties @@ -1 +1 @@ -sbt.version=1.9.7 +sbt.version=1.10.0 diff --git a/scala-sbt/intro-to-sbt/project/build.properties b/scala-sbt/intro-to-sbt/project/build.properties index 1ec79c245..081fdbbc7 100644 --- a/scala-sbt/intro-to-sbt/project/build.properties +++ b/scala-sbt/intro-to-sbt/project/build.properties @@ -1 +1 @@ -sbt.version=1.9.10 +sbt.version=1.10.0 From eaf5b3c4a5d338c14c45c6d7ad5b433460a2d83c Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 24 May 2024 16:49:54 +0200 Subject: [PATCH 0616/1318] fixed the issue with play test after scala 3 upgrade --- .../ArrivalDecoratorServiceUnitTest.scala | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/play-scala/application-tests/test/com/baeldung/arrival/service/ArrivalDecoratorServiceUnitTest.scala b/play-scala/application-tests/test/com/baeldung/arrival/service/ArrivalDecoratorServiceUnitTest.scala index 8494bc16a..259ea5b77 100644 --- a/play-scala/application-tests/test/com/baeldung/arrival/service/ArrivalDecoratorServiceUnitTest.scala +++ b/play-scala/application-tests/test/com/baeldung/arrival/service/ArrivalDecoratorServiceUnitTest.scala @@ -17,11 +17,13 @@ class ArrivalDecoratorServiceUnitTest extends MixedPlaySpec { ) .build() ) { - private val testee = app.injector.instanceOf[ArrivalDecoratorService] - private val arrival = Arrival(1L, "Athens", "Heathrow", "12345") - assert(testee.decorate(arrival).short) - assert(!testee.decorate(arrival).medium) - assert(!testee.decorate(arrival).long) + override def running() = { + val testee = app.injector.instanceOf[ArrivalDecoratorService] + val arrival = Arrival(1L, "Athens", "Heathrow", "12345") + assert(testee.decorate(arrival).short) + assert(!testee.decorate(arrival).medium) + assert(!testee.decorate(arrival).long) + } } "mark as medium an arrival with plane name length = 5 with overridden configuration" in new App( @@ -37,11 +39,13 @@ class ArrivalDecoratorServiceUnitTest extends MixedPlaySpec { ) .build() ) { - private val testee = app.injector.instanceOf[ArrivalDecoratorService] - private val arrival = Arrival(1L, "Athens", "Heathrow", "12345") - assert(!testee.decorate(arrival).short) - assert(testee.decorate(arrival).medium) - assert(!testee.decorate(arrival).long) + override def running() = { + val testee = app.injector.instanceOf[ArrivalDecoratorService] + val arrival = Arrival(1L, "Athens", "Heathrow", "12345") + assert(!testee.decorate(arrival).short) + assert(testee.decorate(arrival).medium) + assert(!testee.decorate(arrival).long) + } } } From 77e53e36d09c20c7d71e3948eaa6107342c557be Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 24 May 2024 18:37:50 +0200 Subject: [PATCH 0617/1318] Fixed issue with test after scala 3 migration --- .../service/ServiceWithRemoteCallUnitTest.scala | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/play-scala/dependency-injection/test/guice/service/ServiceWithRemoteCallUnitTest.scala b/play-scala/dependency-injection/test/guice/service/ServiceWithRemoteCallUnitTest.scala index 8e7375b3b..77ecd4866 100644 --- a/play-scala/dependency-injection/test/guice/service/ServiceWithRemoteCallUnitTest.scala +++ b/play-scala/dependency-injection/test/guice/service/ServiceWithRemoteCallUnitTest.scala @@ -20,8 +20,10 @@ class ServiceWithRemoteCallUnitTest .overrides(new MockApiModule, new ServiceModule) .build() new App(application) { - val srv = app.injector.instanceOf[ServiceWithRemoteCall] - assert(srv.call() == "Mock remote api call") + override def running() = { + val srv = app.injector.instanceOf[ServiceWithRemoteCall] + assert(srv.call() == "Mock remote api call") + } } } @@ -30,8 +32,10 @@ class ServiceWithRemoteCallUnitTest .overrides(new ApiModule, new ServiceModule) .build() new App(application) { - val srv = app.injector.instanceOf[ServiceWithRemoteCall] - assert(srv.call() == "Real remote api call") + override def running() = { + val srv = app.injector.instanceOf[ServiceWithRemoteCall] + assert(srv.call() == "Real remote api call") + } } } From dc94c92911ebcd2956f0d647ae72e087b1fc0aa2 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 24 May 2024 18:45:35 +0200 Subject: [PATCH 0618/1318] Updated graalvm module to scala 3 --- scala-graalvm/scala-graalvm-http-app/build.sbt | 2 +- scala-graalvm/scala-graalvm-http-app/project/build.properties | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scala-graalvm/scala-graalvm-http-app/build.sbt b/scala-graalvm/scala-graalvm-http-app/build.sbt index 13c6785bd..a644d9128 100644 --- a/scala-graalvm/scala-graalvm-http-app/build.sbt +++ b/scala-graalvm/scala-graalvm-http-app/build.sbt @@ -3,7 +3,7 @@ organization := "com.baeldung" version := "1.0-SNAPSHOT" -scalaVersion := "2.13.14" +scalaVersion := "3.4.1" libraryDependencies ++= Seq( "com.typesafe.akka" %% "akka-actor" % "2.8.0", "com.typesafe.akka" %% "akka-stream" % "2.8.0", diff --git a/scala-graalvm/scala-graalvm-http-app/project/build.properties b/scala-graalvm/scala-graalvm-http-app/project/build.properties index 563a014da..081fdbbc7 100644 --- a/scala-graalvm/scala-graalvm-http-app/project/build.properties +++ b/scala-graalvm/scala-graalvm-http-app/project/build.properties @@ -1 +1 @@ -sbt.version=1.7.2 +sbt.version=1.10.0 From 2f15df8b1985fdd68c4d9a4c10f0973a7248b982 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 25 May 2024 00:15:33 +0000 Subject: [PATCH 0619/1318] Update aws-java-sdk-s3 from 1.12.724 to 1.12.730 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d38f13aab..14d805aba 100644 --- a/build.sbt +++ b/build.sbt @@ -524,7 +524,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) scalaMock, "com.lihaoyi" %% "utest" % "0.8.3" % "test", munitDep, - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.724" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.730" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.25.54" From 6b14587a04aa884bf6e25ceae90771888bc30620 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 25 May 2024 00:15:44 +0000 Subject: [PATCH 0620/1318] Update shapeless from 2.3.11 to 2.3.12 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d38f13aab..b818f6d8f 100644 --- a/build.sbt +++ b/build.sbt @@ -331,7 +331,7 @@ lazy val scala_akka_3 = (project in file("scala-akka-3")) val monocleVersion = "2.1.0" val slickVersion = "3.5.1" -val shapelessVersion = "2.3.11" +val shapelessVersion = "2.3.12" val scalazVersion = "7.3.8" val fs2Version = "3.10.2" val reactiveMongo = "1.1.0-RC12" From 0baaaac023ffb87bc443ce9f0873d3973294504e Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 25 May 2024 00:15:57 +0000 Subject: [PATCH 0621/1318] Update os-lib from 0.10.0 to 0.10.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d38f13aab..a9689c80c 100644 --- a/build.sbt +++ b/build.sbt @@ -437,7 +437,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) val http4sBlaze = "0.23.16" val http4sVersion = "0.23.27" -val osLibVersion = "0.10.0" +val osLibVersion = "0.10.1" val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion From ccffc6449d9fa29133c2853ab0d6c61c7a26f9dc Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 25 May 2024 00:16:23 +0000 Subject: [PATCH 0622/1318] Update munit-cats-effect-3 from 1.0.7 to 2.0.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d38f13aab..ad9d62716 100644 --- a/build.sbt +++ b/build.sbt @@ -613,7 +613,7 @@ lazy val cats_effects = (project in file("cats-effects")) name := "cats-effects", scalaVersion := scala3Version, libraryDependencies += catsEffect, - libraryDependencies += "org.typelevel" %% "munit-cats-effect-3" % "1.0.7" % Test, + libraryDependencies += "org.typelevel" %% "munit-cats-effect" % "2.0.0" % Test, libraryDependencies ++= scalaTestDeps, libraryDependencies += "junit" % "junit" % "4.13.2" % Test ) From bfc57f4d4cbc4ccab6c1dad0622d5f6fea4e9e4d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 25 May 2024 00:16:36 +0000 Subject: [PATCH 0623/1318] Update jedis from 5.1.2 to 5.1.3 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d38f13aab..24c69b138 100644 --- a/build.sbt +++ b/build.sbt @@ -467,7 +467,7 @@ lazy val redis_intro = libraryDependencies ++= scalaTestDeps .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( - "redis.clients" % "jedis" % "5.1.2", + "redis.clients" % "jedis" % "5.1.3", "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.14.1", "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % "it" ), From fcb8904ea2fccc602709b6b4199d6a75e705aa61 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 25 May 2024 00:16:51 +0000 Subject: [PATCH 0624/1318] Update s3 from 2.25.54 to 2.25.60 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d38f13aab..da5288910 100644 --- a/build.sbt +++ b/build.sbt @@ -527,7 +527,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.724" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.25.54" + "software.amazon.awssdk" % "s3" % "2.25.60" ), Defaults.itSettings, IntegrationTest / fork := true From bda15a78357524c51ffaed8b0e231cd79024e016 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 25 May 2024 11:34:10 +0200 Subject: [PATCH 0625/1318] Upgraded Munit and fixed compilation error --- build.sbt | 4 ++-- .../src/test/scala/com/baeldung/munit/MUnitTest.scala | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index a0cec3300..ac733989c 100644 --- a/build.sbt +++ b/build.sbt @@ -444,7 +444,7 @@ val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion val log4jApiScalaDep = "org.apache.logging.log4j" %% "log4j-api-scala" % "13.1.0" -val munitDep = "org.scalameta" %% "munit" % "0.7.29" % Test +val munitDep = "org.scalameta" %% "munit" % "1.0.0" % Test lazy val scala_libraries_os = (project in file("scala-libraries-os")) .settings( @@ -613,7 +613,7 @@ lazy val cats_effects = (project in file("cats-effects")) name := "cats-effects", scalaVersion := scala3Version, libraryDependencies += catsEffect, - libraryDependencies += "org.typelevel" %% "munit-cats-effect-3" % "1.0.7" % Test, + libraryDependencies += "org.typelevel" %% "munit-cats-effect" % "2.0.0" % Test, libraryDependencies ++= scalaTestDeps, libraryDependencies += "junit" % "junit" % "4.13.2" % Test ) diff --git a/scala-libraries-testing/src/test/scala/com/baeldung/munit/MUnitTest.scala b/scala-libraries-testing/src/test/scala/com/baeldung/munit/MUnitTest.scala index 83f228156..61c47964e 100644 --- a/scala-libraries-testing/src/test/scala/com/baeldung/munit/MUnitTest.scala +++ b/scala-libraries-testing/src/test/scala/com/baeldung/munit/MUnitTest.scala @@ -2,7 +2,6 @@ package com.baeldung.munit import scala.concurrent.Future import scala.concurrent.ExecutionContext.Implicits.global -import munit.GenericBeforeEach class MUnitTest extends munit.FunSuite { From a8de3e0d4ad795e7f2005c91bbd6aac9b9e5908d Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 25 May 2024 16:38:20 +0200 Subject: [PATCH 0626/1318] Retry cancelable test in cancellationunittest --- .../catseffects/CancellationUnitTest.scala | 32 +++++++++++++++++-- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/cats-effects/src/test/scala/com/baeldung/scala/catseffects/CancellationUnitTest.scala b/cats-effects/src/test/scala/com/baeldung/scala/catseffects/CancellationUnitTest.scala index 9c72fc153..21c24f332 100644 --- a/cats-effects/src/test/scala/com/baeldung/scala/catseffects/CancellationUnitTest.scala +++ b/cats-effects/src/test/scala/com/baeldung/scala/catseffects/CancellationUnitTest.scala @@ -4,13 +4,39 @@ import cats.effect.kernel.CancelScope.Cancelable import cats.effect.{IO, Resource} import cats.effect.unsafe.implicits.global import cats.implicits.catsSyntaxTuple2Parallel +import org.scalatest.{Failed, Outcome, Retries, Canceled} import org.scalatest.matchers.should.Matchers +import org.scalatest.tags.Retryable import org.scalatest.wordspec.AnyWordSpec -import java.util.concurrent.atomic.AtomicBoolean +import java.util.concurrent.atomic.AtomicBoolean import scala.concurrent.duration.DurationInt -class CancellationUnitTest extends AnyWordSpec with Matchers { +@Retryable +class CancellationUnitTest extends AnyWordSpec with Matchers with Retries { + + val retries = 5 + + override def withFixture(test: NoArgTest): Outcome = { + if (isRetryable(test)) withFixture(test, retries) + else super.withFixture(test) + } + + def withFixture(test: NoArgTest, count: Int): Outcome = { + val outcome = super.withFixture(test) + outcome match { + case Failed(_) | Canceled(_) => + if (count == 1) super.withFixture(test) + else { + println( + s"Retrying SchedulerUnitTest flaky test `${test.name}`, Attempts remaining: ${count - 1}" + ) + // scheduling the retry after 1 second + withRetry(1.seconds)(withFixture(test, count - 1)) + } + case other => other + } + } "Cancellation" should { "cancel the fiber directly and execute the action on cancellation" in { @@ -87,7 +113,7 @@ class CancellationUnitTest extends AnyWordSpec with Matchers { val flag = new AtomicBoolean(false) val ioa = IO.blocking { while (!flag.get()) { - Thread.sleep(15) + Thread.sleep(25) println(s"counter = $counter") counter += 1 } From 38b84491e0a4de2e3e422c131ec9c5182e9deae0 Mon Sep 17 00:00:00 2001 From: Matteo Di Pirro Date: Mon, 27 May 2024 18:12:14 +0200 Subject: [PATCH 0627/1318] SCALA-400 Add code for zio-json article --- build.sbt | 2 + .../scala/zio/json/BaeldungZIOJson.scala | 27 ++++++++++ .../scala/zio/json/DecodingSpec.scala | 53 +++++++++++++++++++ .../scala/zio/json/EncodingSpec.scala | 33 ++++++++++++ 4 files changed, 115 insertions(+) create mode 100644 zio-2/src/main/scala/com/baeldung/scala/zio/json/BaeldungZIOJson.scala create mode 100644 zio-2/src/test/scala/com/baeldung/scala/zio/json/DecodingSpec.scala create mode 100644 zio-2/src/test/scala/com/baeldung/scala/zio/json/EncodingSpec.scala diff --git a/build.sbt b/build.sbt index 9e7e6ba51..83ad4a294 100644 --- a/build.sbt +++ b/build.sbt @@ -640,8 +640,10 @@ lazy val zio2 = (project in file("zio-2")) name := "zio-2", scalaVersion := scala3Version, libraryDependencies += "dev.zio" %% "zio" % zioVersion, + libraryDependencies += "dev.zio" %% "zio-json" % "0.6.2", libraryDependencies += "dev.zio" %% "zio-test" % zioVersion % Test, libraryDependencies += "dev.zio" %% "zio-test-sbt" % zioVersion % Test, + libraryDependencies ++= scalaTestDeps, testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework") ) diff --git a/zio-2/src/main/scala/com/baeldung/scala/zio/json/BaeldungZIOJson.scala b/zio-2/src/main/scala/com/baeldung/scala/zio/json/BaeldungZIOJson.scala new file mode 100644 index 000000000..fd1de121e --- /dev/null +++ b/zio-2/src/main/scala/com/baeldung/scala/zio/json/BaeldungZIOJson.scala @@ -0,0 +1,27 @@ +package com.baeldung.scala.zio.json + +import zio.json.* + +sealed trait Command +case class Start(timeout: Long) extends Command +case object Stop extends Command + +@jsonDiscriminator("type") +sealed trait Command2 +case class Start2(timeout: Long) extends Command2 +case object Stop2 extends Command2 + +object Start { + implicit val encoder: JsonEncoder[Start] = DeriveJsonEncoder.gen[Start] + implicit val decoder: JsonDecoder[Start] = DeriveJsonDecoder.gen[Start] +} + +object Command { + implicit val encoder: JsonEncoder[Command] = DeriveJsonEncoder.gen[Command] + implicit val decoder: JsonDecoder[Command] = DeriveJsonDecoder.gen[Command] +} + +object Command2 { + implicit val encoder: JsonEncoder[Command2] = DeriveJsonEncoder.gen[Command2] + implicit val decoder: JsonDecoder[Command2] = DeriveJsonDecoder.gen[Command2] +} diff --git a/zio-2/src/test/scala/com/baeldung/scala/zio/json/DecodingSpec.scala b/zio-2/src/test/scala/com/baeldung/scala/zio/json/DecodingSpec.scala new file mode 100644 index 000000000..80d85a9d6 --- /dev/null +++ b/zio-2/src/test/scala/com/baeldung/scala/zio/json/DecodingSpec.scala @@ -0,0 +1,53 @@ +package com.baeldung.scala.zio.json + +import org.scalatest.matchers.should.Matchers +import org.scalatest.wordspec.AnyWordSpec +import zio.json.* + +class DecodingSpec extends AnyWordSpec with Matchers { + "zio-json" should { + "decode a JSON object to a case class" in { + """{"timeout":789}""".fromJson[Start] shouldBe Right(Start(789)) + } + + "return a decoding error if the JSON is not correct" in { + """{"duration":789}""".fromJson[Start] shouldBe Left(".timeout(missing)") + } + + "decode a JSON object with extra fields to a case class" in { + """{"timeout":789, "extra": "field"}""".fromJson[Start] shouldBe Right( + Start(789) + ) + } + + "decode an ADT to JSON" in { + """{"Start":{"timeout":100}}""".fromJson[Command] shouldBe Right( + Start(100) + ) + """{"Stop":{}}""".fromJson[Command] shouldBe Right(Stop) + } + + "decode Stop to JSON" in { + implicit val decoder: JsonDecoder[Stop.type] = + implicitly[JsonDecoder[String]].map(_ => Stop) + + """{"Start":{"timeout":100}}""".fromJson[Command] shouldBe Right( + Start(100) + ) + """"Stop"""".fromJson[Stop.type] shouldBe Right(Stop) + } + + "use a discriminator" in { + """{"type":"Start2","timeout":100}""".fromJson[Command2] shouldBe Right( + Start2(100) + ) + """{"type":"Stop2"}""".fromJson[Command2] shouldBe Right(Stop2) + } + + "fail if there's no discriminator" in { + """{"timeout":100}""".fromJson[Command2] shouldBe Left( + "(missing hint 'type')" + ) + } + } +} diff --git a/zio-2/src/test/scala/com/baeldung/scala/zio/json/EncodingSpec.scala b/zio-2/src/test/scala/com/baeldung/scala/zio/json/EncodingSpec.scala new file mode 100644 index 000000000..a33558bd9 --- /dev/null +++ b/zio-2/src/test/scala/com/baeldung/scala/zio/json/EncodingSpec.scala @@ -0,0 +1,33 @@ +package com.baeldung.scala.zio.json + +import org.scalatest.matchers.should.Matchers +import org.scalatest.wordspec.AnyWordSpec +import zio.json.* + +class EncodingSpec extends AnyWordSpec with Matchers { + "zio-json" should { + "encode a case class to JSON" in { + Start(100).toJson shouldBe """{"timeout":100}""" + } + + "encode an ADT to JSON" in { + (Start(100): Command).toJson shouldBe """{"Start":{"timeout":100}}""" + (Stop: Command).toJson shouldBe """{"Stop":{}}""" + } + + "encode Stop to JSON" in { + implicit val encoder: JsonEncoder[Stop.type] = + implicitly[JsonEncoder[String]].contramap(_.toString()) + + (Start(100): Command).toJson shouldBe """{"Start":{"timeout":100}}""" + Stop.toJson shouldBe """"Stop"""" + } + + "use a discriminator" in { + (Start2( + 100 + ): Command2).toJson shouldBe """{"type":"Start2","timeout":100}""" + (Stop2: Command2).toJson shouldBe """{"type":"Stop2"}""" + } + } +} From 6616d77db1435d6fbeda2d9f07dc46cacc50ccd0 Mon Sep 17 00:00:00 2001 From: Callum Date: Wed, 29 May 2024 06:16:19 +0100 Subject: [PATCH 0628/1318] [SCALA-729] - Convert Java List to Scala Seq (#1361) * [SCALA-729] - Convert Java List to Scala Seq * Adding more code examples * Updated unit test name * Moved ConvertJavaAListToScalaSeq to new module * Removed ConvertJavaAListToScalaSeq in old module --------- Co-authored-by: Callum Gibbons --- .../ConvertJavaAListToScalaSeq.scala | 45 +++++++++++++++++++ .../ConvertJavaAListToScalaSeqUnitTest.scala | 27 +++++++++++ 2 files changed, 72 insertions(+) create mode 100644 scala-core-collections-modules/scala-core-collections-4/src/main/scala/com/baeldung/scala/javatoscalaseq/ConvertJavaAListToScalaSeq.scala create mode 100644 scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/javatoscalaseq/ConvertJavaAListToScalaSeqUnitTest.scala diff --git a/scala-core-collections-modules/scala-core-collections-4/src/main/scala/com/baeldung/scala/javatoscalaseq/ConvertJavaAListToScalaSeq.scala b/scala-core-collections-modules/scala-core-collections-4/src/main/scala/com/baeldung/scala/javatoscalaseq/ConvertJavaAListToScalaSeq.scala new file mode 100644 index 000000000..3164fbca5 --- /dev/null +++ b/scala-core-collections-modules/scala-core-collections-4/src/main/scala/com/baeldung/scala/javatoscalaseq/ConvertJavaAListToScalaSeq.scala @@ -0,0 +1,45 @@ +package com.baeldung.scala.javatoscalaseq + +import java.util +import scala.jdk.javaapi.CollectionConverters +import scala.collection.JavaConverters + +object ConvertJavaAListToScalaSeq { + + private def takeSeq(seq: Seq[String]): String = { + seq.mkString + } + + def in212(list: util.List[String]): String = { + val scalaSeq: Seq[String] = + JavaConverters.collectionAsScalaIterable(list).toSeq + takeSeq(scalaSeq) + } + + def in213(list: util.List[String]): String = { + val scalaSeq: Seq[String] = CollectionConverters.asScala(list).toSeq + takeSeq(scalaSeq) + } + + def convertToList212(list: util.List[String]): String = { + val scalaList: List[String] = + JavaConverters.collectionAsScalaIterable(list).toList + val scalaSet: Set[String] = + JavaConverters.collectionAsScalaIterable(list).toSet + val scalaIndexedSeq: IndexedSeq[String] = + JavaConverters.collectionAsScalaIterable(list).toIndexedSeq + val scalaVector: Vector[String] = + JavaConverters.collectionAsScalaIterable(list).toVector + takeSeq(scalaList) + } + + def convertToList213(list: util.List[String]): String = { + val scalaList: List[String] = CollectionConverters.asScala(list).toList + val scalaSet: Set[String] = CollectionConverters.asScala(list).toSet + val scalaIndexedSeq: IndexedSeq[String] = + CollectionConverters.asScala(list).toIndexedSeq + val scalaVector: Vector[String] = + CollectionConverters.asScala(list).toVector + takeSeq(scalaList) + } +} diff --git a/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/javatoscalaseq/ConvertJavaAListToScalaSeqUnitTest.scala b/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/javatoscalaseq/ConvertJavaAListToScalaSeqUnitTest.scala new file mode 100644 index 000000000..8bbf82166 --- /dev/null +++ b/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/javatoscalaseq/ConvertJavaAListToScalaSeqUnitTest.scala @@ -0,0 +1,27 @@ +package com.baeldung.scala.javatoscalaseq + +import java.util +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers + +class ConvertJavaAListToScalaSeqUnitTest extends AnyFlatSpec with Matchers { + val list: util.List[String] = util.ArrayList[String]() + list.add("hello") + list.add(" world") + + "212" should "return String" in { + ConvertJavaAListToScalaSeq.in212(list) shouldBe "hello world" + } + + "213" should "return String" in { + ConvertJavaAListToScalaSeq.in213(list) shouldBe "hello world" + } + + "convertToList212" should "return String" in { + ConvertJavaAListToScalaSeq.convertToList212(list) shouldBe "hello world" + } + + "convertToList213" should "return String" in { + ConvertJavaAListToScalaSeq.convertToList213(list) shouldBe "hello world" + } +} From 2bbfdb9151e540766737cadb8729f08e7e5307b7 Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Thu, 30 May 2024 17:59:17 +0800 Subject: [PATCH 0629/1318] Update README.md --- scala-core-modules/scala-core-9/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-core-modules/scala-core-9/README.md b/scala-core-modules/scala-core-9/README.md index 3eec29534..54c4a4439 100644 --- a/scala-core-modules/scala-core-9/README.md +++ b/scala-core-modules/scala-core-9/README.md @@ -4,3 +4,4 @@ - [Scala’s Destructuring with the @ Operator](https://www.baeldung.com/scala/destructuring-operator) - [Check if Two Strings Are Isomorphic in Scala](https://www.baeldung.com/scala/string-isomorphism) - [Find Two’s Complement of a Number in Scala](https://www.baeldung.com/scala/compute-twos-complement) +- [Convert Option to Either in Scala](https://www.baeldung.com/scala/option-either-conversion) From a836c12ccf5cddb51d65e980380e6040369de80d Mon Sep 17 00:00:00 2001 From: Matteo Di Pirro Date: Thu, 30 May 2024 18:16:33 +0200 Subject: [PATCH 0630/1318] SCALA-400 make Command ADT more complex --- .../baeldung/scala/zio/json/BaeldungZIOJson.scala | 2 ++ .../com/baeldung/scala/zio/json/DecodingSpec.scala | 12 ++++++++++++ .../com/baeldung/scala/zio/json/EncodingSpec.scala | 12 ++++++++++++ 3 files changed, 26 insertions(+) diff --git a/zio-2/src/main/scala/com/baeldung/scala/zio/json/BaeldungZIOJson.scala b/zio-2/src/main/scala/com/baeldung/scala/zio/json/BaeldungZIOJson.scala index fd1de121e..525e1ddfc 100644 --- a/zio-2/src/main/scala/com/baeldung/scala/zio/json/BaeldungZIOJson.scala +++ b/zio-2/src/main/scala/com/baeldung/scala/zio/json/BaeldungZIOJson.scala @@ -5,11 +5,13 @@ import zio.json.* sealed trait Command case class Start(timeout: Long) extends Command case object Stop extends Command +case class Kill(reason: String, force: Boolean) extends Command @jsonDiscriminator("type") sealed trait Command2 case class Start2(timeout: Long) extends Command2 case object Stop2 extends Command2 +case class Kill2(reason: String, force: Boolean) extends Command2 object Start { implicit val encoder: JsonEncoder[Start] = DeriveJsonEncoder.gen[Start] diff --git a/zio-2/src/test/scala/com/baeldung/scala/zio/json/DecodingSpec.scala b/zio-2/src/test/scala/com/baeldung/scala/zio/json/DecodingSpec.scala index 80d85a9d6..404772b37 100644 --- a/zio-2/src/test/scala/com/baeldung/scala/zio/json/DecodingSpec.scala +++ b/zio-2/src/test/scala/com/baeldung/scala/zio/json/DecodingSpec.scala @@ -25,6 +25,10 @@ class DecodingSpec extends AnyWordSpec with Matchers { Start(100) ) """{"Stop":{}}""".fromJson[Command] shouldBe Right(Stop) + """{"Kill":{"reason":"Random reason","force":false}}""" + .fromJson[Command] shouldBe Right( + Kill("Random reason", false) + ) } "decode Stop to JSON" in { @@ -35,6 +39,10 @@ class DecodingSpec extends AnyWordSpec with Matchers { Start(100) ) """"Stop"""".fromJson[Stop.type] shouldBe Right(Stop) + """{"Kill":{"reason":"Random reason","force":false}}""" + .fromJson[Command] shouldBe Right( + Kill("Random reason", false) + ) } "use a discriminator" in { @@ -42,6 +50,10 @@ class DecodingSpec extends AnyWordSpec with Matchers { Start2(100) ) """{"type":"Stop2"}""".fromJson[Command2] shouldBe Right(Stop2) + """{"type":"Kill2","reason":"Random reason","force":false}""" + .fromJson[Command2] shouldBe Right( + Kill2("Random reason", false) + ) } "fail if there's no discriminator" in { diff --git a/zio-2/src/test/scala/com/baeldung/scala/zio/json/EncodingSpec.scala b/zio-2/src/test/scala/com/baeldung/scala/zio/json/EncodingSpec.scala index a33558bd9..fe0be6392 100644 --- a/zio-2/src/test/scala/com/baeldung/scala/zio/json/EncodingSpec.scala +++ b/zio-2/src/test/scala/com/baeldung/scala/zio/json/EncodingSpec.scala @@ -13,6 +13,10 @@ class EncodingSpec extends AnyWordSpec with Matchers { "encode an ADT to JSON" in { (Start(100): Command).toJson shouldBe """{"Start":{"timeout":100}}""" (Stop: Command).toJson shouldBe """{"Stop":{}}""" + (Kill( + reason = "Random reason", + force = false + ): Command).toJson shouldBe """{"Kill":{"reason":"Random reason","force":false}}""" } "encode Stop to JSON" in { @@ -21,6 +25,10 @@ class EncodingSpec extends AnyWordSpec with Matchers { (Start(100): Command).toJson shouldBe """{"Start":{"timeout":100}}""" Stop.toJson shouldBe """"Stop"""" + (Kill( + reason = "Random reason", + force = false + ): Command).toJson shouldBe """{"Kill":{"reason":"Random reason","force":false}}""" } "use a discriminator" in { @@ -28,6 +36,10 @@ class EncodingSpec extends AnyWordSpec with Matchers { 100 ): Command2).toJson shouldBe """{"type":"Start2","timeout":100}""" (Stop2: Command2).toJson shouldBe """{"type":"Stop2"}""" + (Kill2( + reason = "Random reason", + force = false + ): Command2).toJson shouldBe """{"type":"Kill2","reason":"Random reason","force":false}""" } } } From 603e5ec8ad3221c4b8e22e95aee15162b69a25c6 Mon Sep 17 00:00:00 2001 From: Matteo Di Pirro Date: Thu, 30 May 2024 18:20:20 +0200 Subject: [PATCH 0631/1318] SCALA-400 Rename test classes This is to follow the unit test naming convention for classes. --- .../zio/json/{DecodingSpec.scala => DecodingUnitTest.scala} | 2 +- .../zio/json/{EncodingSpec.scala => EncodingUnitTest.scala} | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename zio-2/src/test/scala/com/baeldung/scala/zio/json/{DecodingSpec.scala => DecodingUnitTest.scala} (97%) rename zio-2/src/test/scala/com/baeldung/scala/zio/json/{EncodingSpec.scala => EncodingUnitTest.scala} (95%) diff --git a/zio-2/src/test/scala/com/baeldung/scala/zio/json/DecodingSpec.scala b/zio-2/src/test/scala/com/baeldung/scala/zio/json/DecodingUnitTest.scala similarity index 97% rename from zio-2/src/test/scala/com/baeldung/scala/zio/json/DecodingSpec.scala rename to zio-2/src/test/scala/com/baeldung/scala/zio/json/DecodingUnitTest.scala index 404772b37..b0e2a17a7 100644 --- a/zio-2/src/test/scala/com/baeldung/scala/zio/json/DecodingSpec.scala +++ b/zio-2/src/test/scala/com/baeldung/scala/zio/json/DecodingUnitTest.scala @@ -4,7 +4,7 @@ import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpec import zio.json.* -class DecodingSpec extends AnyWordSpec with Matchers { +class DecodingUnitTest extends AnyWordSpec with Matchers { "zio-json" should { "decode a JSON object to a case class" in { """{"timeout":789}""".fromJson[Start] shouldBe Right(Start(789)) diff --git a/zio-2/src/test/scala/com/baeldung/scala/zio/json/EncodingSpec.scala b/zio-2/src/test/scala/com/baeldung/scala/zio/json/EncodingUnitTest.scala similarity index 95% rename from zio-2/src/test/scala/com/baeldung/scala/zio/json/EncodingSpec.scala rename to zio-2/src/test/scala/com/baeldung/scala/zio/json/EncodingUnitTest.scala index fe0be6392..c6c547e3c 100644 --- a/zio-2/src/test/scala/com/baeldung/scala/zio/json/EncodingSpec.scala +++ b/zio-2/src/test/scala/com/baeldung/scala/zio/json/EncodingUnitTest.scala @@ -4,7 +4,7 @@ import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpec import zio.json.* -class EncodingSpec extends AnyWordSpec with Matchers { +class EncodingUnitTest extends AnyWordSpec with Matchers { "zio-json" should { "encode a case class to JSON" in { Start(100).toJson shouldBe """{"timeout":100}""" From a2494cd61b7fef525e97ad11e5862dc5f1d58697 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Thu, 30 May 2024 21:50:21 +0200 Subject: [PATCH 0632/1318] Code for _root_ import --- .../scala/rootimport/RootImportUnitTest.scala | 20 +++++++++++++++++++ .../scala/rootimport/scala/List.scala | 9 +++++++++ 2 files changed, 29 insertions(+) create mode 100644 scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/rootimport/RootImportUnitTest.scala create mode 100644 scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/rootimport/scala/List.scala diff --git a/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/rootimport/RootImportUnitTest.scala b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/rootimport/RootImportUnitTest.scala new file mode 100644 index 000000000..4bdf193f6 --- /dev/null +++ b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/rootimport/RootImportUnitTest.scala @@ -0,0 +1,20 @@ +package com.baeldung.scala.rootimport + +import org.scalatest.flatspec.AnyFlatSpec + +class RootImportUnitTest extends AnyFlatSpec { + + it should "use the custom List when using relative import" in { + import scala.* + val myList: scala.List = List(100) + assert(myList.toString == "MyList[100]") + } + + it should "use the scala collection List when using root import" in { + import _root_.scala.* + val scalaList: List[Int] = List(100) + assert(scalaList.toString == "List(100)") + } + + +} diff --git a/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/rootimport/scala/List.scala b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/rootimport/scala/List.scala new file mode 100644 index 000000000..5d668bf3b --- /dev/null +++ b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/rootimport/scala/List.scala @@ -0,0 +1,9 @@ +package com.baeldung.scala.rootimport.scala + +class List(val num: Int) { + override def toString: String = s"MyList[${num}]" +} + +object List { + def apply(num: Int) = new List(num) +} From 62a30883df91f74b65548fe41ef29442e1d08b6b Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Thu, 30 May 2024 22:08:44 +0200 Subject: [PATCH 0633/1318] Code for _root_ import --- .../scala/com/baeldung/scala/rootimport/RootImportUnitTest.scala | 1 - 1 file changed, 1 deletion(-) diff --git a/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/rootimport/RootImportUnitTest.scala b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/rootimport/RootImportUnitTest.scala index 4bdf193f6..72596d678 100644 --- a/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/rootimport/RootImportUnitTest.scala +++ b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/rootimport/RootImportUnitTest.scala @@ -16,5 +16,4 @@ class RootImportUnitTest extends AnyFlatSpec { assert(scalaList.toString == "List(100)") } - } From 425d566109431d664413241a349904ffac5c649a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 2 Jun 2024 00:15:56 +0000 Subject: [PATCH 0634/1318] Update aws-java-sdk-s3 from 1.12.730 to 1.12.734 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 9e7e6ba51..a114baeb7 100644 --- a/build.sbt +++ b/build.sbt @@ -524,7 +524,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) scalaMock, "com.lihaoyi" %% "utest" % "0.8.3" % "test", munitDep, - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.730" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.734" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.25.60" From faa9b6571ded271f2c01ece38ae3c8ec1f7dd4d7 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 2 Jun 2024 00:16:07 +0000 Subject: [PATCH 0635/1318] Update os-lib from 0.10.1 to 0.10.2 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 9e7e6ba51..712072bcb 100644 --- a/build.sbt +++ b/build.sbt @@ -437,7 +437,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) val http4sBlaze = "0.23.16" val http4sVersion = "0.23.27" -val osLibVersion = "0.10.1" +val osLibVersion = "0.10.2" val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion From d6ab3f0a84e2204c3e15e30bf8fccaedab75776a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 2 Jun 2024 00:16:20 +0000 Subject: [PATCH 0636/1318] Update requests from 0.8.2 to 0.8.3 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 9e7e6ba51..f3759bc12 100644 --- a/build.sbt +++ b/build.sbt @@ -425,7 +425,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) ), libraryDependencies ++= Seq( akkaTypedTestkit, - "com.lihaoyi" %% "requests" % "0.8.2" + "com.lihaoyi" %% "requests" % "0.8.3" ), libraryDependencies ++= Seq( "nl.gn0s1s" %% "elastic4s-client-esjava" % elastic4sVersion, From 0b2f72c40966d233d96d5cc2907aab8684396c2d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 2 Jun 2024 00:16:34 +0000 Subject: [PATCH 0637/1318] Update tapir-akka-http-server, tapir-core, ... from 1.10.7 to 1.10.8 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index 5aec6f86c..8d4a7e68b 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.10.7" +val tapirV = "1.10.8" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From 714934308b0ab5208daa157c4c49cbbab1f7958c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 2 Jun 2024 00:17:18 +0000 Subject: [PATCH 0638/1318] Update elastic4s-client-esjava, ... from 8.12.0 to 8.13.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 9e7e6ba51..1a33233cc 100644 --- a/build.sbt +++ b/build.sbt @@ -386,7 +386,7 @@ lazy val scala2_libraries = val circeVersion = "0.14.7" val monixVersion = "3.4.1" -val elastic4sVersion = "8.12.0" +val elastic4sVersion = "8.13.0" val sparkVersion = "3.5.1" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion From 3c94d3e7cf75837a2bced6be4231a4dbd456aef6 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 2 Jun 2024 00:17:30 +0000 Subject: [PATCH 0639/1318] Update sbt-scala-native from 0.5.1 to 0.5.2 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index c6fe4239f..0d8e0f75c 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,6 +1,6 @@ addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.2") -addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.1") +addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.2") addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.16.0") addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.2.1") From 628356a9ff0da9e85e99545f4f9ee1e2c8366484 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 2 Jun 2024 00:17:44 +0000 Subject: [PATCH 0640/1318] Update cats-core from 2.10.0 to 2.12.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 9e7e6ba51..a1f629cb4 100644 --- a/build.sbt +++ b/build.sbt @@ -499,7 +499,7 @@ lazy val scala_libraries_fp = (project in file("scala-libraries-fp")) libraryDependencies ++= Seq( "co.fs2" %% "fs2-core" % fs2Version, "co.fs2" %% "fs2-io" % fs2Version, - "org.typelevel" %% "cats-core" % "2.10.0", + "org.typelevel" %% "cats-core" % "2.12.0", "org.http4s" %% "http4s-dsl" % http4sVersion, "org.http4s" %% "http4s-blaze-server" % http4sBlaze, "org.http4s" %% "http4s-blaze-client" % http4sBlaze, From fe1c016bf00c6876aac9ec5b35a06f01b0b1110f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 2 Jun 2024 00:17:57 +0000 Subject: [PATCH 0641/1318] Update s3 from 2.25.60 to 2.25.64 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 9e7e6ba51..06c720d68 100644 --- a/build.sbt +++ b/build.sbt @@ -527,7 +527,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.730" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.25.60" + "software.amazon.awssdk" % "s3" % "2.25.64" ), Defaults.itSettings, IntegrationTest / fork := true From 14bb3db3589de0eda8beb1423a03ae8a22be3b0d Mon Sep 17 00:00:00 2001 From: kateu herbert Date: Mon, 13 May 2024 11:32:30 +0300 Subject: [PATCH 0642/1318] added code for refined --- build.sbt | 8 ++ .../com/baeldung/refined/RefinedIntro.scala | 76 +++++++++++++++++++ .../baeldung/refined/RefinedIntroSpec.scala | 75 ++++++++++++++++++ 3 files changed, 159 insertions(+) create mode 100644 scala-libraries-standalone/refined/src/main/scala/com/baeldung/refined/RefinedIntro.scala create mode 100644 scala-libraries-standalone/refined/src/test/scala/com/baeldung/refined/RefinedIntroSpec.scala diff --git a/build.sbt b/build.sbt index f3759bc12..e5c8fa74a 100644 --- a/build.sbt +++ b/build.sbt @@ -480,6 +480,14 @@ lazy val tapir = (project in file("scala-libraries-standalone/tapir")) scalaVersion := scala3Version ) +lazy val refined = (project in file("scala-libraries-standalone/refined")) + .settings( + name := "refined", + scalaVersion := scalaV, + libraryDependencies += "eu.timepit" %% "refined" % "0.11.1", + libraryDependencies ++= scalaTestDeps + ) + val spireVersion = "0.18.0" val kafkaVersion = "7.6.1-ce" val pureconfigVersion = "0.17.6" diff --git a/scala-libraries-standalone/refined/src/main/scala/com/baeldung/refined/RefinedIntro.scala b/scala-libraries-standalone/refined/src/main/scala/com/baeldung/refined/RefinedIntro.scala new file mode 100644 index 000000000..f1c006f72 --- /dev/null +++ b/scala-libraries-standalone/refined/src/main/scala/com/baeldung/refined/RefinedIntro.scala @@ -0,0 +1,76 @@ +package com.baeldung.refined + +import eu.timepit.refined._ +import eu.timepit.refined.api.Refined +import eu.timepit.refined.auto._ +import eu.timepit.refined.numeric._ +import eu.timepit.refined.string._ +import eu.timepit.refined.collection._ +import eu.timepit.refined.char._ +import eu.timepit.refined.boolean._ +import eu.timepit.refined.api.Validate + +object RefinedIntro { + // val oddNumber: Refined[Int, Odd] = 8 + // val oddNumber: Int Refined Odd = 8 + val age: Int Refined Less[35] = 30 + val ageInterval: Int Refined Interval.Closed[30, 35] = 35 + val age2: Int Refined GreaterEqual[35] = 35 + val ageInput: Int = 36 + val ageCheck = refineV[GreaterEqual[35]](ageInput) + + val myDigit: Char Refined Digit = '8' + val myLetter: Char Refined Letter = 'H' + + val myName: String Refined StartsWith["S"] = "Sandra" + val myName2: String Refined EndsWith["t"] = "Herbert" + // val myName3: String Refined StartsWith["s"] = "Sandra" + // val myAddr: String Refined IPv6 = "127.0.0.1" + + type myRegex = MatchesRegex["""[A-Za-z0-9]+"""] + val accessCode: String Refined myRegex = "DC13h" + + type myIntRegex = myRegex And ValidInt + val accessCode2: String Refined myIntRegex = "97426" + // val accessCode3: String Refined myIntRegex = "9742B" + + val fruits = List("Banana", "Orange", "Lemon", "Guava") + val contains = refineV[Contains["Berry"]](fruits) + val forall = refineV[Forall[Trimmed]](fruits) + val last = refineV[Last[Uuid]](fruits) + val size = refineV[Size[Less[5]]](fruits) + + case class Person(name: String, height: Double) + case class Tall() + case class Average() + case class Short() + + implicit val tallValidate: Validate.Plain[Person, Tall] = + Validate.fromPredicate( + p => p.height >= 6.0, + p => s"(${p.name} is tall)", + Tall() + ) + + implicit val averageValidate: Validate.Plain[Person, Average] = + Validate.fromPredicate( + p => p.height >= 5.0 && p.height < 6.0, + p => s"(${p.name} is average)", + Average() + ) + + implicit val shortValidate: Validate.Plain[Person, Short] = + Validate.fromPredicate( + p => p.height < 5.0, + p => s"(${p.name} is short)", + Short() + ) + + val tall = refineV[Tall](Person("Herbert", 5.5)) + val average = refineV[Average](Person("Herbert", 5.5)) +} + +object Hello extends App { + import RefinedProject._ + println(refineV[Short](Person("Herbert", 4.0))) +} diff --git a/scala-libraries-standalone/refined/src/test/scala/com/baeldung/refined/RefinedIntroSpec.scala b/scala-libraries-standalone/refined/src/test/scala/com/baeldung/refined/RefinedIntroSpec.scala new file mode 100644 index 000000000..6fbbf9ed7 --- /dev/null +++ b/scala-libraries-standalone/refined/src/test/scala/com/baeldung/refined/RefinedIntroSpec.scala @@ -0,0 +1,75 @@ +package com.baeldung.refined + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers +import eu.timepit.refined._ +import eu.timepit.refined.api.Refined +import eu.timepit.refined.auto._ +import eu.timepit.refined.numeric._ +import eu.timepit.refined.string._ +import eu.timepit.refined.collection._ +import eu.timepit.refined.char._ +import eu.timepit.refined.boolean._ +import eu.timepit.refined.api.Validate +import scala.util.{Right, Left} + +class RefinedIntroSpec extends AnyFlatSpec with Matchers { + import RefinedProject.{size => sizeTest, _} + + "Int checks" should "pass with refined types" in { + assert(refineV[Odd](8) == Left("Predicate (8 % 2 == 0) did not fail.")) + age shouldBe an[Int Refined Less[35]] + ageInterval shouldBe an[Int Refined Interval.Closed[30, 35]] + age2 shouldBe an[Int Refined GreaterEqual[35]] + ageInput shouldBe an[Int] + ageCheck shouldBe an[Either[String, Refined[Int, GreaterEqual[35]]]] + } + + "Char checks" should "pass for refined types" in { + assert(myDigit.isInstanceOf[Char Refined Digit]) + assert(myLetter.isInstanceOf[Char Refined Letter]) + } + + "String checks" should "pass for refined types" in { + assert( + refineV[StartsWith["s"]]("Sandra") == Left( + "Predicate failed: \"Sandra\".startsWith(\"s\")." + ) + ) + assert( + refineV[IPv6]("127.0.0.1") == Left( + "Predicate failed: 127.0.0.1 is a valid IPv6." + ) + ) + assert(myName.isInstanceOf[String Refined StartsWith["S"]]) + assert(myName2.isInstanceOf[String Refined EndsWith["t"]]) + } + + "Regex checks" should "pass for refined types" in { + assert( + refineV[myIntRegex]("9742B") == Left( + "Right predicate of (\"9742B\".matches(\"[A-Za-z0-9]+\") && isValidValidInt(\"9742B\")) failed: ValidInt predicate failed: For input string: \"9742B\"" + ) + ) + assert(accessCode.isInstanceOf[String Refined myRegex]) + + assert(accessCode2.isInstanceOf[String Refined myIntRegex]) + } + + "collection checks" should "pass for refined types" in { + assert( + forall + .isInstanceOf[Either[String, Refined[List[String], Forall[Trimmed]]]] + ) + assert(last.isInstanceOf[Either[String, Refined[List[String], Last[Uuid]]]]) + assert( + sizeTest + .isInstanceOf[Either[String, Refined[List[String], Size[Less[5]]]]] + ) + } + + "Person checks" should "pass for custom refined types" in { + assert(tall.isInstanceOf[Either[String, Refined[Person, Tall]]]) + assert(average.isInstanceOf[Either[String, Refined[Person, Average]]]) + } +} From 41d86798cbf4da21b1c21c80ad17c9ae55dc9ee6 Mon Sep 17 00:00:00 2001 From: kateu herbert Date: Mon, 13 May 2024 11:46:02 +0300 Subject: [PATCH 0643/1318] fixed type in test --- .../src/test/scala/com/baeldung/refined/RefinedIntroSpec.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/refined/src/test/scala/com/baeldung/refined/RefinedIntroSpec.scala b/scala-libraries-standalone/refined/src/test/scala/com/baeldung/refined/RefinedIntroSpec.scala index 6fbbf9ed7..927aa4417 100644 --- a/scala-libraries-standalone/refined/src/test/scala/com/baeldung/refined/RefinedIntroSpec.scala +++ b/scala-libraries-standalone/refined/src/test/scala/com/baeldung/refined/RefinedIntroSpec.scala @@ -14,7 +14,7 @@ import eu.timepit.refined.api.Validate import scala.util.{Right, Left} class RefinedIntroSpec extends AnyFlatSpec with Matchers { - import RefinedProject.{size => sizeTest, _} + import RefinedIntro.{size => sizeTest, _} "Int checks" should "pass with refined types" in { assert(refineV[Odd](8) == Left("Predicate (8 % 2 == 0) did not fail.")) From a2813fc8b215901a7bd80b3d946feb118231c0f9 Mon Sep 17 00:00:00 2001 From: kateu herbert Date: Mon, 13 May 2024 12:04:32 +0300 Subject: [PATCH 0644/1318] fixed typo --- .../src/main/scala/com/baeldung/refined/RefinedIntro.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/refined/src/main/scala/com/baeldung/refined/RefinedIntro.scala b/scala-libraries-standalone/refined/src/main/scala/com/baeldung/refined/RefinedIntro.scala index f1c006f72..1caea3d21 100644 --- a/scala-libraries-standalone/refined/src/main/scala/com/baeldung/refined/RefinedIntro.scala +++ b/scala-libraries-standalone/refined/src/main/scala/com/baeldung/refined/RefinedIntro.scala @@ -71,6 +71,6 @@ object RefinedIntro { } object Hello extends App { - import RefinedProject._ + import RefinedIntro._ println(refineV[Short](Person("Herbert", 4.0))) } From 1bf05bfe5416393fba5e79f0f0433f5e4cba790b Mon Sep 17 00:00:00 2001 From: kateu herbert Date: Thu, 16 May 2024 22:59:28 +0300 Subject: [PATCH 0645/1318] Renamed test file to RefinedIntroTest.scala --- .../refined/{RefinedIntroSpec.scala => RefinedIntroTest.scala} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename scala-libraries-standalone/refined/src/test/scala/com/baeldung/refined/{RefinedIntroSpec.scala => RefinedIntroTest.scala} (100%) diff --git a/scala-libraries-standalone/refined/src/test/scala/com/baeldung/refined/RefinedIntroSpec.scala b/scala-libraries-standalone/refined/src/test/scala/com/baeldung/refined/RefinedIntroTest.scala similarity index 100% rename from scala-libraries-standalone/refined/src/test/scala/com/baeldung/refined/RefinedIntroSpec.scala rename to scala-libraries-standalone/refined/src/test/scala/com/baeldung/refined/RefinedIntroTest.scala From cbf1458b53039dfd4efa1bf99a6119f72150ebb6 Mon Sep 17 00:00:00 2001 From: kateu herbert Date: Thu, 16 May 2024 23:20:23 +0300 Subject: [PATCH 0646/1318] Renamed test file to RefinedUnitTest.scala --- .../refined/{RefinedIntroTest.scala => RefinedUnitTest.scala} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename scala-libraries-standalone/refined/src/test/scala/com/baeldung/refined/{RefinedIntroTest.scala => RefinedUnitTest.scala} (97%) diff --git a/scala-libraries-standalone/refined/src/test/scala/com/baeldung/refined/RefinedIntroTest.scala b/scala-libraries-standalone/refined/src/test/scala/com/baeldung/refined/RefinedUnitTest.scala similarity index 97% rename from scala-libraries-standalone/refined/src/test/scala/com/baeldung/refined/RefinedIntroTest.scala rename to scala-libraries-standalone/refined/src/test/scala/com/baeldung/refined/RefinedUnitTest.scala index 927aa4417..ba3ae0fbc 100644 --- a/scala-libraries-standalone/refined/src/test/scala/com/baeldung/refined/RefinedIntroTest.scala +++ b/scala-libraries-standalone/refined/src/test/scala/com/baeldung/refined/RefinedUnitTest.scala @@ -13,7 +13,7 @@ import eu.timepit.refined.boolean._ import eu.timepit.refined.api.Validate import scala.util.{Right, Left} -class RefinedIntroSpec extends AnyFlatSpec with Matchers { +class RefinedUnitTest extends AnyFlatSpec with Matchers { import RefinedIntro.{size => sizeTest, _} "Int checks" should "pass with refined types" in { From 925607c8e44a52e58a2034050bfa26a4f43c7166 Mon Sep 17 00:00:00 2001 From: kateu herbert Date: Sun, 2 Jun 2024 15:03:53 +0300 Subject: [PATCH 0647/1318] fixed spacing --- .../src/main/scala/com/baeldung/refined/RefinedIntro.scala | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-libraries-standalone/refined/src/main/scala/com/baeldung/refined/RefinedIntro.scala b/scala-libraries-standalone/refined/src/main/scala/com/baeldung/refined/RefinedIntro.scala index 1caea3d21..f1f79a34e 100644 --- a/scala-libraries-standalone/refined/src/main/scala/com/baeldung/refined/RefinedIntro.scala +++ b/scala-libraries-standalone/refined/src/main/scala/com/baeldung/refined/RefinedIntro.scala @@ -13,6 +13,7 @@ import eu.timepit.refined.api.Validate object RefinedIntro { // val oddNumber: Refined[Int, Odd] = 8 // val oddNumber: Int Refined Odd = 8 + val age: Int Refined Less[35] = 30 val ageInterval: Int Refined Interval.Closed[30, 35] = 35 val age2: Int Refined GreaterEqual[35] = 35 From 2379091f46686ee4fc7a6cdd9b2a7c26b295dd2f Mon Sep 17 00:00:00 2001 From: kateu herbert Date: Sun, 2 Jun 2024 15:41:30 +0300 Subject: [PATCH 0648/1318] formatted file --- .../src/main/scala/com/baeldung/refined/RefinedIntro.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/refined/src/main/scala/com/baeldung/refined/RefinedIntro.scala b/scala-libraries-standalone/refined/src/main/scala/com/baeldung/refined/RefinedIntro.scala index f1f79a34e..d4a8c1491 100644 --- a/scala-libraries-standalone/refined/src/main/scala/com/baeldung/refined/RefinedIntro.scala +++ b/scala-libraries-standalone/refined/src/main/scala/com/baeldung/refined/RefinedIntro.scala @@ -13,7 +13,7 @@ import eu.timepit.refined.api.Validate object RefinedIntro { // val oddNumber: Refined[Int, Odd] = 8 // val oddNumber: Int Refined Odd = 8 - + val age: Int Refined Less[35] = 30 val ageInterval: Int Refined Interval.Closed[30, 35] = 35 val age2: Int Refined GreaterEqual[35] = 35 From e3719532ad4262a8c9d9f5b5a18cc6f5fd44fbb5 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 5 Jun 2024 08:27:32 +0200 Subject: [PATCH 0649/1318] Added enum sample code in Scala 3 --- .../baeldung/scala/enumerations/Fingers.scala | 2 ++ .../scala/enumerations/scala3/Fingers.scala | 10 ++++++++++ .../enumerations/scala3/FingersUnitTest.scala | 20 +++++++++++++++++++ 3 files changed, 32 insertions(+) create mode 100644 scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/enumerations/scala3/Fingers.scala create mode 100644 scala-core-modules/scala-core-oop/src/test/scala/com/baeldung/scala/enumerations/scala3/FingersUnitTest.scala diff --git a/scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/enumerations/Fingers.scala b/scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/enumerations/Fingers.scala index c75ae1c99..55b6242de 100644 --- a/scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/enumerations/Fingers.scala +++ b/scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/enumerations/Fingers.scala @@ -1,5 +1,7 @@ package com.baeldung.scala.enumerations +// This is Scala 2 based enumeration. It still works in Scala 3 for compatibility. +// However, this might become unsupported in future release. In scala 3, use the keyword `enum` object Fingers extends Enumeration { type Finger = Value diff --git a/scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/enumerations/scala3/Fingers.scala b/scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/enumerations/scala3/Fingers.scala new file mode 100644 index 000000000..687171baf --- /dev/null +++ b/scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/enumerations/scala3/Fingers.scala @@ -0,0 +1,10 @@ +package com.baeldung.scala.enumerations.scala3 + +enum Fingers(val height: Double) { + case Thumb extends Fingers(1) + case Index extends Fingers(4) + case Middle extends Fingers(4.1) + case Ring extends Fingers(3.2) + case Little extends Fingers(0.5) + def heightInCms(): Double = height * 2.54 +} diff --git a/scala-core-modules/scala-core-oop/src/test/scala/com/baeldung/scala/enumerations/scala3/FingersUnitTest.scala b/scala-core-modules/scala-core-oop/src/test/scala/com/baeldung/scala/enumerations/scala3/FingersUnitTest.scala new file mode 100644 index 000000000..34f772887 --- /dev/null +++ b/scala-core-modules/scala-core-oop/src/test/scala/com/baeldung/scala/enumerations/scala3/FingersUnitTest.scala @@ -0,0 +1,20 @@ +package com.baeldung.scala.enumerations.scala3 + +import org.junit.Test +import org.junit.Assert.assertTrue + +class FingersUnitTest { + + @Test + def givenAFinger_getTheHeight(): Unit = { + val Thumb = Fingers.Thumb + assertTrue(Thumb.height == 1d) + } + + @Test + def givenAFinger_getTheHeightInCm(): Unit = { + val Thumb = Fingers.Thumb + assertTrue(Thumb.heightInCms() == 2.54d) + } + +} From 513f0ba49736de92e7083084fe55feab8b5a3ca0 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 5 Jun 2024 08:28:30 +0200 Subject: [PATCH 0650/1318] formatting --- .../com/baeldung/scala/enumerations/scala3/Fingers.scala | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/enumerations/scala3/Fingers.scala b/scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/enumerations/scala3/Fingers.scala index 687171baf..0547be82e 100644 --- a/scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/enumerations/scala3/Fingers.scala +++ b/scala-core-modules/scala-core-oop/src/main/scala/com/baeldung/scala/enumerations/scala3/Fingers.scala @@ -1,10 +1,10 @@ package com.baeldung.scala.enumerations.scala3 enum Fingers(val height: Double) { - case Thumb extends Fingers(1) - case Index extends Fingers(4) - case Middle extends Fingers(4.1) - case Ring extends Fingers(3.2) + case Thumb extends Fingers(1) + case Index extends Fingers(4) + case Middle extends Fingers(4.1) + case Ring extends Fingers(3.2) case Little extends Fingers(0.5) def heightInCms(): Double = height * 2.54 } From 3028237fc5e92f2de0f88eee49eb3074ef65bb28 Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Wed, 5 Jun 2024 21:29:05 +0800 Subject: [PATCH 0651/1318] Update README.md --- scala-core-modules/scala-core-9/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-core-modules/scala-core-9/README.md b/scala-core-modules/scala-core-9/README.md index 54c4a4439..887256c5c 100644 --- a/scala-core-modules/scala-core-9/README.md +++ b/scala-core-modules/scala-core-9/README.md @@ -5,3 +5,4 @@ - [Check if Two Strings Are Isomorphic in Scala](https://www.baeldung.com/scala/string-isomorphism) - [Find Two’s Complement of a Number in Scala](https://www.baeldung.com/scala/compute-twos-complement) - [Convert Option to Either in Scala](https://www.baeldung.com/scala/option-either-conversion) +- [Meaning of _root_ In Scala Import Clause](https://www.baeldung.com/scala/root-import-clause) From c4bc45346ec3dcd9d71ae908eecb7eef3ad0e9ef Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Wed, 5 Jun 2024 21:29:50 +0800 Subject: [PATCH 0652/1318] Update README.md --- zio-2/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/zio-2/README.md b/zio-2/README.md index 63bec4da4..bce7d03df 100644 --- a/zio-2/README.md +++ b/zio-2/README.md @@ -1,2 +1,3 @@ ### Relevant Articles: - [Test Aspects in ZIO Test](https://www.baeldung.com/scala/zio-test-aspects) +- [Introduction to ZIO Json](https://www.baeldung.com/scala/zio-json) From 4c763a2781ae0b99a69a4b2ba149c186ad10c141 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 00:15:09 +0000 Subject: [PATCH 0653/1318] Update aws-java-sdk-s3 from 1.12.734 to 1.12.739 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 3fe3eb88e..8720797dc 100644 --- a/build.sbt +++ b/build.sbt @@ -532,7 +532,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) scalaMock, "com.lihaoyi" %% "utest" % "0.8.3" % "test", munitDep, - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.734" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.739" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.25.64" From 9ba4ba4cd9e63814edd0039ebee71180207b3ed4 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 00:15:19 +0000 Subject: [PATCH 0654/1318] Update zio, zio-streams, zio-test, ... from 2.1.1 to 2.1.2 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 3fe3eb88e..8d1e2fe7d 100644 --- a/build.sbt +++ b/build.sbt @@ -22,7 +22,7 @@ val scalaTestDeps = Seq( ) val scalaMock = "org.scalamock" %% "scalamock" % "6.0.0" % Test -val zioVersion = "2.1.1" +val zioVersion = "2.1.2" lazy val scala_core = (project in file("scala-core-modules/scala-core")) .settings( From c77dec6d04f6f4017750302f3ed66fdf69800f1c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 00:15:37 +0000 Subject: [PATCH 0655/1318] Update zio-json from 0.6.2 to 0.7.0 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 3fe3eb88e..56c160fd3 100644 --- a/build.sbt +++ b/build.sbt @@ -626,7 +626,7 @@ lazy val cats_effects = (project in file("cats-effects")) libraryDependencies += "junit" % "junit" % "4.13.2" % Test ) -val zioJsonDep = "dev.zio" %% "zio-json" % "0.6.2" +val zioJsonDep = "dev.zio" %% "zio-json" % "0.7.0" val zioTestSbt = "dev.zio" %% "zio-test-sbt" % zioVersion % Test lazy val zio = (project in file("zio")) @@ -648,7 +648,7 @@ lazy val zio2 = (project in file("zio-2")) name := "zio-2", scalaVersion := scala3Version, libraryDependencies += "dev.zio" %% "zio" % zioVersion, - libraryDependencies += "dev.zio" %% "zio-json" % "0.6.2", + libraryDependencies += "dev.zio" %% "zio-json" % "0.7.0", libraryDependencies += "dev.zio" %% "zio-test" % zioVersion % Test, libraryDependencies += "dev.zio" %% "zio-test-sbt" % zioVersion % Test, libraryDependencies ++= scalaTestDeps, From 398fb8c259d3242c82cf24559c5c2d9e2644dc28 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 00:15:52 +0000 Subject: [PATCH 0656/1318] Update refined from 0.11.1 to 0.11.2 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 3fe3eb88e..7f5c1d193 100644 --- a/build.sbt +++ b/build.sbt @@ -484,7 +484,7 @@ lazy val refined = (project in file("scala-libraries-standalone/refined")) .settings( name := "refined", scalaVersion := scalaV, - libraryDependencies += "eu.timepit" %% "refined" % "0.11.1", + libraryDependencies += "eu.timepit" %% "refined" % "0.11.2", libraryDependencies ++= scalaTestDeps ) From ad840032868781f51b1aadeaefb84a3fcb24da13 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 00:16:05 +0000 Subject: [PATCH 0657/1318] Update sbt-scala-native from 0.5.2 to 0.5.3 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index 0d8e0f75c..2bcf2663b 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,6 +1,6 @@ addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.2") -addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.2") +addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.3") addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.16.0") addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.2.1") From 53c0e29ceaf628c6f08b115c70ee99026705ddca Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 00:16:20 +0000 Subject: [PATCH 0658/1318] Update s3 from 2.25.64 to 2.25.69 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 3fe3eb88e..66a9c91d7 100644 --- a/build.sbt +++ b/build.sbt @@ -535,7 +535,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.734" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.25.64" + "software.amazon.awssdk" % "s3" % "2.25.69" ), Defaults.itSettings, IntegrationTest / fork := true From f18c34549c1ed02ef544fa026803958ca0d5399e Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 18 Jun 2024 00:14:49 +0000 Subject: [PATCH 0659/1318] Update aws-java-sdk-s3 from 1.12.739 to 1.12.745 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a69b2b307..6bdb7012c 100644 --- a/build.sbt +++ b/build.sbt @@ -532,7 +532,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) scalaMock, "com.lihaoyi" %% "utest" % "0.8.3" % "test", munitDep, - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.739" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.745" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.25.69" From 57deb0d1c9ed220a259a977b283e63b07eadf288 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 18 Jun 2024 00:15:00 +0000 Subject: [PATCH 0660/1318] Update testcontainers-scala-localstack-v2, ... from 0.41.3 to 0.41.4 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index a69b2b307..06c7128e8 100644 --- a/build.sbt +++ b/build.sbt @@ -533,8 +533,8 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.lihaoyi" %% "utest" % "0.8.3" % "test", munitDep, "com.amazonaws" % "aws-java-sdk-s3" % "1.12.739" % IntegrationTest, - "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, - "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, + "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.4" % IntegrationTest, + "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.4" % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.25.69" ), Defaults.itSettings, From 7e2fa946b834e99910b3b6b3c8ca981370e27683 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 18 Jun 2024 00:15:18 +0000 Subject: [PATCH 0661/1318] Update pureconfig, pureconfig-enumeratum from 0.17.6 to 0.17.7 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index a69b2b307..7ee90396e 100644 --- a/build.sbt +++ b/build.sbt @@ -361,7 +361,7 @@ lazy val scala2_libraries = enumeratumDep, "io.monix" %% "monix" % monixVersion, pureConfigDep, - "com.github.pureconfig" %% "pureconfig-enumeratum" % "0.17.6", + "com.github.pureconfig" %% "pureconfig-enumeratum" % "0.17.7", "com.typesafe" % "config" % "1.4.3", "org.scala-lang.modules" %% "scala-async" % "1.0.1", "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.9.1", @@ -490,7 +490,7 @@ lazy val refined = (project in file("scala-libraries-standalone/refined")) val spireVersion = "0.18.0" val kafkaVersion = "7.6.1-ce" -val pureconfigVersion = "0.17.6" +val pureconfigVersion = "0.17.7" val jackSonVersion = "2.17.1" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" From 47551aac38f0f8fc483f7f2b18e1d27ff7372561 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 18 Jun 2024 00:15:36 +0000 Subject: [PATCH 0662/1318] Update tapir-akka-http-server, tapir-core, ... from 1.10.8 to 1.10.9 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index 8d4a7e68b..054a13b65 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.10.8" +val tapirV = "1.10.9" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From 3fe10df633a0d9618f0d5b07a1548af94cbb555d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 18 Jun 2024 00:15:57 +0000 Subject: [PATCH 0663/1318] Update de.flapdoodle.embed.mongo from 4.13.1 to 4.14.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a69b2b307..ba0a63c95 100644 --- a/build.sbt +++ b/build.sbt @@ -10,7 +10,7 @@ val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.4" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.4" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV val logback = "ch.qos.logback" % "logback-classic" % "1.5.6" -val embedMongoVersion = "4.13.1" +val embedMongoVersion = "4.14.0" val AkkaVersion = "2.8.5" val AkkaHttpVersion = "10.5.0" From 3e07f9fb09c0231d79621b4d1d451c36b61f1d93 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 18 Jun 2024 00:16:07 +0000 Subject: [PATCH 0664/1318] Update zio, zio-streams, zio-test, ... from 2.1.2 to 2.1.3 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a69b2b307..a6d9ac2e1 100644 --- a/build.sbt +++ b/build.sbt @@ -22,7 +22,7 @@ val scalaTestDeps = Seq( ) val scalaMock = "org.scalamock" %% "scalamock" % "6.0.0" % Test -val zioVersion = "2.1.2" +val zioVersion = "2.1.3" lazy val scala_core = (project in file("scala-core-modules/scala-core")) .settings( From 778b509d7bc2f6eb1ade06c29f5e168dd1feedfd Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 18 Jun 2024 00:16:28 +0000 Subject: [PATCH 0665/1318] Update zio-kafka from 2.7.4 to 2.7.5 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a69b2b307..1f41cf574 100644 --- a/build.sbt +++ b/build.sbt @@ -636,7 +636,7 @@ lazy val zio = (project in file("zio")) libraryDependencies += "dev.zio" %% "zio" % zioVersion, libraryDependencies += "dev.zio" %% "zio-streams" % zioVersion, libraryDependencies += zioTestSbt, - libraryDependencies += "dev.zio" %% "zio-kafka" % "2.7.4", + libraryDependencies += "dev.zio" %% "zio-kafka" % "2.7.5", libraryDependencies += zioJsonDep, libraryDependencies += "dev.zio" %% "zio-prelude" % "1.0.0-RC23", libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.18" % Test, From cddcccb2c28fc3dc0ca166e4ec370886be1c402f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 19 Jun 2024 00:16:27 +0000 Subject: [PATCH 0666/1318] Update aws-java-sdk-s3 from 1.12.745 to 1.12.746 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 028cc87e7..74baf9838 100644 --- a/build.sbt +++ b/build.sbt @@ -532,7 +532,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) scalaMock, "com.lihaoyi" %% "utest" % "0.8.3" % "test", munitDep, - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.745" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.746" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.25.69" From 63a990f11592a9bf51f1e1ffa3bb61cd823fe15d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 19 Jun 2024 00:16:38 +0000 Subject: [PATCH 0667/1318] Update circe-core, circe-generic, ... from 0.14.7 to 0.14.8 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 028cc87e7..00b620676 100644 --- a/build.sbt +++ b/build.sbt @@ -384,7 +384,7 @@ lazy val scala2_libraries = Defaults.itSettings ) -val circeVersion = "0.14.7" +val circeVersion = "0.14.8" val monixVersion = "3.4.1" val elastic4sVersion = "8.13.0" val sparkVersion = "3.5.1" From 79569ab53e99e2d65127db03500bed4044437b85 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 19 Jun 2024 00:16:53 +0000 Subject: [PATCH 0668/1318] Update mongo-scala-driver from 5.1.0 to 5.1.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 028cc87e7..4f330f56d 100644 --- a/build.sbt +++ b/build.sbt @@ -256,7 +256,7 @@ lazy val scala_akka_dependencies: Seq[ModuleID] = Seq( akkaTypedTestkit, "com.lightbend.akka" %% "akka-stream-alpakka-mongodb" % "5.0.0", akkaStreamDep, - "org.mongodb.scala" %% "mongo-scala-driver" % "5.1.0", + "org.mongodb.scala" %% "mongo-scala-driver" % "5.1.1", "com.lightbend.akka" %% "akka-stream-alpakka-file" % "5.0.0", jUnitInterface, embeddedMongo % Test, From 9b318aa41e6e0509af93186e4251cc780d42a77b Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 19 Jun 2024 00:17:10 +0000 Subject: [PATCH 0669/1318] Update play-ahc-ws, play-caffeine-cache, ... from 3.0.3 to 3.0.4 --- play-scala/application-tests/project/plugins.sbt | 2 +- play-scala/async-tasks/project/plugins.sbt | 2 +- play-scala/caching-in-play/project/plugins.sbt | 2 +- play-scala/configuration-access/project/plugins.sbt | 2 +- play-scala/custom-error-handling/project/plugins.sbt | 2 +- play-scala/dependency-injection/project/plugins.sbt | 2 +- play-scala/introduction-to-play/project/plugins.sbt | 2 +- play-scala/play-static-assets/project/plugins.sbt | 2 +- play-scala/play-templates/project/plugins.sbt | 2 +- play-scala/rest-api/project/plugins.sbt | 2 +- project/plugins.sbt | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/play-scala/application-tests/project/plugins.sbt b/play-scala/application-tests/project/plugins.sbt index 6a36a90ab..003ea5143 100644 --- a/play-scala/application-tests/project/plugins.sbt +++ b/play-scala/application-tests/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.3") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.4") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.16.2") diff --git a/play-scala/async-tasks/project/plugins.sbt b/play-scala/async-tasks/project/plugins.sbt index e3f41a797..cf4932c90 100644 --- a/play-scala/async-tasks/project/plugins.sbt +++ b/play-scala/async-tasks/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.3") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.4") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") diff --git a/play-scala/caching-in-play/project/plugins.sbt b/play-scala/caching-in-play/project/plugins.sbt index 3a1210b48..cad739cd4 100644 --- a/play-scala/caching-in-play/project/plugins.sbt +++ b/play-scala/caching-in-play/project/plugins.sbt @@ -1,3 +1,3 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.3") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.4") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.0") diff --git a/play-scala/configuration-access/project/plugins.sbt b/play-scala/configuration-access/project/plugins.sbt index 3a1210b48..cad739cd4 100644 --- a/play-scala/configuration-access/project/plugins.sbt +++ b/play-scala/configuration-access/project/plugins.sbt @@ -1,3 +1,3 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.3") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.4") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.0") diff --git a/play-scala/custom-error-handling/project/plugins.sbt b/play-scala/custom-error-handling/project/plugins.sbt index e3f41a797..cf4932c90 100644 --- a/play-scala/custom-error-handling/project/plugins.sbt +++ b/play-scala/custom-error-handling/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.3") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.4") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") diff --git a/play-scala/dependency-injection/project/plugins.sbt b/play-scala/dependency-injection/project/plugins.sbt index 4733ac31c..56bac0252 100644 --- a/play-scala/dependency-injection/project/plugins.sbt +++ b/play-scala/dependency-injection/project/plugins.sbt @@ -1,3 +1,3 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.3") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.4") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.2") diff --git a/play-scala/introduction-to-play/project/plugins.sbt b/play-scala/introduction-to-play/project/plugins.sbt index e3f41a797..cf4932c90 100644 --- a/play-scala/introduction-to-play/project/plugins.sbt +++ b/play-scala/introduction-to-play/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.3") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.4") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") diff --git a/play-scala/play-static-assets/project/plugins.sbt b/play-scala/play-static-assets/project/plugins.sbt index c890e0c7a..b016d2203 100644 --- a/play-scala/play-static-assets/project/plugins.sbt +++ b/play-scala/play-static-assets/project/plugins.sbt @@ -1,4 +1,4 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.3") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.4") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") addSbtPlugin("com.typesafe.sbt" % "sbt-coffeescript" % "1.0.2") addSbtPlugin("com.github.platypii" % "sbt-typescript" % "4.6.4") diff --git a/play-scala/play-templates/project/plugins.sbt b/play-scala/play-templates/project/plugins.sbt index e3f41a797..cf4932c90 100644 --- a/play-scala/play-templates/project/plugins.sbt +++ b/play-scala/play-templates/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.3") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.4") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") diff --git a/play-scala/rest-api/project/plugins.sbt b/play-scala/rest-api/project/plugins.sbt index e3f41a797..cf4932c90 100644 --- a/play-scala/rest-api/project/plugins.sbt +++ b/play-scala/rest-api/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.3") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.4") addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") diff --git a/project/plugins.sbt b/project/plugins.sbt index 2bcf2663b..f0011afbb 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -7,7 +7,7 @@ addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.2.1") libraryDependencies += "ai.kien" %% "python-native-libs" % "0.2.4" // Make sure to keep the play plugin in sync with the sub modules under play-scala group -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.3") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.4") addSbtPlugin("org.playframework.twirl" % "sbt-twirl" % "2.0.1") addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "4.2.1") From 009a499da2417294a9c90105d6243ad5375f6fb3 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 19 Jun 2024 00:17:29 +0000 Subject: [PATCH 0670/1318] Update sbt-twirl, twirl-api from 2.0.5 to 2.0.6 --- scalatra/project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scalatra/project/plugins.sbt b/scalatra/project/plugins.sbt index 6d057860a..b8cd0fa91 100644 --- a/scalatra/project/plugins.sbt +++ b/scalatra/project/plugins.sbt @@ -1,3 +1,3 @@ -addSbtPlugin("org.playframework.twirl" % "sbt-twirl" % "2.0.5") +addSbtPlugin("org.playframework.twirl" % "sbt-twirl" % "2.0.6") addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "4.2.4") libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always From 3ed1d1fc324fcbed71995c6994222cf345de2743 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 19 Jun 2024 00:17:45 +0000 Subject: [PATCH 0671/1318] Update s3 from 2.25.69 to 2.25.70 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 028cc87e7..5f963df3d 100644 --- a/build.sbt +++ b/build.sbt @@ -535,7 +535,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.745" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.25.69" + "software.amazon.awssdk" % "s3" % "2.25.70" ), Defaults.itSettings, IntegrationTest / fork := true From 4c763808972340508706965852b819df05bd034e Mon Sep 17 00:00:00 2001 From: baovitt Date: Thu, 20 Jun 2024 20:19:55 -0400 Subject: [PATCH 0672/1318] free monad article code --- scala-core-modules/scala-core-fp/README.md | 1 + .../baeldung/scala/freemonad/FreeMonads.scala | 182 ++++++++++++++++++ .../freemonad/InteractiveInterpretation.scala | 8 + .../scala/freemonad/FreeMonadUnitTest.scala | 32 +++ 4 files changed, 223 insertions(+) create mode 100644 scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/freemonad/FreeMonads.scala create mode 100644 scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/freemonad/InteractiveInterpretation.scala create mode 100644 scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/freemonad/FreeMonadUnitTest.scala diff --git a/scala-core-modules/scala-core-fp/README.md b/scala-core-modules/scala-core-fp/README.md index 1d226835a..28bb09a32 100644 --- a/scala-core-modules/scala-core-fp/README.md +++ b/scala-core-modules/scala-core-fp/README.md @@ -14,3 +14,4 @@ This module contains articles about Scala's Functional Programming features - [Functors in Functional Programming](https://www.baeldung.com/scala/functors-functional-programming) - [Case Objects vs Enumerations in Scala](https://www.baeldung.com/scala/case-objects-vs-enumerations) - [Function Composition in Scala](https://www.baeldung.com/scala/function-composition) +- [Free Monads in Scala] https://www.baeldung.com/scala/free-monads-in-scala \ No newline at end of file diff --git a/scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/freemonad/FreeMonads.scala b/scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/freemonad/FreeMonads.scala new file mode 100644 index 000000000..0257a9756 --- /dev/null +++ b/scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/freemonad/FreeMonads.scala @@ -0,0 +1,182 @@ +package com.baeldung.scala.freemonad + +import scala.concurrent.{Future, ExecutionContext} +import scala.util.{Try, Success, Failure} +import scala.io.StdIn.readChar +import scala.reflect.* + +given ExecutionContext = ExecutionContext.Implicits.global + +trait Monad[F[_]]: + def flatMap[A, B](fa: F[A])(f: (A) => F[B]): F[B] + + def pure[A](a: A): F[A] + + def map[A, B](fa: F[A])(f: A => B): F[B] = + flatMap(fa)(a => pure(f(a))) + +// List composition example: + +lazy val listComposition = + for + number <- 0 to 9 + letter <- 'A' to 'Z' + yield s"$number$letter" + +// Which the compiler transforms to: + +lazy val desugaredListComposition = + (0 to 9).flatMap: number => + ('A' to 'Z').map: letter => + s"$number$letter" + +// A functor is simpler and less powerful than a monad: + +trait Functor[F[_]]: + def map[A, B](fa: F[A])(f: A => B): F[B] + +// A transformation between two higher-kinded types with the same type parameter: + +trait ~>[F[_], G[_]]: + def apply[A: Typeable](f: F[A]): G[A] + +// Free allows us to lift a functor with monadic composition as a data structure: + +sealed trait Free[F[_], A: Typeable]: + def map[B: Typeable](f: A => B): Free[F, B] = FlatMap(this, (a: A) => Pure(f(a))) + def flatMap[B: Typeable](f: A => Free[F, B]): Free[F, B] = FlatMap(this, f) + + def foldMapAs[G[_]: Monad](using F ~> G): G[A] = this match + case Pure(value) => summon[Monad[G]].pure(value) + case FlatMap(sub, f) => + summon[Monad[G]] + .flatMap(sub.foldMapAs[G]): in => + f(in).foldMapAs[G] + case Suspend(s) => summon[F ~> G](s) + +final case class Pure[F[_], A: Typeable](value: A) extends Free[F, A] +final case class FlatMap[F[_], A: Typeable, B: Typeable](sub: Free[F, A], f: A => Free[F, B]) extends Free[F, B] +final case class Suspend[F[_], A: Typeable](s: F[A]) extends Free[F, A] + +// We define a non-monadic type: + +trait LazyCatchable[+A]: + def run(): Either[Catch, A] + +final class Lazy[A](value: => A) extends LazyCatchable[A]: + def run(): Either[Catch, A] = Try(value) match + case Success(value) => Right(value) + case Failure(e) => Left(Catch(e)) + +final case class Catch(e: Throwable) extends LazyCatchable[Nothing]: + def run(): Either[Catch, Nothing] = Left(this) + +// We can write monadic programs with it: + +lazy val sumProgram: Free[LazyCatchable, Int] = + for + a <- Suspend(Lazy(1)) + b <- Suspend(Lazy(2)) + result <- Pure(a + b) + yield result + +// Which is translated by the compiler to this: + +lazy val desugaredSumProgram = + FlatMap( + Suspend(Lazy(1)), + (num1: Int) => FlatMap( + Suspend(Lazy(2)), + (num2: Int) => Pure(num1 + num2) + ) + ) + +// We provide a ~> to a Future: + +given LazyCatchable2Future: (LazyCatchable ~> Future) with + def apply[A: Typeable](f: LazyCatchable[A]): Future[A] = f match + case Catch(e) => Future.failed(e) + case lazyValue: Lazy[_] => Future: + lazyValue.run() match + case Left(Catch(e)) => throw e + case Right(value: A @unchecked) => value + +// We define a Monad instance for Future: + +given FutureMonad: Monad[Future] with + def flatMap[A, B](fa: Future[A])(f: (A) => Future[B]): Future[B] = fa.flatMap(f) + + def pure[A](a: A): Future[A] = Future(a) + + override def map[A, B](fa: Future[A])(f: A => B): Future[B] = fa.map(f) + +// We can then convert our sumProgram to a Future: + +lazy val sumProgramFuture: Future[Int] = sumProgram.foldMapAs[Future](using FutureMonad, LazyCatchable2Future) // Future computes to 3 + +// Let's consider a more advanced workflow DSL: + +enum WorkflowCommand: + case FeelInspiredToLearn + case LikeFriendlyEnvironments + case WantToHelpPeopleBuildConfidenceCoding + case JoinBaeldungAsAWriter + +// We can then define our logic: + +def command[C <: WorkflowCommand](c: => C): Free[LazyCatchable, C] = Suspend(Lazy(c)) + +lazy val joinBaeldungWorkflow: Free[LazyCatchable, WorkflowCommand] = + for + _ <- command(WorkflowCommand.FeelInspiredToLearn) + _ <- command(WorkflowCommand.LikeFriendlyEnvironments) + _ <- command(WorkflowCommand.WantToHelpPeopleBuildConfidenceCoding) + `reachOutToday!` <- Pure(WorkflowCommand.JoinBaeldungAsAWriter) + yield `reachOutToday!` + +// Then we define a translation to Future: + +given BaeldungWorkflowInterpreter: (LazyCatchable ~> Future) with + private def askQuestion(question: String, repeat: Boolean = false): Boolean = + if repeat then print(s"\nInvalid response: try again (y or n) ") + else print(s"\n$question (y or n) ") + + readChar() match + case 'y' | 'Y' => true + case 'n' | 'N' => false + case _ => askQuestion(question, true) + + private def step[C <: WorkflowCommand](question: String, command: C, error: String): Future[C] = Future: + if askQuestion(question) then command + else throw new Exception(error) + + def apply[A: Typeable](f: LazyCatchable[A]): Future[A] = f match + case Catch(e) => Future.failed(e) + case lazyCmd: Lazy[_] => lazyCmd.run() match + case Left(Catch(e)) => Future.failed(e) + case Right(command: WorkflowCommand) => + command match + case WorkflowCommand.FeelInspiredToLearn => + step( + question = "Do you feel inspired to learn Scala?", + command = command, + error = "Baeldung has tutorials for other technologies too, like Java." + ) + case WorkflowCommand.LikeFriendlyEnvironments => + step( + question = "Do you like friendly environments?", + command = command, + error = "Bye." + ) + case WorkflowCommand.WantToHelpPeopleBuildConfidenceCoding => + step( + question = "Do you want to help people build confidence coding?", + command = command, + error = "Baeldung tutorials are reliable and informative." + ) + case WorkflowCommand.JoinBaeldungAsAWriter => Future.successful(command) + case Right(misc) => Future.successful(misc) + +// The translation is then very simple and intuitive: + +lazy val joinBaeldung: Future[WorkflowCommand] = joinBaeldungWorkflow.foldMapAs[Future](using FutureMonad, BaeldungWorkflowInterpreter) \ No newline at end of file diff --git a/scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/freemonad/InteractiveInterpretation.scala b/scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/freemonad/InteractiveInterpretation.scala new file mode 100644 index 000000000..6e491d86e --- /dev/null +++ b/scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/freemonad/InteractiveInterpretation.scala @@ -0,0 +1,8 @@ +package com.baeldung.scala.freemonad + +// import scala.concurrent.Await +// import scala.concurrent.duration.* + +// @main def runWorkflow(): Unit = +// val result = Await.result(joinBaeldung, 100.seconds) +// println(result) \ No newline at end of file diff --git a/scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/freemonad/FreeMonadUnitTest.scala b/scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/freemonad/FreeMonadUnitTest.scala new file mode 100644 index 000000000..e0d140d28 --- /dev/null +++ b/scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/freemonad/FreeMonadUnitTest.scala @@ -0,0 +1,32 @@ +package com.baeldung.scala.freemonad + +import com.baeldung.scala.freemonad.{*, given} + +import scala.concurrent.Future + +import org.scalatest.concurrent.ScalaFutures +import org.scalatest.freespec.AsyncFreeSpecLike +import org.scalatest.matchers.should.Matchers + +class FreeMonadUnitTest + extends AsyncFreeSpecLike + with Matchers + with ScalaFutures: + + "sumProgram should be transformed as a free structure into it's value using a proper monad" in: + sumProgram + .foldMapAs[Future](using FutureMonad, LazyCatchable2Future) + .map(_ shouldBe 3) + + "BaeldungWorkflowInterpreter should preserve logic on non-workflow types" in: + sumProgram + .foldMapAs[Future](using FutureMonad, BaeldungWorkflowInterpreter) + .map(_ shouldBe 3) + + "should demonstrate for-comprehension and flatMap/map equivalence" in: + listComposition shouldBe desugaredListComposition + + "joinBaeldungWorkflows spec should succeed" in: + joinBaeldungWorkflow + .foldMapAs[Future](using FutureMonad, LazyCatchable2Future) + .map(_ shouldBe WorkflowCommand.JoinBaeldungAsAWriter) \ No newline at end of file From b97fd5554ddf09cd235e4eb2ac3872f9dfe3d976 Mon Sep 17 00:00:00 2001 From: Matteo Di Pirro Date: Fri, 21 Jun 2024 18:08:48 +0200 Subject: [PATCH 0673/1318] SCALA-455 Add code for scalafix article --- scala-sbt/scalafix/.scalafix.conf | 8 +++++++ scala-sbt/scalafix/build.sbt | 9 ++++++++ scala-sbt/scalafix/project/build.properties | 1 + scala-sbt/scalafix/project/plugins.sbt | 1 + .../scala/scalafix/DisableSyntaxDemo.scala | 15 +++++++++++++ .../scala/scalafix/RemoveUnusedDemo.scala | 21 +++++++++++++++++++ 6 files changed, 55 insertions(+) create mode 100644 scala-sbt/scalafix/.scalafix.conf create mode 100644 scala-sbt/scalafix/build.sbt create mode 100644 scala-sbt/scalafix/project/build.properties create mode 100644 scala-sbt/scalafix/project/plugins.sbt create mode 100644 scala-sbt/scalafix/src/main/scala/com/baeldung/scala/scalafix/DisableSyntaxDemo.scala create mode 100644 scala-sbt/scalafix/src/main/scala/com/baeldung/scala/scalafix/RemoveUnusedDemo.scala diff --git a/scala-sbt/scalafix/.scalafix.conf b/scala-sbt/scalafix/.scalafix.conf new file mode 100644 index 000000000..2adf80f27 --- /dev/null +++ b/scala-sbt/scalafix/.scalafix.conf @@ -0,0 +1,8 @@ +rules = [ + DisableSyntax, + RemoveUnused, +] + +DisableSyntax.noVars = true +DisableSyntax.noThrows = true +DisableSyntax.noNulls = true diff --git a/scala-sbt/scalafix/build.sbt b/scala-sbt/scalafix/build.sbt new file mode 100644 index 000000000..83058e4c4 --- /dev/null +++ b/scala-sbt/scalafix/build.sbt @@ -0,0 +1,9 @@ +lazy val root = (project in file(".")) + .settings( + name := "scalafix", + scalaVersion := "3.4.2", + version := "1.0.0", + semanticdbEnabled := true, + semanticdbVersion := scalafixSemanticdb.revision, + scalacOptions += "-Wunused:all" + ) diff --git a/scala-sbt/scalafix/project/build.properties b/scala-sbt/scalafix/project/build.properties new file mode 100644 index 000000000..b485f62cc --- /dev/null +++ b/scala-sbt/scalafix/project/build.properties @@ -0,0 +1 @@ +sbt.version=1.10.0 \ No newline at end of file diff --git a/scala-sbt/scalafix/project/plugins.sbt b/scala-sbt/scalafix/project/plugins.sbt new file mode 100644 index 000000000..32c80251b --- /dev/null +++ b/scala-sbt/scalafix/project/plugins.sbt @@ -0,0 +1 @@ +addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.12.1") \ No newline at end of file diff --git a/scala-sbt/scalafix/src/main/scala/com/baeldung/scala/scalafix/DisableSyntaxDemo.scala b/scala-sbt/scalafix/src/main/scala/com/baeldung/scala/scalafix/DisableSyntaxDemo.scala new file mode 100644 index 000000000..97dfd72e3 --- /dev/null +++ b/scala-sbt/scalafix/src/main/scala/com/baeldung/scala/scalafix/DisableSyntaxDemo.scala @@ -0,0 +1,15 @@ +package com.baeldung.scala.scalafix + +object DisableSyntaxDemo: + var myVariable = null + + def validateMyVariable(): Boolean = + if (myVariable == null) throw Exception("myVariable Is Null") + + return true + +object DisableSyntaxDemoRewritten: + val myVariable = Option.empty[Unit] + + def validateMyVariable(): Either[String, Unit] = + myVariable.toRight("myVariable Is Null") diff --git a/scala-sbt/scalafix/src/main/scala/com/baeldung/scala/scalafix/RemoveUnusedDemo.scala b/scala-sbt/scalafix/src/main/scala/com/baeldung/scala/scalafix/RemoveUnusedDemo.scala new file mode 100644 index 000000000..1ccd8ab71 --- /dev/null +++ b/scala-sbt/scalafix/src/main/scala/com/baeldung/scala/scalafix/RemoveUnusedDemo.scala @@ -0,0 +1,21 @@ +package com.baeldung.scala.scalafix + +import scala.List + +object RemoveUnusedDemo: + val myNumber = 10 + + def greeting(name: String): String = { + val newName = s"$name $myNumber" + s"Hello, $name!" + } + +/* Rewritten: +object RemoveUnusedDemo: + val myNumber = 10 + + def greeting(name: String): String = { + s"$name $myNumber" + s"Hello, $name!" + } + */ From 6ec3feb6994be6d03f76cc7a700f231aeee447ab Mon Sep 17 00:00:00 2001 From: baovitt Date: Fri, 21 Jun 2024 13:01:02 -0400 Subject: [PATCH 0674/1318] formatting changes --- .../baeldung/scala/freemonad/FreeMonads.scala | 155 ++++++++++-------- .../freemonad/InteractiveInterpretation.scala | 4 +- .../scala/freemonad/FreeMonadUnitTest.scala | 2 +- 3 files changed, 91 insertions(+), 70 deletions(-) diff --git a/scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/freemonad/FreeMonads.scala b/scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/freemonad/FreeMonads.scala index 0257a9756..6b8be4575 100644 --- a/scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/freemonad/FreeMonads.scala +++ b/scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/freemonad/FreeMonads.scala @@ -17,17 +17,17 @@ trait Monad[F[_]]: // List composition example: -lazy val listComposition = - for - number <- 0 to 9 - letter <- 'A' to 'Z' +lazy val listComposition = + for + number <- 0 to 9 + letter <- 'A' to 'Z' yield s"$number$letter" // Which the compiler transforms to: lazy val desugaredListComposition = - (0 to 9).flatMap: number => - ('A' to 'Z').map: letter => + (0 to 9).flatMap: number => + ('A' to 'Z').map: letter => s"$number$letter" // A functor is simpler and less powerful than a monad: @@ -37,13 +37,14 @@ trait Functor[F[_]]: // A transformation between two higher-kinded types with the same type parameter: -trait ~>[F[_], G[_]]: +trait ~>[F[_], G[_]]: def apply[A: Typeable](f: F[A]): G[A] // Free allows us to lift a functor with monadic composition as a data structure: -sealed trait Free[F[_], A: Typeable]: - def map[B: Typeable](f: A => B): Free[F, B] = FlatMap(this, (a: A) => Pure(f(a))) +sealed trait Free[F[_], A: Typeable]: + def map[B: Typeable](f: A => B): Free[F, B] = + FlatMap(this, (a: A) => Pure(f(a))) def flatMap[B: Typeable](f: A => Free[F, B]): Free[F, B] = FlatMap(this, f) def foldMapAs[G[_]: Monad](using F ~> G): G[A] = this match @@ -54,8 +55,11 @@ sealed trait Free[F[_], A: Typeable]: f(in).foldMapAs[G] case Suspend(s) => summon[F ~> G](s) -final case class Pure[F[_], A: Typeable](value: A) extends Free[F, A] -final case class FlatMap[F[_], A: Typeable, B: Typeable](sub: Free[F, A], f: A => Free[F, B]) extends Free[F, B] +final case class Pure[F[_], A: Typeable](value: A) extends Free[F, A] +final case class FlatMap[F[_], A: Typeable, B: Typeable]( + sub: Free[F, A], + f: A => Free[F, B] +) extends Free[F, B] final case class Suspend[F[_], A: Typeable](s: F[A]) extends Free[F, A] // We define a non-monadic type: @@ -66,29 +70,30 @@ trait LazyCatchable[+A]: final class Lazy[A](value: => A) extends LazyCatchable[A]: def run(): Either[Catch, A] = Try(value) match case Success(value) => Right(value) - case Failure(e) => Left(Catch(e)) + case Failure(e) => Left(Catch(e)) final case class Catch(e: Throwable) extends LazyCatchable[Nothing]: def run(): Either[Catch, Nothing] = Left(this) // We can write monadic programs with it: -lazy val sumProgram: Free[LazyCatchable, Int] = - for - a <- Suspend(Lazy(1)) - b <- Suspend(Lazy(2)) - result <- Pure(a + b) +lazy val sumProgram: Free[LazyCatchable, Int] = + for + a <- Suspend(Lazy(1)) + b <- Suspend(Lazy(2)) + result <- Pure(a + b) yield result // Which is translated by the compiler to this: lazy val desugaredSumProgram = FlatMap( - Suspend(Lazy(1)), - (num1: Int) => FlatMap( - Suspend(Lazy(2)), - (num2: Int) => Pure(num1 + num2) - ) + Suspend(Lazy(1)), + (num1: Int) => + FlatMap( + Suspend(Lazy(2)), + (num2: Int) => Pure(num1 + num2) + ) ) // We provide a ~> to a Future: @@ -96,27 +101,32 @@ lazy val desugaredSumProgram = given LazyCatchable2Future: (LazyCatchable ~> Future) with def apply[A: Typeable](f: LazyCatchable[A]): Future[A] = f match case Catch(e) => Future.failed(e) - case lazyValue: Lazy[_] => Future: - lazyValue.run() match - case Left(Catch(e)) => throw e - case Right(value: A @unchecked) => value + case lazyValue: Lazy[_] => + Future: + lazyValue.run() match + case Left(Catch(e)) => throw e + case Right(value: A @unchecked) => value // We define a Monad instance for Future: -given FutureMonad: Monad[Future] with - def flatMap[A, B](fa: Future[A])(f: (A) => Future[B]): Future[B] = fa.flatMap(f) +given FutureMonad: Monad[Future] with + def flatMap[A, B](fa: Future[A])(f: (A) => Future[B]): Future[B] = + fa.flatMap(f) - def pure[A](a: A): Future[A] = Future(a) + def pure[A](a: A): Future[A] = Future(a) override def map[A, B](fa: Future[A])(f: A => B): Future[B] = fa.map(f) // We can then convert our sumProgram to a Future: -lazy val sumProgramFuture: Future[Int] = sumProgram.foldMapAs[Future](using FutureMonad, LazyCatchable2Future) // Future computes to 3 +lazy val sumProgramFuture: Future[Int] = sumProgram.foldMapAs[Future](using + FutureMonad, + LazyCatchable2Future +) // Future computes to 3 // Let's consider a more advanced workflow DSL: -enum WorkflowCommand: +enum WorkflowCommand: case FeelInspiredToLearn case LikeFriendlyEnvironments case WantToHelpPeopleBuildConfidenceCoding @@ -124,7 +134,9 @@ enum WorkflowCommand: // We can then define our logic: -def command[C <: WorkflowCommand](c: => C): Free[LazyCatchable, C] = Suspend(Lazy(c)) +def command[C <: WorkflowCommand](c: => C): Free[LazyCatchable, C] = Suspend( + Lazy(c) +) lazy val joinBaeldungWorkflow: Free[LazyCatchable, WorkflowCommand] = for @@ -137,46 +149,55 @@ lazy val joinBaeldungWorkflow: Free[LazyCatchable, WorkflowCommand] = // Then we define a translation to Future: given BaeldungWorkflowInterpreter: (LazyCatchable ~> Future) with - private def askQuestion(question: String, repeat: Boolean = false): Boolean = - if repeat then print(s"\nInvalid response: try again (y or n) ") - else print(s"\n$question (y or n) ") - - readChar() match - case 'y' | 'Y' => true - case 'n' | 'N' => false - case _ => askQuestion(question, true) - - private def step[C <: WorkflowCommand](question: String, command: C, error: String): Future[C] = Future: + private def askQuestion(question: String, repeat: Boolean = false): Boolean = + if repeat then print(s"\nInvalid response: try again (y or n) ") + else print(s"\n$question (y or n) ") + + readChar() match + case 'y' | 'Y' => true + case 'n' | 'N' => false + case _ => askQuestion(question, true) + + private def step[C <: WorkflowCommand]( + question: String, + command: C, + error: String + ): Future[C] = Future: if askQuestion(question) then command else throw new Exception(error) def apply[A: Typeable](f: LazyCatchable[A]): Future[A] = f match case Catch(e) => Future.failed(e) - case lazyCmd: Lazy[_] => lazyCmd.run() match - case Left(Catch(e)) => Future.failed(e) - case Right(command: WorkflowCommand) => - command match - case WorkflowCommand.FeelInspiredToLearn => - step( - question = "Do you feel inspired to learn Scala?", - command = command, - error = "Baeldung has tutorials for other technologies too, like Java." - ) - case WorkflowCommand.LikeFriendlyEnvironments => - step( - question = "Do you like friendly environments?", - command = command, - error = "Bye." - ) - case WorkflowCommand.WantToHelpPeopleBuildConfidenceCoding => - step( - question = "Do you want to help people build confidence coding?", - command = command, - error = "Baeldung tutorials are reliable and informative." - ) - case WorkflowCommand.JoinBaeldungAsAWriter => Future.successful(command) - case Right(misc) => Future.successful(misc) + case lazyCmd: Lazy[_] => + lazyCmd.run() match + case Left(Catch(e)) => Future.failed(e) + case Right(command: WorkflowCommand) => + command match + case WorkflowCommand.FeelInspiredToLearn => + step( + question = "Do you feel inspired to learn Scala?", + command = command, + error = + "Baeldung has tutorials for other technologies too, like Java." + ) + case WorkflowCommand.LikeFriendlyEnvironments => + step( + question = "Do you like friendly environments?", + command = command, + error = "Bye." + ) + case WorkflowCommand.WantToHelpPeopleBuildConfidenceCoding => + step( + question = + "Do you want to help people build confidence coding?", + command = command, + error = "Baeldung tutorials are reliable and informative." + ) + case WorkflowCommand.JoinBaeldungAsAWriter => + Future.successful(command) + case Right(misc) => Future.successful(misc) // The translation is then very simple and intuitive: -lazy val joinBaeldung: Future[WorkflowCommand] = joinBaeldungWorkflow.foldMapAs[Future](using FutureMonad, BaeldungWorkflowInterpreter) \ No newline at end of file +lazy val joinBaeldung: Future[WorkflowCommand] = joinBaeldungWorkflow + .foldMapAs[Future](using FutureMonad, BaeldungWorkflowInterpreter) diff --git a/scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/freemonad/InteractiveInterpretation.scala b/scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/freemonad/InteractiveInterpretation.scala index 6e491d86e..e92e6128f 100644 --- a/scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/freemonad/InteractiveInterpretation.scala +++ b/scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/freemonad/InteractiveInterpretation.scala @@ -3,6 +3,6 @@ package com.baeldung.scala.freemonad // import scala.concurrent.Await // import scala.concurrent.duration.* -// @main def runWorkflow(): Unit = +// @main def runWorkflow(): Unit = // val result = Await.result(joinBaeldung, 100.seconds) -// println(result) \ No newline at end of file +// println(result) diff --git a/scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/freemonad/FreeMonadUnitTest.scala b/scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/freemonad/FreeMonadUnitTest.scala index e0d140d28..82aed52b1 100644 --- a/scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/freemonad/FreeMonadUnitTest.scala +++ b/scala-core-modules/scala-core-fp/src/test/scala/com/baeldung/scala/freemonad/FreeMonadUnitTest.scala @@ -29,4 +29,4 @@ class FreeMonadUnitTest "joinBaeldungWorkflows spec should succeed" in: joinBaeldungWorkflow .foldMapAs[Future](using FutureMonad, LazyCatchable2Future) - .map(_ shouldBe WorkflowCommand.JoinBaeldungAsAWriter) \ No newline at end of file + .map(_ shouldBe WorkflowCommand.JoinBaeldungAsAWriter) From e4a349e118fdee3088ec41cfa1e7e5100c707174 Mon Sep 17 00:00:00 2001 From: kwasibaeldung Date: Mon, 24 Jun 2024 11:10:42 +0200 Subject: [PATCH 0675/1318] Update README.md Convert Java List to Scala Seq added --- .../scala-core-collections-3/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-core-collections-modules/scala-core-collections-3/README.md b/scala-core-collections-modules/scala-core-collections-3/README.md index 6968c0213..17b1dce3f 100644 --- a/scala-core-collections-modules/scala-core-collections-3/README.md +++ b/scala-core-collections-modules/scala-core-collections-3/README.md @@ -10,3 +10,4 @@ - [Using the sliding() and grouped() Methods With Scala Collections](https://www.baeldung.com/scala/sliding-grouped-methods-with-collections) - [Introduction to BitSet in Scala](https://www.baeldung.com/scala/bitiset) - [zip(), zipAll(), and zipWithIndex() Methods in Scala](https://www.baeldung.com/scala/zip-zipall-zipwithindex) +- [Convert Java List to Scala Seq](https://www.baeldung.com/scala/java-list-seq-conversion) From 18ec911e87621c31ca9574c2ad78019ca96b84bb Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 25 Jun 2024 22:22:41 +0200 Subject: [PATCH 0676/1318] dropWhile and takeWhile in Scala --- .../TakeWhileDropWhileUnitTest.scala | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/takewhiledropwhile/TakeWhileDropWhileUnitTest.scala diff --git a/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/takewhiledropwhile/TakeWhileDropWhileUnitTest.scala b/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/takewhiledropwhile/TakeWhileDropWhileUnitTest.scala new file mode 100644 index 000000000..1f2e26005 --- /dev/null +++ b/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/takewhiledropwhile/TakeWhileDropWhileUnitTest.scala @@ -0,0 +1,43 @@ +package com.baeldung.scala.takewhiledropwhile + +import org.scalatest.matchers.should.Matchers +import org.scalatest.wordspec.AnyWordSpec + +class TakeWhileDropWhileUnitTest extends AnyWordSpec with Matchers { + + "takeWhile" should { + "take element from list till condition satisfies" in { + val numbers = List(1, 2, 3, 4, 5, 6, 7, 8) + val lessThanFive = numbers.takeWhile(_ < 5) + lessThanFive shouldBe List(1, 2, 3, 4) + } + + "return different elements when the element order changes" in { + val numbers = List(8, 7, 6, 5, 4, 3, 2, 1) + val lessThanFive = numbers.takeWhile(_ < 5) + lessThanFive shouldBe Nil + } + + "stop taking as soon as the first failure in predicate" in { + val numbers = List(1, 2, 3, 4, 3, 2, 1) + val lessThanThree = numbers.takeWhile(_ < 3) + lessThanThree shouldBe List(1, 2) + } + + } + + "dropWhile" should { + "drop the elements from the list until the predicate is true" in { + val numbers = List(1, 2, 3, 4, 5, 6, 7, 8) + val dropLessThan5 = numbers.dropWhile(_ < 5) + dropLessThan5 shouldBe List(5, 6, 7, 8) + } + + "dropWhile behavior changes with the order" in { + val numbers = List(8, 7, 6, 5, 4, 3, 2, 1) + val dropLessThan5 = numbers.dropWhile(_ < 5) + dropLessThan5 shouldBe numbers + } + } + +} From 70de5b6ba564c57ba8ea70c97118743331630d08 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 26 Jun 2024 08:02:31 +0200 Subject: [PATCH 0677/1318] addressed review comments --- .../TakeWhileDropWhileUnitTest.scala | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/takewhiledropwhile/TakeWhileDropWhileUnitTest.scala b/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/takewhiledropwhile/TakeWhileDropWhileUnitTest.scala index 1f2e26005..f6fa3fe07 100644 --- a/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/takewhiledropwhile/TakeWhileDropWhileUnitTest.scala +++ b/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/takewhiledropwhile/TakeWhileDropWhileUnitTest.scala @@ -5,38 +5,42 @@ import org.scalatest.wordspec.AnyWordSpec class TakeWhileDropWhileUnitTest extends AnyWordSpec with Matchers { + private val numbersAscending = List(1, 2, 3, 4, 5, 6, 7, 8) + private val numbersDescending = List(8, 7, 6, 5, 4, 3, 2, 1) + private val numbersMixed = List(1, 2, 3, 4, 3, 2, 1) + "takeWhile" should { "take element from list till condition satisfies" in { - val numbers = List(1, 2, 3, 4, 5, 6, 7, 8) - val lessThanFive = numbers.takeWhile(_ < 5) + val lessThanFive = numbersAscending.takeWhile(_ < 5) lessThanFive shouldBe List(1, 2, 3, 4) } "return different elements when the element order changes" in { - val numbers = List(8, 7, 6, 5, 4, 3, 2, 1) - val lessThanFive = numbers.takeWhile(_ < 5) + val lessThanFive = numbersDescending.takeWhile(_ < 5) lessThanFive shouldBe Nil } "stop taking as soon as the first failure in predicate" in { - val numbers = List(1, 2, 3, 4, 3, 2, 1) - val lessThanThree = numbers.takeWhile(_ < 3) + val lessThanThree = numbersMixed.takeWhile(_ < 3) lessThanThree shouldBe List(1, 2) } + "take all elements if the predicate is satisfied for all" in { + val positive = numbersAscending.takeWhile(_ > 0) + positive shouldBe numbersAscending + } + } "dropWhile" should { "drop the elements from the list until the predicate is true" in { - val numbers = List(1, 2, 3, 4, 5, 6, 7, 8) - val dropLessThan5 = numbers.dropWhile(_ < 5) + val dropLessThan5 = numbersAscending.dropWhile(_ < 5) dropLessThan5 shouldBe List(5, 6, 7, 8) } "dropWhile behavior changes with the order" in { - val numbers = List(8, 7, 6, 5, 4, 3, 2, 1) - val dropLessThan5 = numbers.dropWhile(_ < 5) - dropLessThan5 shouldBe numbers + val dropLessThan5 = numbersDescending.dropWhile(_ < 5) + dropLessThan5 shouldBe numbersDescending } } From 7e058776edcea388e87f83b83942702966d0b85e Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 27 Jun 2024 00:14:45 +0000 Subject: [PATCH 0678/1318] Update aws-java-sdk-s3 from 1.12.746 to 1.12.751 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ec2d98224..84b7d4637 100644 --- a/build.sbt +++ b/build.sbt @@ -532,7 +532,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) scalaMock, "com.lihaoyi" %% "utest" % "0.8.3" % "test", munitDep, - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.746" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.751" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.25.70" From ff90dc59b7b705c570a3e3c5d1426cdc25c3409d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 27 Jun 2024 00:14:54 +0000 Subject: [PATCH 0679/1318] Update tapir-akka-http-server, tapir-core, ... from 1.10.9 to 1.10.10 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index 054a13b65..30ddc91f1 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.10.9" +val tapirV = "1.10.10" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From 3e27e2641a8cba1db97aef5cb302e6419a4a5886 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 27 Jun 2024 00:15:13 +0000 Subject: [PATCH 0680/1318] Update zio, zio-streams, zio-test, ... from 2.1.3 to 2.1.4 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ec2d98224..21874721b 100644 --- a/build.sbt +++ b/build.sbt @@ -22,7 +22,7 @@ val scalaTestDeps = Seq( ) val scalaMock = "org.scalamock" %% "scalamock" % "6.0.0" % Test -val zioVersion = "2.1.3" +val zioVersion = "2.1.4" lazy val scala_core = (project in file("scala-core-modules/scala-core")) .settings( From 1dbea0e841ccfa8c8bee09770c643a1d0fa7182d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 27 Jun 2024 00:15:45 +0000 Subject: [PATCH 0681/1318] Update circe-yaml from 0.15.1 to 0.15.2 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ec2d98224..af046cd6d 100644 --- a/build.sbt +++ b/build.sbt @@ -573,7 +573,7 @@ lazy val scala_libraries_config = (project in file("scala-libraries-config")) munitDep, "com.github.japgolly.clearconfig" %% "core" % "3.1.0", catsEffect, - "io.circe" %% "circe-yaml" % "0.15.1", + "io.circe" %% "circe-yaml" % "0.15.2", circeDep, circeParserDep ), From 60db4d93480797ccb3d4b5c8d6168597e4bc15c4 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 27 Jun 2024 00:15:58 +0000 Subject: [PATCH 0682/1318] Update elastic4s-client-esjava, ... from 8.13.0 to 8.13.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ec2d98224..0edae1090 100644 --- a/build.sbt +++ b/build.sbt @@ -386,7 +386,7 @@ lazy val scala2_libraries = val circeVersion = "0.14.8" val monixVersion = "3.4.1" -val elastic4sVersion = "8.13.0" +val elastic4sVersion = "8.13.1" val sparkVersion = "3.5.1" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion From 5efc7437dca4b58bc1dcf9eba2f65cd2c3a3630a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 27 Jun 2024 00:16:11 +0000 Subject: [PATCH 0683/1318] Update play-slick, play-slick-evolutions from 6.1.0 to 6.1.1 --- build.sbt | 2 +- play-scala/application-tests/build.sbt | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index ec2d98224..11588c073 100644 --- a/build.sbt +++ b/build.sbt @@ -415,7 +415,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "com.github.seratch" %% "awscala" % "0.9.2" ), libraryDependencies ++= Seq( - "org.playframework" %% "play-slick" % "6.1.0", + "org.playframework" %% "play-slick" % "6.1.1", "org.postgresql" % "postgresql" % "42.7.3" ), dependencyOverrides := Seq( diff --git a/play-scala/application-tests/build.sbt b/play-scala/application-tests/build.sbt index 393a2a995..37ffc3d70 100644 --- a/play-scala/application-tests/build.sbt +++ b/play-scala/application-tests/build.sbt @@ -10,7 +10,7 @@ scalaVersion := ScalaVersions.scala3Version libraryDependencies += guice libraryDependencies += "com.h2database" % "h2" % "1.4.200" libraryDependencies += "org.postgresql" % "postgresql" % "42.2.29" -libraryDependencies += "org.playframework" %% "play-slick" % "6.1.0" -libraryDependencies += "org.playframework" %% "play-slick-evolutions" % "6.1.0" +libraryDependencies += "org.playframework" %% "play-slick" % "6.1.1" +libraryDependencies += "org.playframework" %% "play-slick-evolutions" % "6.1.1" libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % Test libraryDependencies += "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % Test From 4fc4e523cd6147259dd614463d9e7b749ab5bcc0 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 27 Jun 2024 00:16:23 +0000 Subject: [PATCH 0684/1318] Update sbt-scala-native from 0.5.3 to 0.5.4 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index f0011afbb..1334fa7b2 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,6 +1,6 @@ addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.2") -addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.3") +addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.4") addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.16.0") addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.2.1") From 898c31f58d2a4ecf4bd577cb6aff4fdb0ad10818 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 27 Jun 2024 00:16:37 +0000 Subject: [PATCH 0685/1318] Update scalatest, scalatest-flatspec, ... from 3.2.18 to 3.2.19 --- build.sbt | 10 +++++----- scala-js/build.sbt | 2 +- scala-with-maven/hello-world/pom.xml | 2 +- scala-with-maven/pom.xml | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/build.sbt b/build.sbt index ec2d98224..694e5592e 100644 --- a/build.sbt +++ b/build.sbt @@ -15,10 +15,10 @@ val AkkaVersion = "2.8.5" val AkkaHttpVersion = "10.5.0" val scalaTestDeps = Seq( - "org.scalatest" %% "scalatest" % "3.2.18" % Test, - "org.scalatest" %% "scalatest-shouldmatchers" % "3.2.18" % Test, - "org.scalatest" %% "scalatest-wordspec" % "3.2.18" % Test, - "org.scalatest" %% "scalatest-flatspec" % "3.2.18" % Test + "org.scalatest" %% "scalatest" % "3.2.19" % Test, + "org.scalatest" %% "scalatest-shouldmatchers" % "3.2.19" % Test, + "org.scalatest" %% "scalatest-wordspec" % "3.2.19" % Test, + "org.scalatest" %% "scalatest-flatspec" % "3.2.19" % Test ) val scalaMock = "org.scalamock" %% "scalamock" % "6.0.0" % Test @@ -639,7 +639,7 @@ lazy val zio = (project in file("zio")) libraryDependencies += "dev.zio" %% "zio-kafka" % "2.7.5", libraryDependencies += zioJsonDep, libraryDependencies += "dev.zio" %% "zio-prelude" % "1.0.0-RC23", - libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.18" % Test, + libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.19" % Test, testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework") ) diff --git a/scala-js/build.sbt b/scala-js/build.sbt index 08baa0a0b..9a6eeef9d 100644 --- a/scala-js/build.sbt +++ b/scala-js/build.sbt @@ -7,7 +7,7 @@ enablePlugins(ScalaJSPlugin) scalaJSUseMainModuleInitializer := true libraryDependencies += "org.scala-js" %%% "scalajs-dom" % "2.8.0" -libraryDependencies += "org.scalatest" %%% "scalatest" % "3.2.18" % Test +libraryDependencies += "org.scalatest" %%% "scalatest" % "3.2.19" % Test //enable the below setting after installing npm package jsdom. jsEnv := new org.scalajs.jsenv.jsdomnodejs.JSDOMNodeJSEnv() diff --git a/scala-with-maven/hello-world/pom.xml b/scala-with-maven/hello-world/pom.xml index a9de8cdbf..91b215485 100644 --- a/scala-with-maven/hello-world/pom.xml +++ b/scala-with-maven/hello-world/pom.xml @@ -22,7 +22,7 @@ org.scalatest scalatest_3 - 3.2.18 + 3.2.19 test diff --git a/scala-with-maven/pom.xml b/scala-with-maven/pom.xml index 7024503be..e4f777f75 100644 --- a/scala-with-maven/pom.xml +++ b/scala-with-maven/pom.xml @@ -24,7 +24,7 @@ org.scalatest scalatest_3 - 3.2.18 + 3.2.19 From ac2b72c5e22622b0d11083a5a666dfa28c079a76 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 27 Jun 2024 00:17:01 +0000 Subject: [PATCH 0686/1318] Update junit-4-13 from 3.2.18.0 to 3.2.19.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ec2d98224..5d58ad40f 100644 --- a/build.sbt +++ b/build.sbt @@ -269,7 +269,7 @@ lazy val scala_test_junit4 = (project in file("scala-test-junit4")) scalaVersion := scala3Version, libraryDependencies ++= Seq( - "org.scalatestplus" %% "junit-4-13" % "3.2.18.0" % Test, + "org.scalatestplus" %% "junit-4-13" % "3.2.19.0" % Test, jUnitInterface ) ) From 05fccd925bdaccd0476087c851745b5cfb63c094 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 27 Jun 2024 00:17:16 +0000 Subject: [PATCH 0687/1318] Update s3 from 2.25.70 to 2.26.10 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ec2d98224..be21bb199 100644 --- a/build.sbt +++ b/build.sbt @@ -535,7 +535,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.746" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.25.70" + "software.amazon.awssdk" % "s3" % "2.26.10" ), Defaults.itSettings, IntegrationTest / fork := true From 87c4724d0b5791bd41bb62ca503b39227f267544 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Thu, 27 Jun 2024 09:09:19 +0200 Subject: [PATCH 0688/1318] Moved common versions to a single version file --- .gitignore | 1 + build.sbt | 2 +- play-scala/application-tests/build.sbt | 6 +++--- play-scala/application-tests/project/plugins.sbt | 2 +- play-scala/async-tasks/project/plugins.sbt | 2 +- play-scala/caching-in-play/build.sbt | 2 +- play-scala/caching-in-play/project/plugins.sbt | 2 +- play-scala/configuration-access/build.sbt | 2 +- play-scala/configuration-access/project/plugins.sbt | 2 +- play-scala/custom-error-handling/build.sbt | 2 +- play-scala/custom-error-handling/project/plugins.sbt | 2 +- play-scala/dependency-injection/build.sbt | 2 +- play-scala/dependency-injection/project/plugins.sbt | 2 +- play-scala/introduction-to-play/build.sbt | 2 +- play-scala/introduction-to-play/project/plugins.sbt | 2 +- play-scala/play-static-assets/build.sbt | 2 +- play-scala/play-static-assets/project/plugins.sbt | 2 +- play-scala/play-templates/build.sbt | 2 +- play-scala/play-templates/project/plugins.sbt | 2 +- play-scala/rest-api/build.sbt | 2 +- play-scala/rest-api/project/plugins.sbt | 2 +- project/LibraryVersions.scala | 5 +++++ project/plugins.sbt | 2 +- 23 files changed, 29 insertions(+), 23 deletions(-) create mode 100644 project/LibraryVersions.scala diff --git a/.gitignore b/.gitignore index 51ee9845e..dba43e2bd 100644 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,7 @@ project/plugins/project/ .worksheet .idea !/project/Versions.scala +!/project/LibraryVersions.scala /project/ !project/build.properties out diff --git a/build.sbt b/build.sbt index a78718f14..4d9f21d27 100644 --- a/build.sbt +++ b/build.sbt @@ -415,7 +415,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "com.github.seratch" %% "awscala" % "0.9.2" ), libraryDependencies ++= Seq( - "org.playframework" %% "play-slick" % "6.1.1", + "org.playframework" %% "play-slick" % LibraryVersions.playSlickVersion, "org.postgresql" % "postgresql" % "42.7.3" ), dependencyOverrides := Seq( diff --git a/play-scala/application-tests/build.sbt b/play-scala/application-tests/build.sbt index 37ffc3d70..1f2b7a172 100644 --- a/play-scala/application-tests/build.sbt +++ b/play-scala/application-tests/build.sbt @@ -10,7 +10,7 @@ scalaVersion := ScalaVersions.scala3Version libraryDependencies += guice libraryDependencies += "com.h2database" % "h2" % "1.4.200" libraryDependencies += "org.postgresql" % "postgresql" % "42.2.29" -libraryDependencies += "org.playframework" %% "play-slick" % "6.1.1" -libraryDependencies += "org.playframework" %% "play-slick-evolutions" % "6.1.1" -libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % Test +libraryDependencies += "org.playframework" %% "play-slick" % LibraryVersions.playSlickVersion +libraryDependencies += "org.playframework" %% "play-slick-evolutions" % LibraryVersions.playSlickVersion +libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % LibraryVersions.scalatestPlayVersion % Test libraryDependencies += "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % Test diff --git a/play-scala/application-tests/project/plugins.sbt b/play-scala/application-tests/project/plugins.sbt index 003ea5143..3b68e9317 100644 --- a/play-scala/application-tests/project/plugins.sbt +++ b/play-scala/application-tests/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.4") +addSbtPlugin("org.playframework" % "sbt-plugin" % LibraryVersions.playVersion) addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.16.2") diff --git a/play-scala/async-tasks/project/plugins.sbt b/play-scala/async-tasks/project/plugins.sbt index cf4932c90..6c59903ab 100644 --- a/play-scala/async-tasks/project/plugins.sbt +++ b/play-scala/async-tasks/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.4") +addSbtPlugin("org.playframework" % "sbt-plugin" % LibraryVersions.playVersion) addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") diff --git a/play-scala/caching-in-play/build.sbt b/play-scala/caching-in-play/build.sbt index 0f4fc58f2..c5f34a508 100644 --- a/play-scala/caching-in-play/build.sbt +++ b/play-scala/caching-in-play/build.sbt @@ -10,7 +10,7 @@ scalaVersion := ScalaVersions.scala3Version libraryDependencies += guice libraryDependencies += caffeine libraryDependencies += ws -libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % Test +libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % LibraryVersions.scalatestPlayVersion % Test libraryDependencies += "org.mockito" % "mockito-core" % "5.12.0" % Test PlayKeys.devSettings += "play.server.http.port" -> "9000" diff --git a/play-scala/caching-in-play/project/plugins.sbt b/play-scala/caching-in-play/project/plugins.sbt index cad739cd4..0fff6a333 100644 --- a/play-scala/caching-in-play/project/plugins.sbt +++ b/play-scala/caching-in-play/project/plugins.sbt @@ -1,3 +1,3 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.4") +addSbtPlugin("org.playframework" % "sbt-plugin" % LibraryVersions.playVersion) addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.0") diff --git a/play-scala/configuration-access/build.sbt b/play-scala/configuration-access/build.sbt index 9a5b4aa00..8da627d85 100644 --- a/play-scala/configuration-access/build.sbt +++ b/play-scala/configuration-access/build.sbt @@ -8,7 +8,7 @@ enablePlugins(PlayScala) scalaVersion := ScalaVersions.scala3Version libraryDependencies += guice -libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % Test +libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % LibraryVersions.scalatestPlayVersion % Test libraryDependencies += "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" // Adds additional packages into Twirl diff --git a/play-scala/configuration-access/project/plugins.sbt b/play-scala/configuration-access/project/plugins.sbt index cad739cd4..0fff6a333 100644 --- a/play-scala/configuration-access/project/plugins.sbt +++ b/play-scala/configuration-access/project/plugins.sbt @@ -1,3 +1,3 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.4") +addSbtPlugin("org.playframework" % "sbt-plugin" % LibraryVersions.playVersion) addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.0") diff --git a/play-scala/custom-error-handling/build.sbt b/play-scala/custom-error-handling/build.sbt index 132de1f4d..87fd91f40 100644 --- a/play-scala/custom-error-handling/build.sbt +++ b/play-scala/custom-error-handling/build.sbt @@ -8,4 +8,4 @@ enablePlugins(PlayScala) scalaVersion := ScalaVersions.scala3Version libraryDependencies += guice -libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % Test +libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % LibraryVersions.scalatestPlayVersion % Test diff --git a/play-scala/custom-error-handling/project/plugins.sbt b/play-scala/custom-error-handling/project/plugins.sbt index cf4932c90..6c59903ab 100644 --- a/play-scala/custom-error-handling/project/plugins.sbt +++ b/play-scala/custom-error-handling/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.4") +addSbtPlugin("org.playframework" % "sbt-plugin" % LibraryVersions.playVersion) addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") diff --git a/play-scala/dependency-injection/build.sbt b/play-scala/dependency-injection/build.sbt index 19319c798..510d6bf5f 100644 --- a/play-scala/dependency-injection/build.sbt +++ b/play-scala/dependency-injection/build.sbt @@ -7,6 +7,6 @@ enablePlugins(PlayScala) scalaVersion := ScalaVersions.scala3Version libraryDependencies += guice -libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % Test +libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % LibraryVersions.scalatestPlayVersion % Test libraryDependencies += "com.softwaremill.macwire" %% "macros" % "2.5.9" % Provided libraryDependencies += "com.softwaremill.macwire" %% "util" % "2.5.9" diff --git a/play-scala/dependency-injection/project/plugins.sbt b/play-scala/dependency-injection/project/plugins.sbt index 56bac0252..684105b93 100644 --- a/play-scala/dependency-injection/project/plugins.sbt +++ b/play-scala/dependency-injection/project/plugins.sbt @@ -1,3 +1,3 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.4") +addSbtPlugin("org.playframework" % "sbt-plugin" % LibraryVersions.playVersion) addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.2") diff --git a/play-scala/introduction-to-play/build.sbt b/play-scala/introduction-to-play/build.sbt index 4d1d1b138..1b3551d3e 100644 --- a/play-scala/introduction-to-play/build.sbt +++ b/play-scala/introduction-to-play/build.sbt @@ -8,4 +8,4 @@ enablePlugins(PlayScala) scalaVersion := ScalaVersions.scala3Version libraryDependencies += guice -libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % Test +libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % LibraryVersions.scalatestPlayVersion % Test diff --git a/play-scala/introduction-to-play/project/plugins.sbt b/play-scala/introduction-to-play/project/plugins.sbt index cf4932c90..6c59903ab 100644 --- a/play-scala/introduction-to-play/project/plugins.sbt +++ b/play-scala/introduction-to-play/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.4") +addSbtPlugin("org.playframework" % "sbt-plugin" % LibraryVersions.playVersion) addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") diff --git a/play-scala/play-static-assets/build.sbt b/play-scala/play-static-assets/build.sbt index 98edfab12..8c56cc80c 100644 --- a/play-scala/play-static-assets/build.sbt +++ b/play-scala/play-static-assets/build.sbt @@ -9,7 +9,7 @@ enablePlugins(SbtWeb) scalaVersion := ScalaVersions.scala3Version libraryDependencies += guice -libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % Test +libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % LibraryVersions.scalatestPlayVersion % Test libraryDependencies += "org.webjars.bower" % "bootstrap-sass" % "3.3.7" // See https://github.com/sbt/sbt-js-engine/issues/68 diff --git a/play-scala/play-static-assets/project/plugins.sbt b/play-scala/play-static-assets/project/plugins.sbt index b016d2203..7867745dd 100644 --- a/play-scala/play-static-assets/project/plugins.sbt +++ b/play-scala/play-static-assets/project/plugins.sbt @@ -1,4 +1,4 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.4") +addSbtPlugin("org.playframework" % "sbt-plugin" % LibraryVersions.playVersion) addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") addSbtPlugin("com.typesafe.sbt" % "sbt-coffeescript" % "1.0.2") addSbtPlugin("com.github.platypii" % "sbt-typescript" % "4.6.4") diff --git a/play-scala/play-templates/build.sbt b/play-scala/play-templates/build.sbt index e043a703c..d3a29ae60 100644 --- a/play-scala/play-templates/build.sbt +++ b/play-scala/play-templates/build.sbt @@ -8,4 +8,4 @@ enablePlugins(PlayScala) scalaVersion := ScalaVersions.scala3Version libraryDependencies += guice -libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % Test +libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % LibraryVersions.scalatestPlayVersion % Test diff --git a/play-scala/play-templates/project/plugins.sbt b/play-scala/play-templates/project/plugins.sbt index cf4932c90..6c59903ab 100644 --- a/play-scala/play-templates/project/plugins.sbt +++ b/play-scala/play-templates/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.4") +addSbtPlugin("org.playframework" % "sbt-plugin" % LibraryVersions.playVersion) addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") diff --git a/play-scala/rest-api/build.sbt b/play-scala/rest-api/build.sbt index c6855a2d1..46e450f99 100644 --- a/play-scala/rest-api/build.sbt +++ b/play-scala/rest-api/build.sbt @@ -8,7 +8,7 @@ enablePlugins(PlayScala) scalaVersion := ScalaVersions.scala3Version libraryDependencies += guice -libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % Test +libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % LibraryVersions.scalatestPlayVersion % Test // Adds additional packages into Twirl //TwirlKeys.templateImports += "com.baeldung.controllers._" diff --git a/play-scala/rest-api/project/plugins.sbt b/play-scala/rest-api/project/plugins.sbt index cf4932c90..6c59903ab 100644 --- a/play-scala/rest-api/project/plugins.sbt +++ b/play-scala/rest-api/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.4") +addSbtPlugin("org.playframework" % "sbt-plugin" % LibraryVersions.playVersion) addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") diff --git a/project/LibraryVersions.scala b/project/LibraryVersions.scala new file mode 100644 index 000000000..e841d22c4 --- /dev/null +++ b/project/LibraryVersions.scala @@ -0,0 +1,5 @@ +object LibraryVersions { + val playVersion = "3.0.4" + val playSlickVersion = "6.1.1" + val scalatestPlayVersion = "7.0.1" +} diff --git a/project/plugins.sbt b/project/plugins.sbt index 1334fa7b2..6bed3abf3 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -7,7 +7,7 @@ addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.2.1") libraryDependencies += "ai.kien" %% "python-native-libs" % "0.2.4" // Make sure to keep the play plugin in sync with the sub modules under play-scala group -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.4") +addSbtPlugin("org.playframework" % "sbt-plugin" % LibraryVersions.playVersion) addSbtPlugin("org.playframework.twirl" % "sbt-twirl" % "2.0.1") addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "4.2.1") From 644cdb813ff2ef2e15db70e349f455c977050c5a Mon Sep 17 00:00:00 2001 From: Stefanos Georgakis Date: Fri, 24 May 2024 11:13:33 +0300 Subject: [PATCH 0689/1318] [SCALA-423] - Customizable release process using sbt-release --- build.sbt | 2 -- sbt-release/README.md | 1 + sbt-release/build.sbt | 42 +++++++++++++++++++++++++++ sbt-release/project/build.properties | 1 + sbt-release/project/plugins.sbt | 1 + sbt-release/src/main/scala/Main.scala | 5 ++++ sbt-release/version/version.sbt | 1 + 7 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 sbt-release/README.md create mode 100644 sbt-release/build.sbt create mode 100644 sbt-release/project/build.properties create mode 100644 sbt-release/project/plugins.sbt create mode 100644 sbt-release/src/main/scala/Main.scala create mode 100644 sbt-release/version/version.sbt diff --git a/build.sbt b/build.sbt index 34843ed3b..1c3694fb5 100644 --- a/build.sbt +++ b/build.sbt @@ -1,10 +1,8 @@ val scalaV = ScalaVersions.scala2Version val scala3Version = ScalaVersions.scala3Version ThisBuild / scalaVersion := scala3Version -ThisBuild / version := "1.0-SNAPSHOT" ThisBuild / organization := "com.baeldung" ThisBuild / organizationName := "core-scala" - val jUnitInterface = "com.github.sbt" % "junit-interface" % "0.13.3" % "test" val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.4" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.4" % Test diff --git a/sbt-release/README.md b/sbt-release/README.md new file mode 100644 index 000000000..38c74cb46 --- /dev/null +++ b/sbt-release/README.md @@ -0,0 +1 @@ +### Relevant Articles diff --git a/sbt-release/build.sbt b/sbt-release/build.sbt new file mode 100644 index 000000000..1e6b04d38 --- /dev/null +++ b/sbt-release/build.sbt @@ -0,0 +1,42 @@ +import ReleaseTransformations.* + +lazy val root = (project in file(".")) + .settings( + name := "sbt-release" + ) + +releaseVersionFile := file("version/version.sbt") +releaseCrossBuild := true +releaseUseGlobalVersion := false +releaseVersionBump := sbtrelease.Version.Bump.NextStable +publish / skip := true + +releaseTagComment := s"Releasing ${(ThisBuild / version).value} using sbt-release" +releaseCommitMessage := s"Setting version to ${(ThisBuild / version).value} using sbt-release" +releaseNextCommitMessage := s"Setting version to ${(ThisBuild / version).value} using sbt-release" + +releaseNextVersion := (releaseVersion => releaseVersion.split("\\.") match { + case Array(major, minor, bugfix) => + s"$major.$minor.${bugfix.toInt + 1}" +}) + +val customReleaseStep = ReleaseStep(action = step => { + val extracted = Project.extract(step) + val v = extracted.get(Keys.version) + println(s"Custom release step that prints the new version: $v") + step +}) +releaseProcess := Seq[ReleaseStep]( + checkSnapshotDependencies, // : ReleaseStep + inquireVersions, // : ReleaseStep + runClean, // : ReleaseStep + runTest, // : ReleaseStep + setReleaseVersion, // : ReleaseStep + commitReleaseVersion, // : ReleaseStep, performs the initial git checks + tagRelease, // : ReleaseStep + // publishArtifacts, // : ReleaseStep, checks whether `publishTo` is properly set up + setNextVersion, // : ReleaseStep + commitNextVersion, // : ReleaseStep + customReleaseStep + // pushChanges // : ReleaseStep, also checks that an upstream branch is properly configured +) diff --git a/sbt-release/project/build.properties b/sbt-release/project/build.properties new file mode 100644 index 000000000..be54e7763 --- /dev/null +++ b/sbt-release/project/build.properties @@ -0,0 +1 @@ +sbt.version = 1.10.0 diff --git a/sbt-release/project/plugins.sbt b/sbt-release/project/plugins.sbt new file mode 100644 index 000000000..80fcb2486 --- /dev/null +++ b/sbt-release/project/plugins.sbt @@ -0,0 +1 @@ +addSbtPlugin("com.github.sbt" % "sbt-release" % "1.4.0") \ No newline at end of file diff --git a/sbt-release/src/main/scala/Main.scala b/sbt-release/src/main/scala/Main.scala new file mode 100644 index 000000000..6650aa243 --- /dev/null +++ b/sbt-release/src/main/scala/Main.scala @@ -0,0 +1,5 @@ +object Main { + def main(args: Array[String]): Unit = { + println("Hello world!") + } +} \ No newline at end of file diff --git a/sbt-release/version/version.sbt b/sbt-release/version/version.sbt new file mode 100644 index 000000000..a5f65fc71 --- /dev/null +++ b/sbt-release/version/version.sbt @@ -0,0 +1 @@ +ThisBuild / version := "1.0.0-SNAPSHOT" From fbb85f61e1b10ed0109a6f5d12fa0ca7d8251c18 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Thu, 27 Jun 2024 11:53:11 +0200 Subject: [PATCH 0690/1318] Moved common versions to a single version file --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index 6bed3abf3..1334fa7b2 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -7,7 +7,7 @@ addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.2.1") libraryDependencies += "ai.kien" %% "python-native-libs" % "0.2.4" // Make sure to keep the play plugin in sync with the sub modules under play-scala group -addSbtPlugin("org.playframework" % "sbt-plugin" % LibraryVersions.playVersion) +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.4") addSbtPlugin("org.playframework.twirl" % "sbt-twirl" % "2.0.1") addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "4.2.1") From 1cd3ccc38273dbcd5905ef9c9736308d0e2d2d86 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 28 Jun 2024 08:32:50 +0200 Subject: [PATCH 0691/1318] Create sync-fork.yml (#118) --- .github/workflows/sync-fork.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 .github/workflows/sync-fork.yml diff --git a/.github/workflows/sync-fork.yml b/.github/workflows/sync-fork.yml new file mode 100644 index 000000000..41b80980a --- /dev/null +++ b/.github/workflows/sync-fork.yml @@ -0,0 +1,16 @@ +name: sync-fork +on: + schedule: + - cron: '0 0 * * *' + workflow_dispatch: { } +jobs: + sync: + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - run: gh repo sync $REPOSITORY -b master + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + REPOSITORY: ${{ github.repository }} + BRANCH_NAME: ${{ github.ref_name }} From 2fe2e7765262fb204ca3884a0a601bbf193992b4 Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Sat, 29 Jun 2024 13:08:01 +0800 Subject: [PATCH 0692/1318] Update README.md --- sbt-release/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbt-release/README.md b/sbt-release/README.md index 38c74cb46..b108e24dd 100644 --- a/sbt-release/README.md +++ b/sbt-release/README.md @@ -1 +1,2 @@ ### Relevant Articles +- [Customizable Release Process Using sbt-release](https://www.baeldung.com/scala/sbt-release) From 57eeb5419fd628ca4f93475457fba46725b0746e Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 29 Jun 2024 17:08:54 +0200 Subject: [PATCH 0693/1318] removed yml --- .github/workflows/sync-fork.yml | 16 ---------------- 1 file changed, 16 deletions(-) delete mode 100644 .github/workflows/sync-fork.yml diff --git a/.github/workflows/sync-fork.yml b/.github/workflows/sync-fork.yml deleted file mode 100644 index 41b80980a..000000000 --- a/.github/workflows/sync-fork.yml +++ /dev/null @@ -1,16 +0,0 @@ -name: sync-fork -on: - schedule: - - cron: '0 0 * * *' - workflow_dispatch: { } -jobs: - sync: - runs-on: ubuntu-latest - permissions: - contents: write - steps: - - run: gh repo sync $REPOSITORY -b master - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - REPOSITORY: ${{ github.repository }} - BRANCH_NAME: ${{ github.ref_name }} From 431968e4fabaac740b8dabae38c6f010906f9412 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 29 Jun 2024 23:51:13 +0200 Subject: [PATCH 0694/1318] Code sample for uniform case check --- .../uniformcase/UniformCaseChecker.scala | 24 +++++++++++++ .../UniformCaseCheckerUnitTest.scala | 34 +++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/uniformcase/UniformCaseChecker.scala create mode 100644 scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/uniformcase/UniformCaseCheckerUnitTest.scala diff --git a/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/uniformcase/UniformCaseChecker.scala b/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/uniformcase/UniformCaseChecker.scala new file mode 100644 index 000000000..bdc788962 --- /dev/null +++ b/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/uniformcase/UniformCaseChecker.scala @@ -0,0 +1,24 @@ +package com.baeldung.scala.uniformcase + +object UniformCaseChecker { + + def convertAndCheck(str: String): Boolean = { + str.toUpperCase == str || str.toLowerCase == str + } + + def isUpperLowerAndForAll(str: String): Boolean = { + val filteredStr = str.filter(_.isLetter) + filteredStr.forall(_.isUpper) || filteredStr.forall(_.isLower) + } + + def regexCheck(str: String): Boolean = { + val filteredStr = str.filter(_.isLetter) + filteredStr.matches("^[A-Z]*$") || filteredStr.matches("^[a-z]*$") + } + + def countAndCheck(str: String): Boolean = { + val filteredStr = str.filter(_.isLetter) + filteredStr.count(_.isUpper) == 0 || filteredStr.count(_.isLower) == 0 + } + +} diff --git a/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/uniformcase/UniformCaseCheckerUnitTest.scala b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/uniformcase/UniformCaseCheckerUnitTest.scala new file mode 100644 index 000000000..815399146 --- /dev/null +++ b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/uniformcase/UniformCaseCheckerUnitTest.scala @@ -0,0 +1,34 @@ +package com.baeldung.scala.uniformcase + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers +import org.scalatest.prop.TableDrivenPropertyChecks +import UniformCaseChecker.* + +class UniformCaseCheckerUnitTest + extends AnyFlatSpec + with Matchers + with TableDrivenPropertyChecks { + + private val fns = + Seq(convertAndCheck, isUpperLowerAndForAll, regexCheck, countAndCheck) + + private val table = Table( + ("Input", "Expected Result"), + ("BAELDUNG @ 2024", true), + ("baeldung @ 2024", true), + ("Baeldung @ 2024", false), + ("2024 @@@ ", true), + (" ", true) + ) + + it should "check if all characters are upper or lower" in { + fns foreach { fn => + forAll(table) { (input, expected) => + withClue("for string: " + input) { + fn(input) shouldBe expected + } + } + } + } +} From d96c24d190dc622d099b2cf9c6644590e68d1cf2 Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Thu, 4 Jul 2024 17:33:18 +0800 Subject: [PATCH 0695/1318] Create README.md --- .../src/main/scala/com/baeldung/scala/freemonad/README.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/freemonad/README.md diff --git a/scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/freemonad/README.md b/scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/freemonad/README.md new file mode 100644 index 000000000..8084bd11b --- /dev/null +++ b/scala-core-modules/scala-core-fp/src/main/scala/com/baeldung/scala/freemonad/README.md @@ -0,0 +1,2 @@ +### Relevant Articles +- [Free Monads in Scala](https://www.baeldung.com/scala/free-monads) From 8dcf09c6a46212d8c63a9f8c12ee767e6c1d657a Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Thu, 4 Jul 2024 17:34:13 +0800 Subject: [PATCH 0696/1318] Update README.md --- scala-sbt/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-sbt/README.md b/scala-sbt/README.md index 0b46e4b68..23c345b48 100644 --- a/scala-sbt/README.md +++ b/scala-sbt/README.md @@ -4,3 +4,4 @@ - [Setting up Global Configurations in SBT](https://www.baeldung.com/scala/sbt-global-configurations) - [Safer Scala Code by Using WartRemover](https://www.baeldung.com/scala/wartremover) - [Integration Testing with SBT](https://www.baeldung.com/scala/sbt-integration-testing) +- [Introduction to Scalafix](https://www.baeldung.com/scala/scalafix) From 96bda3de94b693bff02868a398a7c5c7452141a6 Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Thu, 4 Jul 2024 17:35:11 +0800 Subject: [PATCH 0697/1318] Update README.md --- .../scala-core-collections-4/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-core-collections-modules/scala-core-collections-4/README.md b/scala-core-collections-modules/scala-core-collections-4/README.md index ba4f56f04..d24a92257 100644 --- a/scala-core-collections-modules/scala-core-collections-4/README.md +++ b/scala-core-collections-modules/scala-core-collections-4/README.md @@ -1,2 +1,3 @@ ## Relevant Articles - [Using filter() and takeWhile() With Collections in Scala](https://www.baeldung.com/scala/filter-takewhile) +- [Finding Elements in a List using takeWhile() and dropWhile() in Scala](https://www.baeldung.com/scala/list-find-takewhile-dropwhile) From 311e1479363bf0df7ef68aaa56b34e8a7fb8cefb Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Thu, 4 Jul 2024 17:36:05 +0800 Subject: [PATCH 0698/1318] Update README.md --- scala-core-modules/scala-core-9/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-core-modules/scala-core-9/README.md b/scala-core-modules/scala-core-9/README.md index 887256c5c..8b472c65a 100644 --- a/scala-core-modules/scala-core-9/README.md +++ b/scala-core-modules/scala-core-9/README.md @@ -6,3 +6,4 @@ - [Find Two’s Complement of a Number in Scala](https://www.baeldung.com/scala/compute-twos-complement) - [Convert Option to Either in Scala](https://www.baeldung.com/scala/option-either-conversion) - [Meaning of _root_ In Scala Import Clause](https://www.baeldung.com/scala/root-import-clause) +- [Check if All Characters in a Scala String Are Either Upper or Lower Case](https://www.baeldung.com/scala/string-check-all-characters-upper-lower-case) From 46deaa8b17efbd28370ff34cdb3eba9fad47b9ce Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 5 Jul 2024 00:16:40 +0000 Subject: [PATCH 0699/1318] Update aws-java-sdk-s3 from 1.12.751 to 1.12.756 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 322ef756b..e152aa737 100644 --- a/build.sbt +++ b/build.sbt @@ -530,7 +530,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) scalaMock, "com.lihaoyi" %% "utest" % "0.8.3" % "test", munitDep, - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.751" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.756" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.26.10" From 33b5e465de87554bf628d4689a28d71e98e82060 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 5 Jul 2024 00:16:49 +0000 Subject: [PATCH 0700/1318] Update xsbt-web-plugin from 4.2.4 to 4.2.5 --- scalatra/project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scalatra/project/plugins.sbt b/scalatra/project/plugins.sbt index b8cd0fa91..0c3050f2d 100644 --- a/scalatra/project/plugins.sbt +++ b/scalatra/project/plugins.sbt @@ -1,3 +1,3 @@ addSbtPlugin("org.playframework.twirl" % "sbt-twirl" % "2.0.6") -addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "4.2.4") +addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "4.2.5") libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always From a56883c8390714e536231b4f23650dcdaed2274f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 5 Jul 2024 00:17:04 +0000 Subject: [PATCH 0701/1318] Update tapir-akka-http-server, tapir-core, ... from 1.10.10 to 1.10.12 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index 30ddc91f1..d17119e36 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.10.10" +val tapirV = "1.10.12" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From ebfbc7447464bce5e60853893963a61ea0c3f18d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 5 Jul 2024 00:17:25 +0000 Subject: [PATCH 0702/1318] Update de.flapdoodle.embed.mongo from 4.14.0 to 4.15.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 322ef756b..63111a880 100644 --- a/build.sbt +++ b/build.sbt @@ -8,7 +8,7 @@ val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.4" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.4" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV val logback = "ch.qos.logback" % "logback-classic" % "1.5.6" -val embedMongoVersion = "4.14.0" +val embedMongoVersion = "4.15.0" val AkkaVersion = "2.8.5" val AkkaHttpVersion = "10.5.0" From f67d61acc460843d01ada150e1ea85d80691f790 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 5 Jul 2024 00:17:35 +0000 Subject: [PATCH 0703/1318] Update zio, zio-streams, zio-test, ... from 2.1.4 to 2.1.5 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 322ef756b..c45a7e5d6 100644 --- a/build.sbt +++ b/build.sbt @@ -20,7 +20,7 @@ val scalaTestDeps = Seq( ) val scalaMock = "org.scalamock" %% "scalamock" % "6.0.0" % Test -val zioVersion = "2.1.4" +val zioVersion = "2.1.5" lazy val scala_core = (project in file("scala-core-modules/scala-core")) .settings( From 9ef21bdeb59ad70198b7a0eaeb5e9a7827300346 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 5 Jul 2024 00:17:56 +0000 Subject: [PATCH 0704/1318] Update zio-json from 0.7.0 to 0.7.1 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 322ef756b..13237bd69 100644 --- a/build.sbt +++ b/build.sbt @@ -624,7 +624,7 @@ lazy val cats_effects = (project in file("cats-effects")) libraryDependencies += "junit" % "junit" % "4.13.2" % Test ) -val zioJsonDep = "dev.zio" %% "zio-json" % "0.7.0" +val zioJsonDep = "dev.zio" %% "zio-json" % "0.7.1" val zioTestSbt = "dev.zio" %% "zio-test-sbt" % zioVersion % Test lazy val zio = (project in file("zio")) @@ -646,7 +646,7 @@ lazy val zio2 = (project in file("zio-2")) name := "zio-2", scalaVersion := scala3Version, libraryDependencies += "dev.zio" %% "zio" % zioVersion, - libraryDependencies += "dev.zio" %% "zio-json" % "0.7.0", + libraryDependencies += "dev.zio" %% "zio-json" % "0.7.1", libraryDependencies += "dev.zio" %% "zio-test" % zioVersion % Test, libraryDependencies += "dev.zio" %% "zio-test-sbt" % zioVersion % Test, libraryDependencies ++= scalaTestDeps, From c496fb145e70db054d123463af6a24cf844aef20 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 5 Jul 2024 00:18:13 +0000 Subject: [PATCH 0705/1318] Update circe-core, circe-generic, ... from 0.14.8 to 0.14.9 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 322ef756b..c804d735d 100644 --- a/build.sbt +++ b/build.sbt @@ -382,7 +382,7 @@ lazy val scala2_libraries = Defaults.itSettings ) -val circeVersion = "0.14.8" +val circeVersion = "0.14.9" val monixVersion = "3.4.1" val elastic4sVersion = "8.13.1" val sparkVersion = "3.5.1" From 82498c0a6236a4638530e63cc3e4329f78fcfc54 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 5 Jul 2024 00:18:29 +0000 Subject: [PATCH 0706/1318] Update jetty-webapp from 11.0.21 to 11.0.22 --- scalatra/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scalatra/build.sbt b/scalatra/build.sbt index a082aedb6..638ffb48b 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -9,7 +9,7 @@ libraryDependencies ++= Seq( "org.scalatra" %% "scalatra" % ScalatraVersion, "org.scalatra" %% "scalatra-scalatest" % ScalatraVersion % "test", "ch.qos.logback" % "logback-classic" % "1.5.6" % "runtime", - "org.eclipse.jetty" % "jetty-webapp" % "11.0.21" % "container", + "org.eclipse.jetty" % "jetty-webapp" % "11.0.22" % "container", "javax.servlet" % "javax.servlet-api" % "4.0.1" % "provided", "org.scalatra" %% "scalatra-auth" % ScalatraVersion, "org.scalatra" %% "scalatra-json" % "2.8.4", From 5dd3059861bab4c9391a9870f047488bc7e9b234 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 5 Jul 2024 00:18:48 +0000 Subject: [PATCH 0707/1318] Update sbt-twirl, twirl-api from 2.0.6 to 2.0.7 --- scalatra/project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scalatra/project/plugins.sbt b/scalatra/project/plugins.sbt index b8cd0fa91..c4e5d9c5b 100644 --- a/scalatra/project/plugins.sbt +++ b/scalatra/project/plugins.sbt @@ -1,3 +1,3 @@ -addSbtPlugin("org.playframework.twirl" % "sbt-twirl" % "2.0.6") +addSbtPlugin("org.playframework.twirl" % "sbt-twirl" % "2.0.7") addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "4.2.4") libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always From b400b90a8ccd0ef7fe164e1941f288b4d2541971 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 5 Jul 2024 00:19:07 +0000 Subject: [PATCH 0708/1318] Update s3 from 2.26.10 to 2.26.15 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 322ef756b..1b07f2d7e 100644 --- a/build.sbt +++ b/build.sbt @@ -533,7 +533,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.751" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.26.10" + "software.amazon.awssdk" % "s3" % "2.26.15" ), Defaults.itSettings, IntegrationTest / fork := true From 791d16bf2699a9357a2cb136f1485aebf76ddd94 Mon Sep 17 00:00:00 2001 From: Ana Peterlic Date: Fri, 5 Jul 2024 17:21:24 +0200 Subject: [PATCH 0709/1318] Add contribution guidelines for the scala-tutorials --- .github/ISSUE_TEMPLATE/issue_report.md | 32 ++++++++++++++++++++++++++ CONTRIBUTING.md | 11 +++++++++ 2 files changed, 43 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/issue_report.md create mode 100644 CONTRIBUTING.md diff --git a/.github/ISSUE_TEMPLATE/issue_report.md b/.github/ISSUE_TEMPLATE/issue_report.md new file mode 100644 index 000000000..4bc8c8121 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/issue_report.md @@ -0,0 +1,32 @@ +--- +name: Issue Report +about: Report an issue to help us improve +title: '[ISSUE] ' +--- + +**Article and Module Links** +A link to the affected article and the affected module. You can find the link to the module in the Conclusion section in the "on Github" standard phase. + +**Describe the Issue** +A clear and concise description of what the issue is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected Behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Environment (please complete the following information):** +- OS: [e.g. Windows] +- Browser [e.g. chrome, safari] +- Version [e.g. 22] + +**Additional Context** +Add any other context about the issue here. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..642f4c670 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,11 @@ +# Contributing to Baeldung Tutorials +First off, thank you for considering contributing to Baeldung Tutorials. + +## Reporting Issues +Before you submit an issue, please review the guidelines below: + +1. **No Custom Modifications:** If your issue arises from any custom modifications you've made to the code in the repository, we won't be able to assist. We can only help if the issue is reproducible with the untouched codebase from this repo. If you're working with a modified version, consider asking for help on StackOverflow or other relevant forums. +2. **Use a clear and descriptive title** for the issue to identify the problem. +3. **Include a link to the article** you're having issues with. +4. **Describe the exact steps which reproduce the problem** in as many details as possible. +5. **Additional Details:** Offer any other context or descriptions that could be useful. Screenshots, error messages, copy/pasteable snippets, or logs can be immensely helpful. \ No newline at end of file From 93f4ab413a1a1ad019c5e44790f8369cae92df87 Mon Sep 17 00:00:00 2001 From: pedrorijo91 Date: Fri, 5 Jul 2024 18:47:45 +0100 Subject: [PATCH 0710/1318] sample code for list average tutorial --- .../scala-core-collections-4/README.md | 1 + .../scala/listaverage/ListAverage.scala | 45 +++++++++++++++++++ .../listaverage/ListAverageUnitTest.scala | 29 ++++++++++++ 3 files changed, 75 insertions(+) create mode 100644 scala-core-collections-modules/scala-core-collections-4/src/main/scala/com/baeldung/scala/listaverage/ListAverage.scala create mode 100644 scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/listaverage/ListAverageUnitTest.scala diff --git a/scala-core-collections-modules/scala-core-collections-4/README.md b/scala-core-collections-modules/scala-core-collections-4/README.md index d24a92257..1adf30391 100644 --- a/scala-core-collections-modules/scala-core-collections-4/README.md +++ b/scala-core-collections-modules/scala-core-collections-4/README.md @@ -1,3 +1,4 @@ ## Relevant Articles - [Using filter() and takeWhile() With Collections in Scala](https://www.baeldung.com/scala/filter-takewhile) - [Finding Elements in a List using takeWhile() and dropWhile() in Scala](https://www.baeldung.com/scala/list-find-takewhile-dropwhile) +- [Calculate the Average of a List in Scala](https://www.baeldung.com/scala/calculate-the-average-of-a-list-in-scala) \ No newline at end of file diff --git a/scala-core-collections-modules/scala-core-collections-4/src/main/scala/com/baeldung/scala/listaverage/ListAverage.scala b/scala-core-collections-modules/scala-core-collections-4/src/main/scala/com/baeldung/scala/listaverage/ListAverage.scala new file mode 100644 index 000000000..5c25a9e14 --- /dev/null +++ b/scala-core-collections-modules/scala-core-collections-4/src/main/scala/com/baeldung/scala/listaverage/ListAverage.scala @@ -0,0 +1,45 @@ +package com.baeldung.scala.listaverage + +object ListAverage { + + + def naive(lst: List[Int]): Int = { + var total = 0 + var nrElements = 0 + + for(elem <- lst) { + total += elem + nrElements += 1 + } + + total / nrElements + } + + + def averageDouble(lst: List[Int]): Double = { + var total = 0 + + // here we use double to ensure we dont round final number + var nrElements = 0.0 + + for (elem <- lst) { + total += elem + nrElements += 1 + } + + total / nrElements + } + + def averageWithListMethods(lst: List[Int]): Int = { + lst.sum / lst.size + } + + def averageWithListMethodsDouble(lst: List[Int]): Double = { + lst.sum / lst.size.toDouble + } + + def averageWithFold(lst: List[Int]): Double = { + val (sum, size) = lst.foldLeft((0.0, 0))((pair, elem)=>(pair._1 + elem, pair._2 + 1)) + sum / size + } +} diff --git a/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/listaverage/ListAverageUnitTest.scala b/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/listaverage/ListAverageUnitTest.scala new file mode 100644 index 000000000..1fb98ef58 --- /dev/null +++ b/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/listaverage/ListAverageUnitTest.scala @@ -0,0 +1,29 @@ +package com.baeldung.scala.listaverage + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers + +class ListAverageUnitTest extends AnyFlatSpec with Matchers { + val lst = List(1,2,3,4,5) + + "naive" should "return rounded average 2" in { + ListAverage.naive(lst) shouldBe 2 + } + + "naive with double" should "return average 2.5" in { + ListAverage.averageDouble(lst) shouldBe 2.5 + } + + "averageWithListMethods" should "return rounded average 2" in { + ListAverage.averageWithListMethods(lst) shouldBe 2 + } + + "averageWithListMethodsDouble" should "return average 2.5" in { + ListAverage.averageWithListMethodsDouble(lst) shouldBe 2.5 + } + + "averageWithFold" should "return average 2.5" in { + ListAverage.averageWithFold(lst) shouldBe 2.5 + } + +} From 47d7f73f04cd58081fa3bc21e76af17c3099da62 Mon Sep 17 00:00:00 2001 From: pedrorijo91 Date: Sat, 6 Jul 2024 08:38:01 +0100 Subject: [PATCH 0711/1318] fix fmt --- .../com/baeldung/scala/listaverage/ListAverage.scala | 9 ++++----- .../baeldung/scala/listaverage/ListAverageUnitTest.scala | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/scala-core-collections-modules/scala-core-collections-4/src/main/scala/com/baeldung/scala/listaverage/ListAverage.scala b/scala-core-collections-modules/scala-core-collections-4/src/main/scala/com/baeldung/scala/listaverage/ListAverage.scala index 5c25a9e14..4bd39d137 100644 --- a/scala-core-collections-modules/scala-core-collections-4/src/main/scala/com/baeldung/scala/listaverage/ListAverage.scala +++ b/scala-core-collections-modules/scala-core-collections-4/src/main/scala/com/baeldung/scala/listaverage/ListAverage.scala @@ -2,12 +2,11 @@ package com.baeldung.scala.listaverage object ListAverage { - - def naive(lst: List[Int]): Int = { + def naive(lst: List[Int]): Int = { var total = 0 var nrElements = 0 - for(elem <- lst) { + for (elem <- lst) { total += elem nrElements += 1 } @@ -15,7 +14,6 @@ object ListAverage { total / nrElements } - def averageDouble(lst: List[Int]): Double = { var total = 0 @@ -39,7 +37,8 @@ object ListAverage { } def averageWithFold(lst: List[Int]): Double = { - val (sum, size) = lst.foldLeft((0.0, 0))((pair, elem)=>(pair._1 + elem, pair._2 + 1)) + val (sum, size) = + lst.foldLeft((0.0, 0))((pair, elem) => (pair._1 + elem, pair._2 + 1)) sum / size } } diff --git a/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/listaverage/ListAverageUnitTest.scala b/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/listaverage/ListAverageUnitTest.scala index 1fb98ef58..d4a9fe868 100644 --- a/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/listaverage/ListAverageUnitTest.scala +++ b/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/listaverage/ListAverageUnitTest.scala @@ -4,7 +4,7 @@ import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers class ListAverageUnitTest extends AnyFlatSpec with Matchers { - val lst = List(1,2,3,4,5) + val lst = List(1, 2, 3, 4, 5) "naive" should "return rounded average 2" in { ListAverage.naive(lst) shouldBe 2 From ce3ec7a604877c29739fc537a0c8abd6a8479c0e Mon Sep 17 00:00:00 2001 From: pedrorijo91 Date: Sat, 6 Jul 2024 09:27:14 +0100 Subject: [PATCH 0712/1318] fix test --- .../com/baeldung/scala/listaverage/ListAverageUnitTest.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/listaverage/ListAverageUnitTest.scala b/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/listaverage/ListAverageUnitTest.scala index d4a9fe868..485410619 100644 --- a/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/listaverage/ListAverageUnitTest.scala +++ b/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/listaverage/ListAverageUnitTest.scala @@ -4,7 +4,7 @@ import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers class ListAverageUnitTest extends AnyFlatSpec with Matchers { - val lst = List(1, 2, 3, 4, 5) + val lst = List(1, 2, 3, 4) "naive" should "return rounded average 2" in { ListAverage.naive(lst) shouldBe 2 From 701fc06d8146a12cba6ae5e25ba76c141108a424 Mon Sep 17 00:00:00 2001 From: pedrorijo91 Date: Tue, 9 Jul 2024 12:06:13 +0100 Subject: [PATCH 0713/1318] fix readme --- .../scala-core-collections-4/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/scala-core-collections-modules/scala-core-collections-4/README.md b/scala-core-collections-modules/scala-core-collections-4/README.md index 1adf30391..d24a92257 100644 --- a/scala-core-collections-modules/scala-core-collections-4/README.md +++ b/scala-core-collections-modules/scala-core-collections-4/README.md @@ -1,4 +1,3 @@ ## Relevant Articles - [Using filter() and takeWhile() With Collections in Scala](https://www.baeldung.com/scala/filter-takewhile) - [Finding Elements in a List using takeWhile() and dropWhile() in Scala](https://www.baeldung.com/scala/list-find-takewhile-dropwhile) -- [Calculate the Average of a List in Scala](https://www.baeldung.com/scala/calculate-the-average-of-a-list-in-scala) \ No newline at end of file From 9b86da536c14abd062c73a2aeaad633dc5d55ed9 Mon Sep 17 00:00:00 2001 From: rcalago <149600319+rcalago@users.noreply.github.com> Date: Sat, 13 Jul 2024 07:33:26 +0800 Subject: [PATCH 0714/1318] Update README.md --- .../scala-core-collections-4/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-core-collections-modules/scala-core-collections-4/README.md b/scala-core-collections-modules/scala-core-collections-4/README.md index d24a92257..819deefc3 100644 --- a/scala-core-collections-modules/scala-core-collections-4/README.md +++ b/scala-core-collections-modules/scala-core-collections-4/README.md @@ -1,3 +1,4 @@ ## Relevant Articles - [Using filter() and takeWhile() With Collections in Scala](https://www.baeldung.com/scala/filter-takewhile) - [Finding Elements in a List using takeWhile() and dropWhile() in Scala](https://www.baeldung.com/scala/list-find-takewhile-dropwhile) +- [Calculate the Average of a List in Scala](https://www.baeldung.com/scala/list-compute-mean-value) From 8f29c0f008457a14ac018897ee8856a80441750c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 13 Jul 2024 00:15:25 +0000 Subject: [PATCH 0715/1318] Update aws-java-sdk-s3 from 1.12.756 to 1.12.761 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a4f957335..ea40873ff 100644 --- a/build.sbt +++ b/build.sbt @@ -530,7 +530,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) scalaMock, "com.lihaoyi" %% "utest" % "0.8.3" % "test", munitDep, - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.756" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.761" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.26.15" From b7100c44b570ae554e3bf049b16095c7db77bbb2 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 13 Jul 2024 00:15:36 +0000 Subject: [PATCH 0716/1318] Update enumeratum from 1.7.3 to 1.7.4 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a4f957335..7ced6e33f 100644 --- a/build.sbt +++ b/build.sbt @@ -390,7 +390,7 @@ val sparkVersion = "3.5.1" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion val sparkSqlDep = "org.apache.spark" %% "spark-sql" % sparkVersion -val enumeratumDep = "com.beachape" %% "enumeratum" % "1.7.3" +val enumeratumDep = "com.beachape" %% "enumeratum" % "1.7.4" val circeDep = "io.circe" %% "circe-generic" % circeVersion val circeParserDep = "io.circe" %% "circe-parser" % circeVersion From 94b644054065e188ad86aa1aea5b0359f1ce891c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 13 Jul 2024 00:15:54 +0000 Subject: [PATCH 0717/1318] Update jackson-databind from 2.17.1 to 2.17.2 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a4f957335..7820c228e 100644 --- a/build.sbt +++ b/build.sbt @@ -489,7 +489,7 @@ lazy val refined = (project in file("scala-libraries-standalone/refined")) val spireVersion = "0.18.0" val kafkaVersion = "7.6.1-ce" val pureconfigVersion = "0.17.7" -val jackSonVersion = "2.17.1" +val jackSonVersion = "2.17.2" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" From 9847c7103a856a3b582595d633d49a360d5befbb Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 13 Jul 2024 00:16:15 +0000 Subject: [PATCH 0718/1318] Update jackson-datatype-jsr310 from 2.17.1 to 2.17.2 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a4f957335..7820c228e 100644 --- a/build.sbt +++ b/build.sbt @@ -489,7 +489,7 @@ lazy val refined = (project in file("scala-libraries-standalone/refined")) val spireVersion = "0.18.0" val kafkaVersion = "7.6.1-ce" val pureconfigVersion = "0.17.7" -val jackSonVersion = "2.17.1" +val jackSonVersion = "2.17.2" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" From 69f32d25e60a621ba056b918c1fcc9549d009c85 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 13 Jul 2024 00:16:34 +0000 Subject: [PATCH 0719/1318] Update jackson-module-scala from 2.17.1 to 2.17.2 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a4f957335..7820c228e 100644 --- a/build.sbt +++ b/build.sbt @@ -489,7 +489,7 @@ lazy val refined = (project in file("scala-libraries-standalone/refined")) val spireVersion = "0.18.0" val kafkaVersion = "7.6.1-ce" val pureconfigVersion = "0.17.7" -val jackSonVersion = "2.17.1" +val jackSonVersion = "2.17.2" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" From 792784d3fdea21496be518b39d401ddbc17a2181 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 13 Jul 2024 00:16:51 +0000 Subject: [PATCH 0720/1318] Update tapir-akka-http-server, tapir-core, ... from 1.10.12 to 1.10.13 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index d17119e36..2bf251ea6 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.10.12" +val tapirV = "1.10.13" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From fff5c4d96bd1014b2fed1c8a791647b587ad7316 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 13 Jul 2024 00:17:12 +0000 Subject: [PATCH 0721/1318] Update de.flapdoodle.embed.mongo from 4.15.0 to 4.16.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a4f957335..65d0e589d 100644 --- a/build.sbt +++ b/build.sbt @@ -8,7 +8,7 @@ val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.4" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.4" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV val logback = "ch.qos.logback" % "logback-classic" % "1.5.6" -val embedMongoVersion = "4.15.0" +val embedMongoVersion = "4.16.0" val AkkaVersion = "2.8.5" val AkkaHttpVersion = "10.5.0" From a9adfefcd6face3a97fc53a6978ecab155aed16b Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 13 Jul 2024 00:17:22 +0000 Subject: [PATCH 0722/1318] Update zio, zio-streams, zio-test, ... from 2.1.5 to 2.1.6 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a4f957335..720baefcb 100644 --- a/build.sbt +++ b/build.sbt @@ -20,7 +20,7 @@ val scalaTestDeps = Seq( ) val scalaMock = "org.scalamock" %% "scalamock" % "6.0.0" % Test -val zioVersion = "2.1.5" +val zioVersion = "2.1.6" lazy val scala_core = (project in file("scala-core-modules/scala-core")) .settings( From f4c02d7ce6a67648950b84f0587d6854f3c57d6c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 13 Jul 2024 00:17:43 +0000 Subject: [PATCH 0723/1318] Update zio-kafka from 2.7.5 to 2.8.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a4f957335..7b6e83c26 100644 --- a/build.sbt +++ b/build.sbt @@ -634,7 +634,7 @@ lazy val zio = (project in file("zio")) libraryDependencies += "dev.zio" %% "zio" % zioVersion, libraryDependencies += "dev.zio" %% "zio-streams" % zioVersion, libraryDependencies += zioTestSbt, - libraryDependencies += "dev.zio" %% "zio-kafka" % "2.7.5", + libraryDependencies += "dev.zio" %% "zio-kafka" % "2.8.0", libraryDependencies += zioJsonDep, libraryDependencies += "dev.zio" %% "zio-prelude" % "1.0.0-RC23", libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.19" % Test, From 9b2f1608ac5f752bf3abe724d240e1ecc634236a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 13 Jul 2024 00:18:01 +0000 Subject: [PATCH 0724/1318] Update circe-yaml from 0.15.2 to 0.15.3 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a4f957335..198229684 100644 --- a/build.sbt +++ b/build.sbt @@ -571,7 +571,7 @@ lazy val scala_libraries_config = (project in file("scala-libraries-config")) munitDep, "com.github.japgolly.clearconfig" %% "core" % "3.1.0", catsEffect, - "io.circe" %% "circe-yaml" % "0.15.2", + "io.circe" %% "circe-yaml" % "0.15.3", circeDep, circeParserDep ), From c7aa50a41b5f3b2148c3c68cb5d84b3b238abc12 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 13 Jul 2024 00:18:18 +0000 Subject: [PATCH 0725/1318] Update mongo-scala-driver from 5.1.1 to 5.1.2 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a4f957335..24c3a12c6 100644 --- a/build.sbt +++ b/build.sbt @@ -254,7 +254,7 @@ lazy val scala_akka_dependencies: Seq[ModuleID] = Seq( akkaTypedTestkit, "com.lightbend.akka" %% "akka-stream-alpakka-mongodb" % "5.0.0", akkaStreamDep, - "org.mongodb.scala" %% "mongo-scala-driver" % "5.1.1", + "org.mongodb.scala" %% "mongo-scala-driver" % "5.1.2", "com.lightbend.akka" %% "akka-stream-alpakka-file" % "5.0.0", jUnitInterface, embeddedMongo % Test, From 68ddbc88b0e4d9356325231cb51fcb4bd06ff08c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 13 Jul 2024 00:18:34 +0000 Subject: [PATCH 0726/1318] Update sbt from 1.10.0 to 1.10.1 --- project/build.properties | 2 +- sbt-release/project/build.properties | 2 +- sbt-standalone/project/build.properties | 2 +- scala-graalvm/scala-graalvm-http-app/project/build.properties | 2 +- scala-sbt/intro-to-sbt/project/build.properties | 2 +- scala-sbt/scalafix/project/build.properties | 2 +- scalatra/project/build.properties | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/project/build.properties b/project/build.properties index 16c8f5b8d..74d800f21 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1,2 +1,2 @@ -sbt.version=1.10.0 +sbt.version=1.10.1 diff --git a/sbt-release/project/build.properties b/sbt-release/project/build.properties index be54e7763..136f452e0 100644 --- a/sbt-release/project/build.properties +++ b/sbt-release/project/build.properties @@ -1 +1 @@ -sbt.version = 1.10.0 +sbt.version = 1.10.1 diff --git a/sbt-standalone/project/build.properties b/sbt-standalone/project/build.properties index 081fdbbc7..ee4c672cd 100644 --- a/sbt-standalone/project/build.properties +++ b/sbt-standalone/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.0 +sbt.version=1.10.1 diff --git a/scala-graalvm/scala-graalvm-http-app/project/build.properties b/scala-graalvm/scala-graalvm-http-app/project/build.properties index 081fdbbc7..ee4c672cd 100644 --- a/scala-graalvm/scala-graalvm-http-app/project/build.properties +++ b/scala-graalvm/scala-graalvm-http-app/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.0 +sbt.version=1.10.1 diff --git a/scala-sbt/intro-to-sbt/project/build.properties b/scala-sbt/intro-to-sbt/project/build.properties index 081fdbbc7..ee4c672cd 100644 --- a/scala-sbt/intro-to-sbt/project/build.properties +++ b/scala-sbt/intro-to-sbt/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.0 +sbt.version=1.10.1 diff --git a/scala-sbt/scalafix/project/build.properties b/scala-sbt/scalafix/project/build.properties index b485f62cc..cb409aac6 100644 --- a/scala-sbt/scalafix/project/build.properties +++ b/scala-sbt/scalafix/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.0 \ No newline at end of file +sbt.version=1.10.1 \ No newline at end of file diff --git a/scalatra/project/build.properties b/scalatra/project/build.properties index 081fdbbc7..ee4c672cd 100644 --- a/scalatra/project/build.properties +++ b/scalatra/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.0 +sbt.version=1.10.1 From 5f41ba5a0fb91d86981a9077ad91ca3db6120bcb Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 13 Jul 2024 00:18:50 +0000 Subject: [PATCH 0727/1318] Update s3 from 2.26.15 to 2.26.20 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a4f957335..6c24384fa 100644 --- a/build.sbt +++ b/build.sbt @@ -533,7 +533,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.756" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.26.15" + "software.amazon.awssdk" % "s3" % "2.26.20" ), Defaults.itSettings, IntegrationTest / fork := true From 7806006ca561358fb77f498d194e6cf47bd5b107 Mon Sep 17 00:00:00 2001 From: Oscar Mauricio Forero Carrillo Date: Sun, 14 Jul 2024 17:57:49 +0200 Subject: [PATCH 0728/1318] SCALA-706: Code companion for the article (#1413) * SCALA-706: Code companion for the article * SCALA-706: Code companion for the article --- build.sbt | 9 +++++ scala-core-modules/scala-strings-2/README.md | 6 +++ .../EmptyPatternMatchingExtensions.scala | 25 ++++++++++++ .../checkempty/EmptySeqExtensions.scala | 10 +++++ .../checkempty/EmptyStringExtensions.scala | 8 ++++ .../checkempty/VerifiedStringExtensions.scala | 22 +++++++++++ .../EmptyPatternMatchingUnitTest.scala | 39 +++++++++++++++++++ .../strings/checkempty/EmptySeqUnitTest.scala | 39 +++++++++++++++++++ .../checkempty/EmptyStringUnitTest.scala | 28 +++++++++++++ .../checkempty/VerifiedStringUnitTest.scala | 30 ++++++++++++++ 10 files changed, 216 insertions(+) create mode 100644 scala-core-modules/scala-strings-2/README.md create mode 100644 scala-core-modules/scala-strings-2/src/main/scala/com/baeldung/scala/strings/checkempty/EmptyPatternMatchingExtensions.scala create mode 100644 scala-core-modules/scala-strings-2/src/main/scala/com/baeldung/scala/strings/checkempty/EmptySeqExtensions.scala create mode 100644 scala-core-modules/scala-strings-2/src/main/scala/com/baeldung/scala/strings/checkempty/EmptyStringExtensions.scala create mode 100644 scala-core-modules/scala-strings-2/src/main/scala/com/baeldung/scala/strings/checkempty/VerifiedStringExtensions.scala create mode 100644 scala-core-modules/scala-strings-2/src/test/scala/com/baeldung/scala/strings/checkempty/EmptyPatternMatchingUnitTest.scala create mode 100644 scala-core-modules/scala-strings-2/src/test/scala/com/baeldung/scala/strings/checkempty/EmptySeqUnitTest.scala create mode 100644 scala-core-modules/scala-strings-2/src/test/scala/com/baeldung/scala/strings/checkempty/EmptyStringUnitTest.scala create mode 100644 scala-core-modules/scala-strings-2/src/test/scala/com/baeldung/scala/strings/checkempty/VerifiedStringUnitTest.scala diff --git a/build.sbt b/build.sbt index cadb0d9c2..d9afe934a 100644 --- a/build.sbt +++ b/build.sbt @@ -143,6 +143,15 @@ lazy val scala_core_oop = (project in file("scala-core-modules/scala-core-oop")) Seq(catsEffect, jUnitInterface) ++ scalaTestDeps ) +lazy val scala_strings_2 = (project in file("scala-core-modules/scala-strings-2")) + .settings( + name := "scala-core-strings", + libraryDependencies ++= scalaTestDeps, + libraryDependencies += jUnitInterface, + scalaVersion := scala3Version + ) + + lazy val scala_core_fp = (project in file("scala-core-modules/scala-core-fp")) .settings( name := "scala-core-fp", diff --git a/scala-core-modules/scala-strings-2/README.md b/scala-core-modules/scala-strings-2/README.md new file mode 100644 index 000000000..a4465c9d1 --- /dev/null +++ b/scala-core-modules/scala-strings-2/README.md @@ -0,0 +1,6 @@ +## Core Scala Strings + +This module contains articles about Scala's Strings. + +### Relevant Articles: + diff --git a/scala-core-modules/scala-strings-2/src/main/scala/com/baeldung/scala/strings/checkempty/EmptyPatternMatchingExtensions.scala b/scala-core-modules/scala-strings-2/src/main/scala/com/baeldung/scala/strings/checkempty/EmptyPatternMatchingExtensions.scala new file mode 100644 index 000000000..fcae999cc --- /dev/null +++ b/scala-core-modules/scala-strings-2/src/main/scala/com/baeldung/scala/strings/checkempty/EmptyPatternMatchingExtensions.scala @@ -0,0 +1,25 @@ +package com.baeldung.scala.strings.checkempty + +object EmptyPatternMatchingExtensions { + extension (seq: Seq[?]) + def isNullOrEmpty: Boolean = seq match { + case null => true + case Seq() => true + case s => false + } + + extension (seq: Seq[Char]) + def isNullOrEmptyOrWhitespace: Boolean = seq match { + case null => true + case Seq() => true + case s => s.forall(_.isWhitespace) + } + + extension (str: String) + def isNullOrEmptyOrWhitespace: Boolean = str match { + case null => true + case "" => true + case s => s.trim.isEmpty + } + +} diff --git a/scala-core-modules/scala-strings-2/src/main/scala/com/baeldung/scala/strings/checkempty/EmptySeqExtensions.scala b/scala-core-modules/scala-strings-2/src/main/scala/com/baeldung/scala/strings/checkempty/EmptySeqExtensions.scala new file mode 100644 index 000000000..94a7cf1c8 --- /dev/null +++ b/scala-core-modules/scala-strings-2/src/main/scala/com/baeldung/scala/strings/checkempty/EmptySeqExtensions.scala @@ -0,0 +1,10 @@ +package com.baeldung.scala.strings.checkempty + +object EmptySeqExtensions { + extension (objs: Seq[?]) + def isNullOrEmpty: Boolean = objs == null || objs.isEmpty + + extension (objs: Seq[Char]) + def isNullOrEmptyOrWhitespace: Boolean = + objs.isNullOrEmpty || objs.forall(_.isWhitespace) +} diff --git a/scala-core-modules/scala-strings-2/src/main/scala/com/baeldung/scala/strings/checkempty/EmptyStringExtensions.scala b/scala-core-modules/scala-strings-2/src/main/scala/com/baeldung/scala/strings/checkempty/EmptyStringExtensions.scala new file mode 100644 index 000000000..ac9f4cb9d --- /dev/null +++ b/scala-core-modules/scala-strings-2/src/main/scala/com/baeldung/scala/strings/checkempty/EmptyStringExtensions.scala @@ -0,0 +1,8 @@ +package com.baeldung.scala.strings.checkempty + +object EmptyStringExtensions { + extension (str: String) + def isEmptyOrWhitespace: Boolean = str.trim.isEmpty + def isNullOrEmptyOrWhitespace: Boolean = + str == null || str.isEmptyOrWhitespace +} diff --git a/scala-core-modules/scala-strings-2/src/main/scala/com/baeldung/scala/strings/checkempty/VerifiedStringExtensions.scala b/scala-core-modules/scala-strings-2/src/main/scala/com/baeldung/scala/strings/checkempty/VerifiedStringExtensions.scala new file mode 100644 index 000000000..10a4bc205 --- /dev/null +++ b/scala-core-modules/scala-strings-2/src/main/scala/com/baeldung/scala/strings/checkempty/VerifiedStringExtensions.scala @@ -0,0 +1,22 @@ +package com.baeldung.scala.strings.checkempty + +type Empty +type NonEmpty + +opaque type VerifiedString[T] = String + +object VerifiedString: + def apply[T](value: String): VerifiedString[T] = value + + given Conversion[VerifiedString[NonEmpty], String] = _.value + + extension (str: String) + def asVerifiedString = + if str.isNullOrEmptyOrWhitespace then VerifiedString[Empty](str) + else VerifiedString[NonEmpty](str) + + def isEmptyOrWhitespace: Boolean = str.trim.isEmpty + def isNullOrEmptyOrWhitespace: Boolean = + str == null || str.isEmptyOrWhitespace + + extension (vstr: VerifiedString[NonEmpty]) def value: String = vstr diff --git a/scala-core-modules/scala-strings-2/src/test/scala/com/baeldung/scala/strings/checkempty/EmptyPatternMatchingUnitTest.scala b/scala-core-modules/scala-strings-2/src/test/scala/com/baeldung/scala/strings/checkempty/EmptyPatternMatchingUnitTest.scala new file mode 100644 index 000000000..d97b8ff47 --- /dev/null +++ b/scala-core-modules/scala-strings-2/src/test/scala/com/baeldung/scala/strings/checkempty/EmptyPatternMatchingUnitTest.scala @@ -0,0 +1,39 @@ +package com.baeldung.scala.strings.checkempty + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers + +import EmptyPatternMatchingExtensions._ + +class EmptyPatternMatchingUnitTest extends AnyFlatSpec with Matchers { + "isNullOrEmpty" should "return true for null reference" in { + val seq: Seq[?] = null + seq.isNullOrEmpty.shouldBe(true) + } + + it should "return true for empty sequences" in { + val seq: Seq[Any] = Seq.empty + seq.isNullOrEmpty.shouldBe(true) + } + + "isNullOrEmptyOrWhitespace" should "return true for null strings" in { + val str: String = null + str.isNullOrEmptyOrWhitespace.shouldBe(true) + } + + it should "return true for empty strings" in { + val str: String = "" + str.isNullOrEmptyOrWhitespace.shouldBe(true) + } + + it should "return true for strings with only whitespace" in { + val str: String = " " + str.isNullOrEmptyOrWhitespace.shouldBe(true) + } + + it should "return false for non-empty strings" in { + val str: String = "Hello, Scala" + str.isNullOrEmptyOrWhitespace.shouldBe(false) + } + +} diff --git a/scala-core-modules/scala-strings-2/src/test/scala/com/baeldung/scala/strings/checkempty/EmptySeqUnitTest.scala b/scala-core-modules/scala-strings-2/src/test/scala/com/baeldung/scala/strings/checkempty/EmptySeqUnitTest.scala new file mode 100644 index 000000000..03ce1ab19 --- /dev/null +++ b/scala-core-modules/scala-strings-2/src/test/scala/com/baeldung/scala/strings/checkempty/EmptySeqUnitTest.scala @@ -0,0 +1,39 @@ +package com.baeldung.scala.strings.checkempty + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers + +import EmptySeqExtensions._ + +class EmptySeqUnitTest extends AnyFlatSpec with Matchers { + "isNullOrEmpty" should "return true for null reference" in { + val seq: Seq[?] = null + seq.isNullOrEmpty.shouldBe(true) + } + + it should "return true for empty sequences" in { + val seq: Seq[Any] = Seq.empty + seq.isNullOrEmpty.shouldBe(true) + } + + "isNullOrEmptyOrWhitespace" should "return true for null strings" in { + val str: String = null + str.isNullOrEmptyOrWhitespace.shouldBe(true) + } + + it should "return true for empty strings" in { + val str: String = "" + str.isNullOrEmptyOrWhitespace.shouldBe(true) + } + + it should "return true for strings with only whitespace" in { + val str: String = " " + str.isNullOrEmptyOrWhitespace.shouldBe(true) + } + + it should "return false for non-empty strings" in { + val str: String = "Hello, Scala" + str.isNullOrEmptyOrWhitespace.shouldBe(false) + } + +} diff --git a/scala-core-modules/scala-strings-2/src/test/scala/com/baeldung/scala/strings/checkempty/EmptyStringUnitTest.scala b/scala-core-modules/scala-strings-2/src/test/scala/com/baeldung/scala/strings/checkempty/EmptyStringUnitTest.scala new file mode 100644 index 000000000..08206cf6d --- /dev/null +++ b/scala-core-modules/scala-strings-2/src/test/scala/com/baeldung/scala/strings/checkempty/EmptyStringUnitTest.scala @@ -0,0 +1,28 @@ +package com.baeldung.scala.strings.checkempty + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers +import EmptyStringExtensions._ + +class EmptyStringUnitTest extends AnyFlatSpec with Matchers { + + "isNullOrEmptyOrWhitespace" should "return true for null strings" in { + val str: String = null + str.isNullOrEmptyOrWhitespace.shouldBe(true) + } + + it should "return true for empty strings" in { + val str: String = "" + str.isNullOrEmptyOrWhitespace.shouldBe(true) + } + + it should "return true for strings with only whitespace" in { + val str: String = " " + str.isNullOrEmptyOrWhitespace.shouldBe(true) + } + + it should "return false for non-empty strings" in { + val str: String = "Hello, Scala" + str.isNullOrEmptyOrWhitespace.shouldBe(false) + } +} diff --git a/scala-core-modules/scala-strings-2/src/test/scala/com/baeldung/scala/strings/checkempty/VerifiedStringUnitTest.scala b/scala-core-modules/scala-strings-2/src/test/scala/com/baeldung/scala/strings/checkempty/VerifiedStringUnitTest.scala new file mode 100644 index 000000000..7234dca42 --- /dev/null +++ b/scala-core-modules/scala-strings-2/src/test/scala/com/baeldung/scala/strings/checkempty/VerifiedStringUnitTest.scala @@ -0,0 +1,30 @@ +package com.baeldung.scala.strings.checkempty + +import com.baeldung.scala.strings.checkempty.VerifiedString.* +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers + +class VerifiedStringUnitTest extends AnyFlatSpec with Matchers { + + def lenght(str: VerifiedString[NonEmpty]) = str.length + + "a verified string" should "never be empty" in { + val str: String = null + str.isNullOrEmptyOrWhitespace.shouldBe(true) + } + + it should "return true for empty strings" in { + val str: String = "" + str.isNullOrEmptyOrWhitespace.shouldBe(true) + } + + it should "return true for strings with only whitespace" in { + val str: String = " " + str.isNullOrEmptyOrWhitespace.shouldBe(true) + } + + it should "return false for non-empty strings" in { + val str: String = "Hello, Scala" + str.isNullOrEmptyOrWhitespace.shouldBe(false) + } +} From 07c3256d3b7fecad4040a70cfd7a8a66b51ea939 Mon Sep 17 00:00:00 2001 From: Callum Date: Fri, 19 Jul 2024 04:44:37 +0100 Subject: [PATCH 0729/1318] [SCALA-649] Convert a Number to Roman Numeral in Scala (#1455) * [SCALA-649] Convert a Number to Roman Numeral in Scala * Renamed test to UnitTest --------- Co-authored-by: Callum Gibbons --- .../romannumerals/NumberToRomanNumeral.scala | 58 ++++++++++++++++++ .../NumberToRomanNumeralUnitTest.scala | 61 +++++++++++++++++++ 2 files changed, 119 insertions(+) create mode 100644 scala-core-modules/scala-core-numbers/src/main/scala/com/baeldung/scala/romannumerals/NumberToRomanNumeral.scala create mode 100644 scala-core-modules/scala-core-numbers/src/test/scala/com/baeldung/scala/romannumeral/NumberToRomanNumeralUnitTest.scala diff --git a/scala-core-modules/scala-core-numbers/src/main/scala/com/baeldung/scala/romannumerals/NumberToRomanNumeral.scala b/scala-core-modules/scala-core-numbers/src/main/scala/com/baeldung/scala/romannumerals/NumberToRomanNumeral.scala new file mode 100644 index 000000000..186fe2ba4 --- /dev/null +++ b/scala-core-modules/scala-core-numbers/src/main/scala/com/baeldung/scala/romannumerals/NumberToRomanNumeral.scala @@ -0,0 +1,58 @@ +package com.baeldung.scala.romannumerals + +import scala.annotation.tailrec +import scala.math.BigDecimal.int2bigDecimal + +object NumberToRomanNumeral { + + private val numbersToRomans = List( + (1000, "M"), + (900, "CM"), + (500, "D"), + (400, "CD"), + (100, "C"), + (90, "XC"), + (50, "L"), + (40, "XL"), + (10, "X"), + (9, "IX"), + (5, "V"), + (4, "IV"), + (1, "I") + ) + + def usingRecursion(num: Int): String = { + numbersToRomans.find((n, _) => { + num - n >= 0 + }) match + case Some((n, r)) => r + usingRecursion(num - n) + case None => "" + } + + def usingTailRecursion(num: Int): String = { + @tailrec + def recursiveFn(remaining: Int, acc: String): String = { + numbersToRomans.find((n, _) => { + remaining - n >= 0 + }) match + case Some((n, r)) => recursiveFn(remaining - n, acc + r) + case None => acc + } + recursiveFn(num, "") + } + + def usingFold(num: Int): String = { + numbersToRomans + .foldLeft((num, ""))((remainingAndAcc, numAndRoman) => { + val (remaining, acc) = remainingAndAcc + if (remaining == 0) remainingAndAcc + else { + val (n, r) = numAndRoman + + (remaining % n, acc + r * (remaining / n)) + } + }) + ._2 + } + +} diff --git a/scala-core-modules/scala-core-numbers/src/test/scala/com/baeldung/scala/romannumeral/NumberToRomanNumeralUnitTest.scala b/scala-core-modules/scala-core-numbers/src/test/scala/com/baeldung/scala/romannumeral/NumberToRomanNumeralUnitTest.scala new file mode 100644 index 000000000..10f0bcd4a --- /dev/null +++ b/scala-core-modules/scala-core-numbers/src/test/scala/com/baeldung/scala/romannumeral/NumberToRomanNumeralUnitTest.scala @@ -0,0 +1,61 @@ +package com.baeldung.scala.romannumeral + +import com.baeldung.scala.romannumerals.NumberToRomanNumeral +import org.scalatest.matchers.should.Matchers +import org.scalatest.prop.TableDrivenPropertyChecks +import org.scalatest.wordspec.AnyWordSpec + +class NumberToRomanNumeralUnitTest + extends AnyWordSpec + with Matchers + with TableDrivenPropertyChecks { + val testValuesWithResults = Table( + ("Number", "Roman"), + (0, ""), + (1, "I"), + (2, "II"), + (4, "IV"), + (5, "V"), + (6, "VI"), + (9, "IX"), + (10, "X"), + (11, "XI"), + (14, "XIV"), + (15, "XV"), + (17, "XVII"), + (19, "XIX"), + (20, "XX"), + (40, "XL"), + (44, "XLIV"), + (49, "XLIX"), + (50, "L"), + (90, "XC"), + (100, "C"), + (400, "CD"), + (500, "D"), + (900, "CM"), + (1000, "M"), + (1949, "MCMXLIX") + ) + + "Correction roman numeral should be returned for number" should { + "using usingRecursion" in { + forAll(testValuesWithResults)((num, roman) => { + NumberToRomanNumeral.usingRecursion(num) shouldBe roman + }) + } + + "using usingTailRecursion" in { + forAll(testValuesWithResults)((num, roman) => { + NumberToRomanNumeral.usingTailRecursion(num) shouldBe roman + }) + } + + "using usingFold" in { + forAll(testValuesWithResults)((num, roman) => { + NumberToRomanNumeral.usingFold(num) shouldBe roman + }) + } + } + +} From c499c26cd03c1cc49a68a13d9168bb416a859f81 Mon Sep 17 00:00:00 2001 From: Matteo Di Pirro Date: Fri, 19 Jul 2024 08:38:44 +0200 Subject: [PATCH 0730/1318] SCALA-601 Add code for stackable trait article --- .../stackabletrait/DecoratorExample.scala | 43 +++++++++++++++++++ .../scala/stackabletrait/MixinExample.scala | 24 +++++++++++ .../StackableTraitExample.scala | 41 ++++++++++++++++++ 3 files changed, 108 insertions(+) create mode 100644 scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/stackabletrait/DecoratorExample.scala create mode 100644 scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/stackabletrait/MixinExample.scala create mode 100644 scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/stackabletrait/StackableTraitExample.scala diff --git a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/stackabletrait/DecoratorExample.scala b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/stackabletrait/DecoratorExample.scala new file mode 100644 index 000000000..7a91806b2 --- /dev/null +++ b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/stackabletrait/DecoratorExample.scala @@ -0,0 +1,43 @@ +package com.baeldung.scala.stackabletrait + +object DecoratorExample { + trait IntTransformation { + def transform(value: Int): Int = value + } + + class TransformationDecorator(wrappee: IntTransformation) + extends IntTransformation { + override def transform(value: Int): Int = wrappee.transform(value) + } + + class DoubleDecorator(wrappee: IntTransformation) + extends TransformationDecorator(wrappee) { + override def transform(value: Int): Int = + super.transform(value * 2) + } + + class LogInt(wrappee: IntTransformation) + extends TransformationDecorator(wrappee) { + override def transform(value: Int): Int = { + println(s"Transforming value: $value") + super.transform(value) + } + } + + class CustomDecorator(f: Int => Int, wrappee: IntTransformation) + extends TransformationDecorator(wrappee) { + override def transform(value: Int): Int = + super.transform(f(value)) + } + + @main + def mainDec(): Unit = { + val identity = new IntTransformation {} + + val withLogging = new LogInt(identity) + val withDouble = new DoubleDecorator(withLogging) + val withCustom = new CustomDecorator(_ + 1, withDouble) + + println(s"With increment, double, and logging: ${withCustom.transform(5)}") + } +} diff --git a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/stackabletrait/MixinExample.scala b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/stackabletrait/MixinExample.scala new file mode 100644 index 000000000..79e225bd6 --- /dev/null +++ b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/stackabletrait/MixinExample.scala @@ -0,0 +1,24 @@ +package com.baeldung.scala.stackabletrait + +object MixinExample { + trait Person { + val name: String + val country: String + } + + case class ItalianPerson(name: String) extends Person { + val country = "Italy" + } + + trait WithPrettyPrinting extends Person { + def prettyPrint: String = + s"""Name: $name + |Country: $country""".stripMargin + } + + @main + def main(): Unit = + val italian = new ItalianPerson("Mario") with WithPrettyPrinting + println(italian) + println(italian.prettyPrint) +} diff --git a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/stackabletrait/StackableTraitExample.scala b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/stackabletrait/StackableTraitExample.scala new file mode 100644 index 000000000..bb8dbbd62 --- /dev/null +++ b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/stackabletrait/StackableTraitExample.scala @@ -0,0 +1,41 @@ +package com.baeldung.scala.stackabletrait + +object StackableTraitExample { + trait IntTransformation { + def transform(value: Int): Int = value + } + + trait DoubleTransformation extends IntTransformation { + override def transform(value: Int): Int = + super.transform(value * 2) + } + + trait LogInt extends IntTransformation { + override def transform(value: Int): Int = { + println(s"Transforming value: $value") + super.transform(value) + } + } + + trait CustomTransformation(f: Int => Int) extends IntTransformation { + override def transform(value: Int): Int = + super.transform(f(value)) + } + + @main + def mainST(): Unit = { + val logAndDouble = new IntTransformation + with DoubleTransformation + with LogInt {} + val doubleAndLog = new IntTransformation + with LogInt + with DoubleTransformation {} + val logAndCustom = new IntTransformation + with CustomTransformation(_ + 1) + with LogInt {} + + println(s"Log and double: ${logAndDouble.transform(5)}") + println(s"Double and log: ${doubleAndLog.transform(5)}") + println(s"Log and increment: ${logAndCustom.transform(5)}") + } +} From 27f403bcf74a9a1c41fdd5968275f2d0cda6323d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 21 Jul 2024 00:16:34 +0000 Subject: [PATCH 0731/1318] Update aws-java-sdk-s3 from 1.12.761 to 1.12.762 --- build.sbt | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/build.sbt b/build.sbt index d9afe934a..2f3309937 100644 --- a/build.sbt +++ b/build.sbt @@ -143,14 +143,14 @@ lazy val scala_core_oop = (project in file("scala-core-modules/scala-core-oop")) Seq(catsEffect, jUnitInterface) ++ scalaTestDeps ) -lazy val scala_strings_2 = (project in file("scala-core-modules/scala-strings-2")) - .settings( - name := "scala-core-strings", - libraryDependencies ++= scalaTestDeps, - libraryDependencies += jUnitInterface, - scalaVersion := scala3Version - ) - +lazy val scala_strings_2 = + (project in file("scala-core-modules/scala-strings-2")) + .settings( + name := "scala-core-strings", + libraryDependencies ++= scalaTestDeps, + libraryDependencies += jUnitInterface, + scalaVersion := scala3Version + ) lazy val scala_core_fp = (project in file("scala-core-modules/scala-core-fp")) .settings( @@ -539,7 +539,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) scalaMock, "com.lihaoyi" %% "utest" % "0.8.3" % "test", munitDep, - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.761" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.762" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.26.20" From e7aa563dc813087b24bfdcea56c485f0d8345e6b Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 21 Jul 2024 00:16:44 +0000 Subject: [PATCH 0732/1318] Update h2 from 2.2.224 to 2.3.230 --- build.sbt | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/build.sbt b/build.sbt index d9afe934a..11701e9b3 100644 --- a/build.sbt +++ b/build.sbt @@ -143,14 +143,14 @@ lazy val scala_core_oop = (project in file("scala-core-modules/scala-core-oop")) Seq(catsEffect, jUnitInterface) ++ scalaTestDeps ) -lazy val scala_strings_2 = (project in file("scala-core-modules/scala-strings-2")) - .settings( - name := "scala-core-strings", - libraryDependencies ++= scalaTestDeps, - libraryDependencies += jUnitInterface, - scalaVersion := scala3Version - ) - +lazy val scala_strings_2 = + (project in file("scala-core-modules/scala-strings-2")) + .settings( + name := "scala-core-strings", + libraryDependencies ++= scalaTestDeps, + libraryDependencies += jUnitInterface, + scalaVersion := scala3Version + ) lazy val scala_core_fp = (project in file("scala-core-modules/scala-core-fp")) .settings( @@ -385,7 +385,7 @@ lazy val scala2_libraries = ), libraryDependencies ++= Seq( "com.typesafe.slick" %% "slick" % slickVersion, - "com.h2database" % "h2" % "2.2.224" + "com.h2database" % "h2" % "2.3.230" ), scalacOptions += "-Xasync", Defaults.itSettings @@ -559,7 +559,7 @@ lazy val scala_libraries_persistence = .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( "com.typesafe.slick" %% "slick" % slickVersion, - "com.h2database" % "h2" % "2.2.224", + "com.h2database" % "h2" % "2.3.230", "org.tpolecat" %% "skunk-core" % "0.6.4", doobieCore, doobiePGDep, From b004945035cd6afb72130c744f6ed00c8e986fb7 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 21 Jul 2024 00:16:59 +0000 Subject: [PATCH 0733/1318] Update os-lib from 0.10.2 to 0.10.3 --- build.sbt | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/build.sbt b/build.sbt index d9afe934a..d7f53d11a 100644 --- a/build.sbt +++ b/build.sbt @@ -143,14 +143,14 @@ lazy val scala_core_oop = (project in file("scala-core-modules/scala-core-oop")) Seq(catsEffect, jUnitInterface) ++ scalaTestDeps ) -lazy val scala_strings_2 = (project in file("scala-core-modules/scala-strings-2")) - .settings( - name := "scala-core-strings", - libraryDependencies ++= scalaTestDeps, - libraryDependencies += jUnitInterface, - scalaVersion := scala3Version - ) - +lazy val scala_strings_2 = + (project in file("scala-core-modules/scala-strings-2")) + .settings( + name := "scala-core-strings", + libraryDependencies ++= scalaTestDeps, + libraryDependencies += jUnitInterface, + scalaVersion := scala3Version + ) lazy val scala_core_fp = (project in file("scala-core-modules/scala-core-fp")) .settings( @@ -444,7 +444,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) val http4sBlaze = "0.23.16" val http4sVersion = "0.23.27" -val osLibVersion = "0.10.2" +val osLibVersion = "0.10.3" val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion From 6b9441c95e94340a1fa8f665bf525a917e01d467 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 21 Jul 2024 00:17:11 +0000 Subject: [PATCH 0734/1318] Update tapir-akka-http-server, tapir-core, ... from 1.10.13 to 1.10.14 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index 2bf251ea6..58306a96c 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.10.13" +val tapirV = "1.10.14" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From 383042cea59903cb02d0282072c2e74b566f0192 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 21 Jul 2024 00:17:30 +0000 Subject: [PATCH 0735/1318] Update de.flapdoodle.embed.mongo from 4.16.0 to 4.16.1 --- build.sbt | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/build.sbt b/build.sbt index d9afe934a..11f8467d6 100644 --- a/build.sbt +++ b/build.sbt @@ -8,7 +8,7 @@ val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.4" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.4" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV val logback = "ch.qos.logback" % "logback-classic" % "1.5.6" -val embedMongoVersion = "4.16.0" +val embedMongoVersion = "4.16.1" val AkkaVersion = "2.8.5" val AkkaHttpVersion = "10.5.0" @@ -143,14 +143,14 @@ lazy val scala_core_oop = (project in file("scala-core-modules/scala-core-oop")) Seq(catsEffect, jUnitInterface) ++ scalaTestDeps ) -lazy val scala_strings_2 = (project in file("scala-core-modules/scala-strings-2")) - .settings( - name := "scala-core-strings", - libraryDependencies ++= scalaTestDeps, - libraryDependencies += jUnitInterface, - scalaVersion := scala3Version - ) - +lazy val scala_strings_2 = + (project in file("scala-core-modules/scala-strings-2")) + .settings( + name := "scala-core-strings", + libraryDependencies ++= scalaTestDeps, + libraryDependencies += jUnitInterface, + scalaVersion := scala3Version + ) lazy val scala_core_fp = (project in file("scala-core-modules/scala-core-fp")) .settings( From aa109d9ce4b62c66b1762f9b892ccc66d8abe26f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 21 Jul 2024 00:17:39 +0000 Subject: [PATCH 0736/1318] Update kafka-avro-serializer from 7.6.1 to 7.6.2 --- build.sbt | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/build.sbt b/build.sbt index d9afe934a..380195cb7 100644 --- a/build.sbt +++ b/build.sbt @@ -143,14 +143,14 @@ lazy val scala_core_oop = (project in file("scala-core-modules/scala-core-oop")) Seq(catsEffect, jUnitInterface) ++ scalaTestDeps ) -lazy val scala_strings_2 = (project in file("scala-core-modules/scala-strings-2")) - .settings( - name := "scala-core-strings", - libraryDependencies ++= scalaTestDeps, - libraryDependencies += jUnitInterface, - scalaVersion := scala3Version - ) - +lazy val scala_strings_2 = + (project in file("scala-core-modules/scala-strings-2")) + .settings( + name := "scala-core-strings", + libraryDependencies ++= scalaTestDeps, + libraryDependencies += jUnitInterface, + scalaVersion := scala3Version + ) lazy val scala_core_fp = (project in file("scala-core-modules/scala-core-fp")) .settings( @@ -502,7 +502,7 @@ val jackSonVersion = "2.17.2" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" -val kafkaAvroSerializer = "7.6.1" +val kafkaAvroSerializer = "7.6.2" val pureConfigDep = "com.github.pureconfig" %% "pureconfig" % pureconfigVersion From e19ab7f47513da11dc3dcac8fff552362faac9cb Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 21 Jul 2024 00:17:59 +0000 Subject: [PATCH 0737/1318] Update elastic4s-client-esjava, ... from 8.13.1 to 8.14.0 --- build.sbt | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/build.sbt b/build.sbt index d9afe934a..6f4419887 100644 --- a/build.sbt +++ b/build.sbt @@ -143,14 +143,14 @@ lazy val scala_core_oop = (project in file("scala-core-modules/scala-core-oop")) Seq(catsEffect, jUnitInterface) ++ scalaTestDeps ) -lazy val scala_strings_2 = (project in file("scala-core-modules/scala-strings-2")) - .settings( - name := "scala-core-strings", - libraryDependencies ++= scalaTestDeps, - libraryDependencies += jUnitInterface, - scalaVersion := scala3Version - ) - +lazy val scala_strings_2 = + (project in file("scala-core-modules/scala-strings-2")) + .settings( + name := "scala-core-strings", + libraryDependencies ++= scalaTestDeps, + libraryDependencies += jUnitInterface, + scalaVersion := scala3Version + ) lazy val scala_core_fp = (project in file("scala-core-modules/scala-core-fp")) .settings( @@ -393,7 +393,7 @@ lazy val scala2_libraries = val circeVersion = "0.14.9" val monixVersion = "3.4.1" -val elastic4sVersion = "8.13.1" +val elastic4sVersion = "8.14.0" val sparkVersion = "3.5.1" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion From 6df50dc6404d910fce78277735f9eaaecf2748f9 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 21 Jul 2024 00:18:12 +0000 Subject: [PATCH 0738/1318] Update kafka-clients from 7.6.1-ce to 7.6.2-ce --- build.sbt | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/build.sbt b/build.sbt index d9afe934a..a8d95bb77 100644 --- a/build.sbt +++ b/build.sbt @@ -143,14 +143,14 @@ lazy val scala_core_oop = (project in file("scala-core-modules/scala-core-oop")) Seq(catsEffect, jUnitInterface) ++ scalaTestDeps ) -lazy val scala_strings_2 = (project in file("scala-core-modules/scala-strings-2")) - .settings( - name := "scala-core-strings", - libraryDependencies ++= scalaTestDeps, - libraryDependencies += jUnitInterface, - scalaVersion := scala3Version - ) - +lazy val scala_strings_2 = + (project in file("scala-core-modules/scala-strings-2")) + .settings( + name := "scala-core-strings", + libraryDependencies ++= scalaTestDeps, + libraryDependencies += jUnitInterface, + scalaVersion := scala3Version + ) lazy val scala_core_fp = (project in file("scala-core-modules/scala-core-fp")) .settings( @@ -496,7 +496,7 @@ lazy val refined = (project in file("scala-libraries-standalone/refined")) ) val spireVersion = "0.18.0" -val kafkaVersion = "7.6.1-ce" +val kafkaVersion = "7.6.2-ce" val pureconfigVersion = "0.17.7" val jackSonVersion = "2.17.2" val log4jApiScalaVersion = "13.1.0" From 9197d469de0e5ae6c6af3981dc9a08525a164b9a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 21 Jul 2024 00:18:21 +0000 Subject: [PATCH 0739/1318] Update pulsar from 1.19.8 to 1.20.0 --- build.sbt | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/build.sbt b/build.sbt index d9afe934a..de121f972 100644 --- a/build.sbt +++ b/build.sbt @@ -143,14 +143,14 @@ lazy val scala_core_oop = (project in file("scala-core-modules/scala-core-oop")) Seq(catsEffect, jUnitInterface) ++ scalaTestDeps ) -lazy val scala_strings_2 = (project in file("scala-core-modules/scala-strings-2")) - .settings( - name := "scala-core-strings", - libraryDependencies ++= scalaTestDeps, - libraryDependencies += jUnitInterface, - scalaVersion := scala3Version - ) - +lazy val scala_strings_2 = + (project in file("scala-core-modules/scala-strings-2")) + .settings( + name := "scala-core-strings", + libraryDependencies ++= scalaTestDeps, + libraryDependencies += jUnitInterface, + scalaVersion := scala3Version + ) lazy val scala_core_fp = (project in file("scala-core-modules/scala-core-fp")) .settings( @@ -373,7 +373,7 @@ lazy val scala2_libraries = "org.scala-lang.modules" %% "scala-async" % "1.0.1", "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.9.1", "com.clever-cloud.pulsar4s" %% "pulsar4s-jackson" % "2.9.1", - "org.testcontainers" % "pulsar" % "1.19.8" % IntegrationTest, + "org.testcontainers" % "pulsar" % "1.20.0" % IntegrationTest, "org.apache.kafka" % "kafka-clients" % kafkaVersion, "com.fasterxml.jackson.core" % "jackson-databind" % jackSonVersion, "com.fasterxml.jackson.datatype" % "jackson-datatype-jsr310" % jackSonVersion, From 70adc4927645ea75516f9754965d262dbd39498b Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 21 Jul 2024 00:18:35 +0000 Subject: [PATCH 0740/1318] Update s3 from 2.26.20 to 2.26.21 --- build.sbt | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/build.sbt b/build.sbt index d9afe934a..17d68ca2b 100644 --- a/build.sbt +++ b/build.sbt @@ -143,14 +143,14 @@ lazy val scala_core_oop = (project in file("scala-core-modules/scala-core-oop")) Seq(catsEffect, jUnitInterface) ++ scalaTestDeps ) -lazy val scala_strings_2 = (project in file("scala-core-modules/scala-strings-2")) - .settings( - name := "scala-core-strings", - libraryDependencies ++= scalaTestDeps, - libraryDependencies += jUnitInterface, - scalaVersion := scala3Version - ) - +lazy val scala_strings_2 = + (project in file("scala-core-modules/scala-strings-2")) + .settings( + name := "scala-core-strings", + libraryDependencies ++= scalaTestDeps, + libraryDependencies += jUnitInterface, + scalaVersion := scala3Version + ) lazy val scala_core_fp = (project in file("scala-core-modules/scala-core-fp")) .settings( @@ -542,7 +542,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.761" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.26.20" + "software.amazon.awssdk" % "s3" % "2.26.21" ), Defaults.itSettings, IntegrationTest / fork := true From 8398deb444f2659b7fe0948e37e82132d4540d07 Mon Sep 17 00:00:00 2001 From: Matteo Di Pirro Date: Mon, 22 Jul 2024 18:04:35 +0200 Subject: [PATCH 0741/1318] SCALA-601 Add example with different base and core traits --- ...eTraitWithExplicitBaseAndCoreExample.scala | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/stackabletrait/StackableTraitWithExplicitBaseAndCoreExample.scala diff --git a/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/stackabletrait/StackableTraitWithExplicitBaseAndCoreExample.scala b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/stackabletrait/StackableTraitWithExplicitBaseAndCoreExample.scala new file mode 100644 index 000000000..83bb6332d --- /dev/null +++ b/scala-core-modules/scala-core-8/src/main/scala/com/baeldung/scala/stackabletrait/StackableTraitWithExplicitBaseAndCoreExample.scala @@ -0,0 +1,45 @@ +package com.baeldung.scala.stackabletrait + +object StackableTraitWithExplicitBaseAndCoreExample { + trait BaseIntTransformation { + def transform(value: Int): Int + } + + trait CoreIntTransformation extends BaseIntTransformation { + def transform(value: Int): Int = value + } + + trait DoubleTransformation extends CoreIntTransformation { + override def transform(value: Int): Int = + super.transform(value * 2) + } + + trait LogInt extends CoreIntTransformation { + override def transform(value: Int): Int = { + println(s"Transforming value: $value") + super.transform(value) + } + } + + trait CustomTransformation(f: Int => Int) extends CoreIntTransformation { + override def transform(value: Int): Int = + super.transform(f(value)) + } + + @main + def mainSTE(): Unit = { + val logAndDouble = new CoreIntTransformation + with DoubleTransformation + with LogInt {} + val doubleAndLog = new CoreIntTransformation + with LogInt + with DoubleTransformation {} + val logAndCustom = new CoreIntTransformation + with CustomTransformation(_ + 1) + with LogInt {} + + println(s"Log and double: ${logAndDouble.transform(5)}") + println(s"Double and log: ${doubleAndLog.transform(5)}") + println(s"Log and increment: ${logAndCustom.transform(5)}") + } +} From 6cb12fe92145f7ebd706e456ed79a58aca98ded6 Mon Sep 17 00:00:00 2001 From: Loredana Crusoveanu Date: Tue, 23 Jul 2024 14:21:54 +0300 Subject: [PATCH 0742/1318] Update README.md --- .../scala-core-collections-3/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/scala-core-collections-modules/scala-core-collections-3/README.md b/scala-core-collections-modules/scala-core-collections-3/README.md index 17b1dce3f..6968c0213 100644 --- a/scala-core-collections-modules/scala-core-collections-3/README.md +++ b/scala-core-collections-modules/scala-core-collections-3/README.md @@ -10,4 +10,3 @@ - [Using the sliding() and grouped() Methods With Scala Collections](https://www.baeldung.com/scala/sliding-grouped-methods-with-collections) - [Introduction to BitSet in Scala](https://www.baeldung.com/scala/bitiset) - [zip(), zipAll(), and zipWithIndex() Methods in Scala](https://www.baeldung.com/scala/zip-zipall-zipwithindex) -- [Convert Java List to Scala Seq](https://www.baeldung.com/scala/java-list-seq-conversion) From ea93a20283c59be225af7ebe94f60dd94c297070 Mon Sep 17 00:00:00 2001 From: Loredana Crusoveanu Date: Tue, 23 Jul 2024 14:22:15 +0300 Subject: [PATCH 0743/1318] Update README.md --- .../scala-core-collections-4/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-core-collections-modules/scala-core-collections-4/README.md b/scala-core-collections-modules/scala-core-collections-4/README.md index 819deefc3..b8c34ac81 100644 --- a/scala-core-collections-modules/scala-core-collections-4/README.md +++ b/scala-core-collections-modules/scala-core-collections-4/README.md @@ -2,3 +2,4 @@ - [Using filter() and takeWhile() With Collections in Scala](https://www.baeldung.com/scala/filter-takewhile) - [Finding Elements in a List using takeWhile() and dropWhile() in Scala](https://www.baeldung.com/scala/list-find-takewhile-dropwhile) - [Calculate the Average of a List in Scala](https://www.baeldung.com/scala/list-compute-mean-value) +- [Convert Java List to Scala Seq](https://www.baeldung.com/scala/java-list-seq-conversion) From a2256beaa0c7b7e28bcd10560ff6d2db84f3f35a Mon Sep 17 00:00:00 2001 From: baovitt Date: Tue, 23 Jul 2024 09:56:02 -0400 Subject: [PATCH 0744/1318] initial commit --- build.sbt | 5 +++ scala-libraries/README.md | 3 +- .../com/baeldung/elasticmq/DirectClient.scala | 5 +++ .../com/baeldung/elasticmq/RestClient.scala | 31 +++++++++++++++++++ 4 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 scala-libraries/src/main/scala/com/baeldung/elasticmq/DirectClient.scala create mode 100644 scala-libraries/src/main/scala/com/baeldung/elasticmq/RestClient.scala diff --git a/build.sbt b/build.sbt index 9590494e1..883ccfd47 100644 --- a/build.sbt +++ b/build.sbt @@ -439,6 +439,11 @@ lazy val scala_libraries = (project in file("scala-libraries")) "nl.gn0s1s" %% "elastic4s-core" % elastic4sVersion, logback ), + libraryDependencies ++= Seq( + "org.elasticmq" %% "elasticmq-core" % "1.6.5", + "org.elasticmq" %% "elasticmq-server" % "1.6.5", + "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.5" + ), Defaults.itSettings ) diff --git a/scala-libraries/README.md b/scala-libraries/README.md index 40012dfc6..d74729b54 100644 --- a/scala-libraries/README.md +++ b/scala-libraries/README.md @@ -7,4 +7,5 @@ - [A Guide to the Scala Retry Library](https://www.baeldung.com/scala/retry-library) - [Introduction to Apache Log4j in Scala](https://www.baeldung.com/scala/apache-log4j) - [Logging in Scala Applications Using Scala-Logging](https://www.baeldung.com/scala/scala-logging) -- [AWScala – AWS SDK for Scala](https://www.baeldung.com/scala/awscala-aws-sdk-for-scala) \ No newline at end of file +- [AWScala – AWS SDK for Scala](https://www.baeldung.com/scala/awscala-aws-sdk-for-scala) +- [Introduction to ElasticMQ] https://baeldung.com/scala/introduction-to-elasticmq \ No newline at end of file diff --git a/scala-libraries/src/main/scala/com/baeldung/elasticmq/DirectClient.scala b/scala-libraries/src/main/scala/com/baeldung/elasticmq/DirectClient.scala new file mode 100644 index 000000000..88eeb19fa --- /dev/null +++ b/scala-libraries/src/main/scala/com/baeldung/elasticmq/DirectClient.scala @@ -0,0 +1,5 @@ +package com.baeldung.elasticmq + +// val config = ConfigFactory.load("elasticmq.conf") +// val server = new ElasticMQServer(new ElasticMQServerConfig(config)) +// server.start() \ No newline at end of file diff --git a/scala-libraries/src/main/scala/com/baeldung/elasticmq/RestClient.scala b/scala-libraries/src/main/scala/com/baeldung/elasticmq/RestClient.scala new file mode 100644 index 000000000..308879206 --- /dev/null +++ b/scala-libraries/src/main/scala/com/baeldung/elasticmq/RestClient.scala @@ -0,0 +1,31 @@ +package com.baeldung.elasticmq + +import org.elasticmq.rest.sqs.SQSRestServerBuilder +import org.elasticmq.server.ElasticMQServer +import org.elasticmq.server.config.ElasticMQServerConfig + +import com.typesafe.config.ConfigFactory + +import org.apache.pekko.actor.{Actor, ActorRef, ActorSystem} +import org.apache.pekko.event.LoggingAdapter + +implicit val actorSystem: ActorSystem = ActorSystem.create() +implicit val executionContext: concurrent.ExecutionContextExecutor = actorSystem.dispatcher +implicit val m_logger: LoggingAdapter = actorSystem.log + +// class QueueActor extends Actor: +// val messageQueue: mutable.PriorityQueue[InternalMessage]() +// val awaiting: mutable.PriorityQueue[ActorRef]() + +// def receive = case ReceiveMessages => + + +// val result: Future[ActorRef] = flow: +// (queueManager ? Lookup(name)).apply() match +// case Some(queueActor) => queueActor +// case None => (queueManager ? Create(name)).apply() + +lazy val server = SQSRestServerBuilder + .withPort(9325) + .withInterface("localhost") + .start() \ No newline at end of file From 34a81f8527bab413bb49a98b8379adbd93c55e1c Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 23 Jul 2024 19:47:03 +0200 Subject: [PATCH 0745/1318] Implemenation for camel to snake case conversion --- .../cameltosnake/CamelToSnakeConversion.scala | 65 +++++++++++++++++++ .../CamelToSnakeConversionUnitTest.scala | 59 +++++++++++++++++ 2 files changed, 124 insertions(+) create mode 100644 scala-core-modules/scala-strings-2/src/main/scala/com/baeldung/scala/strings/cameltosnake/CamelToSnakeConversion.scala create mode 100644 scala-core-modules/scala-strings-2/src/test/scala/com/baeldung/scala/strings/cameltosnake/CamelToSnakeConversionUnitTest.scala diff --git a/scala-core-modules/scala-strings-2/src/main/scala/com/baeldung/scala/strings/cameltosnake/CamelToSnakeConversion.scala b/scala-core-modules/scala-strings-2/src/main/scala/com/baeldung/scala/strings/cameltosnake/CamelToSnakeConversion.scala new file mode 100644 index 000000000..33cd3d069 --- /dev/null +++ b/scala-core-modules/scala-strings-2/src/main/scala/com/baeldung/scala/strings/cameltosnake/CamelToSnakeConversion.scala @@ -0,0 +1,65 @@ +package com.baeldung.scala.strings.cameltosnake + +import scala.annotation.tailrec + +object CamelToSnakeConversion { + + def usingRegex(camelCaseString: String): String = { + val regex = "([A-Z])".r + regex.replaceAllIn( + camelCaseString, + m => s"_${m.group(1).toLowerCase}" + ) + } + + def usingFoldLeft(camelCaseString: String): String = { + camelCaseString.foldLeft("") { (acc, char) => + if (char.isUpper) { + if (acc.isEmpty) char.toLower.toString + else acc + "_" + char.toLower + } else { + acc + char + } + } + } + + def handleAcronymsWithRegex(camelCaseString: String): String = { + camelCaseString + .replaceAll("([A-Z]+)([A-Z][a-z])", "$1_$2") + .replaceAll("([a-z\\d])([A-Z])", "$1_$2") + .toLowerCase + } + + def usingFlatMap(camelCase: String): String = { + camelCase + .flatMap { c => + if (c.isUpper) List('_', c) else List(c) + } + .mkString + .toLowerCase + } + + def usingPatternMatching(camelCase: String): String = { + @tailrec + def rec(chars: List[Char], acc: List[Char]): List[Char] = { + chars match { + case Nil => acc + case a :: tail if a.isUpper => rec(tail, acc ++ Seq('_', a)) + case a :: tail => rec(tail, acc ++ Seq(a)) + } + } + rec(camelCase.toList, Nil).mkString.toLowerCase + } + + def usingCollect(camelCase: String): String = { + camelCase + .collect { + case c if c.isUpper => Seq('_', c) + case c => Seq(c) + } + .flatten + .mkString + .toLowerCase + } + +} diff --git a/scala-core-modules/scala-strings-2/src/test/scala/com/baeldung/scala/strings/cameltosnake/CamelToSnakeConversionUnitTest.scala b/scala-core-modules/scala-strings-2/src/test/scala/com/baeldung/scala/strings/cameltosnake/CamelToSnakeConversionUnitTest.scala new file mode 100644 index 000000000..1d19b5521 --- /dev/null +++ b/scala-core-modules/scala-strings-2/src/test/scala/com/baeldung/scala/strings/cameltosnake/CamelToSnakeConversionUnitTest.scala @@ -0,0 +1,59 @@ +package com.baeldung.scala.strings.cameltosnake + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers +import org.scalatest.prop.TableDrivenPropertyChecks + +class CamelToSnakeConversionUnitTest + extends AnyFlatSpec + with Matchers + with TableDrivenPropertyChecks { + + private val table = Table( + ("input", "expected"), + ("thisIsCamelCase", "this_is_camel_case"), + ("isThisCamel?", "is_this_camel?"), + ("alllower", "alllower"), + ("thisIsUSA", "this_is_u_s_a"), + ("xmlHttpRequest", "xml_http_request"), + ("convertXMLToJSON", "convert_x_m_l_to_j_s_o_n"), + ("parseHTML", "parse_h_t_m_l"), + ("classOfT", "class_of_t") + ) + private val fns = Seq( + ("usingRegex", CamelToSnakeConversion.usingRegex), + ("usingFoldLeft", CamelToSnakeConversion.usingFoldLeft), + ("usingFlatMap", CamelToSnakeConversion.usingFlatMap), + ("usingPatterMatching", CamelToSnakeConversion.usingPatternMatching), + ("usingCollect", CamelToSnakeConversion.usingCollect) + ) + + it should "convert camel to snake case" in { + forAll(table) { (camel, expectedSnake) => + fns.map { (name, fn) => + withClue("function name: " + name) { + fn(camel) shouldBe expectedSnake + } + } + } + } + + it should "handle camel case starting with upper case character" in { + val output = CamelToSnakeConversion.usingRegex("HelloWorld") + output.stripPrefix("_") shouldBe "hello_world" + } + + it should "handle special case" in { + Seq( + ("HelloWorld", "hello_world"), + ("thisIsUSA", "this_is_usa"), + ("convertXMLToJSON", "convert_xml_to_json"), + ("xmlToHTTPRequest", "xml_to_http_request") + ).map { (in, out) => + val output = CamelToSnakeConversion.handleAcronymsWithRegex(in) + output shouldBe out + } + + } + +} From 0c4601136955ba8dd9a4d5c26c18bdab550a30cf Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Thu, 25 Jul 2024 22:52:20 +0200 Subject: [PATCH 0746/1318] String concat operations in scala --- .../concatstrings/ConcatStringUnitTest.scala | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 scala-core-modules/scala-strings-2/src/test/scala/com/baeldung/scala/strings/concatstrings/ConcatStringUnitTest.scala diff --git a/scala-core-modules/scala-strings-2/src/test/scala/com/baeldung/scala/strings/concatstrings/ConcatStringUnitTest.scala b/scala-core-modules/scala-strings-2/src/test/scala/com/baeldung/scala/strings/concatstrings/ConcatStringUnitTest.scala new file mode 100644 index 000000000..8d76930ee --- /dev/null +++ b/scala-core-modules/scala-strings-2/src/test/scala/com/baeldung/scala/strings/concatstrings/ConcatStringUnitTest.scala @@ -0,0 +1,78 @@ +package com.baeldung.scala.strings.concatstrings + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers + +class ConcatStringUnitTest extends AnyFlatSpec with Matchers { + + it should "concat strings using + operator" in { + val str1 = "Hello" + val str2 = "Baeldung" + val combined = str1 + str2 + combined shouldBe "HelloBaeldung" + } + + it should "concat string with another type using + operator" in { + val str1 = "Hello" + val combined = str1 + 10 + combined shouldBe "Hello10" + } + + it should "concat strings using ++ operator" in { + val str1 = "Hello" + val str2 = "Baeldung" + val combined = str1 ++ str2 + combined shouldBe "HelloBaeldung" + } + + it should "concat strings using concat" in { + val str1 = "Hello" + val str2 = "Baeldung" + val combined = str1.concat(str2) + combined shouldBe "HelloBaeldung" + } + + it should "concat strings using string interpolation" in { + val str1 = "Hello" + val str2 = "Baeldung" + val combined = s"$str1$str2" + combined shouldBe "HelloBaeldung" + } + + it should "concat strings using multi line string interpolation" in { + val str1 = "Hello" + val str2 = "Baeldung" + val combined = s"""$str1$str2""" + combined shouldBe "HelloBaeldung" + } + + it should "concat strings using StringBuilder" in { + val str1 = "Hello" + val str2 = "Baeldung" + val combined = new StringBuilder().append(str1).append(str2).toString() + combined shouldBe "HelloBaeldung" + } + + it should "concat strings using mkString" in { + val strings = Seq("Hello", "Baeldung") + val combined = strings.mkString + combined shouldBe "HelloBaeldung" + strings.mkString(",") shouldBe "Hello,Baeldung" + } + + it should "concat strings using reduce" in { + val strings = Seq("Hello", "Baeldung") + val combined = strings.reduce(_ + _) + combined shouldBe "HelloBaeldung" + val combinedWithComma = strings.reduce((a, b) => (a + "," + b)) + combinedWithComma shouldBe "Hello,Baeldung" + } + + it should "concat strings using foldLeft" in { + val strings = Seq("Hello", "Baeldung") + val combined = strings.foldLeft("")(_ + _) + combined shouldBe "HelloBaeldung" + List.empty[String].foldLeft("")(_ + _) shouldBe "" + } + +} From 8a4c31dfdcb4d36d34e25fdd9495c7442931f3dd Mon Sep 17 00:00:00 2001 From: baovitt Date: Sun, 28 Jul 2024 09:28:46 -0400 Subject: [PATCH 0747/1318] more code --- build.sbt | 3 +- .../src/main/resources/elasticmq.conf | 52 +++++ .../baeldung/elasticmq/AsyncSQSClient.scala | 221 ++++++++++++++++++ .../com/baeldung/elasticmq/DirectClient.scala | 2 +- .../baeldung/elasticmq/ElasticMQConfig.scala | 15 ++ .../baeldung/elasticmq/ElasticMQService.scala | 56 +++++ .../com/baeldung/elasticmq/RestClient.scala | 31 --- 7 files changed, 347 insertions(+), 33 deletions(-) create mode 100644 scala-libraries/src/main/resources/elasticmq.conf create mode 100644 scala-libraries/src/main/scala/com/baeldung/elasticmq/AsyncSQSClient.scala create mode 100644 scala-libraries/src/main/scala/com/baeldung/elasticmq/ElasticMQConfig.scala create mode 100644 scala-libraries/src/main/scala/com/baeldung/elasticmq/ElasticMQService.scala delete mode 100644 scala-libraries/src/main/scala/com/baeldung/elasticmq/RestClient.scala diff --git a/build.sbt b/build.sbt index 883ccfd47..511434105 100644 --- a/build.sbt +++ b/build.sbt @@ -442,7 +442,8 @@ lazy val scala_libraries = (project in file("scala-libraries")) libraryDependencies ++= Seq( "org.elasticmq" %% "elasticmq-core" % "1.6.5", "org.elasticmq" %% "elasticmq-server" % "1.6.5", - "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.5" + "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.5", + "software.amazon.awssdk" % "sqs" % "2.26.24" ), Defaults.itSettings ) diff --git a/scala-libraries/src/main/resources/elasticmq.conf b/scala-libraries/src/main/resources/elasticmq.conf new file mode 100644 index 000000000..99649fe40 --- /dev/null +++ b/scala-libraries/src/main/resources/elasticmq.conf @@ -0,0 +1,52 @@ +# What is the outside visible address of this ElasticMQ node +# Used to create the queue URL (may be different from bind address!) +node-address { + protocol = http + host = localhost + port = 9324 + context-path = "" +} + +rest-sqs { + enabled = true + bind-port = 9324 + bind-hostname = "0.0.0.0" + // Possible values: relaxed, strict + sqs-limits = strict +} + +rest-stats { + enabled = true + bind-port = 9325 + bind-hostname = "0.0.0.0" +} + +// Should the node-address be generated from the bind port/hostname +// Set this to true e.g. when assigning port automatically by using port 0. +generate-node-address = false + +queues { + queue1 { + defaultVisibilityTimeout = 10 seconds + delay = 0 seconds + receiveMessageWait = 0 seconds + deadLettersQueue { + name = "queue1-dead-letters" + maxReceiveCount = 3 // from 1 to 1000 + } + fifo = false + contentBasedDeduplication = false + tags { + tag1 = "tagged1" + tag2 = "tagged2" + } + } + queue1-dead-letters { } +} + +elastic-mq { + region = "elasticMQ" + endPoint = "http://localhost:9325" + access-key-id = "your aws access key id" + secret-access-key = "secret-access-token" +} \ No newline at end of file diff --git a/scala-libraries/src/main/scala/com/baeldung/elasticmq/AsyncSQSClient.scala b/scala-libraries/src/main/scala/com/baeldung/elasticmq/AsyncSQSClient.scala new file mode 100644 index 000000000..80b584cd8 --- /dev/null +++ b/scala-libraries/src/main/scala/com/baeldung/elasticmq/AsyncSQSClient.scala @@ -0,0 +1,221 @@ +package com.baeldung.elasticmq + +import software.amazon.awssdk.auth.credentials.{ + AwsBasicCredentials, + AwsCredentialsProviderChain, + StaticCredentialsProvider +} +import software.amazon.awssdk.regions.Region +import software.amazon.awssdk.services.sqs.model.* +import software.amazon.awssdk.services.sqs.{ + SqsAsyncClient, + SqsAsyncClientBuilder +} + +import java.net.URI +import java.util.UUID + +import scala.concurrent.{ExecutionContext, Future} +import scala.jdk.FutureConverters.* +import scala.jdk.CollectionConverters.* + +class SQSAsyncClient( + queueURL: String, + region: String, + endpoint: String +)(implicit executionContext: ExecutionContext): + + private val sqsAsyncClient: SqsAsyncClient = + SqsAsyncClient + .builder() + .region(Region.of(region)) + .credentialsProvider( + AwsCredentialsProviderChain + .builder() + .credentialsProviders( + StaticCredentialsProvider.create( + AwsBasicCredentials.create( + ElasticMQConfig.ELASTIC_MQ_ACCESS_KEY, + ElasticMQConfig.ELASTIC_MQ_SECRET_ACCESS_KEY + ) + ) + ) + .build() + ) + .endpointOverride(URI.create(endpoint)) + .build() + + def createStandardQueue(queueName: String): Future[CreateQueueResponse] = + val request = CreateQueueRequest.builder.queueName(queueName).build + + sqsAsyncClient.createQueue(request).asScala + + final lazy val createFIFOQueueAttributes = Map( + (QueueAttributeName.FIFO_QUEUE, "true") + ).asJava + + def createFIFOQueue(queueName: String): Future[CreateQueueResponse] = + val createQueueRequest = CreateQueueRequest.builder + .queueName(queueName) + .attributes(createFIFOQueueAttributes) + .build + + sqsAsyncClient.createQueue(createQueueRequest).asScala + + def deleteQueue(): Future[DeleteQueueResponse] = + val request = DeleteQueueRequest.builder().queueUrl(queueURL).build() + + sqsAsyncClient.deleteQueue(request).asScala + + def sendMessage(message: String): Future[SendMessageResponse] = + val request = SendMessageRequest + .builder() + .messageBody(message) + .queueUrl(queueURL) + .build() + + sqsAsyncClient.sendMessage(request).asScala + + def sendMessagesInBatch( + messages: List[String] + ): Future[SendMessageBatchResponse] = + val batchRequestEntry = messages + .map( + SendMessageBatchRequestEntry + .builder() + .messageBody(_) + .id(UUID.randomUUID().toString) + .build() + ) + .asJava + val sendMessageBatchRequest = SendMessageBatchRequest + .builder() + .queueUrl(queueURL) + .entries(batchRequestEntry) + .build() + + sqsAsyncClient.sendMessageBatch(sendMessageBatchRequest).asScala + + // maxNumberOfMessages must be less than 10. + def receiveMessages( + maxNumberOfMessages: Int + ): Future[ReceiveMessageResponse] = + val receiveMessageRequest = + ReceiveMessageRequest + .builder() + .maxNumberOfMessages(maxNumberOfMessages) + .queueUrl(queueURL) + .waitTimeSeconds(10) + .build() + + sqsAsyncClient.receiveMessage(receiveMessageRequest).asScala + + def deleteMessage(receiptHandle: String): Future[DeleteMessageResponse] = + val deleteMessageRequest = DeleteMessageRequest + .builder() + .queueUrl(queueURL) + .receiptHandle(receiptHandle) + .build() + + sqsAsyncClient.deleteMessage(deleteMessageRequest).asScala + + def deleteMessageInBatch( + messages: List[Message] + ): Future[DeleteMessageBatchResponse] = + val listDeleteMessageBatchRequestEntry = messages + .map(message => + DeleteMessageBatchRequestEntry + .builder() + .receiptHandle(message.receiptHandle()) + .build() + ) + .asJava + val deleteMessageBatchRequest = DeleteMessageBatchRequest + .builder() + .queueUrl(queueURL) + .entries(listDeleteMessageBatchRequestEntry) + .build() + + sqsAsyncClient.deleteMessageBatch(deleteMessageBatchRequest).asScala + + def getQueueURL(queueName: String): Future[GetQueueUrlResponse] = + val getQueueUrlRequest = + GetQueueUrlRequest.builder().queueName(queueName).build() + + sqsAsyncClient.getQueueUrl(getQueueUrlRequest).asScala + + def listQueues(): Future[ListQueuesResponse] = + sqsAsyncClient.listQueues().asScala + + def listQueuesStartingFromPrefix(prefix: String): Future[ListQueuesResponse] = + val listQueueStartingFromPrefixRequest = + ListQueuesRequest.builder().queueNamePrefix(prefix).build() + + sqsAsyncClient.listQueues(listQueueStartingFromPrefixRequest).asScala + + def changeMessageVisibility( + message: Message + ): Future[ChangeMessageVisibilityResponse] = + val changeMessageVisibilityRequest = ChangeMessageVisibilityRequest + .builder() + .queueUrl(queueURL) + .receiptHandle(message.receiptHandle()) + .visibilityTimeout(30) + .build() + + sqsAsyncClient + .changeMessageVisibility(changeMessageVisibilityRequest) + .asScala + + def changeMessageVisibilityOfBatch( + messages: List[Message] + ): Future[ChangeMessageVisibilityBatchResponse] = + val changeMessageVisibilityBatchRequestEntry = messages + .map(message => + ChangeMessageVisibilityBatchRequestEntry + .builder() + .receiptHandle(message.receiptHandle()) + .visibilityTimeout(30) + .build() + ) + .asJava + val changeMessageVisibilityRequest = ChangeMessageVisibilityBatchRequest + .builder() + .queueUrl(queueURL) + .entries(changeMessageVisibilityBatchRequestEntry) + .build() + + sqsAsyncClient + .changeMessageVisibilityBatch(changeMessageVisibilityRequest) + .asScala + + final lazy val purgeQueueRequest = + PurgeQueueRequest.builder().queueUrl(queueURL).build() + def purgeQueue(): Future[PurgeQueueResponse] = + sqsAsyncClient.purgeQueue(purgeQueueRequest).asScala + + def setQueueAttributes( + attributes: Map[QueueAttributeName, String] + ): Future[SetQueueAttributesResponse] = + val setQueueAttributesRequest = SetQueueAttributesRequest + .builder() + .queueUrl(queueURL) + .attributes(attributes.asJava) + .build() + + sqsAsyncClient.setQueueAttributes(setQueueAttributesRequest).asScala + + def tagQueue(tags: Map[String, String]): Future[TagQueueResponse] = + val tagQueueRequest = + TagQueueRequest.builder().queueUrl(queueURL).tags(tags.asJava).build() + + sqsAsyncClient.tagQueue(tagQueueRequest).asScala + + def untagQueue(listOfTagsToRemove: List[String]): Future[UntagQueueResponse] = + val untagQueueRequest = UntagQueueRequest + .builder() + .queueUrl(queueURL) + .tagKeys(listOfTagsToRemove.asJava) + .build() + + sqsAsyncClient.untagQueue(untagQueueRequest).asScala diff --git a/scala-libraries/src/main/scala/com/baeldung/elasticmq/DirectClient.scala b/scala-libraries/src/main/scala/com/baeldung/elasticmq/DirectClient.scala index 88eeb19fa..226139b9f 100644 --- a/scala-libraries/src/main/scala/com/baeldung/elasticmq/DirectClient.scala +++ b/scala-libraries/src/main/scala/com/baeldung/elasticmq/DirectClient.scala @@ -2,4 +2,4 @@ package com.baeldung.elasticmq // val config = ConfigFactory.load("elasticmq.conf") // val server = new ElasticMQServer(new ElasticMQServerConfig(config)) -// server.start() \ No newline at end of file +// server.start() diff --git a/scala-libraries/src/main/scala/com/baeldung/elasticmq/ElasticMQConfig.scala b/scala-libraries/src/main/scala/com/baeldung/elasticmq/ElasticMQConfig.scala new file mode 100644 index 000000000..58ac2f5e4 --- /dev/null +++ b/scala-libraries/src/main/scala/com/baeldung/elasticmq/ElasticMQConfig.scala @@ -0,0 +1,15 @@ +package com.baeldung.elasticmq + +import com.typesafe.config.{Config, ConfigFactory} + +object ElasticMQConfig: + + private final val config: Config = ConfigFactory.load("elasticmq.conf") + + final val ELASTIC_MQ_ACCESS_KEY: String = + config.getString("elastic-mq.access-key-id") + final val ELASTIC_MQ_SECRET_ACCESS_KEY: String = + config.getString("elastic-mq.secret-access-key") + + final val ELASTIC_MQ_REGION = config.getString("elastic-mq.region") + final val ELASTIC_MQ_ENDPOINT = config.getString("elastic-mq.endPoint") diff --git a/scala-libraries/src/main/scala/com/baeldung/elasticmq/ElasticMQService.scala b/scala-libraries/src/main/scala/com/baeldung/elasticmq/ElasticMQService.scala new file mode 100644 index 000000000..64b99420e --- /dev/null +++ b/scala-libraries/src/main/scala/com/baeldung/elasticmq/ElasticMQService.scala @@ -0,0 +1,56 @@ +package com.baeldung.elasticmq + +import org.elasticmq.rest.sqs.SQSRestServerBuilder +import org.elasticmq.server.ElasticMQServer +import org.elasticmq.server.config.ElasticMQServerConfig + +import com.typesafe.config.ConfigFactory + +import org.apache.pekko.actor.{Actor, ActorRef, ActorSystem} +import org.apache.pekko.event.LoggingAdapter + +import scala.util.{Failure, Success} + +object ElasticMQService extends App: + + implicit val actorSystem: ActorSystem = ActorSystem.create() + implicit val executionContext: concurrent.ExecutionContextExecutor = + actorSystem.dispatcher + implicit val m_logger: LoggingAdapter = actorSystem.log + + final val ElasticMQ_URL = s"http://localhost:9324/000000000000/" + + val endpoint = "http://localhost:9325" + val region = "elasticmq" + + val server = SQSRestServerBuilder + .withPort(9325) + .withInterface("localhost") + .start() + + val elasticMQClient = new SQSAsyncClient(ElasticMQ_URL, region, endpoint) + + val uselessWorkflow = + for + _ <- elasticMQClient.createStandardQueue("standardQueueForTest") + testQueueClient = new SQSAsyncClient( + ElasticMQ_URL + "standardQueueForTest", + region, + endpoint + ) + _ <- testQueueClient.createFIFOQueue("fifoQueue.fifo") + _ <- testQueueClient.listQueues() + _ <- testQueueClient.sendMessage("Hi") + _ <- testQueueClient.sendMessagesInBatch( + List("Follow", "Baeldung", "on", "LinkedIn") + ) + _ <- testQueueClient.receiveMessages(5) + _ <- testQueueClient.purgeQueue() + yield () + + uselessWorkflow + .andThen(_ => server.stopAndWait()) + .onComplete: + case Success(_) => m_logger.info("queue created") + case Failure(exception) => + m_logger.error(exception, "exception in uselessWorkflow") diff --git a/scala-libraries/src/main/scala/com/baeldung/elasticmq/RestClient.scala b/scala-libraries/src/main/scala/com/baeldung/elasticmq/RestClient.scala deleted file mode 100644 index 308879206..000000000 --- a/scala-libraries/src/main/scala/com/baeldung/elasticmq/RestClient.scala +++ /dev/null @@ -1,31 +0,0 @@ -package com.baeldung.elasticmq - -import org.elasticmq.rest.sqs.SQSRestServerBuilder -import org.elasticmq.server.ElasticMQServer -import org.elasticmq.server.config.ElasticMQServerConfig - -import com.typesafe.config.ConfigFactory - -import org.apache.pekko.actor.{Actor, ActorRef, ActorSystem} -import org.apache.pekko.event.LoggingAdapter - -implicit val actorSystem: ActorSystem = ActorSystem.create() -implicit val executionContext: concurrent.ExecutionContextExecutor = actorSystem.dispatcher -implicit val m_logger: LoggingAdapter = actorSystem.log - -// class QueueActor extends Actor: -// val messageQueue: mutable.PriorityQueue[InternalMessage]() -// val awaiting: mutable.PriorityQueue[ActorRef]() - -// def receive = case ReceiveMessages => - - -// val result: Future[ActorRef] = flow: -// (queueManager ? Lookup(name)).apply() match -// case Some(queueActor) => queueActor -// case None => (queueManager ? Create(name)).apply() - -lazy val server = SQSRestServerBuilder - .withPort(9325) - .withInterface("localhost") - .start() \ No newline at end of file From 3e77bd37f704b7ad5d7f2f49115d73bcf9449916 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2024 00:15:56 +0000 Subject: [PATCH 0748/1318] Update aws-java-sdk-s3 from 1.12.762 to 1.12.765 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 9590494e1..c7d578d05 100644 --- a/build.sbt +++ b/build.sbt @@ -539,7 +539,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) scalaMock, "com.lihaoyi" %% "utest" % "0.8.3" % "test", munitDep, - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.762" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.765" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.26.21" From c54059743062f2c71bf51db144e1e94ca4e6081a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2024 00:16:06 +0000 Subject: [PATCH 0749/1318] Update requests from 0.8.3 to 0.9.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 9590494e1..54cac957c 100644 --- a/build.sbt +++ b/build.sbt @@ -432,7 +432,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) ), libraryDependencies ++= Seq( akkaTypedTestkit, - "com.lihaoyi" %% "requests" % "0.8.3" + "com.lihaoyi" %% "requests" % "0.9.0" ), libraryDependencies ++= Seq( "nl.gn0s1s" %% "elastic4s-client-esjava" % elastic4sVersion, From 94359276a776ba1a1a93c8f8f918db076a31b168 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2024 00:16:20 +0000 Subject: [PATCH 0750/1318] Update tapir-akka-http-server, tapir-core, ... from 1.10.14 to 1.10.15 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index 58306a96c..66a655d16 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.10.14" +val tapirV = "1.10.15" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From 947c155f4104c1076bff77d2c7cba6766a3e3f4c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2024 00:16:38 +0000 Subject: [PATCH 0751/1318] Update de.flapdoodle.embed.mongo from 4.16.1 to 4.16.2 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 9590494e1..a1c4f8576 100644 --- a/build.sbt +++ b/build.sbt @@ -8,7 +8,7 @@ val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.4" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.4" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV val logback = "ch.qos.logback" % "logback-classic" % "1.5.6" -val embedMongoVersion = "4.16.1" +val embedMongoVersion = "4.16.2" val AkkaVersion = "2.8.5" val AkkaHttpVersion = "10.5.0" From 51df802617990ba772434277c3b2c4237a406426 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2024 00:16:47 +0000 Subject: [PATCH 0752/1318] Update kafka-avro-serializer from 7.6.2 to 7.7.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 9590494e1..4e72d9c81 100644 --- a/build.sbt +++ b/build.sbt @@ -502,7 +502,7 @@ val jackSonVersion = "2.17.2" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" -val kafkaAvroSerializer = "7.6.2" +val kafkaAvroSerializer = "7.7.0" val pureConfigDep = "com.github.pureconfig" %% "pureconfig" % pureconfigVersion From c18aacd187b67ee0b09be5b3fe652c5124ff722e Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2024 00:17:09 +0000 Subject: [PATCH 0753/1318] Update kafka-clients from 7.6.2-ce to 7.7.0-ce --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 9590494e1..e30472e1d 100644 --- a/build.sbt +++ b/build.sbt @@ -496,7 +496,7 @@ lazy val refined = (project in file("scala-libraries-standalone/refined")) ) val spireVersion = "0.18.0" -val kafkaVersion = "7.6.2-ce" +val kafkaVersion = "7.7.0-ce" val pureconfigVersion = "0.17.7" val jackSonVersion = "2.17.2" val log4jApiScalaVersion = "13.1.0" From 61489be4e3542399e9284c0a02a2226f9c909a46 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2024 00:17:16 +0000 Subject: [PATCH 0754/1318] Update play-ahc-ws, play-caffeine-cache, ... from 3.0.4 to 3.0.5 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index 1334fa7b2..ded32db25 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -7,7 +7,7 @@ addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.2.1") libraryDependencies += "ai.kien" %% "python-native-libs" % "0.2.4" // Make sure to keep the play plugin in sync with the sub modules under play-scala group -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.4") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.5") addSbtPlugin("org.playframework.twirl" % "sbt-twirl" % "2.0.1") addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "4.2.1") From 67249c853c31a9379be1d760c4304d7fd48704b0 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2024 00:17:34 +0000 Subject: [PATCH 0755/1318] Update s3 from 2.26.21 to 2.26.25 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 9590494e1..dc92b249b 100644 --- a/build.sbt +++ b/build.sbt @@ -542,7 +542,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.762" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.26.21" + "software.amazon.awssdk" % "s3" % "2.26.25" ), Defaults.itSettings, IntegrationTest / fork := true From 5bc06e3eeba25ffa364fea0e360dc0d8baf05d5d Mon Sep 17 00:00:00 2001 From: baovitt Date: Mon, 29 Jul 2024 12:31:51 -0400 Subject: [PATCH 0756/1318] elasticmq --- scala-core-modules/scala-core-9/README.md | 2 +- scala-libraries/README.md | 3 +-- .../src/main/scala/com/baeldung/elasticmq/DirectClient.scala | 5 ----- 3 files changed, 2 insertions(+), 8 deletions(-) delete mode 100644 scala-libraries/src/main/scala/com/baeldung/elasticmq/DirectClient.scala diff --git a/scala-core-modules/scala-core-9/README.md b/scala-core-modules/scala-core-9/README.md index 8b472c65a..9e6cdf898 100644 --- a/scala-core-modules/scala-core-9/README.md +++ b/scala-core-modules/scala-core-9/README.md @@ -6,4 +6,4 @@ - [Find Two’s Complement of a Number in Scala](https://www.baeldung.com/scala/compute-twos-complement) - [Convert Option to Either in Scala](https://www.baeldung.com/scala/option-either-conversion) - [Meaning of _root_ In Scala Import Clause](https://www.baeldung.com/scala/root-import-clause) -- [Check if All Characters in a Scala String Are Either Upper or Lower Case](https://www.baeldung.com/scala/string-check-all-characters-upper-lower-case) +- [Check if All Characters in a Scala String Are Either Upper or Lower Case](https://www.baeldung.com/scala/string-check-all-characters-upper-lower-case diff --git a/scala-libraries/README.md b/scala-libraries/README.md index d74729b54..40012dfc6 100644 --- a/scala-libraries/README.md +++ b/scala-libraries/README.md @@ -7,5 +7,4 @@ - [A Guide to the Scala Retry Library](https://www.baeldung.com/scala/retry-library) - [Introduction to Apache Log4j in Scala](https://www.baeldung.com/scala/apache-log4j) - [Logging in Scala Applications Using Scala-Logging](https://www.baeldung.com/scala/scala-logging) -- [AWScala – AWS SDK for Scala](https://www.baeldung.com/scala/awscala-aws-sdk-for-scala) -- [Introduction to ElasticMQ] https://baeldung.com/scala/introduction-to-elasticmq \ No newline at end of file +- [AWScala – AWS SDK for Scala](https://www.baeldung.com/scala/awscala-aws-sdk-for-scala) \ No newline at end of file diff --git a/scala-libraries/src/main/scala/com/baeldung/elasticmq/DirectClient.scala b/scala-libraries/src/main/scala/com/baeldung/elasticmq/DirectClient.scala deleted file mode 100644 index 226139b9f..000000000 --- a/scala-libraries/src/main/scala/com/baeldung/elasticmq/DirectClient.scala +++ /dev/null @@ -1,5 +0,0 @@ -package com.baeldung.elasticmq - -// val config = ConfigFactory.load("elasticmq.conf") -// val server = new ElasticMQServer(new ElasticMQServerConfig(config)) -// server.start() From cce365792cbbd7dea37ad2348ff46daeac927e2b Mon Sep 17 00:00:00 2001 From: baovitt Date: Mon, 29 Jul 2024 17:10:23 -0400 Subject: [PATCH 0757/1318] README fix --- scala-core-modules/scala-core-9/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-core-modules/scala-core-9/README.md b/scala-core-modules/scala-core-9/README.md index 9e6cdf898..8b472c65a 100644 --- a/scala-core-modules/scala-core-9/README.md +++ b/scala-core-modules/scala-core-9/README.md @@ -6,4 +6,4 @@ - [Find Two’s Complement of a Number in Scala](https://www.baeldung.com/scala/compute-twos-complement) - [Convert Option to Either in Scala](https://www.baeldung.com/scala/option-either-conversion) - [Meaning of _root_ In Scala Import Clause](https://www.baeldung.com/scala/root-import-clause) -- [Check if All Characters in a Scala String Are Either Upper or Lower Case](https://www.baeldung.com/scala/string-check-all-characters-upper-lower-case +- [Check if All Characters in a Scala String Are Either Upper or Lower Case](https://www.baeldung.com/scala/string-check-all-characters-upper-lower-case) From aab620aea8244e17e5fe0b89372c85c170a9c1dc Mon Sep 17 00:00:00 2001 From: bradovitt <166955351+bradovitt@users.noreply.github.com> Date: Mon, 5 Aug 2024 05:17:29 -0400 Subject: [PATCH 0758/1318] tasty-files-scala-3 (#1457) * tasty-files-scala-3 * formatting * a feigning hope --------- Co-authored-by: baovitt --- scala-core-modules/scala-core-9/README.md | 2 +- .../scala/tastyfiles/PowerMacro.scala | 30 +++++++++++++++++++ .../scala/tastyfiles/PowerMacroTest.scala | 15 ++++++++++ 3 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/tastyfiles/PowerMacro.scala create mode 100644 scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/tastyfiles/PowerMacroTest.scala diff --git a/scala-core-modules/scala-core-9/README.md b/scala-core-modules/scala-core-9/README.md index 8b472c65a..9e6cdf898 100644 --- a/scala-core-modules/scala-core-9/README.md +++ b/scala-core-modules/scala-core-9/README.md @@ -6,4 +6,4 @@ - [Find Two’s Complement of a Number in Scala](https://www.baeldung.com/scala/compute-twos-complement) - [Convert Option to Either in Scala](https://www.baeldung.com/scala/option-either-conversion) - [Meaning of _root_ In Scala Import Clause](https://www.baeldung.com/scala/root-import-clause) -- [Check if All Characters in a Scala String Are Either Upper or Lower Case](https://www.baeldung.com/scala/string-check-all-characters-upper-lower-case) +- [Check if All Characters in a Scala String Are Either Upper or Lower Case](https://www.baeldung.com/scala/string-check-all-characters-upper-lower-case diff --git a/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/tastyfiles/PowerMacro.scala b/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/tastyfiles/PowerMacro.scala new file mode 100644 index 000000000..be3da7db8 --- /dev/null +++ b/scala-core-modules/scala-core-9/src/main/scala/com/baeldung/scala/tastyfiles/PowerMacro.scala @@ -0,0 +1,30 @@ +package com.baeldung.scala.tastyfiles + +import scala.quoted.* + +object PowerMacro: + // The macro that unrolls the computation of powers and then generates the expression + inline def showAsPowerTerm(inline x: Double, n: Int): String = ${ + showAsTermImpl('x, 'n) + } + + // The actual implementation of the macro + private def showAsTermImpl(x: Expr[Double], n: Expr[Int])(using + Quotes + ): Expr[String] = + import quotes.reflect.* + + n.value match + case Some(num) => + val powerExpr = unrolledPowerCode(x, num) + Expr( + powerExpr.asTerm.toString + ) // Ensures that the asTerm method call is evaluated at compile-time + case None => + '{ "Error: 'n' must be a known constant at compile time." } + + // Helper method to unroll the power computation + def unrolledPowerCode(x: Expr[Double], n: Int)(using Quotes): Expr[Double] = + if n == 0 then '{ 1.0 } + else if n == 1 then x + else '{ $x * ${ unrolledPowerCode(x, n - 1) } } diff --git a/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/tastyfiles/PowerMacroTest.scala b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/tastyfiles/PowerMacroTest.scala new file mode 100644 index 000000000..fa5093073 --- /dev/null +++ b/scala-core-modules/scala-core-9/src/test/scala/com/baeldung/scala/tastyfiles/PowerMacroTest.scala @@ -0,0 +1,15 @@ +package com.baeldung.scala.tastyfiles + +import com.baeldung.scala.tastyfiles.* + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers + +class PowerMacroUnitTest extends AnyFlatSpec with Matchers: + + "PowerMacro.showAsPowerTerm" should "generate compile-time term structure" in: + val expr: String = PowerMacro.showAsPowerTerm(2.0, 3) + + expr == """ + Inlined(Ident(PowerMacro$),List(),Apply(Select(Inlined(EmptyTree,List(),Inlined(EmptyTree,List(),Literal(Constant(2.0)))),*),List(Inlined(EmptyTree,List(),Inlined(Ident(PowerMacro$),List(),Apply(Select(Inlined(EmptyTree,List(),Inlined(EmptyTree,List(),Literal(Constant(2.0)))),*),List(Inlined(EmptyTree,List(),Inlined(EmptyTree,List(),Literal(Constant(2.0))))))))))) + """.trim From 55d3ceebf0da7f562bcb05f95d0848dfa22ac2e7 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 6 Aug 2024 00:17:41 +0000 Subject: [PATCH 0759/1318] Update aws-java-sdk-s3 from 1.12.765 to 1.12.767 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ffc33fd68..adfcaf60f 100644 --- a/build.sbt +++ b/build.sbt @@ -539,7 +539,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) scalaMock, "com.lihaoyi" %% "utest" % "0.8.3" % "test", munitDep, - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.765" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.767" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.26.25" From eb6db6be3662638eb900092cfae285240b573aa9 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 6 Aug 2024 00:17:58 +0000 Subject: [PATCH 0760/1318] Update tapir-akka-http-server, tapir-core, ... from 1.10.15 to 1.11.0 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index 66a655d16..ddf650d64 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.10.15" +val tapirV = "1.11.0" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From c650b7e70c8f279a6feddadfb11660a4c8c5a121 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 6 Aug 2024 00:18:19 +0000 Subject: [PATCH 0761/1318] Update zio, zio-streams, zio-test, ... from 2.1.6 to 2.1.7 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ffc33fd68..d07bc031d 100644 --- a/build.sbt +++ b/build.sbt @@ -20,7 +20,7 @@ val scalaTestDeps = Seq( ) val scalaMock = "org.scalamock" %% "scalamock" % "6.0.0" % Test -val zioVersion = "2.1.6" +val zioVersion = "2.1.7" lazy val scala_core = (project in file("scala-core-modules/scala-core")) .settings( From 2c607c2055064922b8426c5e89510b532f1274b9 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 6 Aug 2024 00:18:49 +0000 Subject: [PATCH 0762/1318] Update pulsar from 1.20.0 to 1.20.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ffc33fd68..cebc1ebed 100644 --- a/build.sbt +++ b/build.sbt @@ -373,7 +373,7 @@ lazy val scala2_libraries = "org.scala-lang.modules" %% "scala-async" % "1.0.1", "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.9.1", "com.clever-cloud.pulsar4s" %% "pulsar4s-jackson" % "2.9.1", - "org.testcontainers" % "pulsar" % "1.20.0" % IntegrationTest, + "org.testcontainers" % "pulsar" % "1.20.1" % IntegrationTest, "org.apache.kafka" % "kafka-clients" % kafkaVersion, "com.fasterxml.jackson.core" % "jackson-databind" % jackSonVersion, "com.fasterxml.jackson.datatype" % "jackson-datatype-jsr310" % jackSonVersion, From 508c1fcea43130ee45bf10e6c4677bc448124e6c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 6 Aug 2024 00:19:03 +0000 Subject: [PATCH 0763/1318] Update jedis from 5.1.3 to 5.1.4 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ffc33fd68..7d212b632 100644 --- a/build.sbt +++ b/build.sbt @@ -474,7 +474,7 @@ lazy val redis_intro = libraryDependencies ++= scalaTestDeps .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( - "redis.clients" % "jedis" % "5.1.3", + "redis.clients" % "jedis" % "5.1.4", "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.14.1", "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % "it" ), From 5c37860fd9cf77d8890652ac810c4ae74c05afa8 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 6 Aug 2024 00:19:19 +0000 Subject: [PATCH 0764/1318] Update s3 from 2.26.25 to 2.26.30 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ffc33fd68..671bc6499 100644 --- a/build.sbt +++ b/build.sbt @@ -542,7 +542,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.765" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.26.25" + "software.amazon.awssdk" % "s3" % "2.26.30" ), Defaults.itSettings, IntegrationTest / fork := true From ef32a5a0b3ab7c90e767b3e7f9671bcccb893462 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 6 Aug 2024 09:49:04 +0200 Subject: [PATCH 0765/1318] addressed review comments --- .../scala/strings/concatstrings/ConcatStringUnitTest.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-core-modules/scala-strings-2/src/test/scala/com/baeldung/scala/strings/concatstrings/ConcatStringUnitTest.scala b/scala-core-modules/scala-strings-2/src/test/scala/com/baeldung/scala/strings/concatstrings/ConcatStringUnitTest.scala index 8d76930ee..79e71a894 100644 --- a/scala-core-modules/scala-strings-2/src/test/scala/com/baeldung/scala/strings/concatstrings/ConcatStringUnitTest.scala +++ b/scala-core-modules/scala-strings-2/src/test/scala/com/baeldung/scala/strings/concatstrings/ConcatStringUnitTest.scala @@ -49,7 +49,7 @@ class ConcatStringUnitTest extends AnyFlatSpec with Matchers { it should "concat strings using StringBuilder" in { val str1 = "Hello" val str2 = "Baeldung" - val combined = new StringBuilder().append(str1).append(str2).toString() + val combined = new StringBuilder(str1).append(str2).toString() combined shouldBe "HelloBaeldung" } From 7ebe797c614099738ddff2e8637c249cd42584da Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 00:16:03 +0000 Subject: [PATCH 0766/1318] Update h2 from 2.3.230 to 2.3.232 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index ecc636ffa..df5bc38b4 100644 --- a/build.sbt +++ b/build.sbt @@ -385,7 +385,7 @@ lazy val scala2_libraries = ), libraryDependencies ++= Seq( "com.typesafe.slick" %% "slick" % slickVersion, - "com.h2database" % "h2" % "2.3.230" + "com.h2database" % "h2" % "2.3.232" ), scalacOptions += "-Xasync", Defaults.itSettings @@ -565,7 +565,7 @@ lazy val scala_libraries_persistence = .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( "com.typesafe.slick" %% "slick" % slickVersion, - "com.h2database" % "h2" % "2.3.230", + "com.h2database" % "h2" % "2.3.232", "org.tpolecat" %% "skunk-core" % "0.6.4", doobieCore, doobiePGDep, From 58d0bf79834d6f316e51c5608cfe1b7e2032f9c6 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 00:16:18 +0000 Subject: [PATCH 0767/1318] Update utest from 0.8.3 to 0.8.4 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ecc636ffa..3e864ae8f 100644 --- a/build.sbt +++ b/build.sbt @@ -543,7 +543,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) libraryDependencies ++= Seq( "org.scalacheck" %% "scalacheck" % "1.18.0" % Test, scalaMock, - "com.lihaoyi" %% "utest" % "0.8.3" % "test", + "com.lihaoyi" %% "utest" % "0.8.4" % "test", munitDep, "com.amazonaws" % "aws-java-sdk-s3" % "1.12.767" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, From 0c69fb2ffb670e9defa484957b724e310655639f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 00:16:32 +0000 Subject: [PATCH 0768/1318] Update tapir-akka-http-server, tapir-core, ... from 1.11.0 to 1.11.1 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index ddf650d64..c4a6151a7 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.11.0" +val tapirV = "1.11.1" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From f18f554980f59d885617ca1d62a9378518d19a10 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 00:16:51 +0000 Subject: [PATCH 0769/1318] Update zio-json from 0.7.1 to 0.7.2 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index ecc636ffa..65d00e000 100644 --- a/build.sbt +++ b/build.sbt @@ -639,7 +639,7 @@ lazy val cats_effects = (project in file("cats-effects")) libraryDependencies += "junit" % "junit" % "4.13.2" % Test ) -val zioJsonDep = "dev.zio" %% "zio-json" % "0.7.1" +val zioJsonDep = "dev.zio" %% "zio-json" % "0.7.2" val zioTestSbt = "dev.zio" %% "zio-test-sbt" % zioVersion % Test lazy val zio = (project in file("zio")) @@ -661,7 +661,7 @@ lazy val zio2 = (project in file("zio-2")) name := "zio-2", scalaVersion := scala3Version, libraryDependencies += "dev.zio" %% "zio" % zioVersion, - libraryDependencies += "dev.zio" %% "zio-json" % "0.7.1", + libraryDependencies += "dev.zio" %% "zio-json" % "0.7.2", libraryDependencies += "dev.zio" %% "zio-test" % zioVersion % Test, libraryDependencies += "dev.zio" %% "zio-test-sbt" % zioVersion % Test, libraryDependencies ++= scalaTestDeps, From 674744e2fd40de9ca412bc487dacbc6a5d4ecd82 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 00:17:17 +0000 Subject: [PATCH 0770/1318] Update elastic4s-client-esjava, ... from 8.14.0 to 8.14.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ecc636ffa..2230e4a78 100644 --- a/build.sbt +++ b/build.sbt @@ -393,7 +393,7 @@ lazy val scala2_libraries = val circeVersion = "0.14.9" val monixVersion = "3.4.1" -val elastic4sVersion = "8.14.0" +val elastic4sVersion = "8.14.1" val sparkVersion = "3.5.1" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion From 61f1aac8e59f9c8afaad0e4a07b61a24d71ed07e Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 00:17:31 +0000 Subject: [PATCH 0771/1318] Update spark-core, spark-sql from 3.5.1 to 3.5.2 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ecc636ffa..d56212d9a 100644 --- a/build.sbt +++ b/build.sbt @@ -394,7 +394,7 @@ lazy val scala2_libraries = val circeVersion = "0.14.9" val monixVersion = "3.4.1" val elastic4sVersion = "8.14.0" -val sparkVersion = "3.5.1" +val sparkVersion = "3.5.2" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion val sparkSqlDep = "org.apache.spark" %% "spark-sql" % sparkVersion From d51e81d1b38ff6f04c1e382d9dbd62ec2b108f4c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 00:17:43 +0000 Subject: [PATCH 0772/1318] Update elasticmq-core, elasticmq-rest-sqs, ... from 1.6.5 to 1.6.6 --- build.sbt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index ecc636ffa..de113be4b 100644 --- a/build.sbt +++ b/build.sbt @@ -440,9 +440,9 @@ lazy val scala_libraries = (project in file("scala-libraries")) logback ), libraryDependencies ++= Seq( - "org.elasticmq" %% "elasticmq-core" % "1.6.5", - "org.elasticmq" %% "elasticmq-server" % "1.6.5", - "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.5", + "org.elasticmq" %% "elasticmq-core" % "1.6.6", + "org.elasticmq" %% "elasticmq-server" % "1.6.6", + "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.6", "software.amazon.awssdk" % "sqs" % "2.26.24" ), Defaults.itSettings From 0adf4a8089e098a29157b911ef111c023b0039da Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 00:17:59 +0000 Subject: [PATCH 0773/1318] Update mongo-scala-driver from 5.1.2 to 5.1.3 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ecc636ffa..fef439ea2 100644 --- a/build.sbt +++ b/build.sbt @@ -263,7 +263,7 @@ lazy val scala_akka_dependencies: Seq[ModuleID] = Seq( akkaTypedTestkit, "com.lightbend.akka" %% "akka-stream-alpakka-mongodb" % "5.0.0", akkaStreamDep, - "org.mongodb.scala" %% "mongo-scala-driver" % "5.1.2", + "org.mongodb.scala" %% "mongo-scala-driver" % "5.1.3", "com.lightbend.akka" %% "akka-stream-alpakka-file" % "5.0.0", jUnitInterface, embeddedMongo % Test, From 3606c65b96e95bf4d2c43207c7f3514559686e89 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 00:18:24 +0000 Subject: [PATCH 0774/1318] Update munit from 1.0.0 to 1.0.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ecc636ffa..bc02e9b09 100644 --- a/build.sbt +++ b/build.sbt @@ -457,7 +457,7 @@ val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion val log4jApiScalaDep = "org.apache.logging.log4j" %% "log4j-api-scala" % "13.1.0" -val munitDep = "org.scalameta" %% "munit" % "1.0.0" % Test +val munitDep = "org.scalameta" %% "munit" % "1.0.1" % Test lazy val scala_libraries_os = (project in file("scala-libraries-os")) .settings( From 47adf7c54c58d2b9a10b9adeb3dfb7754bff4ca9 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 00:18:36 +0000 Subject: [PATCH 0775/1318] Update s3 from 2.26.30 to 2.26.31 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ecc636ffa..64c72cf35 100644 --- a/build.sbt +++ b/build.sbt @@ -548,7 +548,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.767" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.26.30" + "software.amazon.awssdk" % "s3" % "2.26.31" ), Defaults.itSettings, IntegrationTest / fork := true From 54ec49ce7fd782c4872a19756b6719f6c70daf06 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 00:18:49 +0000 Subject: [PATCH 0776/1318] Update sqs from 2.26.24 to 2.26.31 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ecc636ffa..3ea2a6fe3 100644 --- a/build.sbt +++ b/build.sbt @@ -443,7 +443,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-core" % "1.6.5", "org.elasticmq" %% "elasticmq-server" % "1.6.5", "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.5", - "software.amazon.awssdk" % "sqs" % "2.26.24" + "software.amazon.awssdk" % "sqs" % "2.26.31" ), Defaults.itSettings ) From 12fdf2105ebd75fbf2a995eb98fec615ef5cc1cf Mon Sep 17 00:00:00 2001 From: Amna Date: Wed, 14 Aug 2024 21:38:26 +0500 Subject: [PATCH 0777/1318] Update README.md --- scala-core-modules/scala-strings-2/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-core-modules/scala-strings-2/README.md b/scala-core-modules/scala-strings-2/README.md index a4465c9d1..8c3e06f48 100644 --- a/scala-core-modules/scala-strings-2/README.md +++ b/scala-core-modules/scala-strings-2/README.md @@ -3,4 +3,4 @@ This module contains articles about Scala's Strings. ### Relevant Articles: - +- [Convert From Camel Case to Snake Case in Scala](https://www.baeldung.com/scala/camel-snake-case-automatic-conversion) From aa71ac7d8c78c8dc8bf44e0ca8d5046a594154f7 Mon Sep 17 00:00:00 2001 From: Amna Date: Wed, 14 Aug 2024 21:39:16 +0500 Subject: [PATCH 0778/1318] Update README.md --- scala-core-modules/scala-strings-2/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-core-modules/scala-strings-2/README.md b/scala-core-modules/scala-strings-2/README.md index a4465c9d1..e094f2f07 100644 --- a/scala-core-modules/scala-strings-2/README.md +++ b/scala-core-modules/scala-strings-2/README.md @@ -3,4 +3,4 @@ This module contains articles about Scala's Strings. ### Relevant Articles: - +- [How to Check if a String Is Null or Empty in Scala](https://www.baeldung.com/scala/string-test-null-empty) From 50428b753a3b49b47fa123e878bc978405d46503 Mon Sep 17 00:00:00 2001 From: Amna Date: Wed, 14 Aug 2024 21:42:32 +0500 Subject: [PATCH 0779/1318] Update README.md --- scala-core-modules/scala-core-9/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scala-core-modules/scala-core-9/README.md b/scala-core-modules/scala-core-9/README.md index 9e6cdf898..81dfecdee 100644 --- a/scala-core-modules/scala-core-9/README.md +++ b/scala-core-modules/scala-core-9/README.md @@ -6,4 +6,5 @@ - [Find Two’s Complement of a Number in Scala](https://www.baeldung.com/scala/compute-twos-complement) - [Convert Option to Either in Scala](https://www.baeldung.com/scala/option-either-conversion) - [Meaning of _root_ In Scala Import Clause](https://www.baeldung.com/scala/root-import-clause) -- [Check if All Characters in a Scala String Are Either Upper or Lower Case](https://www.baeldung.com/scala/string-check-all-characters-upper-lower-case +- [Check if All Characters in a Scala String Are Either Upper or Lower Case](https://www.baeldung.com/scala/string-check-all-characters-upper-lower-case) +- [TASTy Files in Scala 3](https://www.baeldung.com/scala/scala-3-tasty) From d216af0f31e470bd36b5a16388e19aa0bfda353b Mon Sep 17 00:00:00 2001 From: Amna Date: Wed, 14 Aug 2024 21:49:17 +0500 Subject: [PATCH 0780/1318] Update README.md --- scala-core-modules/scala-core-numbers/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-core-modules/scala-core-numbers/README.md b/scala-core-modules/scala-core-numbers/README.md index 15ce81225..78d8d0e88 100644 --- a/scala-core-modules/scala-core-numbers/README.md +++ b/scala-core-modules/scala-core-numbers/README.md @@ -6,3 +6,4 @@ - [Find Factorial of a Number in Scala](https://www.baeldung.com/scala/find-factorial) - [Check if a Number Is a Power of Two in Scala](https://www.baeldung.com/scala/check-power-of-two) - [Get the Individual Digits of a Number in Scala](https://www.baeldung.com/scala/number-extract-digits) +- [Convert a Number to Roman Numeral in Scala](https://www.baeldung.com/scala/convert-number-roman) From d0ad11bbc5592f3a41b7e9255e406c472e1e9144 Mon Sep 17 00:00:00 2001 From: kateu herbert Date: Mon, 19 Aug 2024 22:13:57 +0300 Subject: [PATCH 0781/1318] nscaltime article --- .../com/baeldung/nscalatime/NscalaTime.scala | 71 ++++++++++++ .../nscalatime/NscalaTimeUnitTest.scala | 106 ++++++++++++++++++ 2 files changed, 177 insertions(+) create mode 100644 scala-libraries-standalone/nscalatime/src/main/com/baeldung/nscalatime/NscalaTime.scala create mode 100644 scala-libraries-standalone/nscalatime/src/test/scala/com/baeldung/nscalatime/NscalaTimeUnitTest.scala diff --git a/scala-libraries-standalone/nscalatime/src/main/com/baeldung/nscalatime/NscalaTime.scala b/scala-libraries-standalone/nscalatime/src/main/com/baeldung/nscalatime/NscalaTime.scala new file mode 100644 index 000000000..0f137a433 --- /dev/null +++ b/scala-libraries-standalone/nscalatime/src/main/com/baeldung/nscalatime/NscalaTime.scala @@ -0,0 +1,71 @@ +package com.baeldung.nscalatime + +import com.github.nscala_time.time.Imports.* +import java.util.Date +import java.util.Calendar +import java.util.Locale +import org.joda.time.chrono.EthiopicChronology +import org.joda.time.DateTime.Property +import com.github.nscala_time.time.DurationBuilder +import org.joda.time.format.DateTimeFormatter + +object NScalaTime: + // working with DateTime + val st: DateTime = DateTime.now() + val parsedDate: DateTime = DateTime.parse("2024-08-07") + val parsedDate2: DateTime = DateTime.parse("2024") + + // JDK interoperability + val jdkDate: Date = new Date() + val convertTo: DateTime = new DateTime(jdkDate) + + val jdkCal: Calendar = Calendar.getInstance() + val st2: DateTime = new DateTime(jdkCal) + + val st3: DateTime = new DateTime + val cal: Calendar = st3.gregorianCalendar + + // querrying Datetime + val dayOfWeek: Property = new DateTime().dayOfWeek() + val shortText: String = dayOfWeek.asShortText + val asText: String = dayOfWeek.asText + val monthOfYearString: String = DateTime.now().monthOfYear().getAsText() + val monthOfYearStringFrench: String = + DateTime.now().monthOfYear().getAsShortText(Locale.FRENCH) + val isLeapYear: Boolean = DateTime.now().year().isLeap() + val nowToTomorrow: Interval = DateTime.now().to(DateTime.tomorrow()) + + // Accessing fields + // Date fields + val st4: DateTime = new DateTime() + val era: String = st4.era.asText + val year2: String = st4.year.asText + val centOfEra: String = st4.centuryOfEra.asText + val yrOfEra: String = st4.yearOfEra.asText + val yrOfCent: String = st4.yearOfCentury.asText + val monthOfYr: String = st4.monthOfYear.asText + val dayOfYr: String = st4.dayOfYear.asText + val dayOfMonth: String = st4.dayOfMonth.asText + val dayOfWeek2: String = st4.dayOfWeek.asText + // Time fields + val hrOfDay: String = st4.hourOfDay.asText + val minOfHr: String = st4.minuteOfHour.asText + val secOfMin: String = st4.secondOfMinute.asText + + // Manipulating datetimes + val compare: Boolean = DateTime.now() < DateTime.lastMonth() + val addVarious: Period = 2.month + 5.hours + 6.millis + val less5: DateTime = DateTime.now() - 5.days + val sampleDuration: DurationBuilder = 4.hours + 30.minutes + 10.seconds + val datetimebeforeDuration: DateTime = sampleDuration.before(DateTime.now()) + val changeTZ: DateTime = less5.withZone(DateTimeZone.forID("Africa/Kampala")) + val chrono: DateTime = less5.withChronology(EthiopicChronology.getInstance()) + val ethioYear: Int = chrono.getYear() + + // formatters + val fmt: DateTimeFormatter = DateTimeFormat.forPattern("dd-MM-yyyy") + val st5: DateTime = fmt.parseDateTime("31-07-2024") + +import NScalaTime.* +@main def sTime(): Unit = + println(st5) diff --git a/scala-libraries-standalone/nscalatime/src/test/scala/com/baeldung/nscalatime/NscalaTimeUnitTest.scala b/scala-libraries-standalone/nscalatime/src/test/scala/com/baeldung/nscalatime/NscalaTimeUnitTest.scala new file mode 100644 index 000000000..2bf9a73d1 --- /dev/null +++ b/scala-libraries-standalone/nscalatime/src/test/scala/com/baeldung/nscalatime/NscalaTimeUnitTest.scala @@ -0,0 +1,106 @@ +package com.baeldung.nscalatime + +import com.github.nscala_time.time.Imports.* +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers +import org.scalatest.prop.Tables.* +import org.scalatest.prop.TableDrivenPropertyChecks +import org.scalatest.prop.TableFor1 +import java.util.Date +import java.util.Calendar +import com.github.nscala_time.time.DurationBuilder +import org.joda.time.format.DateTimeFormatter + +class nScalatimeSpec + extends AnyFlatSpec + with Matchers + with TableDrivenPropertyChecks: + import NScalaTime.* + + "DateTime checks" should "pass as DateTime objects" in: + val dateTimeObjects: TableFor1[DateTime] = + Table( + "datetimeobjects", + parsedDate, + parsedDate2, + convertTo, + st2, + st3, + st4, + less5, + changeTZ, + chrono, + st5 + ) + + forAll(dateTimeObjects) { n => + n shouldBe an[DateTime] + } + + "jdkDate" should "pass as a Date objects" in: + jdkDate shouldBe an[Date] + + "Calendar checks" should "pass as Calendar objects" in: + val calendarObjects: TableFor1[Calendar] = + Table( + "calendarobjects", + jdkCal, + cal + ) + + forAll(calendarObjects) { n => + n shouldBe an[Calendar] + } + + "strings checks" should "pass as String objects" in: + val stringObjects: TableFor1[String] = + Table( + "stringsobjects", + shortText, + asText, + monthOfYearString, + monthOfYearStringFrench, + era, + year2, + centOfEra, + yrOfEra, + yrOfCent, + monthOfYr, + dayOfYr, + dayOfMonth, + dayOfWeek2, + hrOfDay, + minOfHr, + secOfMin + ) + + forAll(stringObjects) { n => + n shouldBe an[String] + } + + "boolean checks" should "pass as Boolean objects" in: + val booleanObjects: TableFor1[Boolean] = + Table( + "booleanobjects", + isLeapYear, + compare + ) + + forAll(booleanObjects) { n => + n shouldBe an[Boolean] + } + + "nowToTomorrow" should "pass as an Interval object" in: + nowToTomorrow shouldBe an[Interval] + + "addVarious" should "pass as a Period object" in: + addVarious shouldBe an[Period] + + "sampleDuration" should "pass as a DurationBuilder object" in: + sampleDuration shouldBe an[DurationBuilder] + + "ethioYear" should "pass as an Int object" in: + ethioYear shouldBe an[Int] + + "fmt" should "pass as a DateTimeFormatter object" in: + fmt shouldBe an[DateTimeFormatter] \ No newline at end of file From c523ea29e73d58fa2dc7655dd8575ff8a2b5399b Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 22 Aug 2024 00:15:23 +0000 Subject: [PATCH 0782/1318] Update logback-classic from 1.5.6 to 1.5.7 --- build.sbt | 2 +- scalatra/build.sbt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 6f53a13e4..621665f9c 100644 --- a/build.sbt +++ b/build.sbt @@ -7,7 +7,7 @@ val jUnitInterface = "com.github.sbt" % "junit-interface" % "0.13.3" % "test" val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.4" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.4" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV -val logback = "ch.qos.logback" % "logback-classic" % "1.5.6" +val logback = "ch.qos.logback" % "logback-classic" % "1.5.7" val embedMongoVersion = "4.16.2" val AkkaVersion = "2.8.5" val AkkaHttpVersion = "10.5.0" diff --git a/scalatra/build.sbt b/scalatra/build.sbt index 638ffb48b..d7b745b1e 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -8,7 +8,7 @@ version := "0.1.0-SNAPSHOT" libraryDependencies ++= Seq( "org.scalatra" %% "scalatra" % ScalatraVersion, "org.scalatra" %% "scalatra-scalatest" % ScalatraVersion % "test", - "ch.qos.logback" % "logback-classic" % "1.5.6" % "runtime", + "ch.qos.logback" % "logback-classic" % "1.5.7" % "runtime", "org.eclipse.jetty" % "jetty-webapp" % "11.0.22" % "container", "javax.servlet" % "javax.servlet-api" % "4.0.1" % "provided", "org.scalatra" %% "scalatra-auth" % ScalatraVersion, From 56831a787ada794bb99319c275c4092424a2083a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 22 Aug 2024 00:15:39 +0000 Subject: [PATCH 0783/1318] Update aws-java-sdk-s3 from 1.12.767 to 1.12.770 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 6f53a13e4..eafc617ea 100644 --- a/build.sbt +++ b/build.sbt @@ -545,7 +545,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) scalaMock, "com.lihaoyi" %% "utest" % "0.8.4" % "test", munitDep, - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.767" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.770" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.26.31" From d72ae3b37ebdd0358dfb7bb5d3b00eb16e642022 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 22 Aug 2024 00:15:48 +0000 Subject: [PATCH 0784/1318] Update os-lib from 0.10.3 to 0.10.4 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 6f53a13e4..5f2140337 100644 --- a/build.sbt +++ b/build.sbt @@ -450,7 +450,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) val http4sBlaze = "0.23.16" val http4sVersion = "0.23.27" -val osLibVersion = "0.10.3" +val osLibVersion = "0.10.4" val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion From 33b2c1b9c4bb34d9ba71742001d90e63376fd289 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 22 Aug 2024 00:16:01 +0000 Subject: [PATCH 0785/1318] Update zio-kafka from 2.8.0 to 2.8.2 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 6f53a13e4..9d872f04e 100644 --- a/build.sbt +++ b/build.sbt @@ -649,7 +649,7 @@ lazy val zio = (project in file("zio")) libraryDependencies += "dev.zio" %% "zio" % zioVersion, libraryDependencies += "dev.zio" %% "zio-streams" % zioVersion, libraryDependencies += zioTestSbt, - libraryDependencies += "dev.zio" %% "zio-kafka" % "2.8.0", + libraryDependencies += "dev.zio" %% "zio-kafka" % "2.8.2", libraryDependencies += zioJsonDep, libraryDependencies += "dev.zio" %% "zio-prelude" % "1.0.0-RC23", libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.19" % Test, From f993a8be11839016ad6fc770d2a6cb9ce3717e63 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 22 Aug 2024 00:16:29 +0000 Subject: [PATCH 0786/1318] Update jetty-webapp from 11.0.22 to 11.0.23 --- scalatra/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scalatra/build.sbt b/scalatra/build.sbt index 638ffb48b..210b29410 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -9,7 +9,7 @@ libraryDependencies ++= Seq( "org.scalatra" %% "scalatra" % ScalatraVersion, "org.scalatra" %% "scalatra-scalatest" % ScalatraVersion % "test", "ch.qos.logback" % "logback-classic" % "1.5.6" % "runtime", - "org.eclipse.jetty" % "jetty-webapp" % "11.0.22" % "container", + "org.eclipse.jetty" % "jetty-webapp" % "11.0.23" % "container", "javax.servlet" % "javax.servlet-api" % "4.0.1" % "provided", "org.scalatra" %% "scalatra-auth" % ScalatraVersion, "org.scalatra" %% "scalatra-json" % "2.8.4", From 6ba9e7a84dd8d4c5acfe24bf83eb2607327a062d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 22 Aug 2024 00:16:47 +0000 Subject: [PATCH 0787/1318] Update elasticmq-core, elasticmq-rest-sqs, ... from 1.6.6 to 1.6.7 --- build.sbt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index 6f53a13e4..6eee35309 100644 --- a/build.sbt +++ b/build.sbt @@ -440,9 +440,9 @@ lazy val scala_libraries = (project in file("scala-libraries")) logback ), libraryDependencies ++= Seq( - "org.elasticmq" %% "elasticmq-core" % "1.6.6", - "org.elasticmq" %% "elasticmq-server" % "1.6.6", - "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.6", + "org.elasticmq" %% "elasticmq-core" % "1.6.7", + "org.elasticmq" %% "elasticmq-server" % "1.6.7", + "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.7", "software.amazon.awssdk" % "sqs" % "2.26.31" ), Defaults.itSettings From a04fb04aad1c5366283e5394b599af03171e7c7f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 22 Aug 2024 00:17:01 +0000 Subject: [PATCH 0788/1318] Update scala3-library from 3.4.2 to 3.4.3 --- project/ScalaVersions.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/ScalaVersions.scala b/project/ScalaVersions.scala index 4b0f8690f..ce57d1a2b 100644 --- a/project/ScalaVersions.scala +++ b/project/ScalaVersions.scala @@ -1,6 +1,6 @@ object ScalaVersions { val scala2Version = "2.13.14" - val scala3Version = "3.4.2" + val scala3Version = "3.4.3" @deprecated( "Use Scala 2.13 or Scala 3. Don't use 2.12 unless it is a specific feature in 2.12." ) From b980c0782f7891d2d960555360f57bca4546cc69 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 22 Aug 2024 00:17:12 +0000 Subject: [PATCH 0789/1318] Update sbt-scala-native from 0.5.4 to 0.5.5 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index ded32db25..b2ccfa400 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,6 +1,6 @@ addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.2") -addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.4") +addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.5") addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.16.0") addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.2.1") From 41a29163a420f64db8d2746e2edd06789a327e33 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 22 Aug 2024 00:17:25 +0000 Subject: [PATCH 0790/1318] Update s3, sqs from 2.26.31 to 2.27.10 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 6f53a13e4..6b02b1c9b 100644 --- a/build.sbt +++ b/build.sbt @@ -443,7 +443,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-core" % "1.6.6", "org.elasticmq" %% "elasticmq-server" % "1.6.6", "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.6", - "software.amazon.awssdk" % "sqs" % "2.26.31" + "software.amazon.awssdk" % "sqs" % "2.27.10" ), Defaults.itSettings ) @@ -548,7 +548,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.767" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.26.31" + "software.amazon.awssdk" % "s3" % "2.27.10" ), Defaults.itSettings, IntegrationTest / fork := true From a9b9cb904834a9b825a1211590b07ad0d3144c21 Mon Sep 17 00:00:00 2001 From: kateu herbert Date: Thu, 22 Aug 2024 12:38:30 +0300 Subject: [PATCH 0791/1318] added nscalatime project to build.sbt --- build.sbt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/build.sbt b/build.sbt index 6155df2b4..f98ca7a29 100644 --- a/build.sbt +++ b/build.sbt @@ -495,6 +495,14 @@ lazy val refined = (project in file("scala-libraries-standalone/refined")) libraryDependencies ++= scalaTestDeps ) +lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) + .settings( + name := "nscalatime", + scalaVersion := scala3Version, + libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "2.32.0", + libraryDependencies ++= scalaTestDeps + ) + val spireVersion = "0.18.0" val kafkaVersion = "7.7.0-ce" val pureconfigVersion = "0.17.7" From e71dd87977e7824ad4c4b7ec7ec387985ee65144 Mon Sep 17 00:00:00 2001 From: kateu herbert Date: Thu, 22 Aug 2024 13:00:33 +0300 Subject: [PATCH 0792/1318] fix import --- .../test/scala/com/baeldung/nscalatime/NscalaTimeUnitTest.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/nscalatime/src/test/scala/com/baeldung/nscalatime/NscalaTimeUnitTest.scala b/scala-libraries-standalone/nscalatime/src/test/scala/com/baeldung/nscalatime/NscalaTimeUnitTest.scala index 2bf9a73d1..9e9daac17 100644 --- a/scala-libraries-standalone/nscalatime/src/test/scala/com/baeldung/nscalatime/NscalaTimeUnitTest.scala +++ b/scala-libraries-standalone/nscalatime/src/test/scala/com/baeldung/nscalatime/NscalaTimeUnitTest.scala @@ -10,12 +10,12 @@ import java.util.Date import java.util.Calendar import com.github.nscala_time.time.DurationBuilder import org.joda.time.format.DateTimeFormatter +import NScalaTime.* class nScalatimeSpec extends AnyFlatSpec with Matchers with TableDrivenPropertyChecks: - import NScalaTime.* "DateTime checks" should "pass as DateTime objects" in: val dateTimeObjects: TableFor1[DateTime] = From 8dafb28332358ef0b65913b18b7d90b134947582 Mon Sep 17 00:00:00 2001 From: kateu herbert Date: Thu, 22 Aug 2024 13:13:24 +0300 Subject: [PATCH 0793/1318] added scala folder for main --- .../main/{ => scala}/com/baeldung/nscalatime/NscalaTime.scala | 0 .../test/scala/com/baeldung/nscalatime/NscalaTimeUnitTest.scala | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename scala-libraries-standalone/nscalatime/src/main/{ => scala}/com/baeldung/nscalatime/NscalaTime.scala (100%) diff --git a/scala-libraries-standalone/nscalatime/src/main/com/baeldung/nscalatime/NscalaTime.scala b/scala-libraries-standalone/nscalatime/src/main/scala/com/baeldung/nscalatime/NscalaTime.scala similarity index 100% rename from scala-libraries-standalone/nscalatime/src/main/com/baeldung/nscalatime/NscalaTime.scala rename to scala-libraries-standalone/nscalatime/src/main/scala/com/baeldung/nscalatime/NscalaTime.scala diff --git a/scala-libraries-standalone/nscalatime/src/test/scala/com/baeldung/nscalatime/NscalaTimeUnitTest.scala b/scala-libraries-standalone/nscalatime/src/test/scala/com/baeldung/nscalatime/NscalaTimeUnitTest.scala index 9e9daac17..31349661c 100644 --- a/scala-libraries-standalone/nscalatime/src/test/scala/com/baeldung/nscalatime/NscalaTimeUnitTest.scala +++ b/scala-libraries-standalone/nscalatime/src/test/scala/com/baeldung/nscalatime/NscalaTimeUnitTest.scala @@ -12,7 +12,7 @@ import com.github.nscala_time.time.DurationBuilder import org.joda.time.format.DateTimeFormatter import NScalaTime.* -class nScalatimeSpec +class NScalatimeSpec extends AnyFlatSpec with Matchers with TableDrivenPropertyChecks: From 495969d680848556ee69743d8c402ed3bb1038f0 Mon Sep 17 00:00:00 2001 From: kateu herbert Date: Thu, 22 Aug 2024 13:31:50 +0300 Subject: [PATCH 0794/1318] fixed formatting --- .../test/scala/com/baeldung/nscalatime/NscalaTimeUnitTest.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/nscalatime/src/test/scala/com/baeldung/nscalatime/NscalaTimeUnitTest.scala b/scala-libraries-standalone/nscalatime/src/test/scala/com/baeldung/nscalatime/NscalaTimeUnitTest.scala index 31349661c..d27c99851 100644 --- a/scala-libraries-standalone/nscalatime/src/test/scala/com/baeldung/nscalatime/NscalaTimeUnitTest.scala +++ b/scala-libraries-standalone/nscalatime/src/test/scala/com/baeldung/nscalatime/NscalaTimeUnitTest.scala @@ -103,4 +103,4 @@ class NScalatimeSpec ethioYear shouldBe an[Int] "fmt" should "pass as a DateTimeFormatter object" in: - fmt shouldBe an[DateTimeFormatter] \ No newline at end of file + fmt shouldBe an[DateTimeFormatter] From ce87f8f3b7829c0216fbb1cd59c112a958246ee4 Mon Sep 17 00:00:00 2001 From: kateu herbert Date: Thu, 22 Aug 2024 13:56:30 +0300 Subject: [PATCH 0795/1318] fixed file name --- .../test/scala/com/baeldung/nscalatime/NscalaTimeUnitTest.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/nscalatime/src/test/scala/com/baeldung/nscalatime/NscalaTimeUnitTest.scala b/scala-libraries-standalone/nscalatime/src/test/scala/com/baeldung/nscalatime/NscalaTimeUnitTest.scala index d27c99851..8e52890c0 100644 --- a/scala-libraries-standalone/nscalatime/src/test/scala/com/baeldung/nscalatime/NscalaTimeUnitTest.scala +++ b/scala-libraries-standalone/nscalatime/src/test/scala/com/baeldung/nscalatime/NscalaTimeUnitTest.scala @@ -12,7 +12,7 @@ import com.github.nscala_time.time.DurationBuilder import org.joda.time.format.DateTimeFormatter import NScalaTime.* -class NScalatimeSpec +class NScalaTimeUnitTest extends AnyFlatSpec with Matchers with TableDrivenPropertyChecks: From 865c471622ed7eb936c026fb303586c144fbfcc0 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 27 Aug 2024 18:26:18 +0200 Subject: [PATCH 0796/1318] Code for removing element from a list --- .../RemoveMatchingElementUnitTest.scala | 118 ++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/removeelement/RemoveMatchingElementUnitTest.scala diff --git a/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/removeelement/RemoveMatchingElementUnitTest.scala b/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/removeelement/RemoveMatchingElementUnitTest.scala new file mode 100644 index 000000000..16eeb273a --- /dev/null +++ b/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/removeelement/RemoveMatchingElementUnitTest.scala @@ -0,0 +1,118 @@ +package com.baeldung.scala.removeelement + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers +import org.scalatest.prop.TableDrivenPropertyChecks + +import scala.collection.mutable.{ArrayBuffer, ListBuffer} + +class RemoveMatchingElementUnitTest + extends AnyFlatSpec + with Matchers + with TableDrivenPropertyChecks { + + //format: off + val firstMatchTable = Table( + ("input", "elementToRemove", "expected"), + (List("abc", "def", "xyz", "abc"), "abc" ,List("def", "xyz", "abc")), + (List("abc", "def", "xyz", "abc"), "abcd" ,List("abc", "def", "xyz", "abc")), + (List.empty[String], "abcd" ,List.empty[String]), + ) + + val allMatchTable = Table( + ("input", "elementToRemove", "expected"), + (List("abc", "def", "xyz", "abc"), "abc", List("def", "xyz")), + (List("abc", "def", "xyz", "abc"), "abcd", List("abc", "def", "xyz", "abc")), + (List.empty[String], "abcd", List.empty[String]), + ) + //format on + + // on immutable collections + it should "remove first match using span" in { + forAll(firstMatchTable) { (input, ele, exp) => + val (part1, part2)= input.span(_ != ele) + val result = part1 ++ part2.drop(1) + result shouldBe exp + } + } + + it should "remove first match using pattern matching" in { + forAll(firstMatchTable) { (input, ele, exp) => + val result = input match { + case `ele` :: sub => sub + case sub => sub + } + result shouldBe exp + } + } + + it should "remove all matches using partition" in { + forAll(allMatchTable) { (input, ele, exp) => + val (part1, _) = input.partition(_ != ele) + val result = part1 + result shouldBe exp + } + } + + // on mutable collections + it should "remove first match from mutable list" in { + val buffer = ListBuffer[String]("abc", "def", "xyz", "def") + buffer -= "def" + buffer shouldBe ListBuffer[String]("abc", "xyz", "def") + } + + it should "remove all matches from mutable list using filterInPlace" in { + val buffer = ListBuffer[String]("abc", "def", "xyz", "def") + buffer.filterInPlace(_ != "def") + buffer shouldBe ListBuffer[String]("abc", "xyz") + } + + it should "remove all matches from mutable list using filter" in { + val list = List("abc", "def", "xyz", "def") + val filteredList = list.filter(_ != "def") + filteredList shouldBe List("abc", "xyz") + list.filterNot(_ == "def") shouldBe List("abc", "xyz") + // on ListBuffer + val buffer = ListBuffer[String]("abc", "def", "xyz", "def") + val newBuffer = buffer.filter(_ != "def") + newBuffer shouldBe ListBuffer[String]("abc", "xyz") + } + + // remove multiple matches + it should "remove all matches using collect" in { + forAll(allMatchTable) { (input, ele, exp) => + val result = input.collect { + case e if e != ele => e + } + result shouldBe exp + } + } + + it should "remove all matches using filter" in { + forAll(allMatchTable) { (input, ele, exp) => + val result = input.filter(_ != ele) + result shouldBe exp + val result2 = input.filterNot(_ == ele) + result2 shouldBe exp + } + } + + it should "remove all matches using recursion" in { + forAll(allMatchTable) { (input, ele, exp) => + val result = input.foldLeft(List.empty[String])((acc,i) => if(i != ele) acc :+ i else acc) + result shouldBe exp + } + } + + it should "remove all matches from mutable ListBuffer" in { + val buffer = ListBuffer[String]("abc", "def", "xyz", "def") + buffer.filterInPlace(_ != "def") + buffer shouldBe ListBuffer[String]("abc", "xyz") + } + + it should "remove all matches from mutable ArrayBuffer" in { + val buffer = ArrayBuffer[String]("abc", "def", "xyz", "def") + buffer.filterInPlace(_ != "def") + buffer shouldBe ListBuffer[String]("abc", "xyz") + } +} From 88df8696f55600292728b006bd4dc326acea9064 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 30 Aug 2024 00:16:09 +0000 Subject: [PATCH 0797/1318] Update fs2-core, fs2-io from 3.10.2 to 3.11.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 116cf8f1f..849bc5e8e 100644 --- a/build.sbt +++ b/build.sbt @@ -340,7 +340,7 @@ val monocleVersion = "2.1.0" val slickVersion = "3.5.1" val shapelessVersion = "2.3.12" val scalazVersion = "7.3.8" -val fs2Version = "3.10.2" +val fs2Version = "3.11.0" val reactiveMongo = "1.1.0-RC12" lazy val scala2_libraries = From c1647a5a11cd4347478a5bd2e4ac23dff98b0cc3 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 30 Aug 2024 00:16:23 +0000 Subject: [PATCH 0798/1318] Update pulsar4s-core, pulsar4s-jackson from 2.9.1 to 2.10.0 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 116cf8f1f..eea751950 100644 --- a/build.sbt +++ b/build.sbt @@ -371,8 +371,8 @@ lazy val scala2_libraries = "com.github.pureconfig" %% "pureconfig-enumeratum" % "0.17.7", "com.typesafe" % "config" % "1.4.3", "org.scala-lang.modules" %% "scala-async" % "1.0.1", - "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.9.1", - "com.clever-cloud.pulsar4s" %% "pulsar4s-jackson" % "2.9.1", + "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.10.0", + "com.clever-cloud.pulsar4s" %% "pulsar4s-jackson" % "2.10.0", "org.testcontainers" % "pulsar" % "1.20.1" % IntegrationTest, "org.apache.kafka" % "kafka-clients" % kafkaVersion, "com.fasterxml.jackson.core" % "jackson-databind" % jackSonVersion, From 0c6febc18b0ee71c3adf811d2dd26f478ed70827 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 30 Aug 2024 00:16:39 +0000 Subject: [PATCH 0799/1318] Update de.flapdoodle.embed.mongo from 4.16.2 to 4.17.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 116cf8f1f..45a77b175 100644 --- a/build.sbt +++ b/build.sbt @@ -8,7 +8,7 @@ val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.4" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.4" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV val logback = "ch.qos.logback" % "logback-classic" % "1.5.7" -val embedMongoVersion = "4.16.2" +val embedMongoVersion = "4.17.0" val AkkaVersion = "2.8.5" val AkkaHttpVersion = "10.5.0" From fc2b18ffa28b51bb64360bf33db06b504a8d1da6 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 30 Aug 2024 00:16:48 +0000 Subject: [PATCH 0800/1318] Update zio, zio-streams, zio-test, ... from 2.1.7 to 2.1.9 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 116cf8f1f..2ff465fa6 100644 --- a/build.sbt +++ b/build.sbt @@ -20,7 +20,7 @@ val scalaTestDeps = Seq( ) val scalaMock = "org.scalamock" %% "scalamock" % "6.0.0" % Test -val zioVersion = "2.1.7" +val zioVersion = "2.1.9" lazy val scala_core = (project in file("scala-core-modules/scala-core")) .settings( From 47936c77d61092d79708c69ce569f5de10d7ac00 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 30 Aug 2024 00:17:04 +0000 Subject: [PATCH 0801/1318] Update zio-json from 0.7.2 to 0.7.3 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 116cf8f1f..547c20290 100644 --- a/build.sbt +++ b/build.sbt @@ -647,7 +647,7 @@ lazy val cats_effects = (project in file("cats-effects")) libraryDependencies += "junit" % "junit" % "4.13.2" % Test ) -val zioJsonDep = "dev.zio" %% "zio-json" % "0.7.2" +val zioJsonDep = "dev.zio" %% "zio-json" % "0.7.3" val zioTestSbt = "dev.zio" %% "zio-test-sbt" % zioVersion % Test lazy val zio = (project in file("zio")) @@ -669,7 +669,7 @@ lazy val zio2 = (project in file("zio-2")) name := "zio-2", scalaVersion := scala3Version, libraryDependencies += "dev.zio" %% "zio" % zioVersion, - libraryDependencies += "dev.zio" %% "zio-json" % "0.7.2", + libraryDependencies += "dev.zio" %% "zio-json" % "0.7.3", libraryDependencies += "dev.zio" %% "zio-test" % zioVersion % Test, libraryDependencies += "dev.zio" %% "zio-test-sbt" % zioVersion % Test, libraryDependencies ++= scalaTestDeps, From 1ddf33dbc06d1872c82f5c51659b89fc0b4e070e Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 30 Aug 2024 00:17:29 +0000 Subject: [PATCH 0802/1318] Update mockito-core from 5.12.0 to 5.13.0 --- play-scala/caching-in-play/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/play-scala/caching-in-play/build.sbt b/play-scala/caching-in-play/build.sbt index c5f34a508..e96664a6d 100644 --- a/play-scala/caching-in-play/build.sbt +++ b/play-scala/caching-in-play/build.sbt @@ -11,6 +11,6 @@ libraryDependencies += guice libraryDependencies += caffeine libraryDependencies += ws libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % LibraryVersions.scalatestPlayVersion % Test -libraryDependencies += "org.mockito" % "mockito-core" % "5.12.0" % Test +libraryDependencies += "org.mockito" % "mockito-core" % "5.13.0" % Test PlayKeys.devSettings += "play.server.http.port" -> "9000" From 4b236422fa597eaf5edf90a350f0ab434896beb0 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 30 Aug 2024 00:17:42 +0000 Subject: [PATCH 0803/1318] Update postgresql from 42.7.3 to 42.7.4 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 116cf8f1f..659a7d1b0 100644 --- a/build.sbt +++ b/build.sbt @@ -423,7 +423,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) ), libraryDependencies ++= Seq( "org.playframework" %% "play-slick" % LibraryVersions.playSlickVersion, - "org.postgresql" % "postgresql" % "42.7.3" + "org.postgresql" % "postgresql" % "42.7.4" ), dependencyOverrides := Seq( "com.typesafe.akka" %% "akka-protobuf-v3" % AkkaVersion, From a1332dc77094c49371be40d506ec9e63eb71b423 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 30 Aug 2024 00:17:55 +0000 Subject: [PATCH 0804/1318] Update scala3-library from 3.4.3 to 3.5.0 --- project/ScalaVersions.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/ScalaVersions.scala b/project/ScalaVersions.scala index ce57d1a2b..f09e4f3fa 100644 --- a/project/ScalaVersions.scala +++ b/project/ScalaVersions.scala @@ -1,6 +1,6 @@ object ScalaVersions { val scala2Version = "2.13.14" - val scala3Version = "3.4.3" + val scala3Version = "3.5.0" @deprecated( "Use Scala 2.13 or Scala 3. Don't use 2.12 unless it is a specific feature in 2.12." ) From 11180f4ca949a7e534111be15d9d1ae0a7aacc0a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 30 Aug 2024 00:18:08 +0000 Subject: [PATCH 0805/1318] Update jedis from 5.1.4 to 5.1.5 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 116cf8f1f..ca0a9cb62 100644 --- a/build.sbt +++ b/build.sbt @@ -480,7 +480,7 @@ lazy val redis_intro = libraryDependencies ++= scalaTestDeps .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( - "redis.clients" % "jedis" % "5.1.4", + "redis.clients" % "jedis" % "5.1.5", "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.14.1", "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % "it" ), From 6b0d7bd729fea7370f4860b15b852db19da7b04f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 30 Aug 2024 00:18:23 +0000 Subject: [PATCH 0806/1318] Update s3, sqs from 2.27.10 to 2.27.16 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 116cf8f1f..e32412775 100644 --- a/build.sbt +++ b/build.sbt @@ -443,7 +443,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-core" % "1.6.7", "org.elasticmq" %% "elasticmq-server" % "1.6.7", "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.7", - "software.amazon.awssdk" % "sqs" % "2.27.10" + "software.amazon.awssdk" % "sqs" % "2.27.16" ), Defaults.itSettings ) @@ -556,7 +556,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.770" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.27.10" + "software.amazon.awssdk" % "s3" % "2.27.16" ), Defaults.itSettings, IntegrationTest / fork := true From 6d8e53d43af2afe58a2570b438f75b3ffc36aee0 Mon Sep 17 00:00:00 2001 From: Callum Date: Wed, 4 Sep 2024 12:49:08 +0100 Subject: [PATCH 0807/1318] [SCALA-490] Rounding Decimals (#1537) * [SCALA-490] Rounding Decimals * [SCALA-490] Optimized imports * [SCALA-490] Fixed package names --------- Co-authored-by: Callum Gibbons --- build.sbt | 8 +++++ .../roundingdecimals/RoundingDecimals.scala | 12 ++++++++ .../RoundingDecimalsUnitTest.scala | 29 +++++++++++++++++++ 3 files changed, 49 insertions(+) create mode 100644 scala-core-modules/scala-core-numbers-2/src/main/scala/com/baeldung/scala/roundingdecimals/RoundingDecimals.scala create mode 100644 scala-core-modules/scala-core-numbers-2/src/test/scala/com/baeldung/scala/roundingdecimals/RoundingDecimalsUnitTest.scala diff --git a/build.sbt b/build.sbt index 1d8710690..e54245718 100644 --- a/build.sbt +++ b/build.sbt @@ -127,6 +127,14 @@ lazy val scala_core_numbers = libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test ) +lazy val scala_core_numbers_2 = + (project in file("scala-core-modules/scala-core-numbers-2")) + .settings( + name := "scala-core-numbers", + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) + lazy val scala_core_io = (project in file("scala-core-modules/scala-core-io")) .settings( name := "scala-core-io", diff --git a/scala-core-modules/scala-core-numbers-2/src/main/scala/com/baeldung/scala/roundingdecimals/RoundingDecimals.scala b/scala-core-modules/scala-core-numbers-2/src/main/scala/com/baeldung/scala/roundingdecimals/RoundingDecimals.scala new file mode 100644 index 000000000..68d090c50 --- /dev/null +++ b/scala-core-modules/scala-core-numbers-2/src/main/scala/com/baeldung/scala/roundingdecimals/RoundingDecimals.scala @@ -0,0 +1,12 @@ +package com.baeldung.scala.roundingdecimals + +object RoundingDecimals { + def roundUp(decimal: Double): Int = + math.ceil(decimal).toInt + + def roundDown(decimal: Double): Int = + math.floor(decimal).toInt + + def roundToNearestWhole(decimal: Double): Int = + math.round(decimal).toInt +} diff --git a/scala-core-modules/scala-core-numbers-2/src/test/scala/com/baeldung/scala/roundingdecimals/RoundingDecimalsUnitTest.scala b/scala-core-modules/scala-core-numbers-2/src/test/scala/com/baeldung/scala/roundingdecimals/RoundingDecimalsUnitTest.scala new file mode 100644 index 000000000..daecb8e71 --- /dev/null +++ b/scala-core-modules/scala-core-numbers-2/src/test/scala/com/baeldung/scala/roundingdecimals/RoundingDecimalsUnitTest.scala @@ -0,0 +1,29 @@ +package com.baeldung.scala.roundingdecimals + +import com.baeldung.scala.roundingdecimals.RoundingDecimals +import org.scalatest.matchers.should.Matchers +import org.scalatest.wordspec.AnyWordSpec + +class RoundingDecimalsUnitTest extends AnyWordSpec with Matchers { + + "RoundingDecimals" should { + "Always round literals down" in { + 3 / 4 shouldBe 0 + } + "Always round up in roundUp" in { + RoundingDecimals.roundUp(1.1) shouldBe 2 + RoundingDecimals.roundUp(1.5) shouldBe 2 + RoundingDecimals.roundUp(1.9) shouldBe 2 + } + "Always round down in roundDown" in { + RoundingDecimals.roundDown(1.1) shouldBe 1 + RoundingDecimals.roundDown(1.5) shouldBe 1 + RoundingDecimals.roundDown(1.9) shouldBe 1 + } + "Always round to nearest in roundDown" in { + RoundingDecimals.roundToNearestWhole(1.1) shouldBe 1 + RoundingDecimals.roundToNearestWhole(1.5) shouldBe 2 + RoundingDecimals.roundToNearestWhole(1.9) shouldBe 2 + } + } +} From 7759e7d67795a0d8160fe9f71c5f274d9126a255 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 7 Sep 2024 00:15:57 +0000 Subject: [PATCH 0808/1318] Update logback-classic from 1.5.7 to 1.5.8 --- build.sbt | 2 +- scalatra/build.sbt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index e54245718..c07a30c13 100644 --- a/build.sbt +++ b/build.sbt @@ -7,7 +7,7 @@ val jUnitInterface = "com.github.sbt" % "junit-interface" % "0.13.3" % "test" val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.4" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.4" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV -val logback = "ch.qos.logback" % "logback-classic" % "1.5.7" +val logback = "ch.qos.logback" % "logback-classic" % "1.5.8" val embedMongoVersion = "4.17.0" val AkkaVersion = "2.8.5" val AkkaHttpVersion = "10.5.0" diff --git a/scalatra/build.sbt b/scalatra/build.sbt index 2cbbfde90..f076d5507 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -8,7 +8,7 @@ version := "0.1.0-SNAPSHOT" libraryDependencies ++= Seq( "org.scalatra" %% "scalatra" % ScalatraVersion, "org.scalatra" %% "scalatra-scalatest" % ScalatraVersion % "test", - "ch.qos.logback" % "logback-classic" % "1.5.7" % "runtime", + "ch.qos.logback" % "logback-classic" % "1.5.8" % "runtime", "org.eclipse.jetty" % "jetty-webapp" % "11.0.23" % "container", "javax.servlet" % "javax.servlet-api" % "4.0.1" % "provided", "org.scalatra" %% "scalatra-auth" % ScalatraVersion, From fd38c8766dc484cc521527c90e8b704727626ca9 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 7 Sep 2024 00:16:16 +0000 Subject: [PATCH 0809/1318] Update aws-java-sdk-s3 from 1.12.770 to 1.12.771 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index e54245718..3d52022ef 100644 --- a/build.sbt +++ b/build.sbt @@ -561,7 +561,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) scalaMock, "com.lihaoyi" %% "utest" % "0.8.4" % "test", munitDep, - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.770" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.771" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.27.16" From 6e9978bee8f96c0d96f34db3db10c16d436d44ef Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 7 Sep 2024 00:16:27 +0000 Subject: [PATCH 0810/1318] Update os-lib from 0.10.4 to 0.10.5 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index e54245718..9dd6518c2 100644 --- a/build.sbt +++ b/build.sbt @@ -458,7 +458,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) val http4sBlaze = "0.23.16" val http4sVersion = "0.23.27" -val osLibVersion = "0.10.4" +val osLibVersion = "0.10.5" val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion From 23cbbfec1d7b6278ce39f4545781c9baa9c9176c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 7 Sep 2024 00:16:42 +0000 Subject: [PATCH 0811/1318] Update tapir-akka-http-server, tapir-core, ... from 1.11.1 to 1.11.2 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index c4a6151a7..eb4ae9e54 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.11.1" +val tapirV = "1.11.2" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From a3e5fef4d24e7f5f5f62ccb8961408626eba9e69 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 7 Sep 2024 00:17:35 +0000 Subject: [PATCH 0812/1318] Update circe-core, circe-generic, ... from 0.14.9 to 0.14.10 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index e54245718..61e22d71a 100644 --- a/build.sbt +++ b/build.sbt @@ -399,7 +399,7 @@ lazy val scala2_libraries = Defaults.itSettings ) -val circeVersion = "0.14.9" +val circeVersion = "0.14.10" val monixVersion = "3.4.1" val sparkVersion = "3.5.2" val elastic4sVersion = "8.14.1" From e8d67016ba42e5c1a337c54c725376f927e0ff55 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 7 Sep 2024 00:17:52 +0000 Subject: [PATCH 0813/1318] Update elastic4s-client-esjava, ... from 8.14.1 to 8.15.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index e54245718..10ab5fce8 100644 --- a/build.sbt +++ b/build.sbt @@ -402,7 +402,7 @@ lazy val scala2_libraries = val circeVersion = "0.14.9" val monixVersion = "3.4.1" val sparkVersion = "3.5.2" -val elastic4sVersion = "8.14.1" +val elastic4sVersion = "8.15.0" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion val sparkSqlDep = "org.apache.spark" %% "spark-sql" % sparkVersion From 206c0ea3aba53c285a19ad90273589d0df9e09f1 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 7 Sep 2024 00:18:08 +0000 Subject: [PATCH 0814/1318] Update log4j-core from 2.23.1 to 2.24.0 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index e54245718..36aead208 100644 --- a/build.sbt +++ b/build.sbt @@ -424,7 +424,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) circeParserDep, "com.softwaremill.retry" %% "retry" % "0.3.6", log4jApiScalaDep, - "org.apache.logging.log4j" % "log4j-core" % "2.23.1" % Runtime, + "org.apache.logging.log4j" % "log4j-core" % "2.24.0" % Runtime, "com.typesafe.scala-logging" %% "scala-logging" % "3.9.5", "software.amazon.awssdk" % "s3" % "2.25.9", "com.github.seratch" %% "awscala" % "0.9.2" @@ -474,7 +474,7 @@ lazy val scala_libraries_os = (project in file("scala-libraries-os")) libraryDependencies ++= scalaTestDeps, libraryDependencies ++= Seq( log4jApiScalaDep, - "org.apache.logging.log4j" % "log4j-core" % "2.23.1" % Runtime + "org.apache.logging.log4j" % "log4j-core" % "2.24.0" % Runtime ), libraryDependencies += osLibDep ) From 968532cb87d638ac1d786bc88834917b91e6bc70 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 7 Sep 2024 00:18:28 +0000 Subject: [PATCH 0815/1318] Update jetty-webapp from 11.0.23 to 11.0.24 --- scalatra/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scalatra/build.sbt b/scalatra/build.sbt index 2cbbfde90..af2b6a588 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -9,7 +9,7 @@ libraryDependencies ++= Seq( "org.scalatra" %% "scalatra" % ScalatraVersion, "org.scalatra" %% "scalatra-scalatest" % ScalatraVersion % "test", "ch.qos.logback" % "logback-classic" % "1.5.7" % "runtime", - "org.eclipse.jetty" % "jetty-webapp" % "11.0.23" % "container", + "org.eclipse.jetty" % "jetty-webapp" % "11.0.24" % "container", "javax.servlet" % "javax.servlet-api" % "4.0.1" % "provided", "org.scalatra" %% "scalatra-auth" % ScalatraVersion, "org.scalatra" %% "scalatra-json" % "2.8.4", From b235458a0e719e8cb2f60b69408f45db5768ab05 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 7 Sep 2024 00:18:50 +0000 Subject: [PATCH 0816/1318] Update mongo-scala-driver from 5.1.3 to 5.1.4 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index e54245718..f62d5c573 100644 --- a/build.sbt +++ b/build.sbt @@ -271,7 +271,7 @@ lazy val scala_akka_dependencies: Seq[ModuleID] = Seq( akkaTypedTestkit, "com.lightbend.akka" %% "akka-stream-alpakka-mongodb" % "5.0.0", akkaStreamDep, - "org.mongodb.scala" %% "mongo-scala-driver" % "5.1.3", + "org.mongodb.scala" %% "mongo-scala-driver" % "5.1.4", "com.lightbend.akka" %% "akka-stream-alpakka-file" % "5.0.0", jUnitInterface, embeddedMongo % Test, From 6036795820a17721f7bd9a2b460989fc2e008dc1 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 7 Sep 2024 00:19:06 +0000 Subject: [PATCH 0817/1318] Update scala-library from 2.12.19 to 2.12.20 --- project/ScalaVersions.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/ScalaVersions.scala b/project/ScalaVersions.scala index f09e4f3fa..4a9e1afed 100644 --- a/project/ScalaVersions.scala +++ b/project/ScalaVersions.scala @@ -4,5 +4,5 @@ object ScalaVersions { @deprecated( "Use Scala 2.13 or Scala 3. Don't use 2.12 unless it is a specific feature in 2.12." ) - val scala212Version = "2.12.19" + val scala212Version = "2.12.20" } From 7576f907e5be73911706b46b0277e2c1d648b71a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 7 Sep 2024 00:19:21 +0000 Subject: [PATCH 0818/1318] Update s3, sqs from 2.27.16 to 2.27.21 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index e54245718..8dd8dea57 100644 --- a/build.sbt +++ b/build.sbt @@ -451,7 +451,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-core" % "1.6.7", "org.elasticmq" %% "elasticmq-server" % "1.6.7", "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.7", - "software.amazon.awssdk" % "sqs" % "2.27.16" + "software.amazon.awssdk" % "sqs" % "2.27.21" ), Defaults.itSettings ) @@ -564,7 +564,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.770" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.27.16" + "software.amazon.awssdk" % "s3" % "2.27.21" ), Defaults.itSettings, IntegrationTest / fork := true From d60cf315f3b367fb4446d9fefdbc71ef8f0dd796 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 11 Sep 2024 22:10:31 +0200 Subject: [PATCH 0819/1318] Collapse multiple spaces in a string --- .../RemoveMultipleSpaces.scala | 34 ++++++++++++++++ .../RemoveMultipleSpacesUnitTest.scala | 39 +++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 scala-core-modules/scala-strings-2/src/main/scala/com/baeldung/scala/strings/removemultispace/RemoveMultipleSpaces.scala create mode 100644 scala-core-modules/scala-strings-2/src/test/scala/com/baeldung/scala/strings/removemultispace/RemoveMultipleSpacesUnitTest.scala diff --git a/scala-core-modules/scala-strings-2/src/main/scala/com/baeldung/scala/strings/removemultispace/RemoveMultipleSpaces.scala b/scala-core-modules/scala-strings-2/src/main/scala/com/baeldung/scala/strings/removemultispace/RemoveMultipleSpaces.scala new file mode 100644 index 000000000..91aea6a0d --- /dev/null +++ b/scala-core-modules/scala-strings-2/src/main/scala/com/baeldung/scala/strings/removemultispace/RemoveMultipleSpaces.scala @@ -0,0 +1,34 @@ +package com.baeldung.scala.strings.removemultispace + +object RemoveMultipleSpaces { + def usingReplaceAll(str: String): String = { + str.trim.replaceAll("\\s+", " ") + } + + def usingSplit(str: String): String = { + str.trim.split("\\s+").mkString(" ") + } + + def usingZip(str: String): String = { + if (str.trim.isEmpty) { + str.trim + } else { + val zipped = str.trim.zip(str.trim.tail) + str.trim.head + zipped.collect { + case (a, b) if !(a == ' ' && b == ' ') => b + }.mkString + } + } + + def usingStringBuilder(str: String): String = { + val sb = new StringBuilder + var lastCharWasSpace = false + + for (c <- str.trim) { + if (c != ' ' || !lastCharWasSpace) sb.append(c) + lastCharWasSpace = c == ' ' + } + sb.toString + } + +} diff --git a/scala-core-modules/scala-strings-2/src/test/scala/com/baeldung/scala/strings/removemultispace/RemoveMultipleSpacesUnitTest.scala b/scala-core-modules/scala-strings-2/src/test/scala/com/baeldung/scala/strings/removemultispace/RemoveMultipleSpacesUnitTest.scala new file mode 100644 index 000000000..ea64d6fac --- /dev/null +++ b/scala-core-modules/scala-strings-2/src/test/scala/com/baeldung/scala/strings/removemultispace/RemoveMultipleSpacesUnitTest.scala @@ -0,0 +1,39 @@ +package com.baeldung.scala.strings.removemultispace + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers +import org.scalatest.prop.TableDrivenPropertyChecks + +class RemoveMultipleSpacesUnitTest + extends AnyFlatSpec + with Matchers + with TableDrivenPropertyChecks { + + private val table = Table( + ("input string", "expected"), + (" too many spaces ", "too many spaces"), + (" ", ""), + ("a", "a"), + ("a ", "a"), + ("", "") + ) + + private val functions = Seq( + ("usingReplaceAll", RemoveMultipleSpaces.usingReplaceAll), + ("usingSplit", RemoveMultipleSpaces.usingSplit), + ("usingZip", RemoveMultipleSpaces.usingZip), + ("usingStringBuilder", RemoveMultipleSpaces.usingStringBuilder), + ) + it should "remove multiple spaces with a single space in the string" in { + forAll(table) { (input, expected) => + functions.map { (name, fn) => + withClue( + s"Failed for the input string ${input} in the function ${name}" + ) { + fn(input) shouldBe expected + } + } + } + } + +} From 8dd1324b89e19048dc6ea91378ff59e2006dec20 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 14 Sep 2024 22:20:50 +0200 Subject: [PATCH 0820/1318] scalafmt --- .../removemultispace/RemoveMultipleSpacesUnitTest.scala | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scala-core-modules/scala-strings-2/src/test/scala/com/baeldung/scala/strings/removemultispace/RemoveMultipleSpacesUnitTest.scala b/scala-core-modules/scala-strings-2/src/test/scala/com/baeldung/scala/strings/removemultispace/RemoveMultipleSpacesUnitTest.scala index ea64d6fac..08d08dd69 100644 --- a/scala-core-modules/scala-strings-2/src/test/scala/com/baeldung/scala/strings/removemultispace/RemoveMultipleSpacesUnitTest.scala +++ b/scala-core-modules/scala-strings-2/src/test/scala/com/baeldung/scala/strings/removemultispace/RemoveMultipleSpacesUnitTest.scala @@ -6,8 +6,8 @@ import org.scalatest.prop.TableDrivenPropertyChecks class RemoveMultipleSpacesUnitTest extends AnyFlatSpec - with Matchers - with TableDrivenPropertyChecks { + with Matchers + with TableDrivenPropertyChecks { private val table = Table( ("input string", "expected"), @@ -22,7 +22,7 @@ class RemoveMultipleSpacesUnitTest ("usingReplaceAll", RemoveMultipleSpaces.usingReplaceAll), ("usingSplit", RemoveMultipleSpaces.usingSplit), ("usingZip", RemoveMultipleSpaces.usingZip), - ("usingStringBuilder", RemoveMultipleSpaces.usingStringBuilder), + ("usingStringBuilder", RemoveMultipleSpaces.usingStringBuilder) ) it should "remove multiple spaces with a single space in the string" in { forAll(table) { (input, expected) => From 370e685eb29226daac729809405a29a52d075b8d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 15 Sep 2024 00:18:28 +0000 Subject: [PATCH 0821/1318] Update aws-java-sdk-s3 from 1.12.771 to 1.12.772 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index c651bf7ab..529a68c25 100644 --- a/build.sbt +++ b/build.sbt @@ -561,7 +561,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) scalaMock, "com.lihaoyi" %% "utest" % "0.8.4" % "test", munitDep, - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.771" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.772" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.27.21" From 3402f764e2cf5daf24fa6b20f11772d7b18eef7d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 15 Sep 2024 00:18:41 +0000 Subject: [PATCH 0822/1318] Update os-lib from 0.10.5 to 0.10.7 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index c651bf7ab..8ddcfdb84 100644 --- a/build.sbt +++ b/build.sbt @@ -458,7 +458,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) val http4sBlaze = "0.23.16" val http4sVersion = "0.23.27" -val osLibVersion = "0.10.5" +val osLibVersion = "0.10.7" val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion From 01ef64a10656c98c455a547b3c33ff7bfe5d6614 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 15 Sep 2024 00:18:53 +0000 Subject: [PATCH 0823/1318] Update macros, util from 2.5.9 to 2.6.1 --- play-scala/dependency-injection/build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/play-scala/dependency-injection/build.sbt b/play-scala/dependency-injection/build.sbt index 510d6bf5f..86121071f 100644 --- a/play-scala/dependency-injection/build.sbt +++ b/play-scala/dependency-injection/build.sbt @@ -8,5 +8,5 @@ scalaVersion := ScalaVersions.scala3Version libraryDependencies += guice libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % LibraryVersions.scalatestPlayVersion % Test -libraryDependencies += "com.softwaremill.macwire" %% "macros" % "2.5.9" % Provided -libraryDependencies += "com.softwaremill.macwire" %% "util" % "2.5.9" +libraryDependencies += "com.softwaremill.macwire" %% "macros" % "2.6.1" % Provided +libraryDependencies += "com.softwaremill.macwire" %% "util" % "2.6.1" From 70a51b3d8ab292c8819a994e800dcaf1667eae90 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 15 Sep 2024 00:19:08 +0000 Subject: [PATCH 0824/1318] Update tapir-akka-http-server, tapir-core, ... from 1.11.2 to 1.11.3 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index eb4ae9e54..ad74c9c19 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.11.2" +val tapirV = "1.11.3" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From ee226e3e3059e9f790232dbbfc9a5bdae852de86 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 15 Sep 2024 00:19:42 +0000 Subject: [PATCH 0825/1318] Update kafka-avro-serializer from 7.7.0 to 7.7.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index c651bf7ab..8ae103697 100644 --- a/build.sbt +++ b/build.sbt @@ -524,7 +524,7 @@ val jackSonVersion = "2.17.2" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" -val kafkaAvroSerializer = "7.7.0" +val kafkaAvroSerializer = "7.7.1" val pureConfigDep = "com.github.pureconfig" %% "pureconfig" % pureconfigVersion From fa724b4891580f6ad56177fa9514c4ffb9d613d9 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 15 Sep 2024 00:20:02 +0000 Subject: [PATCH 0826/1318] Update kafka-clients from 7.7.0-ce to 7.7.1-ce --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index c651bf7ab..d5074d09a 100644 --- a/build.sbt +++ b/build.sbt @@ -518,7 +518,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) ) val spireVersion = "0.18.0" -val kafkaVersion = "7.7.0-ce" +val kafkaVersion = "7.7.1-ce" val pureconfigVersion = "0.17.7" val jackSonVersion = "2.17.2" val log4jApiScalaVersion = "13.1.0" From 74f6481a1af71973149c444caef95d8b97436fe0 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 15 Sep 2024 00:20:11 +0000 Subject: [PATCH 0827/1318] Update elasticmq-core, elasticmq-rest-sqs, ... from 1.6.7 to 1.6.8 --- build.sbt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index c651bf7ab..f5ec29494 100644 --- a/build.sbt +++ b/build.sbt @@ -448,9 +448,9 @@ lazy val scala_libraries = (project in file("scala-libraries")) logback ), libraryDependencies ++= Seq( - "org.elasticmq" %% "elasticmq-core" % "1.6.7", - "org.elasticmq" %% "elasticmq-server" % "1.6.7", - "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.7", + "org.elasticmq" %% "elasticmq-core" % "1.6.8", + "org.elasticmq" %% "elasticmq-server" % "1.6.8", + "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.8", "software.amazon.awssdk" % "sqs" % "2.27.21" ), Defaults.itSettings From 66959767919a1932c7f34000bc2efad53c0cc2e2 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 15 Sep 2024 00:20:28 +0000 Subject: [PATCH 0828/1318] Update http4s-dsl from 0.23.27 to 0.23.28 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index c651bf7ab..aec2f368d 100644 --- a/build.sbt +++ b/build.sbt @@ -457,7 +457,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) ) val http4sBlaze = "0.23.16" -val http4sVersion = "0.23.27" +val http4sVersion = "0.23.28" val osLibVersion = "0.10.5" val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion From 78416402bef7ae21539dddacb13211f6122addc4 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 15 Sep 2024 00:20:41 +0000 Subject: [PATCH 0829/1318] Update munit from 1.0.1 to 1.0.2 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index c651bf7ab..ac48dadcb 100644 --- a/build.sbt +++ b/build.sbt @@ -465,7 +465,7 @@ val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion val log4jApiScalaDep = "org.apache.logging.log4j" %% "log4j-api-scala" % "13.1.0" -val munitDep = "org.scalameta" %% "munit" % "1.0.1" % Test +val munitDep = "org.scalameta" %% "munit" % "1.0.2" % Test lazy val scala_libraries_os = (project in file("scala-libraries-os")) .settings( From bf390d8a6e69f32ff416609638c6cfb5ac309a6f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 15 Sep 2024 00:20:55 +0000 Subject: [PATCH 0830/1318] Update s3, sqs from 2.27.21 to 2.27.24 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index c651bf7ab..0bdb23e55 100644 --- a/build.sbt +++ b/build.sbt @@ -451,7 +451,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-core" % "1.6.7", "org.elasticmq" %% "elasticmq-server" % "1.6.7", "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.7", - "software.amazon.awssdk" % "sqs" % "2.27.21" + "software.amazon.awssdk" % "sqs" % "2.27.24" ), Defaults.itSettings ) @@ -564,7 +564,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.771" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.27.21" + "software.amazon.awssdk" % "s3" % "2.27.24" ), Defaults.itSettings, IntegrationTest / fork := true From 032c04055a68ff7a4e10b75aa4ce42b893a7c2a4 Mon Sep 17 00:00:00 2001 From: Stefanos Georgakis Date: Thu, 29 Aug 2024 14:06:41 +0300 Subject: [PATCH 0831/1318] [SCALA-622] Logging in ZIO app --- build.sbt | 7 +++ zio-2/src/main/resources/logback.xml | 12 +++++ .../scala/zio/logging/BaeldungLogger.scala | 49 +++++++++++++++++++ .../zio/logging/BaeldungMetricsLogger.scala | 26 ++++++++++ .../zio/logging/BaeldungZIOLoggingApp.scala | 23 +++++++++ .../logging/BaeldungZIOLoggingUnitTest.scala | 45 +++++++++++++++++ 6 files changed, 162 insertions(+) create mode 100644 zio-2/src/main/resources/logback.xml create mode 100644 zio-2/src/main/scala/com/baeldung/scala/zio/logging/BaeldungLogger.scala create mode 100644 zio-2/src/main/scala/com/baeldung/scala/zio/logging/BaeldungMetricsLogger.scala create mode 100644 zio-2/src/main/scala/com/baeldung/scala/zio/logging/BaeldungZIOLoggingApp.scala create mode 100644 zio-2/src/test/scala/com/baeldung/scala/zio/logging/BaeldungZIOLoggingUnitTest.scala diff --git a/build.sbt b/build.sbt index a137f0b8f..d04fafc4e 100644 --- a/build.sbt +++ b/build.sbt @@ -680,6 +680,13 @@ lazy val zio2 = (project in file("zio-2")) libraryDependencies += "dev.zio" %% "zio-json" % "0.7.3", libraryDependencies += "dev.zio" %% "zio-test" % zioVersion % Test, libraryDependencies += "dev.zio" %% "zio-test-sbt" % zioVersion % Test, + libraryDependencies += "dev.zio" %% "zio-logging" % "2.1.10", + libraryDependencies += "dev.zio" %% "zio-logging-slf4j2" % "2.1.10", + libraryDependencies += "ch.qos.logback" % "logback-classic" % "1.5.6", +// used in the article, but can't work with zio-logging-slf4j2 dependency +// libraryDependencies += "dev.zio" %% "zio-logging-slf4j2-bridge" % "2.1.10", + libraryDependencies += "dev.zio" %% "zio-metrics-connectors" % "2.1.0", + libraryDependencies += "dev.zio" %% "zio-metrics-connectors-prometheus" % "2.1.0", libraryDependencies ++= scalaTestDeps, testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework") ) diff --git a/zio-2/src/main/resources/logback.xml b/zio-2/src/main/resources/logback.xml new file mode 100644 index 000000000..08d24db32 --- /dev/null +++ b/zio-2/src/main/resources/logback.xml @@ -0,0 +1,12 @@ + + + + + + %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n + + + + + + diff --git a/zio-2/src/main/scala/com/baeldung/scala/zio/logging/BaeldungLogger.scala b/zio-2/src/main/scala/com/baeldung/scala/zio/logging/BaeldungLogger.scala new file mode 100644 index 000000000..eeaa3e2cb --- /dev/null +++ b/zio-2/src/main/scala/com/baeldung/scala/zio/logging/BaeldungLogger.scala @@ -0,0 +1,49 @@ +package com.baeldung.scala.zio.logging + +import zio.* +import zio.logging.backend.SLF4J +import zio.logging.{ + LogColor, + LogFilter, + LogFormat, + LoggerNameExtractor, + console, + fileJson +} +import zio.logging.LogFormat.* + +import java.nio.file.Path +import java.time.format.DateTimeFormatter + +object BaeldungLogger { + + private val filter = + LogFilter.logLevelByName( + LogLevel.Trace, + ("com.baeldung.scala.zio.logging", LogLevel.Info) + ) + + private val logFormat: LogFormat = timestamp( + DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssAZ") + ).highlight(_ => LogColor.BLUE) + |-| bracketStart |-| LogFormat.loggerName( + LoggerNameExtractor.trace + ) |-| text(":") |-| traceLine |-| bracketEnd |-| + fiberId |-| level.highlight |-| label("message", quoted(line)).highlight + + val consoleLogger: ULayer[Unit] = + Runtime.removeDefaultLoggers >>> console(logFormat, filter) + + val fileLogger: ULayer[Unit] = Runtime.removeDefaultLoggers >>> fileJson( + Path.of("baeldung-zio-logging.log"), + logFormat, + LogLevel.Debug + ) + + val slf4jLogger: ULayer[Unit] = Runtime.removeDefaultLoggers >>> SLF4J.slf4j + +// val slf4jBridgeLogger: ULayer[Unit] = Runtime.removeDefaultLoggers >>> Slf4jBridge.initialize + + val combinedLogger: ULayer[Unit] = consoleLogger ++ fileLogger + +} diff --git a/zio-2/src/main/scala/com/baeldung/scala/zio/logging/BaeldungMetricsLogger.scala b/zio-2/src/main/scala/com/baeldung/scala/zio/logging/BaeldungMetricsLogger.scala new file mode 100644 index 000000000..8f986ec6f --- /dev/null +++ b/zio-2/src/main/scala/com/baeldung/scala/zio/logging/BaeldungMetricsLogger.scala @@ -0,0 +1,26 @@ +package com.baeldung.scala.zio.logging + +import zio.* +import zio.logging.* +import zio.metrics.connectors.MetricsConfig +import zio.metrics.connectors.prometheus.{ + PrometheusPublisher, + prometheusLayer, + publisherLayer +} + +import java.io.IOException + +object BaeldungMetricsLogger { + + private val prometheusConnector + : ZLayer[Unit, IOException, PrometheusPublisher] = (ZLayer.succeed( + MetricsConfig(10.millis) + ) ++ publisherLayer) >+> prometheusLayer + val metricsLogger: ZLayer[Unit, IOException, PrometheusPublisher] = + logMetrics ++ logMetricsWith( + "custom_log_counter", + "log_level" + ) ++ prometheusConnector + +} diff --git a/zio-2/src/main/scala/com/baeldung/scala/zio/logging/BaeldungZIOLoggingApp.scala b/zio-2/src/main/scala/com/baeldung/scala/zio/logging/BaeldungZIOLoggingApp.scala new file mode 100644 index 000000000..c059443dc --- /dev/null +++ b/zio-2/src/main/scala/com/baeldung/scala/zio/logging/BaeldungZIOLoggingApp.scala @@ -0,0 +1,23 @@ +package com.baeldung.scala.zio.logging + +import zio.* +import zio.metrics.connectors.prometheus.PrometheusPublisher + +object BaeldungZIOLoggingApp extends ZIOAppDefault { + + val app: ZIO[PrometheusPublisher, Any, Unit] = for { + - <- ZIO.logTrace("This is a trace message") + _ <- ZIO.logDebug("This is a debug message") + _ <- ZIO.logInfo("This is an info message") + _ <- ZIO.logWarning("This is a warning message") + _ <- ZIO.logError("This is an error message") + _ <- ZIO.sleep(500.millis) + metricValues <- ZIO.serviceWithZIO[PrometheusPublisher](_.get) + _ <- Console.printLine(metricValues) + } yield () + + override def run: ZIO[ZIOAppArgs & Scope, Any, Any] = + app.provideLayer( + BaeldungLogger.slf4jLogger >>> BaeldungMetricsLogger.metricsLogger + ) +} diff --git a/zio-2/src/test/scala/com/baeldung/scala/zio/logging/BaeldungZIOLoggingUnitTest.scala b/zio-2/src/test/scala/com/baeldung/scala/zio/logging/BaeldungZIOLoggingUnitTest.scala new file mode 100644 index 000000000..aeda8d8e5 --- /dev/null +++ b/zio-2/src/test/scala/com/baeldung/scala/zio/logging/BaeldungZIOLoggingUnitTest.scala @@ -0,0 +1,45 @@ +package com.baeldung.scala.zio.logging + +import zio.{Chunk, LogLevel, ZIO} +import zio.test.Assertion.* +import zio.test.* +import zio.* + +object BaeldungZIOLoggingUnitTest extends ZIOSpecDefault { + + override def spec: Spec[TestEnvironment, Any] = + suite("BaeldungZIOLoggingSpec")( + test("log trace level") { + for { + - <- ZIO.logTrace("This is a trace message") + _ <- ZIO.logDebug("This is a debug message") + _ <- ZIO.logInfo("This is an info message") + _ <- ZIO.logWarning("This is a warning message") + _ <- ZIO.logError("This is an error message") + loggerOutput <- ZTestLogger.logOutput + } yield assertTrue(loggerOutput.size == 5) && + assert(loggerOutput.map(_.logLevel))( + equalTo( + Chunk( + LogLevel.Trace, + LogLevel.Debug, + LogLevel.Info, + LogLevel.Warning, + LogLevel.Error + ) + ) + ) && + assert(loggerOutput.map(_.message()))( + equalTo( + Chunk( + "This is a trace message", + "This is a debug message", + "This is an info message", + "This is a warning message", + "This is an error message" + ) + ) + ) + } + ).provideLayer(Runtime.removeDefaultLoggers >>> ZTestLogger.default) +} From abdd34b31a4b75e903fd3d25e5a8ea4f893a3232 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Thu, 19 Sep 2024 21:13:52 +0200 Subject: [PATCH 0832/1318] date parsing improvemnt --- .../scala/date/DateParserUnitTest.scala | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/date/DateParserUnitTest.scala b/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/date/DateParserUnitTest.scala index 69a5ce742..e426845f1 100644 --- a/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/date/DateParserUnitTest.scala +++ b/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/date/DateParserUnitTest.scala @@ -3,8 +3,9 @@ package com.baeldung.scala.date import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpec +import java.time.format.DateTimeFormatter import java.time.temporal.ChronoField -import java.time.{ZoneId, ZonedDateTime} +import java.time.{LocalDate, LocalDateTime, ZoneId, ZonedDateTime} import java.util.Calendar import scala.util.Try @@ -73,5 +74,21 @@ class DateParserUnitTest extends AnyWordSpec with Matchers { attemptedParse.failed.get.getMessage.contains("could not be parsed") ) } + + "parse date using java.time" in { + val dateStr = "2024-09-19" + LocalDate.parse(dateStr) shouldBe LocalDate.of(2024, 9, 19) + } + "parse non ISO date string" in { + val dateStr = "19.09.2024" + val formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy") + LocalDate.parse(dateStr, formatter) shouldBe LocalDate.of(2024, 9, 19) + } + "parse datetime using java.time" in { + val dateStr = "19.09.2024 10:20:30" + val formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss") + LocalDateTime.parse(dateStr, formatter) shouldBe LocalDateTime.of(2024, 9, + 19, 10, 20, 30) + } } } From 7fb71000db14a6c8dbc29907950edd9f0d7d9abf Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 20 Sep 2024 22:18:16 +0200 Subject: [PATCH 0833/1318] update test name --- .../test/scala/com/baeldung/scala/date/DateParserUnitTest.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/date/DateParserUnitTest.scala b/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/date/DateParserUnitTest.scala index e426845f1..e0a73aa7b 100644 --- a/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/date/DateParserUnitTest.scala +++ b/scala-core-modules/scala-core-dates/src/test/scala/com/baeldung/scala/date/DateParserUnitTest.scala @@ -75,7 +75,7 @@ class DateParserUnitTest extends AnyWordSpec with Matchers { ) } - "parse date using java.time" in { + "parse ISO date using java.time" in { val dateStr = "2024-09-19" LocalDate.parse(dateStr) shouldBe LocalDate.of(2024, 9, 19) } From cdbe324a2f445f10f934aaa08bf15291c46b7106 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 23 Sep 2024 00:19:05 +0000 Subject: [PATCH 0834/1318] Update macros, util from 2.6.1 to 2.6.2 --- play-scala/dependency-injection/build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/play-scala/dependency-injection/build.sbt b/play-scala/dependency-injection/build.sbt index 86121071f..65682ba02 100644 --- a/play-scala/dependency-injection/build.sbt +++ b/play-scala/dependency-injection/build.sbt @@ -8,5 +8,5 @@ scalaVersion := ScalaVersions.scala3Version libraryDependencies += guice libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % LibraryVersions.scalatestPlayVersion % Test -libraryDependencies += "com.softwaremill.macwire" %% "macros" % "2.6.1" % Provided -libraryDependencies += "com.softwaremill.macwire" %% "util" % "2.6.1" +libraryDependencies += "com.softwaremill.macwire" %% "macros" % "2.6.2" % Provided +libraryDependencies += "com.softwaremill.macwire" %% "util" % "2.6.2" From db0c9a463789de4710c45a45330b6165c9611184 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 23 Sep 2024 00:19:23 +0000 Subject: [PATCH 0835/1318] Update tapir-akka-http-server, tapir-core, ... from 1.11.3 to 1.11.4 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index ad74c9c19..076e58a24 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.11.3" +val tapirV = "1.11.4" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From ac448b01e2f718909a8c4aa71d6b7462dc87a2a5 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 23 Sep 2024 00:20:04 +0000 Subject: [PATCH 0836/1318] Update zio-logging, zio-logging-slf4j2 from 2.1.10 to 2.1.17 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index d04fafc4e..bcfd2a49c 100644 --- a/build.sbt +++ b/build.sbt @@ -680,8 +680,8 @@ lazy val zio2 = (project in file("zio-2")) libraryDependencies += "dev.zio" %% "zio-json" % "0.7.3", libraryDependencies += "dev.zio" %% "zio-test" % zioVersion % Test, libraryDependencies += "dev.zio" %% "zio-test-sbt" % zioVersion % Test, - libraryDependencies += "dev.zio" %% "zio-logging" % "2.1.10", - libraryDependencies += "dev.zio" %% "zio-logging-slf4j2" % "2.1.10", + libraryDependencies += "dev.zio" %% "zio-logging" % "2.1.17", + libraryDependencies += "dev.zio" %% "zio-logging-slf4j2" % "2.1.17", libraryDependencies += "ch.qos.logback" % "logback-classic" % "1.5.6", // used in the article, but can't work with zio-logging-slf4j2 dependency // libraryDependencies += "dev.zio" %% "zio-logging-slf4j2-bridge" % "2.1.10", From cbed496705a1f0592e7dd9dabc43c0e25760ce45 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 23 Sep 2024 00:20:24 +0000 Subject: [PATCH 0837/1318] Update zio-metrics-connectors, ... from 2.1.0 to 2.3.1 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index d04fafc4e..382014cd8 100644 --- a/build.sbt +++ b/build.sbt @@ -685,8 +685,8 @@ lazy val zio2 = (project in file("zio-2")) libraryDependencies += "ch.qos.logback" % "logback-classic" % "1.5.6", // used in the article, but can't work with zio-logging-slf4j2 dependency // libraryDependencies += "dev.zio" %% "zio-logging-slf4j2-bridge" % "2.1.10", - libraryDependencies += "dev.zio" %% "zio-metrics-connectors" % "2.1.0", - libraryDependencies += "dev.zio" %% "zio-metrics-connectors-prometheus" % "2.1.0", + libraryDependencies += "dev.zio" %% "zio-metrics-connectors" % "2.3.1", + libraryDependencies += "dev.zio" %% "zio-metrics-connectors-prometheus" % "2.3.1", libraryDependencies ++= scalaTestDeps, testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework") ) From fb6ebfd747b78c0967f3aaacd541a1ec248cf86a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 23 Sep 2024 00:20:45 +0000 Subject: [PATCH 0838/1318] Update joda-time from 2.12.7 to 2.13.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d04fafc4e..9a27b8a13 100644 --- a/build.sbt +++ b/build.sbt @@ -174,7 +174,7 @@ lazy val scala_core_dates = name := "scala-core-dates", scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps, - libraryDependencies += "joda-time" % "joda-time" % "2.12.7", + libraryDependencies += "joda-time" % "joda-time" % "2.13.0", libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "2.32.0", libraryDependencies += "com.typesafe" % "config" % "1.4.3" ) From 434480dbe07eb17659a25901d3feaef7abe19d6a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 23 Sep 2024 00:21:18 +0000 Subject: [PATCH 0839/1318] Update spark-core, spark-sql from 3.5.2 to 3.5.3 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d04fafc4e..7c07fd692 100644 --- a/build.sbt +++ b/build.sbt @@ -401,7 +401,7 @@ lazy val scala2_libraries = val circeVersion = "0.14.10" val monixVersion = "3.4.1" -val sparkVersion = "3.5.2" +val sparkVersion = "3.5.3" val elastic4sVersion = "8.15.0" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion From f5a4d0db1a534cb0b46104254a6dd4333212407c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 23 Sep 2024 00:21:29 +0000 Subject: [PATCH 0840/1318] Update scala3-library from 3.5.0 to 3.5.1 --- project/ScalaVersions.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/ScalaVersions.scala b/project/ScalaVersions.scala index 4a9e1afed..ede809bc2 100644 --- a/project/ScalaVersions.scala +++ b/project/ScalaVersions.scala @@ -1,6 +1,6 @@ object ScalaVersions { val scala2Version = "2.13.14" - val scala3Version = "3.5.0" + val scala3Version = "3.5.1" @deprecated( "Use Scala 2.13 or Scala 3. Don't use 2.12 unless it is a specific feature in 2.12." ) From 954a710880753c6827d80b4c2cd1dfc56ebcf2ec Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 23 Sep 2024 00:21:43 +0000 Subject: [PATCH 0841/1318] Update sbt from 1.10.1 to 1.10.2 --- project/build.properties | 2 +- sbt-release/project/build.properties | 2 +- sbt-standalone/project/build.properties | 2 +- scala-graalvm/scala-graalvm-http-app/project/build.properties | 2 +- scala-sbt/intro-to-sbt/project/build.properties | 2 +- scala-sbt/scalafix/project/build.properties | 2 +- scalatra/project/build.properties | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/project/build.properties b/project/build.properties index 74d800f21..a1ff42a65 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1,2 +1,2 @@ -sbt.version=1.10.1 +sbt.version=1.10.2 diff --git a/sbt-release/project/build.properties b/sbt-release/project/build.properties index 136f452e0..23f7d9793 100644 --- a/sbt-release/project/build.properties +++ b/sbt-release/project/build.properties @@ -1 +1 @@ -sbt.version = 1.10.1 +sbt.version = 1.10.2 diff --git a/sbt-standalone/project/build.properties b/sbt-standalone/project/build.properties index ee4c672cd..0b699c305 100644 --- a/sbt-standalone/project/build.properties +++ b/sbt-standalone/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.1 +sbt.version=1.10.2 diff --git a/scala-graalvm/scala-graalvm-http-app/project/build.properties b/scala-graalvm/scala-graalvm-http-app/project/build.properties index ee4c672cd..0b699c305 100644 --- a/scala-graalvm/scala-graalvm-http-app/project/build.properties +++ b/scala-graalvm/scala-graalvm-http-app/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.1 +sbt.version=1.10.2 diff --git a/scala-sbt/intro-to-sbt/project/build.properties b/scala-sbt/intro-to-sbt/project/build.properties index ee4c672cd..0b699c305 100644 --- a/scala-sbt/intro-to-sbt/project/build.properties +++ b/scala-sbt/intro-to-sbt/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.1 +sbt.version=1.10.2 diff --git a/scala-sbt/scalafix/project/build.properties b/scala-sbt/scalafix/project/build.properties index cb409aac6..3829f19f7 100644 --- a/scala-sbt/scalafix/project/build.properties +++ b/scala-sbt/scalafix/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.1 \ No newline at end of file +sbt.version=1.10.2 \ No newline at end of file diff --git a/scalatra/project/build.properties b/scalatra/project/build.properties index ee4c672cd..0b699c305 100644 --- a/scalatra/project/build.properties +++ b/scalatra/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.1 +sbt.version=1.10.2 From 3b45bd5a264d95adfee2f9ec568699d34f378d69 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 23 Sep 2024 00:21:58 +0000 Subject: [PATCH 0842/1318] Update scalacheck from 1.18.0 to 1.18.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d04fafc4e..fbeaf7d93 100644 --- a/build.sbt +++ b/build.sbt @@ -557,7 +557,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) libraryDependencies ++= scalaTestDeps .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( - "org.scalacheck" %% "scalacheck" % "1.18.0" % Test, + "org.scalacheck" %% "scalacheck" % "1.18.1" % Test, scalaMock, "com.lihaoyi" %% "utest" % "0.8.4" % "test", munitDep, From cd488e543c5fcb013ee6f6d33b725053aa8b0a7f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 23 Sep 2024 00:22:31 +0000 Subject: [PATCH 0843/1318] Update s3, sqs from 2.27.24 to 2.28.6 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index d04fafc4e..d081ed381 100644 --- a/build.sbt +++ b/build.sbt @@ -451,7 +451,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-core" % "1.6.8", "org.elasticmq" %% "elasticmq-server" % "1.6.8", "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.8", - "software.amazon.awssdk" % "sqs" % "2.27.24" + "software.amazon.awssdk" % "sqs" % "2.28.6" ), Defaults.itSettings ) @@ -564,7 +564,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.772" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.27.24" + "software.amazon.awssdk" % "s3" % "2.28.6" ), Defaults.itSettings, IntegrationTest / fork := true From 18b90ce02b4501cb21ef161d62d2e0578853b486 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 25 Sep 2024 00:19:02 +0000 Subject: [PATCH 0844/1318] Update elastic4s-client-esjava, ... from 8.15.0 to 8.15.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 81238d61e..018dead1d 100644 --- a/build.sbt +++ b/build.sbt @@ -402,7 +402,7 @@ lazy val scala2_libraries = val circeVersion = "0.14.10" val monixVersion = "3.4.1" val sparkVersion = "3.5.3" -val elastic4sVersion = "8.15.0" +val elastic4sVersion = "8.15.1" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion val sparkSqlDep = "org.apache.spark" %% "spark-sql" % sparkVersion From 6724de747b3506a527b1a4caeb1ac1a96f40fbfb Mon Sep 17 00:00:00 2001 From: RannelT Date: Sat, 28 Sep 2024 02:38:45 +0800 Subject: [PATCH 0845/1318] Update README.md --- zio-2/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/zio-2/README.md b/zio-2/README.md index bce7d03df..d908add26 100644 --- a/zio-2/README.md +++ b/zio-2/README.md @@ -1,3 +1,4 @@ ### Relevant Articles: - [Test Aspects in ZIO Test](https://www.baeldung.com/scala/zio-test-aspects) - [Introduction to ZIO Json](https://www.baeldung.com/scala/zio-json) +- [Logging in ZIO Applications](https://www.baeldung.com/scala/zio-logging) From b7005111cf53c9c773f5b8990455442d9e702ff8 Mon Sep 17 00:00:00 2001 From: RannelT Date: Sat, 28 Sep 2024 02:39:36 +0800 Subject: [PATCH 0846/1318] Update README.md --- scala-core-modules/scala-core-8/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-core-modules/scala-core-8/README.md b/scala-core-modules/scala-core-8/README.md index 769ceb05b..0b1df72a2 100644 --- a/scala-core-modules/scala-core-8/README.md +++ b/scala-core-modules/scala-core-8/README.md @@ -6,3 +6,4 @@ - [Different Ways to Reverse a Sequence in Scala](https://www.baeldung.com/scala/reverse-sequence) - [Transforming a List of Futures Ignoring Failures](https://www.baeldung.com/scala/transform-list-futures-ignore-failures) - [Difference Between Braces and Parentheses in Scala](https://www.baeldung.com/scala/braces-vs-parentheses) +- [Stackable Trait Pattern in Scala](https://www.baeldung.com/scala/stackable-trait-pattern) From 1363bf46d4b03f60bea22f56b485eced80704d45 Mon Sep 17 00:00:00 2001 From: RannelT Date: Sat, 28 Sep 2024 02:40:32 +0800 Subject: [PATCH 0847/1318] Update README.md --- scala-core-modules/scala-strings-2/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scala-core-modules/scala-strings-2/README.md b/scala-core-modules/scala-strings-2/README.md index a70e13825..38a047a7e 100644 --- a/scala-core-modules/scala-strings-2/README.md +++ b/scala-core-modules/scala-strings-2/README.md @@ -5,3 +5,4 @@ This module contains articles about Scala's Strings. ### Relevant Articles: - [How to Check if a String Is Null or Empty in Scala](https://www.baeldung.com/scala/string-test-null-empty) - [Convert From Camel Case to Snake Case in Scala](https://www.baeldung.com/scala/camel-snake-case-automatic-conversion) +- [Convert Multiple Spaces Into a Single Space in Scala](https://www.baeldung.com/scala/multiple-spaces-to-single-space) From f44a85fd9e0a6b84a3df34d772de18b8de961508 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 00:19:26 +0000 Subject: [PATCH 0848/1318] Update jackson-databind from 2.17.2 to 2.18.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 018dead1d..986bba2b9 100644 --- a/build.sbt +++ b/build.sbt @@ -520,7 +520,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) val spireVersion = "0.18.0" val kafkaVersion = "7.7.1-ce" val pureconfigVersion = "0.17.7" -val jackSonVersion = "2.17.2" +val jackSonVersion = "2.18.0" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" From 44de9092ecbd08d26a3be1dbc4bf66d4500338fb Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 00:19:45 +0000 Subject: [PATCH 0849/1318] Update jackson-datatype-jsr310 from 2.17.2 to 2.18.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 018dead1d..986bba2b9 100644 --- a/build.sbt +++ b/build.sbt @@ -520,7 +520,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) val spireVersion = "0.18.0" val kafkaVersion = "7.7.1-ce" val pureconfigVersion = "0.17.7" -val jackSonVersion = "2.17.2" +val jackSonVersion = "2.18.0" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" From 96080232ed53f1e75df338ee414cbd784f227180 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 00:20:01 +0000 Subject: [PATCH 0850/1318] Update jackson-module-scala from 2.17.2 to 2.18.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 018dead1d..986bba2b9 100644 --- a/build.sbt +++ b/build.sbt @@ -520,7 +520,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) val spireVersion = "0.18.0" val kafkaVersion = "7.7.1-ce" val pureconfigVersion = "0.17.7" -val jackSonVersion = "2.17.2" +val jackSonVersion = "2.18.0" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" From 3465c158f553085049ddbe2be903d9c4f4b1ed72 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 00:20:18 +0000 Subject: [PATCH 0851/1318] Update nscala-time from 2.32.0 to 2.34.0 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 018dead1d..a0b2202f1 100644 --- a/build.sbt +++ b/build.sbt @@ -175,7 +175,7 @@ lazy val scala_core_dates = scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps, libraryDependencies += "joda-time" % "joda-time" % "2.13.0", - libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "2.32.0", + libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "2.34.0", libraryDependencies += "com.typesafe" % "config" % "1.4.3" ) @@ -513,7 +513,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) .settings( name := "nscalatime", scalaVersion := scala3Version, - libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "2.32.0", + libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "2.34.0", libraryDependencies ++= scalaTestDeps ) From e8d28e55c7baef16f554e4440755a2a2e24b2a9b Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 00:20:32 +0000 Subject: [PATCH 0852/1318] Update tapir-akka-http-server, tapir-core, ... from 1.11.4 to 1.11.5 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index 076e58a24..4e7867dec 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.11.4" +val tapirV = "1.11.5" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From f27f2bf4fda25425ca20c3d02a25785a95771017 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 00:20:51 +0000 Subject: [PATCH 0853/1318] Update slick from 3.5.1 to 3.5.2 --- build.sbt | 2 +- scalatra/build.sbt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 018dead1d..a5863b6c7 100644 --- a/build.sbt +++ b/build.sbt @@ -345,7 +345,7 @@ lazy val scala_akka_3 = (project in file("scala-akka-3")) ) val monocleVersion = "2.1.0" -val slickVersion = "3.5.1" +val slickVersion = "3.5.2" val shapelessVersion = "2.3.12" val scalazVersion = "7.3.8" val fs2Version = "3.11.0" diff --git a/scalatra/build.sbt b/scalatra/build.sbt index f866b207d..71690bdd5 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -14,7 +14,7 @@ libraryDependencies ++= Seq( "org.scalatra" %% "scalatra-auth" % ScalatraVersion, "org.scalatra" %% "scalatra-json" % "2.8.4", "org.json4s" %% "json4s-jackson" % "4.0.7", - "com.typesafe.slick" %% "slick" % "3.5.1", + "com.typesafe.slick" %% "slick" % "3.5.2", "com.h2database" % "h2" % "2.1.214", "com.mchange" % "c3p0" % "0.10.1" ) From 56ae9b145d1b3e52a828fa06c721a2d4c02d65d4 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 00:21:23 +0000 Subject: [PATCH 0854/1318] Update elastic4s-client-esjava, ... from 8.15.1 to 8.15.2 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 018dead1d..3b83430a0 100644 --- a/build.sbt +++ b/build.sbt @@ -402,7 +402,7 @@ lazy val scala2_libraries = val circeVersion = "0.14.10" val monixVersion = "3.4.1" val sparkVersion = "3.5.3" -val elastic4sVersion = "8.15.1" +val elastic4sVersion = "8.15.2" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion val sparkSqlDep = "org.apache.spark" %% "spark-sql" % sparkVersion From 5c0759efd1fee3fd2afbd2aa88ba4e2a914ee859 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 00:21:37 +0000 Subject: [PATCH 0855/1318] Update log4j-core from 2.24.0 to 2.24.1 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 018dead1d..a865efccd 100644 --- a/build.sbt +++ b/build.sbt @@ -424,7 +424,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) circeParserDep, "com.softwaremill.retry" %% "retry" % "0.3.6", log4jApiScalaDep, - "org.apache.logging.log4j" % "log4j-core" % "2.24.0" % Runtime, + "org.apache.logging.log4j" % "log4j-core" % "2.24.1" % Runtime, "com.typesafe.scala-logging" %% "scala-logging" % "3.9.5", "software.amazon.awssdk" % "s3" % "2.25.9", "com.github.seratch" %% "awscala" % "0.9.2" @@ -474,7 +474,7 @@ lazy val scala_libraries_os = (project in file("scala-libraries-os")) libraryDependencies ++= scalaTestDeps, libraryDependencies ++= Seq( log4jApiScalaDep, - "org.apache.logging.log4j" % "log4j-core" % "2.24.0" % Runtime + "org.apache.logging.log4j" % "log4j-core" % "2.24.1" % Runtime ), libraryDependencies += osLibDep ) From c7f03143fcb685b32307e41473804926bd62e641 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 00:21:53 +0000 Subject: [PATCH 0856/1318] Update mockito-core from 5.13.0 to 5.14.1 --- play-scala/caching-in-play/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/play-scala/caching-in-play/build.sbt b/play-scala/caching-in-play/build.sbt index e96664a6d..bfd51457d 100644 --- a/play-scala/caching-in-play/build.sbt +++ b/play-scala/caching-in-play/build.sbt @@ -11,6 +11,6 @@ libraryDependencies += guice libraryDependencies += caffeine libraryDependencies += ws libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % LibraryVersions.scalatestPlayVersion % Test -libraryDependencies += "org.mockito" % "mockito-core" % "5.13.0" % Test +libraryDependencies += "org.mockito" % "mockito-core" % "5.14.1" % Test PlayKeys.devSettings += "play.server.http.port" -> "9000" From 6ebedcb3b316aff2b62f8cbc142227279b4625fc Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 00:22:05 +0000 Subject: [PATCH 0857/1318] Update mongo-scala-driver from 5.1.4 to 5.2.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 018dead1d..841442801 100644 --- a/build.sbt +++ b/build.sbt @@ -271,7 +271,7 @@ lazy val scala_akka_dependencies: Seq[ModuleID] = Seq( akkaTypedTestkit, "com.lightbend.akka" %% "akka-stream-alpakka-mongodb" % "5.0.0", akkaStreamDep, - "org.mongodb.scala" %% "mongo-scala-driver" % "5.1.4", + "org.mongodb.scala" %% "mongo-scala-driver" % "5.2.0", "com.lightbend.akka" %% "akka-stream-alpakka-file" % "5.0.0", jUnitInterface, embeddedMongo % Test, From 31fa03851880d16de889660f6d2e845d43ecdbc2 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 00:22:16 +0000 Subject: [PATCH 0858/1318] Update sbt-scalajs from 1.16.0 to 1.17.0 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index b2ccfa400..14a7fa06a 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,7 +1,7 @@ addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.2") addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.5") -addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.16.0") +addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.17.0") addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.2.1") libraryDependencies += "ai.kien" %% "python-native-libs" % "0.2.4" From 53e64f3d48bd68c702d2abf709a992319777ff2f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 00:22:29 +0000 Subject: [PATCH 0859/1318] Update scala-compiler, scala-library, ... from 2.13.14 to 2.13.15 --- project/ScalaVersions.scala | 2 +- scala-lagom/build.sbt | 2 +- scala-sbt/wart-remover/build.sbt | 4 ++-- scala-sbt/wart-remover/custom-warts/build.sbt | 2 +- scalatra/build.sbt | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/project/ScalaVersions.scala b/project/ScalaVersions.scala index ede809bc2..f1d261861 100644 --- a/project/ScalaVersions.scala +++ b/project/ScalaVersions.scala @@ -1,5 +1,5 @@ object ScalaVersions { - val scala2Version = "2.13.14" + val scala2Version = "2.13.15" val scala3Version = "3.5.1" @deprecated( "Use Scala 2.13 or Scala 3. Don't use 2.12 unless it is a specific feature in 2.12." diff --git a/scala-lagom/build.sbt b/scala-lagom/build.sbt index 67cb48957..bca362b23 100644 --- a/scala-lagom/build.sbt +++ b/scala-lagom/build.sbt @@ -2,7 +2,7 @@ organization in ThisBuild := "com.baeldung" version in ThisBuild := "1.0-SNAPSHOT" // the Scala version that will be used for cross-compiled libraries -scalaVersion in ThisBuild := "2.13.14" +scalaVersion in ThisBuild := "2.13.15" val macwire = "com.softwaremill.macwire" %% "macros" % "2.3.3" % "provided" val scalaTest = "org.scalatest" %% "scalatest" % "3.1.1" % Test diff --git a/scala-sbt/wart-remover/build.sbt b/scala-sbt/wart-remover/build.sbt index 2fc355eae..d51a12796 100644 --- a/scala-sbt/wart-remover/build.sbt +++ b/scala-sbt/wart-remover/build.sbt @@ -1,5 +1,5 @@ lazy val customWarts = (project in file("custom-warts")).settings( - scalaVersion := "2.13.14", + scalaVersion := "2.13.15", name := "CustomWarts", version := "1.0.0", exportJars := true, @@ -10,7 +10,7 @@ lazy val root = (project in file(".")) .dependsOn(customWarts) .settings( name := "wart-remover", - scalaVersion := "2.13.14", + scalaVersion := "2.13.15", version := "1.0.0", wartremoverWarnings ++= Seq(Wart.AsInstanceOf, Wart.Null), wartremoverExcluded += baseDirectory.value / "src" / "main" / "scala" / "com" / "baeldung" / "scala" / "wartremover" / "Excluded.scala", diff --git a/scala-sbt/wart-remover/custom-warts/build.sbt b/scala-sbt/wart-remover/custom-warts/build.sbt index 74e5c673f..ed411c6f5 100644 --- a/scala-sbt/wart-remover/custom-warts/build.sbt +++ b/scala-sbt/wart-remover/custom-warts/build.sbt @@ -1,6 +1,6 @@ /*lazy val root = (project in file(".")).settings( name := "custom-warts", - scalaVersion := "2.13.14", + scalaVersion := "2.13.15", organization := "com.baeldung", version := "1.0.0-SNAPSHOT", libraryDependencies ++= Seq( diff --git a/scalatra/build.sbt b/scalatra/build.sbt index f866b207d..aa0462a8a 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -1,6 +1,6 @@ val ScalatraVersion = "2.8.4" -ThisBuild / scalaVersion := "2.13.14" +ThisBuild / scalaVersion := "2.13.15" ThisBuild / organization := "baeldung" name := "scalatratutorial" From ed5ecc3f51b1863e57fdcd647c104171b7c51e2c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 00:22:41 +0000 Subject: [PATCH 0860/1318] Update pulsar from 1.20.1 to 1.20.2 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 018dead1d..64b369282 100644 --- a/build.sbt +++ b/build.sbt @@ -381,7 +381,7 @@ lazy val scala2_libraries = "org.scala-lang.modules" %% "scala-async" % "1.0.1", "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.10.0", "com.clever-cloud.pulsar4s" %% "pulsar4s-jackson" % "2.10.0", - "org.testcontainers" % "pulsar" % "1.20.1" % IntegrationTest, + "org.testcontainers" % "pulsar" % "1.20.2" % IntegrationTest, "org.apache.kafka" % "kafka-clients" % kafkaVersion, "com.fasterxml.jackson.core" % "jackson-databind" % jackSonVersion, "com.fasterxml.jackson.datatype" % "jackson-datatype-jsr310" % jackSonVersion, From 5c2d3b906e1a05af62c93b258085853586397554 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 00:22:55 +0000 Subject: [PATCH 0861/1318] Update jedis from 5.1.5 to 5.2.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 018dead1d..fdca4a4c0 100644 --- a/build.sbt +++ b/build.sbt @@ -488,7 +488,7 @@ lazy val redis_intro = libraryDependencies ++= scalaTestDeps .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( - "redis.clients" % "jedis" % "5.1.5", + "redis.clients" % "jedis" % "5.2.0", "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.14.1", "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % "it" ), From ffa19013cd3c7dc4dddf2fcdd8ea8717038828c8 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 00:23:11 +0000 Subject: [PATCH 0862/1318] Update s3, sqs from 2.28.6 to 2.28.12 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 018dead1d..2ad35d7b2 100644 --- a/build.sbt +++ b/build.sbt @@ -451,7 +451,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-core" % "1.6.8", "org.elasticmq" %% "elasticmq-server" % "1.6.8", "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.8", - "software.amazon.awssdk" % "sqs" % "2.28.6" + "software.amazon.awssdk" % "sqs" % "2.28.12" ), Defaults.itSettings ) @@ -564,7 +564,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.772" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.28.6" + "software.amazon.awssdk" % "s3" % "2.28.12" ), Defaults.itSettings, IntegrationTest / fork := true From 354ee9eddef84ab3e1a5083ff78f1b561d115d98 Mon Sep 17 00:00:00 2001 From: baovitt Date: Tue, 1 Oct 2024 18:55:38 -0400 Subject: [PATCH 0863/1318] chimney --- build.sbt | 1 + .../scala/com/baeldung/chimney/Codec.scala | 10 ++ .../main/scala/com/baeldung/chimney/Iso.scala | 10 ++ .../baeldung/chimney/PartialTransformer.scala | 15 +++ .../scala/com/baeldung/chimney/Patcher.scala | 22 ++++ .../com/baeldung/chimney/Transformer.scala | 106 ++++++++++++++++++ 6 files changed, 164 insertions(+) create mode 100644 scala-libraries/src/main/scala/com/baeldung/chimney/Codec.scala create mode 100644 scala-libraries/src/main/scala/com/baeldung/chimney/Iso.scala create mode 100644 scala-libraries/src/main/scala/com/baeldung/chimney/PartialTransformer.scala create mode 100644 scala-libraries/src/main/scala/com/baeldung/chimney/Patcher.scala create mode 100644 scala-libraries/src/main/scala/com/baeldung/chimney/Transformer.scala diff --git a/build.sbt b/build.sbt index 116cf8f1f..d02717fb3 100644 --- a/build.sbt +++ b/build.sbt @@ -445,6 +445,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.7", "software.amazon.awssdk" % "sqs" % "2.27.10" ), + libraryDependencies += "io.scalaland" %% "chimney" % "1.4.0", Defaults.itSettings ) diff --git a/scala-libraries/src/main/scala/com/baeldung/chimney/Codec.scala b/scala-libraries/src/main/scala/com/baeldung/chimney/Codec.scala new file mode 100644 index 000000000..18a225758 --- /dev/null +++ b/scala-libraries/src/main/scala/com/baeldung/chimney/Codec.scala @@ -0,0 +1,10 @@ +package com.baeldung.chimney + +import io.scalaland.chimney.*, dsl.*, partial.* + +object ChimneyCodec extends App: + + case class Domain(a: Int, b: String) + case class Dto(b: Option[String], a: Option[Int]) + + given Codec[Domain, Dto] = Codec.derive diff --git a/scala-libraries/src/main/scala/com/baeldung/chimney/Iso.scala b/scala-libraries/src/main/scala/com/baeldung/chimney/Iso.scala new file mode 100644 index 000000000..8f5f2d45a --- /dev/null +++ b/scala-libraries/src/main/scala/com/baeldung/chimney/Iso.scala @@ -0,0 +1,10 @@ +package com.baeldung.chimney + +import io.scalaland.chimney.*, dsl.*, partial.* + +object ChimneyIso extends App: + + case class StructuredItem(uuid: java.util.UUID) + case class DomainItem(uuid: java.util.UUID) + + given Iso[StructuredItem, DomainItem] = Iso.derive diff --git a/scala-libraries/src/main/scala/com/baeldung/chimney/PartialTransformer.scala b/scala-libraries/src/main/scala/com/baeldung/chimney/PartialTransformer.scala new file mode 100644 index 000000000..b8e212ddd --- /dev/null +++ b/scala-libraries/src/main/scala/com/baeldung/chimney/PartialTransformer.scala @@ -0,0 +1,15 @@ +package com.baeldung.chimney + +import io.scalaland.chimney.*, dsl.*, partial.* + +object ChimneyPartialTransformer extends App: + + val fn: Int => Boolean = + case 0 => false + case 1 => true + case i => throw Exception(s"Provided integer invalid: $i") + + given PartialTransformer[Int, Boolean] = + PartialTransformer.fromFunction(fn) + + val result: Result[Boolean] = 0.transformIntoPartial[Boolean] diff --git a/scala-libraries/src/main/scala/com/baeldung/chimney/Patcher.scala b/scala-libraries/src/main/scala/com/baeldung/chimney/Patcher.scala new file mode 100644 index 000000000..16e8fc427 --- /dev/null +++ b/scala-libraries/src/main/scala/com/baeldung/chimney/Patcher.scala @@ -0,0 +1,22 @@ +package com.baeldung.chimney + +import io.scalaland.chimney.dsl.* + +object ChimneyPatcher extends App: + + case class User(id: Int, email: Option[String], phone: Option[Long]) + + case class UserUpdateForm(email: String, phone: Long) + + val user = User(10, Some("abc@@domain.com"), Some(1234567890L)) + val updateForm = UserUpdateForm("xyz@@domain.com", 123123123L) + + val patchedValue: User = user.patchUsing(updateForm) + + // Standard Library Alternative + + case class SimpleCaseClass(a: Int, b: Int) + + val simpleClass = SimpleCaseClass(0, 0) + + simpleClass.copy(b = 2) // SimpleCaseClass(0, 2) diff --git a/scala-libraries/src/main/scala/com/baeldung/chimney/Transformer.scala b/scala-libraries/src/main/scala/com/baeldung/chimney/Transformer.scala new file mode 100644 index 000000000..5f8778baf --- /dev/null +++ b/scala-libraries/src/main/scala/com/baeldung/chimney/Transformer.scala @@ -0,0 +1,106 @@ +package com.baeldung.chimney + +import io.scalaland.chimney.*, dsl.*, partial.* + +object ChimneyTransformers extends App: + + class MyType(val a: Int) + + class MyOtherType(val b: String): + override def toString: String = s"MyOtherType($b)" + + val transformer: Transformer[MyType, MyOtherType] = (src: MyType) => + new MyOtherType(src.a.toString) + + transformer.transform(new MyType(10)) // new MyOtherType("10") + + implicit val transformerAsImplicit: Transformer[MyType, MyOtherType] = + transformer + + (new MyType(10)).transformInto[MyOtherType] + + // Transitive Given Instances + + trait Serial[T]: + def serial(v: T): String + + given Serial[MyOtherType] with + def serial(v: MyOtherType): String = v.toString + + given [F, T](using Serial[T], Transformer[F, T]): Serial[F] with + def serial(v: F): String = + summon[Serial[T]].serial: + summon[Transformer[F, T]].transform(v) + + // Automatic Case Class Transformation + + // UserDTO + + case class UserDTO( + name: String, // 1. primitive + addresses: Seq[AddressDTO], // 2. Seq collection + recovery: Option[RecoveryMethodDTO] // 3. Option type + ) + + case class AddressDTO(street: String, city: String) + + sealed trait RecoveryMethodDTO + + object RecoveryMethodDTO: + case class Phone(value: PhoneDTO) extends RecoveryMethodDTO + case class Email(value: EmailDTO) extends RecoveryMethodDTO + + case class PhoneDTO(number: String) + case class EmailDTO(email: String) + + // User Domain Model + + case class User( + name: Username, + addresses: List[Address], + recovery: RecoveryMethod + ) + + case class Username(name: String) extends AnyVal + case class Address(street: String, city: String) + + enum RecoveryMethod: + case Phone(number: String) + case Email(email: String) + + // we can do a transformation: + + User( + Username("John"), + List(Address("Paper St", "Somewhere")), + RecoveryMethod.Email("john@example.com") + ).transformInto[UserDTO] + + // Standard Library alternatives + + // Selectable + + class Record(elems: (String, Any)*) extends Selectable: + private val fields = elems.toMap + def selectDynamic(name: String): Any = fields(name) + + type Person = Record { + val name: String + val age: Int + } + + val person = Record( + "name" -> "Emma", + "age" -> 42 + ).asInstanceOf[Person] + + // Tuple Generics + + case class Employee(name: String, number: Int, manager: Boolean) + + val bob: Employee = Employee("Bob", 42, false) + + val bobTuple: (String, Int, Boolean) = Tuple.fromProductTyped(bob) + + val bobAgain: Employee = + summon[deriving.Mirror.Of[Employee]].fromProduct(bobTuple) From 935ed30f2af7464a9236ab3d310564214b4c5263 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Wed, 2 Oct 2024 23:18:40 +0200 Subject: [PATCH 0864/1318] Different ways to sum a list --- .../com/baeldung/scala/listsum/SumList.scala | 36 ++++++++++++++++++ .../scala/listsum/SumListUnitTest.scala | 38 +++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 scala-core-modules/scala-core-numbers-2/src/main/scala/com/baeldung/scala/listsum/SumList.scala create mode 100644 scala-core-modules/scala-core-numbers-2/src/test/scala/com/baeldung/scala/listsum/SumListUnitTest.scala diff --git a/scala-core-modules/scala-core-numbers-2/src/main/scala/com/baeldung/scala/listsum/SumList.scala b/scala-core-modules/scala-core-numbers-2/src/main/scala/com/baeldung/scala/listsum/SumList.scala new file mode 100644 index 000000000..4f21fcf2d --- /dev/null +++ b/scala-core-modules/scala-core-numbers-2/src/main/scala/com/baeldung/scala/listsum/SumList.scala @@ -0,0 +1,36 @@ +package com.baeldung.scala.listsum + +import scala.annotation.tailrec + +object SumList { + + def sum(list: List[Int]): Int = list.sum + + def sumByReduce(list: List[Int]): Int = list.reduceOption(_ + _).getOrElse(0) + + def sumByFold(list: List[Int]): Int = list.foldLeft(0)(_ + _) + + def sumByIteration(list: List[Int]): Int = { + var sum = 0 + list.foreach(num => sum += num) + sum + } + + def sumByFor(list: List[Int]): Int = { + var sum = 0 + for (num <- list) { sum += num } + sum + } + + def sumByTailRecursion(list: List[Int]): Int = { + @tailrec + def rec(list: List[Int], sum: Int): Int = { + list match { + case Nil => sum + case a :: tail => rec(tail, sum + a) + } + } + rec(list, 0) + } + +} diff --git a/scala-core-modules/scala-core-numbers-2/src/test/scala/com/baeldung/scala/listsum/SumListUnitTest.scala b/scala-core-modules/scala-core-numbers-2/src/test/scala/com/baeldung/scala/listsum/SumListUnitTest.scala new file mode 100644 index 000000000..ec6af7306 --- /dev/null +++ b/scala-core-modules/scala-core-numbers-2/src/test/scala/com/baeldung/scala/listsum/SumListUnitTest.scala @@ -0,0 +1,38 @@ +package com.baeldung.scala.listsum + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers +import org.scalatest.prop.TableDrivenPropertyChecks + +class SumListUnitTest + extends AnyFlatSpec + with Matchers + with TableDrivenPropertyChecks { + + private val table = Table( + ("list", "expected sum"), + (List(1, 2, 3, 4), 10), + (List(0), 0), + (List.empty[Int], 0) + ) + + private val fns = List( + ("sum()", SumList.sum), + ("sumByFold()", SumList.sumByFold), + ("sumByReduce()", SumList.sumByReduce), + ("sumByIteration()", SumList.sumByIteration), + ("sumByFor()", SumList.sumByFor), + ("sumByTailRecursion()", SumList.sumByTailRecursion), + ) + + it should "calculate sum for a list" in { + forAll(table) { (input, expected) => + fns map { (name, fn) => + withClue(s"sum using the function `${name}` ") { + fn(input) shouldBe expected + } + } + } + } + +} From 0136a80c282c20c254cd6eec5967871172365713 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Thu, 3 Oct 2024 20:16:59 +0200 Subject: [PATCH 0865/1318] added more methods --- .../com/baeldung/scala/listsum/SumList.scala | 4 ++++ .../scala/listsum/SumListUnitTest.scala | 21 ++++++++++++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/scala-core-modules/scala-core-numbers-2/src/main/scala/com/baeldung/scala/listsum/SumList.scala b/scala-core-modules/scala-core-numbers-2/src/main/scala/com/baeldung/scala/listsum/SumList.scala index 4f21fcf2d..c87074752 100644 --- a/scala-core-modules/scala-core-numbers-2/src/main/scala/com/baeldung/scala/listsum/SumList.scala +++ b/scala-core-modules/scala-core-numbers-2/src/main/scala/com/baeldung/scala/listsum/SumList.scala @@ -33,4 +33,8 @@ object SumList { rec(list, 0) } + def sumNumeric[T](list: List[T])(using numeric: Numeric[T]): T = { + list.sum + } + } diff --git a/scala-core-modules/scala-core-numbers-2/src/test/scala/com/baeldung/scala/listsum/SumListUnitTest.scala b/scala-core-modules/scala-core-numbers-2/src/test/scala/com/baeldung/scala/listsum/SumListUnitTest.scala index ec6af7306..32c5c00ae 100644 --- a/scala-core-modules/scala-core-numbers-2/src/test/scala/com/baeldung/scala/listsum/SumListUnitTest.scala +++ b/scala-core-modules/scala-core-numbers-2/src/test/scala/com/baeldung/scala/listsum/SumListUnitTest.scala @@ -22,7 +22,7 @@ class SumListUnitTest ("sumByReduce()", SumList.sumByReduce), ("sumByIteration()", SumList.sumByIteration), ("sumByFor()", SumList.sumByFor), - ("sumByTailRecursion()", SumList.sumByTailRecursion), + ("sumByTailRecursion()", SumList.sumByTailRecursion) ) it should "calculate sum for a list" in { @@ -35,4 +35,23 @@ class SumListUnitTest } } + it should "calculate sum for any numeric types" in { + val ints = List(1, 2, 3, 4) + SumList.sumNumeric(ints) shouldBe 10 + SumList.sumNumeric(List.empty[Int]) shouldBe 0 + + val doubles = List(1d, 2d, 3d, 4d) + SumList.sumNumeric(doubles) shouldBe 10d + + val bigints = List(BigInt(1), BigInt(2), BigInt(3), BigInt(4)) + SumList.sumNumeric(bigints) shouldBe BigInt(10) + + } + + it should "calculate the sum of inside fields" in { + case class Item(price: Int) + val items = List(Item(1), Item(2), Item(3), Item(4)) + items.foldLeft(0)((acc, item) => acc + item.price) shouldBe 10 + } + } From c440cd6646d20f5d9837c2e49261fd4c50167e41 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 9 Oct 2024 00:17:10 +0000 Subject: [PATCH 0866/1318] Update logback-classic from 1.5.8 to 1.5.9 --- build.sbt | 2 +- scalatra/build.sbt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index c2b254721..5960995fb 100644 --- a/build.sbt +++ b/build.sbt @@ -7,7 +7,7 @@ val jUnitInterface = "com.github.sbt" % "junit-interface" % "0.13.3" % "test" val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.4" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.4" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV -val logback = "ch.qos.logback" % "logback-classic" % "1.5.8" +val logback = "ch.qos.logback" % "logback-classic" % "1.5.9" val embedMongoVersion = "4.17.0" val AkkaVersion = "2.8.5" val AkkaHttpVersion = "10.5.0" diff --git a/scalatra/build.sbt b/scalatra/build.sbt index d36252204..29df690c8 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -8,7 +8,7 @@ version := "0.1.0-SNAPSHOT" libraryDependencies ++= Seq( "org.scalatra" %% "scalatra" % ScalatraVersion, "org.scalatra" %% "scalatra-scalatest" % ScalatraVersion % "test", - "ch.qos.logback" % "logback-classic" % "1.5.8" % "runtime", + "ch.qos.logback" % "logback-classic" % "1.5.9" % "runtime", "org.eclipse.jetty" % "jetty-webapp" % "11.0.24" % "container", "javax.servlet" % "javax.servlet-api" % "4.0.1" % "provided", "org.scalatra" %% "scalatra-auth" % ScalatraVersion, From 7ddc8abf6e348bd712fb4f515d4a6065912f1725 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 9 Oct 2024 00:17:27 +0000 Subject: [PATCH 0867/1318] Update aws-java-sdk-s3 from 1.12.772 to 1.12.773 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index c2b254721..3cd19327f 100644 --- a/build.sbt +++ b/build.sbt @@ -561,7 +561,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) scalaMock, "com.lihaoyi" %% "utest" % "0.8.4" % "test", munitDep, - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.772" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.773" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.28.12" From eda6704182f2aeb8aa05beed27511938d044ffc5 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 9 Oct 2024 00:17:37 +0000 Subject: [PATCH 0868/1318] Update enumeratum from 1.7.4 to 1.7.5 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index c2b254721..587d3abd8 100644 --- a/build.sbt +++ b/build.sbt @@ -407,7 +407,7 @@ val elastic4sVersion = "8.15.2" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion val sparkSqlDep = "org.apache.spark" %% "spark-sql" % sparkVersion -val enumeratumDep = "com.beachape" %% "enumeratum" % "1.7.4" +val enumeratumDep = "com.beachape" %% "enumeratum" % "1.7.5" val circeDep = "io.circe" %% "circe-generic" % circeVersion val circeParserDep = "io.circe" %% "circe-parser" % circeVersion From dc2d4bffcc3280e856b8a9ce464329f77cea95bc Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 9 Oct 2024 00:17:51 +0000 Subject: [PATCH 0869/1318] Update os-lib from 0.10.7 to 0.11.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index c2b254721..238fa5875 100644 --- a/build.sbt +++ b/build.sbt @@ -458,7 +458,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) val http4sBlaze = "0.23.16" val http4sVersion = "0.23.28" -val osLibVersion = "0.10.7" +val osLibVersion = "0.11.1" val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion From bdcf3f50e53c1c4ff2cca5a217ec923920daaa0a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 9 Oct 2024 00:18:02 +0000 Subject: [PATCH 0870/1318] Update tapir-akka-http-server, tapir-core, ... from 1.11.5 to 1.11.6 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index 4e7867dec..e19e2a0ad 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.11.5" +val tapirV = "1.11.6" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From 91621c52cc0759ebb83c1f53ce551bbdbcffb82e Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 9 Oct 2024 00:18:20 +0000 Subject: [PATCH 0871/1318] Update s3, sqs from 2.28.12 to 2.28.18 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index c2b254721..a5ff0caa6 100644 --- a/build.sbt +++ b/build.sbt @@ -451,7 +451,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-core" % "1.6.8", "org.elasticmq" %% "elasticmq-server" % "1.6.8", "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.8", - "software.amazon.awssdk" % "sqs" % "2.28.12" + "software.amazon.awssdk" % "sqs" % "2.28.18" ), Defaults.itSettings ) @@ -564,7 +564,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.772" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.28.12" + "software.amazon.awssdk" % "s3" % "2.28.18" ), Defaults.itSettings, IntegrationTest / fork := true From 0e41c0cd3d7d2c7ace880dc8ee3ab192c22adcdc Mon Sep 17 00:00:00 2001 From: RannelT Date: Thu, 10 Oct 2024 22:44:28 +0800 Subject: [PATCH 0872/1318] Create README.md --- scala-core-modules/scala-core-numbers-2/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 scala-core-modules/scala-core-numbers-2/README.md diff --git a/scala-core-modules/scala-core-numbers-2/README.md b/scala-core-modules/scala-core-numbers-2/README.md new file mode 100644 index 000000000..c6b4331e7 --- /dev/null +++ b/scala-core-modules/scala-core-numbers-2/README.md @@ -0,0 +1 @@ +[Different Ways to Calculate the Sum of a List in Scala](https://www.baeldung.com/scala/list-sum-items) From 3007879fd513880ef5b60ff4343ed4adf356fccc Mon Sep 17 00:00:00 2001 From: baovitt Date: Thu, 10 Oct 2024 13:20:54 -0400 Subject: [PATCH 0873/1318] updated patcher and transformer demos --- .../baeldung/chimney/PartialTransformer.scala | 4 ++ .../scala/com/baeldung/chimney/Patcher.scala | 27 +++++++++-- .../com/baeldung/chimney/Transformer.scala | 47 +++++++------------ 3 files changed, 44 insertions(+), 34 deletions(-) diff --git a/scala-libraries/src/main/scala/com/baeldung/chimney/PartialTransformer.scala b/scala-libraries/src/main/scala/com/baeldung/chimney/PartialTransformer.scala index b8e212ddd..e61534e5a 100644 --- a/scala-libraries/src/main/scala/com/baeldung/chimney/PartialTransformer.scala +++ b/scala-libraries/src/main/scala/com/baeldung/chimney/PartialTransformer.scala @@ -13,3 +13,7 @@ object ChimneyPartialTransformer extends App: PartialTransformer.fromFunction(fn) val result: Result[Boolean] = 0.transformIntoPartial[Boolean] + + result match + case Result.Value(bool) => println(bool) + case Result.Errors(errs) => println(errs) diff --git a/scala-libraries/src/main/scala/com/baeldung/chimney/Patcher.scala b/scala-libraries/src/main/scala/com/baeldung/chimney/Patcher.scala index 16e8fc427..129b7e259 100644 --- a/scala-libraries/src/main/scala/com/baeldung/chimney/Patcher.scala +++ b/scala-libraries/src/main/scala/com/baeldung/chimney/Patcher.scala @@ -4,14 +4,31 @@ import io.scalaland.chimney.dsl.* object ChimneyPatcher extends App: - case class User(id: Int, email: Option[String], phone: Option[Long]) + case class Book( + name: Title, + authors: List[Author], + doi: DOI + ) - case class UserUpdateForm(email: String, phone: Long) + case class Title(name: String) extends AnyVal + case class Author(name: String, surname: String) - val user = User(10, Some("abc@@domain.com"), Some(1234567890L)) - val updateForm = UserUpdateForm("xyz@@domain.com", 123123123L) + type DOI = Option[String] - val patchedValue: User = user.patchUsing(updateForm) + case class BookUpdateForm(name: String, authors: List[Author]) + + val book = Book( + name = Title("Synergetics"), + authors = List(Author("Buckminster", "Fuller")), + doi = None + ) + + val updateForm = BookUpdateForm( + name = "Godel, Escher, Bach", + authors = List(Author("Douglas", "Hofstadter")) + ) + + val patchedValue: Book = book.patchUsing(updateForm) // Standard Library Alternative diff --git a/scala-libraries/src/main/scala/com/baeldung/chimney/Transformer.scala b/scala-libraries/src/main/scala/com/baeldung/chimney/Transformer.scala index 5f8778baf..b2fc1115d 100644 --- a/scala-libraries/src/main/scala/com/baeldung/chimney/Transformer.scala +++ b/scala-libraries/src/main/scala/com/baeldung/chimney/Transformer.scala @@ -34,47 +34,36 @@ object ChimneyTransformers extends App: // Automatic Case Class Transformation - // UserDTO + // BookDTO - case class UserDTO( + case class BookDTO( name: String, // 1. primitive - addresses: Seq[AddressDTO], // 2. Seq collection - recovery: Option[RecoveryMethodDTO] // 3. Option type + authors: Seq[AuthorDTO], // 2. Seq collection + doi: Option[String] // 3. Option type ) - case class AddressDTO(street: String, city: String) + case class AuthorDTO(name: String, surname: String) - sealed trait RecoveryMethodDTO + // Book Domain Model - object RecoveryMethodDTO: - case class Phone(value: PhoneDTO) extends RecoveryMethodDTO - case class Email(value: EmailDTO) extends RecoveryMethodDTO - - case class PhoneDTO(number: String) - case class EmailDTO(email: String) - - // User Domain Model - - case class User( - name: Username, - addresses: List[Address], - recovery: RecoveryMethod + case class Book( + name: Title, + authors: List[Author], + doi: DOI ) - case class Username(name: String) extends AnyVal - case class Address(street: String, city: String) + case class Title(name: String) extends AnyVal + case class Author(name: String, surname: String) - enum RecoveryMethod: - case Phone(number: String) - case Email(email: String) + type DOI = Option[String] // we can do a transformation: - User( - Username("John"), - List(Address("Paper St", "Somewhere")), - RecoveryMethod.Email("john@example.com") - ).transformInto[UserDTO] + Book( + name = Title("The Universal One"), + authors = List(Author("Walter", "Russell")), + doi = None + ).transformInto[BookDTO] // Standard Library alternatives From edc01836fbaebcb7c2dcdee7e857b46e62c77319 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 11 Oct 2024 17:51:16 +0200 Subject: [PATCH 0874/1318] Sample code for EitherT usage --- .../cats/eithert/EitherTErrorHandling.scala | 83 ++++++++++++++++ .../scala/cats/eithert/EitherTUnitTest.scala | 94 +++++++++++++++++++ 2 files changed, 177 insertions(+) create mode 100644 scala-libraries-fp/src/test/scala/com/baeldung/scala/cats/eithert/EitherTErrorHandling.scala create mode 100644 scala-libraries-fp/src/test/scala/com/baeldung/scala/cats/eithert/EitherTUnitTest.scala diff --git a/scala-libraries-fp/src/test/scala/com/baeldung/scala/cats/eithert/EitherTErrorHandling.scala b/scala-libraries-fp/src/test/scala/com/baeldung/scala/cats/eithert/EitherTErrorHandling.scala new file mode 100644 index 000000000..3beaf0b52 --- /dev/null +++ b/scala-libraries-fp/src/test/scala/com/baeldung/scala/cats/eithert/EitherTErrorHandling.scala @@ -0,0 +1,83 @@ +package com.baeldung.scala.cats.eithert + +import cats.data.EitherT + +import scala.concurrent.Future + +object SimpleErrorHandling { + + case class User(userId: String, name: String, isActive: Boolean) + def getUserProfile(userId: String): Either[String, User] = ??? + def calculateDiscount(user: User): Either[String, Double] = ??? + def placeOrder( + itemId: String, + discount: Double, + user: User + ): Either[String, String] = ??? + + def performAction(userId: String, itemId: String): Either[String, String] = + for { + user <- getUserProfile(userId) + discount <- calculateDiscount(user) + orderId <- placeOrder(itemId, discount, user) + } yield orderId + +} + +object FutureErrorHandling { + + case class User(userId: String, name: String, isActive: Boolean) + def getUserProfile(userId: String): Future[Either[String, User]] = ??? + def calculateDiscount(user: User): Future[Either[String, Double]] = ??? + def placeOrder( + itemId: String, + discount: Double, + user: User + ): Future[Either[String, String]] = ??? + + import scala.concurrent.Future + import scala.concurrent.ExecutionContext.Implicits.global + + def performAction( + userId: String, + itemId: String + ): Future[Either[String, String]] = { + for { + userEither <- getUserProfile(userId) + result <- userEither match { + case Left(error) => Future.successful(Left(error)) + case Right(user) => + for { + discountEither <- calculateDiscount(user) + orderResult <- discountEither match { + case Left(error) => Future.successful(Left(error)) + case Right(discount) => placeOrder(itemId, discount, user) + } + } yield orderResult + } + } yield result + } + +} + +object EitherTErrorHandling { + + import scala.concurrent.ExecutionContext.Implicits.global + case class User(userId: String, name: String, isActive: Boolean) + def getUserProfile(userId: String): Future[Either[String, User]] = ??? + def calculateDiscount(user: User): Future[Either[String, Double]] = ??? + def placeOrder( + itemId: String, + discount: Double, + user: User + ): Future[Either[String, String]] = ??? + + def performAction(userId: String, itemId: String): Future[Either[String, String]] = { + (for { + user <- EitherT(getUserProfile(userId)) + discount <- EitherT(calculateDiscount(user)) + orderId <- EitherT(placeOrder(itemId, discount, user)) + } yield orderId).value + } + +} diff --git a/scala-libraries-fp/src/test/scala/com/baeldung/scala/cats/eithert/EitherTUnitTest.scala b/scala-libraries-fp/src/test/scala/com/baeldung/scala/cats/eithert/EitherTUnitTest.scala new file mode 100644 index 000000000..d9e1e0683 --- /dev/null +++ b/scala-libraries-fp/src/test/scala/com/baeldung/scala/cats/eithert/EitherTUnitTest.scala @@ -0,0 +1,94 @@ +package com.baeldung.scala.cats.eithert + +import cats.data.EitherT +import org.scalatest.flatspec.AsyncFlatSpec +import org.scalatest.matchers.should.Matchers + +import scala.concurrent.Future +import scala.util.{Failure, Try} + +class EitherTUnitTest extends AsyncFlatSpec with Matchers { + + it should "map over EitherT instance with Future" in { + val response: EitherT[Future, String, Int] = + EitherT(Future.successful(Right(100))) + response.map(_ * 5).value.map(_ shouldBe Right(500)) + } + + it should "map over EitherT instance with Try" in { + val opValue: Try[Either[String, Int]] = Try(Right(100)) + val response: EitherT[Try, String, Int] = EitherT(opValue) + val mappedValue: EitherT[Try, String, Int] = response.map(_ * 5) + val underlying: Try[Either[String, Int]] = mappedValue.value + underlying shouldBe Try(Right(500)) + } + + it should "map over error" in { + val response: EitherT[Try, String, Int] = + EitherT(Try(Left("invalid number!"))) + response.leftMap(_.toUpperCase).value shouldBe Try(Left("INVALID NUMBER!")) + } + + it should "be able to map on both side of either using bimap" in { + val success: EitherT[Try, String, Int] = EitherT(Try(Right(100))) + val biMappedSuccess = success.bimap(e => e.toUpperCase, s => s * 5) + biMappedSuccess.value shouldBe Try(Right(500)) + val error: EitherT[Try, String, Int] = EitherT(Try(Left("error"))) + val biMappedError = error.bimap(e => e.toUpperCase, s => s * 5) + biMappedError.value shouldBe Try(Left("ERROR")) + } + + it should "compose multiple EitherT instances together" in { + val num1: EitherT[Try, String, Int] = EitherT.right(Try(100)) + val num2: EitherT[Try, String, Int] = EitherT.liftF(Try(2)) + val divRes: EitherT[Try, String, Int] = for { + n1 <- num1 + n2 <- num2 + div = n1 / n2 + } yield div + divRes.value shouldBe Try(Right(50)) + } + + it should "compose multiple EitherT instances together when there is an error" in { + val num1: EitherT[Try, String, Int] = EitherT(Try(Right(100))) + val num2: EitherT[Try, String, Int] = EitherT.left(Try("zero")) + val divRes: EitherT[Try, String, Int] = for { + n1 <- num1 + n2 <- num2 + div = n1 / n2 + } yield div + divRes.value shouldBe Try(Left("zero")) + } + + it should "handle Try failure" in { + val failedOp: Try[Either[String, Int]] = + Try(throw new Exception("Operation failed!")) + val response: EitherT[Try, String, Int] = EitherT(failedOp) + response.value.isFailure shouldBe true + } + + it should "short circuit if one of the Try fails" in { + val num1: EitherT[Try, String, Int] = EitherT(Try(Right(100))) + val num2: EitherT[Try, String, Int] = + EitherT(Try(throw new Exception("Operation failed!"))) + val divRes: EitherT[Try, String, Int] = for { + n1 <- num1 + n2 <- num2 + div = n1 / n2 + } yield div + divRes.value.isFailure shouldBe true + } + + it should "lift an either into eitherT" in { + val either: Either[String, Int] = Right(100) + val eitherT: EitherT[Try, String, Int] = EitherT.fromEither(either) + eitherT.value.get shouldBe Right(100) + } + + it should "lift an option into eitherT" in { + val opt: Option[Int] = Some(100) + val eitherT: EitherT[Try, String, Int] = EitherT.fromOption(opt, "EMPTY") + eitherT.value.get shouldBe Right(100) + } + +} From 72f7e043f4309e7c5610e5a28a02f25678ad2499 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sat, 12 Oct 2024 09:45:55 +0200 Subject: [PATCH 0875/1318] code format --- .../baeldung/scala/cats/eithert/EitherTErrorHandling.scala | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scala-libraries-fp/src/test/scala/com/baeldung/scala/cats/eithert/EitherTErrorHandling.scala b/scala-libraries-fp/src/test/scala/com/baeldung/scala/cats/eithert/EitherTErrorHandling.scala index 3beaf0b52..929b89d7f 100644 --- a/scala-libraries-fp/src/test/scala/com/baeldung/scala/cats/eithert/EitherTErrorHandling.scala +++ b/scala-libraries-fp/src/test/scala/com/baeldung/scala/cats/eithert/EitherTErrorHandling.scala @@ -72,7 +72,10 @@ object EitherTErrorHandling { user: User ): Future[Either[String, String]] = ??? - def performAction(userId: String, itemId: String): Future[Either[String, String]] = { + def performAction( + userId: String, + itemId: String + ): Future[Either[String, String]] = { (for { user <- EitherT(getUserProfile(userId)) discount <- EitherT(calculateDiscount(user)) From eba8c756b66ec1face304038974ad949983a4968 Mon Sep 17 00:00:00 2001 From: baovitt Date: Sat, 12 Oct 2024 11:00:46 -0400 Subject: [PATCH 0876/1318] more --- .../scala/com/baeldung/chimney/Patcher.scala | 26 ++++++------ .../com/baeldung/chimney/Transformer.scala | 40 +++++++++---------- 2 files changed, 33 insertions(+), 33 deletions(-) diff --git a/scala-libraries/src/main/scala/com/baeldung/chimney/Patcher.scala b/scala-libraries/src/main/scala/com/baeldung/chimney/Patcher.scala index 129b7e259..5c0d969a7 100644 --- a/scala-libraries/src/main/scala/com/baeldung/chimney/Patcher.scala +++ b/scala-libraries/src/main/scala/com/baeldung/chimney/Patcher.scala @@ -7,33 +7,33 @@ object ChimneyPatcher extends App: case class Book( name: Title, authors: List[Author], - doi: DOI + isbn: ISBN ) case class Title(name: String) extends AnyVal case class Author(name: String, surname: String) - type DOI = Option[String] + type ISBN = Option[String] - case class BookUpdateForm(name: String, authors: List[Author]) + case class UpdateISBN(isbn: ISBN) val book = Book( name = Title("Synergetics"), authors = List(Author("Buckminster", "Fuller")), - doi = None + isbn = None ) - val updateForm = BookUpdateForm( - name = "Godel, Escher, Bach", - authors = List(Author("Douglas", "Hofstadter")) + val isbnUpdateForm = UpdateISBN( + isbn = Some("978-0206532048") ) - val patchedValue: Book = book.patchUsing(updateForm) + val hardcover: Book = book.patchUsing(isbnUpdateForm) // Standard Library Alternative - case class SimpleCaseClass(a: Int, b: Int) - - val simpleClass = SimpleCaseClass(0, 0) - - simpleClass.copy(b = 2) // SimpleCaseClass(0, 2) + val softcover: Book = + book.copy( + authors = + List(Author("Buckminster", "Fuller"), Author("Edmund", "Applewhite")), + isbn = Some("978-0020653202") + ) diff --git a/scala-libraries/src/main/scala/com/baeldung/chimney/Transformer.scala b/scala-libraries/src/main/scala/com/baeldung/chimney/Transformer.scala index b2fc1115d..3fe8577e7 100644 --- a/scala-libraries/src/main/scala/com/baeldung/chimney/Transformer.scala +++ b/scala-libraries/src/main/scala/com/baeldung/chimney/Transformer.scala @@ -39,7 +39,7 @@ object ChimneyTransformers extends App: case class BookDTO( name: String, // 1. primitive authors: Seq[AuthorDTO], // 2. Seq collection - doi: Option[String] // 3. Option type + isbn: Option[String] // 3. Option type ) case class AuthorDTO(name: String, surname: String) @@ -49,21 +49,23 @@ object ChimneyTransformers extends App: case class Book( name: Title, authors: List[Author], - doi: DOI + isbn: ISBN ) case class Title(name: String) extends AnyVal case class Author(name: String, surname: String) - type DOI = Option[String] + type ISBN = Option[String] // we can do a transformation: - Book( + val book = Book( name = Title("The Universal One"), authors = List(Author("Walter", "Russell")), - doi = None - ).transformInto[BookDTO] + isbn = None + ) + + val bookDTO: BookDTO = book.transformInto[BookDTO] // Standard Library alternatives @@ -73,23 +75,21 @@ object ChimneyTransformers extends App: private val fields = elems.toMap def selectDynamic(name: String): Any = fields(name) - type Person = Record { - val name: String - val age: Int + type BookRecord = Record { + val name: Title + val authors: List[Author] + val isbn: ISBN } - val person = Record( - "name" -> "Emma", - "age" -> 42 - ).asInstanceOf[Person] + val naturesOpenSecret: BookRecord = Record( + "name" -> Title("Nature's Open Secret"), + "authors" -> List(Author("Rudolph", "Steiner")), + "isbn" -> Some("978-0880103930") + ).asInstanceOf[BookRecord] // Tuple Generics - case class Employee(name: String, number: Int, manager: Boolean) - - val bob: Employee = Employee("Bob", 42, false) - - val bobTuple: (String, Int, Boolean) = Tuple.fromProductTyped(bob) + val bookTuple: (Title, List[Author], ISBN) = Tuple.fromProductTyped(book) - val bobAgain: Employee = - summon[deriving.Mirror.Of[Employee]].fromProduct(bobTuple) + val bookAgain: Book = + summon[deriving.Mirror.Of[Book]].fromProduct(bookTuple) From f510d3b7c33980d3aefeccda43ea60111aeaaf3c Mon Sep 17 00:00:00 2001 From: Callum Gibbons Date: Sun, 13 Oct 2024 16:33:52 +0100 Subject: [PATCH 0877/1318] [SCALA-271] - Convert a Scala List to a Tuple --- .../listtotuple/ConvertListToTuple.scala | 25 +++++++++ .../ConvertListToTupleUnitTest.scala | 53 +++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 scala-core-collections-modules/scala-core-collections-4/src/main/scala/com/baeldung/scala/listtotuple/ConvertListToTuple.scala create mode 100644 scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/listtotuple/ConvertListToTupleUnitTest.scala diff --git a/scala-core-collections-modules/scala-core-collections-4/src/main/scala/com/baeldung/scala/listtotuple/ConvertListToTuple.scala b/scala-core-collections-modules/scala-core-collections-4/src/main/scala/com/baeldung/scala/listtotuple/ConvertListToTuple.scala new file mode 100644 index 000000000..525893d90 --- /dev/null +++ b/scala-core-collections-modules/scala-core-collections-4/src/main/scala/com/baeldung/scala/listtotuple/ConvertListToTuple.scala @@ -0,0 +1,25 @@ +package com.baeldung.scala.listtotuple + +import scala.quoted.Expr + +object ConvertListToTuple { + def twoElementsToTuple(list: List[String]): (String, String) = { + val first :: second :: _ = list + (first, second) + } + + def twoElementsToTupleUsingMatch(list: List[String]): (String, String) = { + list match { + case first :: second :: _ => (first, second) + case _ => ("", "") + } + } + + def unknownSizeToTuple(list: List[String]): Tuple = { + list match { + case first :: second :: third :: _ => (first, second, third) + case first :: second :: _ => (first, second) + case _ => ("", "") + } + } +} diff --git a/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/listtotuple/ConvertListToTupleUnitTest.scala b/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/listtotuple/ConvertListToTupleUnitTest.scala new file mode 100644 index 000000000..1125c0fe5 --- /dev/null +++ b/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/listtotuple/ConvertListToTupleUnitTest.scala @@ -0,0 +1,53 @@ +package com.baeldung.scala.listtotuple + + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers +import org.scalatest.matchers.should.Matchers.shouldBe + +class ConvertListToTupleUnitTest extends AnyFlatSpec with Matchers { + "twoElementsToTuple" should "convert list with 2 elements" in { + val testList = List("Hello", "world") + ConvertListToTuple.twoElementsToTuple(testList) shouldBe ("Hello", "world") + } + + "twoElementsToTuple" should "convert list with 3 elements to Tuple3" in { + val testList = List("Hello", "world", "!") + ConvertListToTuple.twoElementsToTuple(testList) shouldBe ("Hello", "world") + } + + "twoElementsToTupleUsingMatch" should "convert list with 2 elements" in { + val testList = List("Hello", "world") + ConvertListToTuple.twoElementsToTupleUsingMatch(testList) shouldBe ("Hello", "world") + } + + "twoElementsToTupleUsingMatch" should "convert list with 3 elements to tuple2 ignoring extra elements" in { + val testList = List("Hello", "world", "!") + ConvertListToTuple.twoElementsToTupleUsingMatch(testList) shouldBe ("Hello", "world") + } + + "twoElementsToTupleUsingMatch" should "return empty Strings for 1 element" in { + val testList = List("Hello") + ConvertListToTuple.twoElementsToTupleUsingMatch(testList) shouldBe ("", "") + } + + "twoElementsToTupleUsingMatch" should "return empty Strings for Nil" in { + val testList = Nil + ConvertListToTuple.twoElementsToTupleUsingMatch(testList) shouldBe ("", "") + } + + "unknownSizeToTuple" should "return empty Strings for Nil" in { + val testList = Nil + ConvertListToTuple.unknownSizeToTuple(testList) shouldBe ("", "") + } + + "unknownSizeToTuple" should "convert list of 2 elements to tuple2" in { + val testList = List("Hello", "world") + ConvertListToTuple.unknownSizeToTuple(testList) shouldBe ("Hello", "world") + } + + "unknownSizeToTuple" should "convert list of 3 elements to tuple3" in { + val testList = List("Hello", "world", "!") + ConvertListToTuple.unknownSizeToTuple(testList) shouldBe ("Hello", "world", "!") + } +} From a6d6638a3c676833eab5859a7510f5c1ece9ee7f Mon Sep 17 00:00:00 2001 From: Callum Gibbons Date: Sun, 13 Oct 2024 16:35:19 +0100 Subject: [PATCH 0878/1318] Scalafmt changes --- .../scala/listtotuple/ConvertListToTuple.scala | 8 +++----- .../listtotuple/ConvertListToTupleUnitTest.scala | 15 +++++++++------ 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/scala-core-collections-modules/scala-core-collections-4/src/main/scala/com/baeldung/scala/listtotuple/ConvertListToTuple.scala b/scala-core-collections-modules/scala-core-collections-4/src/main/scala/com/baeldung/scala/listtotuple/ConvertListToTuple.scala index 525893d90..5d5f56f54 100644 --- a/scala-core-collections-modules/scala-core-collections-4/src/main/scala/com/baeldung/scala/listtotuple/ConvertListToTuple.scala +++ b/scala-core-collections-modules/scala-core-collections-4/src/main/scala/com/baeldung/scala/listtotuple/ConvertListToTuple.scala @@ -1,7 +1,5 @@ package com.baeldung.scala.listtotuple -import scala.quoted.Expr - object ConvertListToTuple { def twoElementsToTuple(list: List[String]): (String, String) = { val first :: second :: _ = list @@ -11,15 +9,15 @@ object ConvertListToTuple { def twoElementsToTupleUsingMatch(list: List[String]): (String, String) = { list match { case first :: second :: _ => (first, second) - case _ => ("", "") + case _ => ("", "") } } def unknownSizeToTuple(list: List[String]): Tuple = { list match { case first :: second :: third :: _ => (first, second, third) - case first :: second :: _ => (first, second) - case _ => ("", "") + case first :: second :: _ => (first, second) + case _ => ("", "") } } } diff --git a/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/listtotuple/ConvertListToTupleUnitTest.scala b/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/listtotuple/ConvertListToTupleUnitTest.scala index 1125c0fe5..f16003c13 100644 --- a/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/listtotuple/ConvertListToTupleUnitTest.scala +++ b/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/listtotuple/ConvertListToTupleUnitTest.scala @@ -1,10 +1,7 @@ package com.baeldung.scala.listtotuple - import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers -import org.scalatest.matchers.should.Matchers.shouldBe - class ConvertListToTupleUnitTest extends AnyFlatSpec with Matchers { "twoElementsToTuple" should "convert list with 2 elements" in { val testList = List("Hello", "world") @@ -18,12 +15,16 @@ class ConvertListToTupleUnitTest extends AnyFlatSpec with Matchers { "twoElementsToTupleUsingMatch" should "convert list with 2 elements" in { val testList = List("Hello", "world") - ConvertListToTuple.twoElementsToTupleUsingMatch(testList) shouldBe ("Hello", "world") + ConvertListToTuple.twoElementsToTupleUsingMatch( + testList + ) shouldBe ("Hello", "world") } "twoElementsToTupleUsingMatch" should "convert list with 3 elements to tuple2 ignoring extra elements" in { val testList = List("Hello", "world", "!") - ConvertListToTuple.twoElementsToTupleUsingMatch(testList) shouldBe ("Hello", "world") + ConvertListToTuple.twoElementsToTupleUsingMatch( + testList + ) shouldBe ("Hello", "world") } "twoElementsToTupleUsingMatch" should "return empty Strings for 1 element" in { @@ -48,6 +49,8 @@ class ConvertListToTupleUnitTest extends AnyFlatSpec with Matchers { "unknownSizeToTuple" should "convert list of 3 elements to tuple3" in { val testList = List("Hello", "world", "!") - ConvertListToTuple.unknownSizeToTuple(testList) shouldBe ("Hello", "world", "!") + ConvertListToTuple.unknownSizeToTuple( + testList + ) shouldBe ("Hello", "world", "!") } } From 0c9514e652793b1b99995520a1fc6dce4c0dc944 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 16 Oct 2024 00:19:09 +0000 Subject: [PATCH 0879/1318] Update logback-classic from 1.5.9 to 1.5.11 --- build.sbt | 2 +- scalatra/build.sbt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 73af4aa13..4cfb9edbf 100644 --- a/build.sbt +++ b/build.sbt @@ -7,7 +7,7 @@ val jUnitInterface = "com.github.sbt" % "junit-interface" % "0.13.3" % "test" val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.4" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.4" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV -val logback = "ch.qos.logback" % "logback-classic" % "1.5.9" +val logback = "ch.qos.logback" % "logback-classic" % "1.5.11" val embedMongoVersion = "4.17.0" val AkkaVersion = "2.8.5" val AkkaHttpVersion = "10.5.0" diff --git a/scalatra/build.sbt b/scalatra/build.sbt index 29df690c8..efa9b0e5f 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -8,7 +8,7 @@ version := "0.1.0-SNAPSHOT" libraryDependencies ++= Seq( "org.scalatra" %% "scalatra" % ScalatraVersion, "org.scalatra" %% "scalatra-scalatest" % ScalatraVersion % "test", - "ch.qos.logback" % "logback-classic" % "1.5.9" % "runtime", + "ch.qos.logback" % "logback-classic" % "1.5.11" % "runtime", "org.eclipse.jetty" % "jetty-webapp" % "11.0.24" % "container", "javax.servlet" % "javax.servlet-api" % "4.0.1" % "provided", "org.scalatra" %% "scalatra-auth" % ScalatraVersion, From b6bb7685886e0299985b33cd5e559284e297eaaa Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 16 Oct 2024 00:19:24 +0000 Subject: [PATCH 0880/1318] Update macros, util from 2.6.2 to 2.6.4 --- play-scala/dependency-injection/build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/play-scala/dependency-injection/build.sbt b/play-scala/dependency-injection/build.sbt index 65682ba02..7a16aa3dd 100644 --- a/play-scala/dependency-injection/build.sbt +++ b/play-scala/dependency-injection/build.sbt @@ -8,5 +8,5 @@ scalaVersion := ScalaVersions.scala3Version libraryDependencies += guice libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % LibraryVersions.scalatestPlayVersion % Test -libraryDependencies += "com.softwaremill.macwire" %% "macros" % "2.6.2" % Provided -libraryDependencies += "com.softwaremill.macwire" %% "util" % "2.6.2" +libraryDependencies += "com.softwaremill.macwire" %% "macros" % "2.6.4" % Provided +libraryDependencies += "com.softwaremill.macwire" %% "util" % "2.6.4" From f7fadb5d3c811187488d1c4932e666f43377b48a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 16 Oct 2024 00:19:40 +0000 Subject: [PATCH 0881/1318] Update tapir-akka-http-server, tapir-core, ... from 1.11.6 to 1.11.7 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index e19e2a0ad..8aaa7cc28 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.11.6" +val tapirV = "1.11.7" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From 3d50a242df1d4f864541ae8852b6059c516eca79 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 16 Oct 2024 00:19:58 +0000 Subject: [PATCH 0882/1318] Update zio, zio-streams, zio-test, ... from 2.1.9 to 2.1.11 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 73af4aa13..06c515535 100644 --- a/build.sbt +++ b/build.sbt @@ -20,7 +20,7 @@ val scalaTestDeps = Seq( ) val scalaMock = "org.scalamock" %% "scalamock" % "6.0.0" % Test -val zioVersion = "2.1.9" +val zioVersion = "2.1.11" lazy val scala_core = (project in file("scala-core-modules/scala-core")) .settings( From 0d7dd2ac34f3c743528fb86974d62ec498fdeb42 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 16 Oct 2024 00:20:14 +0000 Subject: [PATCH 0883/1318] Update mockito-core from 5.14.1 to 5.14.2 --- play-scala/caching-in-play/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/play-scala/caching-in-play/build.sbt b/play-scala/caching-in-play/build.sbt index bfd51457d..68eaee7d6 100644 --- a/play-scala/caching-in-play/build.sbt +++ b/play-scala/caching-in-play/build.sbt @@ -11,6 +11,6 @@ libraryDependencies += guice libraryDependencies += caffeine libraryDependencies += ws libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % LibraryVersions.scalatestPlayVersion % Test -libraryDependencies += "org.mockito" % "mockito-core" % "5.14.1" % Test +libraryDependencies += "org.mockito" % "mockito-core" % "5.14.2" % Test PlayKeys.devSettings += "play.server.http.port" -> "9000" From 324726d35230f48a3db0f43a580a7667df2bc17a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 16 Oct 2024 00:20:27 +0000 Subject: [PATCH 0884/1318] Update s3, sqs from 2.28.18 to 2.28.23 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 73af4aa13..947446a05 100644 --- a/build.sbt +++ b/build.sbt @@ -451,7 +451,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-core" % "1.6.8", "org.elasticmq" %% "elasticmq-server" % "1.6.8", "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.8", - "software.amazon.awssdk" % "sqs" % "2.28.18" + "software.amazon.awssdk" % "sqs" % "2.28.23" ), Defaults.itSettings ) @@ -564,7 +564,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.772" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.28.18" + "software.amazon.awssdk" % "s3" % "2.28.23" ), Defaults.itSettings, IntegrationTest / fork := true From 039275fda9137b09c1f7622a7d6d7a412273a1bb Mon Sep 17 00:00:00 2001 From: baovitt Date: Wed, 16 Oct 2024 23:16:15 -0400 Subject: [PATCH 0885/1318] reformatting --- build.sbt | 10 ++ scala-libraries-2/README.md | 2 + .../scala/com/baeldung/chimney/Codec.scala | 0 .../main/scala/com/baeldung/chimney/Iso.scala | 0 .../baeldung/chimney/PartialTransformer.scala | 0 .../scala/com/baeldung/chimney/Patcher.scala | 0 .../com/baeldung/chimney/Transformer.scala | 0 .../circe/JSONConversionsUnitTest.scala | 18 ++ .../baeldung/scala/circe/CirceUnitTest.scala | 167 ++++++++++++++++++ .../scala/circe/CustomDecoderUnitTest.scala | 84 +++++++++ .../retry/PrimeNumberRetryUnitTest.scala | 70 ++++++++ 11 files changed, 351 insertions(+) create mode 100644 scala-libraries-2/README.md rename {scala-libraries => scala-libraries-2}/src/main/scala/com/baeldung/chimney/Codec.scala (100%) rename {scala-libraries => scala-libraries-2}/src/main/scala/com/baeldung/chimney/Iso.scala (100%) rename {scala-libraries => scala-libraries-2}/src/main/scala/com/baeldung/chimney/PartialTransformer.scala (100%) rename {scala-libraries => scala-libraries-2}/src/main/scala/com/baeldung/chimney/Patcher.scala (100%) rename {scala-libraries => scala-libraries-2}/src/main/scala/com/baeldung/chimney/Transformer.scala (100%) create mode 100644 scala-libraries-2/src/test/scala/com/baeldung/circe/JSONConversionsUnitTest.scala create mode 100644 scala-libraries-2/src/test/scala/com/baeldung/scala/circe/CirceUnitTest.scala create mode 100644 scala-libraries-2/src/test/scala/com/baeldung/scala/circe/CustomDecoderUnitTest.scala create mode 100644 scala-libraries-2/src/test/scala/com/baeldung/scala/retry/PrimeNumberRetryUnitTest.scala diff --git a/build.sbt b/build.sbt index d02717fb3..d0ea43ce7 100644 --- a/build.sbt +++ b/build.sbt @@ -445,6 +445,16 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.7", "software.amazon.awssdk" % "sqs" % "2.27.10" ), + Defaults.itSettings + ) + +lazy val scala_libraries_2 = (project in file("scala-libraries-2")) + .configs(IntegrationTest) + .settings( + name := "scala-libraries-2", + scalaVersion := scala3Version, + libraryDependencies ++= scalaTestDeps + .map(_.withConfigurations(Some("it,test"))), libraryDependencies += "io.scalaland" %% "chimney" % "1.4.0", Defaults.itSettings ) diff --git a/scala-libraries-2/README.md b/scala-libraries-2/README.md new file mode 100644 index 000000000..97c76dc43 --- /dev/null +++ b/scala-libraries-2/README.md @@ -0,0 +1,2 @@ +## Relevant Articles: + diff --git a/scala-libraries/src/main/scala/com/baeldung/chimney/Codec.scala b/scala-libraries-2/src/main/scala/com/baeldung/chimney/Codec.scala similarity index 100% rename from scala-libraries/src/main/scala/com/baeldung/chimney/Codec.scala rename to scala-libraries-2/src/main/scala/com/baeldung/chimney/Codec.scala diff --git a/scala-libraries/src/main/scala/com/baeldung/chimney/Iso.scala b/scala-libraries-2/src/main/scala/com/baeldung/chimney/Iso.scala similarity index 100% rename from scala-libraries/src/main/scala/com/baeldung/chimney/Iso.scala rename to scala-libraries-2/src/main/scala/com/baeldung/chimney/Iso.scala diff --git a/scala-libraries/src/main/scala/com/baeldung/chimney/PartialTransformer.scala b/scala-libraries-2/src/main/scala/com/baeldung/chimney/PartialTransformer.scala similarity index 100% rename from scala-libraries/src/main/scala/com/baeldung/chimney/PartialTransformer.scala rename to scala-libraries-2/src/main/scala/com/baeldung/chimney/PartialTransformer.scala diff --git a/scala-libraries/src/main/scala/com/baeldung/chimney/Patcher.scala b/scala-libraries-2/src/main/scala/com/baeldung/chimney/Patcher.scala similarity index 100% rename from scala-libraries/src/main/scala/com/baeldung/chimney/Patcher.scala rename to scala-libraries-2/src/main/scala/com/baeldung/chimney/Patcher.scala diff --git a/scala-libraries/src/main/scala/com/baeldung/chimney/Transformer.scala b/scala-libraries-2/src/main/scala/com/baeldung/chimney/Transformer.scala similarity index 100% rename from scala-libraries/src/main/scala/com/baeldung/chimney/Transformer.scala rename to scala-libraries-2/src/main/scala/com/baeldung/chimney/Transformer.scala diff --git a/scala-libraries-2/src/test/scala/com/baeldung/circe/JSONConversionsUnitTest.scala b/scala-libraries-2/src/test/scala/com/baeldung/circe/JSONConversionsUnitTest.scala new file mode 100644 index 000000000..d68956764 --- /dev/null +++ b/scala-libraries-2/src/test/scala/com/baeldung/circe/JSONConversionsUnitTest.scala @@ -0,0 +1,18 @@ +package com.baeldung.circe + +import com.baeldung.circe.JSONConversions.{stringJson, invalidStringJson} +import io.circe.parser.parse +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should + +class JSONConversionsUnitTest extends AnyFlatSpec with should.Matchers { + "Convert Json String" should "successfully" in { + val parseResult = parse(stringJson) + assert(parseResult.isRight) + } + + "Convert Json String" should "fail return a Json" in { + val parseResult = parse(invalidStringJson) + assert(parseResult.isLeft) + } +} diff --git a/scala-libraries-2/src/test/scala/com/baeldung/scala/circe/CirceUnitTest.scala b/scala-libraries-2/src/test/scala/com/baeldung/scala/circe/CirceUnitTest.scala new file mode 100644 index 000000000..05c271958 --- /dev/null +++ b/scala-libraries-2/src/test/scala/com/baeldung/scala/circe/CirceUnitTest.scala @@ -0,0 +1,167 @@ +package com.baeldung.scala.circe + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should + +class CirceUnitTest extends AnyFlatSpec with should.Matchers { + + val jsonString = + """{ + | "textField" : "textContent", + | "numericField" : 123, + | "booleanField" : true, + | "nestedObject" : { + | "arrayField" : [ + | 1, + | 2, + | 3 + | ] + | } + |}""".stripMargin + + val jsonStringWithMissingFields = + """{ + | "textField" : "textContent", + | "nestedObject" : { + | "arrayField" : null + | } + |}""".stripMargin + + "Circe" should "validate a valid JSON string" in { + import io.circe._, io.circe.parser._ + + val parseResult: Either[ParsingFailure, Json] = parse(jsonString) + + parseResult match { + case Left(parsingError) => + throw new IllegalArgumentException( + s"Invalid JSON object: ${parsingError.message}" + ) + case Right(json) => + val numbers = json \\ "numericField" + val firstNumber: Option[Option[JsonNumber]] = numbers.collectFirst { + case field => field.asNumber + } + + val singleOption: Option[Int] = firstNumber.flatten.flatMap(_.toInt) + + singleOption shouldEqual Some[Int](123) + } + } + + it should "convert JSON into object using converters and back to original string" in { + import io.circe._, io.circe.generic.semiauto._, io.circe.parser._, + io.circe.syntax._ + + case class Nested(arrayField: List[Int]) + + case class OurJson( + textField: String, + numericField: Int, + booleanField: Boolean, + nestedObject: Nested + ) + + implicit val nestedDecoder: Decoder[Nested] = deriveDecoder[Nested] + implicit val jsonDecoder: Decoder[OurJson] = deriveDecoder[OurJson] + + decode[OurJson](jsonString) shouldEqual Right( + OurJson("textContent", 123, true, Nested(List(1, 2, 3))) + ) + + val decoded = decode[OurJson](jsonString) + + implicit val nestedEncoder: Encoder[Nested] = deriveEncoder[Nested] + implicit val jsonEncoder: Encoder[OurJson] = deriveEncoder[OurJson] + + decoded match { + case Right(decodedJson) => + val jsonObject: Json = decodedJson.asJson + jsonObject.spaces2 shouldEqual jsonString + } + } + + it should "decode a JSON with missing fields" in { + import io.circe._, io.circe.generic.semiauto._, io.circe.parser._ + + val jsonStringWithMissingFields = + """{ + | "textField" : "textContent", + | "nestedObject" : { + | "arrayField" : null + | } + |}""".stripMargin + + case class Nested(arrayField: Option[List[Int]]) + + case class OurJson( + textField: String, + numericField: Option[Int], + booleanField: Option[Boolean], + nestedObject: Nested + ) + + implicit val nestedDecoder: Decoder[Nested] = deriveDecoder[Nested] + implicit val jsonDecoder: Decoder[OurJson] = deriveDecoder[OurJson] + + decode[OurJson](jsonStringWithMissingFields) shouldEqual Right( + OurJson("textContent", None, None, Nested(None)) + ) + } + + it should "decode a JSON with missing fields using a custom decoder" in { + import io.circe._, io.circe.generic.semiauto._, io.circe.parser._ + + case class Nested(arrayField: List[Int]) + + case class OurJson( + textField: String, + numericField: Option[Int], + booleanField: Option[Boolean], + nestedObject: Nested + ) + + implicit val decodeNested: Decoder[Nested] = (c: HCursor) => + for { + arrayField <- c.downField("arrayField").as[Option[List[Int]]] + } yield { + val flattenedArray = arrayField.getOrElse(Nil) + Nested(flattenedArray) + } + + implicit val jsonDecoder: Decoder[OurJson] = deriveDecoder[OurJson] + + decode[OurJson](jsonStringWithMissingFields) shouldEqual Right( + OurJson("textContent", None, None, Nested(Nil)) + ) + + val jsonStringWithArray = + """{ + | "textField" : "textContent", + | "nestedObject" : { + | "arrayField" : [1, 2] + | } + |}""".stripMargin + + decode[OurJson](jsonStringWithArray) shouldEqual Right( + OurJson("textContent", None, None, Nested(List(1, 2))) + ) + } + + it should "use automatic decoder derivation" in { + import io.circe.generic.auto._, io.circe.parser + + case class Nested(arrayField: List[Int]) + + case class OurJson( + textField: String, + numericField: Int, + booleanField: Boolean, + nestedObject: Nested + ) + + parser.decode[OurJson](jsonString) shouldEqual Right( + OurJson("textContent", 123, true, Nested(List(1, 2, 3))) + ) + } +} diff --git a/scala-libraries-2/src/test/scala/com/baeldung/scala/circe/CustomDecoderUnitTest.scala b/scala-libraries-2/src/test/scala/com/baeldung/scala/circe/CustomDecoderUnitTest.scala new file mode 100644 index 000000000..e91d107a6 --- /dev/null +++ b/scala-libraries-2/src/test/scala/com/baeldung/scala/circe/CustomDecoderUnitTest.scala @@ -0,0 +1,84 @@ +package com.baeldung.scala.circe + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should +import io.circe._ +import io.circe.generic.semiauto._ +import io.circe.parser._ + +class CustomDecoderUnitTest extends AnyFlatSpec with should.Matchers { + + val jsonStringWithNullArray = + """{ + | "textField" : "textContent", + | "nestedObject" : { + | "arrayField" : null + | } + |}""".stripMargin + + val jsonStringWithMissingArray = + """{ + | "textField" : "textContent", + | "nestedObject" : { + | } + |}""".stripMargin + + val jsonStringWithArray = + """{ + | "textField" : "textContent", + | "nestedObject" : { + | "arrayField" : [1, 2] + | } + |}""".stripMargin + + val jsonStringWithEmptyArray = + """{ + | "textField" : "textContent", + | "nestedObject" : { + | "arrayField" : [] + | } + |}""".stripMargin + + case class Nested(arrayField: List[Int]) + + case class OurJson( + textField: String, + numericField: Option[Int], + booleanField: Option[Boolean], + nestedObject: Nested + ) + + implicit val decodeNested: Decoder[Nested] = (c: HCursor) => + for { + arrayField <- c.downField("arrayField").as[Option[List[Int]]] + } yield { + val flattenedArray = arrayField.getOrElse(Nil) + Nested(flattenedArray) + } + + implicit val jsonDecoder: Decoder[OurJson] = deriveDecoder[OurJson] + + "A custom decoder" should "decode a JSON with a null array value" in { + decode[OurJson](jsonStringWithNullArray) shouldEqual Right( + OurJson("textContent", None, None, Nested(Nil)) + ) + } + + it should "decode a JSON with a missing field" in { + decode[OurJson](jsonStringWithMissingArray) shouldEqual Right( + OurJson("textContent", None, None, Nested(Nil)) + ) + } + + it should "decode a JSON with an existing array value" in { + decode[OurJson](jsonStringWithArray) shouldEqual Right( + OurJson("textContent", None, None, Nested(List(1, 2))) + ) + } + + it should "decode a JSON with an empty array" in { + decode[OurJson](jsonStringWithEmptyArray) shouldEqual Right( + OurJson("textContent", None, None, Nested(Nil)) + ) + } +} diff --git a/scala-libraries-2/src/test/scala/com/baeldung/scala/retry/PrimeNumberRetryUnitTest.scala b/scala-libraries-2/src/test/scala/com/baeldung/scala/retry/PrimeNumberRetryUnitTest.scala new file mode 100644 index 000000000..2c5f6a2cd --- /dev/null +++ b/scala-libraries-2/src/test/scala/com/baeldung/scala/retry/PrimeNumberRetryUnitTest.scala @@ -0,0 +1,70 @@ +package com.baeldung.scala.retry + +import com.baeldung.scala.retry.PrimeNumberRetry.success +import org.scalatest.matchers.should.Matchers +import org.scalatest.wordspec.AsyncWordSpec + +import java.util.concurrent.atomic.AtomicInteger +import scala.concurrent.Future + +class PrimeNumberRetryUnitTest extends AsyncWordSpec with Matchers { + "PrimeNumberRetry" should { + + "FailFast when an NumberFormatException is thrown" in { + val counter = new AtomicInteger(0) + val result = PrimeNumberRetry.outerPolicy.apply(Future { + counter.incrementAndGet() + throw new NumberFormatException + }) + result + .map(_ => assert(false)) + .recover { case _: NumberFormatException => + assert(counter.get() == 1) + } + } + + /* + * This test is affected by this issue + */ + "retry in any exception" in { + val counter = new AtomicInteger(0) + val result = PrimeNumberRetry.outerPolicy.apply(Future { + counter.incrementAndGet() + throw new IllegalArgumentException + }) + result + .map(_ => assert(false)) + .recover { case _: IllegalArgumentException => + assert(counter.get() == 7) + } + } + + "succeed when a prime is returned" in { + val counter = new AtomicInteger(0) + val result = PrimeNumberRetry.outerPolicy.apply(Future { + counter.incrementAndGet() + 7 + }) + result + .map(_ => { + assert(counter.get() == 1) + }) + } + + /* + * This test is affected by this issue + */ + "fail when a non prime number is returned" in { + val counter = new AtomicInteger(0) + val result = PrimeNumberRetry.outerPolicy.apply(Future { + counter.incrementAndGet() + 10 + }) + result + .flatMap(number => { + assert(counter.get() == 7) + assert(number == 10) + }) + } + } +} From cfd7edef4925f4079fa9288a61852a38e9c94d11 Mon Sep 17 00:00:00 2001 From: baovitt Date: Wed, 16 Oct 2024 23:16:59 -0400 Subject: [PATCH 0886/1318] remove tests --- .../circe/JSONConversionsUnitTest.scala | 18 -- .../baeldung/scala/circe/CirceUnitTest.scala | 167 ------------------ .../scala/circe/CustomDecoderUnitTest.scala | 84 --------- .../retry/PrimeNumberRetryUnitTest.scala | 70 -------- 4 files changed, 339 deletions(-) delete mode 100644 scala-libraries-2/src/test/scala/com/baeldung/circe/JSONConversionsUnitTest.scala delete mode 100644 scala-libraries-2/src/test/scala/com/baeldung/scala/circe/CirceUnitTest.scala delete mode 100644 scala-libraries-2/src/test/scala/com/baeldung/scala/circe/CustomDecoderUnitTest.scala delete mode 100644 scala-libraries-2/src/test/scala/com/baeldung/scala/retry/PrimeNumberRetryUnitTest.scala diff --git a/scala-libraries-2/src/test/scala/com/baeldung/circe/JSONConversionsUnitTest.scala b/scala-libraries-2/src/test/scala/com/baeldung/circe/JSONConversionsUnitTest.scala deleted file mode 100644 index d68956764..000000000 --- a/scala-libraries-2/src/test/scala/com/baeldung/circe/JSONConversionsUnitTest.scala +++ /dev/null @@ -1,18 +0,0 @@ -package com.baeldung.circe - -import com.baeldung.circe.JSONConversions.{stringJson, invalidStringJson} -import io.circe.parser.parse -import org.scalatest.flatspec.AnyFlatSpec -import org.scalatest.matchers.should - -class JSONConversionsUnitTest extends AnyFlatSpec with should.Matchers { - "Convert Json String" should "successfully" in { - val parseResult = parse(stringJson) - assert(parseResult.isRight) - } - - "Convert Json String" should "fail return a Json" in { - val parseResult = parse(invalidStringJson) - assert(parseResult.isLeft) - } -} diff --git a/scala-libraries-2/src/test/scala/com/baeldung/scala/circe/CirceUnitTest.scala b/scala-libraries-2/src/test/scala/com/baeldung/scala/circe/CirceUnitTest.scala deleted file mode 100644 index 05c271958..000000000 --- a/scala-libraries-2/src/test/scala/com/baeldung/scala/circe/CirceUnitTest.scala +++ /dev/null @@ -1,167 +0,0 @@ -package com.baeldung.scala.circe - -import org.scalatest.flatspec.AnyFlatSpec -import org.scalatest.matchers.should - -class CirceUnitTest extends AnyFlatSpec with should.Matchers { - - val jsonString = - """{ - | "textField" : "textContent", - | "numericField" : 123, - | "booleanField" : true, - | "nestedObject" : { - | "arrayField" : [ - | 1, - | 2, - | 3 - | ] - | } - |}""".stripMargin - - val jsonStringWithMissingFields = - """{ - | "textField" : "textContent", - | "nestedObject" : { - | "arrayField" : null - | } - |}""".stripMargin - - "Circe" should "validate a valid JSON string" in { - import io.circe._, io.circe.parser._ - - val parseResult: Either[ParsingFailure, Json] = parse(jsonString) - - parseResult match { - case Left(parsingError) => - throw new IllegalArgumentException( - s"Invalid JSON object: ${parsingError.message}" - ) - case Right(json) => - val numbers = json \\ "numericField" - val firstNumber: Option[Option[JsonNumber]] = numbers.collectFirst { - case field => field.asNumber - } - - val singleOption: Option[Int] = firstNumber.flatten.flatMap(_.toInt) - - singleOption shouldEqual Some[Int](123) - } - } - - it should "convert JSON into object using converters and back to original string" in { - import io.circe._, io.circe.generic.semiauto._, io.circe.parser._, - io.circe.syntax._ - - case class Nested(arrayField: List[Int]) - - case class OurJson( - textField: String, - numericField: Int, - booleanField: Boolean, - nestedObject: Nested - ) - - implicit val nestedDecoder: Decoder[Nested] = deriveDecoder[Nested] - implicit val jsonDecoder: Decoder[OurJson] = deriveDecoder[OurJson] - - decode[OurJson](jsonString) shouldEqual Right( - OurJson("textContent", 123, true, Nested(List(1, 2, 3))) - ) - - val decoded = decode[OurJson](jsonString) - - implicit val nestedEncoder: Encoder[Nested] = deriveEncoder[Nested] - implicit val jsonEncoder: Encoder[OurJson] = deriveEncoder[OurJson] - - decoded match { - case Right(decodedJson) => - val jsonObject: Json = decodedJson.asJson - jsonObject.spaces2 shouldEqual jsonString - } - } - - it should "decode a JSON with missing fields" in { - import io.circe._, io.circe.generic.semiauto._, io.circe.parser._ - - val jsonStringWithMissingFields = - """{ - | "textField" : "textContent", - | "nestedObject" : { - | "arrayField" : null - | } - |}""".stripMargin - - case class Nested(arrayField: Option[List[Int]]) - - case class OurJson( - textField: String, - numericField: Option[Int], - booleanField: Option[Boolean], - nestedObject: Nested - ) - - implicit val nestedDecoder: Decoder[Nested] = deriveDecoder[Nested] - implicit val jsonDecoder: Decoder[OurJson] = deriveDecoder[OurJson] - - decode[OurJson](jsonStringWithMissingFields) shouldEqual Right( - OurJson("textContent", None, None, Nested(None)) - ) - } - - it should "decode a JSON with missing fields using a custom decoder" in { - import io.circe._, io.circe.generic.semiauto._, io.circe.parser._ - - case class Nested(arrayField: List[Int]) - - case class OurJson( - textField: String, - numericField: Option[Int], - booleanField: Option[Boolean], - nestedObject: Nested - ) - - implicit val decodeNested: Decoder[Nested] = (c: HCursor) => - for { - arrayField <- c.downField("arrayField").as[Option[List[Int]]] - } yield { - val flattenedArray = arrayField.getOrElse(Nil) - Nested(flattenedArray) - } - - implicit val jsonDecoder: Decoder[OurJson] = deriveDecoder[OurJson] - - decode[OurJson](jsonStringWithMissingFields) shouldEqual Right( - OurJson("textContent", None, None, Nested(Nil)) - ) - - val jsonStringWithArray = - """{ - | "textField" : "textContent", - | "nestedObject" : { - | "arrayField" : [1, 2] - | } - |}""".stripMargin - - decode[OurJson](jsonStringWithArray) shouldEqual Right( - OurJson("textContent", None, None, Nested(List(1, 2))) - ) - } - - it should "use automatic decoder derivation" in { - import io.circe.generic.auto._, io.circe.parser - - case class Nested(arrayField: List[Int]) - - case class OurJson( - textField: String, - numericField: Int, - booleanField: Boolean, - nestedObject: Nested - ) - - parser.decode[OurJson](jsonString) shouldEqual Right( - OurJson("textContent", 123, true, Nested(List(1, 2, 3))) - ) - } -} diff --git a/scala-libraries-2/src/test/scala/com/baeldung/scala/circe/CustomDecoderUnitTest.scala b/scala-libraries-2/src/test/scala/com/baeldung/scala/circe/CustomDecoderUnitTest.scala deleted file mode 100644 index e91d107a6..000000000 --- a/scala-libraries-2/src/test/scala/com/baeldung/scala/circe/CustomDecoderUnitTest.scala +++ /dev/null @@ -1,84 +0,0 @@ -package com.baeldung.scala.circe - -import org.scalatest.flatspec.AnyFlatSpec -import org.scalatest.matchers.should -import io.circe._ -import io.circe.generic.semiauto._ -import io.circe.parser._ - -class CustomDecoderUnitTest extends AnyFlatSpec with should.Matchers { - - val jsonStringWithNullArray = - """{ - | "textField" : "textContent", - | "nestedObject" : { - | "arrayField" : null - | } - |}""".stripMargin - - val jsonStringWithMissingArray = - """{ - | "textField" : "textContent", - | "nestedObject" : { - | } - |}""".stripMargin - - val jsonStringWithArray = - """{ - | "textField" : "textContent", - | "nestedObject" : { - | "arrayField" : [1, 2] - | } - |}""".stripMargin - - val jsonStringWithEmptyArray = - """{ - | "textField" : "textContent", - | "nestedObject" : { - | "arrayField" : [] - | } - |}""".stripMargin - - case class Nested(arrayField: List[Int]) - - case class OurJson( - textField: String, - numericField: Option[Int], - booleanField: Option[Boolean], - nestedObject: Nested - ) - - implicit val decodeNested: Decoder[Nested] = (c: HCursor) => - for { - arrayField <- c.downField("arrayField").as[Option[List[Int]]] - } yield { - val flattenedArray = arrayField.getOrElse(Nil) - Nested(flattenedArray) - } - - implicit val jsonDecoder: Decoder[OurJson] = deriveDecoder[OurJson] - - "A custom decoder" should "decode a JSON with a null array value" in { - decode[OurJson](jsonStringWithNullArray) shouldEqual Right( - OurJson("textContent", None, None, Nested(Nil)) - ) - } - - it should "decode a JSON with a missing field" in { - decode[OurJson](jsonStringWithMissingArray) shouldEqual Right( - OurJson("textContent", None, None, Nested(Nil)) - ) - } - - it should "decode a JSON with an existing array value" in { - decode[OurJson](jsonStringWithArray) shouldEqual Right( - OurJson("textContent", None, None, Nested(List(1, 2))) - ) - } - - it should "decode a JSON with an empty array" in { - decode[OurJson](jsonStringWithEmptyArray) shouldEqual Right( - OurJson("textContent", None, None, Nested(Nil)) - ) - } -} diff --git a/scala-libraries-2/src/test/scala/com/baeldung/scala/retry/PrimeNumberRetryUnitTest.scala b/scala-libraries-2/src/test/scala/com/baeldung/scala/retry/PrimeNumberRetryUnitTest.scala deleted file mode 100644 index 2c5f6a2cd..000000000 --- a/scala-libraries-2/src/test/scala/com/baeldung/scala/retry/PrimeNumberRetryUnitTest.scala +++ /dev/null @@ -1,70 +0,0 @@ -package com.baeldung.scala.retry - -import com.baeldung.scala.retry.PrimeNumberRetry.success -import org.scalatest.matchers.should.Matchers -import org.scalatest.wordspec.AsyncWordSpec - -import java.util.concurrent.atomic.AtomicInteger -import scala.concurrent.Future - -class PrimeNumberRetryUnitTest extends AsyncWordSpec with Matchers { - "PrimeNumberRetry" should { - - "FailFast when an NumberFormatException is thrown" in { - val counter = new AtomicInteger(0) - val result = PrimeNumberRetry.outerPolicy.apply(Future { - counter.incrementAndGet() - throw new NumberFormatException - }) - result - .map(_ => assert(false)) - .recover { case _: NumberFormatException => - assert(counter.get() == 1) - } - } - - /* - * This test is affected by this issue - */ - "retry in any exception" in { - val counter = new AtomicInteger(0) - val result = PrimeNumberRetry.outerPolicy.apply(Future { - counter.incrementAndGet() - throw new IllegalArgumentException - }) - result - .map(_ => assert(false)) - .recover { case _: IllegalArgumentException => - assert(counter.get() == 7) - } - } - - "succeed when a prime is returned" in { - val counter = new AtomicInteger(0) - val result = PrimeNumberRetry.outerPolicy.apply(Future { - counter.incrementAndGet() - 7 - }) - result - .map(_ => { - assert(counter.get() == 1) - }) - } - - /* - * This test is affected by this issue - */ - "fail when a non prime number is returned" in { - val counter = new AtomicInteger(0) - val result = PrimeNumberRetry.outerPolicy.apply(Future { - counter.incrementAndGet() - 10 - }) - result - .flatMap(number => { - assert(counter.get() == 7) - assert(number == 10) - }) - } - } -} From eb53bf7c098ff982cdee731e9cfda1a951c4a03d Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 18 Oct 2024 09:24:13 +0200 Subject: [PATCH 0887/1318] upgraded akka dependencies --- build.sbt | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/build.sbt b/build.sbt index 424f1a0dd..7b73fe457 100644 --- a/build.sbt +++ b/build.sbt @@ -9,8 +9,9 @@ val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.4" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV val logback = "ch.qos.logback" % "logback-classic" % "1.5.11" val embedMongoVersion = "4.17.0" -val AkkaVersion = "2.8.5" -val AkkaHttpVersion = "10.5.0" +val AkkaVersion = "2.9.5" +val AlpakkaVersion = "8.0.0" +val AkkaHttpVersion = "10.6.3" val scalaTestDeps = Seq( "org.scalatest" %% "scalatest" % "3.2.19" % Test, @@ -269,10 +270,10 @@ val akkaHttpTestkitDep = lazy val scala_akka_dependencies: Seq[ModuleID] = Seq( akkaActorTyped, akkaTypedTestkit, - "com.lightbend.akka" %% "akka-stream-alpakka-mongodb" % "5.0.0", + "com.lightbend.akka" %% "akka-stream-alpakka-mongodb" % AlpakkaVersion, akkaStreamDep, "org.mongodb.scala" %% "mongo-scala-driver" % "5.2.0", - "com.lightbend.akka" %% "akka-stream-alpakka-file" % "5.0.0", + "com.lightbend.akka" %% "akka-stream-alpakka-file" % AlpakkaVersion, jUnitInterface, embeddedMongo % Test, akkaHttpDep @@ -319,8 +320,8 @@ lazy val scala_akka_2 = (project in file("scala-akka-2")) "com.typesafe.akka" %% "akka-discovery" % AkkaVersion, "com.typesafe.akka" %% "akka-http-spray-json" % AkkaHttpVersion, akkaHttpTestkitDep, - "com.lightbend.akka" %% "akka-stream-alpakka-csv" % "5.0.0", - "com.lightbend.akka" %% "akka-stream-alpakka-sse" % "5.0.0", + "com.lightbend.akka" %% "akka-stream-alpakka-csv" % AlpakkaVersion, + "com.lightbend.akka" %% "akka-stream-alpakka-sse" % AlpakkaVersion, "com.typesafe.akka" %% "akka-persistence-typed" % AkkaVersion, akkaTypedTestkit, akkaHttpTestkitDep % "it,test", @@ -802,3 +803,5 @@ lazy val scalatra = project in file("scalatra") lazy val benchmark = project in file("specialized-benchmark") ThisBuild / libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always + +ThisBuild / resolvers += "Akka dependencies" at "https://repo.akka.io/maven/" \ No newline at end of file From 5bccddf2eeadd6dd099ca2f3d04363243124d68b Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Fri, 18 Oct 2024 09:52:55 +0200 Subject: [PATCH 0888/1318] downgraded minor version to avoid conflict --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 7b73fe457..3a62790da 100644 --- a/build.sbt +++ b/build.sbt @@ -9,7 +9,7 @@ val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.4" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV val logback = "ch.qos.logback" % "logback-classic" % "1.5.11" val embedMongoVersion = "4.17.0" -val AkkaVersion = "2.9.5" +val AkkaVersion = "2.9.3" val AlpakkaVersion = "8.0.0" val AkkaHttpVersion = "10.6.3" From fbce0f45ab93f639fd4b3aee2d3caa250937dbac Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 23 Sep 2024 00:19:45 +0000 Subject: [PATCH 0889/1318] Update zio-http, zio-http-testkit from 3.0.0-RC6 to 3.0.1 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 3a62790da..512a29081 100644 --- a/build.sbt +++ b/build.sbt @@ -696,7 +696,7 @@ lazy val zio3 = (project in file("zio3")) .settings( libraryDependencies ++= Seq( zioJsonDep, - "dev.zio" %% "zio-http" % "3.0.0-RC6", + "dev.zio" %% "zio-http" % "3.0.1", "io.getquill" %% "quill-zio" % "4.8.4", "io.getquill" %% "quill-jdbc-zio" % "4.8.4", "com.h2database" % "h2" % "2.2.220" @@ -705,7 +705,7 @@ lazy val zio3 = (project in file("zio3")) "dev.zio" %% "zio-test" % zioVersion % Test, zioTestSbt, "dev.zio" %% "zio-test-magnolia" % zioVersion % Test, - "dev.zio" %% "zio-http-testkit" % "3.0.0-RC6" % Test + "dev.zio" %% "zio-http-testkit" % "3.0.1" % Test ), testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework"), run / fork := true From 5645600bb7d9f16777b0d5172282087f7e09e5e5 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 24 Oct 2024 00:17:24 +0000 Subject: [PATCH 0890/1318] Update aws-java-sdk-s3 from 1.12.773 to 1.12.777 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 08e7246e8..ed8191c39 100644 --- a/build.sbt +++ b/build.sbt @@ -573,7 +573,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) scalaMock, "com.lihaoyi" %% "utest" % "0.8.4" % "test", munitDep, - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.773" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.777" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.28.23" @@ -815,4 +815,4 @@ lazy val benchmark = project in file("specialized-benchmark") ThisBuild / libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always -ThisBuild / resolvers += "Akka dependencies" at "https://repo.akka.io/maven/" \ No newline at end of file +ThisBuild / resolvers += "Akka dependencies" at "https://repo.akka.io/maven/" From e04a5ea119ab74bce76b9bed41e617013ae7d42c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 24 Oct 2024 00:18:06 +0000 Subject: [PATCH 0891/1318] Update chimney from 1.4.0 to 1.5.0 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 08e7246e8..3a3f00dd6 100644 --- a/build.sbt +++ b/build.sbt @@ -464,7 +464,7 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps .map(_.withConfigurations(Some("it,test"))), - libraryDependencies += "io.scalaland" %% "chimney" % "1.4.0", + libraryDependencies += "io.scalaland" %% "chimney" % "1.5.0", Defaults.itSettings ) @@ -815,4 +815,4 @@ lazy val benchmark = project in file("specialized-benchmark") ThisBuild / libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always -ThisBuild / resolvers += "Akka dependencies" at "https://repo.akka.io/maven/" \ No newline at end of file +ThisBuild / resolvers += "Akka dependencies" at "https://repo.akka.io/maven/" From 978b919a31e56d6be0b3560aff0b8a913e5c15e0 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 24 Oct 2024 00:18:21 +0000 Subject: [PATCH 0892/1318] Update elastic4s-client-esjava, ... from 8.15.2 to 8.15.3 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 08e7246e8..08e31966d 100644 --- a/build.sbt +++ b/build.sbt @@ -403,7 +403,7 @@ lazy val scala2_libraries = val circeVersion = "0.14.10" val monixVersion = "3.4.1" val sparkVersion = "3.5.3" -val elastic4sVersion = "8.15.2" +val elastic4sVersion = "8.15.3" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion val sparkSqlDep = "org.apache.spark" %% "spark-sql" % sparkVersion @@ -815,4 +815,4 @@ lazy val benchmark = project in file("specialized-benchmark") ThisBuild / libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always -ThisBuild / resolvers += "Akka dependencies" at "https://repo.akka.io/maven/" \ No newline at end of file +ThisBuild / resolvers += "Akka dependencies" at "https://repo.akka.io/maven/" From 7b45b27c9f9fb07eebae92521896fba49b3e33c1 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 24 Oct 2024 00:18:54 +0000 Subject: [PATCH 0893/1318] Update http4s-dsl from 0.23.28 to 0.23.29 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 08e7246e8..81159a89a 100644 --- a/build.sbt +++ b/build.sbt @@ -469,7 +469,7 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) ) val http4sBlaze = "0.23.16" -val http4sVersion = "0.23.28" +val http4sVersion = "0.23.29" val osLibVersion = "0.11.1" val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion @@ -815,4 +815,4 @@ lazy val benchmark = project in file("specialized-benchmark") ThisBuild / libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always -ThisBuild / resolvers += "Akka dependencies" at "https://repo.akka.io/maven/" \ No newline at end of file +ThisBuild / resolvers += "Akka dependencies" at "https://repo.akka.io/maven/" From 6da0ddb7f9d3ef5e9b85b4b9a80fd6c41258f22c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 24 Oct 2024 00:19:05 +0000 Subject: [PATCH 0894/1318] Update scala3-library from 3.5.1 to 3.5.2 --- project/ScalaVersions.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/ScalaVersions.scala b/project/ScalaVersions.scala index f1d261861..47cdd510e 100644 --- a/project/ScalaVersions.scala +++ b/project/ScalaVersions.scala @@ -1,6 +1,6 @@ object ScalaVersions { val scala2Version = "2.13.15" - val scala3Version = "3.5.1" + val scala3Version = "3.5.2" @deprecated( "Use Scala 2.13 or Scala 3. Don't use 2.12 unless it is a specific feature in 2.12." ) From 4b59949384a3dce7776d3766a863d1162b36930e Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 24 Oct 2024 00:19:16 +0000 Subject: [PATCH 0895/1318] Update sbt from 1.10.2 to 1.10.3 --- project/build.properties | 2 +- sbt-release/project/build.properties | 2 +- sbt-standalone/project/build.properties | 2 +- scala-graalvm/scala-graalvm-http-app/project/build.properties | 2 +- scala-sbt/intro-to-sbt/project/build.properties | 2 +- scala-sbt/scalafix/project/build.properties | 2 +- scalatra/project/build.properties | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/project/build.properties b/project/build.properties index a1ff42a65..647551c8f 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1,2 +1,2 @@ -sbt.version=1.10.2 +sbt.version=1.10.3 diff --git a/sbt-release/project/build.properties b/sbt-release/project/build.properties index 23f7d9793..cbf878e73 100644 --- a/sbt-release/project/build.properties +++ b/sbt-release/project/build.properties @@ -1 +1 @@ -sbt.version = 1.10.2 +sbt.version = 1.10.3 diff --git a/sbt-standalone/project/build.properties b/sbt-standalone/project/build.properties index 0b699c305..bc7390601 100644 --- a/sbt-standalone/project/build.properties +++ b/sbt-standalone/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.2 +sbt.version=1.10.3 diff --git a/scala-graalvm/scala-graalvm-http-app/project/build.properties b/scala-graalvm/scala-graalvm-http-app/project/build.properties index 0b699c305..bc7390601 100644 --- a/scala-graalvm/scala-graalvm-http-app/project/build.properties +++ b/scala-graalvm/scala-graalvm-http-app/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.2 +sbt.version=1.10.3 diff --git a/scala-sbt/intro-to-sbt/project/build.properties b/scala-sbt/intro-to-sbt/project/build.properties index 0b699c305..bc7390601 100644 --- a/scala-sbt/intro-to-sbt/project/build.properties +++ b/scala-sbt/intro-to-sbt/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.2 +sbt.version=1.10.3 diff --git a/scala-sbt/scalafix/project/build.properties b/scala-sbt/scalafix/project/build.properties index 3829f19f7..caeacc5ee 100644 --- a/scala-sbt/scalafix/project/build.properties +++ b/scala-sbt/scalafix/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.2 \ No newline at end of file +sbt.version=1.10.3 \ No newline at end of file diff --git a/scalatra/project/build.properties b/scalatra/project/build.properties index 0b699c305..bc7390601 100644 --- a/scalatra/project/build.properties +++ b/scalatra/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.2 +sbt.version=1.10.3 From d53f5cb22b1ebf8c1315a0ca60f2ccb83d7e0e1d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 24 Oct 2024 00:19:28 +0000 Subject: [PATCH 0896/1318] Update pulsar from 1.20.2 to 1.20.3 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 08e7246e8..1dcf9a88c 100644 --- a/build.sbt +++ b/build.sbt @@ -382,7 +382,7 @@ lazy val scala2_libraries = "org.scala-lang.modules" %% "scala-async" % "1.0.1", "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.10.0", "com.clever-cloud.pulsar4s" %% "pulsar4s-jackson" % "2.10.0", - "org.testcontainers" % "pulsar" % "1.20.2" % IntegrationTest, + "org.testcontainers" % "pulsar" % "1.20.3" % IntegrationTest, "org.apache.kafka" % "kafka-clients" % kafkaVersion, "com.fasterxml.jackson.core" % "jackson-databind" % jackSonVersion, "com.fasterxml.jackson.datatype" % "jackson-datatype-jsr310" % jackSonVersion, @@ -815,4 +815,4 @@ lazy val benchmark = project in file("specialized-benchmark") ThisBuild / libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always -ThisBuild / resolvers += "Akka dependencies" at "https://repo.akka.io/maven/" \ No newline at end of file +ThisBuild / resolvers += "Akka dependencies" at "https://repo.akka.io/maven/" From 3a42ad73d112eb3d101fe13896fa00ae05744a4a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 24 Oct 2024 00:19:42 +0000 Subject: [PATCH 0897/1318] Update s3, sqs from 2.28.23 to 2.28.28 --- build.sbt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index 08e7246e8..d66f19f95 100644 --- a/build.sbt +++ b/build.sbt @@ -452,7 +452,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-core" % "1.6.8", "org.elasticmq" %% "elasticmq-server" % "1.6.8", "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.8", - "software.amazon.awssdk" % "sqs" % "2.28.23" + "software.amazon.awssdk" % "sqs" % "2.28.28" ), Defaults.itSettings ) @@ -576,7 +576,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.773" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.28.23" + "software.amazon.awssdk" % "s3" % "2.28.28" ), Defaults.itSettings, IntegrationTest / fork := true @@ -815,4 +815,4 @@ lazy val benchmark = project in file("specialized-benchmark") ThisBuild / libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always -ThisBuild / resolvers += "Akka dependencies" at "https://repo.akka.io/maven/" \ No newline at end of file +ThisBuild / resolvers += "Akka dependencies" at "https://repo.akka.io/maven/" From 35ea376425dcbf201ff7f146380ea1908f01aafa Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 26 Oct 2024 00:19:04 +0000 Subject: [PATCH 0898/1318] Update os-lib from 0.11.1 to 0.11.3 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index e86da69f7..d8c9463d4 100644 --- a/build.sbt +++ b/build.sbt @@ -470,7 +470,7 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) val http4sBlaze = "0.23.16" val http4sVersion = "0.23.29" -val osLibVersion = "0.11.1" +val osLibVersion = "0.11.3" val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion From 9bba79d8c86f5d2f6522af0e9cc840230687dd4b Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 00:19:24 +0000 Subject: [PATCH 0899/1318] Update logback-classic from 1.5.11 to 1.5.12 --- build.sbt | 2 +- scalatra/build.sbt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index d8c9463d4..c50e744aa 100644 --- a/build.sbt +++ b/build.sbt @@ -7,7 +7,7 @@ val jUnitInterface = "com.github.sbt" % "junit-interface" % "0.13.3" % "test" val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.4" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.4" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV -val logback = "ch.qos.logback" % "logback-classic" % "1.5.11" +val logback = "ch.qos.logback" % "logback-classic" % "1.5.12" val embedMongoVersion = "4.17.0" val AkkaVersion = "2.9.3" val AlpakkaVersion = "8.0.0" diff --git a/scalatra/build.sbt b/scalatra/build.sbt index efa9b0e5f..fc67796fe 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -8,7 +8,7 @@ version := "0.1.0-SNAPSHOT" libraryDependencies ++= Seq( "org.scalatra" %% "scalatra" % ScalatraVersion, "org.scalatra" %% "scalatra-scalatest" % ScalatraVersion % "test", - "ch.qos.logback" % "logback-classic" % "1.5.11" % "runtime", + "ch.qos.logback" % "logback-classic" % "1.5.12" % "runtime", "org.eclipse.jetty" % "jetty-webapp" % "11.0.24" % "container", "javax.servlet" % "javax.servlet-api" % "4.0.1" % "provided", "org.scalatra" %% "scalatra-auth" % ScalatraVersion, From 5c2112471a47a10960615026ce9cda36645c6255 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 00:19:42 +0000 Subject: [PATCH 0900/1318] Update jackson-databind from 2.18.0 to 2.18.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d8c9463d4..348280f15 100644 --- a/build.sbt +++ b/build.sbt @@ -532,7 +532,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) val spireVersion = "0.18.0" val kafkaVersion = "7.7.1-ce" val pureconfigVersion = "0.17.7" -val jackSonVersion = "2.18.0" +val jackSonVersion = "2.18.1" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" From cc14f7962135858c0c14b10704bae02ce60d8a30 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 00:20:01 +0000 Subject: [PATCH 0901/1318] Update jackson-datatype-jsr310 from 2.18.0 to 2.18.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d8c9463d4..348280f15 100644 --- a/build.sbt +++ b/build.sbt @@ -532,7 +532,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) val spireVersion = "0.18.0" val kafkaVersion = "7.7.1-ce" val pureconfigVersion = "0.17.7" -val jackSonVersion = "2.18.0" +val jackSonVersion = "2.18.1" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" From 97f91b8e86fcb3aee145d2d05b5651c816967685 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 00:20:18 +0000 Subject: [PATCH 0902/1318] Update jackson-module-scala from 2.18.0 to 2.18.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d8c9463d4..348280f15 100644 --- a/build.sbt +++ b/build.sbt @@ -532,7 +532,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) val spireVersion = "0.18.0" val kafkaVersion = "7.7.1-ce" val pureconfigVersion = "0.17.7" -val jackSonVersion = "2.18.0" +val jackSonVersion = "2.18.1" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" From 80e41f7ce5b0daa89b3cc0355519f747315b4967 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 00:20:34 +0000 Subject: [PATCH 0903/1318] Update de.flapdoodle.embed.mongo from 4.17.0 to 4.18.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d8c9463d4..6c02f53d0 100644 --- a/build.sbt +++ b/build.sbt @@ -8,7 +8,7 @@ val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.4" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.4" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV val logback = "ch.qos.logback" % "logback-classic" % "1.5.11" -val embedMongoVersion = "4.17.0" +val embedMongoVersion = "4.18.0" val AkkaVersion = "2.9.3" val AlpakkaVersion = "8.0.0" val AkkaHttpVersion = "10.6.3" From 243ccf01394c262460145d0fd4db0e492e3b2c44 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 00:20:44 +0000 Subject: [PATCH 0904/1318] Update zio-kafka from 2.8.2 to 2.8.3 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d8c9463d4..f9a1e8886 100644 --- a/build.sbt +++ b/build.sbt @@ -677,7 +677,7 @@ lazy val zio = (project in file("zio")) libraryDependencies += "dev.zio" %% "zio" % zioVersion, libraryDependencies += "dev.zio" %% "zio-streams" % zioVersion, libraryDependencies += zioTestSbt, - libraryDependencies += "dev.zio" %% "zio-kafka" % "2.8.2", + libraryDependencies += "dev.zio" %% "zio-kafka" % "2.8.3", libraryDependencies += zioJsonDep, libraryDependencies += "dev.zio" %% "zio-prelude" % "1.0.0-RC23", libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.19" % Test, From 30c026d8fe0b38ee0b3377d33640ee4e11a2f280 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 00:20:58 +0000 Subject: [PATCH 0905/1318] Update sbt from 1.10.3 to 1.10.4 --- project/build.properties | 2 +- sbt-release/project/build.properties | 2 +- sbt-standalone/project/build.properties | 2 +- scala-graalvm/scala-graalvm-http-app/project/build.properties | 2 +- scala-sbt/intro-to-sbt/project/build.properties | 2 +- scala-sbt/scalafix/project/build.properties | 2 +- scalatra/project/build.properties | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/project/build.properties b/project/build.properties index 647551c8f..3769c4af5 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1,2 +1,2 @@ -sbt.version=1.10.3 +sbt.version=1.10.4 diff --git a/sbt-release/project/build.properties b/sbt-release/project/build.properties index cbf878e73..04a3949ca 100644 --- a/sbt-release/project/build.properties +++ b/sbt-release/project/build.properties @@ -1 +1 @@ -sbt.version = 1.10.3 +sbt.version = 1.10.4 diff --git a/sbt-standalone/project/build.properties b/sbt-standalone/project/build.properties index bc7390601..09feeeed5 100644 --- a/sbt-standalone/project/build.properties +++ b/sbt-standalone/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.3 +sbt.version=1.10.4 diff --git a/scala-graalvm/scala-graalvm-http-app/project/build.properties b/scala-graalvm/scala-graalvm-http-app/project/build.properties index bc7390601..09feeeed5 100644 --- a/scala-graalvm/scala-graalvm-http-app/project/build.properties +++ b/scala-graalvm/scala-graalvm-http-app/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.3 +sbt.version=1.10.4 diff --git a/scala-sbt/intro-to-sbt/project/build.properties b/scala-sbt/intro-to-sbt/project/build.properties index bc7390601..09feeeed5 100644 --- a/scala-sbt/intro-to-sbt/project/build.properties +++ b/scala-sbt/intro-to-sbt/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.3 +sbt.version=1.10.4 diff --git a/scala-sbt/scalafix/project/build.properties b/scala-sbt/scalafix/project/build.properties index caeacc5ee..c0685085e 100644 --- a/scala-sbt/scalafix/project/build.properties +++ b/scala-sbt/scalafix/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.3 \ No newline at end of file +sbt.version=1.10.4 \ No newline at end of file diff --git a/scalatra/project/build.properties b/scalatra/project/build.properties index bc7390601..09feeeed5 100644 --- a/scalatra/project/build.properties +++ b/scalatra/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.3 +sbt.version=1.10.4 From 08e2d8c3ba08dfa99231aeb254ddae3ea7330288 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 00:21:12 +0000 Subject: [PATCH 0906/1318] Update cats-effect, cats-effect-testkit from 3.5.4 to 3.5.5 --- build.sbt | 4 ++-- scala-with-maven/hello-rest/pom.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index d8c9463d4..59904e71f 100644 --- a/build.sbt +++ b/build.sbt @@ -4,8 +4,8 @@ ThisBuild / scalaVersion := scala3Version ThisBuild / organization := "com.baeldung" ThisBuild / organizationName := "core-scala" val jUnitInterface = "com.github.sbt" % "junit-interface" % "0.13.3" % "test" -val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.4" -val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.4" % Test +val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.5" +val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.5" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV val logback = "ch.qos.logback" % "logback-classic" % "1.5.11" val embedMongoVersion = "4.17.0" diff --git a/scala-with-maven/hello-rest/pom.xml b/scala-with-maven/hello-rest/pom.xml index 1da06cd21..f72dd94ea 100644 --- a/scala-with-maven/hello-rest/pom.xml +++ b/scala-with-maven/hello-rest/pom.xml @@ -22,7 +22,7 @@ org.typelevel cats-effect_3 - 3.5.4 + 3.5.5 org.http4s From c66e286b265dde5077d64c9cfb39564c3738fb23 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 00:21:26 +0000 Subject: [PATCH 0907/1318] Update s3, sqs from 2.28.28 to 2.28.29 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index d8c9463d4..7820a6bfe 100644 --- a/build.sbt +++ b/build.sbt @@ -452,7 +452,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-core" % "1.6.8", "org.elasticmq" %% "elasticmq-server" % "1.6.8", "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.8", - "software.amazon.awssdk" % "sqs" % "2.28.28" + "software.amazon.awssdk" % "sqs" % "2.28.29" ), Defaults.itSettings ) @@ -576,7 +576,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.777" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.28.28" + "software.amazon.awssdk" % "s3" % "2.28.29" ), Defaults.itSettings, IntegrationTest / fork := true From 852a78824edf0613c86f17b2f8539e7ec6dfd6c8 Mon Sep 17 00:00:00 2001 From: Callum Gibbons Date: Tue, 5 Nov 2024 21:15:26 +0000 Subject: [PATCH 0908/1318] Updated unknownSizeToTuple to handle single element list --- .../com/baeldung/scala/listtotuple/ConvertListToTuple.scala | 1 + .../scala/listtotuple/ConvertListToTupleUnitTest.scala | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/scala-core-collections-modules/scala-core-collections-4/src/main/scala/com/baeldung/scala/listtotuple/ConvertListToTuple.scala b/scala-core-collections-modules/scala-core-collections-4/src/main/scala/com/baeldung/scala/listtotuple/ConvertListToTuple.scala index 5d5f56f54..c652dcd18 100644 --- a/scala-core-collections-modules/scala-core-collections-4/src/main/scala/com/baeldung/scala/listtotuple/ConvertListToTuple.scala +++ b/scala-core-collections-modules/scala-core-collections-4/src/main/scala/com/baeldung/scala/listtotuple/ConvertListToTuple.scala @@ -17,6 +17,7 @@ object ConvertListToTuple { list match { case first :: second :: third :: _ => (first, second, third) case first :: second :: _ => (first, second) + case first :: _ => Tuple1(first) case _ => ("", "") } } diff --git a/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/listtotuple/ConvertListToTupleUnitTest.scala b/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/listtotuple/ConvertListToTupleUnitTest.scala index f16003c13..ff709a92e 100644 --- a/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/listtotuple/ConvertListToTupleUnitTest.scala +++ b/scala-core-collections-modules/scala-core-collections-4/src/test/scala/com/baeldung/scala/listtotuple/ConvertListToTupleUnitTest.scala @@ -42,6 +42,11 @@ class ConvertListToTupleUnitTest extends AnyFlatSpec with Matchers { ConvertListToTuple.unknownSizeToTuple(testList) shouldBe ("", "") } + "unknownSizeToTuple" should "convert list of 1 element to tuple1" in { + val testList = List("Hello") + ConvertListToTuple.unknownSizeToTuple(testList) shouldBe Tuple1("Hello") + } + "unknownSizeToTuple" should "convert list of 2 elements to tuple2" in { val testList = List("Hello", "world") ConvertListToTuple.unknownSizeToTuple(testList) shouldBe ("Hello", "world") From e3e5551ccb8d57e6c09282a8a65395beaa5a34c4 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 9 Nov 2024 00:17:09 +0000 Subject: [PATCH 0909/1318] Update tapir-akka-http-server, tapir-core, ... from 1.11.7 to 1.11.8 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index 8aaa7cc28..ce0931df6 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.11.7" +val tapirV = "1.11.8" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From e426a8121b62c582a2c6bce182ab09f184faeaa9 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 9 Nov 2024 00:17:28 +0000 Subject: [PATCH 0910/1318] Update zio, zio-streams, zio-test, ... from 2.1.11 to 2.1.12 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index aad97541f..7880b7f18 100644 --- a/build.sbt +++ b/build.sbt @@ -21,7 +21,7 @@ val scalaTestDeps = Seq( ) val scalaMock = "org.scalamock" %% "scalamock" % "6.0.0" % Test -val zioVersion = "2.1.11" +val zioVersion = "2.1.12" lazy val scala_core = (project in file("scala-core-modules/scala-core")) .settings( From 87a26e2a78362aca60708d75d3542b48bd595f6f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 9 Nov 2024 00:17:45 +0000 Subject: [PATCH 0911/1318] Update http4s-blaze-client, ... from 0.23.16 to 0.23.17 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index aad97541f..177c307e0 100644 --- a/build.sbt +++ b/build.sbt @@ -468,7 +468,7 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) Defaults.itSettings ) -val http4sBlaze = "0.23.16" +val http4sBlaze = "0.23.17" val http4sVersion = "0.23.29" val osLibVersion = "0.11.3" From 2b8ef8932810f1b6f23fbf571c8981b281aedbd8 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 9 Nov 2024 00:17:59 +0000 Subject: [PATCH 0912/1318] Update mongo-scala-driver from 5.2.0 to 5.2.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index aad97541f..a72ca78d3 100644 --- a/build.sbt +++ b/build.sbt @@ -272,7 +272,7 @@ lazy val scala_akka_dependencies: Seq[ModuleID] = Seq( akkaTypedTestkit, "com.lightbend.akka" %% "akka-stream-alpakka-mongodb" % AlpakkaVersion, akkaStreamDep, - "org.mongodb.scala" %% "mongo-scala-driver" % "5.2.0", + "org.mongodb.scala" %% "mongo-scala-driver" % "5.2.1", "com.lightbend.akka" %% "akka-stream-alpakka-file" % AlpakkaVersion, jUnitInterface, embeddedMongo % Test, From 2fc635a52e34ec2f21f1b29e2754dc7dacc46d6a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 9 Nov 2024 00:18:12 +0000 Subject: [PATCH 0913/1318] Update reactivemongo-akkastream from 1.1.0-RC12 to 1.1.0-RC14 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index aad97541f..5abbac6c8 100644 --- a/build.sbt +++ b/build.sbt @@ -350,7 +350,7 @@ val slickVersion = "3.5.2" val shapelessVersion = "2.3.12" val scalazVersion = "7.3.8" val fs2Version = "3.11.0" -val reactiveMongo = "1.1.0-RC12" +val reactiveMongo = "1.1.0-RC14" lazy val scala2_libraries = (project in file("scala-2-modules/scala2-libraries")) From fcdd5dd07ab5203b42944253a93f779e931d7c40 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 9 Nov 2024 00:18:19 +0000 Subject: [PATCH 0914/1318] Update sbt, scripted-plugin from 1.10.4 to 1.10.5 --- project/build.properties | 2 +- sbt-release/project/build.properties | 2 +- sbt-standalone/project/build.properties | 2 +- scala-graalvm/scala-graalvm-http-app/project/build.properties | 2 +- scala-sbt/intro-to-sbt/project/build.properties | 2 +- scala-sbt/scalafix/project/build.properties | 2 +- scalatra/project/build.properties | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/project/build.properties b/project/build.properties index 3769c4af5..30c85e4f4 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1,2 +1,2 @@ -sbt.version=1.10.4 +sbt.version=1.10.5 diff --git a/sbt-release/project/build.properties b/sbt-release/project/build.properties index 04a3949ca..1767a6f85 100644 --- a/sbt-release/project/build.properties +++ b/sbt-release/project/build.properties @@ -1 +1 @@ -sbt.version = 1.10.4 +sbt.version = 1.10.5 diff --git a/sbt-standalone/project/build.properties b/sbt-standalone/project/build.properties index 09feeeed5..db1723b08 100644 --- a/sbt-standalone/project/build.properties +++ b/sbt-standalone/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.4 +sbt.version=1.10.5 diff --git a/scala-graalvm/scala-graalvm-http-app/project/build.properties b/scala-graalvm/scala-graalvm-http-app/project/build.properties index 09feeeed5..db1723b08 100644 --- a/scala-graalvm/scala-graalvm-http-app/project/build.properties +++ b/scala-graalvm/scala-graalvm-http-app/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.4 +sbt.version=1.10.5 diff --git a/scala-sbt/intro-to-sbt/project/build.properties b/scala-sbt/intro-to-sbt/project/build.properties index 09feeeed5..db1723b08 100644 --- a/scala-sbt/intro-to-sbt/project/build.properties +++ b/scala-sbt/intro-to-sbt/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.4 +sbt.version=1.10.5 diff --git a/scala-sbt/scalafix/project/build.properties b/scala-sbt/scalafix/project/build.properties index c0685085e..c7450fc2a 100644 --- a/scala-sbt/scalafix/project/build.properties +++ b/scala-sbt/scalafix/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.4 \ No newline at end of file +sbt.version=1.10.5 \ No newline at end of file diff --git a/scalatra/project/build.properties b/scalatra/project/build.properties index 09feeeed5..db1723b08 100644 --- a/scalatra/project/build.properties +++ b/scalatra/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.4 +sbt.version=1.10.5 From 1e17d8f9c167416cb1a0489ef1155c922ce867a3 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 9 Nov 2024 00:18:33 +0000 Subject: [PATCH 0915/1318] Update s3, sqs from 2.28.29 to 2.29.9 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index aad97541f..d0671de6c 100644 --- a/build.sbt +++ b/build.sbt @@ -452,7 +452,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-core" % "1.6.8", "org.elasticmq" %% "elasticmq-server" % "1.6.8", "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.8", - "software.amazon.awssdk" % "sqs" % "2.28.29" + "software.amazon.awssdk" % "sqs" % "2.29.9" ), Defaults.itSettings ) @@ -576,7 +576,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.777" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.28.29" + "software.amazon.awssdk" % "s3" % "2.29.9" ), Defaults.itSettings, IntegrationTest / fork := true From 2ba0aeb59ae2399ee1c12b4d25b50fc611d9f2a8 Mon Sep 17 00:00:00 2001 From: Matteo Di Pirro Date: Thu, 14 Nov 2024 18:08:07 +0100 Subject: [PATCH 0916/1318] SCALA-672 Add code for stream error handling --- build.sbt | 2 + .../scala/akka/stream/errors/Main.scala | 42 +++++++++++++++ .../scala/akka/stream/errors/package.scala | 53 +++++++++++++++++++ .../stream/errors/ErrorRecoveryTest.scala | 53 +++++++++++++++++++ 4 files changed, 150 insertions(+) create mode 100644 scala-akka-3/src/main/scala/com/baeldung/scala/akka/stream/errors/Main.scala create mode 100644 scala-akka-3/src/main/scala/com/baeldung/scala/akka/stream/errors/package.scala create mode 100644 scala-akka-3/src/test/scala/com/baeldung/scala/akka/stream/errors/ErrorRecoveryTest.scala diff --git a/build.sbt b/build.sbt index 3acd1a9b4..5742ae525 100644 --- a/build.sbt +++ b/build.sbt @@ -338,6 +338,8 @@ lazy val scala_akka_3 = (project in file("scala-akka-3")) libraryDependencies ++= Seq( "com.typesafe.akka" %% "akka-stream" % AkkaVersion, "com.typesafe.akka" %% "akka-discovery" % AkkaVersion, + "org.slf4j" % "slf4j-api" % "2.0.16", + "org.slf4j" % "slf4j-simple" % "2.0.16", "com.typesafe.akka" %% "akka-stream-testkit" % AkkaVersion % Test, akkaActorTyped, akkaStreamDep, diff --git a/scala-akka-3/src/main/scala/com/baeldung/scala/akka/stream/errors/Main.scala b/scala-akka-3/src/main/scala/com/baeldung/scala/akka/stream/errors/Main.scala new file mode 100644 index 000000000..fe6a6e0e6 --- /dev/null +++ b/scala-akka-3/src/main/scala/com/baeldung/scala/akka/stream/errors/Main.scala @@ -0,0 +1,42 @@ +package com.baeldung.scala.akka.stream.errors + +import akka.actor.ActorSystem +import akka.stream.RestartSettings +import akka.stream.scaladsl.RestartSource + +import scala.concurrent.duration.DurationInt +import scala.language.postfixOps +import scala.util.{Failure, Success} + +object Main extends App { + implicit val system: ActorSystem = ActorSystem("baeldung") + + private val backoffSettings = RestartSettings( + minBackoff = 3 seconds, + maxBackoff = 30 seconds, + randomFactor = 0.2 + ).withMaxRestarts(3, 5.minutes) + + RestartSource + .withBackoff(backoffSettings) { () => source } + .via(parse) + .via(compare) + .runWith(sink) + .andThen { + case Failure(exception) => println(exception) + case Success((correct, total)) => + println(s"$correct/$total correct answers") + }(system.dispatcher) + .onComplete(_ => system.terminate())(system.dispatcher) + + /*source + .via(parseWithLogging) + .via(compare) + .runWith(sink) + .andThen { + case Failure(exception) => println(exception) + case Success((correct, total)) => + println(s"$correct/$total correct answers") + }(system.dispatcher) + .onComplete(_ => system.terminate())(system.dispatcher)*/ +} diff --git a/scala-akka-3/src/main/scala/com/baeldung/scala/akka/stream/errors/package.scala b/scala-akka-3/src/main/scala/com/baeldung/scala/akka/stream/errors/package.scala new file mode 100644 index 000000000..6fe74b795 --- /dev/null +++ b/scala-akka-3/src/main/scala/com/baeldung/scala/akka/stream/errors/package.scala @@ -0,0 +1,53 @@ +package com.baeldung.scala.akka.stream + +import akka.NotUsed +import akka.stream.Attributes +import akka.stream.scaladsl.{Flow, Sink, Source} + +import scala.concurrent.Future + +package object errors { + val source: Source[String, NotUsed] = Source( + Seq("5,10", "15,15", "78,79", "12,12", "0,0", "456,456") + ) + + val parse: Flow[String, (Int, Int), NotUsed] = + Flow[String] + .map { pair => + val parts = pair.split(",") + (parts(0).toInt, parts(1).toInt) + } + + val parseWithRecover: Flow[String, Either[String, (Int, Int)], NotUsed] = + Flow[String] + .map { pair => + val parts = pair.split(",") + Right((parts(0).toInt, parts(1).toInt)) + } + .recover({ case e: ArrayIndexOutOfBoundsException => + Left(e.getMessage) + }) + + val parseWithLogging: Flow[String, (Int, Int), NotUsed] = + Flow[String] + .map { pair => + val parts = pair.split(",") + (parts(0).toInt, parts(1).toInt) + } + .log(name = "Baeldung stream") + .addAttributes( + Attributes.logLevels( + onElement = Attributes.LogLevels.Info + ) + ) + + val compare: Flow[(Int, Int), Boolean, NotUsed] = + Flow[(Int, Int)] + .map { case (userAnswer, correctAnswer) => userAnswer == correctAnswer } + + val sink: Sink[Boolean, Future[(Int, Int)]] = Sink.fold((0, 0)) { + case ((correctCount, total), wasCorrect) => + if (wasCorrect) (correctCount + 1, total + 1) + else (correctCount, total + 1) + } +} diff --git a/scala-akka-3/src/test/scala/com/baeldung/scala/akka/stream/errors/ErrorRecoveryTest.scala b/scala-akka-3/src/test/scala/com/baeldung/scala/akka/stream/errors/ErrorRecoveryTest.scala new file mode 100644 index 000000000..290a8a82d --- /dev/null +++ b/scala-akka-3/src/test/scala/com/baeldung/scala/akka/stream/errors/ErrorRecoveryTest.scala @@ -0,0 +1,53 @@ +package com.baeldung.scala.akka.stream.errors + +import akka.actor.ActorSystem +import akka.stream.{ActorAttributes, Supervision} +import akka.stream.scaladsl.Keep +import akka.stream.testkit.scaladsl.{TestSink, TestSource} +import org.scalatest.concurrent.ScalaFutures.convertScalaFuture +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers + +class ErrorRecoveryTest extends AnyFlatSpec with Matchers { + implicit val system: ActorSystem = ActorSystem("baeldung") + + "The \"parseWithRecover\" flow" should "parse recover from a parsing error" in { + val (pub, sub) = TestSource[String]() + .via(parseWithRecover) + .toMat(TestSink[Either[String, (Int, Int)]]())(Keep.both) + .run() + + pub.sendNext("1,1") + pub.sendNext("145146") + pub.sendComplete() + + sub.requestNext(Right(1, 1)) + sub.requestNext(Left("Index 1 out of bounds for length 1")) + sub.expectComplete() + } + + "The \"Resume\" supervision strategy" should "ignore parsing errors" in { + val runnableGraph = TestSource[String]() + .via(parseWithRecover) + .toMat(TestSink[Either[String, (Int, Int)]]())(Keep.both) + + val decider: Supervision.Decider = { + case _: ArrayIndexOutOfBoundsException => Supervision.Resume + case _ => Supervision.Stop + } + + val graphWithResumeSupervision = + runnableGraph.withAttributes(ActorAttributes.supervisionStrategy(decider)) + + val (pub, sub) = graphWithResumeSupervision.run() + + pub.sendNext("1,1") + pub.sendNext("145146") + pub.sendNext("1,2") + pub.sendComplete() + + sub.requestNext(Right(1, 1)) + sub.requestNext(Right(1, 2)) + sub.expectComplete() + } +} From 9faa82d499b9e79ac1f485b5d0860ffe8cf551e6 Mon Sep 17 00:00:00 2001 From: Matteo Di Pirro Date: Fri, 15 Nov 2024 09:13:02 +0100 Subject: [PATCH 0917/1318] SCALA-672 Rename test to follow the naming convention --- .../{ErrorRecoveryTest.scala => ErrorRecoveryUnitTest.scala} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename scala-akka-3/src/test/scala/com/baeldung/scala/akka/stream/errors/{ErrorRecoveryTest.scala => ErrorRecoveryUnitTest.scala} (96%) diff --git a/scala-akka-3/src/test/scala/com/baeldung/scala/akka/stream/errors/ErrorRecoveryTest.scala b/scala-akka-3/src/test/scala/com/baeldung/scala/akka/stream/errors/ErrorRecoveryUnitTest.scala similarity index 96% rename from scala-akka-3/src/test/scala/com/baeldung/scala/akka/stream/errors/ErrorRecoveryTest.scala rename to scala-akka-3/src/test/scala/com/baeldung/scala/akka/stream/errors/ErrorRecoveryUnitTest.scala index 290a8a82d..9dc70b78e 100644 --- a/scala-akka-3/src/test/scala/com/baeldung/scala/akka/stream/errors/ErrorRecoveryTest.scala +++ b/scala-akka-3/src/test/scala/com/baeldung/scala/akka/stream/errors/ErrorRecoveryUnitTest.scala @@ -8,7 +8,7 @@ import org.scalatest.concurrent.ScalaFutures.convertScalaFuture import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers -class ErrorRecoveryTest extends AnyFlatSpec with Matchers { +class ErrorRecoveryUnitTest extends AnyFlatSpec with Matchers { implicit val system: ActorSystem = ActorSystem("baeldung") "The \"parseWithRecover\" flow" should "parse recover from a parsing error" in { From 7c5c026edae6b651b981a9ddfc8f9b700455f9ec Mon Sep 17 00:00:00 2001 From: Stefanos Georgakis Date: Wed, 13 Nov 2024 12:27:30 +0200 Subject: [PATCH 0918/1318] [SCALA-308]- Postgres specific features in Slick using Slick-PG --- build.sbt | 21 ++++-- scala-libraries-persistence/README.md | 3 +- .../docker-compose.yaml | 14 ++++ .../BaeldungPostgresProfileSpec.scala | 68 +++++++++++++++++++ .../src/main/resources/application.conf | 21 +++--- .../slick_pg/BaeldungPostgresProfile.scala | 35 ++++++++++ .../scala/slick_pg/PostgresConnection.scala | 10 +++ .../slick_pg/TimestamptzPostgresProfile.scala | 56 +++++++++++++++ .../slick_pg/entity/BaeldungEntity.scala | 12 ++++ .../slick_pg/table/BaeldungEntityTable.scala | 21 ++++++ 10 files changed, 245 insertions(+), 16 deletions(-) create mode 100644 scala-libraries-persistence/docker-compose.yaml create mode 100644 scala-libraries-persistence/src/it/scala/com/baeldung/scala/slick_pg/BaeldungPostgresProfileSpec.scala create mode 100644 scala-libraries-persistence/src/main/scala/com/baeldung/scala/slick_pg/BaeldungPostgresProfile.scala create mode 100644 scala-libraries-persistence/src/main/scala/com/baeldung/scala/slick_pg/PostgresConnection.scala create mode 100644 scala-libraries-persistence/src/main/scala/com/baeldung/scala/slick_pg/TimestamptzPostgresProfile.scala create mode 100644 scala-libraries-persistence/src/main/scala/com/baeldung/scala/slick_pg/entity/BaeldungEntity.scala create mode 100644 scala-libraries-persistence/src/main/scala/com/baeldung/scala/slick_pg/table/BaeldungEntityTable.scala diff --git a/build.sbt b/build.sbt index 3acd1a9b4..a31422e96 100644 --- a/build.sbt +++ b/build.sbt @@ -351,6 +351,10 @@ val shapelessVersion = "2.3.12" val scalazVersion = "7.3.8" val fs2Version = "3.11.0" val reactiveMongo = "1.1.0-RC14" +val slickPgVersion = "0.22.2" +val scalaTestContainersVersion = "0.41.4" +val postgresqlVersion = "42.7.4" +val json4sVersion = "4.0.7" lazy val scala2_libraries = (project in file("scala-2-modules/scala2-libraries")) @@ -432,7 +436,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) ), libraryDependencies ++= Seq( "org.playframework" %% "play-slick" % LibraryVersions.playSlickVersion, - "org.postgresql" % "postgresql" % "42.7.4" + "org.postgresql" % "postgresql" % postgresqlVersion ), dependencyOverrides := Seq( "com.typesafe.akka" %% "akka-protobuf-v3" % AkkaVersion, @@ -574,8 +578,8 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.lihaoyi" %% "utest" % "0.8.4" % "test", munitDep, "com.amazonaws" % "aws-java-sdk-s3" % "1.12.777" % IntegrationTest, - "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, - "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, + "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, + "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.29.9" ), Defaults.itSettings, @@ -598,9 +602,16 @@ lazy val scala_libraries_persistence = doobieCore, doobiePGDep, "org.reactivemongo" %% "reactivemongo" % reactiveMongo, - "org.reactivemongo" %% "reactivemongo-akkastream" % reactiveMongo, + "org.reactivemongo" %% "reactivemongo-akkastream" % reactiveMongo exclude("org.scala-lang.modules", "scala-parser-combinators_2.13"), "de.flapdoodle.embed" % "de.flapdoodle.embed.mongo" % embedMongoVersion % IntegrationTest, - logback + logback, + "com.typesafe.slick" %% "slick-hikaricp" % slickVersion, + "org.postgresql" % "postgresql" % postgresqlVersion, + "com.github.tminglei" %% "slick-pg" % slickPgVersion, + "org.json4s" %% "json4s-native" % json4sVersion, + "com.github.tminglei" %% "slick-pg_json4s" % slickPgVersion, + "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, + "com.dimafeng" %% "testcontainers-scala-postgresql" % scalaTestContainersVersion % IntegrationTest ) ) diff --git a/scala-libraries-persistence/README.md b/scala-libraries-persistence/README.md index 0cf53191d..fa029a012 100644 --- a/scala-libraries-persistence/README.md +++ b/scala-libraries-persistence/README.md @@ -3,4 +3,5 @@ - [Introduction to Slick](https://www.baeldung.com/scala/slick-intro) - [Introduction to Skunk – Scala Driver for PostgreSQL](https://www.baeldung.com/scala/skunk-postgresql-driver) - [Introduction to doobie – a JDBC Layer for Scala](https://www.baeldung.com/scala/doobie-intro) -- [Introduction to Reactive Mongo](https://www.baeldung.com/scala/mongo-reactive-intro) \ No newline at end of file +- [Introduction to Reactive Mongo](https://www.baeldung.com/scala/mongo-reactive-intro) +- [Postgres Specific Features in Slick Using Slick-PG](TBD) \ No newline at end of file diff --git a/scala-libraries-persistence/docker-compose.yaml b/scala-libraries-persistence/docker-compose.yaml new file mode 100644 index 000000000..9dad5d7f1 --- /dev/null +++ b/scala-libraries-persistence/docker-compose.yaml @@ -0,0 +1,14 @@ +services: + db: + image: postgres:16.4 + environment: + - POSTGRES_DB=baeldung + - POSTGRES_USER=baeldung + - POSTGRES_PASSWORD=password + ports: + - '5432:5432' + volumes: + - baeldung-postgresql-data:/var/lib/postgresql/data + +volumes: + baeldung-postgresql-data: \ No newline at end of file diff --git a/scala-libraries-persistence/src/it/scala/com/baeldung/scala/slick_pg/BaeldungPostgresProfileSpec.scala b/scala-libraries-persistence/src/it/scala/com/baeldung/scala/slick_pg/BaeldungPostgresProfileSpec.scala new file mode 100644 index 000000000..3246dddf7 --- /dev/null +++ b/scala-libraries-persistence/src/it/scala/com/baeldung/scala/slick_pg/BaeldungPostgresProfileSpec.scala @@ -0,0 +1,68 @@ +package com.baeldung.scala.slick_pg + +import com.baeldung.scala.slick_pg.BaeldungPostgresProfile.api.* +import com.baeldung.scala.slick_pg.entity.BaeldungEntity +import com.baeldung.scala.slick_pg.table.baeldungEntityTable +import com.dimafeng.testcontainers.PostgreSQLContainer +import com.dimafeng.testcontainers.scalatest.TestContainerForAll +import org.json4s.native.JsonMethods +import org.scalatest.flatspec.AsyncFlatSpec +import org.testcontainers.utility.DockerImageName +import slick.dbio.DBIO + +import java.time.OffsetDateTime +import scala.concurrent.Future + +class BaeldungPostgresProfileSpec + extends AsyncFlatSpec + with TestContainerForAll { + + override val containerDef: PostgreSQLContainer.Def = PostgreSQLContainer.Def( + dockerImageName = DockerImageName.parse("postgres:16.4"), + databaseName = "baeldung", + username = "baeldung", + password = "baeldung" + ) + + "BaeldungPostgresProfile" should "insert entity" in { + withContainers { container => + + val db: BaeldungPostgresProfile.backend.Database = + BaeldungPostgresProfile.backend.Database.forURL( + containerDef.start().jdbcUrl, + user = "baeldung", + password = "baeldung", + driver = "org.postgresql.Driver" + ) + + val createdAt = OffsetDateTime.now() + val res = db + .run( + DBIO.seq( + baeldungEntityTable.schema.createIfNotExists, + baeldungEntityTable += BaeldungEntity( + 1L, + createdAt, + List(1d, 5d, 2.24d), + JsonMethods.parse("""{"field1": 5, "field2": "test"}""") + ) + ) + ) + .flatMap(_ => db.run(baeldungEntityTable.result)) + + for (sequence <- res) yield { + sequence.foreach(entity => { + assert(entity.id.equals(1L)) + assert(entity.createdAt.equals(createdAt)) + assert(entity.prices.equals(List(1d, 5d, 2.24d))) + assert( + entity.metadata.equals( + JsonMethods.parse("""{"field1": 5, "field2": "test"}""") + ) + ) + }) + succeed + } + } + } +} diff --git a/scala-libraries-persistence/src/main/resources/application.conf b/scala-libraries-persistence/src/main/resources/application.conf index 2272bb414..0e6b89b44 100644 --- a/scala-libraries-persistence/src/main/resources/application.conf +++ b/scala-libraries-persistence/src/main/resources/application.conf @@ -5,13 +5,14 @@ h2mem { connectionPool = disabled } -#postgres { -# dataSourceClass = "org.postgresql.ds.PGSimpleDataSource" -# properties = { -# serverName = "localhost" -# portNumber = "5432" -# databaseName = "slick-tutorial" -# user = "postgres" -# password = "admin" -# } -#} \ No newline at end of file +postgres { + connectionPool = "HikariCP" + dataSourceClass = "org.postgresql.ds.PGSimpleDataSource" + properties = { + serverName = "localhost" + portNumber = "5432" + databaseName = "baeldung" + user = "baeldung" + password = "password" + } +} \ No newline at end of file diff --git a/scala-libraries-persistence/src/main/scala/com/baeldung/scala/slick_pg/BaeldungPostgresProfile.scala b/scala-libraries-persistence/src/main/scala/com/baeldung/scala/slick_pg/BaeldungPostgresProfile.scala new file mode 100644 index 000000000..2ef666642 --- /dev/null +++ b/scala-libraries-persistence/src/main/scala/com/baeldung/scala/slick_pg/BaeldungPostgresProfile.scala @@ -0,0 +1,35 @@ +package com.baeldung.scala.slick_pg + +import com.github.tminglei.slickpg.* +import org.json4s.{JValue, JsonMethods} +import slick.jdbc.JdbcType + +trait BaeldungPostgresProfile + extends ExPostgresProfile + with PgDate2Support + with TimestamptzPostgresProfile + with PgArraySupport + with PgJson4sSupport { + + override protected def computeCapabilities: Set[slick.basic.Capability] = + super.computeCapabilities + slick.jdbc.JdbcCapabilities.insertOrUpdate + + override val api = BaeldungApi + + override val pgjson = "jsonb" + type DOCType = org.json4s.native.Document + override val jsonMethods = + org.json4s.native.JsonMethods.asInstanceOf[JsonMethods[DOCType]] + + object BaeldungApi + extends ExtPostgresAPI + with Date2DateTimeImplicitsDuration + with ArrayImplicits + with JsonImplicits { + + implicit val doubleListTypeMapper: JdbcType[List[Double]] = + new SimpleArrayJdbcType[Double]("DOUBLE PRECISION").to(_.toList) + } +} + +object BaeldungPostgresProfile extends BaeldungPostgresProfile diff --git a/scala-libraries-persistence/src/main/scala/com/baeldung/scala/slick_pg/PostgresConnection.scala b/scala-libraries-persistence/src/main/scala/com/baeldung/scala/slick_pg/PostgresConnection.scala new file mode 100644 index 000000000..bc00c3dc5 --- /dev/null +++ b/scala-libraries-persistence/src/main/scala/com/baeldung/scala/slick_pg/PostgresConnection.scala @@ -0,0 +1,10 @@ +package com.baeldung.scala.slick_pg + +import com.baeldung.scala.slick_pg +import com.baeldung.scala.slick_pg.BaeldungPostgresProfile.api.* + +object PostgresConnection { + + val db: slick_pg.BaeldungPostgresProfile.backend.Database = + Database.forConfig("postgres") +} diff --git a/scala-libraries-persistence/src/main/scala/com/baeldung/scala/slick_pg/TimestamptzPostgresProfile.scala b/scala-libraries-persistence/src/main/scala/com/baeldung/scala/slick_pg/TimestamptzPostgresProfile.scala new file mode 100644 index 000000000..570d0a560 --- /dev/null +++ b/scala-libraries-persistence/src/main/scala/com/baeldung/scala/slick_pg/TimestamptzPostgresProfile.scala @@ -0,0 +1,56 @@ +package com.baeldung.scala.slick_pg + +import slick.jdbc.PostgresProfile + +import java.sql.{PreparedStatement, ResultSet} +import java.time.OffsetDateTime +import java.time.format.DateTimeFormatterBuilder +import java.time.format.DateTimeFormatter +import java.time.temporal.ChronoField + +trait TimestamptzPostgresProfile extends PostgresProfile { + + override val columnTypes: PostgresJdbcTypes = new PostgresJdbcTypes { + + override val offsetDateTimeType: OffsetDateTimeJdbcType = + new OffsetDateTimeJdbcType { + + override def sqlType: Int = { + java.sql.Types.TIMESTAMP_WITH_TIMEZONE + } + + private val formatter = { + new DateTimeFormatterBuilder() + .append(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) + .optionalStart() + .appendFraction(ChronoField.NANO_OF_SECOND, 0, 6, true) + .optionalEnd() + .optionalStart() + .appendOffset("+HH:mm:ss", "+00") + .optionalEnd() + .toFormatter() + } + + override def setValue( + v: OffsetDateTime, + p: PreparedStatement, + idx: Int + ): Unit = { + p.setObject(idx, v) + } + override def getValue(r: ResultSet, idx: Int): OffsetDateTime = { + r.getString(idx) match { + case null => null + case date: String => OffsetDateTime.from(formatter.parse(date)) + } + } + override def updateValue( + v: OffsetDateTime, + r: ResultSet, + idx: Int + ): Unit = { + r.updateObject(idx, v) + } + } + } +} diff --git a/scala-libraries-persistence/src/main/scala/com/baeldung/scala/slick_pg/entity/BaeldungEntity.scala b/scala-libraries-persistence/src/main/scala/com/baeldung/scala/slick_pg/entity/BaeldungEntity.scala new file mode 100644 index 000000000..e853cd6ca --- /dev/null +++ b/scala-libraries-persistence/src/main/scala/com/baeldung/scala/slick_pg/entity/BaeldungEntity.scala @@ -0,0 +1,12 @@ +package com.baeldung.scala.slick_pg.entity + +import org.json4s.JValue + +import java.time.OffsetDateTime + +case class BaeldungEntity( + id: Long, + createdAt: OffsetDateTime, + prices: List[Double], + metadata: JValue +) diff --git a/scala-libraries-persistence/src/main/scala/com/baeldung/scala/slick_pg/table/BaeldungEntityTable.scala b/scala-libraries-persistence/src/main/scala/com/baeldung/scala/slick_pg/table/BaeldungEntityTable.scala new file mode 100644 index 000000000..323dcd08d --- /dev/null +++ b/scala-libraries-persistence/src/main/scala/com/baeldung/scala/slick_pg/table/BaeldungEntityTable.scala @@ -0,0 +1,21 @@ +package com.baeldung.scala.slick_pg.table + +import com.baeldung.scala.slick_pg.BaeldungPostgresProfile.BaeldungApi.* +import com.baeldung.scala.slick_pg.entity.BaeldungEntity +import org.json4s.JValue + +import java.time.OffsetDateTime + +class BaeldungEntityTable(tag: Tag) + extends Table[BaeldungEntity](tag, None, "baeldung_entity") { + + val id = column[Long]("id", O.PrimaryKey, O.AutoInc, O.SqlType("BIGSERIAL")) + val createdAt = column[OffsetDateTime]("created_at", O.SqlType("TIMESTAMPTZ")) + val prices = column[List[Double]]("prices", O.SqlType("DOUBLE PRECISION[]")) + val metadata = column[JValue]("metadata", O.SqlType("JSONB")) + + override def * = (id, createdAt, prices, metadata).mapTo[BaeldungEntity] + +} + +val baeldungEntityTable = TableQuery[BaeldungEntityTable] From 6d349acfed660f2170340a8352c6985f93a8b0f0 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 17 Nov 2024 00:19:52 +0000 Subject: [PATCH 0919/1318] Update tapir-akka-http-server, tapir-core, ... from 1.11.8 to 1.11.9 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index ce0931df6..eb6768119 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.11.8" +val tapirV = "1.11.9" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From 15b004cae299650b7eca9b62a74073ff845eb912 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 17 Nov 2024 00:20:15 +0000 Subject: [PATCH 0920/1318] Update zio-kafka from 2.8.3 to 2.9.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 3acd1a9b4..9396d0b3a 100644 --- a/build.sbt +++ b/build.sbt @@ -677,7 +677,7 @@ lazy val zio = (project in file("zio")) libraryDependencies += "dev.zio" %% "zio" % zioVersion, libraryDependencies += "dev.zio" %% "zio-streams" % zioVersion, libraryDependencies += zioTestSbt, - libraryDependencies += "dev.zio" %% "zio-kafka" % "2.8.3", + libraryDependencies += "dev.zio" %% "zio-kafka" % "2.9.0", libraryDependencies += zioJsonDep, libraryDependencies += "dev.zio" %% "zio-prelude" % "1.0.0-RC23", libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.19" % Test, From da80707c896988b5e2bc40bf59e7fdfd508e8505 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 17 Nov 2024 00:27:35 +0000 Subject: [PATCH 0921/1318] Update elastic4s-client-esjava, ... from 8.15.3 to 8.15.4 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 3acd1a9b4..bedb094e1 100644 --- a/build.sbt +++ b/build.sbt @@ -403,7 +403,7 @@ lazy val scala2_libraries = val circeVersion = "0.14.10" val monixVersion = "3.4.1" val sparkVersion = "3.5.3" -val elastic4sVersion = "8.15.3" +val elastic4sVersion = "8.15.4" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion val sparkSqlDep = "org.apache.spark" %% "spark-sql" % sparkVersion From 1e667afce9f8ac5018d54cb1e60217dc0c546b5f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 17 Nov 2024 00:27:51 +0000 Subject: [PATCH 0922/1318] Update sbt-scala-native from 0.5.5 to 0.5.6 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index 14a7fa06a..4d1b534c7 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,6 +1,6 @@ addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.2") -addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.5") +addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.6") addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.17.0") addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.2.1") From 33eb8033a40e440fcc263db5d7c9ed56995aa049 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 17 Nov 2024 00:28:07 +0000 Subject: [PATCH 0923/1318] Update s3, sqs from 2.29.9 to 2.29.15 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 3acd1a9b4..467453913 100644 --- a/build.sbt +++ b/build.sbt @@ -452,7 +452,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-core" % "1.6.8", "org.elasticmq" %% "elasticmq-server" % "1.6.8", "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.8", - "software.amazon.awssdk" % "sqs" % "2.29.9" + "software.amazon.awssdk" % "sqs" % "2.29.15" ), Defaults.itSettings ) @@ -576,7 +576,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.777" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % "0.41.3" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % "0.41.3" % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.29.9" + "software.amazon.awssdk" % "s3" % "2.29.15" ), Defaults.itSettings, IntegrationTest / fork := true From 0372e11661ff790d1284a18ea8b509bc458ec141 Mon Sep 17 00:00:00 2001 From: pedrorijo91 Date: Thu, 21 Nov 2024 16:14:24 +0000 Subject: [PATCH 0924/1318] sample code for remove digits tutorial --- .../baeldung/scala/digits/RemoveDigits.scala | 45 +++++++++++++++++++ .../scala/digits/RemoveDigitsUnitTest.scala | 35 +++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 scala-core-modules/scala-core-numbers/src/main/scala/com/baeldung/scala/digits/RemoveDigits.scala create mode 100644 scala-core-modules/scala-core-numbers/src/test/scala/com/baeldung/scala/digits/RemoveDigitsUnitTest.scala diff --git a/scala-core-modules/scala-core-numbers/src/main/scala/com/baeldung/scala/digits/RemoveDigits.scala b/scala-core-modules/scala-core-numbers/src/main/scala/com/baeldung/scala/digits/RemoveDigits.scala new file mode 100644 index 000000000..41ea7bf3f --- /dev/null +++ b/scala-core-modules/scala-core-numbers/src/main/scala/com/baeldung/scala/digits/RemoveDigits.scala @@ -0,0 +1,45 @@ +package com.baeldung.scala.digits + +object RemoveDigits { + + def removeFirstNDigits(num: Int, n: Int): Int = { + num.toString.drop(n).toInt + } + + def removeFirstNDigitsLimit(num: Int, n: Int): Int = { + val numString = num.toString + if (n >= numString.length) + 0 + else + numString.drop(n).toInt + } + + def removeFirstNDigitsPatternMatching(num: Int, n: Int): Int = { + val numString = num.toString + numString match { + case str if n >= str.length => + 0 + case str => + str.drop(n).toInt + } + } + + def removeFirstNDigitsNegative(num: Int, n: Int): Int = { + val numString = num.toString + if (num < 0) { + // For negative numbers, remove the first n digits but keep the negative sign + val absNumString = numString.drop(1) // Drop the negative sign + if (n >= absNumString.length) + 0 + else + ("-" + absNumString.drop(n)).toInt + } else { + // For positive numbers, apply the same logic as before + if (n >= numString.length) + 0 + else + numString.drop(n).toInt + } + } + +} diff --git a/scala-core-modules/scala-core-numbers/src/test/scala/com/baeldung/scala/digits/RemoveDigitsUnitTest.scala b/scala-core-modules/scala-core-numbers/src/test/scala/com/baeldung/scala/digits/RemoveDigitsUnitTest.scala new file mode 100644 index 000000000..ee019b4a5 --- /dev/null +++ b/scala-core-modules/scala-core-numbers/src/test/scala/com/baeldung/scala/digits/RemoveDigitsUnitTest.scala @@ -0,0 +1,35 @@ +package com.baeldung.scala.digits + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers + +class RemoveDigitsUnitTest extends AnyFlatSpec with Matchers { + + val number = 123456 + val negativeNumber = -number + + "naive" should "return remove first N digits" in { + RemoveDigits.removeFirstNDigits(number, 2) shouldBe 3456 + RemoveDigits.removeFirstNDigits(number, 5) shouldBe 6 + } + + "limit" should "return remove first N digits" in { + RemoveDigits.removeFirstNDigitsLimit(number, 2) shouldBe 3456 + RemoveDigits.removeFirstNDigitsLimit(number, 5) shouldBe 6 + RemoveDigits.removeFirstNDigitsLimit(number, 6) shouldBe 0 + } + + "patternMatching" should "return remove first N digits" in { + RemoveDigits.removeFirstNDigitsPatternMatching(number, 2) shouldBe 3456 + RemoveDigits.removeFirstNDigitsPatternMatching(number, 5) shouldBe 6 + RemoveDigits.removeFirstNDigitsPatternMatching(number, 6) shouldBe 0 + } + + "negative" should "return remove first N digits" in { + RemoveDigits.removeFirstNDigitsNegative(number, 2) shouldBe 3456 + RemoveDigits.removeFirstNDigitsNegative(number, 5) shouldBe 6 + RemoveDigits.removeFirstNDigitsNegative(number, 6) shouldBe 0 + RemoveDigits.removeFirstNDigitsNegative(negativeNumber, 2) shouldBe -3456 + } + +} From c7f0dcd640dce004ac0fed6a6bf2a73a3b6cf49c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 23 Nov 2024 00:19:55 +0000 Subject: [PATCH 0925/1318] Update aws-java-sdk-s3 from 1.12.777 to 1.12.778 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a31422e96..e5ca07884 100644 --- a/build.sbt +++ b/build.sbt @@ -577,7 +577,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) scalaMock, "com.lihaoyi" %% "utest" % "0.8.4" % "test", munitDep, - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.777" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.778" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.29.9" From 1f1b982586a938a6b9ca22ac7970a94d39368d2b Mon Sep 17 00:00:00 2001 From: Varvarigos Manolis Date: Sat, 23 Nov 2024 13:29:32 +0200 Subject: [PATCH 0926/1318] SCALA-229 Play! Forms --- .../app/controllers/FormController.scala | 94 +++++++++ .../app/models/InputForms.scala | 189 ++++++++++++++++++ .../play-templates/app/models/Measure.scala | 49 +++++ .../Baeldung/ComplexFormTemplate.scala.html | 12 ++ .../views/Baeldung/FormTemplate.scala.html | 10 + .../FormTemplateWithConstraints.scala.html | 13 ++ .../FormTemplateWithErrors.scala.html | 11 + .../MultipleFieldsFormTemplate.scala.html | 15 ++ .../play-templates/conf/application.conf | 4 + play-scala/play-templates/conf/routes | 11 +- 10 files changed, 407 insertions(+), 1 deletion(-) create mode 100644 play-scala/play-templates/app/controllers/FormController.scala create mode 100644 play-scala/play-templates/app/models/InputForms.scala create mode 100644 play-scala/play-templates/app/models/Measure.scala create mode 100644 play-scala/play-templates/app/views/Baeldung/ComplexFormTemplate.scala.html create mode 100644 play-scala/play-templates/app/views/Baeldung/FormTemplate.scala.html create mode 100644 play-scala/play-templates/app/views/Baeldung/FormTemplateWithConstraints.scala.html create mode 100644 play-scala/play-templates/app/views/Baeldung/FormTemplateWithErrors.scala.html create mode 100644 play-scala/play-templates/app/views/Baeldung/MultipleFieldsFormTemplate.scala.html diff --git a/play-scala/play-templates/app/controllers/FormController.scala b/play-scala/play-templates/app/controllers/FormController.scala new file mode 100644 index 000000000..2b978c448 --- /dev/null +++ b/play-scala/play-templates/app/controllers/FormController.scala @@ -0,0 +1,94 @@ +package controllers + +import com.google.inject.Inject +import models.{ + ComplexFormCustomField, + InputFormWithConstraints, + MultipleFieldsForm, + SimpleForm +} +import play.api.i18n.I18nSupport +import play.api.libs.json.Json +import play.api.mvc.{ + AbstractController, + Action, + AnyContent, + ControllerComponents +} + +class FormController @Inject() (cc: ControllerComponents) + extends AbstractController(cc) + with I18nSupport { + + def simpleForm: Action[AnyContent] = Action { implicit request => + Ok(views.html.Baeldung.FormTemplate(SimpleForm.form)) + } + + def formPost(): Action[AnyContent] = Action { implicit request => + val form = SimpleForm.form.bindFromRequest().get + Ok(form.toString) + } + + def multipleFieldsForm: Action[AnyContent] = Action { implicit request => + Ok(views.html.Baeldung.MultipleFieldsFormTemplate(MultipleFieldsForm.form)) + } + + def multipleFieldsFormPost(): Action[AnyContent] = Action { + implicit request => + val form = MultipleFieldsForm.form.bindFromRequest().get + Ok(form.toString) + } + + def formWithConstraints: Action[AnyContent] = Action { implicit request => + Ok( + views.html.Baeldung.FormTemplateWithConstraints( + InputFormWithConstraints.form + ) + ) + } + + def formWithConstraintsPost(): Action[AnyContent] = Action { + implicit request => + InputFormWithConstraints.form + .bindFromRequest() + .fold( + { formWithError => + BadRequest( + views.html.Baeldung.FormTemplateWithConstraints(formWithError) + ) + }, + { data => Ok(Json.toJson(data)) } + ) + } + + def simpleFormPostWithErrors(): Action[AnyContent] = Action { + implicit request => + SimpleForm.form + .bindFromRequest() + .fold( + { formWithError => + BadRequest( + views.html.Baeldung.FormTemplateWithErrors(formWithError) + ) + }, + { data => Ok(Json.toJson(data)) } + ) + } + + def complexForm: Action[AnyContent] = Action { implicit request => + Ok(views.html.Baeldung.ComplexFormTemplate(ComplexFormCustomField.form)) + } + + def complexFormPostWithErrors(): Action[AnyContent] = Action { + implicit request => + ComplexFormCustomField.form + .bindFromRequest() + .fold( + { formWithError => + BadRequest(views.html.Baeldung.ComplexFormTemplate(formWithError)) + }, + { data => Ok(Json.toJson(data)) } + ) + } + +} diff --git a/play-scala/play-templates/app/models/InputForms.scala b/play-scala/play-templates/app/models/InputForms.scala new file mode 100644 index 000000000..802cfed13 --- /dev/null +++ b/play-scala/play-templates/app/models/InputForms.scala @@ -0,0 +1,189 @@ +package models + +import models.Measure.UnitMeasurement +import play.api.data.Form +import play.api.data.Forms._ +import play.api.data.validation.Constraints.minLength +import play.api.libs.json.{Json, Writes} + +import java.time.Instant +import java.time.temporal.ChronoUnit +import java.util.{Date, UUID} + +case class SimpleForm(i: Int, active: Boolean, msg: String) + +object SimpleForm { + + implicit val simpleFormWrites: Writes[SimpleForm] = Json.writes[SimpleForm] + val form: Form[SimpleForm] = Form( + mapping( + "i" -> number, + "active" -> boolean, + "msg" -> text + )(SimpleForm.apply)(SimpleForm.unapply) + ) + + def unapply(simpleForm: SimpleForm): Option[(Int, Boolean, String)] = { + Some((simpleForm.i, simpleForm.active, simpleForm.msg)) + } + +} + +case class MultipleFieldsForm( + i: Int, + pwd: String, + active: Boolean, + msg: String, + date: Date, + uuid: UUID, + favMovie: String, + favDrink: String +) + +object MultipleFieldsForm { + + implicit val multipleFieldsFormWrites: Writes[MultipleFieldsForm] = + Json.writes[MultipleFieldsForm] + val form: Form[MultipleFieldsForm] = Form( + mapping( + "i" -> number, + "pwd" -> text, + "active" -> boolean, + "msg" -> text, + "date" -> date, + "uuid" -> uuid, + "favMovie" -> text, + "favDrink" -> text + )(MultipleFieldsForm.apply)(MultipleFieldsForm.unapply) + ) + + def unapply( + multipleFieldsForm: MultipleFieldsForm + ): Option[(Int, String, Boolean, String, Date, UUID, String, String)] = { + Some( + ( + multipleFieldsForm.i, + multipleFieldsForm.pwd, + multipleFieldsForm.active, + multipleFieldsForm.msg, + multipleFieldsForm.date, + multipleFieldsForm.uuid, + multipleFieldsForm.favMovie, + multipleFieldsForm.favDrink + ) + ) + } + + object Movies { + val list = List( + "pulpFiction" -> "Pulp Fiction", + "inception" -> "Inception", + "theMatrix" -> "The Matrix", + "titanic" -> "Titanic" + ) + } + + object Drinks { + val list = List( + "vodka" -> "Vodka", + "tequila" -> "Tequila", + "whisky" -> "Whisky", + "wine" -> "Wine", + "beer" -> "Beer" + ) + } + +} + +case class ComplexFormCustomField( + i: Int, + active: Boolean, + msg: String, + measurement: UnitMeasurement +) +object ComplexFormCustomField { + + implicit val complexFormWrites: Writes[ComplexFormCustomField] = + Json.writes[ComplexFormCustomField] + val form: Form[ComplexFormCustomField] = Form( + mapping( + "i" -> number, + "active" -> boolean, + "msg" -> text, + "measurement" -> Measure.unitMeasurementMapping + )(ComplexFormCustomField.apply)(ComplexFormCustomField.unapply) + ) + + def unapply( + complexForm: ComplexFormCustomField + ): Option[(Int, Boolean, String, UnitMeasurement)] = { + Some( + ( + complexForm.i, + complexForm.active, + complexForm.msg, + complexForm.measurement + ) + ) + } +} + +case class InputFormWithConstraints( + i: Int, + msg: String, + msgOpt: Option[String], + email: String, + birthday: Date +) +object InputFormWithConstraints { + + implicit val inputFormWrites: Writes[InputFormWithConstraints] = + Json.writes[InputFormWithConstraints] + val form: Form[InputFormWithConstraints] = Form( + mapping( + "i" -> number(min = 10, max = 20), + "msg" -> text(minLength = 3, maxLength = 12), + "msgOpt" -> optional(text), + "email" -> email, + "birthday" -> date + )(InputFormWithConstraints.apply)(InputFormWithConstraints.unapply) + ) + + def unapply( + inputForm: InputFormWithConstraints + ): Option[(Int, String, Option[String], String, Date)] = { + Some( + ( + inputForm.i, + inputForm.msg, + inputForm.msgOpt, + inputForm.email, + inputForm.birthday + ) + ) + } +} + +case class InputFormWithCustomConstraints(email: String, birthday: Date) +object InputFormWithCustomConstraints { + + implicit val inputFormWrites: Writes[InputFormWithCustomConstraints] = + Json.writes[InputFormWithCustomConstraints] + val form: Form[InputFormWithCustomConstraints] = Form( + mapping( + "email" -> email.verifying(minLength(15)), + "birthday" -> date.verifying( + "Not 18 years old", + d => d.toInstant.isBefore(Instant.now().minus(18, ChronoUnit.YEARS)) + ) + )(InputFormWithCustomConstraints.apply)( + InputFormWithCustomConstraints.unapply + ) + ) + + def unapply( + inputForm: InputFormWithCustomConstraints + ): Option[(String, Date)] = { + Some((inputForm.email, inputForm.birthday)) + } +} diff --git a/play-scala/play-templates/app/models/Measure.scala b/play-scala/play-templates/app/models/Measure.scala new file mode 100644 index 000000000..ce185aec3 --- /dev/null +++ b/play-scala/play-templates/app/models/Measure.scala @@ -0,0 +1,49 @@ +package models + +import play.api.data.format.{Formats, Formatter} +import play.api.data.{FormError, Forms, Mapping} +import play.api.libs.json.{Json, Writes} + +object Measure { + + def unitMeasurementMapping: Mapping[UnitMeasurement] = + Forms.of[UnitMeasurement] + + case class UnitMeasurement(quantity: Int, unit: String) + + implicit def binder: Formatter[UnitMeasurement] = + new Formatter[UnitMeasurement] { + override def bind( + key: String, + data: Map[String, String] + ): Either[Seq[FormError], UnitMeasurement] = Formats.parsing( + d => UnitMeasurement.fromString(d), + "The format is (\\d*)(\\s)(\\D*)- example: \"1 pound\"", + Nil + )(key, data) + + override def unbind( + key: String, + value: UnitMeasurement + ): Map[String, String] = Map(key -> s"${value.quantity} ${value.unit}") + } + + object UnitMeasurement { + + implicit val unitMeasurementFormWrites: Writes[UnitMeasurement] = + Json.writes[UnitMeasurement] + + private val pattern = "(\\d*)(\\s)(\\D*)".r + + def fromString(str: String): UnitMeasurement = { + val matches = pattern.findAllIn(str) + if (matches.hasNext) { + val List(number, space, quantity) = matches.subgroups + UnitMeasurement(number.toInt, quantity) + } else { + throw new RuntimeException(s"Incorrect data: $str") + } + } + } + +} diff --git a/play-scala/play-templates/app/views/Baeldung/ComplexFormTemplate.scala.html b/play-scala/play-templates/app/views/Baeldung/ComplexFormTemplate.scala.html new file mode 100644 index 000000000..8dd416fb9 --- /dev/null +++ b/play-scala/play-templates/app/views/Baeldung/ComplexFormTemplate.scala.html @@ -0,0 +1,12 @@ +@import helper._ + +@(complexFormCustomField: Form[ComplexFormCustomField])(implicit messages: Messages) + + +@form(action = routes.FormController.complexFormPostWithErrors()) { + @inputText(complexFormCustomField("i")) + @inputText(complexFormCustomField("active")) + @inputText(complexFormCustomField("msg")) + @inputText(complexFormCustomField("measurement")) + +} \ No newline at end of file diff --git a/play-scala/play-templates/app/views/Baeldung/FormTemplate.scala.html b/play-scala/play-templates/app/views/Baeldung/FormTemplate.scala.html new file mode 100644 index 000000000..d2e024201 --- /dev/null +++ b/play-scala/play-templates/app/views/Baeldung/FormTemplate.scala.html @@ -0,0 +1,10 @@ +@import helper._ + +@(simpleForm: Form[SimpleForm])(implicit messages: Messages) + +@form(action = routes.FormController.formPost()) { + @inputText(simpleForm("i")) + @inputText(simpleForm("active")) + @inputText(simpleForm("msg")) + +} \ No newline at end of file diff --git a/play-scala/play-templates/app/views/Baeldung/FormTemplateWithConstraints.scala.html b/play-scala/play-templates/app/views/Baeldung/FormTemplateWithConstraints.scala.html new file mode 100644 index 000000000..1b9486893 --- /dev/null +++ b/play-scala/play-templates/app/views/Baeldung/FormTemplateWithConstraints.scala.html @@ -0,0 +1,13 @@ +@import helper._ + +@(formWithConstraints: Form[InputFormWithConstraints])(implicit messages: Messages) + + +@form(action = routes.FormController.formWithConstraintsPost()) { + @inputText(formWithConstraints("i")) + @inputText(formWithConstraints("msg")) + @inputText(formWithConstraints("msgOpt")) + @inputText(formWithConstraints("email")) + @inputDate(formWithConstraints("birthday")) + +} \ No newline at end of file diff --git a/play-scala/play-templates/app/views/Baeldung/FormTemplateWithErrors.scala.html b/play-scala/play-templates/app/views/Baeldung/FormTemplateWithErrors.scala.html new file mode 100644 index 000000000..5c73b9cf1 --- /dev/null +++ b/play-scala/play-templates/app/views/Baeldung/FormTemplateWithErrors.scala.html @@ -0,0 +1,11 @@ +@import helper._ + +@(simpleForm: Form[SimpleForm])(implicit messages: Messages) + + +@form(action = routes.FormController.formPost()) { + @inputText(simpleForm("i")) + @inputText(simpleForm("active")) + @inputText(simpleForm("msg")) + +} \ No newline at end of file diff --git a/play-scala/play-templates/app/views/Baeldung/MultipleFieldsFormTemplate.scala.html b/play-scala/play-templates/app/views/Baeldung/MultipleFieldsFormTemplate.scala.html new file mode 100644 index 000000000..115acb352 --- /dev/null +++ b/play-scala/play-templates/app/views/Baeldung/MultipleFieldsFormTemplate.scala.html @@ -0,0 +1,15 @@ +@import helper._ + +@(multipleFieldsForm: Form[MultipleFieldsForm])(implicit messages: Messages) + +@form(action = routes.FormController.multipleFieldsFormPost()) { + @inputText(multipleFieldsForm("i")) + @inputPassword(multipleFieldsForm("pwd")) + @checkbox(multipleFieldsForm("active")) + @inputText(multipleFieldsForm("msg")) + @inputDate(multipleFieldsForm("date")) + @inputText(multipleFieldsForm("uuid")) + @inputRadioGroup(multipleFieldsForm("favMovie"), MultipleFieldsForm.Movies.list) + @select(multipleFieldsForm("favDrink"), MultipleFieldsForm.Drinks.list) + +} \ No newline at end of file diff --git a/play-scala/play-templates/conf/application.conf b/play-scala/play-templates/conf/application.conf index cb94680e7..4af37f63e 100644 --- a/play-scala/play-templates/conf/application.conf +++ b/play-scala/play-templates/conf/application.conf @@ -1 +1,5 @@ # https://www.playframework.com/documentation/latest/Configuration +play.filters.hosts { + # Allow requests to example.com, its subdomains, and localhost:9000. + allowed = ["192.168.1.16:9000", "192.168.1.19:9000", ".example.com", "localhost:9000"] +} \ No newline at end of file diff --git a/play-scala/play-templates/conf/routes b/play-scala/play-templates/conf/routes index 920af4f2a..e590d7d9c 100644 --- a/play-scala/play-templates/conf/routes +++ b/play-scala/play-templates/conf/routes @@ -1,3 +1,12 @@ GET /template controllers.ViewTemplateController.index() GET /withclass controllers.ViewTemplateController.withClass() -GET /menu controllers.MenuController.availableProducts() \ No newline at end of file +GET /menu controllers.MenuController.availableProducts() +GET /simple-form controllers.FormController.simpleForm() +POST /simple-form controllers.FormController.formPost() +GET /multiple-fields-form controllers.FormController.multipleFieldsForm() +POST /multiple-fields-form controllers.FormController.multipleFieldsFormPost() +GET /form-with-constraints controllers.FormController.formWithConstraints() +POST /form-with-constraints controllers.FormController.formWithConstraintsPost() +POST /simple-form-with-errors controllers.FormController.simpleFormPostWithErrors() +GET /complex-form controllers.FormController.complexForm() +POST /complex-form controllers.FormController.complexFormPostWithErrors() \ No newline at end of file From adbf820bfe1face742b3d4f0cdfa4f9dfb7cd80c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 25 Nov 2024 00:20:48 +0000 Subject: [PATCH 0927/1318] Update pureconfig, pureconfig-enumeratum from 0.17.7 to 0.17.8 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index e6830c5ce..9a8535eba 100644 --- a/build.sbt +++ b/build.sbt @@ -381,7 +381,7 @@ lazy val scala2_libraries = enumeratumDep, "io.monix" %% "monix" % monixVersion, pureConfigDep, - "com.github.pureconfig" %% "pureconfig-enumeratum" % "0.17.7", + "com.github.pureconfig" %% "pureconfig-enumeratum" % "0.17.8", "com.typesafe" % "config" % "1.4.3", "org.scala-lang.modules" %% "scala-async" % "1.0.1", "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.10.0", @@ -535,7 +535,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) val spireVersion = "0.18.0" val kafkaVersion = "7.7.1-ce" -val pureconfigVersion = "0.17.7" +val pureconfigVersion = "0.17.8" val jackSonVersion = "2.18.1" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" From 86340fb00551cc1f07eed74dc410bf7540d6f26c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 25 Nov 2024 00:21:00 +0000 Subject: [PATCH 0928/1318] Update zio, zio-streams, zio-test, ... from 2.1.12 to 2.1.13 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index e6830c5ce..4eb98624a 100644 --- a/build.sbt +++ b/build.sbt @@ -21,7 +21,7 @@ val scalaTestDeps = Seq( ) val scalaMock = "org.scalamock" %% "scalamock" % "6.0.0" % Test -val zioVersion = "2.1.12" +val zioVersion = "2.1.13" lazy val scala_core = (project in file("scala-core-modules/scala-core")) .settings( From a4542a6fb1f9b3eb84ef79c8992ce1a056708128 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 25 Nov 2024 00:21:25 +0000 Subject: [PATCH 0929/1318] Update quill-jdbc-zio, quill-zio from 4.8.4 to 4.8.5 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index e6830c5ce..7fd381686 100644 --- a/build.sbt +++ b/build.sbt @@ -720,8 +720,8 @@ lazy val zio3 = (project in file("zio3")) libraryDependencies ++= Seq( zioJsonDep, "dev.zio" %% "zio-http" % "3.0.1", - "io.getquill" %% "quill-zio" % "4.8.4", - "io.getquill" %% "quill-jdbc-zio" % "4.8.4", + "io.getquill" %% "quill-zio" % "4.8.5", + "io.getquill" %% "quill-jdbc-zio" % "4.8.5", "com.h2database" % "h2" % "2.2.220" ), libraryDependencies ++= Seq( From 8bdfd3b80ef9503a703712578a3ad7826f015a4b Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 25 Nov 2024 00:21:38 +0000 Subject: [PATCH 0930/1318] Update log4j-core from 2.24.1 to 2.24.2 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index e6830c5ce..7bc3040d8 100644 --- a/build.sbt +++ b/build.sbt @@ -429,7 +429,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) circeParserDep, "com.softwaremill.retry" %% "retry" % "0.3.6", log4jApiScalaDep, - "org.apache.logging.log4j" % "log4j-core" % "2.24.1" % Runtime, + "org.apache.logging.log4j" % "log4j-core" % "2.24.2" % Runtime, "com.typesafe.scala-logging" %% "scala-logging" % "3.9.5", "software.amazon.awssdk" % "s3" % "2.25.9", "com.github.seratch" %% "awscala" % "0.9.2" @@ -490,7 +490,7 @@ lazy val scala_libraries_os = (project in file("scala-libraries-os")) libraryDependencies ++= scalaTestDeps, libraryDependencies ++= Seq( log4jApiScalaDep, - "org.apache.logging.log4j" % "log4j-core" % "2.24.1" % Runtime + "org.apache.logging.log4j" % "log4j-core" % "2.24.2" % Runtime ), libraryDependencies += osLibDep ) From 6802c05c19b2cb2349d125ad730796fd39d9060b Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 25 Nov 2024 00:21:52 +0000 Subject: [PATCH 0931/1318] Update pulsar from 1.20.3 to 1.20.4 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index e6830c5ce..1298fddc2 100644 --- a/build.sbt +++ b/build.sbt @@ -386,7 +386,7 @@ lazy val scala2_libraries = "org.scala-lang.modules" %% "scala-async" % "1.0.1", "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.10.0", "com.clever-cloud.pulsar4s" %% "pulsar4s-jackson" % "2.10.0", - "org.testcontainers" % "pulsar" % "1.20.3" % IntegrationTest, + "org.testcontainers" % "pulsar" % "1.20.4" % IntegrationTest, "org.apache.kafka" % "kafka-clients" % kafkaVersion, "com.fasterxml.jackson.core" % "jackson-databind" % jackSonVersion, "com.fasterxml.jackson.datatype" % "jackson-datatype-jsr310" % jackSonVersion, From ab415704df049dd07f6d5f9accb95d256192d930 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 25 Nov 2024 00:22:01 +0000 Subject: [PATCH 0932/1318] Update cats-effect, cats-effect-testkit from 3.5.5 to 3.5.6 --- build.sbt | 4 ++-- scala-with-maven/hello-rest/pom.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index e6830c5ce..4870a8f23 100644 --- a/build.sbt +++ b/build.sbt @@ -4,8 +4,8 @@ ThisBuild / scalaVersion := scala3Version ThisBuild / organization := "com.baeldung" ThisBuild / organizationName := "core-scala" val jUnitInterface = "com.github.sbt" % "junit-interface" % "0.13.3" % "test" -val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.5" -val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.5" % Test +val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.6" +val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.6" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV val logback = "ch.qos.logback" % "logback-classic" % "1.5.12" val embedMongoVersion = "4.18.0" diff --git a/scala-with-maven/hello-rest/pom.xml b/scala-with-maven/hello-rest/pom.xml index f72dd94ea..9d224e737 100644 --- a/scala-with-maven/hello-rest/pom.xml +++ b/scala-with-maven/hello-rest/pom.xml @@ -22,7 +22,7 @@ org.typelevel cats-effect_3 - 3.5.5 + 3.5.6 org.http4s From aa7ee59afa652af00fe6cde051a1e46aec533cfd Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 25 Nov 2024 00:22:11 +0000 Subject: [PATCH 0933/1318] Update s3 from 2.29.9 to 2.29.20 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index e6830c5ce..6e0dcade7 100644 --- a/build.sbt +++ b/build.sbt @@ -580,7 +580,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.778" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.29.9" + "software.amazon.awssdk" % "s3" % "2.29.20" ), Defaults.itSettings, From c3cecdb9246f921a2bf11399a71e1c389b7ca77d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 25 Nov 2024 00:22:17 +0000 Subject: [PATCH 0934/1318] Update sqs from 2.29.15 to 2.29.20 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index e6830c5ce..2395ea732 100644 --- a/build.sbt +++ b/build.sbt @@ -456,7 +456,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-core" % "1.6.8", "org.elasticmq" %% "elasticmq-server" % "1.6.8", "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.8", - "software.amazon.awssdk" % "sqs" % "2.29.15" + "software.amazon.awssdk" % "sqs" % "2.29.20" ), Defaults.itSettings ) From ecdea6fe56ca4e7bf0d85a829776b2961484c339 Mon Sep 17 00:00:00 2001 From: Stefanos Georgakis Date: Mon, 25 Nov 2024 12:02:54 +0200 Subject: [PATCH 0935/1318] [SCALA-308] - Rename BaeldungPostgresProfileSpec to BaeldungPostgresManualTest --- ...gresProfileSpec.scala => BaeldungPostgresManualTest.scala} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename scala-libraries-persistence/src/it/scala/com/baeldung/scala/slick_pg/{BaeldungPostgresProfileSpec.scala => BaeldungPostgresManualTest.scala} (95%) diff --git a/scala-libraries-persistence/src/it/scala/com/baeldung/scala/slick_pg/BaeldungPostgresProfileSpec.scala b/scala-libraries-persistence/src/it/scala/com/baeldung/scala/slick_pg/BaeldungPostgresManualTest.scala similarity index 95% rename from scala-libraries-persistence/src/it/scala/com/baeldung/scala/slick_pg/BaeldungPostgresProfileSpec.scala rename to scala-libraries-persistence/src/it/scala/com/baeldung/scala/slick_pg/BaeldungPostgresManualTest.scala index 3246dddf7..42311010d 100644 --- a/scala-libraries-persistence/src/it/scala/com/baeldung/scala/slick_pg/BaeldungPostgresProfileSpec.scala +++ b/scala-libraries-persistence/src/it/scala/com/baeldung/scala/slick_pg/BaeldungPostgresManualTest.scala @@ -13,7 +13,7 @@ import slick.dbio.DBIO import java.time.OffsetDateTime import scala.concurrent.Future -class BaeldungPostgresProfileSpec +class BaeldungPostgresManualTest extends AsyncFlatSpec with TestContainerForAll { @@ -24,7 +24,7 @@ class BaeldungPostgresProfileSpec password = "baeldung" ) - "BaeldungPostgresProfile" should "insert entity" in { + "BaeldungPostgresManualTest" should "insert entity" in { withContainers { container => val db: BaeldungPostgresProfile.backend.Database = From ecfefcc037267d121ec701fe93f9f8499ff3c093 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 26 Nov 2024 14:46:38 +0100 Subject: [PATCH 0936/1318] Code for eventually block --- .../scala/eventually/EventuallyUnitTest.scala | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 scala-test-2/src/test/scala/com/baeldung/scala/eventually/EventuallyUnitTest.scala diff --git a/scala-test-2/src/test/scala/com/baeldung/scala/eventually/EventuallyUnitTest.scala b/scala-test-2/src/test/scala/com/baeldung/scala/eventually/EventuallyUnitTest.scala new file mode 100644 index 000000000..b2ddded1e --- /dev/null +++ b/scala-test-2/src/test/scala/com/baeldung/scala/eventually/EventuallyUnitTest.scala @@ -0,0 +1,61 @@ +package com.baeldung.scala.eventually + +import org.scalatest.concurrent.Eventually +import org.scalatest.concurrent.Eventually.eventually +import org.scalatest.concurrent.PatienceConfiguration.{Interval, Timeout} +import org.scalatest.exceptions.TestFailedDueToTimeoutException +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers +import org.scalatest.time.{Millis, Seconds, Span} + +class AsyncOperation(waitTime: Int) { + private var database: Map[String, String] = Map.empty + + def writeToDatabase(key: String, value: String): Unit = { + new Thread(() => { + Thread.sleep(waitTime) // Simulate a delay in writing to the database + database += (key -> value) + }).start() + } + def readFromDatabase(key: String): Option[String] = database.get(key) +} +class EventuallyUnitTest extends AnyFlatSpec with Matchers with Eventually { + it should "retry the save to database multiple times in eventually with default timeout" in { + val op = AsyncOperation(100) + op.writeToDatabase("key", "value") + eventually { + op.readFromDatabase("key") shouldBe Some("value") + } + } + + it should "throw exception if the result is not available within the expected timeout in eventually" in { + val op = AsyncOperation(300) + op.writeToDatabase("key", "value") + assertThrows[TestFailedDueToTimeoutException] { + eventually { + op.readFromDatabase("key") shouldBe Some("value") + } + } + } + + it should "retry with newly configured timeout value" in { + given patienceConfig: PatienceConfig = + PatienceConfig( + timeout = scaled(Span(2, Seconds)), + interval = scaled(Span(5, Millis)) + ) + val op = AsyncOperation(400) + op.writeToDatabase("new-key", "value") + eventually { + op.readFromDatabase("new-key") shouldBe Some("value") + } + } + + it should "retry with explicit timeout value" in { + val op = AsyncOperation(400) + op.writeToDatabase("new-key", "value") + eventually(timeout = Timeout(Span(2, Seconds)), interval = Interval(Span(50, Millis))) { + op.readFromDatabase("new-key") shouldBe Some("value") + } + } +} From 922c6ba173255d8df8cdba295bcaf0ff25433ed7 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 26 Nov 2024 17:26:19 +0100 Subject: [PATCH 0937/1318] format --- .../com/baeldung/scala/eventually/EventuallyUnitTest.scala | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scala-test-2/src/test/scala/com/baeldung/scala/eventually/EventuallyUnitTest.scala b/scala-test-2/src/test/scala/com/baeldung/scala/eventually/EventuallyUnitTest.scala index b2ddded1e..e286162fd 100644 --- a/scala-test-2/src/test/scala/com/baeldung/scala/eventually/EventuallyUnitTest.scala +++ b/scala-test-2/src/test/scala/com/baeldung/scala/eventually/EventuallyUnitTest.scala @@ -54,7 +54,10 @@ class EventuallyUnitTest extends AnyFlatSpec with Matchers with Eventually { it should "retry with explicit timeout value" in { val op = AsyncOperation(400) op.writeToDatabase("new-key", "value") - eventually(timeout = Timeout(Span(2, Seconds)), interval = Interval(Span(50, Millis))) { + eventually( + timeout = Timeout(Span(2, Seconds)), + interval = Interval(Span(50, Millis)) + ) { op.readFromDatabase("new-key") shouldBe Some("value") } } From 8838f155735afb458f18ef60b2c4d195e64fe845 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Tue, 26 Nov 2024 19:47:38 +0100 Subject: [PATCH 0938/1318] Update mongo version to 7.0 to avoid issue in jenkins for new os --- .../baeldung/scala/akka/alpakka/AlpakkaIntegrationTest.scala | 2 +- .../baeldung/scala/reactivemongo/ReactiveMongoLiveTest.scala | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scala-akka/src/it/scala-2/com/baeldung/scala/akka/alpakka/AlpakkaIntegrationTest.scala b/scala-akka/src/it/scala-2/com/baeldung/scala/akka/alpakka/AlpakkaIntegrationTest.scala index 75bd33371..362e24acf 100644 --- a/scala-akka/src/it/scala-2/com/baeldung/scala/akka/alpakka/AlpakkaIntegrationTest.scala +++ b/scala-akka/src/it/scala-2/com/baeldung/scala/akka/alpakka/AlpakkaIntegrationTest.scala @@ -36,7 +36,7 @@ class AlpakkaIntegrationTest .build() override def beforeAll() = { - mongodInstance.start(Version.Main.V4_4) + mongodInstance.start(Version.Main.V7_0) } "Alpakka MongoDB integration service" must { diff --git a/scala-libraries-persistence/src/it/scala/com/baeldung/scala/reactivemongo/ReactiveMongoLiveTest.scala b/scala-libraries-persistence/src/it/scala/com/baeldung/scala/reactivemongo/ReactiveMongoLiveTest.scala index 33553796f..7b1128bba 100644 --- a/scala-libraries-persistence/src/it/scala/com/baeldung/scala/reactivemongo/ReactiveMongoLiveTest.scala +++ b/scala-libraries-persistence/src/it/scala/com/baeldung/scala/reactivemongo/ReactiveMongoLiveTest.scala @@ -31,7 +31,7 @@ class ReactiveMongoLiveTest .build() override def beforeAll(): Unit = { - mongodInstance.start(Version.Main.V4_0) + mongodInstance.start(Version.Main.V7_0) super.beforeAll() } From 2112498bb5327a4dce5110993e621b1f13fd3763 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 3 Dec 2024 00:19:59 +0000 Subject: [PATCH 0939/1318] Update aws-java-sdk-s3 from 1.12.778 to 1.12.779 --- build.sbt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index d0c554d8c..4a775511b 100644 --- a/build.sbt +++ b/build.sbt @@ -579,11 +579,10 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) scalaMock, "com.lihaoyi" %% "utest" % "0.8.4" % "test", munitDep, - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.778" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.779" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.29.20" - ), Defaults.itSettings, IntegrationTest / fork := true @@ -605,7 +604,7 @@ lazy val scala_libraries_persistence = doobieCore, doobiePGDep, "org.reactivemongo" %% "reactivemongo" % reactiveMongo, - "org.reactivemongo" %% "reactivemongo-akkastream" % reactiveMongo exclude("org.scala-lang.modules", "scala-parser-combinators_2.13"), + "org.reactivemongo" %% "reactivemongo-akkastream" % reactiveMongo exclude ("org.scala-lang.modules", "scala-parser-combinators_2.13"), "de.flapdoodle.embed" % "de.flapdoodle.embed.mongo" % embedMongoVersion % IntegrationTest, logback, "com.typesafe.slick" %% "slick-hikaricp" % slickVersion, From f895006c346ea7e54bdfc55f8a6e95bd57a9c3c3 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 3 Dec 2024 00:20:10 +0000 Subject: [PATCH 0940/1318] Update jackson-databind from 2.18.1 to 2.18.2 --- build.sbt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index d0c554d8c..dff168988 100644 --- a/build.sbt +++ b/build.sbt @@ -538,7 +538,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) val spireVersion = "0.18.0" val kafkaVersion = "7.7.1-ce" val pureconfigVersion = "0.17.8" -val jackSonVersion = "2.18.1" +val jackSonVersion = "2.18.2" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" @@ -583,7 +583,6 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.29.20" - ), Defaults.itSettings, IntegrationTest / fork := true @@ -605,7 +604,7 @@ lazy val scala_libraries_persistence = doobieCore, doobiePGDep, "org.reactivemongo" %% "reactivemongo" % reactiveMongo, - "org.reactivemongo" %% "reactivemongo-akkastream" % reactiveMongo exclude("org.scala-lang.modules", "scala-parser-combinators_2.13"), + "org.reactivemongo" %% "reactivemongo-akkastream" % reactiveMongo exclude ("org.scala-lang.modules", "scala-parser-combinators_2.13"), "de.flapdoodle.embed" % "de.flapdoodle.embed.mongo" % embedMongoVersion % IntegrationTest, logback, "com.typesafe.slick" %% "slick-hikaricp" % slickVersion, From e511cf244d1dd77a750e26e39adff8763ed39c4f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 3 Dec 2024 00:20:29 +0000 Subject: [PATCH 0941/1318] Update jackson-datatype-jsr310 from 2.18.1 to 2.18.2 --- build.sbt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index d0c554d8c..dff168988 100644 --- a/build.sbt +++ b/build.sbt @@ -538,7 +538,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) val spireVersion = "0.18.0" val kafkaVersion = "7.7.1-ce" val pureconfigVersion = "0.17.8" -val jackSonVersion = "2.18.1" +val jackSonVersion = "2.18.2" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" @@ -583,7 +583,6 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.29.20" - ), Defaults.itSettings, IntegrationTest / fork := true @@ -605,7 +604,7 @@ lazy val scala_libraries_persistence = doobieCore, doobiePGDep, "org.reactivemongo" %% "reactivemongo" % reactiveMongo, - "org.reactivemongo" %% "reactivemongo-akkastream" % reactiveMongo exclude("org.scala-lang.modules", "scala-parser-combinators_2.13"), + "org.reactivemongo" %% "reactivemongo-akkastream" % reactiveMongo exclude ("org.scala-lang.modules", "scala-parser-combinators_2.13"), "de.flapdoodle.embed" % "de.flapdoodle.embed.mongo" % embedMongoVersion % IntegrationTest, logback, "com.typesafe.slick" %% "slick-hikaricp" % slickVersion, From e92a1af51035a52eb7f8047c0c47761786728d30 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 3 Dec 2024 00:20:45 +0000 Subject: [PATCH 0942/1318] Update jackson-module-scala from 2.18.1 to 2.18.2 --- build.sbt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index d0c554d8c..dff168988 100644 --- a/build.sbt +++ b/build.sbt @@ -538,7 +538,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) val spireVersion = "0.18.0" val kafkaVersion = "7.7.1-ce" val pureconfigVersion = "0.17.8" -val jackSonVersion = "2.18.1" +val jackSonVersion = "2.18.2" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" @@ -583,7 +583,6 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.29.20" - ), Defaults.itSettings, IntegrationTest / fork := true @@ -605,7 +604,7 @@ lazy val scala_libraries_persistence = doobieCore, doobiePGDep, "org.reactivemongo" %% "reactivemongo" % reactiveMongo, - "org.reactivemongo" %% "reactivemongo-akkastream" % reactiveMongo exclude("org.scala-lang.modules", "scala-parser-combinators_2.13"), + "org.reactivemongo" %% "reactivemongo-akkastream" % reactiveMongo exclude ("org.scala-lang.modules", "scala-parser-combinators_2.13"), "de.flapdoodle.embed" % "de.flapdoodle.embed.mongo" % embedMongoVersion % IntegrationTest, logback, "com.typesafe.slick" %% "slick-hikaricp" % slickVersion, From 98bea4ad8a90423890a6f0e8872be9bdad491429 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 3 Dec 2024 00:21:01 +0000 Subject: [PATCH 0943/1318] Update de.flapdoodle.embed.mongo from 4.18.0 to 4.18.1 --- build.sbt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index d0c554d8c..19860d48c 100644 --- a/build.sbt +++ b/build.sbt @@ -8,7 +8,7 @@ val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.6" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.6" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV val logback = "ch.qos.logback" % "logback-classic" % "1.5.12" -val embedMongoVersion = "4.18.0" +val embedMongoVersion = "4.18.1" val AkkaVersion = "2.9.3" val AlpakkaVersion = "8.0.0" val AkkaHttpVersion = "10.6.3" @@ -583,7 +583,6 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.29.20" - ), Defaults.itSettings, IntegrationTest / fork := true @@ -605,7 +604,7 @@ lazy val scala_libraries_persistence = doobieCore, doobiePGDep, "org.reactivemongo" %% "reactivemongo" % reactiveMongo, - "org.reactivemongo" %% "reactivemongo-akkastream" % reactiveMongo exclude("org.scala-lang.modules", "scala-parser-combinators_2.13"), + "org.reactivemongo" %% "reactivemongo-akkastream" % reactiveMongo exclude ("org.scala-lang.modules", "scala-parser-combinators_2.13"), "de.flapdoodle.embed" % "de.flapdoodle.embed.mongo" % embedMongoVersion % IntegrationTest, logback, "com.typesafe.slick" %% "slick-hikaricp" % slickVersion, From c15acc485595013c189ff554e898cd694683a178 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 3 Dec 2024 00:21:11 +0000 Subject: [PATCH 0944/1318] Update kafka-avro-serializer from 7.7.1 to 7.7.2 --- build.sbt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index d0c554d8c..836f74e98 100644 --- a/build.sbt +++ b/build.sbt @@ -542,7 +542,7 @@ val jackSonVersion = "2.18.1" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" -val kafkaAvroSerializer = "7.7.1" +val kafkaAvroSerializer = "7.7.2" val pureConfigDep = "com.github.pureconfig" %% "pureconfig" % pureconfigVersion @@ -583,7 +583,6 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.29.20" - ), Defaults.itSettings, IntegrationTest / fork := true @@ -605,7 +604,7 @@ lazy val scala_libraries_persistence = doobieCore, doobiePGDep, "org.reactivemongo" %% "reactivemongo" % reactiveMongo, - "org.reactivemongo" %% "reactivemongo-akkastream" % reactiveMongo exclude("org.scala-lang.modules", "scala-parser-combinators_2.13"), + "org.reactivemongo" %% "reactivemongo-akkastream" % reactiveMongo exclude ("org.scala-lang.modules", "scala-parser-combinators_2.13"), "de.flapdoodle.embed" % "de.flapdoodle.embed.mongo" % embedMongoVersion % IntegrationTest, logback, "com.typesafe.slick" %% "slick-hikaricp" % slickVersion, From 4641812699d18683810056a34b522c678658c348 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 3 Dec 2024 00:21:31 +0000 Subject: [PATCH 0945/1318] Update ciris, ciris-circe, ciris-circe-yaml from 3.6.0 to 3.7.0 --- build.sbt | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/build.sbt b/build.sbt index d0c554d8c..68361ffe7 100644 --- a/build.sbt +++ b/build.sbt @@ -583,7 +583,6 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.29.20" - ), Defaults.itSettings, IntegrationTest / fork := true @@ -605,7 +604,7 @@ lazy val scala_libraries_persistence = doobieCore, doobiePGDep, "org.reactivemongo" %% "reactivemongo" % reactiveMongo, - "org.reactivemongo" %% "reactivemongo-akkastream" % reactiveMongo exclude("org.scala-lang.modules", "scala-parser-combinators_2.13"), + "org.reactivemongo" %% "reactivemongo-akkastream" % reactiveMongo exclude ("org.scala-lang.modules", "scala-parser-combinators_2.13"), "de.flapdoodle.embed" % "de.flapdoodle.embed.mongo" % embedMongoVersion % IntegrationTest, logback, "com.typesafe.slick" %% "slick-hikaricp" % slickVersion, @@ -632,9 +631,9 @@ lazy val scala_libraries_config = (project in file("scala-libraries-config")) circeDep, circeParserDep ), - libraryDependencies += "is.cir" %% "ciris" % "3.6.0", - libraryDependencies += "is.cir" %% "ciris-circe" % "3.6.0", - libraryDependencies += "is.cir" %% "ciris-circe-yaml" % "3.6.0" + libraryDependencies += "is.cir" %% "ciris" % "3.7.0", + libraryDependencies += "is.cir" %% "ciris-circe" % "3.7.0", + libraryDependencies += "is.cir" %% "ciris-circe-yaml" % "3.7.0" ) lazy val scala_strings = (project in file("scala-strings")) From 2b0fd0d45927014f8e529b8314ca11369dd7ed1d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 3 Dec 2024 00:21:48 +0000 Subject: [PATCH 0946/1318] Update elastic4s-client-esjava, ... from 8.15.4 to 8.16.0 --- build.sbt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index d0c554d8c..2222ffc86 100644 --- a/build.sbt +++ b/build.sbt @@ -409,7 +409,7 @@ lazy val scala2_libraries = val circeVersion = "0.14.10" val monixVersion = "3.4.1" val sparkVersion = "3.5.3" -val elastic4sVersion = "8.15.4" +val elastic4sVersion = "8.16.0" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion val sparkSqlDep = "org.apache.spark" %% "spark-sql" % sparkVersion @@ -583,7 +583,6 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.29.20" - ), Defaults.itSettings, IntegrationTest / fork := true @@ -605,7 +604,7 @@ lazy val scala_libraries_persistence = doobieCore, doobiePGDep, "org.reactivemongo" %% "reactivemongo" % reactiveMongo, - "org.reactivemongo" %% "reactivemongo-akkastream" % reactiveMongo exclude("org.scala-lang.modules", "scala-parser-combinators_2.13"), + "org.reactivemongo" %% "reactivemongo-akkastream" % reactiveMongo exclude ("org.scala-lang.modules", "scala-parser-combinators_2.13"), "de.flapdoodle.embed" % "de.flapdoodle.embed.mongo" % embedMongoVersion % IntegrationTest, logback, "com.typesafe.slick" %% "slick-hikaricp" % slickVersion, From 6d3e426ab79b4250626615bca7161b35d1fbaf7f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 3 Dec 2024 00:22:02 +0000 Subject: [PATCH 0947/1318] Update kafka-clients from 7.7.1-ce to 7.7.2-ce --- build.sbt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index d0c554d8c..f8bf87ddd 100644 --- a/build.sbt +++ b/build.sbt @@ -536,7 +536,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) ) val spireVersion = "0.18.0" -val kafkaVersion = "7.7.1-ce" +val kafkaVersion = "7.7.2-ce" val pureconfigVersion = "0.17.8" val jackSonVersion = "2.18.1" val log4jApiScalaVersion = "13.1.0" @@ -583,7 +583,6 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.29.20" - ), Defaults.itSettings, IntegrationTest / fork := true @@ -605,7 +604,7 @@ lazy val scala_libraries_persistence = doobieCore, doobiePGDep, "org.reactivemongo" %% "reactivemongo" % reactiveMongo, - "org.reactivemongo" %% "reactivemongo-akkastream" % reactiveMongo exclude("org.scala-lang.modules", "scala-parser-combinators_2.13"), + "org.reactivemongo" %% "reactivemongo-akkastream" % reactiveMongo exclude ("org.scala-lang.modules", "scala-parser-combinators_2.13"), "de.flapdoodle.embed" % "de.flapdoodle.embed.mongo" % embedMongoVersion % IntegrationTest, logback, "com.typesafe.slick" %% "slick-hikaricp" % slickVersion, From e9156ceb409ca4822d86a664a4a091ad88440a90 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 3 Dec 2024 00:22:10 +0000 Subject: [PATCH 0948/1318] Update play-ahc-ws, play-caffeine-cache, ... from 3.0.5 to 3.0.6 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index 4d1b534c7..094556f6a 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -7,7 +7,7 @@ addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.2.1") libraryDependencies += "ai.kien" %% "python-native-libs" % "0.2.4" // Make sure to keep the play plugin in sync with the sub modules under play-scala group -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.5") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.6") addSbtPlugin("org.playframework.twirl" % "sbt-twirl" % "2.0.1") addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "4.2.1") From 47ea3e690daecbaaf8719f7570f80fd8206c7dd1 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 3 Dec 2024 00:22:27 +0000 Subject: [PATCH 0949/1318] Update sbt, scripted-plugin from 1.10.5 to 1.10.6 --- project/build.properties | 2 +- sbt-release/project/build.properties | 2 +- sbt-standalone/project/build.properties | 2 +- scala-graalvm/scala-graalvm-http-app/project/build.properties | 2 +- scala-sbt/intro-to-sbt/project/build.properties | 2 +- scala-sbt/scalafix/project/build.properties | 2 +- scalatra/project/build.properties | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/project/build.properties b/project/build.properties index 30c85e4f4..e0a0e7d10 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1,2 +1,2 @@ -sbt.version=1.10.5 +sbt.version=1.10.6 diff --git a/sbt-release/project/build.properties b/sbt-release/project/build.properties index 1767a6f85..7a159c441 100644 --- a/sbt-release/project/build.properties +++ b/sbt-release/project/build.properties @@ -1 +1 @@ -sbt.version = 1.10.5 +sbt.version = 1.10.6 diff --git a/sbt-standalone/project/build.properties b/sbt-standalone/project/build.properties index db1723b08..e88a0d817 100644 --- a/sbt-standalone/project/build.properties +++ b/sbt-standalone/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.5 +sbt.version=1.10.6 diff --git a/scala-graalvm/scala-graalvm-http-app/project/build.properties b/scala-graalvm/scala-graalvm-http-app/project/build.properties index db1723b08..e88a0d817 100644 --- a/scala-graalvm/scala-graalvm-http-app/project/build.properties +++ b/scala-graalvm/scala-graalvm-http-app/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.5 +sbt.version=1.10.6 diff --git a/scala-sbt/intro-to-sbt/project/build.properties b/scala-sbt/intro-to-sbt/project/build.properties index db1723b08..e88a0d817 100644 --- a/scala-sbt/intro-to-sbt/project/build.properties +++ b/scala-sbt/intro-to-sbt/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.5 +sbt.version=1.10.6 diff --git a/scala-sbt/scalafix/project/build.properties b/scala-sbt/scalafix/project/build.properties index c7450fc2a..2a577eee4 100644 --- a/scala-sbt/scalafix/project/build.properties +++ b/scala-sbt/scalafix/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.5 \ No newline at end of file +sbt.version=1.10.6 \ No newline at end of file diff --git a/scalatra/project/build.properties b/scalatra/project/build.properties index db1723b08..e88a0d817 100644 --- a/scalatra/project/build.properties +++ b/scalatra/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.5 +sbt.version=1.10.6 From f00968c06d35d91c11bbcde34f67e550acb6a337 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 3 Dec 2024 00:22:41 +0000 Subject: [PATCH 0950/1318] Update munit from 1.0.2 to 1.0.3 --- build.sbt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index d0c554d8c..350b063e4 100644 --- a/build.sbt +++ b/build.sbt @@ -483,7 +483,7 @@ val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion val log4jApiScalaDep = "org.apache.logging.log4j" %% "log4j-api-scala" % "13.1.0" -val munitDep = "org.scalameta" %% "munit" % "1.0.2" % Test +val munitDep = "org.scalameta" %% "munit" % "1.0.3" % Test lazy val scala_libraries_os = (project in file("scala-libraries-os")) .settings( @@ -583,7 +583,6 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.29.20" - ), Defaults.itSettings, IntegrationTest / fork := true @@ -605,7 +604,7 @@ lazy val scala_libraries_persistence = doobieCore, doobiePGDep, "org.reactivemongo" %% "reactivemongo" % reactiveMongo, - "org.reactivemongo" %% "reactivemongo-akkastream" % reactiveMongo exclude("org.scala-lang.modules", "scala-parser-combinators_2.13"), + "org.reactivemongo" %% "reactivemongo-akkastream" % reactiveMongo exclude ("org.scala-lang.modules", "scala-parser-combinators_2.13"), "de.flapdoodle.embed" % "de.flapdoodle.embed.mongo" % embedMongoVersion % IntegrationTest, logback, "com.typesafe.slick" %% "slick-hikaricp" % slickVersion, From 422078b4a694b62e2b247442fda4653516d7c2e9 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 3 Dec 2024 00:22:54 +0000 Subject: [PATCH 0951/1318] Update cats-effect, cats-effect-testkit from 3.5.6 to 3.5.7 --- build.sbt | 7 +++---- scala-with-maven/hello-rest/pom.xml | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/build.sbt b/build.sbt index d0c554d8c..e9e13c9c1 100644 --- a/build.sbt +++ b/build.sbt @@ -4,8 +4,8 @@ ThisBuild / scalaVersion := scala3Version ThisBuild / organization := "com.baeldung" ThisBuild / organizationName := "core-scala" val jUnitInterface = "com.github.sbt" % "junit-interface" % "0.13.3" % "test" -val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.6" -val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.6" % Test +val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.7" +val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.7" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV val logback = "ch.qos.logback" % "logback-classic" % "1.5.12" val embedMongoVersion = "4.18.0" @@ -583,7 +583,6 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.29.20" - ), Defaults.itSettings, IntegrationTest / fork := true @@ -605,7 +604,7 @@ lazy val scala_libraries_persistence = doobieCore, doobiePGDep, "org.reactivemongo" %% "reactivemongo" % reactiveMongo, - "org.reactivemongo" %% "reactivemongo-akkastream" % reactiveMongo exclude("org.scala-lang.modules", "scala-parser-combinators_2.13"), + "org.reactivemongo" %% "reactivemongo-akkastream" % reactiveMongo exclude ("org.scala-lang.modules", "scala-parser-combinators_2.13"), "de.flapdoodle.embed" % "de.flapdoodle.embed.mongo" % embedMongoVersion % IntegrationTest, logback, "com.typesafe.slick" %% "slick-hikaricp" % slickVersion, diff --git a/scala-with-maven/hello-rest/pom.xml b/scala-with-maven/hello-rest/pom.xml index 9d224e737..b6d5fb39a 100644 --- a/scala-with-maven/hello-rest/pom.xml +++ b/scala-with-maven/hello-rest/pom.xml @@ -22,7 +22,7 @@ org.typelevel cats-effect_3 - 3.5.6 + 3.5.7 org.http4s From 2fa97a3475dc1f677545d969fc58e5163533a8fb Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 3 Dec 2024 00:23:07 +0000 Subject: [PATCH 0952/1318] Update s3, sqs from 2.29.20 to 2.29.24 --- build.sbt | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/build.sbt b/build.sbt index d0c554d8c..cac8ba266 100644 --- a/build.sbt +++ b/build.sbt @@ -458,7 +458,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-core" % "1.6.8", "org.elasticmq" %% "elasticmq-server" % "1.6.8", "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.8", - "software.amazon.awssdk" % "sqs" % "2.29.20" + "software.amazon.awssdk" % "sqs" % "2.29.24" ), Defaults.itSettings ) @@ -582,8 +582,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.778" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.29.20" - + "software.amazon.awssdk" % "s3" % "2.29.24" ), Defaults.itSettings, IntegrationTest / fork := true @@ -605,7 +604,7 @@ lazy val scala_libraries_persistence = doobieCore, doobiePGDep, "org.reactivemongo" %% "reactivemongo" % reactiveMongo, - "org.reactivemongo" %% "reactivemongo-akkastream" % reactiveMongo exclude("org.scala-lang.modules", "scala-parser-combinators_2.13"), + "org.reactivemongo" %% "reactivemongo-akkastream" % reactiveMongo exclude ("org.scala-lang.modules", "scala-parser-combinators_2.13"), "de.flapdoodle.embed" % "de.flapdoodle.embed.mongo" % embedMongoVersion % IntegrationTest, logback, "com.typesafe.slick" %% "slick-hikaricp" % slickVersion, From 83e30ff03510847756872e0485a2817fe75245e2 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 11 Dec 2024 00:19:06 +0000 Subject: [PATCH 0953/1318] Update tapir-akka-http-server, tapir-core, ... from 1.11.9 to 1.11.10 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index eb6768119..d552a13d4 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.11.9" +val tapirV = "1.11.10" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From e6f947f73fcc168ace9e9aa3ac24d4e81e19e7fd Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 11 Dec 2024 00:19:34 +0000 Subject: [PATCH 0954/1318] Update kafka-avro-serializer from 7.7.2 to 7.8.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 250146e22..8074eefc6 100644 --- a/build.sbt +++ b/build.sbt @@ -542,7 +542,7 @@ val jackSonVersion = "2.18.2" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" -val kafkaAvroSerializer = "7.7.2" +val kafkaAvroSerializer = "7.8.0" val pureConfigDep = "com.github.pureconfig" %% "pureconfig" % pureconfigVersion From 3a2ae29a4da5175281cecf895544183d46290572 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 11 Dec 2024 00:20:03 +0000 Subject: [PATCH 0955/1318] Update kafka-clients from 7.7.2-ce to 7.8.0-ce --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 250146e22..757ef8304 100644 --- a/build.sbt +++ b/build.sbt @@ -536,7 +536,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) ) val spireVersion = "0.18.0" -val kafkaVersion = "7.7.2-ce" +val kafkaVersion = "7.8.0-ce" val pureconfigVersion = "0.17.8" val jackSonVersion = "2.18.2" val log4jApiScalaVersion = "13.1.0" From 344b55919d031d796dbb1da87b39f1552a43d37f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 11 Dec 2024 00:20:14 +0000 Subject: [PATCH 0956/1318] Update http4s-dsl from 0.23.29 to 0.23.30 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 250146e22..a9d1e4326 100644 --- a/build.sbt +++ b/build.sbt @@ -475,7 +475,7 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) ) val http4sBlaze = "0.23.17" -val http4sVersion = "0.23.29" +val http4sVersion = "0.23.30" val osLibVersion = "0.11.3" val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion From 2d5da6a9c4aca4f73d00a38859205adea4516764 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 11 Dec 2024 00:20:36 +0000 Subject: [PATCH 0957/1318] Update scallop from 5.1.0 to 5.2.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 250146e22..99efb7e77 100644 --- a/build.sbt +++ b/build.sbt @@ -60,7 +60,7 @@ lazy val scala2_core = (project in file("scala-2-modules/scala2-core")) libraryDependencies += scalaReflection, libraryDependencies += scalaXmlDep, libraryDependencies += "com.github.scopt" %% "scopt" % "4.1.0", - libraryDependencies += "org.rogach" %% "scallop" % "5.1.0", + libraryDependencies += "org.rogach" %% "scallop" % "5.2.0", libraryDependencies += "org.backuity.clist" %% "clist-core" % "3.5.1", libraryDependencies += "org.backuity.clist" %% "clist-macros" % "3.5.1" % "provided", libraryDependencies += "args4j" % "args4j" % "2.37", From fe7726cb4cba45098cb5011710e4405d5e2fa25c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 11 Dec 2024 00:20:56 +0000 Subject: [PATCH 0958/1318] Update scala3-library from 3.5.2 to 3.6.2 --- project/ScalaVersions.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/ScalaVersions.scala b/project/ScalaVersions.scala index 47cdd510e..3d66e0567 100644 --- a/project/ScalaVersions.scala +++ b/project/ScalaVersions.scala @@ -1,6 +1,6 @@ object ScalaVersions { val scala2Version = "2.13.15" - val scala3Version = "3.5.2" + val scala3Version = "3.6.2" @deprecated( "Use Scala 2.13 or Scala 3. Don't use 2.12 unless it is a specific feature in 2.12." ) From 239e7288314feaab3ea7ada5dfe406b64b09a426 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 11 Dec 2024 00:21:17 +0000 Subject: [PATCH 0959/1318] Update cats-effect-testing-scalatest from 1.5.0 to 1.6.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 250146e22..e305eeecf 100644 --- a/build.sbt +++ b/build.sbt @@ -559,7 +559,7 @@ lazy val scala_libraries_fp = (project in file("scala-libraries-fp")) "org.http4s" %% "http4s-blaze-server" % http4sBlaze, "org.http4s" %% "http4s-blaze-client" % http4sBlaze, catEffectTest, - "org.typelevel" %% "cats-effect-testing-scalatest" % "1.5.0" % Test, + "org.typelevel" %% "cats-effect-testing-scalatest" % "1.6.0" % Test, "org.scalaz" %% "scalaz-core" % scalazVersion, "junit" % "junit" % "4.13.2" % Test, "org.typelevel" %% "spire" % spireVersion From 30de52cf8fd326d901142c637fa5a1e5d751d73a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 19 Dec 2024 00:18:31 +0000 Subject: [PATCH 0960/1318] Update logback-classic from 1.5.12 to 1.5.13 --- build.sbt | 2 +- scalatra/build.sbt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 250146e22..c64c4f4a6 100644 --- a/build.sbt +++ b/build.sbt @@ -7,7 +7,7 @@ val jUnitInterface = "com.github.sbt" % "junit-interface" % "0.13.3" % "test" val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.7" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.7" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV -val logback = "ch.qos.logback" % "logback-classic" % "1.5.12" +val logback = "ch.qos.logback" % "logback-classic" % "1.5.13" val embedMongoVersion = "4.18.1" val AkkaVersion = "2.9.3" val AlpakkaVersion = "8.0.0" diff --git a/scalatra/build.sbt b/scalatra/build.sbt index fc67796fe..8f5791749 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -8,7 +8,7 @@ version := "0.1.0-SNAPSHOT" libraryDependencies ++= Seq( "org.scalatra" %% "scalatra" % ScalatraVersion, "org.scalatra" %% "scalatra-scalatest" % ScalatraVersion % "test", - "ch.qos.logback" % "logback-classic" % "1.5.12" % "runtime", + "ch.qos.logback" % "logback-classic" % "1.5.13" % "runtime", "org.eclipse.jetty" % "jetty-webapp" % "11.0.24" % "container", "javax.servlet" % "javax.servlet-api" % "4.0.1" % "provided", "org.scalatra" %% "scalatra-auth" % ScalatraVersion, From 5f797ea53d744b41f04ac35296b25f77182d58c8 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 19 Dec 2024 00:18:57 +0000 Subject: [PATCH 0961/1318] Update aws-java-sdk-s3 from 1.12.779 to 1.12.780 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 250146e22..12719542b 100644 --- a/build.sbt +++ b/build.sbt @@ -579,7 +579,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) scalaMock, "com.lihaoyi" %% "utest" % "0.8.4" % "test", munitDep, - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.779" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.780" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.29.24" From 10fae028a46601213a47b52ab663bb7f76d0a4f0 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 19 Dec 2024 00:19:08 +0000 Subject: [PATCH 0962/1318] Update log4j-core from 2.24.2 to 2.24.3 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 250146e22..a2840f140 100644 --- a/build.sbt +++ b/build.sbt @@ -431,7 +431,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) circeParserDep, "com.softwaremill.retry" %% "retry" % "0.3.6", log4jApiScalaDep, - "org.apache.logging.log4j" % "log4j-core" % "2.24.2" % Runtime, + "org.apache.logging.log4j" % "log4j-core" % "2.24.3" % Runtime, "com.typesafe.scala-logging" %% "scala-logging" % "3.9.5", "software.amazon.awssdk" % "s3" % "2.25.9", "com.github.seratch" %% "awscala" % "0.9.2" @@ -492,7 +492,7 @@ lazy val scala_libraries_os = (project in file("scala-libraries-os")) libraryDependencies ++= scalaTestDeps, libraryDependencies ++= Seq( log4jApiScalaDep, - "org.apache.logging.log4j" % "log4j-core" % "2.24.2" % Runtime + "org.apache.logging.log4j" % "log4j-core" % "2.24.3" % Runtime ), libraryDependencies += osLibDep ) From b301d1faacdc9fe12a740569dd97078499d48ef4 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 19 Dec 2024 00:19:33 +0000 Subject: [PATCH 0963/1318] Update elasticmq-core, elasticmq-rest-sqs, ... from 1.6.8 to 1.6.10 --- build.sbt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index 250146e22..530474f9f 100644 --- a/build.sbt +++ b/build.sbt @@ -455,9 +455,9 @@ lazy val scala_libraries = (project in file("scala-libraries")) logback ), libraryDependencies ++= Seq( - "org.elasticmq" %% "elasticmq-core" % "1.6.8", - "org.elasticmq" %% "elasticmq-server" % "1.6.8", - "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.8", + "org.elasticmq" %% "elasticmq-core" % "1.6.10", + "org.elasticmq" %% "elasticmq-server" % "1.6.10", + "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.10", "software.amazon.awssdk" % "sqs" % "2.29.24" ), Defaults.itSettings From 8c3533e996bce75fbc7b6026dcd05a97e10e32a0 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 19 Dec 2024 00:20:02 +0000 Subject: [PATCH 0964/1318] Update scala-parallel-collections from 1.0.4 to 1.1.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 250146e22..23d5b4eec 100644 --- a/build.sbt +++ b/build.sbt @@ -197,7 +197,7 @@ lazy val scala_lang_2 = (project in file("scala-lang-modules/scala-lang-2")) ) val scalaParColDep = - "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4" + "org.scala-lang.modules" %% "scala-parallel-collections" % "1.1.0" lazy val scala_core_collections = (project in file("scala-core-collections-modules/scala-core-collections")) From 376bae1b69b9e042e95c1653ef68b29fed343de9 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 19 Dec 2024 00:20:25 +0000 Subject: [PATCH 0965/1318] Update s3, sqs from 2.29.24 to 2.29.37 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 250146e22..c9e67710a 100644 --- a/build.sbt +++ b/build.sbt @@ -458,7 +458,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-core" % "1.6.8", "org.elasticmq" %% "elasticmq-server" % "1.6.8", "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.8", - "software.amazon.awssdk" % "sqs" % "2.29.24" + "software.amazon.awssdk" % "sqs" % "2.29.37" ), Defaults.itSettings ) @@ -582,7 +582,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.779" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.29.24" + "software.amazon.awssdk" % "s3" % "2.29.37" ), Defaults.itSettings, IntegrationTest / fork := true From 192215baef0f02830b7ce5c2c7feee192725cd4c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 27 Dec 2024 00:17:43 +0000 Subject: [PATCH 0966/1318] Update logback-classic from 1.5.13 to 1.5.15 --- build.sbt | 2 +- scalatra/build.sbt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 9fb13db57..04ca0c4cd 100644 --- a/build.sbt +++ b/build.sbt @@ -7,7 +7,7 @@ val jUnitInterface = "com.github.sbt" % "junit-interface" % "0.13.3" % "test" val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.7" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.7" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV -val logback = "ch.qos.logback" % "logback-classic" % "1.5.13" +val logback = "ch.qos.logback" % "logback-classic" % "1.5.15" val embedMongoVersion = "4.18.1" val AkkaVersion = "2.9.3" val AlpakkaVersion = "8.0.0" diff --git a/scalatra/build.sbt b/scalatra/build.sbt index 8f5791749..7aecfd531 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -8,7 +8,7 @@ version := "0.1.0-SNAPSHOT" libraryDependencies ++= Seq( "org.scalatra" %% "scalatra" % ScalatraVersion, "org.scalatra" %% "scalatra-scalatest" % ScalatraVersion % "test", - "ch.qos.logback" % "logback-classic" % "1.5.13" % "runtime", + "ch.qos.logback" % "logback-classic" % "1.5.15" % "runtime", "org.eclipse.jetty" % "jetty-webapp" % "11.0.24" % "container", "javax.servlet" % "javax.servlet-api" % "4.0.1" % "provided", "org.scalatra" %% "scalatra-auth" % ScalatraVersion, From a8545b5a0b369ac19937528ef6684a515c1de644 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 27 Dec 2024 00:18:18 +0000 Subject: [PATCH 0967/1318] Update testcontainers-scala-localstack-v2, ... from 0.41.4 to 0.41.5 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 9fb13db57..140daa87c 100644 --- a/build.sbt +++ b/build.sbt @@ -354,7 +354,7 @@ val scalazVersion = "7.3.8" val fs2Version = "3.11.0" val reactiveMongo = "1.1.0-RC14" val slickPgVersion = "0.22.2" -val scalaTestContainersVersion = "0.41.4" +val scalaTestContainersVersion = "0.41.5" val postgresqlVersion = "42.7.4" val json4sVersion = "4.0.7" From 7a1a4c610d1e226ea6357c59bdc2854f0f519dd3 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 27 Dec 2024 00:18:50 +0000 Subject: [PATCH 0968/1318] Update tapir-akka-http-server, tapir-core, ... from 1.11.10 to 1.11.11 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index d552a13d4..7e81c103a 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.11.10" +val tapirV = "1.11.11" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From ab03871a999f06e4805aa0d02a875ef7c2298f34 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 27 Dec 2024 00:19:25 +0000 Subject: [PATCH 0969/1318] Update zio, zio-streams, zio-test, ... from 2.1.13 to 2.1.14 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 9fb13db57..519f85f67 100644 --- a/build.sbt +++ b/build.sbt @@ -21,7 +21,7 @@ val scalaTestDeps = Seq( ) val scalaMock = "org.scalamock" %% "scalamock" % "6.0.0" % Test -val zioVersion = "2.1.13" +val zioVersion = "2.1.14" lazy val scala_core = (project in file("scala-core-modules/scala-core")) .settings( From e84fa2f6dfc265d987f6f463348e51d0cc3c7b8f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 27 Dec 2024 00:19:58 +0000 Subject: [PATCH 0970/1318] Update spark-core, spark-sql from 3.5.3 to 3.5.4 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 9fb13db57..e95825f12 100644 --- a/build.sbt +++ b/build.sbt @@ -408,7 +408,7 @@ lazy val scala2_libraries = val circeVersion = "0.14.10" val monixVersion = "3.4.1" -val sparkVersion = "3.5.3" +val sparkVersion = "3.5.4" val elastic4sVersion = "8.16.0" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion From 649b250ba79069a8a8a7a6f9108e4086b1003cac Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 27 Dec 2024 00:20:11 +0000 Subject: [PATCH 0971/1318] Update sbt, scripted-plugin from 1.10.6 to 1.10.7 --- project/build.properties | 2 +- sbt-release/project/build.properties | 2 +- sbt-standalone/project/build.properties | 2 +- scala-graalvm/scala-graalvm-http-app/project/build.properties | 2 +- scala-sbt/intro-to-sbt/project/build.properties | 2 +- scala-sbt/scalafix/project/build.properties | 2 +- scalatra/project/build.properties | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/project/build.properties b/project/build.properties index e0a0e7d10..8fc29878c 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1,2 +1,2 @@ -sbt.version=1.10.6 +sbt.version=1.10.7 diff --git a/sbt-release/project/build.properties b/sbt-release/project/build.properties index 7a159c441..fe69360b7 100644 --- a/sbt-release/project/build.properties +++ b/sbt-release/project/build.properties @@ -1 +1 @@ -sbt.version = 1.10.6 +sbt.version = 1.10.7 diff --git a/sbt-standalone/project/build.properties b/sbt-standalone/project/build.properties index e88a0d817..73df629ac 100644 --- a/sbt-standalone/project/build.properties +++ b/sbt-standalone/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.6 +sbt.version=1.10.7 diff --git a/scala-graalvm/scala-graalvm-http-app/project/build.properties b/scala-graalvm/scala-graalvm-http-app/project/build.properties index e88a0d817..73df629ac 100644 --- a/scala-graalvm/scala-graalvm-http-app/project/build.properties +++ b/scala-graalvm/scala-graalvm-http-app/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.6 +sbt.version=1.10.7 diff --git a/scala-sbt/intro-to-sbt/project/build.properties b/scala-sbt/intro-to-sbt/project/build.properties index e88a0d817..73df629ac 100644 --- a/scala-sbt/intro-to-sbt/project/build.properties +++ b/scala-sbt/intro-to-sbt/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.6 +sbt.version=1.10.7 diff --git a/scala-sbt/scalafix/project/build.properties b/scala-sbt/scalafix/project/build.properties index 2a577eee4..0a832a2de 100644 --- a/scala-sbt/scalafix/project/build.properties +++ b/scala-sbt/scalafix/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.6 \ No newline at end of file +sbt.version=1.10.7 \ No newline at end of file diff --git a/scalatra/project/build.properties b/scalatra/project/build.properties index e88a0d817..73df629ac 100644 --- a/scalatra/project/build.properties +++ b/scalatra/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.6 +sbt.version=1.10.7 From 5970d50ab70fcb43a2f99677219ecfc5ed1d5ddd Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 27 Dec 2024 00:20:40 +0000 Subject: [PATCH 0972/1318] Update s3, sqs from 2.29.37 to 2.29.41 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 9fb13db57..55372891a 100644 --- a/build.sbt +++ b/build.sbt @@ -460,7 +460,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.10" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.29.37" + "software.amazon.awssdk" % "sqs" % "2.29.41" ), Defaults.itSettings ) @@ -584,7 +584,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.780" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.29.37" + "software.amazon.awssdk" % "s3" % "2.29.41" ), Defaults.itSettings, IntegrationTest / fork := true From d5e75bae88e655bed6c4aa8bf56883375091447e Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 4 Jan 2025 00:17:38 +0000 Subject: [PATCH 0973/1318] Update refined from 0.11.2 to 0.11.3 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d637c68b7..b2ca7345a 100644 --- a/build.sbt +++ b/build.sbt @@ -525,7 +525,7 @@ lazy val refined = (project in file("scala-libraries-standalone/refined")) .settings( name := "refined", scalaVersion := scalaV, - libraryDependencies += "eu.timepit" %% "refined" % "0.11.2", + libraryDependencies += "eu.timepit" %% "refined" % "0.11.3", libraryDependencies ++= scalaTestDeps ) From 39e44b7b5f1dc54fd40e731c13091c3f68374a88 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 4 Jan 2025 00:18:01 +0000 Subject: [PATCH 0974/1318] Update chimney from 1.5.0 to 1.6.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d637c68b7..9796aee84 100644 --- a/build.sbt +++ b/build.sbt @@ -472,7 +472,7 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps .map(_.withConfigurations(Some("it,test"))), - libraryDependencies += "io.scalaland" %% "chimney" % "1.5.0", + libraryDependencies += "io.scalaland" %% "chimney" % "1.6.0", Defaults.itSettings ) From 524be3f5eae601cc84f3972b2f5e128383876831 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 4 Jan 2025 00:18:24 +0000 Subject: [PATCH 0975/1318] Update mockito-core from 5.14.2 to 5.15.2 --- play-scala/caching-in-play/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/play-scala/caching-in-play/build.sbt b/play-scala/caching-in-play/build.sbt index 68eaee7d6..f2360596d 100644 --- a/play-scala/caching-in-play/build.sbt +++ b/play-scala/caching-in-play/build.sbt @@ -11,6 +11,6 @@ libraryDependencies += guice libraryDependencies += caffeine libraryDependencies += ws libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % LibraryVersions.scalatestPlayVersion % Test -libraryDependencies += "org.mockito" % "mockito-core" % "5.14.2" % Test +libraryDependencies += "org.mockito" % "mockito-core" % "5.15.2" % Test PlayKeys.devSettings += "play.server.http.port" -> "9000" From abecf9ad9228f8d1afcfd02a37fe08453c0ac70d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 4 Jan 2025 00:18:45 +0000 Subject: [PATCH 0976/1318] Update scalamock from 6.0.0 to 6.1.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d637c68b7..f59c28c75 100644 --- a/build.sbt +++ b/build.sbt @@ -20,7 +20,7 @@ val scalaTestDeps = Seq( "org.scalatest" %% "scalatest-flatspec" % "3.2.19" % Test ) -val scalaMock = "org.scalamock" %% "scalamock" % "6.0.0" % Test +val scalaMock = "org.scalamock" %% "scalamock" % "6.1.1" % Test val zioVersion = "2.1.14" lazy val scala_core = (project in file("scala-core-modules/scala-core")) From f38154180a2f6833b111158e24ad23cf69f1b027 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 4 Jan 2025 00:19:08 +0000 Subject: [PATCH 0977/1318] Update s3, sqs from 2.29.41 to 2.29.45 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index d637c68b7..0680bbf68 100644 --- a/build.sbt +++ b/build.sbt @@ -460,7 +460,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.10" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.29.41" + "software.amazon.awssdk" % "sqs" % "2.29.45" ), Defaults.itSettings ) @@ -584,7 +584,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.780" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.29.41" + "software.amazon.awssdk" % "s3" % "2.29.45" ), Defaults.itSettings, IntegrationTest / fork := true From 633691a6b4de2b6b20319a091425e802a6e3552c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 12 Jan 2025 00:19:54 +0000 Subject: [PATCH 0978/1318] Update logback-classic from 1.5.15 to 1.5.16 --- build.sbt | 2 +- scalatra/build.sbt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index f214a1b5e..c4a7a5c6b 100644 --- a/build.sbt +++ b/build.sbt @@ -7,7 +7,7 @@ val jUnitInterface = "com.github.sbt" % "junit-interface" % "0.13.3" % "test" val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.7" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.7" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV -val logback = "ch.qos.logback" % "logback-classic" % "1.5.15" +val logback = "ch.qos.logback" % "logback-classic" % "1.5.16" val embedMongoVersion = "4.18.1" val AkkaVersion = "2.9.3" val AlpakkaVersion = "8.0.0" diff --git a/scalatra/build.sbt b/scalatra/build.sbt index 7aecfd531..64860b0e1 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -8,7 +8,7 @@ version := "0.1.0-SNAPSHOT" libraryDependencies ++= Seq( "org.scalatra" %% "scalatra" % ScalatraVersion, "org.scalatra" %% "scalatra-scalatest" % ScalatraVersion % "test", - "ch.qos.logback" % "logback-classic" % "1.5.15" % "runtime", + "ch.qos.logback" % "logback-classic" % "1.5.16" % "runtime", "org.eclipse.jetty" % "jetty-webapp" % "11.0.24" % "container", "javax.servlet" % "javax.servlet-api" % "4.0.1" % "provided", "org.scalatra" %% "scalatra-auth" % ScalatraVersion, From 11d0e1e46d6ecb00941243322c2326195d1c57bf Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 12 Jan 2025 00:20:32 +0000 Subject: [PATCH 0979/1318] Update nscala-time from 2.34.0 to 3.0.0 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index f214a1b5e..71f4ceb11 100644 --- a/build.sbt +++ b/build.sbt @@ -176,7 +176,7 @@ lazy val scala_core_dates = scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps, libraryDependencies += "joda-time" % "joda-time" % "2.13.0", - libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "2.34.0", + libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "3.0.0", libraryDependencies += "com.typesafe" % "config" % "1.4.3" ) @@ -533,7 +533,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) .settings( name := "nscalatime", scalaVersion := scala3Version, - libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "2.34.0", + libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "3.0.0", libraryDependencies ++= scalaTestDeps ) From c5e551cf3a11ded17f46fa5b512af728cbed43b2 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 12 Jan 2025 00:21:08 +0000 Subject: [PATCH 0980/1318] Update utest from 0.8.4 to 0.8.5 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index f214a1b5e..613c066b1 100644 --- a/build.sbt +++ b/build.sbt @@ -579,7 +579,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) libraryDependencies ++= Seq( "org.scalacheck" %% "scalacheck" % "1.18.1" % Test, scalaMock, - "com.lihaoyi" %% "utest" % "0.8.4" % "test", + "com.lihaoyi" %% "utest" % "0.8.5" % "test", munitDep, "com.amazonaws" % "aws-java-sdk-s3" % "1.12.780" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, From c71252621269b366f00a61c71e88989da82d3335 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 12 Jan 2025 00:21:42 +0000 Subject: [PATCH 0981/1318] Update tapir-akka-http-server, tapir-core, ... from 1.11.11 to 1.11.12 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index 7e81c103a..f2179f33c 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.11.11" +val tapirV = "1.11.12" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From 9dc37b720bedfea1b5e9b0fe2614aad6f1d82565 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 12 Jan 2025 00:22:22 +0000 Subject: [PATCH 0982/1318] Update zio-json from 0.7.3 to 0.7.4 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index f214a1b5e..02b04e4b0 100644 --- a/build.sbt +++ b/build.sbt @@ -682,7 +682,7 @@ lazy val cats_effects = (project in file("cats-effects")) libraryDependencies += "junit" % "junit" % "4.13.2" % Test ) -val zioJsonDep = "dev.zio" %% "zio-json" % "0.7.3" +val zioJsonDep = "dev.zio" %% "zio-json" % "0.7.4" val zioTestSbt = "dev.zio" %% "zio-test-sbt" % zioVersion % Test lazy val zio = (project in file("zio")) @@ -704,7 +704,7 @@ lazy val zio2 = (project in file("zio-2")) name := "zio-2", scalaVersion := scala3Version, libraryDependencies += "dev.zio" %% "zio" % zioVersion, - libraryDependencies += "dev.zio" %% "zio-json" % "0.7.3", + libraryDependencies += "dev.zio" %% "zio-json" % "0.7.4", libraryDependencies += "dev.zio" %% "zio-test" % zioVersion % Test, libraryDependencies += "dev.zio" %% "zio-test-sbt" % zioVersion % Test, libraryDependencies += "dev.zio" %% "zio-logging" % "2.1.17", From 14db913d6fef0638eb525bc382aa31b3b7e10f77 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 12 Jan 2025 00:22:56 +0000 Subject: [PATCH 0983/1318] Update zio-kafka from 2.9.0 to 2.9.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index f214a1b5e..7fa643d7e 100644 --- a/build.sbt +++ b/build.sbt @@ -692,7 +692,7 @@ lazy val zio = (project in file("zio")) libraryDependencies += "dev.zio" %% "zio" % zioVersion, libraryDependencies += "dev.zio" %% "zio-streams" % zioVersion, libraryDependencies += zioTestSbt, - libraryDependencies += "dev.zio" %% "zio-kafka" % "2.9.0", + libraryDependencies += "dev.zio" %% "zio-kafka" % "2.9.1", libraryDependencies += zioJsonDep, libraryDependencies += "dev.zio" %% "zio-prelude" % "1.0.0-RC23", libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.19" % Test, From 8f723c1f9c3acde9991734fffb4120391b599cf9 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 12 Jan 2025 00:23:31 +0000 Subject: [PATCH 0984/1318] Update elasticmq-core, elasticmq-rest-sqs, ... from 1.6.10 to 1.6.11 --- build.sbt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index f214a1b5e..44f649a88 100644 --- a/build.sbt +++ b/build.sbt @@ -455,9 +455,9 @@ lazy val scala_libraries = (project in file("scala-libraries")) logback ), libraryDependencies ++= Seq( - "org.elasticmq" %% "elasticmq-core" % "1.6.10", - "org.elasticmq" %% "elasticmq-server" % "1.6.10", - "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.10" + "org.elasticmq" %% "elasticmq-core" % "1.6.11", + "org.elasticmq" %% "elasticmq-server" % "1.6.11", + "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.11" ), libraryDependencies ++= Seq( "software.amazon.awssdk" % "sqs" % "2.29.45" From 4c42e44a18868e187f80a2662c0750bfc2f30e12 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 12 Jan 2025 00:24:09 +0000 Subject: [PATCH 0985/1318] Update mongo-scala-driver from 5.2.1 to 5.3.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index f214a1b5e..a95b2172d 100644 --- a/build.sbt +++ b/build.sbt @@ -272,7 +272,7 @@ lazy val scala_akka_dependencies: Seq[ModuleID] = Seq( akkaTypedTestkit, "com.lightbend.akka" %% "akka-stream-alpakka-mongodb" % AlpakkaVersion, akkaStreamDep, - "org.mongodb.scala" %% "mongo-scala-driver" % "5.2.1", + "org.mongodb.scala" %% "mongo-scala-driver" % "5.3.0", "com.lightbend.akka" %% "akka-stream-alpakka-file" % AlpakkaVersion, jUnitInterface, embeddedMongo % Test, From 5e2e752d6f5fd5d2b85580e9fb001f9e6511cd41 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 12 Jan 2025 00:24:40 +0000 Subject: [PATCH 0986/1318] Update sbt-scalajs from 1.17.0 to 1.18.1 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index 094556f6a..cf81408c3 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,7 +1,7 @@ addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.2") addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.6") -addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.17.0") +addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.18.1") addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.2.1") libraryDependencies += "ai.kien" %% "python-native-libs" % "0.2.4" From 55c91822e54141c46f6b028c50b67f1c090cc76b Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 12 Jan 2025 00:25:15 +0000 Subject: [PATCH 0987/1318] Update scala-parallel-collections from 1.1.0 to 1.2.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index f214a1b5e..303b01f1c 100644 --- a/build.sbt +++ b/build.sbt @@ -197,7 +197,7 @@ lazy val scala_lang_2 = (project in file("scala-lang-modules/scala-lang-2")) ) val scalaParColDep = - "org.scala-lang.modules" %% "scala-parallel-collections" % "1.1.0" + "org.scala-lang.modules" %% "scala-parallel-collections" % "1.2.0" lazy val scala_core_collections = (project in file("scala-core-collections-modules/scala-core-collections")) From 17886d959b121d5f3ca0dcc228a297e9b4dcf65b Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 12 Jan 2025 00:25:49 +0000 Subject: [PATCH 0988/1318] Update munit from 1.0.3 to 1.0.4 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index f214a1b5e..b32db39bf 100644 --- a/build.sbt +++ b/build.sbt @@ -485,7 +485,7 @@ val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion val log4jApiScalaDep = "org.apache.logging.log4j" %% "log4j-api-scala" % "13.1.0" -val munitDep = "org.scalameta" %% "munit" % "1.0.3" % Test +val munitDep = "org.scalameta" %% "munit" % "1.0.4" % Test lazy val scala_libraries_os = (project in file("scala-libraries-os")) .settings( From 172f671b1fe70d9379124801a9aee5c9525d3de6 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 12 Jan 2025 00:26:57 +0000 Subject: [PATCH 0989/1318] Update s3, sqs from 2.29.45 to 2.29.50 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index f214a1b5e..7f88db232 100644 --- a/build.sbt +++ b/build.sbt @@ -460,7 +460,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.10" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.29.45" + "software.amazon.awssdk" % "sqs" % "2.29.50" ), Defaults.itSettings ) @@ -584,7 +584,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.780" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.29.45" + "software.amazon.awssdk" % "s3" % "2.29.50" ), Defaults.itSettings, IntegrationTest / fork := true From 3b74d328450e7ec60ed1c11648cb7f8e6cb3767e Mon Sep 17 00:00:00 2001 From: Callum Gibbons Date: Sun, 12 Jan 2025 20:29:52 +0000 Subject: [PATCH 0990/1318] [SCALA-339] - Usage of val and def fields in traits --- build.sbt | 8 ++++ scala-core-modules/scala-core-10/README.md | 1 + .../valsintraits/ValInTraitExamples.scala | 39 ++++++++++++++++++ .../scala/ValInTraitExamplesUnitTest.scala | 40 +++++++++++++++++++ 4 files changed, 88 insertions(+) create mode 100644 scala-core-modules/scala-core-10/README.md create mode 100644 scala-core-modules/scala-core-10/src/main/scala/com/baeldung/scala/valsintraits/ValInTraitExamples.scala create mode 100644 scala-core-modules/scala-core-10/src/test/scala/com/baeldung/scala/ValInTraitExamplesUnitTest.scala diff --git a/build.sbt b/build.sbt index f214a1b5e..e251fc8b0 100644 --- a/build.sbt +++ b/build.sbt @@ -119,6 +119,14 @@ lazy val scala_core_9 = (project in file("scala-core-modules/scala-core-9")) libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test ) +lazy val scala_core_10 = (project in file("scala-core-modules/scala-core-10")) + .settings( + name := "scala-core-10", + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version, + libraryDependencies += "org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test + ) + lazy val scala_core_numbers = (project in file("scala-core-modules/scala-core-numbers")) .settings( diff --git a/scala-core-modules/scala-core-10/README.md b/scala-core-modules/scala-core-10/README.md new file mode 100644 index 000000000..38c74cb46 --- /dev/null +++ b/scala-core-modules/scala-core-10/README.md @@ -0,0 +1 @@ +### Relevant Articles diff --git a/scala-core-modules/scala-core-10/src/main/scala/com/baeldung/scala/valsintraits/ValInTraitExamples.scala b/scala-core-modules/scala-core-10/src/main/scala/com/baeldung/scala/valsintraits/ValInTraitExamples.scala new file mode 100644 index 000000000..810a0790e --- /dev/null +++ b/scala-core-modules/scala-core-10/src/main/scala/com/baeldung/scala/valsintraits/ValInTraitExamples.scala @@ -0,0 +1,39 @@ +package com.baeldung.scala.valsintraits + +import java.time.LocalDateTime + +object ValInTraitExamples { + trait CurrentTimePrinter { + val currentTime: LocalDateTime + def printCurrentTime(): Unit + } + class TimePrinterImpl extends CurrentTimePrinter { + override val currentTime: LocalDateTime = LocalDateTime.now() + override def printCurrentTime(): Unit = println(currentTime) + } + + trait CurrentTimePrinterWithDef { + def currentTime: LocalDateTime + def printCurrentTime(): Unit + } + class TimePrinterWithDefImpl extends CurrentTimePrinterWithDef { + override def currentTime: LocalDateTime = LocalDateTime.now() + override def printCurrentTime(): Unit = println(currentTime) + } + + trait TraitA { + val multiplier: Int + val result: Int = multiplier * 7 + } + trait TraitB { + val multiplier: Int = 10 + } + trait TraitAWithDef { + val multiplier: Int + def result: Int = multiplier * 7 + } + + object AB extends TraitA with TraitB + object BA extends TraitB with TraitA + object ABWithDef extends TraitAWithDef with TraitB +} diff --git a/scala-core-modules/scala-core-10/src/test/scala/com/baeldung/scala/ValInTraitExamplesUnitTest.scala b/scala-core-modules/scala-core-10/src/test/scala/com/baeldung/scala/ValInTraitExamplesUnitTest.scala new file mode 100644 index 000000000..b14b147ee --- /dev/null +++ b/scala-core-modules/scala-core-10/src/test/scala/com/baeldung/scala/ValInTraitExamplesUnitTest.scala @@ -0,0 +1,40 @@ +package com.baeldung.scala + +import com.baeldung.scala.valsintraits.ValInTraitExamples +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers + +class ValInTraitExamplesUnitTest extends AnyFlatSpec with Matchers { + "TimePrinterImpl" should "return same time every call" in { + val printer = new ValInTraitExamples.TimePrinterImpl() + val first = printer.currentTime + Thread.sleep(10) + val second = printer.currentTime + + first.shouldBe(second) + } + + "TimePrinterWithDefImpl" should "return different time every call" in { + val printer = new ValInTraitExamples.TimePrinterWithDefImpl() + val first = printer.currentTime + Thread.sleep(10) + val second = printer.currentTime + + first should not be second + } + + "ClassAB" should "return result as 0" in { + val classAb = ValInTraitExamples.AB + classAb.result shouldBe 0 + } + + "ClassBA" should "return result as 70" in { + val classBa = ValInTraitExamples.BA + classBa.result shouldBe 70 + } + + "ClassABWithDef" should "return result as 70" in { + val classAbWithDef = ValInTraitExamples.ABWithDef + classAbWithDef.result shouldBe 70 + } +} From 561e7e892b684bd7fcceb14013d5d8ebc5173a0f Mon Sep 17 00:00:00 2001 From: Callum Gibbons Date: Sun, 12 Jan 2025 21:03:04 +0000 Subject: [PATCH 0991/1318] [SCALA-339] - Changed classes to objects --- .../baeldung/scala/valsintraits/ValInTraitExamples.scala | 8 ++++---- .../com/baeldung/scala/ValInTraitExamplesUnitTest.scala | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/scala-core-modules/scala-core-10/src/main/scala/com/baeldung/scala/valsintraits/ValInTraitExamples.scala b/scala-core-modules/scala-core-10/src/main/scala/com/baeldung/scala/valsintraits/ValInTraitExamples.scala index 810a0790e..aaa007060 100644 --- a/scala-core-modules/scala-core-10/src/main/scala/com/baeldung/scala/valsintraits/ValInTraitExamples.scala +++ b/scala-core-modules/scala-core-10/src/main/scala/com/baeldung/scala/valsintraits/ValInTraitExamples.scala @@ -7,8 +7,8 @@ object ValInTraitExamples { val currentTime: LocalDateTime def printCurrentTime(): Unit } - class TimePrinterImpl extends CurrentTimePrinter { - override val currentTime: LocalDateTime = LocalDateTime.now() + object TimePrinterImpl extends CurrentTimePrinter { + override def currentTime: LocalDateTime = LocalDateTime.now() override def printCurrentTime(): Unit = println(currentTime) } @@ -16,8 +16,8 @@ object ValInTraitExamples { def currentTime: LocalDateTime def printCurrentTime(): Unit } - class TimePrinterWithDefImpl extends CurrentTimePrinterWithDef { - override def currentTime: LocalDateTime = LocalDateTime.now() + object TimePrinterWithDefImpl extends CurrentTimePrinterWithDef { + override var currentTime: LocalDateTime = LocalDateTime.now() override def printCurrentTime(): Unit = println(currentTime) } diff --git a/scala-core-modules/scala-core-10/src/test/scala/com/baeldung/scala/ValInTraitExamplesUnitTest.scala b/scala-core-modules/scala-core-10/src/test/scala/com/baeldung/scala/ValInTraitExamplesUnitTest.scala index b14b147ee..3ae3a23a1 100644 --- a/scala-core-modules/scala-core-10/src/test/scala/com/baeldung/scala/ValInTraitExamplesUnitTest.scala +++ b/scala-core-modules/scala-core-10/src/test/scala/com/baeldung/scala/ValInTraitExamplesUnitTest.scala @@ -6,7 +6,7 @@ import org.scalatest.matchers.should.Matchers class ValInTraitExamplesUnitTest extends AnyFlatSpec with Matchers { "TimePrinterImpl" should "return same time every call" in { - val printer = new ValInTraitExamples.TimePrinterImpl() + val printer = ValInTraitExamples.TimePrinterImpl val first = printer.currentTime Thread.sleep(10) val second = printer.currentTime @@ -15,7 +15,7 @@ class ValInTraitExamplesUnitTest extends AnyFlatSpec with Matchers { } "TimePrinterWithDefImpl" should "return different time every call" in { - val printer = new ValInTraitExamples.TimePrinterWithDefImpl() + val printer = ValInTraitExamples.TimePrinterWithDefImpl val first = printer.currentTime Thread.sleep(10) val second = printer.currentTime From c657f9d96d13b8bce8b079e308477cced897df0d Mon Sep 17 00:00:00 2001 From: Callum Gibbons Date: Sun, 12 Jan 2025 21:10:37 +0000 Subject: [PATCH 0992/1318] [SCALA-339] - Fixed typo --- .../com/baeldung/scala/valsintraits/ValInTraitExamples.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-core-modules/scala-core-10/src/main/scala/com/baeldung/scala/valsintraits/ValInTraitExamples.scala b/scala-core-modules/scala-core-10/src/main/scala/com/baeldung/scala/valsintraits/ValInTraitExamples.scala index aaa007060..064fa387f 100644 --- a/scala-core-modules/scala-core-10/src/main/scala/com/baeldung/scala/valsintraits/ValInTraitExamples.scala +++ b/scala-core-modules/scala-core-10/src/main/scala/com/baeldung/scala/valsintraits/ValInTraitExamples.scala @@ -8,7 +8,7 @@ object ValInTraitExamples { def printCurrentTime(): Unit } object TimePrinterImpl extends CurrentTimePrinter { - override def currentTime: LocalDateTime = LocalDateTime.now() + override val currentTime: LocalDateTime = LocalDateTime.now() override def printCurrentTime(): Unit = println(currentTime) } From aaff774843f605896c9e1374683e96a2632598bf Mon Sep 17 00:00:00 2001 From: Callum Gibbons Date: Sun, 12 Jan 2025 21:36:55 +0000 Subject: [PATCH 0993/1318] [SCALA-339] - Fixed second typo --- .../com/baeldung/scala/valsintraits/ValInTraitExamples.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-core-modules/scala-core-10/src/main/scala/com/baeldung/scala/valsintraits/ValInTraitExamples.scala b/scala-core-modules/scala-core-10/src/main/scala/com/baeldung/scala/valsintraits/ValInTraitExamples.scala index 064fa387f..59010dfba 100644 --- a/scala-core-modules/scala-core-10/src/main/scala/com/baeldung/scala/valsintraits/ValInTraitExamples.scala +++ b/scala-core-modules/scala-core-10/src/main/scala/com/baeldung/scala/valsintraits/ValInTraitExamples.scala @@ -17,7 +17,7 @@ object ValInTraitExamples { def printCurrentTime(): Unit } object TimePrinterWithDefImpl extends CurrentTimePrinterWithDef { - override var currentTime: LocalDateTime = LocalDateTime.now() + override def currentTime: LocalDateTime = LocalDateTime.now() override def printCurrentTime(): Unit = println(currentTime) } From 918c612bfe404d8610d57ab5c3bf96f66ffc8002 Mon Sep 17 00:00:00 2001 From: Stelios Anastasakis Date: Sun, 29 Dec 2024 20:19:47 +0200 Subject: [PATCH 0994/1318] [SCALA-568] Added gatling module adding the gatling-sbt plugin --- scala-gatling/.gitignore | 5 +++++ scala-gatling/build.sbt | 11 +++++++++++ scala-gatling/project/build.properties | 1 + scala-gatling/project/plugins.sbt | 1 + 4 files changed, 18 insertions(+) create mode 100644 scala-gatling/.gitignore create mode 100644 scala-gatling/build.sbt create mode 100644 scala-gatling/project/build.properties create mode 100644 scala-gatling/project/plugins.sbt diff --git a/scala-gatling/.gitignore b/scala-gatling/.gitignore new file mode 100644 index 000000000..fc40e2d95 --- /dev/null +++ b/scala-gatling/.gitignore @@ -0,0 +1,5 @@ +target +.idea +.settings +.classpath +.project diff --git a/scala-gatling/build.sbt b/scala-gatling/build.sbt new file mode 100644 index 000000000..1dda5af89 --- /dev/null +++ b/scala-gatling/build.sbt @@ -0,0 +1,11 @@ +enablePlugins(GatlingPlugin) + +scalaVersion := "2.13.15" + +scalacOptions := Seq( + "-encoding", "UTF-8", "-release:8", "-deprecation", + "-feature", "-unchecked", "-language:implicitConversions", "-language:postfixOps") + +val gatlingVersion = "3.13.1" +libraryDependencies += "io.gatling.highcharts" % "gatling-charts-highcharts" % gatlingVersion % "test,it" +libraryDependencies += "io.gatling" % "gatling-test-framework" % gatlingVersion % "test,it" diff --git a/scala-gatling/project/build.properties b/scala-gatling/project/build.properties new file mode 100644 index 000000000..73df629ac --- /dev/null +++ b/scala-gatling/project/build.properties @@ -0,0 +1 @@ +sbt.version=1.10.7 diff --git a/scala-gatling/project/plugins.sbt b/scala-gatling/project/plugins.sbt new file mode 100644 index 000000000..e5a0f0f81 --- /dev/null +++ b/scala-gatling/project/plugins.sbt @@ -0,0 +1 @@ +addSbtPlugin("io.gatling" % "gatling-sbt" % "4.11.1") From 3d195408e17ba9762ae481e5e2ba7dad0f6caf46 Mon Sep 17 00:00:00 2001 From: Stelios Anastasakis Date: Sun, 29 Dec 2024 20:20:12 +0200 Subject: [PATCH 0995/1318] [SCALA-568] Added gatling simulation for testing against a server with a steady load --- scala-gatling/README.md | 6 ++++ .../gatling/ChainRequestsProvider.scala | 31 +++++++++++++++++++ .../baeldung/gatling/PeakLoadSimulation.scala | 31 +++++++++++++++++++ .../baeldung/gatling/ScenariosProvider.scala | 31 +++++++++++++++++++ 4 files changed, 99 insertions(+) create mode 100644 scala-gatling/README.md create mode 100644 scala-gatling/src/test/scala/com/baeldung/gatling/ChainRequestsProvider.scala create mode 100644 scala-gatling/src/test/scala/com/baeldung/gatling/PeakLoadSimulation.scala create mode 100644 scala-gatling/src/test/scala/com/baeldung/gatling/ScenariosProvider.scala diff --git a/scala-gatling/README.md b/scala-gatling/README.md new file mode 100644 index 000000000..00e62d269 --- /dev/null +++ b/scala-gatling/README.md @@ -0,0 +1,6 @@ +### Relevant Articles: +- [Testing With Gatling Using Scala]() + +### Gatling Executions +compile tests: `sbt test:compile` +then run the simulation: `sbt 'Gatling/testOnly com.baeldung.gatling.PeakLoadSimulation'` diff --git a/scala-gatling/src/test/scala/com/baeldung/gatling/ChainRequestsProvider.scala b/scala-gatling/src/test/scala/com/baeldung/gatling/ChainRequestsProvider.scala new file mode 100644 index 000000000..38c6195a7 --- /dev/null +++ b/scala-gatling/src/test/scala/com/baeldung/gatling/ChainRequestsProvider.scala @@ -0,0 +1,31 @@ +package com.baeldung.gatling + +import io.gatling.core.Predef._ +import io.gatling.core.structure.ChainBuilder +import io.gatling.http.Predef._ +import io.gatling.http.request.builder.HttpRequestBuilder + +object ChainRequestsProvider { + + def simpleRequest( + requestName: String, + requestPath: String, + expectedResponseStatus: Int + ): ChainBuilder = { + val request: HttpRequestBuilder = http(requestName) + .get(requestPath) + .check(status.is(expectedResponseStatus)) + .check(bodyString.optional.saveAs("sBodyString")) + + exec(session => session.markAsSucceeded) + .exec(request) + .doIf(_.isFailed) { + exec { session => + println("***Failure on [" + requestPath + "] endpoint:") + print("Gatling Session Data: ") + println(session.attributes.get("sBodyString")) + session + } + } + } +} diff --git a/scala-gatling/src/test/scala/com/baeldung/gatling/PeakLoadSimulation.scala b/scala-gatling/src/test/scala/com/baeldung/gatling/PeakLoadSimulation.scala new file mode 100644 index 000000000..186863d1f --- /dev/null +++ b/scala-gatling/src/test/scala/com/baeldung/gatling/PeakLoadSimulation.scala @@ -0,0 +1,31 @@ +package com.baeldung.gatling + +import io.gatling.core.Predef.{details, _} +import com.baeldung.gatling.ChainRequestsProvider.simpleRequest +import com.baeldung.gatling.ScenariosProvider.getScenario + +class PeakLoadSimulation extends Simulation { + + setUp( + getScenario( + "getExistingEndpoint", + simpleRequest("request_status_endpoint", "/health/status", 200), + 50, + 10, + 60 + ), + getScenario( + "nonExistingEndpoint", + simpleRequest("request_wrong_endpoint", "/health/status1", 200), + 5, + 10, + 60 + ) + ).assertions( + details("request_status_endpoint").successfulRequests.percent.gt(99.99), + details("request_status_endpoint").responseTime.percentile4.lt(20), + details("request_status_endpoint").requestsPerSec.gt(40), + details("request_wrong_endpoint").successfulRequests.percent.lt(1), + details("request_wrong_endpoint").responseTime.percentile4.lt(20) + ) +} diff --git a/scala-gatling/src/test/scala/com/baeldung/gatling/ScenariosProvider.scala b/scala-gatling/src/test/scala/com/baeldung/gatling/ScenariosProvider.scala new file mode 100644 index 000000000..3a5b9259b --- /dev/null +++ b/scala-gatling/src/test/scala/com/baeldung/gatling/ScenariosProvider.scala @@ -0,0 +1,31 @@ +package com.baeldung.gatling + +import io.gatling.core.Predef._ +import io.gatling.core.structure.{ChainBuilder, PopulationBuilder} +import io.gatling.http.Predef.http + +import scala.language.postfixOps + +object ScenariosProvider { + + private val httpProtocol = + http.baseUrl("http://localhost:8080").disableCaching.disableFollowRedirect + + def getScenario( + scenarioName: String, + request: ChainBuilder, + tps: Double, + rampUpSeconds: Int, + durationSeconds: Int + ): PopulationBuilder = { + scenario(scenarioName) + .exec(request) + .inject( + rampUsersPerSec(0).to(tps).during(rampUpSeconds), + constantUsersPerSec(tps) + .during(durationSeconds - rampUpSeconds - rampUpSeconds), + rampUsersPerSec(tps).to(0).during(rampUpSeconds) + ) + .protocols(httpProtocol) + } +} From 28863da45938044b2d54cc89e2ab6ac515267681 Mon Sep 17 00:00:00 2001 From: Stelios Anastasakis Date: Fri, 17 Jan 2025 13:19:56 +0200 Subject: [PATCH 0996/1318] [SCALA-568] Point gatling to a scala REST API --- scala-gatling/README.md | 8 ++++++-- .../com/baeldung/gatling/PeakLoadSimulation.scala | 10 +++++----- .../scala/com/baeldung/gatling/ScenariosProvider.scala | 2 +- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/scala-gatling/README.md b/scala-gatling/README.md index 00e62d269..2fa9e1f13 100644 --- a/scala-gatling/README.md +++ b/scala-gatling/README.md @@ -2,5 +2,9 @@ - [Testing With Gatling Using Scala]() ### Gatling Executions -compile tests: `sbt test:compile` -then run the simulation: `sbt 'Gatling/testOnly com.baeldung.gatling.PeakLoadSimulation'` +From this module's folder, we first compile tests: `sbt test:compile` + +Then run the simulation: `sbt 'Gatling/testOnly com.baeldung.gatling.PeakLoadSimulation'` + +**Notes**: in order to spin-up the right API this example uses, we also need to start the server: +`sbt resApi/run` from root folder diff --git a/scala-gatling/src/test/scala/com/baeldung/gatling/PeakLoadSimulation.scala b/scala-gatling/src/test/scala/com/baeldung/gatling/PeakLoadSimulation.scala index 186863d1f..506ba463e 100644 --- a/scala-gatling/src/test/scala/com/baeldung/gatling/PeakLoadSimulation.scala +++ b/scala-gatling/src/test/scala/com/baeldung/gatling/PeakLoadSimulation.scala @@ -9,22 +9,22 @@ class PeakLoadSimulation extends Simulation { setUp( getScenario( "getExistingEndpoint", - simpleRequest("request_status_endpoint", "/health/status", 200), + simpleRequest("request_todo_endpoint", "/todo", 200), 50, 10, 60 ), getScenario( "nonExistingEndpoint", - simpleRequest("request_wrong_endpoint", "/health/status1", 200), + simpleRequest("request_wrong_endpoint", "/not-todo", 200), 5, 10, 60 ) ).assertions( - details("request_status_endpoint").successfulRequests.percent.gt(99.99), - details("request_status_endpoint").responseTime.percentile4.lt(20), - details("request_status_endpoint").requestsPerSec.gt(40), + details("request_todo_endpoint").successfulRequests.percent.gt(99.99), + details("request_todo_endpoint").responseTime.percentile4.lt(20), + details("request_todo_endpoint").requestsPerSec.gt(40), details("request_wrong_endpoint").successfulRequests.percent.lt(1), details("request_wrong_endpoint").responseTime.percentile4.lt(20) ) diff --git a/scala-gatling/src/test/scala/com/baeldung/gatling/ScenariosProvider.scala b/scala-gatling/src/test/scala/com/baeldung/gatling/ScenariosProvider.scala index 3a5b9259b..1423f178d 100644 --- a/scala-gatling/src/test/scala/com/baeldung/gatling/ScenariosProvider.scala +++ b/scala-gatling/src/test/scala/com/baeldung/gatling/ScenariosProvider.scala @@ -9,7 +9,7 @@ import scala.language.postfixOps object ScenariosProvider { private val httpProtocol = - http.baseUrl("http://localhost:8080").disableCaching.disableFollowRedirect + http.baseUrl("http://localhost:9000").disableCaching.disableFollowRedirect def getScenario( scenarioName: String, From 5e4552e1b1df54f5e55b4b865db16e3293ccc6c2 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2025 00:17:57 +0000 Subject: [PATCH 0997/1318] Update macros, util from 2.6.4 to 2.6.5 --- play-scala/dependency-injection/build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/play-scala/dependency-injection/build.sbt b/play-scala/dependency-injection/build.sbt index 7a16aa3dd..8ca2fb2e8 100644 --- a/play-scala/dependency-injection/build.sbt +++ b/play-scala/dependency-injection/build.sbt @@ -8,5 +8,5 @@ scalaVersion := ScalaVersions.scala3Version libraryDependencies += guice libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % LibraryVersions.scalatestPlayVersion % Test -libraryDependencies += "com.softwaremill.macwire" %% "macros" % "2.6.4" % Provided -libraryDependencies += "com.softwaremill.macwire" %% "util" % "2.6.4" +libraryDependencies += "com.softwaremill.macwire" %% "macros" % "2.6.5" % Provided +libraryDependencies += "com.softwaremill.macwire" %% "util" % "2.6.5" From 67cc6c6563d048518d4e92c8a6155d450931dfc7 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2025 00:18:48 +0000 Subject: [PATCH 0998/1318] Update zio-kafka from 2.9.1 to 2.10.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ce9b5a1c0..d0fb859be 100644 --- a/build.sbt +++ b/build.sbt @@ -692,7 +692,7 @@ lazy val zio = (project in file("zio")) libraryDependencies += "dev.zio" %% "zio" % zioVersion, libraryDependencies += "dev.zio" %% "zio-streams" % zioVersion, libraryDependencies += zioTestSbt, - libraryDependencies += "dev.zio" %% "zio-kafka" % "2.9.1", + libraryDependencies += "dev.zio" %% "zio-kafka" % "2.10.0", libraryDependencies += zioJsonDep, libraryDependencies += "dev.zio" %% "zio-prelude" % "1.0.0-RC23", libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.19" % Test, From 1597117b8fe60c32cb0a5d0e6d359469b06ae29b Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2025 00:19:37 +0000 Subject: [PATCH 0999/1318] Update postgresql from 42.7.4 to 42.7.5 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ce9b5a1c0..cb3a42268 100644 --- a/build.sbt +++ b/build.sbt @@ -355,7 +355,7 @@ val fs2Version = "3.11.0" val reactiveMongo = "1.1.0-RC14" val slickPgVersion = "0.22.2" val scalaTestContainersVersion = "0.41.5" -val postgresqlVersion = "42.7.4" +val postgresqlVersion = "42.7.5" val json4sVersion = "4.0.7" lazy val scala2_libraries = From 5166f9972f619ecfa3e108de9387ea1fb767160e Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2025 00:20:02 +0000 Subject: [PATCH 1000/1318] Update scala-compiler, scala-library, ... from 2.13.15 to 2.13.16 --- project/ScalaVersions.scala | 2 +- scala-lagom/build.sbt | 2 +- scala-sbt/wart-remover/build.sbt | 4 ++-- scala-sbt/wart-remover/custom-warts/build.sbt | 2 +- scalatra/build.sbt | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/project/ScalaVersions.scala b/project/ScalaVersions.scala index 3d66e0567..2fdf82d3c 100644 --- a/project/ScalaVersions.scala +++ b/project/ScalaVersions.scala @@ -1,5 +1,5 @@ object ScalaVersions { - val scala2Version = "2.13.15" + val scala2Version = "2.13.16" val scala3Version = "3.6.2" @deprecated( "Use Scala 2.13 or Scala 3. Don't use 2.12 unless it is a specific feature in 2.12." diff --git a/scala-lagom/build.sbt b/scala-lagom/build.sbt index bca362b23..a35de2dab 100644 --- a/scala-lagom/build.sbt +++ b/scala-lagom/build.sbt @@ -2,7 +2,7 @@ organization in ThisBuild := "com.baeldung" version in ThisBuild := "1.0-SNAPSHOT" // the Scala version that will be used for cross-compiled libraries -scalaVersion in ThisBuild := "2.13.15" +scalaVersion in ThisBuild := "2.13.16" val macwire = "com.softwaremill.macwire" %% "macros" % "2.3.3" % "provided" val scalaTest = "org.scalatest" %% "scalatest" % "3.1.1" % Test diff --git a/scala-sbt/wart-remover/build.sbt b/scala-sbt/wart-remover/build.sbt index d51a12796..55832fdd1 100644 --- a/scala-sbt/wart-remover/build.sbt +++ b/scala-sbt/wart-remover/build.sbt @@ -1,5 +1,5 @@ lazy val customWarts = (project in file("custom-warts")).settings( - scalaVersion := "2.13.15", + scalaVersion := "2.13.16", name := "CustomWarts", version := "1.0.0", exportJars := true, @@ -10,7 +10,7 @@ lazy val root = (project in file(".")) .dependsOn(customWarts) .settings( name := "wart-remover", - scalaVersion := "2.13.15", + scalaVersion := "2.13.16", version := "1.0.0", wartremoverWarnings ++= Seq(Wart.AsInstanceOf, Wart.Null), wartremoverExcluded += baseDirectory.value / "src" / "main" / "scala" / "com" / "baeldung" / "scala" / "wartremover" / "Excluded.scala", diff --git a/scala-sbt/wart-remover/custom-warts/build.sbt b/scala-sbt/wart-remover/custom-warts/build.sbt index ed411c6f5..71f6760d1 100644 --- a/scala-sbt/wart-remover/custom-warts/build.sbt +++ b/scala-sbt/wart-remover/custom-warts/build.sbt @@ -1,6 +1,6 @@ /*lazy val root = (project in file(".")).settings( name := "custom-warts", - scalaVersion := "2.13.15", + scalaVersion := "2.13.16", organization := "com.baeldung", version := "1.0.0-SNAPSHOT", libraryDependencies ++= Seq( diff --git a/scalatra/build.sbt b/scalatra/build.sbt index 64860b0e1..9c8d55ff5 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -1,6 +1,6 @@ val ScalatraVersion = "2.8.4" -ThisBuild / scalaVersion := "2.13.15" +ThisBuild / scalaVersion := "2.13.16" ThisBuild / organization := "baeldung" name := "scalatratutorial" From b810c0577ab550ad06d7214b81883d373ecffe96 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2025 00:20:26 +0000 Subject: [PATCH 1001/1318] Update sbt-scalafmt from 2.5.2 to 2.5.4 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index cf81408c3..87613a066 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,4 +1,4 @@ -addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.2") +addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.4") addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.6") addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.18.1") From 04bc6fb8b4d881d8ea5309a679d8bb42a8633e5d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2025 00:21:17 +0000 Subject: [PATCH 1002/1318] Update s3, sqs from 2.29.50 to 2.29.52 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index ce9b5a1c0..ff63ac216 100644 --- a/build.sbt +++ b/build.sbt @@ -460,7 +460,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.11" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.29.50" + "software.amazon.awssdk" % "sqs" % "2.29.52" ), Defaults.itSettings ) @@ -584,7 +584,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.780" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.29.50" + "software.amazon.awssdk" % "s3" % "2.29.52" ), Defaults.itSettings, IntegrationTest / fork := true From 8e2806f8457e5e9e2bcbe5186c994a0bda21a0f7 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2025 00:18:21 +0000 Subject: [PATCH 1003/1318] Update tapir-akka-http-server, tapir-core, ... from 1.11.12 to 1.11.13 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index f2179f33c..74f494df8 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.11.12" +val tapirV = "1.11.13" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From b003f0c08dd7c10221c35478b6c14751a17050c0 Mon Sep 17 00:00:00 2001 From: Matteo Di Pirro Date: Thu, 23 Jan 2025 18:13:01 +0100 Subject: [PATCH 1004/1318] SCALA-372 Add code for context functions article --- build.sbt | 6 ++++ .../scala/contextfunctions/Examples.scala | 36 +++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala/contextfunctions/Examples.scala diff --git a/build.sbt b/build.sbt index 5aedf297e..878934662 100644 --- a/build.sbt +++ b/build.sbt @@ -672,6 +672,12 @@ lazy val scala_lang_4 = scalaVersion := scala3Version ) +lazy val scala_lang_5 = + (project in file("scala-lang-modules/scala-lang-5")).settings( + libraryDependencies ++= scalaTestDeps, + scalaVersion := scala3Version + ) + lazy val cats_effects = (project in file("cats-effects")) .settings( name := "cats-effects", diff --git a/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala/contextfunctions/Examples.scala b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala/contextfunctions/Examples.scala new file mode 100644 index 000000000..dcec0eff8 --- /dev/null +++ b/scala-lang-modules/scala-lang-5/src/main/scala/com/baeldung/scala/contextfunctions/Examples.scala @@ -0,0 +1,36 @@ +package com.baeldung.scala.contextfunctions + +val increment: Int ?=> Int = summon[Int] + 1 + +val repeatString: String ?=> Int ?=> String = summon[String].repeat(summon[Int]) + +opaque type WrappedAlso[T] = T + +def it[T](using a: WrappedAlso[T]): T = a + +extension [T](x: T) + def also(f: WrappedAlso[T] ?=> Unit): T = + f(using x) + x + +@main +def main(): Unit = { + // Implicit parameter provided via the scope + given Int = 1 + println(s"Result scope: $increment") + + // Implicit parameter provided explicitly to the call + println(s"Result explicit: ${increment(using 5)}") + + println(s"Result repeatString: ${repeatString(using "Baeldung")(using 3)}") + + val numbers = List(1, 2, 3, 4, 5) + numbers + .also(println(s"The list before adding 6: $it")) + .appended(6) + .also(println(s"The list after adding 6: $it")) + + numbers + .also(it appended 7) + .also(println(s"The list after adding 7: $it")) +} From 4a37dbedc4ccc92026414c7195151aa0abe432b7 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 28 Jan 2025 00:17:39 +0000 Subject: [PATCH 1005/1318] Update testcontainers-scala-localstack-v2, ... from 0.41.5 to 0.41.8 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index c99a61ec1..02bbbd929 100644 --- a/build.sbt +++ b/build.sbt @@ -354,7 +354,7 @@ val scalazVersion = "7.3.8" val fs2Version = "3.11.0" val reactiveMongo = "1.1.0-RC14" val slickPgVersion = "0.22.2" -val scalaTestContainersVersion = "0.41.5" +val scalaTestContainersVersion = "0.41.8" val postgresqlVersion = "42.7.5" val json4sVersion = "4.0.7" From 5ad7494d7bb96bcf768a713726e9152944799874 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 28 Jan 2025 00:18:04 +0000 Subject: [PATCH 1006/1318] Update macros, util from 2.6.5 to 2.6.6 --- play-scala/dependency-injection/build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/play-scala/dependency-injection/build.sbt b/play-scala/dependency-injection/build.sbt index 8ca2fb2e8..eb4dfecea 100644 --- a/play-scala/dependency-injection/build.sbt +++ b/play-scala/dependency-injection/build.sbt @@ -8,5 +8,5 @@ scalaVersion := ScalaVersions.scala3Version libraryDependencies += guice libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % LibraryVersions.scalatestPlayVersion % Test -libraryDependencies += "com.softwaremill.macwire" %% "macros" % "2.6.5" % Provided -libraryDependencies += "com.softwaremill.macwire" %% "util" % "2.6.5" +libraryDependencies += "com.softwaremill.macwire" %% "macros" % "2.6.6" % Provided +libraryDependencies += "com.softwaremill.macwire" %% "util" % "2.6.6" From ed2538be31f67506f5fe467884c0e527867c446f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 28 Jan 2025 00:18:30 +0000 Subject: [PATCH 1007/1318] Update zio-json from 0.7.4 to 0.7.8 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index c99a61ec1..9fa6615d8 100644 --- a/build.sbt +++ b/build.sbt @@ -682,7 +682,7 @@ lazy val cats_effects = (project in file("cats-effects")) libraryDependencies += "junit" % "junit" % "4.13.2" % Test ) -val zioJsonDep = "dev.zio" %% "zio-json" % "0.7.4" +val zioJsonDep = "dev.zio" %% "zio-json" % "0.7.8" val zioTestSbt = "dev.zio" %% "zio-test-sbt" % zioVersion % Test lazy val zio = (project in file("zio")) @@ -704,7 +704,7 @@ lazy val zio2 = (project in file("zio-2")) name := "zio-2", scalaVersion := scala3Version, libraryDependencies += "dev.zio" %% "zio" % zioVersion, - libraryDependencies += "dev.zio" %% "zio-json" % "0.7.4", + libraryDependencies += "dev.zio" %% "zio-json" % "0.7.8", libraryDependencies += "dev.zio" %% "zio-test" % zioVersion % Test, libraryDependencies += "dev.zio" %% "zio-test-sbt" % zioVersion % Test, libraryDependencies += "dev.zio" %% "zio-logging" % "2.1.17", From f1f48e46ceed4e742caaeeae9e669fbc37a1430a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 28 Jan 2025 00:18:54 +0000 Subject: [PATCH 1008/1318] Update chimney from 1.6.0 to 1.7.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index c99a61ec1..b50dab126 100644 --- a/build.sbt +++ b/build.sbt @@ -472,7 +472,7 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps .map(_.withConfigurations(Some("it,test"))), - libraryDependencies += "io.scalaland" %% "chimney" % "1.6.0", + libraryDependencies += "io.scalaland" %% "chimney" % "1.7.0", Defaults.itSettings ) From 4cd41e81120366811f170e662aa385c9e943470b Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 28 Jan 2025 00:19:20 +0000 Subject: [PATCH 1009/1318] Update mongo-scala-driver from 5.3.0 to 5.3.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index c99a61ec1..9cb627c54 100644 --- a/build.sbt +++ b/build.sbt @@ -272,7 +272,7 @@ lazy val scala_akka_dependencies: Seq[ModuleID] = Seq( akkaTypedTestkit, "com.lightbend.akka" %% "akka-stream-alpakka-mongodb" % AlpakkaVersion, akkaStreamDep, - "org.mongodb.scala" %% "mongo-scala-driver" % "5.3.0", + "org.mongodb.scala" %% "mongo-scala-driver" % "5.3.1", "com.lightbend.akka" %% "akka-stream-alpakka-file" % AlpakkaVersion, jUnitInterface, embeddedMongo % Test, From 9b956328a6084da7e5d8f14b14079b2804154f07 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 28 Jan 2025 00:19:41 +0000 Subject: [PATCH 1010/1318] Update sbt-scalajs from 1.18.1 to 1.18.2 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index 87613a066..d0c76ca87 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,7 +1,7 @@ addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.4") addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.6") -addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.18.1") +addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.18.2") addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.2.1") libraryDependencies += "ai.kien" %% "python-native-libs" % "0.2.4" From a077af0f1ada20cbc8790b07b97e82543fc29b5a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 28 Jan 2025 00:20:03 +0000 Subject: [PATCH 1011/1318] Update scala3-library from 3.6.2 to 3.6.3 --- project/ScalaVersions.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/ScalaVersions.scala b/project/ScalaVersions.scala index 2fdf82d3c..ad82625a8 100644 --- a/project/ScalaVersions.scala +++ b/project/ScalaVersions.scala @@ -1,6 +1,6 @@ object ScalaVersions { val scala2Version = "2.13.16" - val scala3Version = "3.6.2" + val scala3Version = "3.6.3" @deprecated( "Use Scala 2.13 or Scala 3. Don't use 2.12 unless it is a specific feature in 2.12." ) From 80048dcf9a9e2e0905c56cc7031defe8c10e1169 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 28 Jan 2025 00:20:26 +0000 Subject: [PATCH 1012/1318] Update munit from 1.0.4 to 1.1.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index c99a61ec1..acfcd10e6 100644 --- a/build.sbt +++ b/build.sbt @@ -485,7 +485,7 @@ val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion val log4jApiScalaDep = "org.apache.logging.log4j" %% "log4j-api-scala" % "13.1.0" -val munitDep = "org.scalameta" %% "munit" % "1.0.4" % Test +val munitDep = "org.scalameta" %% "munit" % "1.1.0" % Test lazy val scala_libraries_os = (project in file("scala-libraries-os")) .settings( From 3aae4228f8e955183808a4b13359e6e91b75095a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 28 Jan 2025 00:20:48 +0000 Subject: [PATCH 1013/1318] Update cats-core from 2.12.0 to 2.13.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index c99a61ec1..641d72040 100644 --- a/build.sbt +++ b/build.sbt @@ -556,7 +556,7 @@ lazy val scala_libraries_fp = (project in file("scala-libraries-fp")) libraryDependencies ++= Seq( "co.fs2" %% "fs2-core" % fs2Version, "co.fs2" %% "fs2-io" % fs2Version, - "org.typelevel" %% "cats-core" % "2.12.0", + "org.typelevel" %% "cats-core" % "2.13.0", "org.http4s" %% "http4s-dsl" % http4sVersion, "org.http4s" %% "http4s-blaze-server" % http4sBlaze, "org.http4s" %% "http4s-blaze-client" % http4sBlaze, From f6bbdd2c1020e7792c04e48d608af44004099db9 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 28 Jan 2025 00:21:11 +0000 Subject: [PATCH 1014/1318] Update s3, sqs from 2.29.52 to 2.30.7 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index c99a61ec1..86a1e13be 100644 --- a/build.sbt +++ b/build.sbt @@ -460,7 +460,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.11" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.29.52" + "software.amazon.awssdk" % "sqs" % "2.30.7" ), Defaults.itSettings ) @@ -584,7 +584,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.780" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.29.52" + "software.amazon.awssdk" % "s3" % "2.30.7" ), Defaults.itSettings, IntegrationTest / fork := true From 8958055051ad9e58ce56f3c3c89443490643f32d Mon Sep 17 00:00:00 2001 From: Stefanos Georgakis Date: Wed, 15 Jan 2025 19:05:08 +0200 Subject: [PATCH 1015/1318] [SCALA-499] IOApp in Cats Effect --- .../baeldung/scala/ioapp/ArgumentIOApp.scala | 15 +++++++++++++ .../baeldung/scala/ioapp/ContextIOApp.scala | 21 ++++++++++++++++++ .../baeldung/scala/ioapp/ResourceIOApp.scala | 22 +++++++++++++++++++ .../baeldung/scala/ioapp/SimpleIOApp.scala | 9 ++++++++ 4 files changed, 67 insertions(+) create mode 100644 cats-effects/src/main/scala/com/baeldung/scala/ioapp/ArgumentIOApp.scala create mode 100644 cats-effects/src/main/scala/com/baeldung/scala/ioapp/ContextIOApp.scala create mode 100644 cats-effects/src/main/scala/com/baeldung/scala/ioapp/ResourceIOApp.scala create mode 100644 cats-effects/src/main/scala/com/baeldung/scala/ioapp/SimpleIOApp.scala diff --git a/cats-effects/src/main/scala/com/baeldung/scala/ioapp/ArgumentIOApp.scala b/cats-effects/src/main/scala/com/baeldung/scala/ioapp/ArgumentIOApp.scala new file mode 100644 index 000000000..b06f6d09b --- /dev/null +++ b/cats-effects/src/main/scala/com/baeldung/scala/ioapp/ArgumentIOApp.scala @@ -0,0 +1,15 @@ +package com.baeldung.scala.ioapp + +import cats.effect.{ExitCode, IO, IOApp} + +object ArgumentIOApp extends IOApp { + + def run(args: List[String]): IO[ExitCode] = { + if (args.nonEmpty) { + IO.println(s"Running with args: ${args.mkString(",")}") + .as(ExitCode.Success) + } else { + IO.println("No args provided. Aborting").as(ExitCode(2)) + } + } +} diff --git a/cats-effects/src/main/scala/com/baeldung/scala/ioapp/ContextIOApp.scala b/cats-effects/src/main/scala/com/baeldung/scala/ioapp/ContextIOApp.scala new file mode 100644 index 000000000..0a08947e2 --- /dev/null +++ b/cats-effects/src/main/scala/com/baeldung/scala/ioapp/ContextIOApp.scala @@ -0,0 +1,21 @@ +package com.baeldung.scala.ioapp + +import cats.effect._ +import cats.effect.unsafe.IORuntimeConfig + +import java.util.concurrent.Executors +import scala.concurrent.ExecutionContext + +object ContextIOApp extends IOApp { + + private val customExecutionContext: ExecutionContext = + ExecutionContext.fromExecutor(Executors.newWorkStealingPool(1)) + + override def run(args: List[String]): IO[ExitCode] = { + val computation = IO { + println(s"Running on thread: ${Thread.currentThread().getName}") + } + + computation.evalOn(customExecutionContext).as(ExitCode.Success) + } +} diff --git a/cats-effects/src/main/scala/com/baeldung/scala/ioapp/ResourceIOApp.scala b/cats-effects/src/main/scala/com/baeldung/scala/ioapp/ResourceIOApp.scala new file mode 100644 index 000000000..64a129b5a --- /dev/null +++ b/cats-effects/src/main/scala/com/baeldung/scala/ioapp/ResourceIOApp.scala @@ -0,0 +1,22 @@ +package com.baeldung.scala.ioapp + +import cats.effect.{ExitCode, IO, IOApp, Resource} + +import java.util.concurrent.Executors +import scala.concurrent.ExecutionContext + +object ResourceIOApp extends IOApp { + + val customExecutionContext: Resource[IO, ExecutionContext] = + Resource.make( + IO(ExecutionContext.fromExecutorService(Executors.newWorkStealingPool(1))) + ) { ec => + IO.println("Shutting down execution contest").as(ec.shutdown()) + } + + def run(args: List[String]): IO[ExitCode] = customExecutionContext + .use { ec => + IO.println(s"Running on thread: ${Thread.currentThread().getName}") + } + .as(ExitCode.Success) +} diff --git a/cats-effects/src/main/scala/com/baeldung/scala/ioapp/SimpleIOApp.scala b/cats-effects/src/main/scala/com/baeldung/scala/ioapp/SimpleIOApp.scala new file mode 100644 index 000000000..706b59f7d --- /dev/null +++ b/cats-effects/src/main/scala/com/baeldung/scala/ioapp/SimpleIOApp.scala @@ -0,0 +1,9 @@ +package com.baeldung.scala.ioapp + +import cats.effect.{IO, IOApp} + +object SimpleIOApp extends IOApp.Simple { + val run: IO[Unit] = { + IO.println("Running with simple app") + } +} From b3826d38239b125365833a10d498c0ee8390a3a3 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 5 Feb 2025 00:19:28 +0000 Subject: [PATCH 1016/1318] Update c3p0 from 0.10.1 to 0.10.2 --- scalatra/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scalatra/build.sbt b/scalatra/build.sbt index 9c8d55ff5..530e37426 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -16,7 +16,7 @@ libraryDependencies ++= Seq( "org.json4s" %% "json4s-jackson" % "4.0.7", "com.typesafe.slick" %% "slick" % "3.5.2", "com.h2database" % "h2" % "2.1.214", - "com.mchange" % "c3p0" % "0.10.1" + "com.mchange" % "c3p0" % "0.10.2" ) libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always enablePlugins(SbtTwirl) From 12e4037a2c5449503e2cdd7b3da4c0b05836a30f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 5 Feb 2025 00:19:48 +0000 Subject: [PATCH 1017/1318] Update zio-json from 0.7.8 to 0.7.14 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index a21a589a2..6d71c14fc 100644 --- a/build.sbt +++ b/build.sbt @@ -696,7 +696,7 @@ lazy val cats_effects = (project in file("cats-effects")) libraryDependencies += "junit" % "junit" % "4.13.2" % Test ) -val zioJsonDep = "dev.zio" %% "zio-json" % "0.7.8" +val zioJsonDep = "dev.zio" %% "zio-json" % "0.7.14" val zioTestSbt = "dev.zio" %% "zio-test-sbt" % zioVersion % Test lazy val zio = (project in file("zio")) @@ -718,7 +718,7 @@ lazy val zio2 = (project in file("zio-2")) name := "zio-2", scalaVersion := scala3Version, libraryDependencies += "dev.zio" %% "zio" % zioVersion, - libraryDependencies += "dev.zio" %% "zio-json" % "0.7.8", + libraryDependencies += "dev.zio" %% "zio-json" % "0.7.14", libraryDependencies += "dev.zio" %% "zio-test" % zioVersion % Test, libraryDependencies += "dev.zio" %% "zio-test-sbt" % zioVersion % Test, libraryDependencies += "dev.zio" %% "zio-logging" % "2.1.17", From 3bc2f0a47da6b81862704b5b268985dd860792e7 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 5 Feb 2025 00:20:08 +0000 Subject: [PATCH 1018/1318] Update chimney from 1.7.0 to 1.7.2 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a21a589a2..b8c8a8470 100644 --- a/build.sbt +++ b/build.sbt @@ -480,7 +480,7 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps .map(_.withConfigurations(Some("it,test"))), - libraryDependencies += "io.scalaland" %% "chimney" % "1.7.0", + libraryDependencies += "io.scalaland" %% "chimney" % "1.7.2", Defaults.itSettings ) From 06dcb632f1db450a363abe8f2b8a451cc9686ee5 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 5 Feb 2025 00:20:30 +0000 Subject: [PATCH 1019/1318] Update joda-time from 2.13.0 to 2.13.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a21a589a2..cfd0eeb69 100644 --- a/build.sbt +++ b/build.sbt @@ -183,7 +183,7 @@ lazy val scala_core_dates = name := "scala-core-dates", scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps, - libraryDependencies += "joda-time" % "joda-time" % "2.13.0", + libraryDependencies += "joda-time" % "joda-time" % "2.13.1", libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "3.0.0", libraryDependencies += "com.typesafe" % "config" % "1.4.3" ) From 37d737d49196bd6c727d24ac8c02fa6fbc6c7729 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 5 Feb 2025 00:20:49 +0000 Subject: [PATCH 1020/1318] Update s3, sqs from 2.30.7 to 2.30.13 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index a21a589a2..5e64ac5cf 100644 --- a/build.sbt +++ b/build.sbt @@ -468,7 +468,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.11" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.30.7" + "software.amazon.awssdk" % "sqs" % "2.30.13" ), Defaults.itSettings ) @@ -592,7 +592,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.780" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.30.7" + "software.amazon.awssdk" % "s3" % "2.30.13" ), Defaults.itSettings, IntegrationTest / fork := true From c7fe2baf12fe5aa38ca1ffc7857665b1f48cf794 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 13 Feb 2025 00:17:38 +0000 Subject: [PATCH 1021/1318] Update aws-java-sdk-s3 from 1.12.780 to 1.12.781 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ed64f55c2..a9a34fc73 100644 --- a/build.sbt +++ b/build.sbt @@ -589,7 +589,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) scalaMock, "com.lihaoyi" %% "utest" % "0.8.5" % "test", munitDep, - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.780" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.781" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.30.13" From 6eba4619988250db1420ef0d0ebd4e454a79d775 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 13 Feb 2025 00:18:08 +0000 Subject: [PATCH 1022/1318] Update tapir-akka-http-server, tapir-core, ... from 1.11.13 to 1.11.14 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index 74f494df8..f7be03c82 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.11.13" +val tapirV = "1.11.14" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From ddb41eff2da704d78a5e7e843466cd20c235e4db Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 13 Feb 2025 00:18:36 +0000 Subject: [PATCH 1023/1318] Update zio, zio-streams, zio-test, ... from 2.1.14 to 2.1.15 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ed64f55c2..d4937964d 100644 --- a/build.sbt +++ b/build.sbt @@ -21,7 +21,7 @@ val scalaTestDeps = Seq( ) val scalaMock = "org.scalamock" %% "scalamock" % "6.1.1" % Test -val zioVersion = "2.1.14" +val zioVersion = "2.1.15" lazy val scala_core = (project in file("scala-core-modules/scala-core")) .settings( From 15a785956a2dfc8c99d26f353fd668b3c615745b Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 13 Feb 2025 00:19:23 +0000 Subject: [PATCH 1024/1318] Update zio-prelude from 1.0.0-RC23 to 1.0.0-RC39 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ed64f55c2..2ed4f23f8 100644 --- a/build.sbt +++ b/build.sbt @@ -708,7 +708,7 @@ lazy val zio = (project in file("zio")) libraryDependencies += zioTestSbt, libraryDependencies += "dev.zio" %% "zio-kafka" % "2.10.0", libraryDependencies += zioJsonDep, - libraryDependencies += "dev.zio" %% "zio-prelude" % "1.0.0-RC23", + libraryDependencies += "dev.zio" %% "zio-prelude" % "1.0.0-RC39", libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.19" % Test, testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework") ) From c27e8db0f86847c119b20bdb07410df287b03aa5 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 13 Feb 2025 00:19:45 +0000 Subject: [PATCH 1025/1318] Update kafka-avro-serializer from 7.8.0 to 7.8.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ed64f55c2..c49285d09 100644 --- a/build.sbt +++ b/build.sbt @@ -552,7 +552,7 @@ val jackSonVersion = "2.18.2" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" -val kafkaAvroSerializer = "7.8.0" +val kafkaAvroSerializer = "7.8.1" val pureConfigDep = "com.github.pureconfig" %% "pureconfig" % pureconfigVersion From f0847b5224b10a7b16d52d2a3513c9b48c1b1d42 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 13 Feb 2025 00:20:12 +0000 Subject: [PATCH 1026/1318] Update chimney from 1.7.2 to 1.7.3 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ed64f55c2..b6ce30f82 100644 --- a/build.sbt +++ b/build.sbt @@ -480,7 +480,7 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps .map(_.withConfigurations(Some("it,test"))), - libraryDependencies += "io.scalaland" %% "chimney" % "1.7.2", + libraryDependencies += "io.scalaland" %% "chimney" % "1.7.3", Defaults.itSettings ) From 3b0b6235153a01adeb586c350447c5fb4600fa9b Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 13 Feb 2025 00:20:36 +0000 Subject: [PATCH 1027/1318] Update kafka-clients from 7.8.0-ce to 7.8.1-ce --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ed64f55c2..d8e79c092 100644 --- a/build.sbt +++ b/build.sbt @@ -546,7 +546,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) ) val spireVersion = "0.18.0" -val kafkaVersion = "7.8.0-ce" +val kafkaVersion = "7.8.1-ce" val pureconfigVersion = "0.17.8" val jackSonVersion = "2.18.2" val log4jApiScalaVersion = "13.1.0" From db4d183e9091958c2ae4901cc073387899fcea63 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 13 Feb 2025 00:20:47 +0000 Subject: [PATCH 1028/1318] Update reactivemongo-akkastream from 1.1.0-RC14 to 1.1.0-RC15 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ed64f55c2..748a8a056 100644 --- a/build.sbt +++ b/build.sbt @@ -360,7 +360,7 @@ val slickVersion = "3.5.2" val shapelessVersion = "2.3.12" val scalazVersion = "7.3.8" val fs2Version = "3.11.0" -val reactiveMongo = "1.1.0-RC14" +val reactiveMongo = "1.1.0-RC15" val slickPgVersion = "0.22.2" val scalaTestContainersVersion = "0.41.8" val postgresqlVersion = "42.7.5" From cf880006dd657d5ba2392af535c091b8143b8862 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 13 Feb 2025 00:20:58 +0000 Subject: [PATCH 1029/1318] Update scalamock from 6.1.1 to 6.2.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ed64f55c2..b1b00f262 100644 --- a/build.sbt +++ b/build.sbt @@ -20,7 +20,7 @@ val scalaTestDeps = Seq( "org.scalatest" %% "scalatest-flatspec" % "3.2.19" % Test ) -val scalaMock = "org.scalamock" %% "scalamock" % "6.1.1" % Test +val scalaMock = "org.scalamock" %% "scalamock" % "6.2.0" % Test val zioVersion = "2.1.14" lazy val scala_core = (project in file("scala-core-modules/scala-core")) From 05f6b9b9e35c50a485c58b6bb38ff8d93e6ac63d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 14 Feb 2025 00:19:38 +0000 Subject: [PATCH 1030/1318] Update zio-json from 0.7.14 to 0.7.20 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index ed64f55c2..659e30ce4 100644 --- a/build.sbt +++ b/build.sbt @@ -696,7 +696,7 @@ lazy val cats_effects = (project in file("cats-effects")) libraryDependencies += "junit" % "junit" % "4.13.2" % Test ) -val zioJsonDep = "dev.zio" %% "zio-json" % "0.7.14" +val zioJsonDep = "dev.zio" %% "zio-json" % "0.7.20" val zioTestSbt = "dev.zio" %% "zio-test-sbt" % zioVersion % Test lazy val zio = (project in file("zio")) @@ -718,7 +718,7 @@ lazy val zio2 = (project in file("zio-2")) name := "zio-2", scalaVersion := scala3Version, libraryDependencies += "dev.zio" %% "zio" % zioVersion, - libraryDependencies += "dev.zio" %% "zio-json" % "0.7.14", + libraryDependencies += "dev.zio" %% "zio-json" % "0.7.20", libraryDependencies += "dev.zio" %% "zio-test" % zioVersion % Test, libraryDependencies += "dev.zio" %% "zio-test-sbt" % zioVersion % Test, libraryDependencies += "dev.zio" %% "zio-logging" % "2.1.17", From 02f63b6e4a5ea3e0201a0b09556771f70139f84c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 14 Feb 2025 00:20:07 +0000 Subject: [PATCH 1031/1318] Update s3, sqs from 2.30.13 to 2.30.20 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index ed64f55c2..e9867ea86 100644 --- a/build.sbt +++ b/build.sbt @@ -468,7 +468,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.11" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.30.13" + "software.amazon.awssdk" % "sqs" % "2.30.20" ), Defaults.itSettings ) @@ -592,7 +592,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.780" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.30.13" + "software.amazon.awssdk" % "s3" % "2.30.20" ), Defaults.itSettings, IntegrationTest / fork := true From b7c5cb54872a2e47f0cb7120333f655167eb6aac Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 22 Feb 2025 00:19:16 +0000 Subject: [PATCH 1032/1318] Update aws-java-sdk-s3 from 1.12.781 to 1.12.782 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index b3473bae7..da6fa1025 100644 --- a/build.sbt +++ b/build.sbt @@ -589,7 +589,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) scalaMock, "com.lihaoyi" %% "utest" % "0.8.5" % "test", munitDep, - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.781" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.782" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.30.20" From 551c69ab5629c83b816f953721ad7a1ce5b6123b Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 22 Feb 2025 00:19:29 +0000 Subject: [PATCH 1033/1318] Update os-lib from 0.11.3 to 0.11.4 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index b3473bae7..f086baf0b 100644 --- a/build.sbt +++ b/build.sbt @@ -486,7 +486,7 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) val http4sBlaze = "0.23.17" val http4sVersion = "0.23.30" -val osLibVersion = "0.11.3" +val osLibVersion = "0.11.4" val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion From 359ddcb32dded54a84c2d2bd1c00f25fd5447abf Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 22 Feb 2025 00:20:24 +0000 Subject: [PATCH 1034/1318] Update tapir-akka-http-server, tapir-core, ... from 1.11.14 to 1.11.15 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index f7be03c82..f3b0da3cc 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.11.14" +val tapirV = "1.11.15" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From 800d166593c09202035e026c34d88051674985dc Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 22 Feb 2025 00:20:57 +0000 Subject: [PATCH 1035/1318] Update zio-json from 0.7.20 to 0.7.26 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index b3473bae7..3fff5cb1c 100644 --- a/build.sbt +++ b/build.sbt @@ -696,7 +696,7 @@ lazy val cats_effects = (project in file("cats-effects")) libraryDependencies += "junit" % "junit" % "4.13.2" % Test ) -val zioJsonDep = "dev.zio" %% "zio-json" % "0.7.20" +val zioJsonDep = "dev.zio" %% "zio-json" % "0.7.26" val zioTestSbt = "dev.zio" %% "zio-test-sbt" % zioVersion % Test lazy val zio = (project in file("zio")) @@ -718,7 +718,7 @@ lazy val zio2 = (project in file("zio-2")) name := "zio-2", scalaVersion := scala3Version, libraryDependencies += "dev.zio" %% "zio" % zioVersion, - libraryDependencies += "dev.zio" %% "zio-json" % "0.7.20", + libraryDependencies += "dev.zio" %% "zio-json" % "0.7.26", libraryDependencies += "dev.zio" %% "zio-test" % zioVersion % Test, libraryDependencies += "dev.zio" %% "zio-test-sbt" % zioVersion % Test, libraryDependencies += "dev.zio" %% "zio-logging" % "2.1.17", From fe16e75bfc1c49e90a3a95b8e1a44fe3ed4d4b3e Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 22 Feb 2025 00:21:27 +0000 Subject: [PATCH 1036/1318] Update zio-kafka from 2.10.0 to 2.11.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index b3473bae7..cfd33fda4 100644 --- a/build.sbt +++ b/build.sbt @@ -706,7 +706,7 @@ lazy val zio = (project in file("zio")) libraryDependencies += "dev.zio" %% "zio" % zioVersion, libraryDependencies += "dev.zio" %% "zio-streams" % zioVersion, libraryDependencies += zioTestSbt, - libraryDependencies += "dev.zio" %% "zio-kafka" % "2.10.0", + libraryDependencies += "dev.zio" %% "zio-kafka" % "2.11.0", libraryDependencies += zioJsonDep, libraryDependencies += "dev.zio" %% "zio-prelude" % "1.0.0-RC39", libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.19" % Test, From 5a253e239f7c6bbccda7e61a096543cbaeb39d3d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 22 Feb 2025 00:21:57 +0000 Subject: [PATCH 1037/1318] Update kafka-avro-serializer from 7.8.1 to 7.9.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index b3473bae7..9633c63c1 100644 --- a/build.sbt +++ b/build.sbt @@ -552,7 +552,7 @@ val jackSonVersion = "2.18.2" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" -val kafkaAvroSerializer = "7.8.1" +val kafkaAvroSerializer = "7.9.0" val pureConfigDep = "com.github.pureconfig" %% "pureconfig" % pureconfigVersion From fd54648302ddc05382599d76d0fe115228626295 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 22 Feb 2025 00:22:33 +0000 Subject: [PATCH 1038/1318] Update kafka-clients from 7.8.1-ce to 7.9.0-ce --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index b3473bae7..a14270f36 100644 --- a/build.sbt +++ b/build.sbt @@ -546,7 +546,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) ) val spireVersion = "0.18.0" -val kafkaVersion = "7.8.1-ce" +val kafkaVersion = "7.9.0-ce" val pureconfigVersion = "0.17.8" val jackSonVersion = "2.18.2" val log4jApiScalaVersion = "13.1.0" From b38bcb690c6e4c5f2801fcbe4a3eb6f3d6c7b80e Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 22 Feb 2025 00:23:14 +0000 Subject: [PATCH 1039/1318] Update pulsar from 1.20.4 to 1.20.5 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index b3473bae7..4c6993761 100644 --- a/build.sbt +++ b/build.sbt @@ -396,7 +396,7 @@ lazy val scala2_libraries = "org.scala-lang.modules" %% "scala-async" % "1.0.1", "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.10.0", "com.clever-cloud.pulsar4s" %% "pulsar4s-jackson" % "2.10.0", - "org.testcontainers" % "pulsar" % "1.20.4" % IntegrationTest, + "org.testcontainers" % "pulsar" % "1.20.5" % IntegrationTest, "org.apache.kafka" % "kafka-clients" % kafkaVersion, "com.fasterxml.jackson.core" % "jackson-databind" % jackSonVersion, "com.fasterxml.jackson.datatype" % "jackson-datatype-jsr310" % jackSonVersion, From a51e3e17c9a92d5373799d65cce79df8384002ea Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 22 Feb 2025 00:23:42 +0000 Subject: [PATCH 1040/1318] Update s3, sqs from 2.30.20 to 2.30.26 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index b3473bae7..c541a1865 100644 --- a/build.sbt +++ b/build.sbt @@ -468,7 +468,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.11" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.30.20" + "software.amazon.awssdk" % "sqs" % "2.30.26" ), Defaults.itSettings ) @@ -592,7 +592,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.781" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.30.20" + "software.amazon.awssdk" % "s3" % "2.30.26" ), Defaults.itSettings, IntegrationTest / fork := true From 6f05bf584cbd061baf2724d73d8ed616318c6ea9 Mon Sep 17 00:00:00 2001 From: Camoflasche Date: Tue, 25 Feb 2025 14:42:22 +0100 Subject: [PATCH 1041/1318] Fixes error in SequenceApp.scala The old version does not run printTaskSequence. That way nothing is printed. --- .../main/scala/com/baeldung/scala/catseffects/SequenceApp.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cats-effects/src/main/scala/com/baeldung/scala/catseffects/SequenceApp.scala b/cats-effects/src/main/scala/com/baeldung/scala/catseffects/SequenceApp.scala index 5ef90977d..e74cf2d67 100644 --- a/cats-effects/src/main/scala/com/baeldung/scala/catseffects/SequenceApp.scala +++ b/cats-effects/src/main/scala/com/baeldung/scala/catseffects/SequenceApp.scala @@ -12,5 +12,5 @@ object SequenceApp extends IOApp { sequenceAllTasks.map(_.mkString(", ")).flatMap(putStr) override def run(args: List[String]): IO[ExitCode] = - sequenceAllTasks.as(ExitCode.Success) + printTaskSequence.as(ExitCode.Success) } From 23c5a71e71f1b03b11287b452f299a8fa72fd8f2 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 2 Mar 2025 00:19:42 +0000 Subject: [PATCH 1042/1318] Update logback-classic from 1.5.16 to 1.5.17 --- build.sbt | 2 +- scalatra/build.sbt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 4a9acb533..af525cff4 100644 --- a/build.sbt +++ b/build.sbt @@ -7,7 +7,7 @@ val jUnitInterface = "com.github.sbt" % "junit-interface" % "0.13.3" % "test" val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.7" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.7" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV -val logback = "ch.qos.logback" % "logback-classic" % "1.5.16" +val logback = "ch.qos.logback" % "logback-classic" % "1.5.17" val embedMongoVersion = "4.18.1" val AkkaVersion = "2.9.3" val AlpakkaVersion = "8.0.0" diff --git a/scalatra/build.sbt b/scalatra/build.sbt index 530e37426..8a49aff2b 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -8,7 +8,7 @@ version := "0.1.0-SNAPSHOT" libraryDependencies ++= Seq( "org.scalatra" %% "scalatra" % ScalatraVersion, "org.scalatra" %% "scalatra-scalatest" % ScalatraVersion % "test", - "ch.qos.logback" % "logback-classic" % "1.5.16" % "runtime", + "ch.qos.logback" % "logback-classic" % "1.5.17" % "runtime", "org.eclipse.jetty" % "jetty-webapp" % "11.0.24" % "container", "javax.servlet" % "javax.servlet-api" % "4.0.1" % "provided", "org.scalatra" %% "scalatra-auth" % ScalatraVersion, From 41f8d45b00686d9f2d5b4c860f1c01a15b9f588c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 2 Mar 2025 00:20:08 +0000 Subject: [PATCH 1043/1318] Update jackson-databind from 2.18.2 to 2.18.3 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 4a9acb533..d23f16993 100644 --- a/build.sbt +++ b/build.sbt @@ -548,7 +548,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) val spireVersion = "0.18.0" val kafkaVersion = "7.9.0-ce" val pureconfigVersion = "0.17.8" -val jackSonVersion = "2.18.2" +val jackSonVersion = "2.18.3" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" From e90f182483d17491404203a5fdd3f85e341d8656 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 2 Mar 2025 00:20:35 +0000 Subject: [PATCH 1044/1318] Update jackson-datatype-jsr310 from 2.18.2 to 2.18.3 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 4a9acb533..d23f16993 100644 --- a/build.sbt +++ b/build.sbt @@ -548,7 +548,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) val spireVersion = "0.18.0" val kafkaVersion = "7.9.0-ce" val pureconfigVersion = "0.17.8" -val jackSonVersion = "2.18.2" +val jackSonVersion = "2.18.3" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" From a4e4fe4fe976cec70b5cd3cfbff44f588a625ba5 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 2 Mar 2025 00:21:00 +0000 Subject: [PATCH 1045/1318] Update jackson-module-scala from 2.18.2 to 2.18.3 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 4a9acb533..d23f16993 100644 --- a/build.sbt +++ b/build.sbt @@ -548,7 +548,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) val spireVersion = "0.18.0" val kafkaVersion = "7.9.0-ce" val pureconfigVersion = "0.17.8" -val jackSonVersion = "2.18.2" +val jackSonVersion = "2.18.3" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" From 816449c9fd243d2a690afefac5c854e68a4c5e05 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 2 Mar 2025 00:21:49 +0000 Subject: [PATCH 1046/1318] Update zio, zio-streams, zio-test, ... from 2.1.15 to 2.1.16 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 4a9acb533..26abf87a2 100644 --- a/build.sbt +++ b/build.sbt @@ -21,7 +21,7 @@ val scalaTestDeps = Seq( ) val scalaMock = "org.scalamock" %% "scalamock" % "6.2.0" % Test -val zioVersion = "2.1.15" +val zioVersion = "2.1.16" lazy val scala_core = (project in file("scala-core-modules/scala-core")) .settings( From 1c0e8b145fbc70cab1980ef363b8d87888a689b0 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 2 Mar 2025 00:23:03 +0000 Subject: [PATCH 1047/1318] Update spark-core, spark-sql from 3.5.4 to 3.5.5 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 4a9acb533..79f29e34a 100644 --- a/build.sbt +++ b/build.sbt @@ -416,7 +416,7 @@ lazy val scala2_libraries = val circeVersion = "0.14.10" val monixVersion = "3.4.1" -val sparkVersion = "3.5.4" +val sparkVersion = "3.5.5" val elastic4sVersion = "8.16.0" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion From 40db75fdce95a32ee48c46036bf9f17fa2644dd7 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 2 Mar 2025 00:23:13 +0000 Subject: [PATCH 1048/1318] Update sbt-twirl, twirl-api from 2.0.7 to 2.0.8 --- scalatra/project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scalatra/project/plugins.sbt b/scalatra/project/plugins.sbt index 228825549..d109fd867 100644 --- a/scalatra/project/plugins.sbt +++ b/scalatra/project/plugins.sbt @@ -1,4 +1,4 @@ -addSbtPlugin("org.playframework.twirl" % "sbt-twirl" % "2.0.7") +addSbtPlugin("org.playframework.twirl" % "sbt-twirl" % "2.0.8") addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "4.2.5") From add4adba69279d84a542ec6920b305f2afed0bc7 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 2 Mar 2025 00:23:34 +0000 Subject: [PATCH 1049/1318] Update sbt-scala-native from 0.5.6 to 0.5.7 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index d0c76ca87..df1187055 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,6 +1,6 @@ addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.4") -addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.6") +addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.7") addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.18.2") addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.2.1") From 92aa5777fda92f9e8331ea55f1291de7c51966f8 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 2 Mar 2025 00:23:57 +0000 Subject: [PATCH 1050/1318] Update slf4j-api, slf4j-simple from 2.0.16 to 2.0.17 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 4a9acb533..6af1a12c1 100644 --- a/build.sbt +++ b/build.sbt @@ -346,8 +346,8 @@ lazy val scala_akka_3 = (project in file("scala-akka-3")) libraryDependencies ++= Seq( "com.typesafe.akka" %% "akka-stream" % AkkaVersion, "com.typesafe.akka" %% "akka-discovery" % AkkaVersion, - "org.slf4j" % "slf4j-api" % "2.0.16", - "org.slf4j" % "slf4j-simple" % "2.0.16", + "org.slf4j" % "slf4j-api" % "2.0.17", + "org.slf4j" % "slf4j-simple" % "2.0.17", "com.typesafe.akka" %% "akka-stream-testkit" % AkkaVersion % Test, akkaActorTyped, akkaStreamDep, From 19139ff59467c057ddc24fc2927a9cd3b2c611a1 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 10 Mar 2025 00:16:31 +0000 Subject: [PATCH 1051/1318] Update shapeless from 2.3.12 to 2.3.13 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 4a9acb533..bdae782f3 100644 --- a/build.sbt +++ b/build.sbt @@ -357,7 +357,7 @@ lazy val scala_akka_3 = (project in file("scala-akka-3")) val monocleVersion = "2.1.0" val slickVersion = "3.5.2" -val shapelessVersion = "2.3.12" +val shapelessVersion = "2.3.13" val scalazVersion = "7.3.8" val fs2Version = "3.11.0" val reactiveMongo = "1.1.0-RC15" From 8909d70e94e696983e1f4e5456373e83df370118 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 10 Mar 2025 00:17:02 +0000 Subject: [PATCH 1052/1318] Update tapir-akka-http-server, tapir-core, ... from 1.11.15 to 1.11.17 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index f3b0da3cc..58c94687a 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.11.15" +val tapirV = "1.11.17" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From 38db97ef5ba5c881f8cefb90dd2bd93e70248c41 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 10 Mar 2025 00:17:43 +0000 Subject: [PATCH 1053/1318] Update zio-json from 0.7.26 to 0.7.39 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 4a9acb533..fe581d266 100644 --- a/build.sbt +++ b/build.sbt @@ -696,7 +696,7 @@ lazy val cats_effects = (project in file("cats-effects")) libraryDependencies += "junit" % "junit" % "4.13.2" % Test ) -val zioJsonDep = "dev.zio" %% "zio-json" % "0.7.26" +val zioJsonDep = "dev.zio" %% "zio-json" % "0.7.39" val zioTestSbt = "dev.zio" %% "zio-test-sbt" % zioVersion % Test lazy val zio = (project in file("zio")) @@ -718,7 +718,7 @@ lazy val zio2 = (project in file("zio-2")) name := "zio-2", scalaVersion := scala3Version, libraryDependencies += "dev.zio" %% "zio" % zioVersion, - libraryDependencies += "dev.zio" %% "zio-json" % "0.7.26", + libraryDependencies += "dev.zio" %% "zio-json" % "0.7.39", libraryDependencies += "dev.zio" %% "zio-test" % zioVersion % Test, libraryDependencies += "dev.zio" %% "zio-test-sbt" % zioVersion % Test, libraryDependencies += "dev.zio" %% "zio-logging" % "2.1.17", From faec93ad702ab55dbcf67f377d4808dd964887ec Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 10 Mar 2025 00:18:18 +0000 Subject: [PATCH 1054/1318] Update mockito-core from 5.15.2 to 5.16.0 --- play-scala/caching-in-play/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/play-scala/caching-in-play/build.sbt b/play-scala/caching-in-play/build.sbt index f2360596d..5c65e9484 100644 --- a/play-scala/caching-in-play/build.sbt +++ b/play-scala/caching-in-play/build.sbt @@ -11,6 +11,6 @@ libraryDependencies += guice libraryDependencies += caffeine libraryDependencies += ws libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % LibraryVersions.scalatestPlayVersion % Test -libraryDependencies += "org.mockito" % "mockito-core" % "5.15.2" % Test +libraryDependencies += "org.mockito" % "mockito-core" % "5.16.0" % Test PlayKeys.devSettings += "play.server.http.port" -> "9000" From 6ac1a651d4d5dc8d522d942670ec075edc8b307d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 10 Mar 2025 00:18:48 +0000 Subject: [PATCH 1055/1318] Update scala3-library from 3.6.3 to 3.6.4 --- project/ScalaVersions.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/ScalaVersions.scala b/project/ScalaVersions.scala index ad82625a8..6daf00ef3 100644 --- a/project/ScalaVersions.scala +++ b/project/ScalaVersions.scala @@ -1,6 +1,6 @@ object ScalaVersions { val scala2Version = "2.13.16" - val scala3Version = "3.6.3" + val scala3Version = "3.6.4" @deprecated( "Use Scala 2.13 or Scala 3. Don't use 2.12 unless it is a specific feature in 2.12." ) From 57a45f5b7b00a3b84ceb64060431d135d558a7e4 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 10 Mar 2025 00:19:17 +0000 Subject: [PATCH 1056/1318] Update sbt, scripted-plugin from 1.10.7 to 1.10.10 --- project/build.properties | 2 +- sbt-release/project/build.properties | 2 +- sbt-standalone/project/build.properties | 2 +- scala-gatling/project/build.properties | 2 +- scala-graalvm/scala-graalvm-http-app/project/build.properties | 2 +- scala-sbt/intro-to-sbt/project/build.properties | 2 +- scala-sbt/scalafix/project/build.properties | 2 +- scalatra/project/build.properties | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/project/build.properties b/project/build.properties index 8fc29878c..1b8083842 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1,2 +1,2 @@ -sbt.version=1.10.7 +sbt.version=1.10.10 diff --git a/sbt-release/project/build.properties b/sbt-release/project/build.properties index fe69360b7..7f28078b7 100644 --- a/sbt-release/project/build.properties +++ b/sbt-release/project/build.properties @@ -1 +1 @@ -sbt.version = 1.10.7 +sbt.version = 1.10.10 diff --git a/sbt-standalone/project/build.properties b/sbt-standalone/project/build.properties index 73df629ac..e97b27220 100644 --- a/sbt-standalone/project/build.properties +++ b/sbt-standalone/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.7 +sbt.version=1.10.10 diff --git a/scala-gatling/project/build.properties b/scala-gatling/project/build.properties index 73df629ac..e97b27220 100644 --- a/scala-gatling/project/build.properties +++ b/scala-gatling/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.7 +sbt.version=1.10.10 diff --git a/scala-graalvm/scala-graalvm-http-app/project/build.properties b/scala-graalvm/scala-graalvm-http-app/project/build.properties index 73df629ac..e97b27220 100644 --- a/scala-graalvm/scala-graalvm-http-app/project/build.properties +++ b/scala-graalvm/scala-graalvm-http-app/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.7 +sbt.version=1.10.10 diff --git a/scala-sbt/intro-to-sbt/project/build.properties b/scala-sbt/intro-to-sbt/project/build.properties index 73df629ac..e97b27220 100644 --- a/scala-sbt/intro-to-sbt/project/build.properties +++ b/scala-sbt/intro-to-sbt/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.7 +sbt.version=1.10.10 diff --git a/scala-sbt/scalafix/project/build.properties b/scala-sbt/scalafix/project/build.properties index 0a832a2de..e33f4dab9 100644 --- a/scala-sbt/scalafix/project/build.properties +++ b/scala-sbt/scalafix/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.7 \ No newline at end of file +sbt.version=1.10.10 \ No newline at end of file diff --git a/scalatra/project/build.properties b/scalatra/project/build.properties index 73df629ac..e97b27220 100644 --- a/scalatra/project/build.properties +++ b/scalatra/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.7 +sbt.version=1.10.10 From cfa44ca9468fba91c11616b71024f72ac2686174 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 10 Mar 2025 00:19:49 +0000 Subject: [PATCH 1057/1318] Update pulsar from 1.20.5 to 1.20.6 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 4a9acb533..061026230 100644 --- a/build.sbt +++ b/build.sbt @@ -396,7 +396,7 @@ lazy val scala2_libraries = "org.scala-lang.modules" %% "scala-async" % "1.0.1", "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.10.0", "com.clever-cloud.pulsar4s" %% "pulsar4s-jackson" % "2.10.0", - "org.testcontainers" % "pulsar" % "1.20.5" % IntegrationTest, + "org.testcontainers" % "pulsar" % "1.20.6" % IntegrationTest, "org.apache.kafka" % "kafka-clients" % kafkaVersion, "com.fasterxml.jackson.core" % "jackson-databind" % jackSonVersion, "com.fasterxml.jackson.datatype" % "jackson-datatype-jsr310" % jackSonVersion, From d0bb0f4fd41dd238bbdb508a90983e5481a60569 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 10 Mar 2025 00:20:22 +0000 Subject: [PATCH 1058/1318] Update s3, sqs from 2.30.26 to 2.30.36 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 4a9acb533..60833cbf2 100644 --- a/build.sbt +++ b/build.sbt @@ -468,7 +468,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.11" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.30.26" + "software.amazon.awssdk" % "sqs" % "2.30.36" ), Defaults.itSettings ) @@ -592,7 +592,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.782" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.30.26" + "software.amazon.awssdk" % "s3" % "2.30.36" ), Defaults.itSettings, IntegrationTest / fork := true From 97abe22e97aa337fd277e4387242df9fbde104d8 Mon Sep 17 00:00:00 2001 From: Manolis Varvarigos Date: Fri, 14 Mar 2025 22:59:28 +0200 Subject: [PATCH 1059/1318] SCALA-268 (#1760) * SCALA-268 Scala CSV Read/Write * Naming convention fixed --- build.sbt | 6 +- .../src/main/resources/persons.csv | 4 + .../csv/reader/ApacheCommonsCSVReader.scala | 24 +++++ .../com/baeldung/csv/reader/CSVReaders.scala | 23 +++++ .../reader/CommaSeparatedValuesReader.scala | 10 +++ .../baeldung/csv/reader/OpenCSVReader.scala | 35 ++++++++ .../baeldung/csv/reader/ScalaCSVReader.scala | 15 ++++ .../baeldung/csv/reader/SimpleCSVReader.scala | 36 ++++++++ .../csv/writer/ApacheCommonsCSVWriter.scala | 25 ++++++ .../writer/CommaSeparatedValuesWriter.scala | 14 +++ .../com/baeldung/csv/writer/CsvWriters.scala | 51 +++++++++++ .../baeldung/csv/writer/OpenCSVWriter.scala | 26 ++++++ .../baeldung/csv/writer/ScalaCSVWriter.scala | 20 +++++ .../baeldung/csv/writer/SimpleCSVWriter.scala | 19 ++++ .../csv/reader/ScalaCSVReadersUnitTest.scala | 63 +++++++++++++ .../csv/writer/ScalaCSVWritersUnitTest.scala | 88 +++++++++++++++++++ 16 files changed, 458 insertions(+), 1 deletion(-) create mode 100644 scala-libraries/src/main/resources/persons.csv create mode 100644 scala-libraries/src/main/scala/com/baeldung/csv/reader/ApacheCommonsCSVReader.scala create mode 100644 scala-libraries/src/main/scala/com/baeldung/csv/reader/CSVReaders.scala create mode 100644 scala-libraries/src/main/scala/com/baeldung/csv/reader/CommaSeparatedValuesReader.scala create mode 100644 scala-libraries/src/main/scala/com/baeldung/csv/reader/OpenCSVReader.scala create mode 100644 scala-libraries/src/main/scala/com/baeldung/csv/reader/ScalaCSVReader.scala create mode 100644 scala-libraries/src/main/scala/com/baeldung/csv/reader/SimpleCSVReader.scala create mode 100644 scala-libraries/src/main/scala/com/baeldung/csv/writer/ApacheCommonsCSVWriter.scala create mode 100644 scala-libraries/src/main/scala/com/baeldung/csv/writer/CommaSeparatedValuesWriter.scala create mode 100644 scala-libraries/src/main/scala/com/baeldung/csv/writer/CsvWriters.scala create mode 100644 scala-libraries/src/main/scala/com/baeldung/csv/writer/OpenCSVWriter.scala create mode 100644 scala-libraries/src/main/scala/com/baeldung/csv/writer/ScalaCSVWriter.scala create mode 100644 scala-libraries/src/main/scala/com/baeldung/csv/writer/SimpleCSVWriter.scala create mode 100644 scala-libraries/src/test/scala/com/baeldung/csv/reader/ScalaCSVReadersUnitTest.scala create mode 100644 scala-libraries/src/test/scala/com/baeldung/csv/writer/ScalaCSVWritersUnitTest.scala diff --git a/build.sbt b/build.sbt index 6b510041d..a77344b2c 100644 --- a/build.sbt +++ b/build.sbt @@ -442,7 +442,11 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.apache.logging.log4j" % "log4j-core" % "2.24.3" % Runtime, "com.typesafe.scala-logging" %% "scala-logging" % "3.9.5", "software.amazon.awssdk" % "s3" % "2.25.9", - "com.github.seratch" %% "awscala" % "0.9.2" + "com.github.seratch" %% "awscala" % "0.9.2", + "com.opencsv" % "opencsv" % "5.9", + "com.github.tototoshi" %% "scala-csv" % "2.0.0", + "org.apache.commons" % "commons-csv" % "1.12.0" + ), libraryDependencies ++= Seq( "org.playframework" %% "play-slick" % LibraryVersions.playSlickVersion, diff --git a/scala-libraries/src/main/resources/persons.csv b/scala-libraries/src/main/resources/persons.csv new file mode 100644 index 000000000..164284cec --- /dev/null +++ b/scala-libraries/src/main/resources/persons.csv @@ -0,0 +1,4 @@ +id,name +1,Jim +2,Bob +3,Mary diff --git a/scala-libraries/src/main/scala/com/baeldung/csv/reader/ApacheCommonsCSVReader.scala b/scala-libraries/src/main/scala/com/baeldung/csv/reader/ApacheCommonsCSVReader.scala new file mode 100644 index 000000000..ccbf47f0d --- /dev/null +++ b/scala-libraries/src/main/scala/com/baeldung/csv/reader/ApacheCommonsCSVReader.scala @@ -0,0 +1,24 @@ +package com.baeldung.csv.reader + +import org.apache.commons.csv.CSVFormat + +import java.io.{File, FileInputStream, InputStreamReader} +import scala.jdk.CollectionConverters.IterableHasAsScala + +class ApacheCommonsCSVReader extends CommaSeparatedValuesReader { + + override def read(file: File): CSVReadDigest = { + val in = new InputStreamReader(new FileInputStream(file)) + val csvParser = CSVFormat.DEFAULT + .builder() + .setHeader() + .build() + .parse(in) + val result = CSVReadDigest( + csvParser.getHeaderNames.asScala.toSeq, + csvParser.getRecords.asScala.map(r => r.values().toSeq).toSeq + ) + csvParser.close() + result + } +} diff --git a/scala-libraries/src/main/scala/com/baeldung/csv/reader/CSVReaders.scala b/scala-libraries/src/main/scala/com/baeldung/csv/reader/CSVReaders.scala new file mode 100644 index 000000000..662b6908a --- /dev/null +++ b/scala-libraries/src/main/scala/com/baeldung/csv/reader/CSVReaders.scala @@ -0,0 +1,23 @@ +package com.baeldung.csv.reader + +import java.io.File + +object CSVReaders { + + def main(args: Array[String]): Unit = { + + val apacheCommonsCSVReader = new ApacheCommonsCSVReader + val simpleCSVReader = new SimpleCSVReader + val scalaCSVReader = new ScalaCSVReader + val openCSVReader = new OpenCSVReader + + val file = new File(getClass.getResource("/persons.csv").getFile) + + println(apacheCommonsCSVReader.read(file)) + println(simpleCSVReader.read(file)) + println(scalaCSVReader.read(file)) + println(openCSVReader.read(file)) + + } + +} diff --git a/scala-libraries/src/main/scala/com/baeldung/csv/reader/CommaSeparatedValuesReader.scala b/scala-libraries/src/main/scala/com/baeldung/csv/reader/CommaSeparatedValuesReader.scala new file mode 100644 index 000000000..0beafbc5c --- /dev/null +++ b/scala-libraries/src/main/scala/com/baeldung/csv/reader/CommaSeparatedValuesReader.scala @@ -0,0 +1,10 @@ +package com.baeldung.csv.reader + +import java.io.File + +case class CSVReadDigest(headers: Seq[String], rows: Seq[Seq[String]]) +trait CommaSeparatedValuesReader { + + def read(file: File): CSVReadDigest + +} diff --git a/scala-libraries/src/main/scala/com/baeldung/csv/reader/OpenCSVReader.scala b/scala-libraries/src/main/scala/com/baeldung/csv/reader/OpenCSVReader.scala new file mode 100644 index 000000000..521b631ec --- /dev/null +++ b/scala-libraries/src/main/scala/com/baeldung/csv/reader/OpenCSVReader.scala @@ -0,0 +1,35 @@ +package com.baeldung.csv.reader + +import com.opencsv.CSVReader + +import java.io.{File, FileInputStream, InputStreamReader} +import scala.annotation.tailrec + +class OpenCSVReader extends CommaSeparatedValuesReader { + + override def read(file: File): CSVReadDigest = { + + val reader = new CSVReader( + new InputStreamReader(new FileInputStream(file)) + ) + + @tailrec + def readLinesRecursively( + currentReader: CSVReader, + result: Seq[Seq[String]] + ): Seq[Seq[String]] = { + currentReader.readNext() match { + case null => result + case line => readLinesRecursively(currentReader, result :+ line.toSeq) + } + } + + val csvLines = readLinesRecursively(reader, List()) + reader.close() + + CSVReadDigest( + csvLines.head, + csvLines.tail + ) + } +} diff --git a/scala-libraries/src/main/scala/com/baeldung/csv/reader/ScalaCSVReader.scala b/scala-libraries/src/main/scala/com/baeldung/csv/reader/ScalaCSVReader.scala new file mode 100644 index 000000000..492a4c16c --- /dev/null +++ b/scala-libraries/src/main/scala/com/baeldung/csv/reader/ScalaCSVReader.scala @@ -0,0 +1,15 @@ +package com.baeldung.csv.reader + +import com.github.tototoshi.csv.CSVReader + +import java.io.File + +class ScalaCSVReader extends CommaSeparatedValuesReader { + + override def read(file: File): CSVReadDigest = { + val reader = CSVReader.open(file) + val all = reader.all() + reader.close() + CSVReadDigest(all.head, all.tail) + } +} diff --git a/scala-libraries/src/main/scala/com/baeldung/csv/reader/SimpleCSVReader.scala b/scala-libraries/src/main/scala/com/baeldung/csv/reader/SimpleCSVReader.scala new file mode 100644 index 000000000..d1a0b6f92 --- /dev/null +++ b/scala-libraries/src/main/scala/com/baeldung/csv/reader/SimpleCSVReader.scala @@ -0,0 +1,36 @@ +package com.baeldung.csv.reader + +import java.io.{BufferedReader, File, FileInputStream, InputStreamReader} +import scala.annotation.tailrec + +class SimpleCSVReader extends CommaSeparatedValuesReader { + + override def read(file: File): CSVReadDigest = { + val in = new InputStreamReader(new FileInputStream(file)) + val bufferedReader = new BufferedReader(in) + + @tailrec + def readLinesRecursively( + currentBufferedReader: BufferedReader, + result: Seq[Seq[String]] + ): Seq[Seq[String]] = { + currentBufferedReader.readLine() match { + case null => result + case line => + readLinesRecursively( + currentBufferedReader, + result :+ line.split(",").toSeq + ) + } + } + + val csvLines = readLinesRecursively(bufferedReader, List()) + + bufferedReader.close() + + CSVReadDigest( + csvLines.head, + csvLines.tail + ) + } +} diff --git a/scala-libraries/src/main/scala/com/baeldung/csv/writer/ApacheCommonsCSVWriter.scala b/scala-libraries/src/main/scala/com/baeldung/csv/writer/ApacheCommonsCSVWriter.scala new file mode 100644 index 000000000..57b4699a0 --- /dev/null +++ b/scala-libraries/src/main/scala/com/baeldung/csv/writer/ApacheCommonsCSVWriter.scala @@ -0,0 +1,25 @@ +package com.baeldung.csv.writer +import org.apache.commons.csv.{CSVFormat, CSVPrinter} + +import java.io.{File, FileWriter} +import scala.util.Try + +class ApacheCommonsCSVWriter extends CommaSeparatedValuesWriter { + + override def write( + file: File, + headers: Seq[String], + rows: Seq[Seq[String]] + ): Try[Unit] = Try { + + val csvFormat = CSVFormat.DEFAULT + .builder() + .setHeader(headers: _*) + .build() + + val out = new FileWriter(file) + val printer = new CSVPrinter(out, csvFormat) + rows.foreach(row => printer.printRecord(row: _*)) + printer.close() + } +} diff --git a/scala-libraries/src/main/scala/com/baeldung/csv/writer/CommaSeparatedValuesWriter.scala b/scala-libraries/src/main/scala/com/baeldung/csv/writer/CommaSeparatedValuesWriter.scala new file mode 100644 index 000000000..1c49bcc17 --- /dev/null +++ b/scala-libraries/src/main/scala/com/baeldung/csv/writer/CommaSeparatedValuesWriter.scala @@ -0,0 +1,14 @@ +package com.baeldung.csv.writer + +import java.io.File +import scala.util.Try + +trait CommaSeparatedValuesWriter { + + def write( + file: File, + headers: Seq[String], + rows: Seq[Seq[String]] + ): Try[Unit] + +} diff --git a/scala-libraries/src/main/scala/com/baeldung/csv/writer/CsvWriters.scala b/scala-libraries/src/main/scala/com/baeldung/csv/writer/CsvWriters.scala new file mode 100644 index 000000000..e6d6e92a5 --- /dev/null +++ b/scala-libraries/src/main/scala/com/baeldung/csv/writer/CsvWriters.scala @@ -0,0 +1,51 @@ +package com.baeldung.csv.writer + +import java.io.File +import scala.util.{Failure, Success, Try} + +object CsvWriters { + + def main(args: Array[String]): Unit = { + + val fileName = "foo.csv" + val headers = List("id", "name") + val rows = List( + List("1", "Manolis"), + List("2", "Thanasis"), + List("3", "Stefanos") + ) + + val simpleCSVWriter = new SimpleCSVWriter + val openCSVWriter = new OpenCSVWriter + val scalaCSVWriter = new ScalaCSVWriter + val apacheCommonsCSVWriter = new ApacheCommonsCSVWriter + + handleFailure( + simpleCSVWriter.write(new File(s"simple-$fileName"), headers, rows) + ) + handleFailure( + openCSVWriter.write(new File(s"openCSV-$fileName"), headers, rows) + ) + handleFailure( + scalaCSVWriter.write(new File(s"scalaCSV-$fileName"), headers, rows) + ) + handleFailure( + apacheCommonsCSVWriter.write( + new File(s"apacheCommons-$fileName"), + headers, + rows + ) + ) + } + + private def handleFailure(tryWrite: Try[Unit]): Unit = { + tryWrite match { + case Success(_) => + case Failure(exception) => + println( + s"Something went wrong during CSV writing: ${exception.getMessage}" + ) + } + } + +} diff --git a/scala-libraries/src/main/scala/com/baeldung/csv/writer/OpenCSVWriter.scala b/scala-libraries/src/main/scala/com/baeldung/csv/writer/OpenCSVWriter.scala new file mode 100644 index 000000000..fd36108ac --- /dev/null +++ b/scala-libraries/src/main/scala/com/baeldung/csv/writer/OpenCSVWriter.scala @@ -0,0 +1,26 @@ +package com.baeldung.csv.writer + +import com.opencsv.CSVWriter + +import java.io.{BufferedWriter, File, FileWriter} +import scala.jdk.CollectionConverters.IterableHasAsJava +import scala.util.Try + +class OpenCSVWriter extends CommaSeparatedValuesWriter { + + override def write( + file: File, + headers: Seq[String], + rows: Seq[Seq[String]] + ): Try[Unit] = Try( + new CSVWriter(new BufferedWriter(new FileWriter(file))) + ).flatMap((csvWriter: CSVWriter) => + Try { + csvWriter.writeAll( + (headers +: rows).map(_.toArray).asJava, + false + ) + csvWriter.close() + } + ) +} diff --git a/scala-libraries/src/main/scala/com/baeldung/csv/writer/ScalaCSVWriter.scala b/scala-libraries/src/main/scala/com/baeldung/csv/writer/ScalaCSVWriter.scala new file mode 100644 index 000000000..6d25b6d0c --- /dev/null +++ b/scala-libraries/src/main/scala/com/baeldung/csv/writer/ScalaCSVWriter.scala @@ -0,0 +1,20 @@ +package com.baeldung.csv.writer + +import com.github.tototoshi.csv.CSVWriter + +import java.io.File +import scala.util.Try + +class ScalaCSVWriter extends CommaSeparatedValuesWriter { + + override def write( + file: File, + headers: Seq[String], + rows: Seq[Seq[String]] + ): Try[Unit] = Try { + val writer = CSVWriter.open(file) + writer.writeRow(headers) + writer.writeAll(rows) + writer.close() + } +} diff --git a/scala-libraries/src/main/scala/com/baeldung/csv/writer/SimpleCSVWriter.scala b/scala-libraries/src/main/scala/com/baeldung/csv/writer/SimpleCSVWriter.scala new file mode 100644 index 000000000..1c0d73ff4 --- /dev/null +++ b/scala-libraries/src/main/scala/com/baeldung/csv/writer/SimpleCSVWriter.scala @@ -0,0 +1,19 @@ +package com.baeldung.csv.writer + +import java.io.{File, PrintWriter} +import scala.util.Try + +class SimpleCSVWriter extends CommaSeparatedValuesWriter { + + override def write( + file: File, + headers: Seq[String], + rows: Seq[Seq[String]] + ): Try[Unit] = Try { + val writer = new PrintWriter(file) + writer.println(headers.mkString(",")) + rows.foreach(row => writer.println(row.mkString(","))) + writer.close() + } + +} diff --git a/scala-libraries/src/test/scala/com/baeldung/csv/reader/ScalaCSVReadersUnitTest.scala b/scala-libraries/src/test/scala/com/baeldung/csv/reader/ScalaCSVReadersUnitTest.scala new file mode 100644 index 000000000..fa89a871e --- /dev/null +++ b/scala-libraries/src/test/scala/com/baeldung/csv/reader/ScalaCSVReadersUnitTest.scala @@ -0,0 +1,63 @@ +package com.baeldung.csv.reader + +import org.scalatest.matchers.should +import org.scalatest.wordspec.AnyWordSpec + +import java.io.{File, PrintWriter} +import java.nio.file.{Files, Path} +import java.util.UUID + +class ScalaCSVReadersUnitTest extends AnyWordSpec with should.Matchers { + + "SimpleCSVReader" should { + "read a csv file" in { + commonTestBody(new SimpleCSVReader, randomTmpFile().toFile) + } + } + + "ScalaCSVReader" should { + "read a csv file" in { + commonTestBody(new ScalaCSVReader, randomTmpFile().toFile) + } + } + + "OpenCSVReader" should { + "read a csv file" in { + commonTestBody(new OpenCSVReader, randomTmpFile().toFile) + } + } + + "ApacheCommonsCSVReader" should { + "read a csv file" in { + commonTestBody(new ApacheCommonsCSVReader, randomTmpFile().toFile) + } + } + + private def commonTestBody( + testee: CommaSeparatedValuesReader, + file: File + ): Unit = { + val result = testee.read(file) + assert(result.headers === List("column1", "column2")) + assert( + result.rows === List( + List("1.1", "1.2"), + List("2.1", "2.2") + ) + ) + } + + private def randomTmpFile(): Path = { + val path = Files.createTempFile( + s"persons-${UUID.randomUUID().toString.take(8)}", + "csv" + ) + val writer = new PrintWriter(path.toFile) + writer.println(List("column1", "column2").mkString(",")) + writer.println(List("1.1", "1.2").mkString(",")) + writer.println(List("2.1", "2.2").mkString(",")) + writer.close() + path + } + +} diff --git a/scala-libraries/src/test/scala/com/baeldung/csv/writer/ScalaCSVWritersUnitTest.scala b/scala-libraries/src/test/scala/com/baeldung/csv/writer/ScalaCSVWritersUnitTest.scala new file mode 100644 index 000000000..20e4b0e61 --- /dev/null +++ b/scala-libraries/src/test/scala/com/baeldung/csv/writer/ScalaCSVWritersUnitTest.scala @@ -0,0 +1,88 @@ +package com.baeldung.csv.writer + +import org.scalatest.matchers.should +import org.scalatest.wordspec.AnyWordSpec + +import java.io.{BufferedReader, File, FileInputStream, InputStreamReader} +import java.nio.file.{Files, Path} +import java.util.UUID +import scala.annotation.tailrec; + +class ScalaCSVWritersUnitTest extends AnyWordSpec with should.Matchers { + + "SimpleCSVWriter" should { + "write a csv file" in { + commonTestBody(new SimpleCSVWriter, randomTmpFile().toFile) + } + } + + "ScalaCSVWriter" should { + "write a csv file" in { + commonTestBody(new ScalaCSVWriter, randomTmpFile().toFile) + } + } + + "OpenCSVWriter" should { + "write a csv file" in { + commonTestBody(new OpenCSVWriter, randomTmpFile().toFile) + } + } + + "ApacheCommonsCSVWriter" should { + "write a csv file" in { + commonTestBody(new ApacheCommonsCSVWriter, randomTmpFile().toFile) + } + } + + private def commonTestBody( + testee: CommaSeparatedValuesWriter, + tmpFile: File + ): Unit = { + testee.write( + tmpFile, + List("column1", "column2"), + List( + List("c1.1", "c2.1"), + List("c1.2", "c2.2") + ) + ) + val result = read(tmpFile) + assert(result.headOption.contains("column1,column2")) + assert(result.tail.headOption.contains("c1.1,c2.1")) + assert(result.tail.tail.headOption.contains("c1.2,c2.2")) + } + + private def read(file: File): Seq[String] = { + val in = new InputStreamReader(new FileInputStream(file)) + val bufferedReader = new BufferedReader(in) + + @tailrec + def readLinesRecursively( + currentBufferedReader: BufferedReader, + result: Seq[String] + ): Seq[String] = { + currentBufferedReader.readLine() match { + case null => result + case line => + readLinesRecursively( + currentBufferedReader, + result :+ line + ) + } + } + + val csvLines = readLinesRecursively(bufferedReader, List()) + + bufferedReader.close() + + csvLines + } + + private def randomTmpFile(): Path = { + Files.createTempFile( + s"persons-${UUID.randomUUID().toString.take(8)}", + "csv" + ) + } + +} From ae90c2c2535a1d0ce47799b080ca23f5ab6c5110 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 18 Mar 2025 00:18:23 +0000 Subject: [PATCH 1060/1318] Update testcontainers-scala-localstack-v2, ... from 0.41.8 to 0.43.0 --- build.sbt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index a77344b2c..4f96ae81b 100644 --- a/build.sbt +++ b/build.sbt @@ -362,7 +362,7 @@ val scalazVersion = "7.3.8" val fs2Version = "3.11.0" val reactiveMongo = "1.1.0-RC15" val slickPgVersion = "0.22.2" -val scalaTestContainersVersion = "0.41.8" +val scalaTestContainersVersion = "0.43.0" val postgresqlVersion = "42.7.5" val json4sVersion = "4.0.7" @@ -446,7 +446,6 @@ lazy val scala_libraries = (project in file("scala-libraries")) "com.opencsv" % "opencsv" % "5.9", "com.github.tototoshi" %% "scala-csv" % "2.0.0", "org.apache.commons" % "commons-csv" % "1.12.0" - ), libraryDependencies ++= Seq( "org.playframework" %% "play-slick" % LibraryVersions.playSlickVersion, From 8e8d9b3ddb92126992fcfedcb2f2e90d6f8fb784 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 18 Mar 2025 00:19:10 +0000 Subject: [PATCH 1061/1318] Update opencsv from 5.9 to 5.10 --- build.sbt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index a77344b2c..72fb5a0e7 100644 --- a/build.sbt +++ b/build.sbt @@ -443,10 +443,9 @@ lazy val scala_libraries = (project in file("scala-libraries")) "com.typesafe.scala-logging" %% "scala-logging" % "3.9.5", "software.amazon.awssdk" % "s3" % "2.25.9", "com.github.seratch" %% "awscala" % "0.9.2", - "com.opencsv" % "opencsv" % "5.9", + "com.opencsv" % "opencsv" % "5.10", "com.github.tototoshi" %% "scala-csv" % "2.0.0", "org.apache.commons" % "commons-csv" % "1.12.0" - ), libraryDependencies ++= Seq( "org.playframework" %% "play-slick" % LibraryVersions.playSlickVersion, From a9ed273496e96490e41797189fc142cd7707d0b8 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 18 Mar 2025 00:19:20 +0000 Subject: [PATCH 1062/1318] Update tapir-akka-http-server, tapir-core, ... from 1.11.17 to 1.11.19 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index 58c94687a..ef7348fd2 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.11.17" +val tapirV = "1.11.19" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From 01cee3fff56d0e9f8b7794c7b5bfd673c0fa4249 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 18 Mar 2025 00:20:09 +0000 Subject: [PATCH 1063/1318] Update zio-http, zio-http-testkit from 3.0.1 to 3.1.0 --- build.sbt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index a77344b2c..75ff58c94 100644 --- a/build.sbt +++ b/build.sbt @@ -446,7 +446,6 @@ lazy val scala_libraries = (project in file("scala-libraries")) "com.opencsv" % "opencsv" % "5.9", "com.github.tototoshi" %% "scala-csv" % "2.0.0", "org.apache.commons" % "commons-csv" % "1.12.0" - ), libraryDependencies ++= Seq( "org.playframework" %% "play-slick" % LibraryVersions.playSlickVersion, @@ -740,7 +739,7 @@ lazy val zio3 = (project in file("zio3")) .settings( libraryDependencies ++= Seq( zioJsonDep, - "dev.zio" %% "zio-http" % "3.0.1", + "dev.zio" %% "zio-http" % "3.1.0", "io.getquill" %% "quill-zio" % "4.8.5", "io.getquill" %% "quill-jdbc-zio" % "4.8.5", "com.h2database" % "h2" % "2.2.220" @@ -749,7 +748,7 @@ lazy val zio3 = (project in file("zio3")) "dev.zio" %% "zio-test" % zioVersion % Test, zioTestSbt, "dev.zio" %% "zio-test-magnolia" % zioVersion % Test, - "dev.zio" %% "zio-http-testkit" % "3.0.1" % Test + "dev.zio" %% "zio-http-testkit" % "3.1.0" % Test ), testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework"), run / fork := true From f74cb535a4e4e2a38bd71bfcf17e4eafe551d221 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 18 Mar 2025 00:20:32 +0000 Subject: [PATCH 1064/1318] Update circe-core, circe-generic, ... from 0.14.10 to 0.14.12 --- build.sbt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index a77344b2c..96cb3e898 100644 --- a/build.sbt +++ b/build.sbt @@ -414,7 +414,7 @@ lazy val scala2_libraries = Defaults.itSettings ) -val circeVersion = "0.14.10" +val circeVersion = "0.14.12" val monixVersion = "3.4.1" val sparkVersion = "3.5.5" val elastic4sVersion = "8.16.0" @@ -446,7 +446,6 @@ lazy val scala_libraries = (project in file("scala-libraries")) "com.opencsv" % "opencsv" % "5.9", "com.github.tototoshi" %% "scala-csv" % "2.0.0", "org.apache.commons" % "commons-csv" % "1.12.0" - ), libraryDependencies ++= Seq( "org.playframework" %% "play-slick" % LibraryVersions.playSlickVersion, From a441bf26085146b6aa12f2f172a45183a2b6a99a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 18 Mar 2025 00:20:53 +0000 Subject: [PATCH 1065/1318] Update elastic4s-client-esjava, ... from 8.16.0 to 8.17.1 --- build.sbt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index a77344b2c..f3b1b5a43 100644 --- a/build.sbt +++ b/build.sbt @@ -417,7 +417,7 @@ lazy val scala2_libraries = val circeVersion = "0.14.10" val monixVersion = "3.4.1" val sparkVersion = "3.5.5" -val elastic4sVersion = "8.16.0" +val elastic4sVersion = "8.17.1" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion val sparkSqlDep = "org.apache.spark" %% "spark-sql" % sparkVersion @@ -446,7 +446,6 @@ lazy val scala_libraries = (project in file("scala-libraries")) "com.opencsv" % "opencsv" % "5.9", "com.github.tototoshi" %% "scala-csv" % "2.0.0", "org.apache.commons" % "commons-csv" % "1.12.0" - ), libraryDependencies ++= Seq( "org.playframework" %% "play-slick" % LibraryVersions.playSlickVersion, From 22559f83986b15d6c1a6b293150f35dab0b45019 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 18 Mar 2025 00:21:14 +0000 Subject: [PATCH 1066/1318] Update commons-csv from 1.12.0 to 1.13.0 --- build.sbt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index a77344b2c..1b5cba655 100644 --- a/build.sbt +++ b/build.sbt @@ -445,8 +445,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "com.github.seratch" %% "awscala" % "0.9.2", "com.opencsv" % "opencsv" % "5.9", "com.github.tototoshi" %% "scala-csv" % "2.0.0", - "org.apache.commons" % "commons-csv" % "1.12.0" - + "org.apache.commons" % "commons-csv" % "1.13.0" ), libraryDependencies ++= Seq( "org.playframework" %% "play-slick" % LibraryVersions.playSlickVersion, From b2aa4677de48743bbfcc7a24fee1a8c5d0d107d4 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 18 Mar 2025 00:21:25 +0000 Subject: [PATCH 1067/1318] Update jetty-webapp from 11.0.24 to 11.0.25 --- scalatra/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scalatra/build.sbt b/scalatra/build.sbt index 8a49aff2b..6999856a5 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -9,7 +9,7 @@ libraryDependencies ++= Seq( "org.scalatra" %% "scalatra" % ScalatraVersion, "org.scalatra" %% "scalatra-scalatest" % ScalatraVersion % "test", "ch.qos.logback" % "logback-classic" % "1.5.17" % "runtime", - "org.eclipse.jetty" % "jetty-webapp" % "11.0.24" % "container", + "org.eclipse.jetty" % "jetty-webapp" % "11.0.25" % "container", "javax.servlet" % "javax.servlet-api" % "4.0.1" % "provided", "org.scalatra" %% "scalatra-auth" % ScalatraVersion, "org.scalatra" %% "scalatra-json" % "2.8.4", From e8c9143ac27a1dc4aee707e589b30f6efa94df21 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 18 Mar 2025 00:21:48 +0000 Subject: [PATCH 1068/1318] Update mockito-core from 5.16.0 to 5.16.1 --- play-scala/caching-in-play/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/play-scala/caching-in-play/build.sbt b/play-scala/caching-in-play/build.sbt index 5c65e9484..2a281e072 100644 --- a/play-scala/caching-in-play/build.sbt +++ b/play-scala/caching-in-play/build.sbt @@ -11,6 +11,6 @@ libraryDependencies += guice libraryDependencies += caffeine libraryDependencies += ws libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % LibraryVersions.scalatestPlayVersion % Test -libraryDependencies += "org.mockito" % "mockito-core" % "5.16.0" % Test +libraryDependencies += "org.mockito" % "mockito-core" % "5.16.1" % Test PlayKeys.devSettings += "play.server.http.port" -> "9000" From 3ddea425dc90308161638c7694f32ec8948de603 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 18 Mar 2025 00:22:07 +0000 Subject: [PATCH 1069/1318] Update play-ahc-ws, play-caffeine-cache, ... from 3.0.6 to 3.0.7 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index df1187055..2436f4fe5 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -7,7 +7,7 @@ addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.2.1") libraryDependencies += "ai.kien" %% "python-native-libs" % "0.2.4" // Make sure to keep the play plugin in sync with the sub modules under play-scala group -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.6") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.7") addSbtPlugin("org.playframework.twirl" % "sbt-twirl" % "2.0.1") addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "4.2.1") From c78f876de3ed5e79a836d5759ae066f2a55d50b7 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 18 Mar 2025 00:22:30 +0000 Subject: [PATCH 1070/1318] Update sbt, scripted-plugin from 1.10.10 to 1.10.11 --- project/build.properties | 2 +- sbt-release/project/build.properties | 2 +- sbt-standalone/project/build.properties | 2 +- scala-gatling/project/build.properties | 2 +- scala-graalvm/scala-graalvm-http-app/project/build.properties | 2 +- scala-sbt/intro-to-sbt/project/build.properties | 2 +- scala-sbt/scalafix/project/build.properties | 2 +- scalatra/project/build.properties | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/project/build.properties b/project/build.properties index 1b8083842..fa5667a70 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1,2 +1,2 @@ -sbt.version=1.10.10 +sbt.version=1.10.11 diff --git a/sbt-release/project/build.properties b/sbt-release/project/build.properties index 7f28078b7..53bb739e7 100644 --- a/sbt-release/project/build.properties +++ b/sbt-release/project/build.properties @@ -1 +1 @@ -sbt.version = 1.10.10 +sbt.version = 1.10.11 diff --git a/sbt-standalone/project/build.properties b/sbt-standalone/project/build.properties index e97b27220..cc68b53f1 100644 --- a/sbt-standalone/project/build.properties +++ b/sbt-standalone/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.10 +sbt.version=1.10.11 diff --git a/scala-gatling/project/build.properties b/scala-gatling/project/build.properties index e97b27220..cc68b53f1 100644 --- a/scala-gatling/project/build.properties +++ b/scala-gatling/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.10 +sbt.version=1.10.11 diff --git a/scala-graalvm/scala-graalvm-http-app/project/build.properties b/scala-graalvm/scala-graalvm-http-app/project/build.properties index e97b27220..cc68b53f1 100644 --- a/scala-graalvm/scala-graalvm-http-app/project/build.properties +++ b/scala-graalvm/scala-graalvm-http-app/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.10 +sbt.version=1.10.11 diff --git a/scala-sbt/intro-to-sbt/project/build.properties b/scala-sbt/intro-to-sbt/project/build.properties index e97b27220..cc68b53f1 100644 --- a/scala-sbt/intro-to-sbt/project/build.properties +++ b/scala-sbt/intro-to-sbt/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.10 +sbt.version=1.10.11 diff --git a/scala-sbt/scalafix/project/build.properties b/scala-sbt/scalafix/project/build.properties index e33f4dab9..af06c851b 100644 --- a/scala-sbt/scalafix/project/build.properties +++ b/scala-sbt/scalafix/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.10 \ No newline at end of file +sbt.version=1.10.11 \ No newline at end of file diff --git a/scalatra/project/build.properties b/scalatra/project/build.properties index e97b27220..cc68b53f1 100644 --- a/scalatra/project/build.properties +++ b/scalatra/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.10 +sbt.version=1.10.11 From 4fb06f53cab8c3152e5561ed4bc2c63beee0e5c3 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 18 Mar 2025 00:22:51 +0000 Subject: [PATCH 1071/1318] Update junit-4-13 from 3.2.19.0 to 3.2.19.1 --- build.sbt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index a77344b2c..697b8dd6f 100644 --- a/build.sbt +++ b/build.sbt @@ -293,7 +293,7 @@ lazy val scala_test_junit4 = (project in file("scala-test-junit4")) scalaVersion := scala3Version, libraryDependencies ++= Seq( - "org.scalatestplus" %% "junit-4-13" % "3.2.19.0" % Test, + "org.scalatestplus" %% "junit-4-13" % "3.2.19.1" % Test, jUnitInterface ) ) @@ -446,7 +446,6 @@ lazy val scala_libraries = (project in file("scala-libraries")) "com.opencsv" % "opencsv" % "5.9", "com.github.tototoshi" %% "scala-csv" % "2.0.0", "org.apache.commons" % "commons-csv" % "1.12.0" - ), libraryDependencies ++= Seq( "org.playframework" %% "play-slick" % LibraryVersions.playSlickVersion, From e4e25261dccf8f74daebeb844baac2ea6d58b57e Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 18 Mar 2025 00:23:13 +0000 Subject: [PATCH 1072/1318] Update s3, sqs from 2.30.36 to 2.30.38 --- build.sbt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index a77344b2c..14ad8d759 100644 --- a/build.sbt +++ b/build.sbt @@ -446,7 +446,6 @@ lazy val scala_libraries = (project in file("scala-libraries")) "com.opencsv" % "opencsv" % "5.9", "com.github.tototoshi" %% "scala-csv" % "2.0.0", "org.apache.commons" % "commons-csv" % "1.12.0" - ), libraryDependencies ++= Seq( "org.playframework" %% "play-slick" % LibraryVersions.playSlickVersion, @@ -472,7 +471,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.11" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.30.36" + "software.amazon.awssdk" % "sqs" % "2.30.38" ), Defaults.itSettings ) @@ -596,7 +595,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.782" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.30.36" + "software.amazon.awssdk" % "s3" % "2.30.38" ), Defaults.itSettings, IntegrationTest / fork := true From c0f8403cc9c87d8980226bc30af6d931e104e304 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 19 Mar 2025 00:24:11 +0000 Subject: [PATCH 1073/1318] Update slick, slick-hikaricp from 3.5.2 to 3.6.0 --- build.sbt | 2 +- scalatra/build.sbt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index d8023c6a9..93743cf6e 100644 --- a/build.sbt +++ b/build.sbt @@ -356,7 +356,7 @@ lazy val scala_akka_3 = (project in file("scala-akka-3")) ) val monocleVersion = "2.1.0" -val slickVersion = "3.5.2" +val slickVersion = "3.6.0" val shapelessVersion = "2.3.13" val scalazVersion = "7.3.8" val fs2Version = "3.11.0" diff --git a/scalatra/build.sbt b/scalatra/build.sbt index 6999856a5..aa2593033 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -14,7 +14,7 @@ libraryDependencies ++= Seq( "org.scalatra" %% "scalatra-auth" % ScalatraVersion, "org.scalatra" %% "scalatra-json" % "2.8.4", "org.json4s" %% "json4s-jackson" % "4.0.7", - "com.typesafe.slick" %% "slick" % "3.5.2", + "com.typesafe.slick" %% "slick" % "3.6.0", "com.h2database" % "h2" % "2.1.214", "com.mchange" % "c3p0" % "0.10.2" ) From f3c376774a983945a10f0292f21d0362365bc4f6 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 26 Mar 2025 00:19:04 +0000 Subject: [PATCH 1074/1318] Update fs2-core, fs2-io from 3.11.0 to 3.12.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d8023c6a9..5f469be4f 100644 --- a/build.sbt +++ b/build.sbt @@ -359,7 +359,7 @@ val monocleVersion = "2.1.0" val slickVersion = "3.5.2" val shapelessVersion = "2.3.13" val scalazVersion = "7.3.8" -val fs2Version = "3.11.0" +val fs2Version = "3.12.0" val reactiveMongo = "1.1.0-RC15" val slickPgVersion = "0.22.2" val scalaTestContainersVersion = "0.43.0" From 305309ff2463721489eae0145702b7b113450488 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 26 Mar 2025 00:19:23 +0000 Subject: [PATCH 1075/1318] Update tapir-akka-http-server, tapir-core, ... from 1.11.19 to 1.11.20 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index ef7348fd2..3568a9878 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.11.19" +val tapirV = "1.11.20" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From 81e1f56dea163ff21f80e9c3a58a39a529171617 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 26 Mar 2025 00:19:49 +0000 Subject: [PATCH 1076/1318] Update de.flapdoodle.embed.mongo from 4.18.1 to 4.20.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d8023c6a9..ef44d6bc8 100644 --- a/build.sbt +++ b/build.sbt @@ -8,7 +8,7 @@ val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.7" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.7" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV val logback = "ch.qos.logback" % "logback-classic" % "1.5.17" -val embedMongoVersion = "4.18.1" +val embedMongoVersion = "4.20.0" val AkkaVersion = "2.9.3" val AlpakkaVersion = "8.0.0" val AkkaHttpVersion = "10.6.3" From 88d0b0b84632270f72631490c793343ab208e186 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 26 Mar 2025 00:19:59 +0000 Subject: [PATCH 1077/1318] Update zio-kafka from 2.11.0 to 2.12.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d8023c6a9..47966fa4a 100644 --- a/build.sbt +++ b/build.sbt @@ -709,7 +709,7 @@ lazy val zio = (project in file("zio")) libraryDependencies += "dev.zio" %% "zio" % zioVersion, libraryDependencies += "dev.zio" %% "zio-streams" % zioVersion, libraryDependencies += zioTestSbt, - libraryDependencies += "dev.zio" %% "zio-kafka" % "2.11.0", + libraryDependencies += "dev.zio" %% "zio-kafka" % "2.12.0", libraryDependencies += zioJsonDep, libraryDependencies += "dev.zio" %% "zio-prelude" % "1.0.0-RC39", libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.19" % Test, From 600c2d639393d1f43d3ffdb4a36b69a731d8c674 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 26 Mar 2025 00:20:45 +0000 Subject: [PATCH 1078/1318] Update commons-csv from 1.13.0 to 1.14.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d8023c6a9..8b6cd83c9 100644 --- a/build.sbt +++ b/build.sbt @@ -445,7 +445,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "com.github.seratch" %% "awscala" % "0.9.2", "com.opencsv" % "opencsv" % "5.10", "com.github.tototoshi" %% "scala-csv" % "2.0.0", - "org.apache.commons" % "commons-csv" % "1.13.0" + "org.apache.commons" % "commons-csv" % "1.14.0" ), libraryDependencies ++= Seq( "org.playframework" %% "play-slick" % LibraryVersions.playSlickVersion, From 3b26513356313703fdb04f7aa94b1e4c2cfe6c60 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 26 Mar 2025 00:20:57 +0000 Subject: [PATCH 1079/1318] Update mongo-scala-driver from 5.3.1 to 5.4.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d8023c6a9..7cccd80b8 100644 --- a/build.sbt +++ b/build.sbt @@ -280,7 +280,7 @@ lazy val scala_akka_dependencies: Seq[ModuleID] = Seq( akkaTypedTestkit, "com.lightbend.akka" %% "akka-stream-alpakka-mongodb" % AlpakkaVersion, akkaStreamDep, - "org.mongodb.scala" %% "mongo-scala-driver" % "5.3.1", + "org.mongodb.scala" %% "mongo-scala-driver" % "5.4.0", "com.lightbend.akka" %% "akka-stream-alpakka-file" % AlpakkaVersion, jUnitInterface, embeddedMongo % Test, From 88f434fe6dfb745b413b6eb346b9691463134b79 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 26 Mar 2025 00:21:18 +0000 Subject: [PATCH 1080/1318] Update scalamock from 6.2.0 to 7.3.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d8023c6a9..ec81a00ad 100644 --- a/build.sbt +++ b/build.sbt @@ -20,7 +20,7 @@ val scalaTestDeps = Seq( "org.scalatest" %% "scalatest-flatspec" % "3.2.19" % Test ) -val scalaMock = "org.scalamock" %% "scalamock" % "6.2.0" % Test +val scalaMock = "org.scalamock" %% "scalamock" % "7.3.0" % Test val zioVersion = "2.1.16" lazy val scala_core = (project in file("scala-core-modules/scala-core")) From 1780c3ad341388ff4607421109e21ce87aa75720 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 26 Mar 2025 00:21:40 +0000 Subject: [PATCH 1081/1318] Update cats-effect, cats-effect-testkit from 3.5.7 to 3.6.0 --- build.sbt | 4 ++-- scala-with-maven/hello-rest/pom.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index d8023c6a9..cdef2fae0 100644 --- a/build.sbt +++ b/build.sbt @@ -4,8 +4,8 @@ ThisBuild / scalaVersion := scala3Version ThisBuild / organization := "com.baeldung" ThisBuild / organizationName := "core-scala" val jUnitInterface = "com.github.sbt" % "junit-interface" % "0.13.3" % "test" -val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.7" -val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.5.7" % Test +val catsEffect = "org.typelevel" %% "cats-effect" % "3.6.0" +val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.6.0" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV val logback = "ch.qos.logback" % "logback-classic" % "1.5.17" val embedMongoVersion = "4.18.1" diff --git a/scala-with-maven/hello-rest/pom.xml b/scala-with-maven/hello-rest/pom.xml index b6d5fb39a..f3587c9a9 100644 --- a/scala-with-maven/hello-rest/pom.xml +++ b/scala-with-maven/hello-rest/pom.xml @@ -22,7 +22,7 @@ org.typelevel cats-effect_3 - 3.5.7 + 3.6.0 org.http4s From 418b35858e4e74758924ff9fcee6c456460bb08a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 26 Mar 2025 00:22:01 +0000 Subject: [PATCH 1082/1318] Update s3, sqs from 2.30.38 to 2.31.8 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index d8023c6a9..5fbd647a6 100644 --- a/build.sbt +++ b/build.sbt @@ -471,7 +471,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.11" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.30.38" + "software.amazon.awssdk" % "sqs" % "2.31.8" ), Defaults.itSettings ) @@ -595,7 +595,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.782" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.30.38" + "software.amazon.awssdk" % "s3" % "2.31.8" ), Defaults.itSettings, IntegrationTest / fork := true From 87ab04b00e6adee98b80e781c6523ccf86d1fcb2 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sun, 30 Mar 2025 09:46:58 +0200 Subject: [PATCH 1083/1318] Update slick-pg --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 93743cf6e..7ed1637d4 100644 --- a/build.sbt +++ b/build.sbt @@ -361,7 +361,7 @@ val shapelessVersion = "2.3.13" val scalazVersion = "7.3.8" val fs2Version = "3.11.0" val reactiveMongo = "1.1.0-RC15" -val slickPgVersion = "0.22.2" +val slickPgVersion = "0.23.0" val scalaTestContainersVersion = "0.43.0" val postgresqlVersion = "42.7.5" val json4sVersion = "4.0.7" From f2f7c71fe4cf5cc563cc89cb8a576c8dee1d4e20 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 3 Apr 2025 00:18:57 +0000 Subject: [PATCH 1084/1318] Update enumeratum from 1.7.5 to 1.7.6 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 9febfacba..1199d2f1f 100644 --- a/build.sbt +++ b/build.sbt @@ -422,7 +422,7 @@ val elastic4sVersion = "8.17.1" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion val sparkSqlDep = "org.apache.spark" %% "spark-sql" % sparkVersion -val enumeratumDep = "com.beachape" %% "enumeratum" % "1.7.5" +val enumeratumDep = "com.beachape" %% "enumeratum" % "1.7.6" val circeDep = "io.circe" %% "circe-generic" % circeVersion val circeParserDep = "io.circe" %% "circe-parser" % circeVersion From 79f0202e80c28591bea0630b9dac439d019ac601 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 3 Apr 2025 00:19:18 +0000 Subject: [PATCH 1085/1318] Update tapir-akka-http-server, tapir-core, ... from 1.11.20 to 1.11.21 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index 3568a9878..96e064ee7 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.11.20" +val tapirV = "1.11.21" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From 008f2b33c1a43903c6357cc72e69359ecef87400 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 3 Apr 2025 00:19:43 +0000 Subject: [PATCH 1086/1318] Update zio-http, zio-http-testkit from 3.1.0 to 3.2.0 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 9febfacba..f8ea3c661 100644 --- a/build.sbt +++ b/build.sbt @@ -739,7 +739,7 @@ lazy val zio3 = (project in file("zio3")) .settings( libraryDependencies ++= Seq( zioJsonDep, - "dev.zio" %% "zio-http" % "3.1.0", + "dev.zio" %% "zio-http" % "3.2.0", "io.getquill" %% "quill-zio" % "4.8.5", "io.getquill" %% "quill-jdbc-zio" % "4.8.5", "com.h2database" % "h2" % "2.2.220" @@ -748,7 +748,7 @@ lazy val zio3 = (project in file("zio3")) "dev.zio" %% "zio-test" % zioVersion % Test, zioTestSbt, "dev.zio" %% "zio-test-magnolia" % zioVersion % Test, - "dev.zio" %% "zio-http-testkit" % "3.1.0" % Test + "dev.zio" %% "zio-http-testkit" % "3.2.0" % Test ), testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework"), run / fork := true From b394a0a1b666510f6b977737164ab2be49d2a09c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 3 Apr 2025 00:20:05 +0000 Subject: [PATCH 1087/1318] Update joda-time from 2.13.1 to 2.14.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 9febfacba..228bfddbe 100644 --- a/build.sbt +++ b/build.sbt @@ -183,7 +183,7 @@ lazy val scala_core_dates = name := "scala-core-dates", scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps, - libraryDependencies += "joda-time" % "joda-time" % "2.13.1", + libraryDependencies += "joda-time" % "joda-time" % "2.14.0", libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "3.0.0", libraryDependencies += "com.typesafe" % "config" % "1.4.3" ) From 8cb3448f268067a3a8d61af0af1995877d870778 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 3 Apr 2025 00:20:27 +0000 Subject: [PATCH 1088/1318] Update elasticmq-core, elasticmq-rest-sqs, ... from 1.6.11 to 1.6.12 --- build.sbt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index 9febfacba..a353e77b7 100644 --- a/build.sbt +++ b/build.sbt @@ -466,9 +466,9 @@ lazy val scala_libraries = (project in file("scala-libraries")) logback ), libraryDependencies ++= Seq( - "org.elasticmq" %% "elasticmq-core" % "1.6.11", - "org.elasticmq" %% "elasticmq-server" % "1.6.11", - "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.11" + "org.elasticmq" %% "elasticmq-core" % "1.6.12", + "org.elasticmq" %% "elasticmq-server" % "1.6.12", + "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.12" ), libraryDependencies ++= Seq( "software.amazon.awssdk" % "sqs" % "2.31.8" From 33514584f2c47d0014e0ac0ca516058b2d109a0a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 3 Apr 2025 00:20:52 +0000 Subject: [PATCH 1089/1318] Update munit-cats-effect from 2.0.0 to 2.1.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 9febfacba..942f678ac 100644 --- a/build.sbt +++ b/build.sbt @@ -694,7 +694,7 @@ lazy val cats_effects = (project in file("cats-effects")) name := "cats-effects", scalaVersion := scala3Version, libraryDependencies += catsEffect, - libraryDependencies += "org.typelevel" %% "munit-cats-effect" % "2.0.0" % Test, + libraryDependencies += "org.typelevel" %% "munit-cats-effect" % "2.1.0" % Test, libraryDependencies ++= scalaTestDeps, libraryDependencies += "junit" % "junit" % "4.13.2" % Test ) From aee6696f023aa99d1ff88e019c80de2be52ffec7 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 3 Apr 2025 00:21:13 +0000 Subject: [PATCH 1090/1318] Update s3, sqs from 2.31.8 to 2.31.14 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 9febfacba..b314229e3 100644 --- a/build.sbt +++ b/build.sbt @@ -471,7 +471,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.11" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.31.8" + "software.amazon.awssdk" % "sqs" % "2.31.14" ), Defaults.itSettings ) @@ -595,7 +595,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.782" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.31.8" + "software.amazon.awssdk" % "s3" % "2.31.14" ), Defaults.itSettings, IntegrationTest / fork := true From c03fa839dd7529288ea43a63cb6bfd561336cbb8 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 11 Apr 2025 00:19:24 +0000 Subject: [PATCH 1091/1318] Update tapir-akka-http-server, tapir-core, ... from 1.11.21 to 1.11.24 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index 96e064ee7..bb5a0872c 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.11.21" +val tapirV = "1.11.24" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From 56c8743c018b3f3715f313863270e4374687b573 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 11 Apr 2025 00:20:05 +0000 Subject: [PATCH 1092/1318] Update zio, zio-streams, zio-test, ... from 2.1.16 to 2.1.17 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ebdea7992..cf02eec79 100644 --- a/build.sbt +++ b/build.sbt @@ -21,7 +21,7 @@ val scalaTestDeps = Seq( ) val scalaMock = "org.scalamock" %% "scalamock" % "7.3.0" % Test -val zioVersion = "2.1.16" +val zioVersion = "2.1.17" lazy val scala_core = (project in file("scala-core-modules/scala-core")) .settings( From 2db33c90c66a5acd1477dfa674b2b9e1206b2ec2 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 11 Apr 2025 00:20:46 +0000 Subject: [PATCH 1093/1318] Update zio-json from 0.7.39 to 0.7.42 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index ebdea7992..d5be654f2 100644 --- a/build.sbt +++ b/build.sbt @@ -699,7 +699,7 @@ lazy val cats_effects = (project in file("cats-effects")) libraryDependencies += "junit" % "junit" % "4.13.2" % Test ) -val zioJsonDep = "dev.zio" %% "zio-json" % "0.7.39" +val zioJsonDep = "dev.zio" %% "zio-json" % "0.7.42" val zioTestSbt = "dev.zio" %% "zio-test-sbt" % zioVersion % Test lazy val zio = (project in file("zio")) @@ -721,7 +721,7 @@ lazy val zio2 = (project in file("zio-2")) name := "zio-2", scalaVersion := scala3Version, libraryDependencies += "dev.zio" %% "zio" % zioVersion, - libraryDependencies += "dev.zio" %% "zio-json" % "0.7.39", + libraryDependencies += "dev.zio" %% "zio-json" % "0.7.42", libraryDependencies += "dev.zio" %% "zio-test" % zioVersion % Test, libraryDependencies += "dev.zio" %% "zio-test-sbt" % zioVersion % Test, libraryDependencies += "dev.zio" %% "zio-logging" % "2.1.17", From 7770b5b4e2b749997142541a0fbae9de6270c15d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 11 Apr 2025 00:21:21 +0000 Subject: [PATCH 1094/1318] Update mockito-core from 5.16.1 to 5.17.0 --- play-scala/caching-in-play/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/play-scala/caching-in-play/build.sbt b/play-scala/caching-in-play/build.sbt index 2a281e072..f7024f98d 100644 --- a/play-scala/caching-in-play/build.sbt +++ b/play-scala/caching-in-play/build.sbt @@ -11,6 +11,6 @@ libraryDependencies += guice libraryDependencies += caffeine libraryDependencies += ws libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % LibraryVersions.scalatestPlayVersion % Test -libraryDependencies += "org.mockito" % "mockito-core" % "5.16.1" % Test +libraryDependencies += "org.mockito" % "mockito-core" % "5.17.0" % Test PlayKeys.devSettings += "play.server.http.port" -> "9000" From 5386e83d9abe769dbfadbe43ac2bdb43b45d2842 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 11 Apr 2025 00:21:55 +0000 Subject: [PATCH 1095/1318] Update cats-effect, cats-effect-testkit from 3.6.0 to 3.6.1 --- build.sbt | 4 ++-- scala-with-maven/hello-rest/pom.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index ebdea7992..1f85b6a02 100644 --- a/build.sbt +++ b/build.sbt @@ -4,8 +4,8 @@ ThisBuild / scalaVersion := scala3Version ThisBuild / organization := "com.baeldung" ThisBuild / organizationName := "core-scala" val jUnitInterface = "com.github.sbt" % "junit-interface" % "0.13.3" % "test" -val catsEffect = "org.typelevel" %% "cats-effect" % "3.6.0" -val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.6.0" % Test +val catsEffect = "org.typelevel" %% "cats-effect" % "3.6.1" +val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.6.1" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV val logback = "ch.qos.logback" % "logback-classic" % "1.5.17" val embedMongoVersion = "4.20.0" diff --git a/scala-with-maven/hello-rest/pom.xml b/scala-with-maven/hello-rest/pom.xml index f3587c9a9..90998e2b1 100644 --- a/scala-with-maven/hello-rest/pom.xml +++ b/scala-with-maven/hello-rest/pom.xml @@ -22,7 +22,7 @@ org.typelevel cats-effect_3 - 3.6.0 + 3.6.1 org.http4s From 05166475eb91cbc11c8201596b9863ca140733c4 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 11 Apr 2025 00:22:29 +0000 Subject: [PATCH 1096/1318] Update s3, sqs from 2.31.14 to 2.31.20 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index ebdea7992..6ab2e29d7 100644 --- a/build.sbt +++ b/build.sbt @@ -471,7 +471,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.12" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.31.14" + "software.amazon.awssdk" % "sqs" % "2.31.20" ), Defaults.itSettings ) @@ -595,7 +595,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.782" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.31.14" + "software.amazon.awssdk" % "s3" % "2.31.20" ), Defaults.itSettings, IntegrationTest / fork := true From eb7fd07a6a2dcbb60a1268e931e8dc461a3af869 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 19 Apr 2025 00:18:33 +0000 Subject: [PATCH 1097/1318] Update tapir-akka-http-server, tapir-core, ... from 1.11.24 to 1.11.25 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index bb5a0872c..ec6e6d917 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.11.24" +val tapirV = "1.11.25" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From 15b13ad51677f7abfdd6361f33998d0ee2a1ab0b Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 19 Apr 2025 00:18:59 +0000 Subject: [PATCH 1098/1318] Update scalamock from 7.3.0 to 7.3.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 3f5be15c5..289326b4d 100644 --- a/build.sbt +++ b/build.sbt @@ -20,7 +20,7 @@ val scalaTestDeps = Seq( "org.scalatest" %% "scalatest-flatspec" % "3.2.19" % Test ) -val scalaMock = "org.scalamock" %% "scalamock" % "7.3.0" % Test +val scalaMock = "org.scalamock" %% "scalamock" % "7.3.1" % Test val zioVersion = "2.1.17" lazy val scala_core = (project in file("scala-core-modules/scala-core")) From 442237e62d6abf0f04504988c699809814452160 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 19 Apr 2025 00:19:44 +0000 Subject: [PATCH 1099/1318] Update s3, sqs from 2.31.20 to 2.31.25 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 3f5be15c5..26cb15990 100644 --- a/build.sbt +++ b/build.sbt @@ -471,7 +471,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.12" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.31.20" + "software.amazon.awssdk" % "sqs" % "2.31.25" ), Defaults.itSettings ) @@ -595,7 +595,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.782" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.31.20" + "software.amazon.awssdk" % "s3" % "2.31.25" ), Defaults.itSettings, IntegrationTest / fork := true From bc7679ade078cf900c7830cea5609974335b87d8 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 27 Apr 2025 00:21:33 +0000 Subject: [PATCH 1100/1318] Update jackson-databind from 2.18.3 to 2.19.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a5dc92602..86289e5e7 100644 --- a/build.sbt +++ b/build.sbt @@ -551,7 +551,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) val spireVersion = "0.18.0" val kafkaVersion = "7.9.0-ce" val pureconfigVersion = "0.17.8" -val jackSonVersion = "2.18.3" +val jackSonVersion = "2.19.0" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" From ca61f89828a3ba993535833023accef2e64e6f12 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 27 Apr 2025 00:22:09 +0000 Subject: [PATCH 1101/1318] Update jackson-datatype-jsr310 from 2.18.3 to 2.19.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a5dc92602..86289e5e7 100644 --- a/build.sbt +++ b/build.sbt @@ -551,7 +551,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) val spireVersion = "0.18.0" val kafkaVersion = "7.9.0-ce" val pureconfigVersion = "0.17.8" -val jackSonVersion = "2.18.3" +val jackSonVersion = "2.19.0" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" From b1f3b395174da14838971794195e8d3041a8e053 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 27 Apr 2025 00:22:41 +0000 Subject: [PATCH 1102/1318] Update jackson-module-scala from 2.18.3 to 2.19.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a5dc92602..86289e5e7 100644 --- a/build.sbt +++ b/build.sbt @@ -551,7 +551,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) val spireVersion = "0.18.0" val kafkaVersion = "7.9.0-ce" val pureconfigVersion = "0.17.8" -val jackSonVersion = "2.18.3" +val jackSonVersion = "2.19.0" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" From cb67bad7188109d6b5980bc78686bfe897a8d100 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 27 Apr 2025 00:23:12 +0000 Subject: [PATCH 1103/1318] Update pureconfig, pureconfig-enumeratum from 0.17.8 to 0.17.9 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index a5dc92602..9341fc954 100644 --- a/build.sbt +++ b/build.sbt @@ -391,7 +391,7 @@ lazy val scala2_libraries = enumeratumDep, "io.monix" %% "monix" % monixVersion, pureConfigDep, - "com.github.pureconfig" %% "pureconfig-enumeratum" % "0.17.8", + "com.github.pureconfig" %% "pureconfig-enumeratum" % "0.17.9", "com.typesafe" % "config" % "1.4.3", "org.scala-lang.modules" %% "scala-async" % "1.0.1", "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.10.0", @@ -550,7 +550,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) val spireVersion = "0.18.0" val kafkaVersion = "7.9.0-ce" -val pureconfigVersion = "0.17.8" +val pureconfigVersion = "0.17.9" val jackSonVersion = "2.18.3" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" From 308fa0283e45168d6bb4965858df91d93015ad16 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 27 Apr 2025 00:23:45 +0000 Subject: [PATCH 1104/1318] Update c3p0 from 0.10.2 to 0.11.0 --- scalatra/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scalatra/build.sbt b/scalatra/build.sbt index aa2593033..a710f62aa 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -16,7 +16,7 @@ libraryDependencies ++= Seq( "org.json4s" %% "json4s-jackson" % "4.0.7", "com.typesafe.slick" %% "slick" % "3.6.0", "com.h2database" % "h2" % "2.1.214", - "com.mchange" % "c3p0" % "0.10.2" + "com.mchange" % "c3p0" % "0.11.0" ) libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always enablePlugins(SbtTwirl) From 44224ca10b14ba25cf9d0651e9f18cb32f9a2838 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 27 Apr 2025 00:24:17 +0000 Subject: [PATCH 1105/1318] Update zio-prelude from 1.0.0-RC39 to 1.0.0-RC40 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a5dc92602..a5059d332 100644 --- a/build.sbt +++ b/build.sbt @@ -711,7 +711,7 @@ lazy val zio = (project in file("zio")) libraryDependencies += zioTestSbt, libraryDependencies += "dev.zio" %% "zio-kafka" % "2.12.0", libraryDependencies += zioJsonDep, - libraryDependencies += "dev.zio" %% "zio-prelude" % "1.0.0-RC39", + libraryDependencies += "dev.zio" %% "zio-prelude" % "1.0.0-RC40", libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.19" % Test, testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework") ) From 4066cc481dc3af7c653fbb31f7f186c2233b08dc Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 27 Apr 2025 00:24:49 +0000 Subject: [PATCH 1106/1318] Update circe-core, circe-generic, ... from 0.14.12 to 0.14.13 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a5dc92602..51c516c5f 100644 --- a/build.sbt +++ b/build.sbt @@ -414,7 +414,7 @@ lazy val scala2_libraries = Defaults.itSettings ) -val circeVersion = "0.14.12" +val circeVersion = "0.14.13" val monixVersion = "3.4.1" val sparkVersion = "3.5.5" val elastic4sVersion = "8.17.1" From c4659cb93e7bda6439f82f75d6386fe0e4fea65b Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 27 Apr 2025 00:25:22 +0000 Subject: [PATCH 1107/1318] Update elastic4s-client-esjava, ... from 8.17.1 to 8.18.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a5dc92602..405bbe1fe 100644 --- a/build.sbt +++ b/build.sbt @@ -417,7 +417,7 @@ lazy val scala2_libraries = val circeVersion = "0.14.12" val monixVersion = "3.4.1" val sparkVersion = "3.5.5" -val elastic4sVersion = "8.17.1" +val elastic4sVersion = "8.18.0" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion val sparkSqlDep = "org.apache.spark" %% "spark-sql" % sparkVersion From 6d691deaf789a5c27782a94541d5bac7c1e3a7ee Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 27 Apr 2025 00:26:23 +0000 Subject: [PATCH 1108/1318] Update sbt-scalajs from 1.18.2 to 1.19.0 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index 2436f4fe5..e911ea6e9 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,7 +1,7 @@ addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.4") addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.7") -addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.18.2") +addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.19.0") addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.2.1") libraryDependencies += "ai.kien" %% "python-native-libs" % "0.2.4" From 4c099d372ea7f6232460ca353a7d707efecfeb80 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 27 Apr 2025 00:26:57 +0000 Subject: [PATCH 1109/1318] Update pulsar from 1.20.6 to 1.21.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a5dc92602..12d482d49 100644 --- a/build.sbt +++ b/build.sbt @@ -396,7 +396,7 @@ lazy val scala2_libraries = "org.scala-lang.modules" %% "scala-async" % "1.0.1", "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.10.0", "com.clever-cloud.pulsar4s" %% "pulsar4s-jackson" % "2.10.0", - "org.testcontainers" % "pulsar" % "1.20.6" % IntegrationTest, + "org.testcontainers" % "pulsar" % "1.21.0" % IntegrationTest, "org.apache.kafka" % "kafka-clients" % kafkaVersion, "com.fasterxml.jackson.core" % "jackson-databind" % jackSonVersion, "com.fasterxml.jackson.datatype" % "jackson-datatype-jsr310" % jackSonVersion, From 31dee48d9cf2a54eb26585a5720035516c7430cb Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 27 Apr 2025 00:27:29 +0000 Subject: [PATCH 1110/1318] Update s3, sqs from 2.31.25 to 2.31.30 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index a5dc92602..92a63d2de 100644 --- a/build.sbt +++ b/build.sbt @@ -471,7 +471,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.12" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.31.25" + "software.amazon.awssdk" % "sqs" % "2.31.30" ), Defaults.itSettings ) @@ -595,7 +595,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.782" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.31.25" + "software.amazon.awssdk" % "s3" % "2.31.30" ), Defaults.itSettings, IntegrationTest / fork := true From 5e99fb197dbc4dcfd23fbb82ffc00c88297ededb Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Mon, 28 Apr 2025 08:59:13 +0200 Subject: [PATCH 1111/1318] Update .mergify.yml --- .mergify.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.mergify.yml b/.mergify.yml index ff85d1911..040792b16 100644 --- a/.mergify.yml +++ b/.mergify.yml @@ -7,6 +7,7 @@ pull_request_rules: - files~=\.sbt$ - files~=ScalaVersions.scala - files~=build.properties + - files~=ScalaVersions.scala - "#approved-reviews-by>=1" - check-success=CI - Jenkins - author=scala-steward-baeldung[bot] From 9758eeb6f8ee137ed97cf119d525737864a39d2e Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Mon, 28 Apr 2025 09:01:56 +0200 Subject: [PATCH 1112/1318] Update .mergify.yml --- .mergify.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.mergify.yml b/.mergify.yml index 040792b16..e58c45f83 100644 --- a/.mergify.yml +++ b/.mergify.yml @@ -7,7 +7,7 @@ pull_request_rules: - files~=\.sbt$ - files~=ScalaVersions.scala - files~=build.properties - - files~=ScalaVersions.scala + - files~=LibraryVersions.scala - "#approved-reviews-by>=1" - check-success=CI - Jenkins - author=scala-steward-baeldung[bot] From 4a8dc4d04909cddcfc274da3373ceb133227a060 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 27 Apr 2025 00:25:53 +0000 Subject: [PATCH 1113/1318] Update play-slick, play-slick-evolutions from 6.1.1 to 6.2.0 --- project/LibraryVersions.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/LibraryVersions.scala b/project/LibraryVersions.scala index e841d22c4..5784b4874 100644 --- a/project/LibraryVersions.scala +++ b/project/LibraryVersions.scala @@ -1,5 +1,5 @@ object LibraryVersions { val playVersion = "3.0.4" - val playSlickVersion = "6.1.1" + val playSlickVersion = "6.2.0" val scalatestPlayVersion = "7.0.1" } From 483cd7f72239e68d08745b86d3fa3b2ea8cbe362 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 5 May 2025 00:21:14 +0000 Subject: [PATCH 1114/1318] Update aws-java-sdk-s3 from 1.12.782 to 1.12.783 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 913db1be0..5a175f434 100644 --- a/build.sbt +++ b/build.sbt @@ -592,7 +592,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) scalaMock, "com.lihaoyi" %% "utest" % "0.8.5" % "test", munitDep, - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.782" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.783" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.31.30" From d6967df69de50041b41b3d60efda3bb4560f49a4 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 5 May 2025 00:21:25 +0000 Subject: [PATCH 1115/1318] Update pulsar4s-core, pulsar4s-jackson from 2.10.0 to 2.11.0 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 913db1be0..ca06f7ea0 100644 --- a/build.sbt +++ b/build.sbt @@ -394,8 +394,8 @@ lazy val scala2_libraries = "com.github.pureconfig" %% "pureconfig-enumeratum" % "0.17.9", "com.typesafe" % "config" % "1.4.3", "org.scala-lang.modules" %% "scala-async" % "1.0.1", - "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.10.0", - "com.clever-cloud.pulsar4s" %% "pulsar4s-jackson" % "2.10.0", + "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.11.0", + "com.clever-cloud.pulsar4s" %% "pulsar4s-jackson" % "2.11.0", "org.testcontainers" % "pulsar" % "1.21.0" % IntegrationTest, "org.apache.kafka" % "kafka-clients" % kafkaVersion, "com.fasterxml.jackson.core" % "jackson-databind" % jackSonVersion, From 4d7e1b99a779479bfd205a363873ec19da2d652a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 5 May 2025 00:21:51 +0000 Subject: [PATCH 1116/1318] Update opencsv from 5.10 to 5.11 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 913db1be0..af16b0d57 100644 --- a/build.sbt +++ b/build.sbt @@ -443,7 +443,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "com.typesafe.scala-logging" %% "scala-logging" % "3.9.5", "software.amazon.awssdk" % "s3" % "2.25.9", "com.github.seratch" %% "awscala" % "0.9.2", - "com.opencsv" % "opencsv" % "5.10", + "com.opencsv" % "opencsv" % "5.11", "com.github.tototoshi" %% "scala-csv" % "2.0.0", "org.apache.commons" % "commons-csv" % "1.14.0" ), From 85f9427267ebac70065c2afce00200b482b6f0f6 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 5 May 2025 00:22:03 +0000 Subject: [PATCH 1117/1318] Update munit from 1.1.0 to 1.1.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 913db1be0..fb4e3358c 100644 --- a/build.sbt +++ b/build.sbt @@ -496,7 +496,7 @@ val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion val log4jApiScalaDep = "org.apache.logging.log4j" %% "log4j-api-scala" % "13.1.0" -val munitDep = "org.scalameta" %% "munit" % "1.1.0" % Test +val munitDep = "org.scalameta" %% "munit" % "1.1.1" % Test lazy val scala_libraries_os = (project in file("scala-libraries-os")) .settings( From 70a15d5cce2cca8426012a9024ebaafc990c15c7 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 5 May 2025 00:22:28 +0000 Subject: [PATCH 1118/1318] Update scalamock from 7.3.1 to 7.3.2 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 913db1be0..2a3d1c521 100644 --- a/build.sbt +++ b/build.sbt @@ -20,7 +20,7 @@ val scalaTestDeps = Seq( "org.scalatest" %% "scalatest-flatspec" % "3.2.19" % Test ) -val scalaMock = "org.scalamock" %% "scalamock" % "7.3.1" % Test +val scalaMock = "org.scalamock" %% "scalamock" % "7.3.2" % Test val zioVersion = "2.1.17" lazy val scala_core = (project in file("scala-core-modules/scala-core")) From 7bc8026b981b8d9e5e274ba1db8fc65f97d4b0c6 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 5 May 2025 00:22:53 +0000 Subject: [PATCH 1119/1318] Update jedis from 5.2.0 to 6.0.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 913db1be0..863630165 100644 --- a/build.sbt +++ b/build.sbt @@ -519,7 +519,7 @@ lazy val redis_intro = libraryDependencies ++= scalaTestDeps .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( - "redis.clients" % "jedis" % "5.2.0", + "redis.clients" % "jedis" % "6.0.0", "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.14.1", "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % "it" ), From c6794ac77bd035844b75cf7ede823545abcc6ff8 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 5 May 2025 00:23:19 +0000 Subject: [PATCH 1120/1318] Update s3, sqs from 2.31.30 to 2.31.35 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 913db1be0..c2f340db1 100644 --- a/build.sbt +++ b/build.sbt @@ -471,7 +471,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.12" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.31.30" + "software.amazon.awssdk" % "sqs" % "2.31.35" ), Defaults.itSettings ) @@ -595,7 +595,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.782" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.31.30" + "software.amazon.awssdk" % "s3" % "2.31.35" ), Defaults.itSettings, IntegrationTest / fork := true From 1ea5ccbf211f4a09322129d6210924a9f0f306ca Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 13 May 2025 00:20:09 +0000 Subject: [PATCH 1121/1318] Update tapir-akka-http-server, tapir-core, ... from 1.11.25 to 1.11.28 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index ec6e6d917..443ab81cd 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.11.25" +val tapirV = "1.11.28" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From 94559e166d5c78c963eb86afe9e847eaac60d728 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 13 May 2025 00:20:34 +0000 Subject: [PATCH 1122/1318] Update zio-json from 0.7.42 to 0.7.43 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index e53902e2f..1f9b459b8 100644 --- a/build.sbt +++ b/build.sbt @@ -699,7 +699,7 @@ lazy val cats_effects = (project in file("cats-effects")) libraryDependencies += "junit" % "junit" % "4.13.2" % Test ) -val zioJsonDep = "dev.zio" %% "zio-json" % "0.7.42" +val zioJsonDep = "dev.zio" %% "zio-json" % "0.7.43" val zioTestSbt = "dev.zio" %% "zio-test-sbt" % zioVersion % Test lazy val zio = (project in file("zio")) @@ -721,7 +721,7 @@ lazy val zio2 = (project in file("zio-2")) name := "zio-2", scalaVersion := scala3Version, libraryDependencies += "dev.zio" %% "zio" % zioVersion, - libraryDependencies += "dev.zio" %% "zio-json" % "0.7.42", + libraryDependencies += "dev.zio" %% "zio-json" % "0.7.43", libraryDependencies += "dev.zio" %% "zio-test" % zioVersion % Test, libraryDependencies += "dev.zio" %% "zio-test-sbt" % zioVersion % Test, libraryDependencies += "dev.zio" %% "zio-logging" % "2.1.17", From 0d8bed64bed386e23f20b6abe4939c48e85945f6 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 13 May 2025 00:20:56 +0000 Subject: [PATCH 1123/1318] Update kafka-avro-serializer from 7.9.0 to 7.9.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index e53902e2f..3cf6bbd0e 100644 --- a/build.sbt +++ b/build.sbt @@ -555,7 +555,7 @@ val jackSonVersion = "2.19.0" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" -val kafkaAvroSerializer = "7.9.0" +val kafkaAvroSerializer = "7.9.1" val pureConfigDep = "com.github.pureconfig" %% "pureconfig" % pureconfigVersion From 054c32022fd39f2dc1ad4c4717da9e38900acd7a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 13 May 2025 00:21:22 +0000 Subject: [PATCH 1124/1318] Update chimney from 1.7.3 to 1.8.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index e53902e2f..8e7c9a27d 100644 --- a/build.sbt +++ b/build.sbt @@ -483,7 +483,7 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps .map(_.withConfigurations(Some("it,test"))), - libraryDependencies += "io.scalaland" %% "chimney" % "1.7.3", + libraryDependencies += "io.scalaland" %% "chimney" % "1.8.0", Defaults.itSettings ) From ee838b3b74d67279b61f81a9130969f7feb269b0 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 13 May 2025 00:21:45 +0000 Subject: [PATCH 1125/1318] Update kafka-clients from 7.9.0-ce to 7.9.1-ce --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index e53902e2f..332d2bc0b 100644 --- a/build.sbt +++ b/build.sbt @@ -549,7 +549,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) ) val spireVersion = "0.18.0" -val kafkaVersion = "7.9.0-ce" +val kafkaVersion = "7.9.1-ce" val pureconfigVersion = "0.17.9" val jackSonVersion = "2.19.0" val log4jApiScalaVersion = "13.1.0" From df0000afaa86ee778684b780f0b91b3550259ee1 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 13 May 2025 00:21:55 +0000 Subject: [PATCH 1126/1318] Update mongo-scala-driver from 5.4.0 to 5.5.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index e53902e2f..464bb0b54 100644 --- a/build.sbt +++ b/build.sbt @@ -280,7 +280,7 @@ lazy val scala_akka_dependencies: Seq[ModuleID] = Seq( akkaTypedTestkit, "com.lightbend.akka" %% "akka-stream-alpakka-mongodb" % AlpakkaVersion, akkaStreamDep, - "org.mongodb.scala" %% "mongo-scala-driver" % "5.4.0", + "org.mongodb.scala" %% "mongo-scala-driver" % "5.5.0", "com.lightbend.akka" %% "akka-stream-alpakka-file" % AlpakkaVersion, jUnitInterface, embeddedMongo % Test, From 869f677f918b26d0889369d702185319407a832f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 13 May 2025 00:22:14 +0000 Subject: [PATCH 1127/1318] Update scala3-library from 3.6.4 to 3.7.0 --- project/ScalaVersions.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/ScalaVersions.scala b/project/ScalaVersions.scala index 6daf00ef3..34fc16cdc 100644 --- a/project/ScalaVersions.scala +++ b/project/ScalaVersions.scala @@ -1,6 +1,6 @@ object ScalaVersions { val scala2Version = "2.13.16" - val scala3Version = "3.6.4" + val scala3Version = "3.7.0" @deprecated( "Use Scala 2.13 or Scala 3. Don't use 2.12 unless it is a specific feature in 2.12." ) From a832328a21a1dd439ae25cdad29c21fbc3f97ffe Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 13 May 2025 00:22:34 +0000 Subject: [PATCH 1128/1318] Update s3, sqs from 2.31.35 to 2.31.41 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index e53902e2f..886b5aa0c 100644 --- a/build.sbt +++ b/build.sbt @@ -471,7 +471,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.12" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.31.35" + "software.amazon.awssdk" % "sqs" % "2.31.41" ), Defaults.itSettings ) @@ -595,7 +595,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.783" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.31.35" + "software.amazon.awssdk" % "s3" % "2.31.41" ), Defaults.itSettings, IntegrationTest / fork := true From 73d1d6168c115d29d8f552f1bedcd0bc6d946026 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 21 May 2025 00:22:37 +0000 Subject: [PATCH 1129/1318] Update tapir-akka-http-server, tapir-core, ... from 1.11.28 to 1.11.29 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index 443ab81cd..a4acb30d3 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.11.28" +val tapirV = "1.11.29" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From db3fb8cd82d8acd820c0f4f01aadec189365b508 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 21 May 2025 00:23:08 +0000 Subject: [PATCH 1130/1318] Update slick, slick-hikaricp from 3.6.0 to 3.6.1 --- build.sbt | 2 +- scalatra/build.sbt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index c68eb00b0..3b9ffa3fb 100644 --- a/build.sbt +++ b/build.sbt @@ -356,7 +356,7 @@ lazy val scala_akka_3 = (project in file("scala-akka-3")) ) val monocleVersion = "2.1.0" -val slickVersion = "3.6.0" +val slickVersion = "3.6.1" val shapelessVersion = "2.3.13" val scalazVersion = "7.3.8" val fs2Version = "3.12.0" diff --git a/scalatra/build.sbt b/scalatra/build.sbt index a710f62aa..cbdd68f17 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -14,7 +14,7 @@ libraryDependencies ++= Seq( "org.scalatra" %% "scalatra-auth" % ScalatraVersion, "org.scalatra" %% "scalatra-json" % "2.8.4", "org.json4s" %% "json4s-jackson" % "4.0.7", - "com.typesafe.slick" %% "slick" % "3.6.0", + "com.typesafe.slick" %% "slick" % "3.6.1", "com.h2database" % "h2" % "2.1.214", "com.mchange" % "c3p0" % "0.11.0" ) From 7b90024daae3e807af60ded5e6d8094ffe264fe4 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 21 May 2025 00:23:37 +0000 Subject: [PATCH 1131/1318] Update zio, zio-streams, zio-test, ... from 2.1.17 to 2.1.18 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index c68eb00b0..acfaf1944 100644 --- a/build.sbt +++ b/build.sbt @@ -21,7 +21,7 @@ val scalaTestDeps = Seq( ) val scalaMock = "org.scalamock" %% "scalamock" % "7.3.2" % Test -val zioVersion = "2.1.17" +val zioVersion = "2.1.18" lazy val scala_core = (project in file("scala-core-modules/scala-core")) .settings( From fd8ab87416e7b2e21bbbded713ff7272f7c64728 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 21 May 2025 00:24:05 +0000 Subject: [PATCH 1132/1318] Update mockito-core from 5.17.0 to 5.18.0 --- play-scala/caching-in-play/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/play-scala/caching-in-play/build.sbt b/play-scala/caching-in-play/build.sbt index f7024f98d..f634e6d56 100644 --- a/play-scala/caching-in-play/build.sbt +++ b/play-scala/caching-in-play/build.sbt @@ -11,6 +11,6 @@ libraryDependencies += guice libraryDependencies += caffeine libraryDependencies += ws libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % LibraryVersions.scalatestPlayVersion % Test -libraryDependencies += "org.mockito" % "mockito-core" % "5.17.0" % Test +libraryDependencies += "org.mockito" % "mockito-core" % "5.18.0" % Test PlayKeys.devSettings += "play.server.http.port" -> "9000" From a9ff5136dcbefb45bda648fbe1b84f137bd3b8b2 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 21 May 2025 00:24:31 +0000 Subject: [PATCH 1133/1318] Update s3, sqs from 2.31.41 to 2.31.47 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index c68eb00b0..56262b2a6 100644 --- a/build.sbt +++ b/build.sbt @@ -471,7 +471,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.12" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.31.41" + "software.amazon.awssdk" % "sqs" % "2.31.47" ), Defaults.itSettings ) @@ -595,7 +595,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.783" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.31.41" + "software.amazon.awssdk" % "s3" % "2.31.47" ), Defaults.itSettings, IntegrationTest / fork := true From 044c2f2f22ae74ff186a7dd291c11042d24f4cc6 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 29 May 2025 00:20:15 +0000 Subject: [PATCH 1134/1318] Update enumeratum from 1.7.6 to 1.9.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index fa8a83115..92e8c7309 100644 --- a/build.sbt +++ b/build.sbt @@ -422,7 +422,7 @@ val elastic4sVersion = "8.18.0" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion val sparkSqlDep = "org.apache.spark" %% "spark-sql" % sparkVersion -val enumeratumDep = "com.beachape" %% "enumeratum" % "1.7.6" +val enumeratumDep = "com.beachape" %% "enumeratum" % "1.9.0" val circeDep = "io.circe" %% "circe-generic" % circeVersion val circeParserDep = "io.circe" %% "circe-parser" % circeVersion From 3f8441c2e521742e11dafd4fa4a4b6d8e27345f9 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 29 May 2025 00:21:04 +0000 Subject: [PATCH 1135/1318] Update tapir-akka-http-server, tapir-core, ... from 1.11.29 to 1.11.33 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index a4acb30d3..c6fe3b638 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.11.29" +val tapirV = "1.11.33" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From 80ca92f8eaee5b7ec5644c0b32528b0bf20f0a4c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 29 May 2025 00:21:32 +0000 Subject: [PATCH 1136/1318] Update zio-http, zio-http-testkit from 3.2.0 to 3.3.2 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index fa8a83115..fc2bd6f1f 100644 --- a/build.sbt +++ b/build.sbt @@ -739,7 +739,7 @@ lazy val zio3 = (project in file("zio3")) .settings( libraryDependencies ++= Seq( zioJsonDep, - "dev.zio" %% "zio-http" % "3.2.0", + "dev.zio" %% "zio-http" % "3.3.2", "io.getquill" %% "quill-zio" % "4.8.5", "io.getquill" %% "quill-jdbc-zio" % "4.8.5", "com.h2database" % "h2" % "2.2.220" @@ -748,7 +748,7 @@ lazy val zio3 = (project in file("zio3")) "dev.zio" %% "zio-test" % zioVersion % Test, zioTestSbt, "dev.zio" %% "zio-test-magnolia" % zioVersion % Test, - "dev.zio" %% "zio-http-testkit" % "3.2.0" % Test + "dev.zio" %% "zio-http-testkit" % "3.3.2" % Test ), testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework"), run / fork := true From 169ea05f46ebfd12c4d4e5201b49ee154c66cb2e Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 29 May 2025 00:21:56 +0000 Subject: [PATCH 1137/1318] Update chimney from 1.8.0 to 1.8.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index fa8a83115..691c4dd32 100644 --- a/build.sbt +++ b/build.sbt @@ -483,7 +483,7 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps .map(_.withConfigurations(Some("it,test"))), - libraryDependencies += "io.scalaland" %% "chimney" % "1.8.0", + libraryDependencies += "io.scalaland" %% "chimney" % "1.8.1", Defaults.itSettings ) From aa98749949bbfe6f687ce938d8145adad26aafd3 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 29 May 2025 00:22:21 +0000 Subject: [PATCH 1138/1318] Update elastic4s-client-esjava, ... from 8.18.0 to 8.18.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index fa8a83115..0394a119f 100644 --- a/build.sbt +++ b/build.sbt @@ -417,7 +417,7 @@ lazy val scala2_libraries = val circeVersion = "0.14.13" val monixVersion = "3.4.1" val sparkVersion = "3.5.5" -val elastic4sVersion = "8.18.0" +val elastic4sVersion = "8.18.1" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion val sparkSqlDep = "org.apache.spark" %% "spark-sql" % sparkVersion From 5e46b7bb315b85728e59c5052c21b01c1a45e24e Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 29 May 2025 00:22:45 +0000 Subject: [PATCH 1139/1318] Update spark-core from 3.5.5 to 3.5.6 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index fa8a83115..3c76f093e 100644 --- a/build.sbt +++ b/build.sbt @@ -416,7 +416,7 @@ lazy val scala2_libraries = val circeVersion = "0.14.13" val monixVersion = "3.4.1" -val sparkVersion = "3.5.5" +val sparkVersion = "3.5.6" val elastic4sVersion = "8.18.0" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion From 12c1bb78cb914ca846f51b4d3ac3781c3e1a5bc1 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 29 May 2025 00:22:57 +0000 Subject: [PATCH 1140/1318] Update spark-sql from 3.5.5 to 4.0.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index fa8a83115..39d5a9d5c 100644 --- a/build.sbt +++ b/build.sbt @@ -416,7 +416,7 @@ lazy val scala2_libraries = val circeVersion = "0.14.13" val monixVersion = "3.4.1" -val sparkVersion = "3.5.5" +val sparkVersion = "4.0.0" val elastic4sVersion = "8.18.0" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion From b1aa3509849b64199e1ef3309ebcefba6802c6d7 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 29 May 2025 00:23:10 +0000 Subject: [PATCH 1141/1318] Update postgresql from 42.7.5 to 42.7.6 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index fa8a83115..5b5e4cb5c 100644 --- a/build.sbt +++ b/build.sbt @@ -363,7 +363,7 @@ val fs2Version = "3.12.0" val reactiveMongo = "1.1.0-RC15" val slickPgVersion = "0.23.0" val scalaTestContainersVersion = "0.43.0" -val postgresqlVersion = "42.7.5" +val postgresqlVersion = "42.7.6" val json4sVersion = "4.0.7" lazy val scala2_libraries = From 07f021892099d0c536943be81e8c0658dc41ed9b Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 29 May 2025 00:23:35 +0000 Subject: [PATCH 1142/1318] Update scala-xml from 2.3.0 to 2.4.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index fa8a83115..4f0b409e0 100644 --- a/build.sbt +++ b/build.sbt @@ -41,7 +41,7 @@ lazy val scala_core_2 = (project in file("scala-core-modules/scala-core-2")) scalaVersion := scala3Version ) -val scalaXmlDep = "org.scala-lang.modules" %% "scala-xml" % "2.3.0" +val scalaXmlDep = "org.scala-lang.modules" %% "scala-xml" % "2.4.0" lazy val scala_core_3 = (project in file("scala-core-modules/scala-core-3")) .settings( From 07ede40cc92e08706b3ecf5a8267335fd8375478 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 29 May 2025 00:23:57 +0000 Subject: [PATCH 1143/1318] Update sbt, scripted-plugin from 1.10.11 to 1.11.0 --- project/build.properties | 2 +- sbt-release/project/build.properties | 2 +- sbt-standalone/project/build.properties | 2 +- scala-gatling/project/build.properties | 2 +- scala-graalvm/scala-graalvm-http-app/project/build.properties | 2 +- scala-sbt/intro-to-sbt/project/build.properties | 2 +- scala-sbt/scalafix/project/build.properties | 2 +- scalatra/project/build.properties | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/project/build.properties b/project/build.properties index fa5667a70..02e9975a0 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1,2 +1,2 @@ -sbt.version=1.10.11 +sbt.version=1.11.0 diff --git a/sbt-release/project/build.properties b/sbt-release/project/build.properties index 53bb739e7..360c5947e 100644 --- a/sbt-release/project/build.properties +++ b/sbt-release/project/build.properties @@ -1 +1 @@ -sbt.version = 1.10.11 +sbt.version = 1.11.0 diff --git a/sbt-standalone/project/build.properties b/sbt-standalone/project/build.properties index cc68b53f1..6520f6981 100644 --- a/sbt-standalone/project/build.properties +++ b/sbt-standalone/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.11 +sbt.version=1.11.0 diff --git a/scala-gatling/project/build.properties b/scala-gatling/project/build.properties index cc68b53f1..6520f6981 100644 --- a/scala-gatling/project/build.properties +++ b/scala-gatling/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.11 +sbt.version=1.11.0 diff --git a/scala-graalvm/scala-graalvm-http-app/project/build.properties b/scala-graalvm/scala-graalvm-http-app/project/build.properties index cc68b53f1..6520f6981 100644 --- a/scala-graalvm/scala-graalvm-http-app/project/build.properties +++ b/scala-graalvm/scala-graalvm-http-app/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.11 +sbt.version=1.11.0 diff --git a/scala-sbt/intro-to-sbt/project/build.properties b/scala-sbt/intro-to-sbt/project/build.properties index cc68b53f1..6520f6981 100644 --- a/scala-sbt/intro-to-sbt/project/build.properties +++ b/scala-sbt/intro-to-sbt/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.11 +sbt.version=1.11.0 diff --git a/scala-sbt/scalafix/project/build.properties b/scala-sbt/scalafix/project/build.properties index af06c851b..1f63e7479 100644 --- a/scala-sbt/scalafix/project/build.properties +++ b/scala-sbt/scalafix/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.11 \ No newline at end of file +sbt.version=1.11.0 \ No newline at end of file diff --git a/scalatra/project/build.properties b/scalatra/project/build.properties index cc68b53f1..6520f6981 100644 --- a/scalatra/project/build.properties +++ b/scalatra/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.11 +sbt.version=1.11.0 From 3a130527938ca0efcc2123c2b5a8b30dbeb0abcf Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 29 May 2025 00:24:20 +0000 Subject: [PATCH 1144/1318] Update s3, sqs from 2.31.47 to 2.31.52 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index fa8a83115..a6172ad2c 100644 --- a/build.sbt +++ b/build.sbt @@ -471,7 +471,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.12" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.31.47" + "software.amazon.awssdk" % "sqs" % "2.31.52" ), Defaults.itSettings ) @@ -595,7 +595,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.783" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.31.47" + "software.amazon.awssdk" % "s3" % "2.31.52" ), Defaults.itSettings, IntegrationTest / fork := true From 97c3143c12e1c800d6adf43e2af565ebb479e776 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 6 Jun 2025 00:20:18 +0000 Subject: [PATCH 1145/1318] Update aws-java-sdk-s3 from 1.12.783 to 1.12.785 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a5e8b45cd..3ff9998bd 100644 --- a/build.sbt +++ b/build.sbt @@ -592,7 +592,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) scalaMock, "com.lihaoyi" %% "utest" % "0.8.5" % "test", munitDep, - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.783" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.785" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.31.52" From 23d7e7e9b72c35426b22bd45faf5589e77b63af3 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 6 Jun 2025 00:20:30 +0000 Subject: [PATCH 1146/1318] Update slick-pg, slick-pg_json4s from 0.23.0 to 0.23.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a5e8b45cd..03cb690d6 100644 --- a/build.sbt +++ b/build.sbt @@ -361,7 +361,7 @@ val shapelessVersion = "2.3.13" val scalazVersion = "7.3.8" val fs2Version = "3.12.0" val reactiveMongo = "1.1.0-RC15" -val slickPgVersion = "0.23.0" +val slickPgVersion = "0.23.1" val scalaTestContainersVersion = "0.43.0" val postgresqlVersion = "42.7.6" val json4sVersion = "4.0.7" From 1b01bc27cf8a2f5280456d7d2d23c51c79357103 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 6 Jun 2025 00:20:53 +0000 Subject: [PATCH 1147/1318] Update c3p0 from 0.11.0 to 0.11.1 --- scalatra/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scalatra/build.sbt b/scalatra/build.sbt index cbdd68f17..734daa92b 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -16,7 +16,7 @@ libraryDependencies ++= Seq( "org.json4s" %% "json4s-jackson" % "4.0.7", "com.typesafe.slick" %% "slick" % "3.6.1", "com.h2database" % "h2" % "2.1.214", - "com.mchange" % "c3p0" % "0.11.0" + "com.mchange" % "c3p0" % "0.11.1" ) libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always enablePlugins(SbtTwirl) From d28da0b059398538348b57ea6a79ac85cf46ee39 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 6 Jun 2025 00:21:14 +0000 Subject: [PATCH 1148/1318] Update opencsv from 5.11 to 5.11.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a5e8b45cd..4a7925996 100644 --- a/build.sbt +++ b/build.sbt @@ -443,7 +443,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "com.typesafe.scala-logging" %% "scala-logging" % "3.9.5", "software.amazon.awssdk" % "s3" % "2.25.9", "com.github.seratch" %% "awscala" % "0.9.2", - "com.opencsv" % "opencsv" % "5.11", + "com.opencsv" % "opencsv" % "5.11.1", "com.github.tototoshi" %% "scala-csv" % "2.0.0", "org.apache.commons" % "commons-csv" % "1.14.0" ), From 8ade2c5b57a38a3a64b2e6a3aab0287e6cdbad39 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 6 Jun 2025 00:21:25 +0000 Subject: [PATCH 1149/1318] Update de.flapdoodle.embed.mongo from 4.20.0 to 4.20.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a5e8b45cd..462df66dd 100644 --- a/build.sbt +++ b/build.sbt @@ -8,7 +8,7 @@ val catsEffect = "org.typelevel" %% "cats-effect" % "3.6.1" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.6.1" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV val logback = "ch.qos.logback" % "logback-classic" % "1.5.17" -val embedMongoVersion = "4.20.0" +val embedMongoVersion = "4.20.1" val AkkaVersion = "2.9.3" val AlpakkaVersion = "8.0.0" val AkkaHttpVersion = "10.6.3" From 600b2edcc84b9e61bbe32c015ac067d678935cc3 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 6 Jun 2025 00:21:35 +0000 Subject: [PATCH 1150/1318] Update zio, zio-streams, zio-test, ... from 2.1.18 to 2.1.19 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a5e8b45cd..4563c1881 100644 --- a/build.sbt +++ b/build.sbt @@ -21,7 +21,7 @@ val scalaTestDeps = Seq( ) val scalaMock = "org.scalamock" %% "scalamock" % "7.3.2" % Test -val zioVersion = "2.1.18" +val zioVersion = "2.1.19" lazy val scala_core = (project in file("scala-core-modules/scala-core")) .settings( From f2e3b4cb53449b06132a4108d604902ef218b870 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 6 Jun 2025 00:22:00 +0000 Subject: [PATCH 1151/1318] Update zio-http, zio-http-testkit from 3.3.2 to 3.3.3 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index a5e8b45cd..8a68a1b32 100644 --- a/build.sbt +++ b/build.sbt @@ -739,7 +739,7 @@ lazy val zio3 = (project in file("zio3")) .settings( libraryDependencies ++= Seq( zioJsonDep, - "dev.zio" %% "zio-http" % "3.3.2", + "dev.zio" %% "zio-http" % "3.3.3", "io.getquill" %% "quill-zio" % "4.8.5", "io.getquill" %% "quill-jdbc-zio" % "4.8.5", "com.h2database" % "h2" % "2.2.220" @@ -748,7 +748,7 @@ lazy val zio3 = (project in file("zio3")) "dev.zio" %% "zio-test" % zioVersion % Test, zioTestSbt, "dev.zio" %% "zio-test-magnolia" % zioVersion % Test, - "dev.zio" %% "zio-http-testkit" % "3.3.2" % Test + "dev.zio" %% "zio-http-testkit" % "3.3.3" % Test ), testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework"), run / fork := true From 70f86822ae596cc88784fd21b02dda95594533d1 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 6 Jun 2025 00:22:54 +0000 Subject: [PATCH 1152/1318] Update scala3-library from 3.7.0 to 3.7.1 --- project/ScalaVersions.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/ScalaVersions.scala b/project/ScalaVersions.scala index 34fc16cdc..7547434b4 100644 --- a/project/ScalaVersions.scala +++ b/project/ScalaVersions.scala @@ -1,6 +1,6 @@ object ScalaVersions { val scala2Version = "2.13.16" - val scala3Version = "3.7.0" + val scala3Version = "3.7.1" @deprecated( "Use Scala 2.13 or Scala 3. Don't use 2.12 unless it is a specific feature in 2.12." ) From a643dcac2983a7fe0ae413b70e1e3dad245f1948 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 6 Jun 2025 00:23:12 +0000 Subject: [PATCH 1153/1318] Update sbt, scripted-plugin from 1.11.0 to 1.11.1 --- project/build.properties | 2 +- sbt-release/project/build.properties | 2 +- sbt-standalone/project/build.properties | 2 +- scala-gatling/project/build.properties | 2 +- scala-graalvm/scala-graalvm-http-app/project/build.properties | 2 +- scala-sbt/intro-to-sbt/project/build.properties | 2 +- scala-sbt/scalafix/project/build.properties | 2 +- scalatra/project/build.properties | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/project/build.properties b/project/build.properties index 02e9975a0..7b9d4efb5 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1,2 +1,2 @@ -sbt.version=1.11.0 +sbt.version=1.11.1 diff --git a/sbt-release/project/build.properties b/sbt-release/project/build.properties index 360c5947e..3093542b7 100644 --- a/sbt-release/project/build.properties +++ b/sbt-release/project/build.properties @@ -1 +1 @@ -sbt.version = 1.11.0 +sbt.version = 1.11.1 diff --git a/sbt-standalone/project/build.properties b/sbt-standalone/project/build.properties index 6520f6981..61c9b1cb1 100644 --- a/sbt-standalone/project/build.properties +++ b/sbt-standalone/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.0 +sbt.version=1.11.1 diff --git a/scala-gatling/project/build.properties b/scala-gatling/project/build.properties index 6520f6981..61c9b1cb1 100644 --- a/scala-gatling/project/build.properties +++ b/scala-gatling/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.0 +sbt.version=1.11.1 diff --git a/scala-graalvm/scala-graalvm-http-app/project/build.properties b/scala-graalvm/scala-graalvm-http-app/project/build.properties index 6520f6981..61c9b1cb1 100644 --- a/scala-graalvm/scala-graalvm-http-app/project/build.properties +++ b/scala-graalvm/scala-graalvm-http-app/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.0 +sbt.version=1.11.1 diff --git a/scala-sbt/intro-to-sbt/project/build.properties b/scala-sbt/intro-to-sbt/project/build.properties index 6520f6981..61c9b1cb1 100644 --- a/scala-sbt/intro-to-sbt/project/build.properties +++ b/scala-sbt/intro-to-sbt/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.0 +sbt.version=1.11.1 diff --git a/scala-sbt/scalafix/project/build.properties b/scala-sbt/scalafix/project/build.properties index 1f63e7479..54a735df1 100644 --- a/scala-sbt/scalafix/project/build.properties +++ b/scala-sbt/scalafix/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.0 \ No newline at end of file +sbt.version=1.11.1 \ No newline at end of file diff --git a/scalatra/project/build.properties b/scalatra/project/build.properties index 6520f6981..61c9b1cb1 100644 --- a/scalatra/project/build.properties +++ b/scalatra/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.0 +sbt.version=1.11.1 From 7f26b74877a99a90b40eb6bdcda4bf095d273df2 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 6 Jun 2025 00:23:33 +0000 Subject: [PATCH 1154/1318] Update pulsar from 1.21.0 to 1.21.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a5e8b45cd..b188f38c5 100644 --- a/build.sbt +++ b/build.sbt @@ -396,7 +396,7 @@ lazy val scala2_libraries = "org.scala-lang.modules" %% "scala-async" % "1.0.1", "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.11.0", "com.clever-cloud.pulsar4s" %% "pulsar4s-jackson" % "2.11.0", - "org.testcontainers" % "pulsar" % "1.21.0" % IntegrationTest, + "org.testcontainers" % "pulsar" % "1.21.1" % IntegrationTest, "org.apache.kafka" % "kafka-clients" % kafkaVersion, "com.fasterxml.jackson.core" % "jackson-databind" % jackSonVersion, "com.fasterxml.jackson.datatype" % "jackson-datatype-jsr310" % jackSonVersion, From a53c74d6d94e7b56b8baf67252a5390f2729982b Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 6 Jun 2025 00:23:54 +0000 Subject: [PATCH 1155/1318] Update s3, sqs from 2.31.52 to 2.31.58 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index a5e8b45cd..801a37d9c 100644 --- a/build.sbt +++ b/build.sbt @@ -471,7 +471,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.12" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.31.52" + "software.amazon.awssdk" % "sqs" % "2.31.58" ), Defaults.itSettings ) @@ -595,7 +595,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.783" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.31.52" + "software.amazon.awssdk" % "s3" % "2.31.58" ), Defaults.itSettings, IntegrationTest / fork := true From 55d8354fc1ba1f84369a47b320a3c30c2a0e34fd Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 14 Jun 2025 00:20:11 +0000 Subject: [PATCH 1156/1318] Update aws-java-sdk-s3 from 1.12.785 to 1.12.787 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 2766c5045..a2b4c6454 100644 --- a/build.sbt +++ b/build.sbt @@ -592,7 +592,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) scalaMock, "com.lihaoyi" %% "utest" % "0.8.5" % "test", munitDep, - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.785" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.787" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.31.58" From 6697ac61deffbc1ae3e0a0efa62a8cc5e627b2c8 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 14 Jun 2025 00:21:02 +0000 Subject: [PATCH 1157/1318] Update circe-core, circe-generic, ... from 0.14.13 to 0.14.14 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 2766c5045..291e2a477 100644 --- a/build.sbt +++ b/build.sbt @@ -414,7 +414,7 @@ lazy val scala2_libraries = Defaults.itSettings ) -val circeVersion = "0.14.13" +val circeVersion = "0.14.14" val monixVersion = "3.4.1" val sparkVersion = "3.5.6" val elastic4sVersion = "8.18.1" From 05eeddd96d1e0ab5e2cb9913eba8d88096d8d7bd Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 14 Jun 2025 00:22:04 +0000 Subject: [PATCH 1158/1318] Update kafka-avro-serializer from 7.9.1 to 7.9.2 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 2766c5045..a8ca0de69 100644 --- a/build.sbt +++ b/build.sbt @@ -555,7 +555,7 @@ val jackSonVersion = "2.19.0" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" -val kafkaAvroSerializer = "7.9.1" +val kafkaAvroSerializer = "7.9.2" val pureConfigDep = "com.github.pureconfig" %% "pureconfig" % pureconfigVersion From d23deb26ec45223e1e7e58557a4038d9ccb1df59 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 14 Jun 2025 00:23:21 +0000 Subject: [PATCH 1159/1318] Update elastic4s-client-esjava, ... from 8.18.1 to 8.18.2 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 2766c5045..3405561af 100644 --- a/build.sbt +++ b/build.sbt @@ -417,7 +417,7 @@ lazy val scala2_libraries = val circeVersion = "0.14.13" val monixVersion = "3.4.1" val sparkVersion = "3.5.6" -val elastic4sVersion = "8.18.1" +val elastic4sVersion = "8.18.2" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion val sparkSqlDep = "org.apache.spark" %% "spark-sql" % sparkVersion From bb00bed3cc6387fbba6a576ebf56fe73aa6e53eb Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 14 Jun 2025 00:23:53 +0000 Subject: [PATCH 1160/1318] Update kafka-clients from 7.9.1-ce to 7.9.2-ce --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 2766c5045..29ff02baf 100644 --- a/build.sbt +++ b/build.sbt @@ -549,7 +549,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) ) val spireVersion = "0.18.0" -val kafkaVersion = "7.9.1-ce" +val kafkaVersion = "7.9.2-ce" val pureconfigVersion = "0.17.9" val jackSonVersion = "2.19.0" val log4jApiScalaVersion = "13.1.0" From 8aaa9e88833f560b3db03fb7668ee9b46abf9ccc Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 14 Jun 2025 00:24:06 +0000 Subject: [PATCH 1161/1318] Update mongo-scala-driver from 5.5.0 to 5.5.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 2766c5045..4b4a2b268 100644 --- a/build.sbt +++ b/build.sbt @@ -280,7 +280,7 @@ lazy val scala_akka_dependencies: Seq[ModuleID] = Seq( akkaTypedTestkit, "com.lightbend.akka" %% "akka-stream-alpakka-mongodb" % AlpakkaVersion, akkaStreamDep, - "org.mongodb.scala" %% "mongo-scala-driver" % "5.5.0", + "org.mongodb.scala" %% "mongo-scala-driver" % "5.5.1", "com.lightbend.akka" %% "akka-stream-alpakka-file" % AlpakkaVersion, jUnitInterface, embeddedMongo % Test, From 9e80676ba90c1d52d68755c39bcdf7f5a0cff15f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 14 Jun 2025 00:24:36 +0000 Subject: [PATCH 1162/1318] Update postgresql from 42.7.6 to 42.7.7 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 2766c5045..557e41fef 100644 --- a/build.sbt +++ b/build.sbt @@ -363,7 +363,7 @@ val fs2Version = "3.12.0" val reactiveMongo = "1.1.0-RC15" val slickPgVersion = "0.23.1" val scalaTestContainersVersion = "0.43.0" -val postgresqlVersion = "42.7.6" +val postgresqlVersion = "42.7.7" val json4sVersion = "4.0.7" lazy val scala2_libraries = From f94ed6ad6222a441d0ef5f7111c981e0ffd7f2cf Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 14 Jun 2025 00:25:06 +0000 Subject: [PATCH 1163/1318] Update sbt-scala-native from 0.5.7 to 0.5.8 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index e911ea6e9..ff8deaebf 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,6 +1,6 @@ addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.4") -addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.7") +addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.8") addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.19.0") addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.2.1") From bd560a45cb2072e0c8e906855e89e93c12d8cf0a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 14 Jun 2025 00:25:35 +0000 Subject: [PATCH 1164/1318] Update sbt, scripted-plugin from 1.11.1 to 1.11.2 --- project/build.properties | 2 +- sbt-release/project/build.properties | 2 +- sbt-standalone/project/build.properties | 2 +- scala-gatling/project/build.properties | 2 +- scala-graalvm/scala-graalvm-http-app/project/build.properties | 2 +- scala-sbt/intro-to-sbt/project/build.properties | 2 +- scala-sbt/scalafix/project/build.properties | 2 +- scalatra/project/build.properties | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/project/build.properties b/project/build.properties index 7b9d4efb5..462b0b4d6 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1,2 +1,2 @@ -sbt.version=1.11.1 +sbt.version=1.11.2 diff --git a/sbt-release/project/build.properties b/sbt-release/project/build.properties index 3093542b7..7ff4b8b64 100644 --- a/sbt-release/project/build.properties +++ b/sbt-release/project/build.properties @@ -1 +1 @@ -sbt.version = 1.11.1 +sbt.version = 1.11.2 diff --git a/sbt-standalone/project/build.properties b/sbt-standalone/project/build.properties index 61c9b1cb1..bbb0b608c 100644 --- a/sbt-standalone/project/build.properties +++ b/sbt-standalone/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.1 +sbt.version=1.11.2 diff --git a/scala-gatling/project/build.properties b/scala-gatling/project/build.properties index 61c9b1cb1..bbb0b608c 100644 --- a/scala-gatling/project/build.properties +++ b/scala-gatling/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.1 +sbt.version=1.11.2 diff --git a/scala-graalvm/scala-graalvm-http-app/project/build.properties b/scala-graalvm/scala-graalvm-http-app/project/build.properties index 61c9b1cb1..bbb0b608c 100644 --- a/scala-graalvm/scala-graalvm-http-app/project/build.properties +++ b/scala-graalvm/scala-graalvm-http-app/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.1 +sbt.version=1.11.2 diff --git a/scala-sbt/intro-to-sbt/project/build.properties b/scala-sbt/intro-to-sbt/project/build.properties index 61c9b1cb1..bbb0b608c 100644 --- a/scala-sbt/intro-to-sbt/project/build.properties +++ b/scala-sbt/intro-to-sbt/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.1 +sbt.version=1.11.2 diff --git a/scala-sbt/scalafix/project/build.properties b/scala-sbt/scalafix/project/build.properties index 54a735df1..3f1b69847 100644 --- a/scala-sbt/scalafix/project/build.properties +++ b/scala-sbt/scalafix/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.1 \ No newline at end of file +sbt.version=1.11.2 \ No newline at end of file diff --git a/scalatra/project/build.properties b/scalatra/project/build.properties index 61c9b1cb1..bbb0b608c 100644 --- a/scalatra/project/build.properties +++ b/scalatra/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.1 +sbt.version=1.11.2 From 91501b1a83456017816f2ffb55be00404e975b00 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 14 Jun 2025 00:26:11 +0000 Subject: [PATCH 1165/1318] Update s3, sqs from 2.31.58 to 2.31.63 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 2766c5045..bafff9e5b 100644 --- a/build.sbt +++ b/build.sbt @@ -471,7 +471,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.12" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.31.58" + "software.amazon.awssdk" % "sqs" % "2.31.63" ), Defaults.itSettings ) @@ -595,7 +595,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.785" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.31.58" + "software.amazon.awssdk" % "s3" % "2.31.63" ), Defaults.itSettings, IntegrationTest / fork := true From 7dcce2b9dd8f3a085060e82d4719cd94bbfb2220 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 16 Jun 2025 00:23:45 +0000 Subject: [PATCH 1166/1318] Update spark-core, spark-sql from 3.5.6 to 4.0.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index cdb71b5bb..507c40f72 100644 --- a/build.sbt +++ b/build.sbt @@ -416,7 +416,7 @@ lazy val scala2_libraries = val circeVersion = "0.14.14" val monixVersion = "3.4.1" -val sparkVersion = "3.5.6" +val sparkVersion = "4.0.0" val elastic4sVersion = "8.18.2" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion From ac48d70b9f7ecceb47b4cafd295a2055e25be094 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 22 Jun 2025 00:23:08 +0000 Subject: [PATCH 1167/1318] Update jackson-databind from 2.19.0 to 2.19.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ea32a2f07..e5aacb5be 100644 --- a/build.sbt +++ b/build.sbt @@ -551,7 +551,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) val spireVersion = "0.18.0" val kafkaVersion = "7.9.2-ce" val pureconfigVersion = "0.17.9" -val jackSonVersion = "2.19.0" +val jackSonVersion = "2.19.1" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" From 5c30ca00feb84e1664dcdd6ce70de8cc09a964a1 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 22 Jun 2025 00:23:32 +0000 Subject: [PATCH 1168/1318] Update jackson-datatype-jsr310 from 2.19.0 to 2.19.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ea32a2f07..e5aacb5be 100644 --- a/build.sbt +++ b/build.sbt @@ -551,7 +551,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) val spireVersion = "0.18.0" val kafkaVersion = "7.9.2-ce" val pureconfigVersion = "0.17.9" -val jackSonVersion = "2.19.0" +val jackSonVersion = "2.19.1" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" From 3d6d67669976c948e22cc1b0f645ad73eb7128f1 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 22 Jun 2025 00:23:53 +0000 Subject: [PATCH 1169/1318] Update jackson-module-scala from 2.19.0 to 2.19.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ea32a2f07..e5aacb5be 100644 --- a/build.sbt +++ b/build.sbt @@ -551,7 +551,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) val spireVersion = "0.18.0" val kafkaVersion = "7.9.2-ce" val pureconfigVersion = "0.17.9" -val jackSonVersion = "2.19.0" +val jackSonVersion = "2.19.1" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" From ed1757e37a266a5814657b0ff2573687f395ed37 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 22 Jun 2025 00:24:12 +0000 Subject: [PATCH 1170/1318] Update tapir-akka-http-server, tapir-core, ... from 1.11.33 to 1.11.34 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index c6fe3b638..72af752f7 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.11.33" +val tapirV = "1.11.34" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From 3bc59015c9d8a05c4b4852daaed5b701ad406859 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 22 Jun 2025 00:24:39 +0000 Subject: [PATCH 1171/1318] Update zio-json from 0.7.43 to 0.7.44 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index ea32a2f07..a1791023b 100644 --- a/build.sbt +++ b/build.sbt @@ -699,7 +699,7 @@ lazy val cats_effects = (project in file("cats-effects")) libraryDependencies += "junit" % "junit" % "4.13.2" % Test ) -val zioJsonDep = "dev.zio" %% "zio-json" % "0.7.43" +val zioJsonDep = "dev.zio" %% "zio-json" % "0.7.44" val zioTestSbt = "dev.zio" %% "zio-test-sbt" % zioVersion % Test lazy val zio = (project in file("zio")) @@ -721,7 +721,7 @@ lazy val zio2 = (project in file("zio-2")) name := "zio-2", scalaVersion := scala3Version, libraryDependencies += "dev.zio" %% "zio" % zioVersion, - libraryDependencies += "dev.zio" %% "zio-json" % "0.7.43", + libraryDependencies += "dev.zio" %% "zio-json" % "0.7.44", libraryDependencies += "dev.zio" %% "zio-test" % zioVersion % Test, libraryDependencies += "dev.zio" %% "zio-test-sbt" % zioVersion % Test, libraryDependencies += "dev.zio" %% "zio-logging" % "2.1.17", From bc6be56c514854d8d95a171d8df16b2be1e7edc7 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 22 Jun 2025 00:25:01 +0000 Subject: [PATCH 1172/1318] Update kafka-avro-serializer from 7.9.2 to 8.0.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ea32a2f07..d4e295f3d 100644 --- a/build.sbt +++ b/build.sbt @@ -555,7 +555,7 @@ val jackSonVersion = "2.19.0" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.20.0" val avro4sVersion = "4.1.2" -val kafkaAvroSerializer = "7.9.2" +val kafkaAvroSerializer = "8.0.0" val pureConfigDep = "com.github.pureconfig" %% "pureconfig" % pureconfigVersion From 0b344d27bda4b459deacc9077eb35895ec4a03a8 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 22 Jun 2025 00:25:29 +0000 Subject: [PATCH 1173/1318] Update elastic4s-client-esjava, ... from 8.18.2 to 9.0.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ea32a2f07..0f65ffe49 100644 --- a/build.sbt +++ b/build.sbt @@ -417,7 +417,7 @@ lazy val scala2_libraries = val circeVersion = "0.14.14" val monixVersion = "3.4.1" val sparkVersion = "3.5.6" -val elastic4sVersion = "8.18.2" +val elastic4sVersion = "9.0.0" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion val sparkSqlDep = "org.apache.spark" %% "spark-sql" % sparkVersion From 46a6fe56d68c21e4dc7200f997af93b6836fc9f2 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 22 Jun 2025 00:25:51 +0000 Subject: [PATCH 1174/1318] Update kafka-clients from 7.9.2-ce to 8.0.0-ce --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ea32a2f07..c3769f426 100644 --- a/build.sbt +++ b/build.sbt @@ -549,7 +549,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) ) val spireVersion = "0.18.0" -val kafkaVersion = "7.9.2-ce" +val kafkaVersion = "8.0.0-ce" val pureconfigVersion = "0.17.9" val jackSonVersion = "2.19.0" val log4jApiScalaVersion = "13.1.0" From 4362f2a1f8449b40410a060bf1238b6a7ed7b7a5 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 22 Jun 2025 00:26:02 +0000 Subject: [PATCH 1175/1318] Update log4j-core from 2.24.3 to 2.25.0 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index ea32a2f07..af5448979 100644 --- a/build.sbt +++ b/build.sbt @@ -439,7 +439,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) circeParserDep, "com.softwaremill.retry" %% "retry" % "0.3.6", log4jApiScalaDep, - "org.apache.logging.log4j" % "log4j-core" % "2.24.3" % Runtime, + "org.apache.logging.log4j" % "log4j-core" % "2.25.0" % Runtime, "com.typesafe.scala-logging" %% "scala-logging" % "3.9.5", "software.amazon.awssdk" % "s3" % "2.25.9", "com.github.seratch" %% "awscala" % "0.9.2", @@ -505,7 +505,7 @@ lazy val scala_libraries_os = (project in file("scala-libraries-os")) libraryDependencies ++= scalaTestDeps, libraryDependencies ++= Seq( log4jApiScalaDep, - "org.apache.logging.log4j" % "log4j-core" % "2.24.3" % Runtime + "org.apache.logging.log4j" % "log4j-core" % "2.25.0" % Runtime ), libraryDependencies += osLibDep ) From 63babb40b1141204ead42c376b51c6f1e3d6c5ef Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 22 Jun 2025 00:26:15 +0000 Subject: [PATCH 1176/1318] Update scalamock from 7.3.2 to 7.3.3 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ea32a2f07..74e09b3c5 100644 --- a/build.sbt +++ b/build.sbt @@ -20,7 +20,7 @@ val scalaTestDeps = Seq( "org.scalatest" %% "scalatest-flatspec" % "3.2.19" % Test ) -val scalaMock = "org.scalamock" %% "scalamock" % "7.3.2" % Test +val scalaMock = "org.scalamock" %% "scalamock" % "7.3.3" % Test val zioVersion = "2.1.19" lazy val scala_core = (project in file("scala-core-modules/scala-core")) From 36f7d2478a9193c133d076ee6a07f21ea1827947 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 22 Jun 2025 00:26:36 +0000 Subject: [PATCH 1177/1318] Update pulsar from 1.21.1 to 1.21.2 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ea32a2f07..c62d51816 100644 --- a/build.sbt +++ b/build.sbt @@ -396,7 +396,7 @@ lazy val scala2_libraries = "org.scala-lang.modules" %% "scala-async" % "1.0.1", "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.11.0", "com.clever-cloud.pulsar4s" %% "pulsar4s-jackson" % "2.11.0", - "org.testcontainers" % "pulsar" % "1.21.1" % IntegrationTest, + "org.testcontainers" % "pulsar" % "1.21.2" % IntegrationTest, "org.apache.kafka" % "kafka-clients" % kafkaVersion, "com.fasterxml.jackson.core" % "jackson-databind" % jackSonVersion, "com.fasterxml.jackson.datatype" % "jackson-datatype-jsr310" % jackSonVersion, From 2ae0e98d7f67a077bf75a43f8b2ae5a9d8cda35a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 22 Jun 2025 00:26:59 +0000 Subject: [PATCH 1178/1318] Update s3, sqs from 2.31.63 to 2.31.68 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index ea32a2f07..4944c1846 100644 --- a/build.sbt +++ b/build.sbt @@ -471,7 +471,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.12" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.31.63" + "software.amazon.awssdk" % "sqs" % "2.31.68" ), Defaults.itSettings ) @@ -595,7 +595,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.787" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.31.63" + "software.amazon.awssdk" % "s3" % "2.31.68" ), Defaults.itSettings, IntegrationTest / fork := true From 1bdfbf53da82bfa3b9689e8223713ce65703ef2c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 30 Jun 2025 00:22:36 +0000 Subject: [PATCH 1179/1318] Update c3p0 from 0.11.1 to 0.11.2 --- scalatra/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scalatra/build.sbt b/scalatra/build.sbt index 734daa92b..9c55d909a 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -16,7 +16,7 @@ libraryDependencies ++= Seq( "org.json4s" %% "json4s-jackson" % "4.0.7", "com.typesafe.slick" %% "slick" % "3.6.1", "com.h2database" % "h2" % "2.1.214", - "com.mchange" % "c3p0" % "0.11.1" + "com.mchange" % "c3p0" % "0.11.2" ) libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always enablePlugins(SbtTwirl) From 5cd28bc71a87b7f6b978aac572737ca506d166e9 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 30 Jun 2025 00:23:00 +0000 Subject: [PATCH 1180/1318] Update opencsv from 5.11.1 to 5.11.2 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 848921548..aef1f9e28 100644 --- a/build.sbt +++ b/build.sbt @@ -444,7 +444,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "com.typesafe.scala-logging" %% "scala-logging" % "3.9.5", "software.amazon.awssdk" % "s3" % "2.25.9", "com.github.seratch" %% "awscala" % "0.9.2", - "com.opencsv" % "opencsv" % "5.11.1", + "com.opencsv" % "opencsv" % "5.11.2", "com.github.tototoshi" %% "scala-csv" % "2.0.0", "org.apache.commons" % "commons-csv" % "1.14.0" ), From bcc40822359d147e30d68786d6a8ebfa051172da Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 30 Jun 2025 00:23:11 +0000 Subject: [PATCH 1181/1318] Update tapir-akka-http-server, tapir-core, ... from 1.11.34 to 1.11.35 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index 72af752f7..fbd91b99c 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.11.34" +val tapirV = "1.11.35" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From 97b6f3787b22fc16aa6a51dbbd5444e799b81b59 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 30 Jun 2025 00:23:39 +0000 Subject: [PATCH 1182/1318] Update pulsar from 1.21.2 to 1.21.3 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 848921548..d65095268 100644 --- a/build.sbt +++ b/build.sbt @@ -396,7 +396,7 @@ lazy val scala2_libraries = "org.scala-lang.modules" %% "scala-async" % "1.0.1", "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.11.0", "com.clever-cloud.pulsar4s" %% "pulsar4s-jackson" % "2.11.0", - "org.testcontainers" % "pulsar" % "1.21.2" % IntegrationTest, + "org.testcontainers" % "pulsar" % "1.21.3" % IntegrationTest, "org.apache.kafka" % "kafka-clients" % kafkaVersion, "com.fasterxml.jackson.core" % "jackson-databind" % jackSonVersion, "com.fasterxml.jackson.datatype" % "jackson-datatype-jsr310" % jackSonVersion, From 6839996d0dcf07d1e4e8a1d7a7be6f638c4b44e1 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 30 Jun 2025 00:24:03 +0000 Subject: [PATCH 1183/1318] Update s3, sqs from 2.31.68 to 2.31.73 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 848921548..c2e753f30 100644 --- a/build.sbt +++ b/build.sbt @@ -472,7 +472,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.12" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.31.68" + "software.amazon.awssdk" % "sqs" % "2.31.73" ), Defaults.itSettings ) @@ -596,7 +596,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.787" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.31.68" + "software.amazon.awssdk" % "s3" % "2.31.73" ), Defaults.itSettings, IntegrationTest / fork := true From 289e75baf289d1ac2c32805d6f96867eebf76bd1 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 8 Jul 2025 00:21:06 +0000 Subject: [PATCH 1184/1318] Update utest from 0.8.5 to 0.8.9 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index debd011ec..6c3e9c2a4 100644 --- a/build.sbt +++ b/build.sbt @@ -591,7 +591,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) libraryDependencies ++= Seq( "org.scalacheck" %% "scalacheck" % "1.18.1" % Test, scalaMock, - "com.lihaoyi" %% "utest" % "0.8.5" % "test", + "com.lihaoyi" %% "utest" % "0.8.9" % "test", munitDep, "com.amazonaws" % "aws-java-sdk-s3" % "1.12.787" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, From 56691bcae693a69bde72578e9b84de1f49552579 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 8 Jul 2025 00:21:41 +0000 Subject: [PATCH 1185/1318] Update play-ahc-ws, play-caffeine-cache, ... from 3.0.7 to 3.0.8 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index ff8deaebf..5ab83a8a5 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -7,7 +7,7 @@ addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.2.1") libraryDependencies += "ai.kien" %% "python-native-libs" % "0.2.4" // Make sure to keep the play plugin in sync with the sub modules under play-scala group -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.7") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.8") addSbtPlugin("org.playframework.twirl" % "sbt-twirl" % "2.0.1") addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "4.2.1") From 25ebbf0325cbe88af2dd0208597b7e6def9d46a2 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 8 Jul 2025 00:22:19 +0000 Subject: [PATCH 1186/1318] Update sbt-twirl, twirl-api from 2.0.8 to 2.0.9 --- scalatra/project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scalatra/project/plugins.sbt b/scalatra/project/plugins.sbt index d109fd867..884bcac19 100644 --- a/scalatra/project/plugins.sbt +++ b/scalatra/project/plugins.sbt @@ -1,4 +1,4 @@ -addSbtPlugin("org.playframework.twirl" % "sbt-twirl" % "2.0.8") +addSbtPlugin("org.playframework.twirl" % "sbt-twirl" % "2.0.9") addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "4.2.5") From fc917700ac923fa85b8de36762963e1737f2346f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 8 Jul 2025 00:22:52 +0000 Subject: [PATCH 1187/1318] Update sbt, scripted-plugin from 1.11.2 to 1.11.3 --- project/build.properties | 2 +- sbt-release/project/build.properties | 2 +- sbt-standalone/project/build.properties | 2 +- scala-gatling/project/build.properties | 2 +- scala-graalvm/scala-graalvm-http-app/project/build.properties | 2 +- scala-sbt/intro-to-sbt/project/build.properties | 2 +- scala-sbt/scalafix/project/build.properties | 2 +- scalatra/project/build.properties | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/project/build.properties b/project/build.properties index 462b0b4d6..138bc7a55 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1,2 +1,2 @@ -sbt.version=1.11.2 +sbt.version=1.11.3 diff --git a/sbt-release/project/build.properties b/sbt-release/project/build.properties index 7ff4b8b64..1b248dfe6 100644 --- a/sbt-release/project/build.properties +++ b/sbt-release/project/build.properties @@ -1 +1 @@ -sbt.version = 1.11.2 +sbt.version = 1.11.3 diff --git a/sbt-standalone/project/build.properties b/sbt-standalone/project/build.properties index bbb0b608c..c02c575fd 100644 --- a/sbt-standalone/project/build.properties +++ b/sbt-standalone/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.2 +sbt.version=1.11.3 diff --git a/scala-gatling/project/build.properties b/scala-gatling/project/build.properties index bbb0b608c..c02c575fd 100644 --- a/scala-gatling/project/build.properties +++ b/scala-gatling/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.2 +sbt.version=1.11.3 diff --git a/scala-graalvm/scala-graalvm-http-app/project/build.properties b/scala-graalvm/scala-graalvm-http-app/project/build.properties index bbb0b608c..c02c575fd 100644 --- a/scala-graalvm/scala-graalvm-http-app/project/build.properties +++ b/scala-graalvm/scala-graalvm-http-app/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.2 +sbt.version=1.11.3 diff --git a/scala-sbt/intro-to-sbt/project/build.properties b/scala-sbt/intro-to-sbt/project/build.properties index bbb0b608c..c02c575fd 100644 --- a/scala-sbt/intro-to-sbt/project/build.properties +++ b/scala-sbt/intro-to-sbt/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.2 +sbt.version=1.11.3 diff --git a/scala-sbt/scalafix/project/build.properties b/scala-sbt/scalafix/project/build.properties index 3f1b69847..0d088626a 100644 --- a/scala-sbt/scalafix/project/build.properties +++ b/scala-sbt/scalafix/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.2 \ No newline at end of file +sbt.version=1.11.3 \ No newline at end of file diff --git a/scalatra/project/build.properties b/scalatra/project/build.properties index bbb0b608c..c02c575fd 100644 --- a/scalatra/project/build.properties +++ b/scalatra/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.2 +sbt.version=1.11.3 From 88d8431f445c1f1abed2fa6c7b2106cf3b748f36 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 8 Jul 2025 00:23:24 +0000 Subject: [PATCH 1188/1318] Update sbt-scalafmt from 2.5.4 to 2.5.5 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index ff8deaebf..8a5c32c33 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,4 +1,4 @@ -addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.4") +addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.5") addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.8") addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.19.0") From 2183ccb5b79e690c3325abcc0adbaed260aa5b91 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 8 Jul 2025 00:23:57 +0000 Subject: [PATCH 1189/1318] Update scalamock from 7.3.3 to 7.4.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index debd011ec..0a436fbfe 100644 --- a/build.sbt +++ b/build.sbt @@ -20,7 +20,7 @@ val scalaTestDeps = Seq( "org.scalatest" %% "scalatest-flatspec" % "3.2.19" % Test ) -val scalaMock = "org.scalamock" %% "scalamock" % "7.3.3" % Test +val scalaMock = "org.scalamock" %% "scalamock" % "7.4.0" % Test val zioVersion = "2.1.19" lazy val scala_core = (project in file("scala-core-modules/scala-core")) From 4d2e858200495e16889d0caea0c25f35e9b8af50 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 8 Jul 2025 00:24:29 +0000 Subject: [PATCH 1190/1318] Update scalatestplus-play from 7.0.1 to 7.0.2 --- project/LibraryVersions.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/LibraryVersions.scala b/project/LibraryVersions.scala index 5784b4874..af25d8c4b 100644 --- a/project/LibraryVersions.scala +++ b/project/LibraryVersions.scala @@ -1,5 +1,5 @@ object LibraryVersions { val playVersion = "3.0.4" val playSlickVersion = "6.2.0" - val scalatestPlayVersion = "7.0.1" + val scalatestPlayVersion = "7.0.2" } From 4aafab3ad1f0fed03ba33c7f253f9f234ef78dcc Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 8 Jul 2025 00:25:02 +0000 Subject: [PATCH 1191/1318] Update s3, sqs from 2.31.73 to 2.31.77 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index debd011ec..7ea1afe14 100644 --- a/build.sbt +++ b/build.sbt @@ -472,7 +472,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.12" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.31.73" + "software.amazon.awssdk" % "sqs" % "2.31.77" ), Defaults.itSettings ) @@ -596,7 +596,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.787" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.31.73" + "software.amazon.awssdk" % "s3" % "2.31.77" ), Defaults.itSettings, IntegrationTest / fork := true From 9d904bab706a9689ce276120cb2bb2d5404cabf3 Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sun, 13 Jul 2025 10:19:15 +0200 Subject: [PATCH 1192/1318] update versions --- build.sbt | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/build.sbt b/build.sbt index d8091c212..80616c5b0 100644 --- a/build.sbt +++ b/build.sbt @@ -4,10 +4,10 @@ ThisBuild / scalaVersion := scala3Version ThisBuild / organization := "com.baeldung" ThisBuild / organizationName := "core-scala" val jUnitInterface = "com.github.sbt" % "junit-interface" % "0.13.3" % "test" -val catsEffect = "org.typelevel" %% "cats-effect" % "3.6.1" -val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.6.1" % Test +val catsEffect = "org.typelevel" %% "cats-effect" % "3.6.2" +val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.6.2" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV -val logback = "ch.qos.logback" % "logback-classic" % "1.5.17" +val logback = "ch.qos.logback" % "logback-classic" % "1.5.18" val embedMongoVersion = "4.20.1" val AkkaVersion = "2.9.3" val AlpakkaVersion = "8.0.0" @@ -107,7 +107,7 @@ lazy val scala_core_8 = (project in file("scala-core-modules/scala-core-8")) libraryDependencies ++= scalaTestDeps, scalaVersion := scala3Version, libraryDependencies += "org.scala-lang.modules" %% "scala-java8-compat" % "1.0.2", - libraryDependencies += "com.typesafe" % "config" % "1.2.1" + libraryDependencies += "com.typesafe" % "config" % "1.4.4" // scalacOptions += "-Ymacro-debug-lite" ) @@ -185,7 +185,7 @@ lazy val scala_core_dates = libraryDependencies ++= scalaTestDeps, libraryDependencies += "joda-time" % "joda-time" % "2.14.0", libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "3.0.0", - libraryDependencies += "com.typesafe" % "config" % "1.4.3" + libraryDependencies += "com.typesafe" % "config" % "1.4.4" ) lazy val scala_lang = (project in file("scala-lang-modules/scala-lang")) @@ -392,7 +392,7 @@ lazy val scala2_libraries = "io.monix" %% "monix" % monixVersion, pureConfigDep, "com.github.pureconfig" %% "pureconfig-enumeratum" % "0.17.9", - "com.typesafe" % "config" % "1.4.3", + "com.typesafe" % "config" % "1.4.4", "org.scala-lang.modules" %% "scala-async" % "1.0.1", "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.11.0", "com.clever-cloud.pulsar4s" %% "pulsar4s-jackson" % "2.11.0", @@ -472,7 +472,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.12" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.31.77" + "software.amazon.awssdk" % "sqs" % "2.31.78" ), Defaults.itSettings ) @@ -484,7 +484,7 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps .map(_.withConfigurations(Some("it,test"))), - libraryDependencies += "io.scalaland" %% "chimney" % "1.8.1", + libraryDependencies += "io.scalaland" %% "chimney" % "1.8.2", Defaults.itSettings ) @@ -506,7 +506,7 @@ lazy val scala_libraries_os = (project in file("scala-libraries-os")) libraryDependencies ++= scalaTestDeps, libraryDependencies ++= Seq( log4jApiScalaDep, - "org.apache.logging.log4j" % "log4j-core" % "2.25.0" % Runtime + "org.apache.logging.log4j" % "log4j-core" % "2.25.1" % Runtime ), libraryDependencies += osLibDep ) @@ -521,7 +521,7 @@ lazy val redis_intro = .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( "redis.clients" % "jedis" % "6.0.0", - "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.14.1", + "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.19.1", "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % "it" ), Defaults.itSettings @@ -554,8 +554,8 @@ val kafkaVersion = "8.0.0-ce" val pureconfigVersion = "0.17.9" val jackSonVersion = "2.19.1" val log4jApiScalaVersion = "13.1.0" -val log4jVersion = "2.20.0" -val avro4sVersion = "4.1.2" +val log4jVersion = "2.25.1" +val avro4sVersion = "5.0.14" val kafkaAvroSerializer = "8.0.0" val pureConfigDep = "com.github.pureconfig" %% "pureconfig" % pureconfigVersion @@ -596,7 +596,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.787" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.31.77" + "software.amazon.awssdk" % "s3" % "2.31.78" ), Defaults.itSettings, IntegrationTest / fork := true @@ -637,7 +637,7 @@ lazy val scala_libraries_config = (project in file("scala-libraries-config")) scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps, libraryDependencies ++= Seq( - "com.typesafe" % "config" % "1.4.3", + "com.typesafe" % "config" % "1.4.4", munitDep, "com.github.japgolly.clearconfig" %% "core" % "3.1.0", catsEffect, @@ -743,7 +743,7 @@ lazy val zio3 = (project in file("zio3")) "dev.zio" %% "zio-http" % "3.3.3", "io.getquill" %% "quill-zio" % "4.8.5", "io.getquill" %% "quill-jdbc-zio" % "4.8.5", - "com.h2database" % "h2" % "2.2.220" + "com.h2database" % "h2" % "2.3.232" ), libraryDependencies ++= Seq( "dev.zio" %% "zio-test" % zioVersion % Test, From f8580a8f92b3c0a63e2c9c6d00a52c0f650a893f Mon Sep 17 00:00:00 2001 From: Yadu Krishnan Date: Sun, 13 Jul 2025 11:17:59 +0200 Subject: [PATCH 1193/1318] reverted avro --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 80616c5b0..535eb36db 100644 --- a/build.sbt +++ b/build.sbt @@ -555,7 +555,7 @@ val pureconfigVersion = "0.17.9" val jackSonVersion = "2.19.1" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.25.1" -val avro4sVersion = "5.0.14" +val avro4sVersion = "4.1.2" val kafkaAvroSerializer = "8.0.0" val pureConfigDep = "com.github.pureconfig" %% "pureconfig" % pureconfigVersion From cf8d63fa9f4496ed72c6dc2b2610d960180f4956 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 16 Jul 2025 00:21:55 +0000 Subject: [PATCH 1194/1318] Update aws-java-sdk-s3 from 1.12.787 to 1.12.788 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 535eb36db..a1cca0574 100644 --- a/build.sbt +++ b/build.sbt @@ -593,7 +593,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) scalaMock, "com.lihaoyi" %% "utest" % "0.8.9" % "test", munitDep, - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.787" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.788" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.31.78" From 9c4a520f0cd4b3c868aee73ca1a57f9f7a9a159b Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 16 Jul 2025 00:22:07 +0000 Subject: [PATCH 1195/1318] Update tapir-akka-http-server, tapir-core, ... from 1.11.35 to 1.11.36 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index fbd91b99c..91c55cba3 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.11.35" +val tapirV = "1.11.36" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From 397152c83aa3713cebeedfd9bbff7264b519b43c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 16 Jul 2025 00:23:25 +0000 Subject: [PATCH 1196/1318] Update zio-metrics-connectors, ... from 2.3.1 to 2.4.0 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 535eb36db..dd8251b10 100644 --- a/build.sbt +++ b/build.sbt @@ -730,8 +730,8 @@ lazy val zio2 = (project in file("zio-2")) libraryDependencies += "ch.qos.logback" % "logback-classic" % "1.5.6", // used in the article, but can't work with zio-logging-slf4j2 dependency // libraryDependencies += "dev.zio" %% "zio-logging-slf4j2-bridge" % "2.1.10", - libraryDependencies += "dev.zio" %% "zio-metrics-connectors" % "2.3.1", - libraryDependencies += "dev.zio" %% "zio-metrics-connectors-prometheus" % "2.3.1", + libraryDependencies += "dev.zio" %% "zio-metrics-connectors" % "2.4.0", + libraryDependencies += "dev.zio" %% "zio-metrics-connectors-prometheus" % "2.4.0", libraryDependencies ++= scalaTestDeps, testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework") ) From 3357315f146afa2f9a214aacd0f3e46b09da95d1 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 16 Jul 2025 00:24:37 +0000 Subject: [PATCH 1197/1318] Update s3, sqs from 2.31.78 to 2.32.0 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 535eb36db..34281d0db 100644 --- a/build.sbt +++ b/build.sbt @@ -472,7 +472,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.12" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.31.78" + "software.amazon.awssdk" % "sqs" % "2.32.0" ), Defaults.itSettings ) @@ -596,7 +596,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.787" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.31.78" + "software.amazon.awssdk" % "s3" % "2.32.0" ), Defaults.itSettings, IntegrationTest / fork := true From 60fbc172f626114a4c1a1938dd420c03169aa005 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 24 Jul 2025 00:22:09 +0000 Subject: [PATCH 1198/1318] Update jackson-databind from 2.19.1 to 2.19.2 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 2e8a92673..e5150381f 100644 --- a/build.sbt +++ b/build.sbt @@ -552,7 +552,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) val spireVersion = "0.18.0" val kafkaVersion = "8.0.0-ce" val pureconfigVersion = "0.17.9" -val jackSonVersion = "2.19.1" +val jackSonVersion = "2.19.2" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.25.1" val avro4sVersion = "4.1.2" From c80833d5bd4a7af18e84b02ca11cf5e6156c1b20 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 24 Jul 2025 00:22:35 +0000 Subject: [PATCH 1199/1318] Update jackson-datatype-jsr310 from 2.19.1 to 2.19.2 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 2e8a92673..e5150381f 100644 --- a/build.sbt +++ b/build.sbt @@ -552,7 +552,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) val spireVersion = "0.18.0" val kafkaVersion = "8.0.0-ce" val pureconfigVersion = "0.17.9" -val jackSonVersion = "2.19.1" +val jackSonVersion = "2.19.2" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.25.1" val avro4sVersion = "4.1.2" From 987ed7c13ac03edc85e8bfa7e57ba214dc12ae24 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 24 Jul 2025 00:22:57 +0000 Subject: [PATCH 1200/1318] Update jackson-module-scala from 2.19.1 to 2.19.2 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 2e8a92673..bfbb1605f 100644 --- a/build.sbt +++ b/build.sbt @@ -521,7 +521,7 @@ lazy val redis_intro = .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( "redis.clients" % "jedis" % "6.0.0", - "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.19.1", + "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.19.2", "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % "it" ), Defaults.itSettings @@ -552,7 +552,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) val spireVersion = "0.18.0" val kafkaVersion = "8.0.0-ce" val pureconfigVersion = "0.17.9" -val jackSonVersion = "2.19.1" +val jackSonVersion = "2.19.2" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.25.1" val avro4sVersion = "4.1.2" From a505ea12eb59a106441e36383a66040d43849bed Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 24 Jul 2025 00:23:18 +0000 Subject: [PATCH 1201/1318] Update tapir-akka-http-server, tapir-core, ... from 1.11.36 to 1.11.38 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index 91c55cba3..e4b5f2957 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.11.36" +val tapirV = "1.11.38" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From e880d19e4fde5a974faee9350f7e88636e81930d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 24 Jul 2025 00:23:45 +0000 Subject: [PATCH 1202/1318] Update zio, zio-streams, zio-test, ... from 2.1.19 to 2.1.20 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 2e8a92673..8cf3b1712 100644 --- a/build.sbt +++ b/build.sbt @@ -21,7 +21,7 @@ val scalaTestDeps = Seq( ) val scalaMock = "org.scalamock" %% "scalamock" % "7.4.0" % Test -val zioVersion = "2.1.19" +val zioVersion = "2.1.20" lazy val scala_core = (project in file("scala-core-modules/scala-core")) .settings( From 2a2393584a2f7deeb8820915698a97a9c0d4b1fd Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 24 Jul 2025 00:24:09 +0000 Subject: [PATCH 1203/1318] Update cats-effect, cats-effect-testkit from 3.6.2 to 3.6.3 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 2e8a92673..b00ae3284 100644 --- a/build.sbt +++ b/build.sbt @@ -4,8 +4,8 @@ ThisBuild / scalaVersion := scala3Version ThisBuild / organization := "com.baeldung" ThisBuild / organizationName := "core-scala" val jUnitInterface = "com.github.sbt" % "junit-interface" % "0.13.3" % "test" -val catsEffect = "org.typelevel" %% "cats-effect" % "3.6.2" -val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.6.2" % Test +val catsEffect = "org.typelevel" %% "cats-effect" % "3.6.3" +val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.6.3" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV val logback = "ch.qos.logback" % "logback-classic" % "1.5.18" val embedMongoVersion = "4.20.1" From 4bbd220aef039a7368e090b65bf22a14ab09b591 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 24 Jul 2025 00:24:32 +0000 Subject: [PATCH 1204/1318] Update s3, sqs from 2.32.0 to 2.32.7 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 2e8a92673..41b97b9d5 100644 --- a/build.sbt +++ b/build.sbt @@ -472,7 +472,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.12" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.32.0" + "software.amazon.awssdk" % "sqs" % "2.32.7" ), Defaults.itSettings ) @@ -596,7 +596,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.788" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.32.0" + "software.amazon.awssdk" % "s3" % "2.32.7" ), Defaults.itSettings, IntegrationTest / fork := true From e7e5fd906a75d7453f1511854b401447184b7c5e Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 1 Aug 2025 00:26:11 +0000 Subject: [PATCH 1205/1318] Update opencsv from 5.11.2 to 5.12.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ec39c708e..338177b5f 100644 --- a/build.sbt +++ b/build.sbt @@ -444,7 +444,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "com.typesafe.scala-logging" %% "scala-logging" % "3.9.5", "software.amazon.awssdk" % "s3" % "2.25.9", "com.github.seratch" %% "awscala" % "0.9.2", - "com.opencsv" % "opencsv" % "5.11.2", + "com.opencsv" % "opencsv" % "5.12.0", "com.github.tototoshi" %% "scala-csv" % "2.0.0", "org.apache.commons" % "commons-csv" % "1.14.0" ), From a22c7c4997a458312940dd514845e34947abbcfb Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 1 Aug 2025 00:26:49 +0000 Subject: [PATCH 1206/1318] Update de.flapdoodle.embed.mongo from 4.20.1 to 4.21.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ec39c708e..9ef1962b3 100644 --- a/build.sbt +++ b/build.sbt @@ -8,7 +8,7 @@ val catsEffect = "org.typelevel" %% "cats-effect" % "3.6.3" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.6.3" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV val logback = "ch.qos.logback" % "logback-classic" % "1.5.18" -val embedMongoVersion = "4.20.1" +val embedMongoVersion = "4.21.0" val AkkaVersion = "2.9.3" val AlpakkaVersion = "8.0.0" val AkkaHttpVersion = "10.6.3" From 2a5bb2d96786229109b9abe19f8604f2844a3456 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 1 Aug 2025 00:26:59 +0000 Subject: [PATCH 1207/1318] Update elastic4s-client-esjava, ... from 9.0.0 to 9.1.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ec39c708e..17243b23a 100644 --- a/build.sbt +++ b/build.sbt @@ -418,7 +418,7 @@ val circeVersion = "0.14.14" val monixVersion = "3.4.1" val sparkVersion = "4.0.0" -val elastic4sVersion = "9.0.0" +val elastic4sVersion = "9.1.0" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion val sparkSqlDep = "org.apache.spark" %% "spark-sql" % sparkVersion From f0ff58713afe0737e8bc7a1ee555727e92904009 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 1 Aug 2025 00:27:22 +0000 Subject: [PATCH 1208/1318] Update commons-csv from 1.14.0 to 1.14.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ec39c708e..03df2407f 100644 --- a/build.sbt +++ b/build.sbt @@ -446,7 +446,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "com.github.seratch" %% "awscala" % "0.9.2", "com.opencsv" % "opencsv" % "5.11.2", "com.github.tototoshi" %% "scala-csv" % "2.0.0", - "org.apache.commons" % "commons-csv" % "1.14.0" + "org.apache.commons" % "commons-csv" % "1.14.1" ), libraryDependencies ++= Seq( "org.playframework" %% "play-slick" % LibraryVersions.playSlickVersion, From 3463b9c7a21f59c149b3634dffca16420f642430 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 1 Aug 2025 00:27:35 +0000 Subject: [PATCH 1209/1318] Update elasticmq-core, elasticmq-rest-sqs, ... from 1.6.12 to 1.6.14 --- build.sbt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index ec39c708e..5ee3ac5b8 100644 --- a/build.sbt +++ b/build.sbt @@ -467,9 +467,9 @@ lazy val scala_libraries = (project in file("scala-libraries")) logback ), libraryDependencies ++= Seq( - "org.elasticmq" %% "elasticmq-core" % "1.6.12", - "org.elasticmq" %% "elasticmq-server" % "1.6.12", - "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.12" + "org.elasticmq" %% "elasticmq-core" % "1.6.14", + "org.elasticmq" %% "elasticmq-server" % "1.6.14", + "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.14" ), libraryDependencies ++= Seq( "software.amazon.awssdk" % "sqs" % "2.32.7" From 9c5e1c3c8a0a0a50244b70374a19b8faed5f45a0 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 9 Aug 2025 00:20:59 +0000 Subject: [PATCH 1210/1318] Update scala3-library from 3.7.1 to 3.7.2 --- project/ScalaVersions.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/ScalaVersions.scala b/project/ScalaVersions.scala index 7547434b4..b82ad609e 100644 --- a/project/ScalaVersions.scala +++ b/project/ScalaVersions.scala @@ -1,6 +1,6 @@ object ScalaVersions { val scala2Version = "2.13.16" - val scala3Version = "3.7.1" + val scala3Version = "3.7.2" @deprecated( "Use Scala 2.13 or Scala 3. Don't use 2.12 unless it is a specific feature in 2.12." ) From eb04e0d0f089c68f09c6a2c578bcccc27fce8386 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 9 Aug 2025 00:21:19 +0000 Subject: [PATCH 1211/1318] Update sbt, scripted-plugin from 1.11.3 to 1.11.4 --- project/build.properties | 2 +- sbt-release/project/build.properties | 2 +- sbt-standalone/project/build.properties | 2 +- scala-gatling/project/build.properties | 2 +- scala-graalvm/scala-graalvm-http-app/project/build.properties | 2 +- scala-sbt/intro-to-sbt/project/build.properties | 2 +- scala-sbt/scalafix/project/build.properties | 2 +- scalatra/project/build.properties | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/project/build.properties b/project/build.properties index 138bc7a55..aced30652 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1,2 +1,2 @@ -sbt.version=1.11.3 +sbt.version=1.11.4 diff --git a/sbt-release/project/build.properties b/sbt-release/project/build.properties index 1b248dfe6..f7bc74d4f 100644 --- a/sbt-release/project/build.properties +++ b/sbt-release/project/build.properties @@ -1 +1 @@ -sbt.version = 1.11.3 +sbt.version = 1.11.4 diff --git a/sbt-standalone/project/build.properties b/sbt-standalone/project/build.properties index c02c575fd..489e0a72d 100644 --- a/sbt-standalone/project/build.properties +++ b/sbt-standalone/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.3 +sbt.version=1.11.4 diff --git a/scala-gatling/project/build.properties b/scala-gatling/project/build.properties index c02c575fd..489e0a72d 100644 --- a/scala-gatling/project/build.properties +++ b/scala-gatling/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.3 +sbt.version=1.11.4 diff --git a/scala-graalvm/scala-graalvm-http-app/project/build.properties b/scala-graalvm/scala-graalvm-http-app/project/build.properties index c02c575fd..489e0a72d 100644 --- a/scala-graalvm/scala-graalvm-http-app/project/build.properties +++ b/scala-graalvm/scala-graalvm-http-app/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.3 +sbt.version=1.11.4 diff --git a/scala-sbt/intro-to-sbt/project/build.properties b/scala-sbt/intro-to-sbt/project/build.properties index c02c575fd..489e0a72d 100644 --- a/scala-sbt/intro-to-sbt/project/build.properties +++ b/scala-sbt/intro-to-sbt/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.3 +sbt.version=1.11.4 diff --git a/scala-sbt/scalafix/project/build.properties b/scala-sbt/scalafix/project/build.properties index 0d088626a..9651bb5bd 100644 --- a/scala-sbt/scalafix/project/build.properties +++ b/scala-sbt/scalafix/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.3 \ No newline at end of file +sbt.version=1.11.4 \ No newline at end of file diff --git a/scalatra/project/build.properties b/scalatra/project/build.properties index c02c575fd..489e0a72d 100644 --- a/scalatra/project/build.properties +++ b/scalatra/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.3 +sbt.version=1.11.4 From 5a7bd6e5aa4379f7d75eab6c8224cf05da1a6f12 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 9 Aug 2025 00:22:03 +0000 Subject: [PATCH 1212/1318] Update jedis from 6.0.0 to 6.1.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 333c6f853..57b1f7b5b 100644 --- a/build.sbt +++ b/build.sbt @@ -520,7 +520,7 @@ lazy val redis_intro = libraryDependencies ++= scalaTestDeps .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( - "redis.clients" % "jedis" % "6.0.0", + "redis.clients" % "jedis" % "6.1.0", "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.19.2", "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % "it" ), From a5450f4fe0a1133fe3141f2294df4a743526e0bf Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 17 Aug 2025 00:23:00 +0000 Subject: [PATCH 1213/1318] Update tapir-akka-http-server, tapir-core, ... from 1.11.38 to 1.11.42 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index e4b5f2957..7ccdcad93 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.11.38" +val tapirV = "1.11.42" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From 50c55c5754b93ce5180e615fd5af9a916b8c2231 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 17 Aug 2025 00:23:35 +0000 Subject: [PATCH 1214/1318] Update zio-http, zio-http-testkit from 3.3.3 to 3.4.0 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 333c6f853..850c38fa7 100644 --- a/build.sbt +++ b/build.sbt @@ -740,7 +740,7 @@ lazy val zio3 = (project in file("zio3")) .settings( libraryDependencies ++= Seq( zioJsonDep, - "dev.zio" %% "zio-http" % "3.3.3", + "dev.zio" %% "zio-http" % "3.4.0", "io.getquill" %% "quill-zio" % "4.8.5", "io.getquill" %% "quill-jdbc-zio" % "4.8.5", "com.h2database" % "h2" % "2.3.232" @@ -749,7 +749,7 @@ lazy val zio3 = (project in file("zio3")) "dev.zio" %% "zio-test" % zioVersion % Test, zioTestSbt, "dev.zio" %% "zio-test-magnolia" % zioVersion % Test, - "dev.zio" %% "zio-http-testkit" % "3.3.3" % Test + "dev.zio" %% "zio-http-testkit" % "3.4.0" % Test ), testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework"), run / fork := true From 22f5d5158edfae3d77fe4e7a215e1e79ea509326 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 17 Aug 2025 00:24:03 +0000 Subject: [PATCH 1215/1318] Update zio-metrics-connectors, ... from 2.4.0 to 2.4.1 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 333c6f853..4e6699670 100644 --- a/build.sbt +++ b/build.sbt @@ -730,8 +730,8 @@ lazy val zio2 = (project in file("zio-2")) libraryDependencies += "ch.qos.logback" % "logback-classic" % "1.5.6", // used in the article, but can't work with zio-logging-slf4j2 dependency // libraryDependencies += "dev.zio" %% "zio-logging-slf4j2-bridge" % "2.1.10", - libraryDependencies += "dev.zio" %% "zio-metrics-connectors" % "2.4.0", - libraryDependencies += "dev.zio" %% "zio-metrics-connectors-prometheus" % "2.4.0", + libraryDependencies += "dev.zio" %% "zio-metrics-connectors" % "2.4.1", + libraryDependencies += "dev.zio" %% "zio-metrics-connectors-prometheus" % "2.4.1", libraryDependencies ++= scalaTestDeps, testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework") ) From 15e25cc0f96fc37cdba96649cd250112f7461065 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 17 Aug 2025 00:24:32 +0000 Subject: [PATCH 1216/1318] Update mockito-core from 5.18.0 to 5.19.0 --- play-scala/caching-in-play/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/play-scala/caching-in-play/build.sbt b/play-scala/caching-in-play/build.sbt index f634e6d56..1f6eaf52c 100644 --- a/play-scala/caching-in-play/build.sbt +++ b/play-scala/caching-in-play/build.sbt @@ -11,6 +11,6 @@ libraryDependencies += guice libraryDependencies += caffeine libraryDependencies += ws libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % LibraryVersions.scalatestPlayVersion % Test -libraryDependencies += "org.mockito" % "mockito-core" % "5.18.0" % Test +libraryDependencies += "org.mockito" % "mockito-core" % "5.19.0" % Test PlayKeys.devSettings += "play.server.http.port" -> "9000" From 6cf9a3bff8961e9560a5a0a359eaab52e25e8aec Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 17 Aug 2025 00:25:00 +0000 Subject: [PATCH 1217/1318] Update reactivemongo-akkastream from 1.1.0-RC15 to 1.1.0-RC16 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 333c6f853..022faa211 100644 --- a/build.sbt +++ b/build.sbt @@ -360,7 +360,7 @@ val slickVersion = "3.6.1" val shapelessVersion = "2.3.13" val scalazVersion = "7.3.8" val fs2Version = "3.12.0" -val reactiveMongo = "1.1.0-RC15" +val reactiveMongo = "1.1.0-RC16" val slickPgVersion = "0.23.1" val scalaTestContainersVersion = "0.43.0" val postgresqlVersion = "42.7.7" From abf9c85d8d0e38e4559bf7aea5f77c45affb38ca Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 17 Aug 2025 00:25:13 +0000 Subject: [PATCH 1218/1318] Update s3, sqs from 2.32.7 to 2.32.24 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 333c6f853..c0deee13b 100644 --- a/build.sbt +++ b/build.sbt @@ -472,7 +472,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.14" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.32.7" + "software.amazon.awssdk" % "sqs" % "2.32.24" ), Defaults.itSettings ) @@ -596,7 +596,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.788" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.32.7" + "software.amazon.awssdk" % "s3" % "2.32.24" ), Defaults.itSettings, IntegrationTest / fork := true From 739bbcd353a9437c673ca649ce0f301c86997a79 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 25 Aug 2025 00:22:16 +0000 Subject: [PATCH 1219/1318] Update reactivemongo-akkastream from 1.1.0-RC16 to 1.1.0-RC17 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 1adae9e4f..e8575aa8c 100644 --- a/build.sbt +++ b/build.sbt @@ -360,7 +360,7 @@ val slickVersion = "3.6.1" val shapelessVersion = "2.3.13" val scalazVersion = "7.3.8" val fs2Version = "3.12.0" -val reactiveMongo = "1.1.0-RC16" +val reactiveMongo = "1.1.0-RC17" val slickPgVersion = "0.23.1" val scalaTestContainersVersion = "0.43.0" val postgresqlVersion = "42.7.7" From 40ce563a357eda04dc3e3c8a3045d1a9990819c2 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 25 Aug 2025 00:22:25 +0000 Subject: [PATCH 1220/1318] Update sbt, scripted-plugin from 1.11.4 to 1.11.5 --- project/build.properties | 2 +- sbt-release/project/build.properties | 2 +- sbt-standalone/project/build.properties | 2 +- scala-gatling/project/build.properties | 2 +- scala-graalvm/scala-graalvm-http-app/project/build.properties | 2 +- scala-sbt/intro-to-sbt/project/build.properties | 2 +- scala-sbt/scalafix/project/build.properties | 2 +- scalatra/project/build.properties | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/project/build.properties b/project/build.properties index aced30652..d05ee0257 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1,2 +1,2 @@ -sbt.version=1.11.4 +sbt.version=1.11.5 diff --git a/sbt-release/project/build.properties b/sbt-release/project/build.properties index f7bc74d4f..984ed712d 100644 --- a/sbt-release/project/build.properties +++ b/sbt-release/project/build.properties @@ -1 +1 @@ -sbt.version = 1.11.4 +sbt.version = 1.11.5 diff --git a/sbt-standalone/project/build.properties b/sbt-standalone/project/build.properties index 489e0a72d..e480c675f 100644 --- a/sbt-standalone/project/build.properties +++ b/sbt-standalone/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.4 +sbt.version=1.11.5 diff --git a/scala-gatling/project/build.properties b/scala-gatling/project/build.properties index 489e0a72d..e480c675f 100644 --- a/scala-gatling/project/build.properties +++ b/scala-gatling/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.4 +sbt.version=1.11.5 diff --git a/scala-graalvm/scala-graalvm-http-app/project/build.properties b/scala-graalvm/scala-graalvm-http-app/project/build.properties index 489e0a72d..e480c675f 100644 --- a/scala-graalvm/scala-graalvm-http-app/project/build.properties +++ b/scala-graalvm/scala-graalvm-http-app/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.4 +sbt.version=1.11.5 diff --git a/scala-sbt/intro-to-sbt/project/build.properties b/scala-sbt/intro-to-sbt/project/build.properties index 489e0a72d..e480c675f 100644 --- a/scala-sbt/intro-to-sbt/project/build.properties +++ b/scala-sbt/intro-to-sbt/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.4 +sbt.version=1.11.5 diff --git a/scala-sbt/scalafix/project/build.properties b/scala-sbt/scalafix/project/build.properties index 9651bb5bd..fe78b3310 100644 --- a/scala-sbt/scalafix/project/build.properties +++ b/scala-sbt/scalafix/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.4 \ No newline at end of file +sbt.version=1.11.5 \ No newline at end of file diff --git a/scalatra/project/build.properties b/scalatra/project/build.properties index 489e0a72d..e480c675f 100644 --- a/scalatra/project/build.properties +++ b/scalatra/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.4 +sbt.version=1.11.5 From 47d78a6802b986c72023c268aecabbefd9d2716e Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 25 Aug 2025 00:22:47 +0000 Subject: [PATCH 1221/1318] Update s3, sqs from 2.32.24 to 2.32.29 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 1adae9e4f..0352d940f 100644 --- a/build.sbt +++ b/build.sbt @@ -472,7 +472,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.14" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.32.24" + "software.amazon.awssdk" % "sqs" % "2.32.29" ), Defaults.itSettings ) @@ -596,7 +596,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.788" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.32.24" + "software.amazon.awssdk" % "s3" % "2.32.29" ), Defaults.itSettings, IntegrationTest / fork := true From 0ddd81aecdb86f1e709babf0f9496413d22a1a4c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 1 Sep 2025 00:24:16 +0000 Subject: [PATCH 1222/1318] Update jackson-databind from 2.19.2 to 2.20.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index b74be2098..3d919c029 100644 --- a/build.sbt +++ b/build.sbt @@ -552,7 +552,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) val spireVersion = "0.18.0" val kafkaVersion = "8.0.0-ce" val pureconfigVersion = "0.17.9" -val jackSonVersion = "2.19.2" +val jackSonVersion = "2.20.0" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.25.1" val avro4sVersion = "4.1.2" From ad716d17e8f3ba3dd6d853c80570b586c0c943d4 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 1 Sep 2025 00:24:55 +0000 Subject: [PATCH 1223/1318] Update jackson-datatype-jsr310 from 2.19.2 to 2.20.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index b74be2098..3d919c029 100644 --- a/build.sbt +++ b/build.sbt @@ -552,7 +552,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) val spireVersion = "0.18.0" val kafkaVersion = "8.0.0-ce" val pureconfigVersion = "0.17.9" -val jackSonVersion = "2.19.2" +val jackSonVersion = "2.20.0" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.25.1" val avro4sVersion = "4.1.2" From 95b0443af5a74f0e1a64e7fb2f8b4374349f486f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 1 Sep 2025 00:25:31 +0000 Subject: [PATCH 1224/1318] Update jackson-module-scala from 2.19.2 to 2.20.0 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index b74be2098..aa142b2bc 100644 --- a/build.sbt +++ b/build.sbt @@ -521,7 +521,7 @@ lazy val redis_intro = .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( "redis.clients" % "jedis" % "6.1.0", - "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.19.2", + "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.20.0", "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % "it" ), Defaults.itSettings @@ -552,7 +552,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) val spireVersion = "0.18.0" val kafkaVersion = "8.0.0-ce" val pureconfigVersion = "0.17.9" -val jackSonVersion = "2.19.2" +val jackSonVersion = "2.20.0" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.25.1" val avro4sVersion = "4.1.2" From e83f3f37a0ce1f899caeceddb3a6575d516d29a8 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 1 Sep 2025 00:26:08 +0000 Subject: [PATCH 1225/1318] Update jedis from 6.1.0 to 6.2.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index b74be2098..7f6306e02 100644 --- a/build.sbt +++ b/build.sbt @@ -520,7 +520,7 @@ lazy val redis_intro = libraryDependencies ++= scalaTestDeps .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( - "redis.clients" % "jedis" % "6.1.0", + "redis.clients" % "jedis" % "6.2.0", "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.19.2", "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % "it" ), From 66b258094c612268a0fad5f524f5ec0b30bed544 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 1 Sep 2025 00:26:47 +0000 Subject: [PATCH 1226/1318] Update s3, sqs from 2.32.29 to 2.32.33 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index b74be2098..44d92047c 100644 --- a/build.sbt +++ b/build.sbt @@ -472,7 +472,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.14" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.32.29" + "software.amazon.awssdk" % "sqs" % "2.32.33" ), Defaults.itSettings ) @@ -596,7 +596,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.788" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.32.29" + "software.amazon.awssdk" % "s3" % "2.32.33" ), Defaults.itSettings, IntegrationTest / fork := true From 8a946eeeb183ae036c23846d45cabfc3cd3780a6 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 9 Sep 2025 00:19:44 +0000 Subject: [PATCH 1227/1318] Update fs2-core, fs2-io from 3.12.0 to 3.12.2 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 43d3ca603..0961fab13 100644 --- a/build.sbt +++ b/build.sbt @@ -359,7 +359,7 @@ val monocleVersion = "2.1.0" val slickVersion = "3.6.1" val shapelessVersion = "2.3.13" val scalazVersion = "7.3.8" -val fs2Version = "3.12.0" +val fs2Version = "3.12.2" val reactiveMongo = "1.1.0-RC17" val slickPgVersion = "0.23.1" val scalaTestContainersVersion = "0.43.0" From 3e8c1cbf32402db75b7b2c7d6f2d689605344085 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 9 Sep 2025 00:20:12 +0000 Subject: [PATCH 1228/1318] Update aws-java-sdk-s3 from 1.12.788 to 1.12.791 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 43d3ca603..d514324d9 100644 --- a/build.sbt +++ b/build.sbt @@ -593,7 +593,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) scalaMock, "com.lihaoyi" %% "utest" % "0.8.9" % "test", munitDep, - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.788" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.791" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.32.33" From ef817f2355a890acf32f10ee9be61d832027f5ba Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 9 Sep 2025 00:20:23 +0000 Subject: [PATCH 1229/1318] Update macros, util from 2.6.6 to 2.6.7 --- play-scala/dependency-injection/build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/play-scala/dependency-injection/build.sbt b/play-scala/dependency-injection/build.sbt index eb4dfecea..27a9b3b70 100644 --- a/play-scala/dependency-injection/build.sbt +++ b/play-scala/dependency-injection/build.sbt @@ -8,5 +8,5 @@ scalaVersion := ScalaVersions.scala3Version libraryDependencies += guice libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % LibraryVersions.scalatestPlayVersion % Test -libraryDependencies += "com.softwaremill.macwire" %% "macros" % "2.6.6" % Provided -libraryDependencies += "com.softwaremill.macwire" %% "util" % "2.6.6" +libraryDependencies += "com.softwaremill.macwire" %% "macros" % "2.6.7" % Provided +libraryDependencies += "com.softwaremill.macwire" %% "util" % "2.6.7" From a5e72c2e5e0dc2f147651516688dac7e24a25755 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 9 Sep 2025 00:20:50 +0000 Subject: [PATCH 1230/1318] Update tapir-akka-http-server, tapir-core, ... from 1.11.42 to 1.11.44 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index 7ccdcad93..4567e0929 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.11.42" +val tapirV = "1.11.44" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From 11f96e3ba2930e820c9b06711eb66e97dbffccf3 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 9 Sep 2025 00:21:21 +0000 Subject: [PATCH 1231/1318] Update zio, zio-streams, zio-test, ... from 2.1.20 to 2.1.21 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 43d3ca603..c1cd30b65 100644 --- a/build.sbt +++ b/build.sbt @@ -21,7 +21,7 @@ val scalaTestDeps = Seq( ) val scalaMock = "org.scalamock" %% "scalamock" % "7.4.0" % Test -val zioVersion = "2.1.20" +val zioVersion = "2.1.21" lazy val scala_core = (project in file("scala-core-modules/scala-core")) .settings( From 962979c6c53ed53bcf5eb7b044b7152ead1f2a2d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 9 Sep 2025 00:21:49 +0000 Subject: [PATCH 1232/1318] Update zio-http, zio-http-testkit from 3.4.0 to 3.4.1 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 43d3ca603..fd1d27153 100644 --- a/build.sbt +++ b/build.sbt @@ -740,7 +740,7 @@ lazy val zio3 = (project in file("zio3")) .settings( libraryDependencies ++= Seq( zioJsonDep, - "dev.zio" %% "zio-http" % "3.4.0", + "dev.zio" %% "zio-http" % "3.4.1", "io.getquill" %% "quill-zio" % "4.8.5", "io.getquill" %% "quill-jdbc-zio" % "4.8.5", "com.h2database" % "h2" % "2.3.232" @@ -749,7 +749,7 @@ lazy val zio3 = (project in file("zio3")) "dev.zio" %% "zio-test" % zioVersion % Test, zioTestSbt, "dev.zio" %% "zio-test-magnolia" % zioVersion % Test, - "dev.zio" %% "zio-http-testkit" % "3.4.0" % Test + "dev.zio" %% "zio-http-testkit" % "3.4.1" % Test ), testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework"), run / fork := true From c9fa1e968a1e179cef08af6c9d301ed160542139 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 9 Sep 2025 00:22:16 +0000 Subject: [PATCH 1233/1318] Update spark-core, spark-sql from 4.0.0 to 4.0.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 43d3ca603..248185244 100644 --- a/build.sbt +++ b/build.sbt @@ -417,7 +417,7 @@ lazy val scala2_libraries = val circeVersion = "0.14.14" val monixVersion = "3.4.1" -val sparkVersion = "4.0.0" +val sparkVersion = "4.0.1" val elastic4sVersion = "9.1.0" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion From 9664886fdaf94d896891b4e8c319975854750b64 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 9 Sep 2025 00:22:28 +0000 Subject: [PATCH 1234/1318] Update sbt-scalajs from 1.19.0 to 1.20.1 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index 982645ae7..525313c95 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,7 +1,7 @@ addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.5") addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.8") -addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.19.0") +addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.20.1") addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.2.1") libraryDependencies += "ai.kien" %% "python-native-libs" % "0.2.4" From 7895518fe0e7d861192c26258c9f1d4169a43b1d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 9 Sep 2025 00:22:50 +0000 Subject: [PATCH 1235/1318] Update sbt, scripted-plugin from 1.11.5 to 1.11.6 --- project/build.properties | 2 +- sbt-release/project/build.properties | 2 +- sbt-standalone/project/build.properties | 2 +- scala-gatling/project/build.properties | 2 +- scala-graalvm/scala-graalvm-http-app/project/build.properties | 2 +- scala-sbt/intro-to-sbt/project/build.properties | 2 +- scala-sbt/scalafix/project/build.properties | 2 +- scalatra/project/build.properties | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/project/build.properties b/project/build.properties index d05ee0257..73840fdda 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1,2 +1,2 @@ -sbt.version=1.11.5 +sbt.version=1.11.6 diff --git a/sbt-release/project/build.properties b/sbt-release/project/build.properties index 984ed712d..f0fdcaba4 100644 --- a/sbt-release/project/build.properties +++ b/sbt-release/project/build.properties @@ -1 +1 @@ -sbt.version = 1.11.5 +sbt.version = 1.11.6 diff --git a/sbt-standalone/project/build.properties b/sbt-standalone/project/build.properties index e480c675f..5e6884d37 100644 --- a/sbt-standalone/project/build.properties +++ b/sbt-standalone/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.5 +sbt.version=1.11.6 diff --git a/scala-gatling/project/build.properties b/scala-gatling/project/build.properties index e480c675f..5e6884d37 100644 --- a/scala-gatling/project/build.properties +++ b/scala-gatling/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.5 +sbt.version=1.11.6 diff --git a/scala-graalvm/scala-graalvm-http-app/project/build.properties b/scala-graalvm/scala-graalvm-http-app/project/build.properties index e480c675f..5e6884d37 100644 --- a/scala-graalvm/scala-graalvm-http-app/project/build.properties +++ b/scala-graalvm/scala-graalvm-http-app/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.5 +sbt.version=1.11.6 diff --git a/scala-sbt/intro-to-sbt/project/build.properties b/scala-sbt/intro-to-sbt/project/build.properties index e480c675f..5e6884d37 100644 --- a/scala-sbt/intro-to-sbt/project/build.properties +++ b/scala-sbt/intro-to-sbt/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.5 +sbt.version=1.11.6 diff --git a/scala-sbt/scalafix/project/build.properties b/scala-sbt/scalafix/project/build.properties index fe78b3310..c101b1bbd 100644 --- a/scala-sbt/scalafix/project/build.properties +++ b/scala-sbt/scalafix/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.5 \ No newline at end of file +sbt.version=1.11.6 \ No newline at end of file diff --git a/scalatra/project/build.properties b/scalatra/project/build.properties index e480c675f..5e6884d37 100644 --- a/scalatra/project/build.properties +++ b/scalatra/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.5 +sbt.version=1.11.6 From 8f9cc0e7c1ea1f5fa326e528fb4a4d99ab615e0c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 9 Sep 2025 00:23:16 +0000 Subject: [PATCH 1236/1318] Update scalacheck from 1.18.1 to 1.19.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 43d3ca603..e626a3a8c 100644 --- a/build.sbt +++ b/build.sbt @@ -589,7 +589,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) libraryDependencies ++= scalaTestDeps .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( - "org.scalacheck" %% "scalacheck" % "1.18.1" % Test, + "org.scalacheck" %% "scalacheck" % "1.19.0" % Test, scalaMock, "com.lihaoyi" %% "utest" % "0.8.9" % "test", munitDep, From 96c02b4fecfe4dfe3837066a6f8b02b224346fd1 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 9 Sep 2025 00:23:41 +0000 Subject: [PATCH 1237/1318] Update scalamock from 7.4.0 to 7.4.2 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 43d3ca603..aa51f35bf 100644 --- a/build.sbt +++ b/build.sbt @@ -20,7 +20,7 @@ val scalaTestDeps = Seq( "org.scalatest" %% "scalatest-flatspec" % "3.2.19" % Test ) -val scalaMock = "org.scalamock" %% "scalamock" % "7.4.0" % Test +val scalaMock = "org.scalamock" %% "scalamock" % "7.4.2" % Test val zioVersion = "2.1.20" lazy val scala_core = (project in file("scala-core-modules/scala-core")) From 8d950094f1f544664ea886b43df7b040defcd625 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 9 Sep 2025 00:24:05 +0000 Subject: [PATCH 1238/1318] Update s3, sqs from 2.32.33 to 2.33.5 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 43d3ca603..a0a356b82 100644 --- a/build.sbt +++ b/build.sbt @@ -472,7 +472,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.14" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.32.33" + "software.amazon.awssdk" % "sqs" % "2.33.5" ), Defaults.itSettings ) @@ -596,7 +596,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.788" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.32.33" + "software.amazon.awssdk" % "s3" % "2.33.5" ), Defaults.itSettings, IntegrationTest / fork := true From 1a4794952a608dd66be74e98df22950d4fb2f3b3 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 17 Sep 2025 00:19:21 +0000 Subject: [PATCH 1239/1318] Update typesafe:config from 1.4.4 to 1.4.5 --- build.sbt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/build.sbt b/build.sbt index 3dce8168e..ed8a01902 100644 --- a/build.sbt +++ b/build.sbt @@ -107,7 +107,7 @@ lazy val scala_core_8 = (project in file("scala-core-modules/scala-core-8")) libraryDependencies ++= scalaTestDeps, scalaVersion := scala3Version, libraryDependencies += "org.scala-lang.modules" %% "scala-java8-compat" % "1.0.2", - libraryDependencies += "com.typesafe" % "config" % "1.4.4" + libraryDependencies += "com.typesafe" % "config" % "1.4.5" // scalacOptions += "-Ymacro-debug-lite" ) @@ -185,7 +185,7 @@ lazy val scala_core_dates = libraryDependencies ++= scalaTestDeps, libraryDependencies += "joda-time" % "joda-time" % "2.14.0", libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "3.0.0", - libraryDependencies += "com.typesafe" % "config" % "1.4.4" + libraryDependencies += "com.typesafe" % "config" % "1.4.5" ) lazy val scala_lang = (project in file("scala-lang-modules/scala-lang")) @@ -392,7 +392,7 @@ lazy val scala2_libraries = "io.monix" %% "monix" % monixVersion, pureConfigDep, "com.github.pureconfig" %% "pureconfig-enumeratum" % "0.17.9", - "com.typesafe" % "config" % "1.4.4", + "com.typesafe" % "config" % "1.4.5", "org.scala-lang.modules" %% "scala-async" % "1.0.1", "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.11.0", "com.clever-cloud.pulsar4s" %% "pulsar4s-jackson" % "2.11.0", @@ -637,7 +637,7 @@ lazy val scala_libraries_config = (project in file("scala-libraries-config")) scalaVersion := scala3Version, libraryDependencies ++= scalaTestDeps, libraryDependencies ++= Seq( - "com.typesafe" % "config" % "1.4.4", + "com.typesafe" % "config" % "1.4.5", munitDep, "com.github.japgolly.clearconfig" %% "core" % "3.1.0", catsEffect, From 791c29b3d5284376e948066348f96c1147a6b643 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 17 Sep 2025 00:19:50 +0000 Subject: [PATCH 1240/1318] Update scala-logging from 3.9.5 to 3.9.6 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 3dce8168e..6eb71b4c2 100644 --- a/build.sbt +++ b/build.sbt @@ -441,7 +441,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "com.softwaremill.retry" %% "retry" % "0.3.6", log4jApiScalaDep, "org.apache.logging.log4j" % "log4j-core" % "2.25.0" % Runtime, - "com.typesafe.scala-logging" %% "scala-logging" % "3.9.5", + "com.typesafe.scala-logging" %% "scala-logging" % "3.9.6", "software.amazon.awssdk" % "s3" % "2.25.9", "com.github.seratch" %% "awscala" % "0.9.2", "com.opencsv" % "opencsv" % "5.12.0", From c89e6c8ddde83fafc7c9a14731f4c34d2271403b Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 17 Sep 2025 00:20:01 +0000 Subject: [PATCH 1241/1318] Update zio-http, zio-http-testkit from 3.4.1 to 3.5.1 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 3dce8168e..44f7e2011 100644 --- a/build.sbt +++ b/build.sbt @@ -740,7 +740,7 @@ lazy val zio3 = (project in file("zio3")) .settings( libraryDependencies ++= Seq( zioJsonDep, - "dev.zio" %% "zio-http" % "3.4.1", + "dev.zio" %% "zio-http" % "3.5.1", "io.getquill" %% "quill-zio" % "4.8.5", "io.getquill" %% "quill-jdbc-zio" % "4.8.5", "com.h2database" % "h2" % "2.3.232" @@ -749,7 +749,7 @@ lazy val zio3 = (project in file("zio3")) "dev.zio" %% "zio-test" % zioVersion % Test, zioTestSbt, "dev.zio" %% "zio-test-magnolia" % zioVersion % Test, - "dev.zio" %% "zio-http-testkit" % "3.4.1" % Test + "dev.zio" %% "zio-http-testkit" % "3.5.1" % Test ), testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework"), run / fork := true From 852447fad84e36372226b4ed65a759ea6923587c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 17 Sep 2025 00:20:28 +0000 Subject: [PATCH 1242/1318] Update mongo-scala-driver from 5.5.1 to 5.6.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 3dce8168e..e843ae058 100644 --- a/build.sbt +++ b/build.sbt @@ -280,7 +280,7 @@ lazy val scala_akka_dependencies: Seq[ModuleID] = Seq( akkaTypedTestkit, "com.lightbend.akka" %% "akka-stream-alpakka-mongodb" % AlpakkaVersion, akkaStreamDep, - "org.mongodb.scala" %% "mongo-scala-driver" % "5.5.1", + "org.mongodb.scala" %% "mongo-scala-driver" % "5.6.0", "com.lightbend.akka" %% "akka-stream-alpakka-file" % AlpakkaVersion, jUnitInterface, embeddedMongo % Test, From eec8fbe49f4188147b063299be9c6a69d263da4a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 17 Sep 2025 00:20:52 +0000 Subject: [PATCH 1243/1318] Update play-ahc-ws, play-caffeine-cache, ... from 3.0.8 to 3.0.9 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index 525313c95..647d7c2c6 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -7,7 +7,7 @@ addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.2.1") libraryDependencies += "ai.kien" %% "python-native-libs" % "0.2.4" // Make sure to keep the play plugin in sync with the sub modules under play-scala group -addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.8") +addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.9") addSbtPlugin("org.playframework.twirl" % "sbt-twirl" % "2.0.1") addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "4.2.1") From 074ebf9cf6ae45e8abe80983c3118eba9d3e0984 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 17 Sep 2025 00:21:20 +0000 Subject: [PATCH 1244/1318] Update scala3-library from 3.7.2 to 3.7.3 --- project/ScalaVersions.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/ScalaVersions.scala b/project/ScalaVersions.scala index b82ad609e..10be60f80 100644 --- a/project/ScalaVersions.scala +++ b/project/ScalaVersions.scala @@ -1,6 +1,6 @@ object ScalaVersions { val scala2Version = "2.13.16" - val scala3Version = "3.7.2" + val scala3Version = "3.7.3" @deprecated( "Use Scala 2.13 or Scala 3. Don't use 2.12 unless it is a specific feature in 2.12." ) From 4db73bdb977fc35ab3afd89aadda2c7e4d330571 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 17 Sep 2025 00:22:08 +0000 Subject: [PATCH 1245/1318] Update scalamock from 7.4.2 to 7.5.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 3dce8168e..d43427344 100644 --- a/build.sbt +++ b/build.sbt @@ -20,7 +20,7 @@ val scalaTestDeps = Seq( "org.scalatest" %% "scalatest-flatspec" % "3.2.19" % Test ) -val scalaMock = "org.scalamock" %% "scalamock" % "7.4.2" % Test +val scalaMock = "org.scalamock" %% "scalamock" % "7.5.0" % Test val zioVersion = "2.1.21" lazy val scala_core = (project in file("scala-core-modules/scala-core")) From baa2ac9108c226606a91b72220d397bfa122eb94 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 17 Sep 2025 00:22:33 +0000 Subject: [PATCH 1246/1318] Update s3, sqs from 2.33.5 to 2.33.11 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 3dce8168e..3347fdf30 100644 --- a/build.sbt +++ b/build.sbt @@ -472,7 +472,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.14" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.33.5" + "software.amazon.awssdk" % "sqs" % "2.33.11" ), Defaults.itSettings ) @@ -596,7 +596,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.791" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.33.5" + "software.amazon.awssdk" % "s3" % "2.33.11" ), Defaults.itSettings, IntegrationTest / fork := true From 0dd0664287117e9744b01cc7f72c7eec2e96e2a7 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 25 Sep 2025 00:23:36 +0000 Subject: [PATCH 1247/1318] Update h2 from 2.3.232 to 2.4.240 --- build.sbt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index edfb80315..119cdea7a 100644 --- a/build.sbt +++ b/build.sbt @@ -408,7 +408,7 @@ lazy val scala2_libraries = ), libraryDependencies ++= Seq( "com.typesafe.slick" %% "slick" % slickVersion, - "com.h2database" % "h2" % "2.3.232" + "com.h2database" % "h2" % "2.4.240" ), scalacOptions += "-Xasync", Defaults.itSettings @@ -613,7 +613,7 @@ lazy val scala_libraries_persistence = .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( "com.typesafe.slick" %% "slick" % slickVersion, - "com.h2database" % "h2" % "2.3.232", + "com.h2database" % "h2" % "2.4.240", "org.tpolecat" %% "skunk-core" % "0.6.4", doobieCore, doobiePGDep, @@ -743,7 +743,7 @@ lazy val zio3 = (project in file("zio3")) "dev.zio" %% "zio-http" % "3.5.1", "io.getquill" %% "quill-zio" % "4.8.5", "io.getquill" %% "quill-jdbc-zio" % "4.8.5", - "com.h2database" % "h2" % "2.3.232" + "com.h2database" % "h2" % "2.4.240" ), libraryDependencies ++= Seq( "dev.zio" %% "zio-test" % zioVersion % Test, From 3ee1ed88cbd2a0ab3558fb6ada5d29b160c50a27 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 25 Sep 2025 00:37:56 +0000 Subject: [PATCH 1248/1318] Update log4j-core from 2.25.1 to 2.25.2 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index edfb80315..74a24b619 100644 --- a/build.sbt +++ b/build.sbt @@ -506,7 +506,7 @@ lazy val scala_libraries_os = (project in file("scala-libraries-os")) libraryDependencies ++= scalaTestDeps, libraryDependencies ++= Seq( log4jApiScalaDep, - "org.apache.logging.log4j" % "log4j-core" % "2.25.1" % Runtime + "org.apache.logging.log4j" % "log4j-core" % "2.25.2" % Runtime ), libraryDependencies += osLibDep ) @@ -554,7 +554,7 @@ val kafkaVersion = "8.0.0-ce" val pureconfigVersion = "0.17.9" val jackSonVersion = "2.20.0" val log4jApiScalaVersion = "13.1.0" -val log4jVersion = "2.25.1" +val log4jVersion = "2.25.2" val avro4sVersion = "4.1.2" val kafkaAvroSerializer = "8.0.0" From 236675bf4641ed89227088378178801629f9321c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 25 Sep 2025 00:38:12 +0000 Subject: [PATCH 1249/1318] Update elasticmq-core, elasticmq-rest-sqs, ... from 1.6.14 to 1.6.15 --- build.sbt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index edfb80315..ecc1cde39 100644 --- a/build.sbt +++ b/build.sbt @@ -467,9 +467,9 @@ lazy val scala_libraries = (project in file("scala-libraries")) logback ), libraryDependencies ++= Seq( - "org.elasticmq" %% "elasticmq-core" % "1.6.14", - "org.elasticmq" %% "elasticmq-server" % "1.6.14", - "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.14" + "org.elasticmq" %% "elasticmq-core" % "1.6.15", + "org.elasticmq" %% "elasticmq-server" % "1.6.15", + "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.15" ), libraryDependencies ++= Seq( "software.amazon.awssdk" % "sqs" % "2.33.11" From 1e3e70d49cacef782859f8f7ae45eb6e2d143a4b Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 25 Sep 2025 00:38:53 +0000 Subject: [PATCH 1250/1318] Update http4s-dsl from 0.23.30 to 0.23.32 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index edfb80315..efd58f06d 100644 --- a/build.sbt +++ b/build.sbt @@ -489,7 +489,7 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) ) val http4sBlaze = "0.23.17" -val http4sVersion = "0.23.30" +val http4sVersion = "0.23.32" val osLibVersion = "0.11.4" val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion From cb8ec1523fbd50564658380ffe7b13d7a76dfe5e Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 25 Sep 2025 00:52:54 +0000 Subject: [PATCH 1251/1318] Update mockito-core from 5.19.0 to 5.20.0 --- play-scala/caching-in-play/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/play-scala/caching-in-play/build.sbt b/play-scala/caching-in-play/build.sbt index 1f6eaf52c..03a3b064b 100644 --- a/play-scala/caching-in-play/build.sbt +++ b/play-scala/caching-in-play/build.sbt @@ -11,6 +11,6 @@ libraryDependencies += guice libraryDependencies += caffeine libraryDependencies += ws libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % LibraryVersions.scalatestPlayVersion % Test -libraryDependencies += "org.mockito" % "mockito-core" % "5.19.0" % Test +libraryDependencies += "org.mockito" % "mockito-core" % "5.20.0" % Test PlayKeys.devSettings += "play.server.http.port" -> "9000" From ca8bcd2e23af41c6b26dd7e9fc567bcfddbc5592 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 25 Sep 2025 00:53:29 +0000 Subject: [PATCH 1252/1318] Update postgresql from 42.7.7 to 42.7.8 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index edfb80315..a10393133 100644 --- a/build.sbt +++ b/build.sbt @@ -363,7 +363,7 @@ val fs2Version = "3.12.2" val reactiveMongo = "1.1.0-RC17" val slickPgVersion = "0.23.1" val scalaTestContainersVersion = "0.43.0" -val postgresqlVersion = "42.7.7" +val postgresqlVersion = "42.7.8" val json4sVersion = "4.0.7" lazy val scala2_libraries = From 7b025ebbfc71dca7ce38a3dc9356f7bcddcc6a20 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 25 Sep 2025 00:54:10 +0000 Subject: [PATCH 1253/1318] Update munit from 1.1.1 to 1.2.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index edfb80315..883f627d8 100644 --- a/build.sbt +++ b/build.sbt @@ -497,7 +497,7 @@ val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion val log4jApiScalaDep = "org.apache.logging.log4j" %% "log4j-api-scala" % "13.1.0" -val munitDep = "org.scalameta" %% "munit" % "1.1.1" % Test +val munitDep = "org.scalameta" %% "munit" % "1.2.0" % Test lazy val scala_libraries_os = (project in file("scala-libraries-os")) .settings( From d672acc7fa5cd02f679d94f75f144e3682e56123 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 25 Sep 2025 00:54:45 +0000 Subject: [PATCH 1254/1318] Update cats-effect-testing-scalatest from 1.6.0 to 1.7.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index edfb80315..cbe43c26e 100644 --- a/build.sbt +++ b/build.sbt @@ -573,7 +573,7 @@ lazy val scala_libraries_fp = (project in file("scala-libraries-fp")) "org.http4s" %% "http4s-blaze-server" % http4sBlaze, "org.http4s" %% "http4s-blaze-client" % http4sBlaze, catEffectTest, - "org.typelevel" %% "cats-effect-testing-scalatest" % "1.6.0" % Test, + "org.typelevel" %% "cats-effect-testing-scalatest" % "1.7.0" % Test, "org.scalaz" %% "scalaz-core" % scalazVersion, "junit" % "junit" % "4.13.2" % Test, "org.typelevel" %% "spire" % spireVersion From 040fd33238cf15d30459d80a2b99d1c842940904 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 25 Sep 2025 00:55:20 +0000 Subject: [PATCH 1255/1318] Update s3, sqs from 2.33.11 to 2.33.13 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index edfb80315..af09fdb56 100644 --- a/build.sbt +++ b/build.sbt @@ -472,7 +472,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.14" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.33.11" + "software.amazon.awssdk" % "sqs" % "2.33.13" ), Defaults.itSettings ) @@ -596,7 +596,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.791" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.33.11" + "software.amazon.awssdk" % "s3" % "2.33.13" ), Defaults.itSettings, IntegrationTest / fork := true From fd81ed5037ebb1c72f29de202ebdb3404305df5f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 3 Oct 2025 00:18:44 +0000 Subject: [PATCH 1256/1318] Update logback-classic from 1.5.18 to 1.5.19 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d8b32fdd1..1780a9a6b 100644 --- a/build.sbt +++ b/build.sbt @@ -7,7 +7,7 @@ val jUnitInterface = "com.github.sbt" % "junit-interface" % "0.13.3" % "test" val catsEffect = "org.typelevel" %% "cats-effect" % "3.6.3" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.6.3" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV -val logback = "ch.qos.logback" % "logback-classic" % "1.5.18" +val logback = "ch.qos.logback" % "logback-classic" % "1.5.19" val embedMongoVersion = "4.21.0" val AkkaVersion = "2.9.3" val AlpakkaVersion = "8.0.0" From 53b6daf2d1b1f1e420c6259c19b633c721b189d5 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 3 Oct 2025 00:19:12 +0000 Subject: [PATCH 1257/1318] Update aws-java-sdk-s3 from 1.12.791 to 1.12.792 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d8b32fdd1..e1169d41f 100644 --- a/build.sbt +++ b/build.sbt @@ -593,7 +593,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) scalaMock, "com.lihaoyi" %% "utest" % "0.8.9" % "test", munitDep, - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.791" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.792" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.33.13" From a7e8d618f5086aa23457a2b84c19775359765a04 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 3 Oct 2025 00:19:22 +0000 Subject: [PATCH 1258/1318] Update tapir-akka-http-server, tapir-core, ... from 1.11.44 to 1.11.46 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index 4567e0929..73337f3cd 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.11.44" +val tapirV = "1.11.46" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From 0da2986d9ba044a42256bf6931b35cee76039868 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 3 Oct 2025 00:19:51 +0000 Subject: [PATCH 1259/1318] Update zio-prelude from 1.0.0-RC40 to 1.0.0-RC42 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d8b32fdd1..8eabf5995 100644 --- a/build.sbt +++ b/build.sbt @@ -712,7 +712,7 @@ lazy val zio = (project in file("zio")) libraryDependencies += zioTestSbt, libraryDependencies += "dev.zio" %% "zio-kafka" % "2.12.0", libraryDependencies += zioJsonDep, - libraryDependencies += "dev.zio" %% "zio-prelude" % "1.0.0-RC40", + libraryDependencies += "dev.zio" %% "zio-prelude" % "1.0.0-RC42", libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.19" % Test, testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework") ) From 1afe566dde49f242fc3338c056a02527b5636471 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 3 Oct 2025 00:20:19 +0000 Subject: [PATCH 1260/1318] Update circe-core, circe-generic, ... from 0.14.14 to 0.14.15 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d8b32fdd1..66624bc6b 100644 --- a/build.sbt +++ b/build.sbt @@ -414,7 +414,7 @@ lazy val scala2_libraries = Defaults.itSettings ) -val circeVersion = "0.14.14" +val circeVersion = "0.14.15" val monixVersion = "3.4.1" val sparkVersion = "4.0.1" From b347ae0aac96b9b8e72a603580eaf817a335c045 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 3 Oct 2025 00:20:44 +0000 Subject: [PATCH 1261/1318] Update kafka-avro-serializer from 8.0.0 to 8.0.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d8b32fdd1..2e83800f6 100644 --- a/build.sbt +++ b/build.sbt @@ -556,7 +556,7 @@ val jackSonVersion = "2.20.0" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.25.2" val avro4sVersion = "4.1.2" -val kafkaAvroSerializer = "8.0.0" +val kafkaAvroSerializer = "8.0.1" val pureConfigDep = "com.github.pureconfig" %% "pureconfig" % pureconfigVersion From 2a05bf9456ca9865a76f5d4397d0b865205f7ada Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 3 Oct 2025 00:21:45 +0000 Subject: [PATCH 1262/1318] Update kafka-clients from 8.0.0-ce to 8.0.1-ce --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d8b32fdd1..9996d982f 100644 --- a/build.sbt +++ b/build.sbt @@ -550,7 +550,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) ) val spireVersion = "0.18.0" -val kafkaVersion = "8.0.0-ce" +val kafkaVersion = "8.0.1-ce" val pureconfigVersion = "0.17.9" val jackSonVersion = "2.20.0" val log4jApiScalaVersion = "13.1.0" From 03971e66f11349e94bffebc3884f8940c39818f6 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 3 Oct 2025 00:21:54 +0000 Subject: [PATCH 1263/1318] Update sbt-jmh from 0.4.7 to 0.4.8 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index 647d7c2c6..ff11a50f7 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -12,7 +12,7 @@ addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.9") addSbtPlugin("org.playframework.twirl" % "sbt-twirl" % "2.0.1") addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "4.2.1") -addSbtPlugin("pl.project13.scala" % "sbt-jmh" % "0.4.7") +addSbtPlugin("pl.project13.scala" % "sbt-jmh" % "0.4.8") libraryDependencies += "org.scala-js" %% "scalajs-env-jsdom-nodejs" % "1.1.0" resolvers += Resolver.jcenterRepo From 1ca36ad25a74edc2e7cc5bd4c3121392b7981e39 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 3 Oct 2025 00:22:19 +0000 Subject: [PATCH 1264/1318] Update s3, sqs from 2.33.13 to 2.34.9 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index d8b32fdd1..89bd4b447 100644 --- a/build.sbt +++ b/build.sbt @@ -472,7 +472,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.15" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.33.13" + "software.amazon.awssdk" % "sqs" % "2.34.9" ), Defaults.itSettings ) @@ -596,7 +596,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.791" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.33.13" + "software.amazon.awssdk" % "s3" % "2.34.9" ), Defaults.itSettings, IntegrationTest / fork := true From 824febb9f51293ff553384351dd52cbe67f7a41f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 11 Oct 2025 00:18:33 +0000 Subject: [PATCH 1265/1318] Update tapir-akka-http-server, tapir-core, ... from 1.11.46 to 1.11.49 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index 73337f3cd..f57a72d16 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.11.46" +val tapirV = "1.11.49" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From 1aab79000bb76504f6b8e4847c012f36e5dff5ae Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 11 Oct 2025 00:19:11 +0000 Subject: [PATCH 1266/1318] Update kafka-avro-serializer from 8.0.1 to 8.0.2 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 4c49d5547..29e14a4a3 100644 --- a/build.sbt +++ b/build.sbt @@ -556,7 +556,7 @@ val jackSonVersion = "2.20.0" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.25.2" val avro4sVersion = "4.1.2" -val kafkaAvroSerializer = "8.0.1" +val kafkaAvroSerializer = "8.0.2" val pureConfigDep = "com.github.pureconfig" %% "pureconfig" % pureconfigVersion From d146b7170ddf8a18b6f39a8eb63606ce4289f0e7 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 11 Oct 2025 00:19:56 +0000 Subject: [PATCH 1267/1318] Update kafka-clients from 8.0.1-ce to 8.0.2-ce --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 4c49d5547..286f111d7 100644 --- a/build.sbt +++ b/build.sbt @@ -550,7 +550,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) ) val spireVersion = "0.18.0" -val kafkaVersion = "8.0.1-ce" +val kafkaVersion = "8.0.2-ce" val pureconfigVersion = "0.17.9" val jackSonVersion = "2.20.0" val log4jApiScalaVersion = "13.1.0" From e08536f63990086aa25a0675a24d7eb8e983d84a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 11 Oct 2025 00:20:08 +0000 Subject: [PATCH 1268/1318] Update mongo-scala-driver from 5.6.0 to 5.6.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 4c49d5547..f6979c68b 100644 --- a/build.sbt +++ b/build.sbt @@ -280,7 +280,7 @@ lazy val scala_akka_dependencies: Seq[ModuleID] = Seq( akkaTypedTestkit, "com.lightbend.akka" %% "akka-stream-alpakka-mongodb" % AlpakkaVersion, akkaStreamDep, - "org.mongodb.scala" %% "mongo-scala-driver" % "5.6.0", + "org.mongodb.scala" %% "mongo-scala-driver" % "5.6.1", "com.lightbend.akka" %% "akka-stream-alpakka-file" % AlpakkaVersion, jUnitInterface, embeddedMongo % Test, From 35244bf6b0822c78992313eb5da48621fc484d18 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 11 Oct 2025 00:20:38 +0000 Subject: [PATCH 1269/1318] Update reactivemongo-akkastream from 1.1.0-RC17 to 1.1.0-RC18 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 4c49d5547..af58b2cbe 100644 --- a/build.sbt +++ b/build.sbt @@ -360,7 +360,7 @@ val slickVersion = "3.6.1" val shapelessVersion = "2.3.13" val scalazVersion = "7.3.8" val fs2Version = "3.12.2" -val reactiveMongo = "1.1.0-RC17" +val reactiveMongo = "1.1.0-RC18" val slickPgVersion = "0.23.1" val scalaTestContainersVersion = "0.43.0" val postgresqlVersion = "42.7.8" From 0c0a1078c76b897c82d672e9886b1fd00b287977 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 11 Oct 2025 00:20:49 +0000 Subject: [PATCH 1270/1318] Update scalajs-env-jsdom-nodejs from 1.1.0 to 1.1.1 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index ff11a50f7..8fc58cee9 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -13,7 +13,7 @@ addSbtPlugin("org.playframework.twirl" % "sbt-twirl" % "2.0.1") addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "4.2.1") addSbtPlugin("pl.project13.scala" % "sbt-jmh" % "0.4.8") -libraryDependencies += "org.scala-js" %% "scalajs-env-jsdom-nodejs" % "1.1.0" +libraryDependencies += "org.scala-js" %% "scalajs-env-jsdom-nodejs" % "1.1.1" resolvers += Resolver.jcenterRepo From 40af1432c69ccd0abdbf5781c6486022a7aeb13e Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 11 Oct 2025 00:21:18 +0000 Subject: [PATCH 1271/1318] Update scala-compiler, scala-library, ... from 2.13.16 to 2.13.17 --- project/ScalaVersions.scala | 2 +- scala-lagom/build.sbt | 2 +- scala-sbt/wart-remover/build.sbt | 4 ++-- scala-sbt/wart-remover/custom-warts/build.sbt | 2 +- scalatra/build.sbt | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/project/ScalaVersions.scala b/project/ScalaVersions.scala index 10be60f80..0e468be5a 100644 --- a/project/ScalaVersions.scala +++ b/project/ScalaVersions.scala @@ -1,5 +1,5 @@ object ScalaVersions { - val scala2Version = "2.13.16" + val scala2Version = "2.13.17" val scala3Version = "3.7.3" @deprecated( "Use Scala 2.13 or Scala 3. Don't use 2.12 unless it is a specific feature in 2.12." diff --git a/scala-lagom/build.sbt b/scala-lagom/build.sbt index a35de2dab..fe11a1975 100644 --- a/scala-lagom/build.sbt +++ b/scala-lagom/build.sbt @@ -2,7 +2,7 @@ organization in ThisBuild := "com.baeldung" version in ThisBuild := "1.0-SNAPSHOT" // the Scala version that will be used for cross-compiled libraries -scalaVersion in ThisBuild := "2.13.16" +scalaVersion in ThisBuild := "2.13.17" val macwire = "com.softwaremill.macwire" %% "macros" % "2.3.3" % "provided" val scalaTest = "org.scalatest" %% "scalatest" % "3.1.1" % Test diff --git a/scala-sbt/wart-remover/build.sbt b/scala-sbt/wart-remover/build.sbt index 55832fdd1..8f465850c 100644 --- a/scala-sbt/wart-remover/build.sbt +++ b/scala-sbt/wart-remover/build.sbt @@ -1,5 +1,5 @@ lazy val customWarts = (project in file("custom-warts")).settings( - scalaVersion := "2.13.16", + scalaVersion := "2.13.17", name := "CustomWarts", version := "1.0.0", exportJars := true, @@ -10,7 +10,7 @@ lazy val root = (project in file(".")) .dependsOn(customWarts) .settings( name := "wart-remover", - scalaVersion := "2.13.16", + scalaVersion := "2.13.17", version := "1.0.0", wartremoverWarnings ++= Seq(Wart.AsInstanceOf, Wart.Null), wartremoverExcluded += baseDirectory.value / "src" / "main" / "scala" / "com" / "baeldung" / "scala" / "wartremover" / "Excluded.scala", diff --git a/scala-sbt/wart-remover/custom-warts/build.sbt b/scala-sbt/wart-remover/custom-warts/build.sbt index 71f6760d1..1bffbf76e 100644 --- a/scala-sbt/wart-remover/custom-warts/build.sbt +++ b/scala-sbt/wart-remover/custom-warts/build.sbt @@ -1,6 +1,6 @@ /*lazy val root = (project in file(".")).settings( name := "custom-warts", - scalaVersion := "2.13.16", + scalaVersion := "2.13.17", organization := "com.baeldung", version := "1.0.0-SNAPSHOT", libraryDependencies ++= Seq( diff --git a/scalatra/build.sbt b/scalatra/build.sbt index 9c55d909a..267fe966e 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -1,6 +1,6 @@ val ScalatraVersion = "2.8.4" -ThisBuild / scalaVersion := "2.13.16" +ThisBuild / scalaVersion := "2.13.17" ThisBuild / organization := "baeldung" name := "scalatratutorial" From 31b70e6b607423b51f4601665363f3eba17b2090 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 11 Oct 2025 00:21:45 +0000 Subject: [PATCH 1272/1318] Update sbt, scripted-plugin from 1.11.6 to 1.11.7 --- project/build.properties | 2 +- sbt-release/project/build.properties | 2 +- sbt-standalone/project/build.properties | 2 +- scala-gatling/project/build.properties | 2 +- scala-graalvm/scala-graalvm-http-app/project/build.properties | 2 +- scala-sbt/intro-to-sbt/project/build.properties | 2 +- scala-sbt/scalafix/project/build.properties | 2 +- scalatra/project/build.properties | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/project/build.properties b/project/build.properties index 73840fdda..b1b10405c 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1,2 +1,2 @@ -sbt.version=1.11.6 +sbt.version=1.11.7 diff --git a/sbt-release/project/build.properties b/sbt-release/project/build.properties index f0fdcaba4..a360ccac1 100644 --- a/sbt-release/project/build.properties +++ b/sbt-release/project/build.properties @@ -1 +1 @@ -sbt.version = 1.11.6 +sbt.version = 1.11.7 diff --git a/sbt-standalone/project/build.properties b/sbt-standalone/project/build.properties index 5e6884d37..01a16ed14 100644 --- a/sbt-standalone/project/build.properties +++ b/sbt-standalone/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.6 +sbt.version=1.11.7 diff --git a/scala-gatling/project/build.properties b/scala-gatling/project/build.properties index 5e6884d37..01a16ed14 100644 --- a/scala-gatling/project/build.properties +++ b/scala-gatling/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.6 +sbt.version=1.11.7 diff --git a/scala-graalvm/scala-graalvm-http-app/project/build.properties b/scala-graalvm/scala-graalvm-http-app/project/build.properties index 5e6884d37..01a16ed14 100644 --- a/scala-graalvm/scala-graalvm-http-app/project/build.properties +++ b/scala-graalvm/scala-graalvm-http-app/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.6 +sbt.version=1.11.7 diff --git a/scala-sbt/intro-to-sbt/project/build.properties b/scala-sbt/intro-to-sbt/project/build.properties index 5e6884d37..01a16ed14 100644 --- a/scala-sbt/intro-to-sbt/project/build.properties +++ b/scala-sbt/intro-to-sbt/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.6 +sbt.version=1.11.7 diff --git a/scala-sbt/scalafix/project/build.properties b/scala-sbt/scalafix/project/build.properties index c101b1bbd..7be021262 100644 --- a/scala-sbt/scalafix/project/build.properties +++ b/scala-sbt/scalafix/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.6 \ No newline at end of file +sbt.version=1.11.7 \ No newline at end of file diff --git a/scalatra/project/build.properties b/scalatra/project/build.properties index 5e6884d37..01a16ed14 100644 --- a/scalatra/project/build.properties +++ b/scalatra/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.6 +sbt.version=1.11.7 From 1e8991759cd2013b6fc5804003c0f7a2c73a78ab Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 11 Oct 2025 00:22:16 +0000 Subject: [PATCH 1273/1318] Update jedis from 6.2.0 to 7.0.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 4c49d5547..cec09d2f9 100644 --- a/build.sbt +++ b/build.sbt @@ -520,7 +520,7 @@ lazy val redis_intro = libraryDependencies ++= scalaTestDeps .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( - "redis.clients" % "jedis" % "6.2.0", + "redis.clients" % "jedis" % "7.0.0", "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.20.0", "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % "it" ), From ec2eb81cd42d85ae4b7fb1a8813e8b9493f3f44f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sat, 11 Oct 2025 00:22:50 +0000 Subject: [PATCH 1274/1318] Update s3, sqs from 2.34.9 to 2.35.5 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 4c49d5547..904f14c25 100644 --- a/build.sbt +++ b/build.sbt @@ -472,7 +472,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.15" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.34.9" + "software.amazon.awssdk" % "sqs" % "2.35.5" ), Defaults.itSettings ) @@ -596,7 +596,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.792" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.34.9" + "software.amazon.awssdk" % "s3" % "2.35.5" ), Defaults.itSettings, IntegrationTest / fork := true From 38df3667d06b44e46cb9533042638dd32955f97f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 19 Oct 2025 00:21:57 +0000 Subject: [PATCH 1275/1318] Update zio, zio-streams, zio-test, ... from 2.1.21 to 2.1.22 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index b4e48a0de..d5cad6930 100644 --- a/build.sbt +++ b/build.sbt @@ -21,7 +21,7 @@ val scalaTestDeps = Seq( ) val scalaMock = "org.scalamock" %% "scalamock" % "7.5.0" % Test -val zioVersion = "2.1.21" +val zioVersion = "2.1.22" lazy val scala_core = (project in file("scala-core-modules/scala-core")) .settings( From b7e4260bef3867a19e9817a17e693ca71936277e Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 19 Oct 2025 00:22:23 +0000 Subject: [PATCH 1276/1318] Update kafka-avro-serializer from 8.0.2 to 8.1.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index b4e48a0de..5118728ab 100644 --- a/build.sbt +++ b/build.sbt @@ -556,7 +556,7 @@ val jackSonVersion = "2.20.0" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.25.2" val avro4sVersion = "4.1.2" -val kafkaAvroSerializer = "8.0.2" +val kafkaAvroSerializer = "8.1.0" val pureConfigDep = "com.github.pureconfig" %% "pureconfig" % pureconfigVersion From a1da220eea9cad9dcf57a2f26e2269ad4e74ff46 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 19 Oct 2025 00:23:19 +0000 Subject: [PATCH 1277/1318] Update kafka-clients from 8.0.2-ce to 8.1.0-ce --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index b4e48a0de..d473481f9 100644 --- a/build.sbt +++ b/build.sbt @@ -550,7 +550,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) ) val spireVersion = "0.18.0" -val kafkaVersion = "8.0.2-ce" +val kafkaVersion = "8.1.0-ce" val pureconfigVersion = "0.17.9" val jackSonVersion = "2.20.0" val log4jApiScalaVersion = "13.1.0" From 780f6e222a72e901d357efb779c87b8115def188 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 19 Oct 2025 00:23:27 +0000 Subject: [PATCH 1278/1318] Update sbt-scala-native from 0.5.8 to 0.5.9 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index 8fc58cee9..0c1ba02a8 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,6 +1,6 @@ addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.5") -addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.8") +addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.9") addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.20.1") addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.2.1") From 06ea066f2e643f88822db0bbdea7aaabdbce7213 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Sun, 19 Oct 2025 00:23:51 +0000 Subject: [PATCH 1279/1318] Update munit from 1.2.0 to 1.2.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index b4e48a0de..092095e51 100644 --- a/build.sbt +++ b/build.sbt @@ -497,7 +497,7 @@ val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion val log4jApiScalaDep = "org.apache.logging.log4j" %% "log4j-api-scala" % "13.1.0" -val munitDep = "org.scalameta" %% "munit" % "1.2.0" % Test +val munitDep = "org.scalameta" %% "munit" % "1.2.1" % Test lazy val scala_libraries_os = (project in file("scala-libraries-os")) .settings( From bf396b0edb7a1816f49fc4770faa1f88dcd47708 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 27 Oct 2025 00:21:49 +0000 Subject: [PATCH 1280/1318] Update logback-classic from 1.5.19 to 1.5.20 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index b4e48a0de..e847e02a2 100644 --- a/build.sbt +++ b/build.sbt @@ -7,7 +7,7 @@ val jUnitInterface = "com.github.sbt" % "junit-interface" % "0.13.3" % "test" val catsEffect = "org.typelevel" %% "cats-effect" % "3.6.3" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.6.3" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV -val logback = "ch.qos.logback" % "logback-classic" % "1.5.19" +val logback = "ch.qos.logback" % "logback-classic" % "1.5.20" val embedMongoVersion = "4.21.0" val AkkaVersion = "2.9.3" val AlpakkaVersion = "8.0.0" From b7fe88595f6e1f8510c0a2908d69d58da83aacc8 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 27 Oct 2025 00:22:15 +0000 Subject: [PATCH 1281/1318] Update testcontainers-scala-localstack-v2, ... from 0.43.0 to 0.43.6 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index b4e48a0de..8e6a58364 100644 --- a/build.sbt +++ b/build.sbt @@ -362,7 +362,7 @@ val scalazVersion = "7.3.8" val fs2Version = "3.12.2" val reactiveMongo = "1.1.0-RC18" val slickPgVersion = "0.23.1" -val scalaTestContainersVersion = "0.43.0" +val scalaTestContainersVersion = "0.43.6" val postgresqlVersion = "42.7.8" val json4sVersion = "4.0.7" From 73ff642ec60bfdb2fdc3fb7a793ec6894d59dbad Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 27 Oct 2025 00:22:40 +0000 Subject: [PATCH 1282/1318] Update tapir-akka-http-server, tapir-core, ... from 1.11.49 to 1.11.50 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index f57a72d16..9ebd713ff 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.11.49" +val tapirV = "1.11.50" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From 975f9b6436cb7f6f69f7b4f0ffcc92df21b61cab Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 27 Oct 2025 00:23:10 +0000 Subject: [PATCH 1283/1318] Update elastic4s-client-esjava, ... from 9.1.0 to 9.1.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index b4e48a0de..43d9a76d7 100644 --- a/build.sbt +++ b/build.sbt @@ -418,7 +418,7 @@ val circeVersion = "0.14.15" val monixVersion = "3.4.1" val sparkVersion = "4.0.1" -val elastic4sVersion = "9.1.0" +val elastic4sVersion = "9.1.1" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion val sparkSqlDep = "org.apache.spark" %% "spark-sql" % sparkVersion From 3ff333b942f4d855f3f2df69047a51b6adef0070 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 27 Oct 2025 00:23:35 +0000 Subject: [PATCH 1284/1318] Update json4s-jackson, json4s-native from 4.0.7 to 4.1.0 --- build.sbt | 4 ++-- scalatra/build.sbt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index b4e48a0de..e51e44d52 100644 --- a/build.sbt +++ b/build.sbt @@ -364,7 +364,7 @@ val reactiveMongo = "1.1.0-RC18" val slickPgVersion = "0.23.1" val scalaTestContainersVersion = "0.43.0" val postgresqlVersion = "42.7.8" -val json4sVersion = "4.0.7" +val json4sVersion = "4.1.0" lazy val scala2_libraries = (project in file("scala-2-modules/scala2-libraries")) @@ -624,7 +624,7 @@ lazy val scala_libraries_persistence = "com.typesafe.slick" %% "slick-hikaricp" % slickVersion, "org.postgresql" % "postgresql" % postgresqlVersion, "com.github.tminglei" %% "slick-pg" % slickPgVersion, - "org.json4s" %% "json4s-native" % json4sVersion, + "io.github.json4s" %% "json4s-native" % json4sVersion, "com.github.tminglei" %% "slick-pg_json4s" % slickPgVersion, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-postgresql" % scalaTestContainersVersion % IntegrationTest diff --git a/scalatra/build.sbt b/scalatra/build.sbt index 267fe966e..7af0e7d40 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -13,7 +13,7 @@ libraryDependencies ++= Seq( "javax.servlet" % "javax.servlet-api" % "4.0.1" % "provided", "org.scalatra" %% "scalatra-auth" % ScalatraVersion, "org.scalatra" %% "scalatra-json" % "2.8.4", - "org.json4s" %% "json4s-jackson" % "4.0.7", + "io.github.json4s" %% "json4s-jackson" % "4.1.0", "com.typesafe.slick" %% "slick" % "3.6.1", "com.h2database" % "h2" % "2.1.214", "com.mchange" % "c3p0" % "0.11.2" From 335bb74f6b77e909c8f5271378482fe4303ff9a2 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 27 Oct 2025 00:23:51 +0000 Subject: [PATCH 1285/1318] Update reactivemongo-akkastream from 1.1.0-RC18 to 1.1.0-RC19 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index b4e48a0de..ece856671 100644 --- a/build.sbt +++ b/build.sbt @@ -360,7 +360,7 @@ val slickVersion = "3.6.1" val shapelessVersion = "2.3.13" val scalazVersion = "7.3.8" val fs2Version = "3.12.2" -val reactiveMongo = "1.1.0-RC18" +val reactiveMongo = "1.1.0-RC19" val slickPgVersion = "0.23.1" val scalaTestContainersVersion = "0.43.0" val postgresqlVersion = "42.7.8" From 8ecc8550338f950c4625eb6ca8cbbfe39d70500a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Mon, 27 Oct 2025 00:24:03 +0000 Subject: [PATCH 1286/1318] Update s3, sqs from 2.35.5 to 2.35.11 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index b4e48a0de..8f4635b03 100644 --- a/build.sbt +++ b/build.sbt @@ -472,7 +472,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.15" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.35.5" + "software.amazon.awssdk" % "sqs" % "2.35.11" ), Defaults.itSettings ) @@ -596,7 +596,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.792" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.35.5" + "software.amazon.awssdk" % "s3" % "2.35.11" ), Defaults.itSettings, IntegrationTest / fork := true From a499a41d141d54aae128c4726ce5049af01d3310 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 4 Nov 2025 00:20:23 +0000 Subject: [PATCH 1287/1318] Update python-native-libs from 0.2.4 to 0.2.5 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index 0c1ba02a8..eb8e8bb02 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -4,7 +4,7 @@ addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.9") addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.20.1") addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.2.1") -libraryDependencies += "ai.kien" %% "python-native-libs" % "0.2.4" +libraryDependencies += "ai.kien" %% "python-native-libs" % "0.2.5" // Make sure to keep the play plugin in sync with the sub modules under play-scala group addSbtPlugin("org.playframework" % "sbt-plugin" % "3.0.9") From 0f3d5a8d81b5a0ffc61063bedb66756e9414ec8f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 4 Nov 2025 00:20:49 +0000 Subject: [PATCH 1288/1318] Update aws-java-sdk-s3 from 1.12.792 to 1.12.793 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 5b8d26980..54e800268 100644 --- a/build.sbt +++ b/build.sbt @@ -593,7 +593,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) scalaMock, "com.lihaoyi" %% "utest" % "0.8.9" % "test", munitDep, - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.792" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.793" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.35.11" From 7d59e42ac15473a99897a5e0a424c3a7d6d3222e Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 4 Nov 2025 00:21:02 +0000 Subject: [PATCH 1289/1318] Update jackson-databind from 2.20.0 to 2.20.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 5b8d26980..70e034c25 100644 --- a/build.sbt +++ b/build.sbt @@ -552,7 +552,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) val spireVersion = "0.18.0" val kafkaVersion = "8.1.0-ce" val pureconfigVersion = "0.17.9" -val jackSonVersion = "2.20.0" +val jackSonVersion = "2.20.1" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.25.2" val avro4sVersion = "4.1.2" From 96810fee354a808e14259c9ddee06d6d141110cd Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 4 Nov 2025 00:21:31 +0000 Subject: [PATCH 1290/1318] Update jackson-datatype-jsr310 from 2.20.0 to 2.20.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 5b8d26980..70e034c25 100644 --- a/build.sbt +++ b/build.sbt @@ -552,7 +552,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) val spireVersion = "0.18.0" val kafkaVersion = "8.1.0-ce" val pureconfigVersion = "0.17.9" -val jackSonVersion = "2.20.0" +val jackSonVersion = "2.20.1" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.25.2" val avro4sVersion = "4.1.2" From d6e1bd8d3822749661ed9356b429a67063ed9188 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 4 Nov 2025 00:21:57 +0000 Subject: [PATCH 1291/1318] Update jackson-module-scala from 2.20.0 to 2.20.1 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 5b8d26980..166b77943 100644 --- a/build.sbt +++ b/build.sbt @@ -521,7 +521,7 @@ lazy val redis_intro = .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( "redis.clients" % "jedis" % "7.0.0", - "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.20.0", + "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.20.1", "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % "it" ), Defaults.itSettings @@ -552,7 +552,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) val spireVersion = "0.18.0" val kafkaVersion = "8.1.0-ce" val pureconfigVersion = "0.17.9" -val jackSonVersion = "2.20.0" +val jackSonVersion = "2.20.1" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.25.2" val avro4sVersion = "4.1.2" From 06d12f8c6c36b9e02dcfdece576921ec500b634d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 4 Nov 2025 00:22:22 +0000 Subject: [PATCH 1292/1318] Update os-lib from 0.11.4 to 0.11.6 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 5b8d26980..d4aad2b2a 100644 --- a/build.sbt +++ b/build.sbt @@ -490,7 +490,7 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) val http4sBlaze = "0.23.17" val http4sVersion = "0.23.32" -val osLibVersion = "0.11.4" +val osLibVersion = "0.11.6" val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion From 9901c6ad642aac565e6b8fd0eb3a6a445ff5ae4e Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 4 Nov 2025 00:22:47 +0000 Subject: [PATCH 1293/1318] Update tapir-akka-http-server, tapir-core, ... from 1.11.50 to 1.12.1 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index 9ebd713ff..fbdc1e80b 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.11.50" +val tapirV = "1.12.1" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From 06af56b48075d59e43a4bf32e17fb5f9b8b30458 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 4 Nov 2025 00:23:18 +0000 Subject: [PATCH 1294/1318] Update zio-json from 0.7.44 to 0.7.45 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 5b8d26980..45606ff36 100644 --- a/build.sbt +++ b/build.sbt @@ -700,7 +700,7 @@ lazy val cats_effects = (project in file("cats-effects")) libraryDependencies += "junit" % "junit" % "4.13.2" % Test ) -val zioJsonDep = "dev.zio" %% "zio-json" % "0.7.44" +val zioJsonDep = "dev.zio" %% "zio-json" % "0.7.45" val zioTestSbt = "dev.zio" %% "zio-test-sbt" % zioVersion % Test lazy val zio = (project in file("zio")) @@ -722,7 +722,7 @@ lazy val zio2 = (project in file("zio-2")) name := "zio-2", scalaVersion := scala3Version, libraryDependencies += "dev.zio" %% "zio" % zioVersion, - libraryDependencies += "dev.zio" %% "zio-json" % "0.7.44", + libraryDependencies += "dev.zio" %% "zio-json" % "0.7.45", libraryDependencies += "dev.zio" %% "zio-test" % zioVersion % Test, libraryDependencies += "dev.zio" %% "zio-test-sbt" % zioVersion % Test, libraryDependencies += "dev.zio" %% "zio-logging" % "2.1.17", From bacb6f045cdf70fe15cb4d49e98adc11234420bd Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 4 Nov 2025 00:23:44 +0000 Subject: [PATCH 1295/1318] Update http4s-dsl from 0.23.32 to 0.23.33 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 5b8d26980..4e29741a4 100644 --- a/build.sbt +++ b/build.sbt @@ -489,7 +489,7 @@ lazy val scala_libraries_2 = (project in file("scala-libraries-2")) ) val http4sBlaze = "0.23.17" -val http4sVersion = "0.23.32" +val http4sVersion = "0.23.33" val osLibVersion = "0.11.4" val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion From a4d089489dddce0308d393735d05557be765625b Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 4 Nov 2025 00:24:08 +0000 Subject: [PATCH 1296/1318] Update sbt-scalafmt from 2.5.5 to 2.5.6 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index 0c1ba02a8..1fef59abc 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,4 +1,4 @@ -addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.5") +addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.6") addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.9") addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.20.1") From 557b3982604591a4eac69f861b52f8cb6e58c45d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 4 Nov 2025 00:24:33 +0000 Subject: [PATCH 1297/1318] Update scalamock from 7.5.0 to 7.5.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 5b8d26980..9d332f9d9 100644 --- a/build.sbt +++ b/build.sbt @@ -20,7 +20,7 @@ val scalaTestDeps = Seq( "org.scalatest" %% "scalatest-flatspec" % "3.2.19" % Test ) -val scalaMock = "org.scalamock" %% "scalamock" % "7.5.0" % Test +val scalaMock = "org.scalamock" %% "scalamock" % "7.5.1" % Test val zioVersion = "2.1.22" lazy val scala_core = (project in file("scala-core-modules/scala-core")) From 372f7a08f5df9a1ed650e385e6059451c9709c50 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 4 Nov 2025 00:24:59 +0000 Subject: [PATCH 1298/1318] Update s3, sqs from 2.35.11 to 2.37.3 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 5b8d26980..f62cf39fc 100644 --- a/build.sbt +++ b/build.sbt @@ -472,7 +472,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.15" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.35.11" + "software.amazon.awssdk" % "sqs" % "2.37.3" ), Defaults.itSettings ) @@ -596,7 +596,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.792" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.35.11" + "software.amazon.awssdk" % "s3" % "2.37.3" ), Defaults.itSettings, IntegrationTest / fork := true From e943cd36e38cf57e9535af3dc4d7e565f39f2a65 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 11 Nov 2025 00:25:28 +0000 Subject: [PATCH 1299/1318] Update logback-classic from 1.5.20 to 1.5.21 --- build.sbt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 30e4d2f0a..9e2e1368d 100644 --- a/build.sbt +++ b/build.sbt @@ -7,7 +7,7 @@ val jUnitInterface = "com.github.sbt" % "junit-interface" % "0.13.3" % "test" val catsEffect = "org.typelevel" %% "cats-effect" % "3.6.3" val catEffectTest = "org.typelevel" %% "cats-effect-testkit" % "3.6.3" % Test val scalaReflection = "org.scala-lang" % "scala-reflect" % scalaV -val logback = "ch.qos.logback" % "logback-classic" % "1.5.20" +val logback = "ch.qos.logback" % "logback-classic" % "1.5.21" val embedMongoVersion = "4.21.0" val AkkaVersion = "2.9.3" val AlpakkaVersion = "8.0.0" @@ -492,7 +492,6 @@ val http4sBlaze = "0.23.17" val http4sVersion = "0.23.33" val osLibVersion = "0.11.6" - val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion val log4jApiScalaDep = From 8a377160b55aeca369384420995a3714133ac2e8 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 11 Nov 2025 00:32:54 +0000 Subject: [PATCH 1300/1318] Update tapir-akka-http-server, tapir-core, ... from 1.12.1 to 1.12.3 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index fbdc1e80b..d3a8fc811 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.12.1" +val tapirV = "1.12.3" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From ae3f8b8e49f34f3f004088d429d183d1385a3892 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 11 Nov 2025 00:33:40 +0000 Subject: [PATCH 1301/1318] Update scalamock from 7.5.1 to 7.5.2 --- build.sbt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 30e4d2f0a..de9689991 100644 --- a/build.sbt +++ b/build.sbt @@ -20,7 +20,7 @@ val scalaTestDeps = Seq( "org.scalatest" %% "scalatest-flatspec" % "3.2.19" % Test ) -val scalaMock = "org.scalamock" %% "scalamock" % "7.5.1" % Test +val scalaMock = "org.scalamock" %% "scalamock" % "7.5.2" % Test val zioVersion = "2.1.22" lazy val scala_core = (project in file("scala-core-modules/scala-core")) @@ -492,7 +492,6 @@ val http4sBlaze = "0.23.17" val http4sVersion = "0.23.33" val osLibVersion = "0.11.6" - val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion val log4jApiScalaDep = From e68d6160e1f7db1be8705c49c8d3e7fe1e5d0102 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Tue, 11 Nov 2025 00:34:53 +0000 Subject: [PATCH 1302/1318] Update s3, sqs from 2.37.3 to 2.37.5 --- build.sbt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index 30e4d2f0a..82b8dd321 100644 --- a/build.sbt +++ b/build.sbt @@ -472,7 +472,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.15" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.37.3" + "software.amazon.awssdk" % "sqs" % "2.37.5" ), Defaults.itSettings ) @@ -492,7 +492,6 @@ val http4sBlaze = "0.23.17" val http4sVersion = "0.23.33" val osLibVersion = "0.11.6" - val osLibDep = "com.lihaoyi" %% "os-lib" % osLibVersion val log4jApiScalaDep = @@ -597,7 +596,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.793" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.37.3" + "software.amazon.awssdk" % "s3" % "2.37.5" ), Defaults.itSettings, IntegrationTest / fork := true From d95e8581dfbbc6d9f851e29f2123275244a49464 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 19 Nov 2025 00:21:28 +0000 Subject: [PATCH 1303/1318] Update scallop from 5.2.0 to 5.3.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 05453822b..9e0d253be 100644 --- a/build.sbt +++ b/build.sbt @@ -60,7 +60,7 @@ lazy val scala2_core = (project in file("scala-2-modules/scala2-core")) libraryDependencies += scalaReflection, libraryDependencies += scalaXmlDep, libraryDependencies += "com.github.scopt" %% "scopt" % "4.1.0", - libraryDependencies += "org.rogach" %% "scallop" % "5.2.0", + libraryDependencies += "org.rogach" %% "scallop" % "5.3.0", libraryDependencies += "org.backuity.clist" %% "clist-core" % "3.5.1", libraryDependencies += "org.backuity.clist" %% "clist-macros" % "3.5.1" % "provided", libraryDependencies += "args4j" % "args4j" % "2.37", From c8b66b99fdd7502c90cff17fc7a3541275e78826 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 19 Nov 2025 00:21:54 +0000 Subject: [PATCH 1304/1318] Update scala3-library from 3.7.3 to 3.7.4 --- project/ScalaVersions.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/ScalaVersions.scala b/project/ScalaVersions.scala index 0e468be5a..fad9450c0 100644 --- a/project/ScalaVersions.scala +++ b/project/ScalaVersions.scala @@ -1,6 +1,6 @@ object ScalaVersions { val scala2Version = "2.13.17" - val scala3Version = "3.7.3" + val scala3Version = "3.7.4" @deprecated( "Use Scala 2.13 or Scala 3. Don't use 2.12 unless it is a specific feature in 2.12." ) From 21656ff8a80adff28334eb1fdc9ca50d4a0cbf1c Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Wed, 19 Nov 2025 00:22:21 +0000 Subject: [PATCH 1305/1318] Update s3, sqs from 2.37.5 to 2.38.8 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 05453822b..33428913f 100644 --- a/build.sbt +++ b/build.sbt @@ -472,7 +472,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.15" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.37.5" + "software.amazon.awssdk" % "sqs" % "2.38.8" ), Defaults.itSettings ) @@ -596,7 +596,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.793" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.37.5" + "software.amazon.awssdk" % "s3" % "2.38.8" ), Defaults.itSettings, IntegrationTest / fork := true From ac71429585aa1e1642cb45eb84ffd16d8a84418b Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 27 Nov 2025 00:20:41 +0000 Subject: [PATCH 1306/1318] Update aws-java-sdk-s3 from 1.12.793 to 1.12.794 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 5fecc0e61..330900982 100644 --- a/build.sbt +++ b/build.sbt @@ -593,7 +593,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) scalaMock, "com.lihaoyi" %% "utest" % "0.8.9" % "test", munitDep, - "com.amazonaws" % "aws-java-sdk-s3" % "1.12.793" % IntegrationTest, + "com.amazonaws" % "aws-java-sdk-s3" % "1.12.794" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, "software.amazon.awssdk" % "s3" % "2.38.8" From e1778360c2a08b73816a456b5ef540aa5bd9905d Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 27 Nov 2025 00:20:55 +0000 Subject: [PATCH 1307/1318] Update enumeratum from 1.9.0 to 1.9.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 5fecc0e61..61a0da173 100644 --- a/build.sbt +++ b/build.sbt @@ -423,7 +423,7 @@ val elastic4sVersion = "9.1.1" val sparkCoreDep = "org.apache.spark" %% "spark-core" % sparkVersion val sparkSqlDep = "org.apache.spark" %% "spark-sql" % sparkVersion -val enumeratumDep = "com.beachape" %% "enumeratum" % "1.9.0" +val enumeratumDep = "com.beachape" %% "enumeratum" % "1.9.1" val circeDep = "io.circe" %% "circe-generic" % circeVersion val circeParserDep = "io.circe" %% "circe-parser" % circeVersion From 31ed4992ad3f90d4aca4babfaad8dcf3f25d87f2 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 27 Nov 2025 00:22:54 +0000 Subject: [PATCH 1308/1318] Update tapir-akka-http-server, tapir-core, ... from 1.12.3 to 1.12.4 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index d3a8fc811..2db06802f 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.12.3" +val tapirV = "1.12.4" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From 4c9d2f49b82091193fd0cd19e1020b9c7729298a Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 27 Nov 2025 00:23:37 +0000 Subject: [PATCH 1309/1318] Update zio-http, zio-http-testkit from 3.5.1 to 3.6.0 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 5fecc0e61..32723d47b 100644 --- a/build.sbt +++ b/build.sbt @@ -740,7 +740,7 @@ lazy val zio3 = (project in file("zio3")) .settings( libraryDependencies ++= Seq( zioJsonDep, - "dev.zio" %% "zio-http" % "3.5.1", + "dev.zio" %% "zio-http" % "3.6.0", "io.getquill" %% "quill-zio" % "4.8.5", "io.getquill" %% "quill-jdbc-zio" % "4.8.5", "com.h2database" % "h2" % "2.4.240" @@ -749,7 +749,7 @@ lazy val zio3 = (project in file("zio3")) "dev.zio" %% "zio-test" % zioVersion % Test, zioTestSbt, "dev.zio" %% "zio-test-magnolia" % zioVersion % Test, - "dev.zio" %% "zio-http-testkit" % "3.5.1" % Test + "dev.zio" %% "zio-http-testkit" % "3.6.0" % Test ), testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework"), run / fork := true From bdf2be5cdfed52950411a4d7af3491d0276e618f Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 27 Nov 2025 00:24:50 +0000 Subject: [PATCH 1310/1318] Update scala-compiler, scala-library, ... from 2.13.17 to 2.13.18 --- project/ScalaVersions.scala | 2 +- scala-lagom/build.sbt | 2 +- scala-sbt/wart-remover/build.sbt | 4 ++-- scala-sbt/wart-remover/custom-warts/build.sbt | 2 +- scalatra/build.sbt | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/project/ScalaVersions.scala b/project/ScalaVersions.scala index fad9450c0..389d35ad1 100644 --- a/project/ScalaVersions.scala +++ b/project/ScalaVersions.scala @@ -1,5 +1,5 @@ object ScalaVersions { - val scala2Version = "2.13.17" + val scala2Version = "2.13.18" val scala3Version = "3.7.4" @deprecated( "Use Scala 2.13 or Scala 3. Don't use 2.12 unless it is a specific feature in 2.12." diff --git a/scala-lagom/build.sbt b/scala-lagom/build.sbt index fe11a1975..cef4f1ee3 100644 --- a/scala-lagom/build.sbt +++ b/scala-lagom/build.sbt @@ -2,7 +2,7 @@ organization in ThisBuild := "com.baeldung" version in ThisBuild := "1.0-SNAPSHOT" // the Scala version that will be used for cross-compiled libraries -scalaVersion in ThisBuild := "2.13.17" +scalaVersion in ThisBuild := "2.13.18" val macwire = "com.softwaremill.macwire" %% "macros" % "2.3.3" % "provided" val scalaTest = "org.scalatest" %% "scalatest" % "3.1.1" % Test diff --git a/scala-sbt/wart-remover/build.sbt b/scala-sbt/wart-remover/build.sbt index 8f465850c..1063892c7 100644 --- a/scala-sbt/wart-remover/build.sbt +++ b/scala-sbt/wart-remover/build.sbt @@ -1,5 +1,5 @@ lazy val customWarts = (project in file("custom-warts")).settings( - scalaVersion := "2.13.17", + scalaVersion := "2.13.18", name := "CustomWarts", version := "1.0.0", exportJars := true, @@ -10,7 +10,7 @@ lazy val root = (project in file(".")) .dependsOn(customWarts) .settings( name := "wart-remover", - scalaVersion := "2.13.17", + scalaVersion := "2.13.18", version := "1.0.0", wartremoverWarnings ++= Seq(Wart.AsInstanceOf, Wart.Null), wartremoverExcluded += baseDirectory.value / "src" / "main" / "scala" / "com" / "baeldung" / "scala" / "wartremover" / "Excluded.scala", diff --git a/scala-sbt/wart-remover/custom-warts/build.sbt b/scala-sbt/wart-remover/custom-warts/build.sbt index 1bffbf76e..299ca4bf6 100644 --- a/scala-sbt/wart-remover/custom-warts/build.sbt +++ b/scala-sbt/wart-remover/custom-warts/build.sbt @@ -1,6 +1,6 @@ /*lazy val root = (project in file(".")).settings( name := "custom-warts", - scalaVersion := "2.13.17", + scalaVersion := "2.13.18", organization := "com.baeldung", version := "1.0.0-SNAPSHOT", libraryDependencies ++= Seq( diff --git a/scalatra/build.sbt b/scalatra/build.sbt index 7af0e7d40..9ff59b635 100644 --- a/scalatra/build.sbt +++ b/scalatra/build.sbt @@ -1,6 +1,6 @@ val ScalatraVersion = "2.8.4" -ThisBuild / scalaVersion := "2.13.17" +ThisBuild / scalaVersion := "2.13.18" ThisBuild / organization := "baeldung" name := "scalatratutorial" From 63b29e260291a39c781c9a29d01cda4a698a3b66 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 27 Nov 2025 00:25:26 +0000 Subject: [PATCH 1311/1318] Update jedis from 7.0.0 to 7.1.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 5fecc0e61..ac6bd8152 100644 --- a/build.sbt +++ b/build.sbt @@ -520,7 +520,7 @@ lazy val redis_intro = libraryDependencies ++= scalaTestDeps .map(_.withConfigurations(Some("it,test"))), libraryDependencies ++= Seq( - "redis.clients" % "jedis" % "7.0.0", + "redis.clients" % "jedis" % "7.1.0", "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.20.1", "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % "it" ), From 0780be9e873354d3149ed44b34818763c88fd7af Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Thu, 27 Nov 2025 00:26:05 +0000 Subject: [PATCH 1312/1318] Update s3, sqs from 2.38.8 to 2.38.9 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 5fecc0e61..f1d9ba34c 100644 --- a/build.sbt +++ b/build.sbt @@ -472,7 +472,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.15" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.38.8" + "software.amazon.awssdk" % "sqs" % "2.38.9" ), Defaults.itSettings ) @@ -596,7 +596,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.793" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.38.8" + "software.amazon.awssdk" % "s3" % "2.38.9" ), Defaults.itSettings, IntegrationTest / fork := true From 4352cca1d3e3c7ab1076e977ea6a43ae0557a716 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 5 Dec 2025 00:22:25 +0000 Subject: [PATCH 1313/1318] Update tapir-akka-http-server, tapir-core, ... from 1.12.4 to 1.12.6 --- scala-libraries-standalone/tapir/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala-libraries-standalone/tapir/build.sbt b/scala-libraries-standalone/tapir/build.sbt index 2db06802f..773b820ae 100644 --- a/scala-libraries-standalone/tapir/build.sbt +++ b/scala-libraries-standalone/tapir/build.sbt @@ -1,5 +1,5 @@ val scalaV = "2.12.16" -val tapirV = "1.12.4" +val tapirV = "1.12.6" ThisBuild / scalaVersion := scalaV ThisBuild / version := "1.0.0" ThisBuild / organization := "com.baeldung" From be9a800b2490f6bc450bd7856f10af05cf261382 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 5 Dec 2025 00:23:10 +0000 Subject: [PATCH 1314/1318] Update zio, zio-streams, zio-test, ... from 2.1.22 to 2.1.23 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 0398a5fdf..d3863e4dc 100644 --- a/build.sbt +++ b/build.sbt @@ -21,7 +21,7 @@ val scalaTestDeps = Seq( ) val scalaMock = "org.scalamock" %% "scalamock" % "7.5.2" % Test -val zioVersion = "2.1.22" +val zioVersion = "2.1.23" lazy val scala_core = (project in file("scala-core-modules/scala-core")) .settings( From 1a8f30f2d12e7bc006929d4ae0fcaf7c028d8258 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 5 Dec 2025 00:23:53 +0000 Subject: [PATCH 1315/1318] Update zio-http, zio-http-testkit from 3.6.0 to 3.7.1 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 0398a5fdf..bb1093bcc 100644 --- a/build.sbt +++ b/build.sbt @@ -740,7 +740,7 @@ lazy val zio3 = (project in file("zio3")) .settings( libraryDependencies ++= Seq( zioJsonDep, - "dev.zio" %% "zio-http" % "3.6.0", + "dev.zio" %% "zio-http" % "3.7.1", "io.getquill" %% "quill-zio" % "4.8.5", "io.getquill" %% "quill-jdbc-zio" % "4.8.5", "com.h2database" % "h2" % "2.4.240" @@ -749,7 +749,7 @@ lazy val zio3 = (project in file("zio3")) "dev.zio" %% "zio-test" % zioVersion % Test, zioTestSbt, "dev.zio" %% "zio-test-magnolia" % zioVersion % Test, - "dev.zio" %% "zio-http-testkit" % "3.6.0" % Test + "dev.zio" %% "zio-http-testkit" % "3.7.1" % Test ), testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework"), run / fork := true From 23b82fdbdc613592b1a3f429ac50ee59ec259f15 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 5 Dec 2025 00:25:53 +0000 Subject: [PATCH 1316/1318] Update kafka-avro-serializer from 8.1.0 to 8.1.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 0398a5fdf..613006074 100644 --- a/build.sbt +++ b/build.sbt @@ -556,7 +556,7 @@ val jackSonVersion = "2.20.1" val log4jApiScalaVersion = "13.1.0" val log4jVersion = "2.25.2" val avro4sVersion = "4.1.2" -val kafkaAvroSerializer = "8.1.0" +val kafkaAvroSerializer = "8.1.1" val pureConfigDep = "com.github.pureconfig" %% "pureconfig" % pureconfigVersion From dbe6a661aacff23cae0d85b195112262059a5caa Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 5 Dec 2025 00:26:41 +0000 Subject: [PATCH 1317/1318] Update kafka-clients from 8.1.0-ce to 8.1.1-ce --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 0398a5fdf..b0f5d74f4 100644 --- a/build.sbt +++ b/build.sbt @@ -550,7 +550,7 @@ lazy val nscalatime = (project in file("scala-libraries-standalone/nscalatime")) ) val spireVersion = "0.18.0" -val kafkaVersion = "8.1.0-ce" +val kafkaVersion = "8.1.1-ce" val pureconfigVersion = "0.17.9" val jackSonVersion = "2.20.1" val log4jApiScalaVersion = "13.1.0" From 848760c4a06d40765dc17f9ecb62e3cf7e10fd49 Mon Sep 17 00:00:00 2001 From: "scala-steward-baeldung[bot]" <143488814+scala-steward-baeldung[bot]@users.noreply.github.com> Date: Fri, 5 Dec 2025 00:27:35 +0000 Subject: [PATCH 1318/1318] Update s3, sqs from 2.38.9 to 2.40.2 --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 0398a5fdf..3a920bebe 100644 --- a/build.sbt +++ b/build.sbt @@ -472,7 +472,7 @@ lazy val scala_libraries = (project in file("scala-libraries")) "org.elasticmq" %% "elasticmq-rest-sqs" % "1.6.15" ), libraryDependencies ++= Seq( - "software.amazon.awssdk" % "sqs" % "2.38.9" + "software.amazon.awssdk" % "sqs" % "2.40.2" ), Defaults.itSettings ) @@ -596,7 +596,7 @@ lazy val scala_libraries_testing = (project in file("scala-libraries-testing")) "com.amazonaws" % "aws-java-sdk-s3" % "1.12.793" % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-scalatest" % scalaTestContainersVersion % IntegrationTest, "com.dimafeng" %% "testcontainers-scala-localstack-v2" % scalaTestContainersVersion % IntegrationTest, - "software.amazon.awssdk" % "s3" % "2.38.9" + "software.amazon.awssdk" % "s3" % "2.40.2" ), Defaults.itSettings, IntegrationTest / fork := true