Skip to content

Commit 2eae630

Browse files
authored
Feat/scala3 (#872)
Add support for Scala 3
1 parent 3f8c1da commit 2eae630

File tree

87 files changed

+908
-244
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

87 files changed

+908
-244
lines changed

.scalafix.conf

-12
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,6 @@ rules = [
55
MissingFinal
66
NoAutoTupling
77
NoValInForComprehension
8-
ProcedureSyntax
9-
RemoveUnused
10-
OrganizeImports
118
]
129

1310
Disable.symbols = [
@@ -156,12 +153,3 @@ DisableSyntax {
156153
noWhileLoops = true
157154
noXml = true
158155
}
159-
160-
RemoveUnused {
161-
imports = false // handled by OrganizeImports
162-
}
163-
164-
OrganizeImports {
165-
# Allign with IntelliJ IDEA so that they don't fight each other
166-
groupedImports = Merge
167-
}

build.sbt

+34-16
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,17 @@
1+
def pureconfig = libraryDependencies ++= {
2+
CrossVersion.partialVersion(scalaVersion.value) match {
3+
case Some((3, _)) =>
4+
List(
5+
Dependencies.pureConfigCore
6+
)
7+
case Some((2, _)) =>
8+
List(
9+
Dependencies.pureConfigCore,
10+
Dependencies.pureConfigGeneric
11+
)
12+
}
13+
}
14+
115
lazy val root = project
216
.in(file("."))
317
.aggregate(
@@ -105,7 +119,7 @@ lazy val cassandraDatastaxDriverPureConfig = project
105119
.settings(BuildSettings.common)
106120
.settings(
107121
name := "sst-cassandra-datastax-driver-pureconfig",
108-
libraryDependencies += Dependencies.pureConfig
122+
pureconfig
109123
)
110124

111125
lazy val catsEffect = project
@@ -130,7 +144,7 @@ lazy val doobieHikariPureConfig = project
130144
.settings(BuildSettings.common)
131145
.settings(
132146
name := "sst-doobie-hikari-pureconfig",
133-
libraryDependencies += Dependencies.pureConfig
147+
pureconfig
134148
)
135149

136150
lazy val example = project
@@ -177,7 +191,7 @@ lazy val flywayPureConfig = project
177191
.settings(BuildSettings.common)
178192
.settings(
179193
name := "sst-flyway-pureconfig",
180-
libraryDependencies += Dependencies.pureConfig
194+
pureconfig
181195
)
182196

183197
lazy val fs2Kafka = project
@@ -199,7 +213,7 @@ lazy val fs2KafkaPureConfig = project
199213
.settings(BuildSettings.common)
200214
.settings(
201215
name := "sst-fs2-kafka-pureconfig",
202-
libraryDependencies += Dependencies.pureConfig
216+
pureconfig
203217
)
204218

205219
lazy val grpcServer = project
@@ -230,7 +244,7 @@ lazy val grpcServerPureConfig = project
230244
.settings(BuildSettings.common)
231245
.settings(
232246
name := "sst-grpc-server-pureconfig",
233-
libraryDependencies += Dependencies.pureConfig
247+
pureconfig
234248
)
235249

236250
lazy val http4sClientBlaze = project
@@ -288,7 +302,7 @@ lazy val http4sServerBlazePureConfig = project
288302
.settings(BuildSettings.common)
289303
.settings(
290304
name := "sst-http4s-server-blaze-pureconfig",
291-
libraryDependencies += Dependencies.pureConfig
305+
pureconfig
292306
)
293307

294308
lazy val http4sServerMicrometer = project
@@ -316,7 +330,7 @@ lazy val jdkHttpClientPureConfig = project
316330
.settings(BuildSettings.common)
317331
.settings(
318332
name := "sst-jdk-http-client-pureconfig",
319-
libraryDependencies += Dependencies.pureConfig
333+
pureconfig
320334
)
321335

322336
lazy val jvm = project
@@ -345,7 +359,7 @@ lazy val jvmPureConfig = project
345359
.settings(BuildSettings.common)
346360
.settings(
347361
name := "sst-jvm-pureconfig",
348-
libraryDependencies += Dependencies.pureConfig
362+
pureconfig
349363
)
350364

351365
lazy val lettuce = project
@@ -362,7 +376,7 @@ lazy val lettucePureConfig = project
362376
.settings(BuildSettings.common)
363377
.settings(
364378
name := "sst-lettuce-pureconfig",
365-
libraryDependencies += Dependencies.pureConfig
379+
pureconfig
366380
)
367381

368382
lazy val micrometer = project
@@ -393,7 +407,7 @@ lazy val micrometerJmxPureConfig = project
393407
.settings(BuildSettings.common)
394408
.settings(
395409
name := "sst-micrometer-jmx-pureconfig",
396-
libraryDependencies += Dependencies.pureConfig
410+
pureconfig
397411
)
398412

399413
lazy val micrometerPrometheus = project
@@ -411,7 +425,7 @@ lazy val micrometerPrometheusPureConfig = project
411425
.settings(BuildSettings.common)
412426
.settings(
413427
name := "sst-micrometer-prometheus-pureconfig",
414-
libraryDependencies += Dependencies.pureConfig
428+
pureconfig
415429
)
416430

417431
lazy val micrometerStatsD = project
@@ -432,7 +446,7 @@ lazy val micrometerStatsDPureConfig = project
432446
.settings(BuildSettings.common)
433447
.settings(
434448
name := "sst-micrometer-statsd-pureconfig",
435-
libraryDependencies += Dependencies.pureConfig
449+
pureconfig
436450
)
437451

438452
lazy val monixCatnap = project
@@ -464,15 +478,15 @@ lazy val monixCatnapPureConfig = project
464478
.settings(BuildSettings.common)
465479
.settings(
466480
name := "sst-monix-catnap-pureconfig",
467-
libraryDependencies += Dependencies.pureConfig
481+
pureconfig
468482
)
469483

470484
lazy val pureConfig = project
471485
.in(file("pureconfig"))
472486
.settings(BuildSettings.common)
473487
.settings(
474488
name := "sst-pureconfig",
475-
libraryDependencies += Dependencies.pureConfig
489+
pureconfig
476490
)
477491

478492
lazy val sentry = project
@@ -489,7 +503,7 @@ lazy val sentryPureConfig = project
489503
.settings(BuildSettings.common)
490504
.settings(
491505
name := "sst-sentry-pureconfig",
492-
libraryDependencies += Dependencies.pureConfig
506+
pureconfig
493507
)
494508

495509
lazy val site = project
@@ -521,6 +535,10 @@ lazy val site = project
521535
.settings(BuildSettings.common)
522536
.settings(BuildSettings.microsite)
523537
.settings(
538+
libraryDependencies += "org.scalameta" %% "mdoc" % "2.3.2" excludeAll (
539+
ExclusionRule(organization = "org.slf4j"),
540+
ExclusionRule(organization = "org.scala-lang.modules", name = "scala-collection-compat_2.13")
541+
),
524542
publish / skip := true,
525543
scalacOptions := scalacOptions.value.filterNot(_ == "-Xfatal-warnings").filterNot(_ == "-Xlint:infer-any")
526544
)
@@ -538,6 +556,6 @@ lazy val sslConfig = project
538556

539557
addCommandAlias(
540558
"check",
541-
"scalafmtSbtCheck; scalafmtCheckAll; Compile/scalafix --check; Test/scalafix --check; +doc; +site/mdoc; +test"
559+
"scalafmtSbtCheck; scalafmtCheckAll; Compile/scalafix --check; Test/scalafix --check; +doc; site/mdoc; +test"
542560
)
543561
addCommandAlias("fix", "Compile/scalafix; Test/scalafix; scalafmtSbt; scalafmtAll")
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
package com.avast.sst.datastax.pureconfig
2+
3+
import com.avast.sst.datastax.config._
4+
import pureconfig.generic.ProductHint
5+
import pureconfig.generic.semiauto._
6+
import pureconfig.{ConfigFieldMapping, ConfigReader, PascalCase}
7+
8+
trait ConfigReaders {
9+
10+
implicit protected def hint[T]: ProductHint[T] = ProductHint.default
11+
12+
implicit val cassandraDatastaxDriverDatastaxConfigReader: ConfigReader[CassandraDatastaxDriverConfig] =
13+
deriveReader[CassandraDatastaxDriverConfig]
14+
15+
// Basic driver config
16+
implicit val cassandraDatastaxDriverBasicConfigReader: ConfigReader[BasicConfig] = deriveReader[BasicConfig]
17+
implicit val cassandraDatastaxDriverConsistencyLevelReader: ConfigReader[ConsistencyLevel] =
18+
deriveEnumerationReader[ConsistencyLevel](ConfigFieldMapping(PascalCase, PascalCase))
19+
implicit val cassandraDatastaxDriverBasicRequestConfigReader: ConfigReader[BasicRequestConfig] = deriveReader[BasicRequestConfig]
20+
implicit val cassandraDatastaxDriverLoadBalancingConfigReader: ConfigReader[LoadBalancingPolicyConfig] =
21+
deriveReader[LoadBalancingPolicyConfig]
22+
implicit val cassandraDatastaxDriverFilterConfigReader: ConfigReader[FilterConfig] = deriveReader[FilterConfig]
23+
24+
// Advanced driver config
25+
implicit val cassandraDatastaxDriverAdvancedConfigReader: ConfigReader[AdvancedConfig] = deriveReader[AdvancedConfig]
26+
implicit val cassandraDatastaxDriverRetryPolicyConfigReader: ConfigReader[RetryPolicyConfig] = deriveReader[RetryPolicyConfig]
27+
implicit val cassandraDatastaxDriverSpeculativeExecutionPolicyConfigReader: ConfigReader[SpeculativeExecutionPolicyConfig] =
28+
deriveReader[SpeculativeExecutionPolicyConfig]
29+
implicit val cassandraDatastaxDriverTimestampGeneratorConfigReader: ConfigReader[TimestampGeneratorConfig] =
30+
deriveReader[TimestampGeneratorConfig]
31+
implicit val cassandraDatastaxDriverTraceConfigReader: ConfigReader[TraceConfig] = deriveReader[TraceConfig]
32+
implicit val cassandraDatastaxDriverDriftWarningConfigReader: ConfigReader[DriftWarningConfig] = deriveReader[DriftWarningConfig]
33+
implicit val cassandraDatastaxDriverConnectionConfigReader: ConfigReader[ConnectionConfig] = deriveReader[ConnectionConfig]
34+
implicit val cassandraDatastaxDriverPoolConfigReader: ConfigReader[PoolConfig] = deriveReader[PoolConfig]
35+
implicit val cassandraDatastaxDriverReconnectionPolicyConfigReader: ConfigReader[ReconnectionPolicyConfig] =
36+
deriveReader[ReconnectionPolicyConfig]
37+
implicit val cassandraDatastaxDriverAuthProviderConfigReader: ConfigReader[AuthProviderConfig] = deriveReader[AuthProviderConfig]
38+
implicit val cassandraDatastaxDriverRequestTrackerConfigReader: ConfigReader[RequestTrackerConfig] = deriveReader[RequestTrackerConfig]
39+
implicit val cassandraDatastaxDriverLogsConfigReader: ConfigReader[LogsConfig] = deriveReader[LogsConfig]
40+
implicit val cassandraDatastaxDriverSlowConfigReader: ConfigReader[SlowConfig] = deriveReader[SlowConfig]
41+
implicit val cassandraDatastaxDriverThrottlerConfigReader: ConfigReader[ThrottlerConfig] = deriveReader[ThrottlerConfig]
42+
implicit val cassandraDatastaxDriverNodeStateListenerConfigReader: ConfigReader[NodeStateListenerConfig] =
43+
deriveReader[NodeStateListenerConfig]
44+
implicit val cassandraDatastaxDriverSchemaChangeListenerConfigReader: ConfigReader[SchemaChangeListenerConfig] =
45+
deriveReader[SchemaChangeListenerConfig]
46+
implicit val cassandraDatastaxDriverAddressTranslatorConfigReader: ConfigReader[AddressTranslatorConfig] =
47+
deriveReader[AddressTranslatorConfig]
48+
implicit val cassandraDatastaxDriverProtocolConfigReader: ConfigReader[ProtocolConfig] = deriveReader[ProtocolConfig]
49+
implicit val cassandraDatastaxDriverMetricsConfigReader: ConfigReader[MetricsConfig] = deriveReader[MetricsConfig]
50+
implicit val cassandraDatastaxDriverSessionConfigReader: ConfigReader[SessionConfig] = deriveReader[SessionConfig]
51+
implicit val cassandraDatastaxDriverCqlRequestsConfigReader: ConfigReader[CqlRequestsConfig] = deriveReader[CqlRequestsConfig]
52+
implicit val cassandraDatastaxDriverThrottlingConfigReader: ConfigReader[ThrottlingConfig] = deriveReader[ThrottlingConfig]
53+
implicit val cassandraDatastaxDriverDelayConfigReader: ConfigReader[DelayConfig] = deriveReader[DelayConfig]
54+
implicit val cassandraDatastaxDriverNodeConfigReader: ConfigReader[NodeConfig] = deriveReader[NodeConfig]
55+
implicit val cassandraDatastaxDriverCqlMessagesConfigReader: ConfigReader[CqlMessagesConfig] = deriveReader[CqlMessagesConfig]
56+
implicit val cassandraDatastaxDriverSocketConfigReader: ConfigReader[SocketConfig] = deriveReader[SocketConfig]
57+
implicit val cassandraDatastaxDriverHeartbeatConfigReader: ConfigReader[HeartbeatConfig] = deriveReader[HeartbeatConfig]
58+
implicit val cassandraDatastaxDriverMetadataConfigReader: ConfigReader[MetadataConfig] = deriveReader[MetadataConfig]
59+
implicit val cassandraDatastaxDriverTopologyEventDebouncerConfigReader: ConfigReader[TopologyEventDebouncerConfig] =
60+
deriveReader[TopologyEventDebouncerConfig]
61+
implicit val cassandraDatastaxDriverSchemaConfigReader: ConfigReader[SchemaConfig] = deriveReader[SchemaConfig]
62+
implicit val cassandraDatastaxDriverDebouncerConfigReader: ConfigReader[DebouncerConfig] = deriveReader[DebouncerConfig]
63+
implicit val cassandraDatastaxDriverTokenMapConfigReader: ConfigReader[TokenMapConfig] = deriveReader[TokenMapConfig]
64+
implicit val cassandraDatastaxDriverControlConnectionConfigReader: ConfigReader[ControlConnectionConfig] =
65+
deriveReader[ControlConnectionConfig]
66+
implicit val cassandraDatastaxDriverSchemaAgreementConfigReader: ConfigReader[SchemaAgreementConfig] = deriveReader[SchemaAgreementConfig]
67+
implicit val cassandraDatastaxDriverPreparedStatementsConfigReader: ConfigReader[PreparedStatementsConfig] =
68+
deriveReader[PreparedStatementsConfig]
69+
implicit val cassandraDatastaxDriverReprepareOnUpConfigReader: ConfigReader[ReprepareOnUpConfig] = deriveReader[ReprepareOnUpConfig]
70+
implicit val cassandraDatastaxDriverNettyConfigReader: ConfigReader[NettyConfig] = deriveReader[NettyConfig]
71+
implicit val cassandraDatastaxDriverGroupConfigReader: ConfigReader[GroupConfig] = deriveReader[GroupConfig]
72+
implicit val cassandraDatastaxDriverShutdownConfigReader: ConfigReader[ShutdownConfig] = deriveReader[ShutdownConfig]
73+
implicit val cassandraDatastaxDriverTimerConfigReader: ConfigReader[TimerConfig] = deriveReader[TimerConfig]
74+
implicit val cassandraDatastaxDriverCoalescerConfigReader: ConfigReader[CoalescerConfig] = deriveReader[CoalescerConfig]
75+
implicit val cassandraDatastaxDriverAdvancedRequestConfigReader: ConfigReader[AdvancedRequestConfig] = deriveReader[AdvancedRequestConfig]
76+
77+
// Profile overridable config
78+
implicit val cassandraDatastaxDriverProfileConfigReader: ConfigReader[ProfileConfig] = deriveReader[ProfileConfig]
79+
implicit val cassandraDatastaxDriverProfileBasicConfigReader: ConfigReader[ProfileBasicConfig] = deriveReader[ProfileBasicConfig]
80+
implicit val cassandraDatastaxDriverProfileAdvancedConfigReader: ConfigReader[ProfileAdvancedConfig] = deriveReader[ProfileAdvancedConfig]
81+
implicit val cassandraDatastaxDriverProfilePreparedStatementsConfigReader: ConfigReader[ProfilePreparedStatementsConfig] =
82+
deriveReader[ProfilePreparedStatementsConfig]
83+
implicit val cassandraDatastaxDriverProfileProfileAdvancedRequestConfigReader: ConfigReader[ProfileAdvancedRequestConfig] =
84+
deriveReader[ProfileAdvancedRequestConfig]
85+
}

0 commit comments

Comments
 (0)