Skip to content

Commit 2924ec4

Browse files
committed
build: Prepare Scala 3 build
1 parent 652bd73 commit 2924ec4

File tree

15 files changed

+86
-50
lines changed

15 files changed

+86
-50
lines changed

build.sbt

Lines changed: 38 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,8 @@ lazy val bundleMonixHttp4sBlaze = project
6565
.settings(BuildSettings.common)
6666
.settings(
6767
name := "sst-bundle-monix-http4s-blaze",
68-
libraryDependencies += Dependencies.monixEval
68+
libraryDependencies += Dependencies.monixEval,
69+
crossScalaVersions := BuildSettings.crossVersionsWithoutScala3
6970
)
7071

7172
lazy val bundleZioHttp4sBlaze = project
@@ -86,7 +87,8 @@ lazy val bundleZioHttp4sBlaze = project
8687
libraryDependencies ++= Seq(
8788
Dependencies.zio,
8889
Dependencies.zioInteropCats
89-
)
90+
),
91+
crossScalaVersions := BuildSettings.crossVersionsWithoutScala3
9092
)
9193

9294
lazy val cassandraDatastaxDriver = project
@@ -103,7 +105,8 @@ lazy val cassandraDatastaxDriverPureConfig = project
103105
.settings(BuildSettings.common)
104106
.settings(
105107
name := "sst-cassandra-datastax-driver-pureconfig",
106-
libraryDependencies += Dependencies.pureConfig
108+
libraryDependencies += Dependencies.pureConfig,
109+
crossScalaVersions := BuildSettings.crossVersionsWithoutScala3
107110
)
108111

109112
lazy val catsEffect = project
@@ -128,7 +131,8 @@ lazy val doobieHikariPureConfig = project
128131
.settings(BuildSettings.common)
129132
.settings(
130133
name := "sst-doobie-hikari-pureconfig",
131-
libraryDependencies += Dependencies.pureConfig
134+
libraryDependencies += Dependencies.pureConfig,
135+
crossScalaVersions := BuildSettings.crossVersionsWithoutScala3
132136
)
133137

134138
lazy val example = project
@@ -155,7 +159,8 @@ lazy val example = project
155159
libraryDependencies ++= Seq(
156160
Dependencies.logbackClassic,
157161
Dependencies.postgresql
158-
)
162+
),
163+
crossScalaVersions := BuildSettings.crossVersionsWithoutScala3
159164
)
160165

161166
lazy val flyway = project
@@ -175,7 +180,8 @@ lazy val flywayPureConfig = project
175180
.settings(BuildSettings.common)
176181
.settings(
177182
name := "sst-flyway-pureconfig",
178-
libraryDependencies += Dependencies.pureConfig
183+
libraryDependencies += Dependencies.pureConfig,
184+
crossScalaVersions := BuildSettings.crossVersionsWithoutScala3
179185
)
180186

181187
lazy val fs2Kafka = project
@@ -197,7 +203,8 @@ lazy val fs2KafkaPureConfig = project
197203
.settings(BuildSettings.common)
198204
.settings(
199205
name := "sst-fs2-kafka-pureconfig",
200-
libraryDependencies += Dependencies.pureConfig
206+
libraryDependencies += Dependencies.pureConfig,
207+
crossScalaVersions := BuildSettings.crossVersionsWithoutScala3
201208
)
202209

203210
lazy val grpcServer = project
@@ -228,7 +235,8 @@ lazy val grpcServerPureConfig = project
228235
.settings(BuildSettings.common)
229236
.settings(
230237
name := "sst-grpc-server-pureconfig",
231-
libraryDependencies += Dependencies.pureConfig
238+
libraryDependencies += Dependencies.pureConfig,
239+
crossScalaVersions := BuildSettings.crossVersionsWithoutScala3
232240
)
233241

