Skip to content

Commit e6c1730

Browse files
committed
Detekt 2.0.0-alpha.0.
1 parent c60f1c8 commit e6c1730

28 files changed

+88
-78
lines changed

build.gradle.kts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import com.netflix.graphql.dgs.codegen.gradle.GenerateJavaTask
2-
import io.gitlab.arturbosch.detekt.Detekt
3-
import io.gitlab.arturbosch.detekt.getSupportedKotlinVersion
2+
import dev.detekt.gradle.Detekt
3+
import dev.detekt.gradle.plugin.getSupportedKotlinVersion
44
import org.graalvm.buildtools.gradle.tasks.BuildNativeImageTask
55
import org.graalvm.buildtools.gradle.tasks.GenerateResourcesConfigFile
66
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
@@ -105,15 +105,17 @@ detekt {
105105
source.setFrom(files("src/"))
106106
config.setFrom(files("${project.rootDir}/detekt.yml"))
107107
buildUponDefaultConfig = true
108-
allRules = true
109108
}
110109
tasks.withType<Detekt>().configureEach {
111110
jvmTarget = JvmTarget.JVM_21.target
112111
reports {
112+
xml.required.set(false)
113+
sarif.required.set(false)
114+
md.required.set(false)
113115
html.outputLocation.set(file("build/reports/detekt/${project.name}.html"))
114116
}
115117
}
116-
dependencies.add("detektPlugins", libs.detektFormatting)
118+
dependencies.add("detektPlugins", libs.detektKtlintWrapper)
117119

