Skip to content

Commit debff5c

Browse files
Updates for KP2025 (#1015)
* Updates for Sosialhjelp and Kvalifisering * Updates for Kommuneregnskap * Updates for KirkeKostra * Updates for KvartalKostra * Updates for Familievern * Create file description templates, Klass integration and Gradle task to generate * Add markdown generated by Gradle task * Add file descriptions generated by Gradle task --------- Co-authored-by: Roar Skinderviken <roar.skinderviken@gmail.com>
1 parent b290a39 commit debff5c

File tree

134 files changed

+8616
-2527
lines changed

Some content is hidden

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

134 files changed

+8616
-2527
lines changed

build.gradle.kts

Lines changed: 46 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,19 @@ group = "no.ssb.kostra"
55
repositories { mavenCentral() }
66

77
plugins {
8-
alias(libs.plugins.kotlin.jvm) apply false
8+
alias(libs.plugins.kotlin.jvm)
99
alias(libs.plugins.sonarqube)
1010
jacoco
1111
}
1212

13+
dependencies {
14+
implementation(project(":kostra-kontroller"))
15+
compileOnly(libs.micronaut.serde.jackson)
16+
implementation(libs.jackson.dataformat.yaml)
17+
18+
testImplementation(libs.assertj.core)
19+
}
20+
1321
sonarqube {
1422
properties {
1523
property("sonar.organization", "statisticsnorway")
@@ -23,17 +31,20 @@ sonarqube {
2331
**/KostraRecordExtensionsGenerics.kt,
2432
**/KostraKontrollprogramCommand.kt,
2533
**/MappingToConsoleAppExtensions.kt,
26-
**/kostra/barnevern/**/*
34+
**/kostra/barnevern/**/*,
35+
**/gradletask/**/*
2736
""".trimIndent(),
2837
)
2938
}
3039
}
3140

32-
subprojects {
41+
val localLibs = extensions.getByType<VersionCatalogsExtension>().named("libs")
42+
43+
allprojects {
3344
if (name != "kostra-kontrollprogram-web-frontend") {
3445
repositories { mavenCentral() }
3546

36-
apply(plugin = "kotlin")
47+
apply(plugin = "org.jetbrains.kotlin.jvm")
3748
apply(plugin = "jacoco")
3849

3950
configure<KotlinJvmProjectExtension> {
@@ -51,5 +62,36 @@ subprojects {
5162
xml.required.set(true)
5263
}
5364
}
65+
66+
dependencies {
67+
testImplementation(localLibs.findLibrary("kotest.runner.junit5.jvm").get())
68+
testImplementation(localLibs.findLibrary("kotest.assertions.core.jvm").get())
69+
testImplementation(localLibs.findLibrary("mockk.jvm").get())
70+
}
5471
}
5572
}
73+
74+
//tasks.test {
75+
// useJUnitPlatform() // IMPORTANT for Kotest 5+
76+
//}
77+
//
78+
//tasks.register<JavaExec>("generateMarkdownFromFileDescriptions") {
79+
// group = "documentation"
80+
// description = "Generates Markdown files from YAML in file_description_templates"
81+
//
82+
// val inputDir = file("kontroller/src/test/resources/file_description_templates")
83+
// val outputDir = file("kravspesifikasjon")
84+
//
85+
// inputs.files(fileTree(inputDir) {
86+
// include("file_description_*.yaml", "file_description_*.yml")
87+
// })
88+
//
89+
// outputs.dir(outputDir)
90+
//
91+
// classpath = sourceSets["main"].runtimeClasspath
92+
// mainClass.set("gradletask.ApplicationKt")
93+
//}
94+
//
95+
//tasks.named("build") {
96+
// dependsOn("generateMarkdownFromFileDescriptions")
97+
//}

gradle/libs.versions.toml

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
[versions]
2-
micronaut-platform-version = "4.8.3"
32
kotlin-version = "2.1.10"
43
jackson-version = "2.19.0"
54
kotest-version = "5.9.1"
@@ -17,6 +16,11 @@ gradle-git-properties-version = "2.5.0"
1716
devtools-ksp-version = "2.1.10-1.0.31"
1817
micronaut-application-version = "4.5.3"
1918
siouan-frontend-jdk21-version = "10.0.0"
19+
# to be removed
20+
assertj-core-version = "3.26.3"
21+
22+
micronaut-platform-version = "4.8.3"
23+
micronaut-serde-jackson-version = "2.13.0"
2024

2125
[libraries]
2226
# Kotlin
@@ -29,15 +33,19 @@ jackson-dataformat-xml = { group = "com.fasterxml.jackson.dataformat", name = "j
2933
jackson-dataformat-yaml = { group = "com.fasterxml.jackson.dataformat", name = "jackson-dataformat-yaml", version.ref = "jackson-version" }
3034

3135
woodstox-core = { group = "com.fasterxml.woodstox", name = "woodstox-core", version.ref = "woodstox-core-version" }
32-
picocli = { group = "info.picocli", name = "picocli", version.ref = "picocli-version"}
36+
picocli = { group = "info.picocli", name = "picocli", version.ref = "picocli-version" }
3337
logback-classic = { group = "ch.qos.logback", name = "logback-classic", version.ref = "logback-classic-version" }
34-
micronaut-platform = { group = "io.micronaut.platform", name = "micronaut-parent", version.ref = "micronaut-platform-version" }
3538
swagger-annotations = { group = "io.swagger.core.v3", name = "swagger-annotations", version.ref = "swagger-annotations-version" }
3639

40+
micronaut-platform = { group = "io.micronaut.platform", name = "micronaut-parent", version.ref = "micronaut-platform-version" }
41+
micronaut-serde-jackson = { group = "io.micronaut.serde", name = "micronaut-serde-jackson", version.ref = "micronaut-serde-jackson-version" }
42+
3743
# Tests
3844
kotest-assertions-core-jvm = { group = "io.kotest", name = "kotest-assertions-core-jvm", version.ref = "kotest-version" }
3945
kotest-runner-junit5-jvm = { group = "io.kotest", name = "kotest-runner-junit5-jvm", version.ref = "kotest-version" }
4046
mockk-jvm = { group = "io.mockk", name = "mockk-jvm", version.ref = "mockk-version" }
47+
assertj-core = { group = "org.assertj", name = "assertj-core", version.ref = "assertj-core-version" }
48+
4149

4250
[plugins]
4351
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin-version" }

konsoll/build.gradle.kts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,4 @@ dependencies {
99
implementation(project(":kostra-kontroller"))
1010
implementation(libs.picocli)
1111
runtimeOnly(libs.logback.classic)
12-
13-
testImplementation(libs.kotest.assertions.core.jvm)
14-
testImplementation(libs.kotest.runner.junit5.jvm)
15-
testImplementation(libs.mockk.jvm)
1612
}

kontroller/build.gradle.kts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,7 @@ dependencies {
77

88
implementation(libs.jackson.dataformat.yaml)
99
implementation(libs.jackson.module.kotlin)
10-
11-
testImplementation(libs.kotest.assertions.core.jvm)
12-
testImplementation(libs.kotest.runner.junit5.jvm)
13-
testImplementation(libs.mockk.jvm)
10+
compileOnly(libs.micronaut.serde.jackson)
1411
}
1512

1613
gitProperties {
Lines changed: 33 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,49 @@
11
package no.ssb.kostra.area.famvern
22

3+
import com.fasterxml.jackson.annotation.JsonIgnoreProperties
4+
import io.micronaut.serde.annotation.Serdeable
35
import no.ssb.kostra.program.FileLoader
46

57
object FamilievernConstants {
6-
private const val FILENAME = "mapping_familievern_region_fylke_kontor_2024.yaml"
8+
private const val FILENAME = "mapping_familievern_region_fylke_kontor_2025.yaml"
79

8-
data class MappingDescription(
10+
@JsonIgnoreProperties(ignoreUnknown = true)
11+
@Serdeable
12+
data class FamvernHierarchyMapping(
913
val title: String,
1014
val description: String,
1115
val year: Int,
12-
val regions: List<MappingRegion>
16+
val mappings: List<FamvernHierarchyKontorFylkeRegionMapping>
1317
) {
14-
fun toKontorFylkeRegionMapping(): List<KontorFylkeRegionMapping> =
15-
this.regions.flatMap { region ->
16-
region.counties.flatMap { county ->
17-
county.offices.map { office ->
18-
KontorFylkeRegionMapping(office.code, county.code, region.code)
19-
}
20-
}
18+
fun toKontorFylkeRegionMapping(): List<FamvernHierarchyKontorFylkeRegionMapping> = mappings
19+
20+
fun toMarkdown(): String = buildString {
21+
appendLine("# $title (${year})")
22+
appendLine()
23+
appendLine(description)
24+
appendLine()
25+
appendLine("## Koblinger")
26+
appendLine()
27+
appendLine("| Regionnummer | Regionnavn | Fylkenummer | Fylkenavn | Kontornummer | Kontornavn |")
28+
appendLine("|--------------|------------|-------------|-----------|--------------|------------|")
29+
for (mapping in mappings) {
30+
appendLine("| `${mapping.region}` | ${mapping.regionName} | `${mapping.fylke}` | ${mapping.fylkeName} | `${mapping.kontor}` | ${mapping.kontorName} |")
2131
}
32+
}
2233
}
2334

24-
data class MappingRegion(val code: String, val name: String, val counties: List<MappingCounty>)
35+
@JsonIgnoreProperties(ignoreUnknown = true)
36+
@Serdeable
37+
data class FamvernHierarchyKontorFylkeRegionMapping(
38+
val region: String,
39+
val regionName: String = "",
40+
val fylke: String,
41+
val fylkeName: String = "",
42+
val kontor: String,
43+
val kontorName: String = ""
44+
)
2545

26-
data class MappingCounty(val code: String, val name: String, val offices: List<MappingOffice>)
46+
val famvernHierarchyKontorFylkeRegionMappingList: List<FamvernHierarchyKontorFylkeRegionMapping> =
47+
FileLoader.getResource<FamvernHierarchyMapping>(FILENAME).toKontorFylkeRegionMapping()
2748

28-
data class MappingOffice(val code: String, val name: String)
29-
30-
data class KontorFylkeRegionMapping(val kontor: String, val fylke: String, val region: String)
31-
32-
val kontorFylkeRegionMappingList: List<KontorFylkeRegionMapping> =
33-
FileLoader.getResource<MappingDescription>(FILENAME).toKontorFylkeRegionMapping()
3449
}

kontroller/src/main/kotlin/no/ssb/kostra/area/famvern/famvern52a/Familievern52aFieldDefinitions.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ import no.ssb.kostra.program.FileLoader
77
object Familievern52aFieldDefinitions : FieldDefinitions {
88
override val fieldDefinitions: List<FieldDefinition> =
99
FileLoader
10-
.getResourceAsFieldDefinitionList("file_description_52AF_2024.yaml")
10+
.getResourceAsFieldDefinitionList("file_description_52AF_2025.yaml")
1111
}

kontroller/src/main/kotlin/no/ssb/kostra/area/famvern/famvern52a/Familievern52aMain.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package no.ssb.kostra.area.famvern.famvern52a
22

3-
import no.ssb.kostra.area.famvern.FamilievernConstants.kontorFylkeRegionMappingList
3+
import no.ssb.kostra.area.famvern.FamilievernConstants.famvernHierarchyKontorFylkeRegionMappingList
44
import no.ssb.kostra.program.KotlinArguments
55
import no.ssb.kostra.validation.PositionedFileValidator
66
import no.ssb.kostra.validation.rule.AbstractRule
@@ -17,9 +17,9 @@ class Familievern52aMain(arguments: KotlinArguments) : PositionedFileValidator(a
1717

1818
override val validationRules = listOf(
1919
Rule002FileDescription(fieldDefinitions.fieldDefinitions),
20-
Rule003Regionsnummer(kontorFylkeRegionMappingList),
21-
Rule004Kontornummer(kontorFylkeRegionMappingList),
22-
Rule005RegionsnummerKontornummer(kontorFylkeRegionMappingList),
20+
Rule003Regionsnummer(famvernHierarchyKontorFylkeRegionMappingList),
21+
Rule004Kontornummer(famvernHierarchyKontorFylkeRegionMappingList),
22+
Rule005RegionsnummerKontornummer(famvernHierarchyKontorFylkeRegionMappingList),
2323
Rule006Dubletter(),
2424
Rule007Henvendelsesdato(),
2525
Rule009KontaktTidligere(),

kontroller/src/main/kotlin/no/ssb/kostra/area/famvern/famvern52b/Familievern52bFieldDefinitions.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ import no.ssb.kostra.program.FileLoader
77
object Familievern52bFieldDefinitions : FieldDefinitions {
88
override val fieldDefinitions: List<FieldDefinition> =
99
FileLoader
10-
.getResourceAsFieldDefinitionList("file_description_52BF_2024.yaml")
10+
.getResourceAsFieldDefinitionList("file_description_52BF_2025.yaml")
1111
}

kontroller/src/main/kotlin/no/ssb/kostra/area/famvern/famvern52b/Familievern52bMain.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package no.ssb.kostra.area.famvern.famvern52b
22

3-
import no.ssb.kostra.area.famvern.FamilievernConstants.kontorFylkeRegionMappingList
3+
import no.ssb.kostra.area.famvern.FamilievernConstants.famvernHierarchyKontorFylkeRegionMappingList
44
import no.ssb.kostra.program.KotlinArguments
55
import no.ssb.kostra.validation.PositionedFileValidator
66
import no.ssb.kostra.validation.rule.AbstractRule
@@ -18,9 +18,9 @@ class Familievern52bMain(arguments: KotlinArguments) : PositionedFileValidator(a
1818

1919
override val validationRules = listOf(
2020
Rule002FileDescription(fieldDefinitions.fieldDefinitions),
21-
Rule003Regionsnummer(kontorFylkeRegionMappingList),
22-
Rule004Kontornummer(kontorFylkeRegionMappingList),
23-
Rule005RegionsnummerKontornummer(kontorFylkeRegionMappingList),
21+
Rule003Regionsnummer(famvernHierarchyKontorFylkeRegionMappingList),
22+
Rule004Kontornummer(famvernHierarchyKontorFylkeRegionMappingList),
23+
Rule005RegionsnummerKontornummer(famvernHierarchyKontorFylkeRegionMappingList),
2424
Rule006Dubletter(),
2525
Rule007Gruppenavn(),
2626
Rule008StartDato(),

kontroller/src/main/kotlin/no/ssb/kostra/area/famvern/famvern53/Familievern53FieldDefinitions.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ import no.ssb.kostra.program.FileLoader
77
object Familievern53FieldDefinitions : FieldDefinitions {
88
override val fieldDefinitions: List<FieldDefinition> =
99
FileLoader
10-
.getResourceAsFieldDefinitionList("file_description_53F_2024.yaml")
10+
.getResourceAsFieldDefinitionList("file_description_53F_2025.yaml")
1111
}

0 commit comments

Comments
 (0)