234242
lazy val http4sClientBlaze = project
@@ -243,7 +251,10 @@ lazy val http4sClientBlazePureConfig = project
243251
.in(file("http4s-client-blaze-pureconfig"))
244252
.dependsOn(http4sClientBlaze, jvmPureConfig)
245253
.settings(BuildSettings.common)
246-
.settings(name := "sst-http4s-client-blaze-pureconfig")
254+
.settings(
255+
name := "sst-http4s-client-blaze-pureconfig",
256+
crossScalaVersions := BuildSettings.crossVersionsWithoutScala3
257+
)
247258

248259
lazy val http4sClientMonixCatnap = project
249260
.in(file("http4s-client-monix-catnap"))
@@ -286,7 +297,8 @@ lazy val http4sServerBlazePureConfig = project
286297
.settings(BuildSettings.common)
287298
.settings(
288299
name := "sst-http4s-server-blaze-pureconfig",
289-
libraryDependencies += Dependencies.pureConfig
300+
libraryDependencies += Dependencies.pureConfig,
301+
crossScalaVersions := BuildSettings.crossVersionsWithoutScala3
290302
)
291303

292304
lazy val http4sServerMicrometer = project
@@ -314,7 +326,8 @@ lazy val jdkHttpClientPureConfig = project
314326
.settings(BuildSettings.common)
315327
.settings(
316328
name := "sst-jdk-http-client-pureconfig",
317-
libraryDependencies += Dependencies.pureConfig
329+
libraryDependencies += Dependencies.pureConfig,
330+
crossScalaVersions := BuildSettings.crossVersionsWithoutScala3
318331
)
319332

320333
lazy val jvm = project
@@ -343,7 +356,8 @@ lazy val jvmPureConfig = project
343356
.settings(BuildSettings.common)
344357
.settings(
345358
name := "sst-jvm-pureconfig",
346-
libraryDependencies += Dependencies.pureConfig
359+
libraryDependencies += Dependencies.pureConfig,
360+
crossScalaVersions := BuildSettings.crossVersionsWithoutScala3
347361
)
348362

349363
lazy val lettuce = project
@@ -360,7 +374,8 @@ lazy val lettucePureConfig = project
360374
.settings(BuildSettings.common)
361375
.settings(
362376
name := "sst-lettuce-pureconfig",
363-
libraryDependencies += Dependencies.pureConfig
377+
libraryDependencies += Dependencies.pureConfig,
378+
crossScalaVersions := BuildSettings.crossVersionsWithoutScala3
364379
)
365380

366381
lazy val micrometer = project
@@ -391,7 +406,8 @@ lazy val micrometerJmxPureConfig = project
391406
.settings(BuildSettings.common)
392407
.settings(
393408
name := "sst-micrometer-jmx-pureconfig",
394-
libraryDependencies += Dependencies.pureConfig
409+
libraryDependencies += Dependencies.pureConfig,
410+
crossScalaVersions := BuildSettings.crossVersionsWithoutScala3
395411
)
396412

397413
lazy val micrometerStatsD = project
@@ -412,7 +428,8 @@ lazy val micrometerStatsDPureConfig = project
412428
.settings(BuildSettings.common)
413429
.settings(
414430
name := "sst-micrometer-statsd-pureconfig",
415-
libraryDependencies += Dependencies.pureConfig
431+
libraryDependencies += Dependencies.pureConfig,
432+
crossScalaVersions := BuildSettings.crossVersionsWithoutScala3
416433
)
417434

418435
lazy val monixCatnap = project
@@ -444,15 +461,17 @@ lazy val monixCatnapPureConfig = project
444461
.settings(BuildSettings.common)
445462
.settings(
446463
name := "sst-monix-catnap-pureconfig",
447-
libraryDependencies += Dependencies.pureConfig
464+
libraryDependencies += Dependencies.pureConfig,
465+
crossScalaVersions := BuildSettings.crossVersionsWithoutScala3
448466
)
449467

