Skip to content

Commit

Permalink
setIdleTimeout (#113)
Browse files Browse the repository at this point in the history
Kan nå sette idletimeout på klientene
  • Loading branch information
sondrefjeldstad authored Jan 10, 2025
1 parent 368874f commit f7823c3
Show file tree
Hide file tree
Showing 13 changed files with 70 additions and 29 deletions.
8 changes: 4 additions & 4 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<parent>
<groupId>no.ks.fiks.pom</groupId>
<artifactId>fiks-ekstern-kotlin-superpom</artifactId>
<version>1.2.5</version>
<version>1.2.8</version>
</parent>

<groupId>no.ks.fiks</groupId>
Expand All @@ -18,9 +18,9 @@
<java.version>17</java.version>
<kotlin.code.style>official</kotlin.code.style>

<jackson.version>2.18.0</jackson.version>
<maskinporten-client.version>3.3.1</maskinporten-client.version>
<jetty-client.version>12.0.14</jetty-client.version>
<jackson.version>2.18.2</jackson.version>
<maskinporten-client.version>3.3.2</maskinporten-client.version>
<jetty-client.version>12.0.16</jetty-client.version>
<jakarta.annotation-api.version>3.0.0</jakarta.annotation-api.version>

<kotest.version>5.9.1</kotest.version>
Expand Down
20 changes: 12 additions & 8 deletions src/main/kotlin/no/ks/svarut/klient/BaseKlient.kt
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,18 @@ import java.util.function.Function
abstract class BaseKlient(
private val baseUrl: String,
private val authenticationStrategy: AuthenticationStrategy,
private val requestInterceptor: Function<Request, Request>
private val requestInterceptor: Function<Request, Request>,
private val httpConfiguration: HttpConfiguration = HttpConfiguration(),
) : Closeable {

internal val client = HttpClient(
HttpClientTransportDynamic(
ClientConnector()
.apply { sslContextFactory = SslContextFactory.Client() }
ClientConnector().apply {
sslContextFactory = SslContextFactory.Client()
httpConfiguration.idleTimeout?.let {
idleTimeout = it
}
}
)
)
internal val objectMapper = ObjectMapper()
Expand All @@ -41,11 +46,10 @@ abstract class BaseKlient(
}
}

internal fun newRequest() =
requestInterceptor.apply(
client.newRequest(baseUrl)
.onRequestBegin(authenticationStrategy::setAuthenticationHeaders)
)
internal fun newRequest() = requestInterceptor.apply(
client.newRequest(baseUrl)
.onRequestBegin(authenticationStrategy::setAuthenticationHeaders)
)

override fun close() {
try {
Expand Down
17 changes: 17 additions & 0 deletions src/main/kotlin/no/ks/svarut/klient/HttpConfiguration.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package no.ks.svarut.klient

import java.time.Duration

data class HttpConfiguration(val idleTimeout: Duration? = null) {
companion object {
fun builder() = Builder()
}

class Builder {
private var idleTimeout: Duration? = null

fun idleTimeout(idleTimeout: Duration) = apply { this.idleTimeout = idleTimeout }

fun build() = HttpConfiguration(idleTimeout)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import com.fasterxml.jackson.module.kotlin.readValue
import no.ks.fiks.svarut.forsendelse.eksternRef.model.v2.EksternRefOppslagResponse
import no.ks.svarut.klient.AuthenticationStrategy
import no.ks.svarut.klient.BaseKlient
import no.ks.svarut.klient.HttpConfiguration
import org.eclipse.jetty.client.Request
import org.eclipse.jetty.http.HttpMethod
import java.util.*
Expand All @@ -16,8 +17,9 @@ private const val PARAM_EKSTERN_REF = "eksternRef"
class EksternRefKlientV2(
baseUrl: String,
authenticationStrategy: AuthenticationStrategy,
requestInterceptor: Function<Request, Request>
) : BaseKlient(baseUrl, authenticationStrategy, requestInterceptor) {
requestInterceptor: Function<Request, Request>,
httpConfig: HttpConfiguration = HttpConfiguration(),
) : BaseKlient(baseUrl, authenticationStrategy, requestInterceptor, httpConfig) {

private fun pathFinnForsendelserKnyttetTilEksternRef(kontoId: UUID) = "$BASE_PATH/kontoer/$kontoId/forsendelser/"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import no.ks.fiks.svarut.forsendelse.hendelser.model.v2.Signeringshendelse
import no.ks.fiks.svarut.forsendelse.hendelser.model.v2.Signeringshendelser
import no.ks.svarut.klient.AuthenticationStrategy
import no.ks.svarut.klient.BaseKlient
import no.ks.svarut.klient.HttpConfiguration
import no.ks.svarut.klient.SvarUtKlientException
import org.eclipse.jetty.client.Request
import org.eclipse.jetty.http.HttpMethod
Expand All @@ -18,8 +19,9 @@ private const val BASE_PATH = "/api/v2/forsendelser"
class HendelserKlientV2(
baseUrl: String,
authenticationStrategy: AuthenticationStrategy,
requestInterceptor: Function<Request, Request>
) : BaseKlient(baseUrl, authenticationStrategy, requestInterceptor) {
requestInterceptor: Function<Request, Request>,
httpConfig: HttpConfiguration = HttpConfiguration(),
) : BaseKlient(baseUrl, authenticationStrategy, requestInterceptor, httpConfig) {

private fun pathHentHendelser(forsendelseId: UUID) = "$BASE_PATH/$forsendelseId/hendelser"
private fun pathHentSigneringshendelser(forsendelseId: UUID) = "$BASE_PATH/$forsendelseId/signeringshendelser"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package no.ks.svarut.klient.forsendelse.lest.v2
import no.ks.fiks.svarut.forsendelse.lest.model.v2.LestAv
import no.ks.svarut.klient.AuthenticationStrategy
import no.ks.svarut.klient.BaseKlient
import no.ks.svarut.klient.HttpConfiguration
import org.eclipse.jetty.client.Request
import org.eclipse.jetty.client.StringRequestContent
import org.eclipse.jetty.http.HttpMethod
Expand All @@ -14,8 +15,9 @@ private const val BASE_PATH = "/api/v2"
class LestKlientV2(
baseUrl: String,
authenticationStrategy: AuthenticationStrategy,
requestInterceptor: Function<Request, Request>
) : BaseKlient(baseUrl, authenticationStrategy, requestInterceptor) {
requestInterceptor: Function<Request, Request>,
httpConfig: HttpConfiguration = HttpConfiguration(),
) : BaseKlient(baseUrl, authenticationStrategy, requestInterceptor, httpConfig) {

private fun pathSettForsendelseLestAvEksterntSystem(forsendelseId: UUID) = "$BASE_PATH/forsendelser/$forsendelseId/lest"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import no.ks.fiks.svarut.forsendelse.metadata.model.v2.DokumentMetadata
import no.ks.fiks.svarut.forsendelse.metadata.model.v2.ForsendelseMetadata
import no.ks.svarut.klient.AuthenticationStrategy
import no.ks.svarut.klient.BaseKlient
import no.ks.svarut.klient.HttpConfiguration
import org.eclipse.jetty.client.Request
import org.eclipse.jetty.http.HttpMethod
import java.util.*
Expand All @@ -15,8 +16,9 @@ private const val BASE_PATH = "/api/v2"
class MetadataKlientV2(
baseUrl: String,
authenticationStrategy: AuthenticationStrategy,
requestInterceptor: Function<Request, Request>
) : BaseKlient(baseUrl, authenticationStrategy, requestInterceptor) {
requestInterceptor: Function<Request, Request>,
httpConfig: HttpConfiguration = HttpConfiguration(),
) : BaseKlient(baseUrl, authenticationStrategy, requestInterceptor, httpConfig) {

private fun pathHentMetadata(forsendelseId: UUID) = "$BASE_PATH/forsendelser/$forsendelseId/metadata"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import no.ks.fiks.svarut.forsendelse.send.model.v2.Forsendelse
import no.ks.fiks.svarut.forsendelse.send.model.v2.SendForsendelseResponse
import no.ks.svarut.klient.AuthenticationStrategy
import no.ks.svarut.klient.BaseKlient
import no.ks.svarut.klient.HttpConfiguration
import org.eclipse.jetty.client.InputStreamRequestContent
import org.eclipse.jetty.client.MultiPartRequestContent
import org.eclipse.jetty.client.Request
Expand All @@ -25,7 +26,8 @@ class SendKlientV2(
baseUrl: String,
authenticationStrategy: AuthenticationStrategy,
requestInterceptor: Function<Request, Request>,
) : BaseKlient(baseUrl, authenticationStrategy, requestInterceptor) {
httpConfig: HttpConfiguration = HttpConfiguration(),
) : BaseKlient(baseUrl, authenticationStrategy, requestInterceptor, httpConfig) {

private fun pathSend(kontoId: UUID) = "$BASE_PATH/kontoer/$kontoId/forsendelser/"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package no.ks.svarut.klient.forsendelse.slett.v2

import no.ks.svarut.klient.AuthenticationStrategy
import no.ks.svarut.klient.BaseKlient
import no.ks.svarut.klient.HttpConfiguration
import org.eclipse.jetty.client.Request
import org.eclipse.jetty.http.HttpMethod
import java.util.*
Expand All @@ -16,8 +17,9 @@ private const val SLETTETYPE_ALLE = "ALLE"
class SlettKlientV2(
baseUrl: String,
authenticationStrategy: AuthenticationStrategy,
requestInterceptor: Function<Request, Request>
) : BaseKlient(baseUrl, authenticationStrategy, requestInterceptor) {
requestInterceptor: Function<Request, Request>,
httpConfig: HttpConfiguration = HttpConfiguration(),
) : BaseKlient(baseUrl, authenticationStrategy, requestInterceptor, httpConfig) {

private fun pathSlettFiler(forsendelseId: UUID) = "$BASE_PATH/forsendelser/$forsendelseId/dokumenter"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import no.ks.fiks.svarut.forsendelse.status.model.v2.ForsendelseStatuser
import no.ks.fiks.svarut.forsendelse.status.model.v2.StatusSok
import no.ks.svarut.klient.AuthenticationStrategy
import no.ks.svarut.klient.BaseKlient
import no.ks.svarut.klient.HttpConfiguration
import org.eclipse.jetty.client.Request
import org.eclipse.jetty.client.StringRequestContent
import org.eclipse.jetty.http.HttpMethod
Expand All @@ -17,8 +18,9 @@ private const val BASE_PATH = "/api/v2"
class StatusKlientV2(
baseUrl: String,
authenticationStrategy: AuthenticationStrategy,
requestInterceptor: Function<Request, Request>
) : BaseKlient(baseUrl, authenticationStrategy, requestInterceptor) {
requestInterceptor: Function<Request, Request>,
httpConfig: HttpConfiguration = HttpConfiguration(),
) : BaseKlient(baseUrl, authenticationStrategy, requestInterceptor, httpConfig) {

private fun pathHentStatuser(kontoId: UUID) = "$BASE_PATH/kontoer/$kontoId/forsendelser/status-sok"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import com.fasterxml.jackson.module.kotlin.readValue
import no.ks.fiks.svarut.forsendelse.typer.model.v2.Forsendelsestyper
import no.ks.svarut.klient.AuthenticationStrategy
import no.ks.svarut.klient.BaseKlient
import no.ks.svarut.klient.HttpConfiguration
import org.eclipse.jetty.client.Request
import org.eclipse.jetty.http.HttpMethod
import java.util.function.Function
Expand All @@ -13,8 +14,9 @@ private const val BASE_PATH = "/api/v2/forsendelsestyper"
class TyperKlientV2(
baseUrl: String,
authenticationStrategy: AuthenticationStrategy,
requestInterceptor: Function<Request, Request>
) : BaseKlient(baseUrl, authenticationStrategy, requestInterceptor) {
requestInterceptor: Function<Request, Request>,
httpConfig: HttpConfiguration = HttpConfiguration(),
) : BaseKlient(baseUrl, authenticationStrategy, requestInterceptor, httpConfig) {

private fun pathHentForsendelseTyper() = BASE_PATH

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import no.ks.fiks.svarut.mottakersystem.model.v2.Mottakersystem
import no.ks.fiks.svarut.mottakersystem.model.v2.Mottakersystemer
import no.ks.svarut.klient.AuthenticationStrategy
import no.ks.svarut.klient.BaseKlient
import no.ks.svarut.klient.HttpConfiguration
import org.eclipse.jetty.client.Request
import org.eclipse.jetty.http.HttpMethod
import java.util.function.Function
Expand All @@ -18,8 +19,9 @@ private const val PARAM_NIVA = "niva"
class MottakersystemKlientV2(
baseUrl: String,
authenticationStrategy: AuthenticationStrategy,
requestInterceptor: Function<Request, Request>
) : BaseKlient(baseUrl, authenticationStrategy, requestInterceptor) {
requestInterceptor: Function<Request, Request>,
httpConfig: HttpConfiguration = HttpConfiguration(),
) : BaseKlient(baseUrl, authenticationStrategy, requestInterceptor, httpConfig) {

private fun pathHentMottakersystemForOrgnr() = BASE_PATH

Expand Down
2 changes: 2 additions & 0 deletions src/test/resources/kotest.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
kotest.framework.classpath.scanning.config.disable=true
kotest.framework.classpath.scanning.autoscan.disable=true

0 comments on commit f7823c3

Please sign in to comment.