118120
dependencies {
119121
implementation(libs.spring.boot.starter)

detekt.yml

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,27 @@ complexity:
66
TooManyFunctions:
77
excludes: ["**/test/**"]
88

9-
formatting:
9+
ktlint:
1010
ArgumentListWrapping:
1111
excludes: [ '**/test/**' ]
12+
ChainMethodContinuation:
13+
active: false
14+
ClassSignature:
15+
active: false
16+
FunctionExpressionBody:
17+
active: false
18+
FunctionSignature:
19+
active: false
1220
MaximumLineLength:
1321
active: false
22+
MultilineExpressionWrapping:
23+
active: false
24+
PropertyName:
25+
constantNamingStyle: 'pascal_case'
26+
StringTemplateIndent:
27+
active: false
28+
TrailingCommaOnDeclarationSite:
29+
active: false
1430

1531
naming:
1632
TopLevelPropertyNaming:

gradle/libs.versions.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ ktor = "3.1.3"
66
dgsBom = "10.4.0"
77
dgsCodegen = "8.1.1"
88
gcloud-firestore = "3.33.0"
9-
detekt = "1.23.8"
9+
detekt = "2.0.0-alpha.0"
1010
graalvmNative = "0.11.0"
1111
caffeine = "3.2.2"
1212
scrapeit = "1.3.0-alpha.2"
@@ -21,11 +21,11 @@ kotlin-noArg = { id = "org.jetbrains.kotlin.plugin.noarg", version.ref = "kotlin
2121
spring-boot = { id = "org.springframework.boot", version.ref = "spring-boot" }
2222
spring-dependencyManagement = { id = "io.spring.dependency-management", version.ref = "spring-dependencyManagement" }
2323
dgsCodegen = { id = "com.netflix.dgs.codegen", version.ref = "dgsCodegen" }
24-
detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" }
24+
detekt = { id = "dev.detekt", version.ref = "detekt" }
2525
graalvmNative = { id = "org.graalvm.buildtools.native", version.ref = "graalvmNative" }
2626

2727
[libraries]
28-
detektFormatting = { module = "io.gitlab.arturbosch.detekt:detekt-formatting", version.ref = "detekt" }
28+
detektKtlintWrapper = { module = "dev.detekt:detekt-rules-ktlint-wrapper", version.ref = "detekt"}
2929
spring-boot-starter = { module = "org.springframework.boot:spring-boot-starter-webflux" }
3030
spring-boot-starter-test = { module = "org.springframework.boot:spring-boot-starter-test" }
3131
ktor-client-core = { module = "io.ktor:ktor-client-core", version.ref = "ktor" }

src/main/kotlin/io/github/reactivecircus/kstreamlined/backend/KSConfiguration.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ import kotlin.time.Duration.Companion.minutes
2222

2323
@Configuration
2424
class KSConfiguration {
25-
2625
@Bean
2726
fun feedDataSource(
2827
engine: HttpClientEngine,

src/main/kotlin/io/github/reactivecircus/kstreamlined/backend/datafetcher/FeedSourceDataFetcher.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import io.github.reactivecircus.kstreamlined.backend.schema.generated.types.Feed
88

99
@DgsComponent
1010
class FeedSourceDataFetcher {
11-
1211
@DgsQuery(field = DgsConstants.QUERY.FeedSources)
1312
suspend fun feedSources(): List<FeedSource> {
1413
return FeedSourceKey.entries.map {

src/main/kotlin/io/github/reactivecircus/kstreamlined/backend/datasource/FeedDataSource.kt

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,11 @@ import org.apache.commons.text.StringEscapeUtils
2727

2828
interface FeedDataSource {
2929
suspend fun loadKotlinBlogFeed(skipCache: Boolean = false): List<KotlinBlogItem>
30+
3031
suspend fun loadKotlinYouTubeFeed(skipCache: Boolean = false): List<KotlinYouTubeItem>
32+
3133
suspend fun loadTalkingKotlinFeed(skipCache: Boolean = false): List<TalkingKotlinItem>
34+
3235
suspend fun loadKotlinWeeklyFeed(skipCache: Boolean = false): List<KotlinWeeklyItem>
3336
}
3437

@@ -60,7 +63,7 @@ class RealFeedDataSource(
6063
DefaultXmlSerializationPolicy.Builder().apply {
6164
pedantic = false
6265
unknownChildHandler = XmlConfig.IGNORING_UNKNOWN_CHILD_HANDLER
63-
}.build()
66+
}.build(),
6467
)
6568
}
6669

@@ -84,7 +87,7 @@ class RealFeedDataSource(
8487
remoteSource = {
8588
httpClient.get(dataSourceConfig.kotlinBlogFeedUrl).body<KotlinBlogRss>().channel.items.map {
8689
it.copy(
87-
description = StringEscapeUtils.unescapeXml(it.description).trim()
90+
description = StringEscapeUtils.unescapeXml(it.description).trim(),
8891
)
8992
}
9093
},
@@ -102,7 +105,7 @@ class RealFeedDataSource(
102105
remoteSource = {
103106
httpClient.get(dataSourceConfig.kotlinYouTubeFeedUrl).bodyAsText().let {
104107
DefaultXml.decodeFromString<KotlinYouTubeRss>(
105-
it.replace("&(?!.{2,4};)".toRegex(), "&amp;")
108+
it.replace("&(?!.{2,4};)".toRegex(), "&amp;"),
106109
).entries
107110
}
108111
},
@@ -121,7 +124,7 @@ class RealFeedDataSource(
121124
httpClient.get(dataSourceConfig.talkingKotlinFeedUrl).body<TalkingKotlinRss>().channel.items
122125
.map {
123126
it.copy(
124-
summary = StringEscapeUtils.unescapeXml(it.summary).trim()
127+
summary = StringEscapeUtils.unescapeXml(it.summary).trim(),
125128
)
126129
}
127130
},

src/main/kotlin/io/github/reactivecircus/kstreamlined/backend/datasource/FeedPersister.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,22 +11,25 @@ import java.time.format.DateTimeFormatter
1111

1212
interface FeedPersister {
1313
fun loadKotlinBlogItems(): List<KotlinBlogItem>?
14+
1415
fun saveKotlinBlogItems(items: List<KotlinBlogItem>)
1516

1617
fun loadKotlinYouTubeItems(): List<KotlinYouTubeItem>?
18+
1719
fun saveKotlinYouTubeItems(items: List<KotlinYouTubeItem>)
1820

1921
fun loadTalkingKotlinItems(): List<TalkingKotlinItem>?
22+
2023
fun saveTalkingKotlinItems(items: List<TalkingKotlinItem>)
2124

2225
fun loadKotlinWeeklyItems(): List<KotlinWeeklyItem>?
26+
2327
fun saveKotlinWeeklyItems(items: List<KotlinWeeklyItem>)
2428
}
2529

2630
class FirestoreFeedPersister(
2731
private val firestore: Firestore,
2832
) : FeedPersister {
29-
3033
override fun loadKotlinBlogItems(): List<KotlinBlogItem>? {
3134
return firestore.collection(FeedKey.KotlinBlog).get().get().map {
3235
it.toObject(KotlinBlogItem::class.java)

src/main/kotlin/io/github/reactivecircus/kstreamlined/backend/datasource/KotlinWeeklyIssueDataSource.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ interface KotlinWeeklyIssueDataSource {
2020
class RealKotlinWeeklyIssueDataSource(
2121
engine: HttpClientEngine,
2222
) : KotlinWeeklyIssueDataSource {
23-
2423
private val httpClient = HttpClient(engine) {
2524
expectSuccess = true
2625
install(HttpTimeout) {
@@ -82,7 +81,7 @@ class RealKotlinWeeklyIssueDataSource(
8281
url = pair.second,
8382
summary = summaries[index],
8483
source = sources[index],
85-
)
84+
),
8685
)
8786
}
8887
}

src/main/kotlin/io/github/reactivecircus/kstreamlined/backend/datasource/dto/CommonDTOs.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ import kotlinx.serialization.Serializable
55
import nl.adaptivity.xmlutil.serialization.XmlElement
66

77
object Namespace {
8-
const val atom = "http://www.w3.org/2005/Atom"
9-
const val media = "http://search.yahoo.com/mrss/"
10-
const val content = "http://purl.org/rss/1.0/modules/content/"
11-
const val yt = "http://www.youtube.com/xml/schemas/2015"
12-
const val itunes = "http://www.itunes.com/dtds/podcast-1.0.dtd"
8+
const val Atom = "http://www.w3.org/2005/Atom"
9+
const val Aedia = "http://search.yahoo.com/mrss/"
10+
const val Content = "http://purl.org/rss/1.0/modules/content/"
11+
const val Yt = "http://www.youtube.com/xml/schemas/2015"
12+
const val Itunes = "http://www.itunes.com/dtds/podcast-1.0.dtd"
1313
}
1414

1515
@NoArg

src/main/kotlin/io/github/reactivecircus/kstreamlined/backend/datasource/dto/KotlinYouTubeDTOs.kt

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,29 +5,29 @@ import kotlinx.serialization.Serializable
55
import nl.adaptivity.xmlutil.serialization.XmlElement
66
import nl.adaptivity.xmlutil.serialization.XmlSerialName
77

8-
@XmlSerialName("feed", Namespace.atom, "")
8+
@XmlSerialName("feed", Namespace.Atom, "")
99
@Serializable
1010
data class KotlinYouTubeRss(
11-
@XmlSerialName("link", Namespace.atom, "")
11+
@XmlSerialName("link", Namespace.Atom, "")
1212
val links: List<Link>,
1313
@XmlElement(true)
14-
@XmlSerialName(value = "id", namespace = Namespace.atom, prefix = "")
14+
@XmlSerialName(value = "id", namespace = Namespace.Atom, prefix = "")
1515
val id: String,
1616
@XmlElement(true)
17-
@XmlSerialName(value = "channelId", namespace = Namespace.yt, prefix = "")
17+
@XmlSerialName(value = "channelId", namespace = Namespace.Yt, prefix = "")
1818
val channelId: String,
1919
@XmlElement(true)
20-
@XmlSerialName(value = "title", namespace = Namespace.atom, prefix = "")
20+
@XmlSerialName(value = "title", namespace = Namespace.Atom, prefix = "")
2121
val title: String,
2222
val author: KotlinYouTubeAuthor,
2323
@XmlElement(true)
24-
@XmlSerialName(value = "published", namespace = Namespace.atom, prefix = "")
24+
@XmlSerialName(value = "published", namespace = Namespace.Atom, prefix = "")
2525
val published: String,
2626
val entries: List<KotlinYouTubeItem>,
2727
)
2828

2929
@NoArg
30-
@XmlSerialName("author", Namespace.atom, "")
30+
@XmlSerialName("author", Namespace.Atom, "")
3131
@Serializable
3232
data class KotlinYouTubeAuthor(
3333
@XmlElement(true)
@@ -37,21 +37,21 @@ data class KotlinYouTubeAuthor(
3737
)
3838

3939
@NoArg
40-
@XmlSerialName("group", Namespace.media, "")
40+
@XmlSerialName("group", Namespace.Aedia, "")
4141
@Serializable
4242
data class MediaGroup(
4343
@XmlElement(true)
44-
@XmlSerialName(value = "title", namespace = Namespace.media, prefix = "")
44+
@XmlSerialName(value = "title", namespace = Namespace.Aedia, prefix = "")
4545
val title: String,
4646
val content: Content,
4747
val thumbnail: Thumbnail,
4848
@XmlElement(true)
49-
@XmlSerialName(value = "description", namespace = Namespace.media, prefix = "")
49+
@XmlSerialName(value = "description", namespace = Namespace.Aedia, prefix = "")
5050
val description: String,
5151
val community: MediaCommunity,
5252
) {
5353
@NoArg
54-
@XmlSerialName("content", Namespace.media, "")
54+
@XmlSerialName("content", Namespace.Aedia, "")
5555
@Serializable
5656
data class Content(
5757
@XmlElement(false)
@@ -65,7 +65,7 @@ data class MediaGroup(
6565
)
6666

6767
@NoArg
68-
@XmlSerialName("thumbnail", Namespace.media, "")
68+
@XmlSerialName("thumbnail", Namespace.Aedia, "")
6969
@Serializable
7070
data class Thumbnail(
7171
@XmlElement(false)
@@ -78,14 +78,14 @@ data class MediaGroup(
7878
}
7979

8080
@NoArg
81-
@XmlSerialName("community", Namespace.media, "")
81+
@XmlSerialName("community", Namespace.Aedia, "")
8282
@Serializable
8383
data class MediaCommunity(
8484
val starRating: StarRating,
8585
val statistics: Statistics,
8686
) {
8787
@NoArg
88-
@XmlSerialName("starRating", Namespace.media, "")
88+
@XmlSerialName("starRating", Namespace.Aedia, "")
8989
@Serializable
9090
data class StarRating(
9191
@XmlElement(false)
@@ -99,7 +99,7 @@ data class MediaCommunity(
9999
)
100100

101101
@NoArg
102-
@XmlSerialName("statistics", Namespace.media, "")
102+
@XmlSerialName("statistics", Namespace.Aedia, "")
103103
@Serializable
104104
data class Statistics(
105105
@XmlElement(false)
@@ -108,20 +108,20 @@ data class MediaCommunity(
108108
}
109109

110110
@NoArg
111-
@XmlSerialName("entry", Namespace.atom, "")
111+
@XmlSerialName("entry", Namespace.Atom, "")
112112
@Serializable
113113
data class KotlinYouTubeItem(
114114
@XmlElement(true)
115115
val id: String,
116116
@XmlElement(true)
117-
@XmlSerialName(value = "videoId", namespace = Namespace.yt, prefix = "")
117+
@XmlSerialName(value = "videoId", namespace = Namespace.Yt, prefix = "")
118118
val videoId: String,
119119
@XmlElement(true)
120-
@XmlSerialName(value = "channelId", namespace = Namespace.yt, prefix = "")
120+
@XmlSerialName(value = "channelId", namespace = Namespace.Yt, prefix = "")
121121
val channelId: String,
122122
@XmlElement(true)
123123
val title: String,
124-
@XmlSerialName(value = "link", namespace = Namespace.atom, prefix = "")
124+
@XmlSerialName(value = "link", namespace = Namespace.Atom, prefix = "")
125125
val link: Link,
126126
val author: KotlinYouTubeAuthor,
127127
@XmlElement(true)

0 commit comments

Comments
 (0)