450468
lazy val pureConfig = project
451469
.in(file("pureconfig"))
452470
.settings(BuildSettings.common)
453471
.settings(
454472
name := "sst-pureconfig",
455-
libraryDependencies += Dependencies.pureConfig
473+
libraryDependencies += Dependencies.pureConfig,
474+
crossScalaVersions := BuildSettings.crossVersionsWithoutScala3
456475
)
457476

458477
lazy val sentry = project
@@ -469,7 +488,8 @@ lazy val sentryPureConfig = project
469488
.settings(BuildSettings.common)
470489
.settings(
471490
name := "sst-sentry-pureconfig",
472-
libraryDependencies += Dependencies.pureConfig
491+
libraryDependencies += Dependencies.pureConfig,
492+
crossScalaVersions := BuildSettings.crossVersionsWithoutScala3
473493
)
474494

475495
lazy val site = project

bundle-monix-http4s-blaze/src/main/scala/com/avast/sst/bundle/MonixServerApp.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ trait MonixServerApp extends TaskApp {
1414

1515
private val logger = LoggerFactory.getLogger(this.getClass)
1616

17-
def program: Resource[Task, Server[Task]]
17+
def program: Resource[Task, Server]
1818

1919
override def run(args: List[String]): Task[ExitCode] = {
2020
program

bundle-zio-http4s-blaze/src/main/scala/com/avast/sst/bundle/ZioServerApp.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ trait ZioServerApp extends CatsApp {
1717

1818
private val logger = LoggerFactory.getLogger(this.getClass)
1919

20-
def program: Resource[Task, Server[Task]]
20+
def program: Resource[Task, Server]
2121

2222
@nowarn("msg=dead code")
2323
override def run(args: List[String]): ZIO[ZEnv, Nothing, ExitCode] = {

cassandra-datastax-driver/src/main/scala/com/avast/sst/datastax/CassandraDatastaxDriverModule.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ object CassandraDatastaxDriverModule {
177177
}
178178
}
179179

180-
val release = { session: CqlSession =>
180+
val release = { (session: CqlSession) =>
181181
Sync[F].delay {
182182
session.close()
183183
}

doobie-hikari/src/main/scala/com/avast/sst/doobie/DoobieHikariConfig.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.avast.sst.doobie
22

3-
import doobie.enum.TransactionIsolation
3+
import doobie.enumerated.TransactionIsolation
44

55
import java.util.concurrent.TimeUnit
66
import scala.concurrent.duration.FiniteDuration

example/src/main/scala/com/avast/sst/example/Main.scala

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ import scala.concurrent.ExecutionContext
3030

3131
object Main extends ZioServerApp {
3232

33-
def program: Resource[Task, Server[Task]] = {
33+
def program: Resource[Task, Server] = {
3434
for {
3535
configuration <- Resource.eval(PureConfigModule.makeOrRaise[Task, Configuration])
3636
executorModule <- ExecutorModule.makeFromExecutionContext[Task](runtime.platform.executor.asEC)
@@ -47,13 +47,18 @@ object Main extends ZioServerApp {
4747
executorModule
4848
.makeThreadPoolExecutor(
4949
configuration.boundedConnectExecutor,
50-
new ConfigurableThreadFactory(Config(Some("hikari-connect-%02d")))
50+
new ConfigurableThreadFactory(Config(nameFormat = Some("hikari-connect-%02d")))
5151
)
5252
.map(ExecutionContext.fromExecutorService)
5353
hikariMetricsFactory = new MicrometerMetricsTrackerFactory(meterRegistry)
5454
doobieTransactor <-
5555
DoobieHikariModule
56-
.make[Task](configuration.database, boundedConnectExecutionContext, executorModule.blocker, Some(hikariMetricsFactory))
56+
.make[Task](
57+
configuration.database,
58+
boundedConnectExecutionContext: ExecutionContext,
59+
executorModule.blocker,
60+
Some(hikariMetricsFactory)
61+
)
5762
randomService = RandomService(doobieTransactor)
5863
httpClient <- Http4sBlazeClientModule.make[Task](configuration.client, executorModule.executionContext)
5964
circuitBreakerMetrics <- Resource.eval(MicrometerCircuitBreakerMetricsModule.make[Task]("test-http-client", meterRegistry))

example/src/main/scala/com/avast/sst/example/service/RandomService.scala

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.avast.sst.example.service
22

3+
import doobie.Fragment
34
import doobie.implicits._
45
import doobie.util.transactor.Transactor
56
import zio.Task
@@ -16,7 +17,8 @@ object RandomService {
1617
def apply(transactor: Transactor[Task]): RandomService =
1718
new RandomService {
1819
override def randomNumber: Task[Double] = {
19-
sql"select random()"
20+
Fragment
21+
.const("select random()")
2022
.query[Double]
2123
.unique
2224
.transact(transactor)

grpc-server/src/main/scala/com/avast/sst/grpc/server/GrpcServerModule.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ object GrpcServerModule {
2828
.handshakeTimeout(config.handshakeTimeout.toMillis, TimeUnit.MILLISECONDS)
2929
.maxInboundMessageSize(config.maxInboundMessageSize)
3030
.maxInboundMetadataSize(config.maxInboundMetadataSize)
31-
.executor(executionContext.execute)
31+
.executor(executionContext.execute(_))
3232

3333
services.foreach(builder.addService)
3434
interceptors.foreach(builder.intercept)

http4s-client-blaze-pureconfig/src/main/scala/com/avast/sst/http4s/client/pureconfig/ConfigReaders.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package com.avast.sst.http4s.client.pureconfig
22

33
import cats.syntax.either._
44
import com.avast.sst.http4s.client.Http4sBlazeClientConfig
5-
import org.http4s.client.blaze.ParserMode
5+
import org.http4s.blaze.client.ParserMode
66
import org.http4s.headers.`User-Agent`
77
import pureconfig.ConfigReader
88
import pureconfig.error.CannotConvert

http4s-client-blaze/src/main/scala/com/avast/sst/http4s/client/Http4sBlazeClientConfig.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package com.avast.sst.http4s.client
22

3-
import org.http4s.BuildInfo
4-
import org.http4s.client.blaze.ParserMode
3+
import org.http4s.blaze.client.ParserMode
54
import org.http4s.client.defaults
6-
import org.http4s.headers.{AgentComment, AgentProduct, `User-Agent`}
5+
import org.http4s.headers.`User-Agent`
6+
import org.http4s.{BuildInfo, ProductComment, ProductId}
77

88
import java.util.concurrent.TimeUnit
99
import scala.concurrent.duration.{Duration, FiniteDuration}
@@ -13,7 +13,7 @@ final case class Http4sBlazeClientConfig(
1313
idleTimeout: FiniteDuration = Duration(1, TimeUnit.MINUTES),
1414
requestTimeout: FiniteDuration = defaults.RequestTimeout,
1515
connectTimeout: FiniteDuration = defaults.ConnectTimeout,
16-
userAgent: `User-Agent` = `User-Agent`(AgentProduct("http4s-blaze-client", Some(BuildInfo.version)), List(AgentComment("Server"))),
16+
userAgent: `User-Agent` = `User-Agent`(ProductId("http4s-blaze-client", Some(BuildInfo.version)), List(ProductComment("Server"))),
1717
maxTotalConnections: Int = 10,
1818
maxWaitQueueLimit: Int = 256,
1919
maxConnectionsPerRequestkey: Int = 256,

http4s-client-blaze/src/main/scala/com/avast/sst/http4s/client/Http4sBlazeClientModule.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package com.avast.sst.http4s.client
22

33
import cats.effect.{ConcurrentEffect, Resource}
4+
import org.http4s.blaze.client.BlazeClientBuilder
45
import org.http4s.client.Client
5-
import org.http4s.client.blaze.BlazeClientBuilder
66

77
import javax.net.ssl.SSLContext
88
import scala.concurrent.ExecutionContext

http4s-server-blaze/src/main/scala/com/avast/sst/http4s/server/Http4sBlazeServerModule.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ package com.avast.sst.http4s.server
22

33
import cats.effect.{ConcurrentEffect, Resource, Timer}
44
import org.http4s.HttpApp
5+
import org.http4s.blaze.server.BlazeServerBuilder
56
import org.http4s.server.Server
6-
import org.http4s.server.blaze.BlazeServerBuilder
77

88
import java.net.{InetSocketAddress, StandardSocketOptions}
99
import scala.concurrent.ExecutionContext
@@ -19,7 +19,7 @@ object Http4sBlazeServerModule {
1919
config: Http4sBlazeServerConfig,
2020
httpApp: HttpApp[F],
2121
executionContext: ExecutionContext
22-
): Resource[F, Server[F]] = {
22+
): Resource[F, Server] = {
2323
for {
2424
inetSocketAddress <- Resource.eval(
2525
ConcurrentEffect[F].delay(

http4s-server/src/main/scala/com/avast/sst/http4s/server/middleware/CorrelationIdMiddleware.scala

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ import cats.data.{Kleisli, OptionT}
44
import cats.effect.Sync
55
import cats.syntax.functor._
66
import com.avast.sst.http4s.server.middleware.CorrelationIdMiddleware.CorrelationId
7-
import io.chrisdavenport.vault.Key
8-
import org.http4s.util.CaseInsensitiveString
97
import org.http4s.{Header, HttpRoutes, Request, Response}
108
import org.slf4j.LoggerFactory
9+
import org.typelevel.ci.CIString
10+
import org.typelevel.vault.Key
1111

1212
import java.util.UUID
1313

@@ -17,7 +17,7 @@ import java.util.UUID
1717
* Use method `retrieveCorrelationId` to get the value from request attributes.
1818
*/
1919
class CorrelationIdMiddleware[F[_]: Sync](
20-
correlationIdHeaderName: CaseInsensitiveString,
20+
correlationIdHeaderName: CIString,
2121
attributeKey: Key[CorrelationId],
2222
generator: () => String
2323
) {
@@ -30,15 +30,15 @@ class CorrelationIdMiddleware[F[_]: Sync](
3030
Kleisli[OptionT[F, *], Request[F], Response[F]] { request =>
3131
request.headers.get(correlationIdHeaderName) match {
3232
case Some(header) =>
33-
val requestWithAttribute = request.withAttribute(attributeKey, CorrelationId(header.value))
33+
val requestWithAttribute = request.withAttribute(attributeKey, CorrelationId(header.show))
3434
routes(requestWithAttribute).map(r => r.withHeaders(r.headers.put(header)))
3535
case None =>
3636
for {
3737
newCorrelationId <- OptionT.liftF(F.delay(generator()))
3838
_ <- log(newCorrelationId)
3939
requestWithAttribute = request.withAttribute(attributeKey, CorrelationId(newCorrelationId))
4040
response <- routes(requestWithAttribute)
41-
} yield response.withHeaders(response.headers.put(Header(correlationIdHeaderName.value, newCorrelationId)))
41+
} yield response.withHeaders(response.headers.put(Header.Raw(correlationIdHeaderName, newCorrelationId)))
4242
}
4343
}
4444

@@ -62,7 +62,7 @@ object CorrelationIdMiddleware {
6262
@SuppressWarnings(Array("scalafix:Disable.toString"))
6363
def default[F[_]: Sync]: F[CorrelationIdMiddleware[F]] = {
6464
Key.newKey[F, CorrelationId].map { attributeKey =>
65-
new CorrelationIdMiddleware(CaseInsensitiveString("Correlation-ID"), attributeKey, () => UUID.randomUUID().toString)
65+
new CorrelationIdMiddleware(CIString("Correlation-ID"), attributeKey, () => UUID.randomUUID().toString)
6666
}
6767
}
6868

0 commit comments

Comments
 (0)