Skip to content

Commit 001b392

Browse files
committed
Oppdatert 3.parts biblioteker
- Kotlin til 1.5.10 - Gradle til 7.1 - Jackson til 2.12.3 - Kafka til 2.8.1 - prometheus client til 0.11.0* +++ * Prometheus bruker nå OpenMetrics datamodel With this release the client_java simpleclient switches to the OpenMetrics data model and adds support for various new OpenMetrics-related features. This should be largely seamless, however any counters which lack a _total suffix on their sample will now have it added. If you'd prefer to make that change more gradually, you should change your metric names before upgrading to this version. ref https://github.com/prometheus/client_java/releases/tag/parent-0.10.0
1 parent a09372a commit 001b392

File tree

13 files changed

+79
-105
lines changed

13 files changed

+79
-105
lines changed

build.gradle.kts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,6 @@ allprojects {
6868
dependsOn("spotlessApply", "spotlessKotlinCheck")
6969
}
7070

71-
tasks.named("jar") {
72-
dependsOn("test")
73-
}
74-
7571
repositories {
7672
jcenter()
7773
maven("https://jitpack.io")
@@ -96,6 +92,7 @@ subprojects {
9692
val scmUrl = "scm:git:https://github.com/navikt/dp-inntekt.git"
9793

9894
val sourcesJar by tasks.registering(Jar::class) {
95+
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
9996
archiveClassifier.set("sources")
10097
from(sourceSets["main"].allSource)
10198
}

buildSrc/src/main/kotlin/Constants.kt

Lines changed: 21 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ object Cucumber {
2424
object Dagpenger {
2525

2626
object Biblioteker {
27-
const val version = "2021.05.21-09.36.ed293b8f28a9"
27+
const val version = "2021.06.23-14.39.74fbb7b79fde"
2828
const val stsKlient = "com.github.navikt.dp-biblioteker:sts-klient:$version"
2929
const val grunnbeløp = "com.github.navikt.dp-biblioteker:grunnbelop:$version"
3030
const val ktorUtils = "com.github.navikt.dp-biblioteker:ktor-utils:$version"
@@ -45,16 +45,16 @@ object Dagpenger {
4545
}
4646
}
4747

48-
const val Streams = "com.github.navikt:dagpenger-streams:2021.05.18-14.31.6be662ea8106"
49-
const val Events = "com.github.navikt:dagpenger-events:2021.02.19-08.31.cfd52901bc9f"
48+
const val Streams = "com.github.navikt:dagpenger-streams:2021.06.23-14.29.bbb62ad15d52"
49+
const val Events = "com.github.navikt:dagpenger-events:2021.06.23-14.38.f9ef5d423585"
5050
}
5151

5252
object Database {
53-
const val Postgres = "org.postgresql:postgresql:42.2.11"
53+
const val Postgres = "org.postgresql:postgresql:42.2.22"
5454
const val Kotlinquery = "com.github.seratch:kotliquery:1.3.1"
55-
const val Flyway = "org.flywaydb:flyway-core:6.3.2"
56-
const val HikariCP = "com.zaxxer:HikariCP:3.4.1"
57-
const val VaultJdbc = "no.nav:vault-jdbc:1.3.1"
55+
const val Flyway = "org.flywaydb:flyway-core:7.10.0"
56+
const val HikariCP = "com.zaxxer:HikariCP:4.0.3"
57+
const val VaultJdbc = "no.nav:vault-jdbc:1.3.7"
5858
}
5959

6060
object Fuel {
@@ -69,14 +69,14 @@ object GradleWrapper {
6969
}
7070

7171
object Jackson {
72-
const val version = "2.12.1"
72+
const val version = "2.12.3"
7373
const val core = "com.fasterxml.jackson.core:jackson-core:$version"
7474
const val kotlin = "com.fasterxml.jackson.module:jackson-module-kotlin:$version"
7575
const val jsr310 = "com.fasterxml.jackson.datatype:jackson-datatype-jsr310:$version"
7676
}
7777

7878
object Junit5 {
79-
const val version = "5.7.1"
79+
const val version = "5.7.2"
8080
const val api = "org.junit.jupiter:junit-jupiter-api:$version"
8181
const val params = "org.junit.jupiter:junit-jupiter-params:$version"
8282
const val engine = "org.junit.jupiter:junit-jupiter-engine:$version"
@@ -96,14 +96,14 @@ object JsonAssert {
9696
}
9797

9898
object Kafka {
99-
const val version = "2.4.1"
99+
const val version = "2.8.0"
100100
const val clients = "org.apache.kafka:kafka-clients:$version"
101101
const val streams = "org.apache.kafka:kafka-streams:$version"
102102
const val streamTestUtils = "org.apache.kafka:kafka-streams-test-utils:$version"
103103
fun library(name: String) = "org.apache.kafka:kafka-$name:$version"
104104

105105
object Confluent {
106-
const val version = "5.4.0"
106+
const val version = "6.2.0"
107107
const val avroStreamSerdes = "io.confluent:kafka-streams-avro-serde:$version"
108108
fun library(name: String) = "io.confluent:$name:$version"
109109
}
@@ -113,16 +113,12 @@ object KafkaEmbedded {
113113
const val env = "no.nav:kafka-embedded-env:2.4.0"
114114
}
115115

116-
object Klint {
117-
const val version = "0.33.0"
118-
}
119-
120116
object Konfig {
121117
const val konfig = "com.natpryce:konfig:1.6.10.0"
122118
}
123119

124120
object Kotlin {
125-
const val version = "1.4.30"
121+
const val version = "1.5.10"
126122
const val stdlib = "org.jetbrains.kotlin:kotlin-stdlib:$version"
127123

128124
object Coroutines {
@@ -131,7 +127,7 @@ object Kotlin {
131127
}
132128

133129
object Logging {
134-
const val version = "2.0.4"
130+
const val version = "2.0.8"
135131
const val kotlinLogging = "io.github.microutils:kotlin-logging:$version"
136132
}
137133
}
@@ -157,7 +153,7 @@ object Kotlinx {
157153
}
158154

159155
object Ktor {
160-
const val version = "1.5.1"
156+
const val version = "1.6.0"
161157
const val server = "io.ktor:ktor-server:$version"
162158
const val serverNetty = "io.ktor:ktor-server-netty:$version"
163159
const val auth = "io.ktor:ktor-auth:$version"
@@ -169,7 +165,7 @@ object Ktor {
169165
}
170166

171167
object Log4j2 {
172-
const val version = "2.14.0"
168+
const val version = "2.14.1"
173169
const val api = "org.apache.logging.log4j:log4j-api:$version"
174170
const val core = "org.apache.logging.log4j:log4j-core:$version"
175171
const val slf4j = "org.apache.logging.log4j:log4j-slf4j-impl:$version"
@@ -183,7 +179,7 @@ object Log4j2 {
183179
}
184180

185181
object Micrometer {
186-
const val version = "1.4.0"
182+
const val version = "1.7.0"
187183
const val prometheusRegistry = "io.micrometer:micrometer-registry-prometheus:$version"
188184
}
189185

@@ -199,7 +195,7 @@ object Moshi {
199195
}
200196

201197
object Mockk {
202-
const val version = "1.10.6"
198+
const val version = "1.11.0"
203199
const val mockk = "io.mockk:mockk:$version"
204200
}
205201

@@ -209,7 +205,7 @@ object Nare {
209205
}
210206

211207
object Prometheus {
212-
const val version = "0.8.1"
208+
const val version = "0.11.0"
213209
const val common = "io.prometheus:simpleclient_common:$version"
214210
const val hotspot = "io.prometheus:simpleclient_hotspot:$version"
215211
const val log4j2 = "io.prometheus:simpleclient_log4j2:$version"
@@ -221,7 +217,7 @@ object Prometheus {
221217
}
222218
}
223219

224-
const val RapidAndRivers = "com.github.navikt:rapids-and-rivers:1.f3e5de3"
220+
const val RapidAndRivers = "com.github.navikt:rapids-and-rivers:20210617121814-3e67e4d"
225221

226222
object Slf4j {
227223
const val version = "1.7.25"
@@ -233,7 +229,7 @@ object Ktlint {
233229
}
234230

235231
object Spotless {
236-
const val version = "5.10.1"
232+
const val version = "5.14.0"
237233
const val spotless = "com.diffplug.spotless"
238234
}
239235

@@ -263,7 +259,7 @@ object Wiremock {
263259
}
264260

265261
object Graphql {
266-
const val version = "4.0.0-alpha.12"
262+
const val version = "4.1.1"
267263
const val graphql = "com.expediagroup.graphql"
268264
val client = library("client")
269265
fun library(name: String) = "com.expediagroup:graphql-kotlin-$name:$version"

dp-inntekt-api/build.gradle.kts

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ dependencies {
3838

3939
implementation(Graphql.client)
4040
implementation(Graphql.library("ktor-client"))
41+
implementation(Graphql.library("client-jackson"))
4142
implementation(Ktor.library("client-logging-jvm"))
4243
implementation(Ktor.library("client-apache"))
4344

@@ -81,7 +82,6 @@ dependencies {
8182
implementation(Prometheus.common)
8283
implementation(Prometheus.hotspot)
8384
implementation(Prometheus.log4j2)
84-
8585
implementation(Bekk.nocommons)
8686

8787
implementation(Kotlinx.bimap)
@@ -91,7 +91,10 @@ dependencies {
9191
runtimeOnly("io.grpc:grpc-netty-shaded:$grpcVersion")
9292

9393
testImplementation(kotlin("test"))
94-
testImplementation(Ktor.ktorTest)
94+
testImplementation(Ktor.ktorTest) {
95+
// https://youtrack.jetbrains.com/issue/KT-46090
96+
exclude("org.jetbrains.kotlin", "kotlin-test-junit")
97+
}
9598
testImplementation(Ktor.library("client-mock"))
9699
testImplementation(Junit5.api)
97100
testImplementation(Junit5.params)
@@ -110,10 +113,6 @@ tasks.named("shadowJar") {
110113
dependsOn("test")
111114
}
112115

113-
tasks.named("jar") {
114-
dependsOn("test")
115-
}
116-
117116
tasks.named("compileKotlin") {
118117
dependsOn("spotlessCheck")
119118
dependsOn("graphqlGenerateClient")
@@ -135,13 +134,13 @@ val graphqlGenerateClient by tasks.getting(com.expediagroup.graphql.plugin.gradl
135134
queryFileDirectory.set("$projectDir/src/main/resources")
136135
}
137136

138-
tasks.register<de.undercouch.gradle.tasks.download.Download>("downloadPdlSDL") {
137+
val downloadPdlSDL by tasks.register<de.undercouch.gradle.tasks.download.Download>("downloadPdlSDL") {
139138
src("https://navikt.github.io/pdl/pdl-api-sdl.graphqls")
140139
dest(File(buildDir, schema))
141140
}
142141

143142
tasks.register<Copy>("copySchemaToResources") {
144-
dependsOn("downloadPdlSDL")
143+
dependsOn(downloadPdlSDL)
145144

146145
from(buildDir) {
147146
include(schema)

dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/InntektApi.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,12 +61,13 @@ fun Application.inntektApi(
6161
apiAuthApiKeyVerifier: AuthApiKeyVerifier,
6262
jwkProvider: JwkProvider,
6363
enhetsregisterClient: EnhetsregisterClient,
64-
healthChecks: List<HealthCheck>
64+
healthChecks: List<HealthCheck>,
65+
collectorRegistry: CollectorRegistry = CollectorRegistry.defaultRegistry
6566
) {
6667
install(DefaultHeaders)
6768

6869
install(MicrometerMetrics) {
69-
registry = PrometheusMeterRegistry(PrometheusConfig.DEFAULT, CollectorRegistry.defaultRegistry, Clock.SYSTEM)
70+
registry = PrometheusMeterRegistry(PrometheusConfig.DEFAULT, collectorRegistry, Clock.SYSTEM)
7071
}
7172

7273
install(Authentication) {

dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/db/Postgres.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ fun hikariConfigFrom(config: Configuration) =
5050
}
5151

5252
fun migrate(dataSource: HikariDataSource, initSql: String = "", locations: List<String> = listOf("db/migration")): Int =
53-
Flyway.configure().locations(*locations.toTypedArray()).dataSource(dataSource).initSql(initSql).load().migrate()
53+
Flyway.configure().locations(*locations.toTypedArray()).dataSource(dataSource).initSql(initSql).load().migrate().migrations.size
5454

5555
fun clean(dataSource: HikariDataSource) = Flyway.configure().dataSource(dataSource).load().clean()
5656

dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/klassifiserer/KlassifisertPostering.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ private fun isSykepengerFangstFiske(posteringsType: PosteringsType): Boolean {
140140

141141
private fun isTiltakslønn(posteringsType: PosteringsType): Boolean {
142142
val tiltakslønnPosteringsTyper = listOf(
143+
// @todo Honorar/Akkord/Prosent/Provisjon ?
143144
PosteringsType.L_ANNET_T,
144145
PosteringsType.L_BONUS_T,
145146
PosteringsType.L_FAST_TILLEGG_T,

dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/oppslag/enhetsregister/EnhetsregisterClient.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import io.ktor.client.features.HttpTimeout
88
import io.ktor.client.features.logging.LogLevel
99
import io.ktor.client.features.logging.Logging
1010
import io.ktor.client.request.get
11-
import io.ktor.util.KtorExperimentalAPI
1211
import kotlinx.coroutines.Dispatchers
1312
import kotlinx.coroutines.withContext
1413
import org.apache.http.impl.conn.SystemDefaultRoutePlanner
@@ -34,7 +33,6 @@ class EnhetsregisterClient(
3433
}
3534
}
3635

37-
@KtorExperimentalAPI
3836
internal fun httpClient(
3937
engine: HttpClientEngine = Apache.create { customizeClient { setRoutePlanner(SystemDefaultRoutePlanner(ProxySelector.getDefault())) } }
4038
): HttpClient {
Lines changed: 30 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,34 @@
11
package no.nav.dagpenger.inntekt.oppslag.pdl
22

3-
import com.expediagroup.graphql.client.GraphQLClient
3+
import com.expediagroup.graphql.client.jackson.GraphQLClientJacksonSerializer
44
import com.expediagroup.graphql.client.ktor.GraphQLKtorClient
5-
import com.expediagroup.graphql.types.GraphQLResponse
5+
import com.expediagroup.graphql.client.types.GraphQLClientResponse
6+
import io.ktor.client.HttpClient
7+
import io.ktor.client.engine.cio.CIO
68
import io.ktor.client.features.defaultRequest
79
import io.ktor.client.features.logging.LogLevel
810
import io.ktor.client.features.logging.Logger
911
import io.ktor.client.features.logging.Logging
1012
import io.ktor.client.request.header
1113
import io.ktor.http.HttpHeaders
12-
import io.ktor.util.KtorExperimentalAPI
1314
import mu.KotlinLogging
1415
import no.nav.dagpenger.inntekt.oppslag.Person
1516
import no.nav.dagpenger.inntekt.oppslag.PersonOppslag
1617
import no.nav.pdl.HentPerson
18+
import no.nav.pdl.hentperson.Navn
1719
import java.net.URL
1820
import java.util.UUID
1921

2022
private val log = KotlinLogging.logger { }
2123
private val sikkerlogg = KotlinLogging.logger("tjenestekall")
2224

23-
@KtorExperimentalAPI
24-
class PdlGraphQLRepository constructor(
25-
client: GraphQLClient
25+
class PdlGraphQLRepository(
26+
private val client: GraphQLKtorClient
2627
) : PersonOppslag {
2728

28-
private val query = HentPerson(client)
2929
override suspend fun hentPerson(aktørId: String): Person? {
30-
val result = query.execute(HentPerson.Variables(ident = aktørId))
30+
val query = HentPerson(HentPerson.Variables(ident = aktørId))
31+
val result = client.execute(query)
3132

3233
return if (result.errors?.isNotEmpty() == true) {
3334
log.error { "Feil i GraphQL-responsen: ${result.errors}" }
@@ -37,8 +38,8 @@ class PdlGraphQLRepository constructor(
3738
}
3839
}
3940

40-
private fun GraphQLResponse<HentPerson.Result>.toPerson(): Person? {
41-
val navn: HentPerson.Navn? = data?.hentPerson?.navn?.firstOrNull()
41+
private fun GraphQLClientResponse<HentPerson.Result>.toPerson(): Person? {
42+
val navn: Navn? = data?.hentPerson?.navn?.firstOrNull()
4243
val fødselsnummer = data?.hentIdenter?.identer?.firstOrNull()?.ident
4344
return fødselsnummer?.let { fnr ->
4445
navn?.let { navn ->
@@ -53,27 +54,31 @@ class PdlGraphQLRepository constructor(
5354
}
5455
}
5556

56-
@KtorExperimentalAPI
5757
fun PdlGraphQLClientFactory(
5858
url: String,
5959
oidcProvider: () -> String
60-
) = GraphQLKtorClient(url = URL(url)) {
61-
install(Logging) {
62-
logger = object : Logger {
63-
override fun log(message: String) = sikkerlogg.info { message }
60+
): GraphQLKtorClient {
61+
val client = HttpClient(engineFactory = CIO) {
62+
install(Logging) {
63+
logger = object : Logger {
64+
override fun log(message: String) = sikkerlogg.info { message }
65+
}
66+
67+
level = LogLevel.HEADERS
6468
}
6569

66-
level = LogLevel.HEADERS
67-
}
70+
defaultRequest {
71+
oidcProvider().also {
72+
header(HttpHeaders.Authorization, "Bearer $it")
73+
header("Nav-Consumer-Token", "Bearer $it")
74+
}
6875

69-
defaultRequest {
70-
oidcProvider().also {
71-
header(HttpHeaders.Authorization, "Bearer $it")
72-
header("Nav-Consumer-Token", "Bearer $it")
76+
header(HttpHeaders.UserAgent, "dp-inntekt-api")
77+
header(HttpHeaders.Accept, "application/json")
78+
header("Tema", "DAG")
79+
header("Nav-Call-Id", UUID.randomUUID())
7380
}
74-
75-
header("User-Agent", "dp-inntekt-api")
76-
header("Tema", "DAG")
77-
header("Nav-Call-Id", UUID.randomUUID())
7881
}
82+
83+
return GraphQLKtorClient(url = URL(url), httpClient = client, serializer = GraphQLClientJacksonSerializer())
7984
}

0 commit comments

Comments
 (0)