Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 5 additions & 6 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
FROM gcr.io/distroless/java17-debian11
COPY build/libs/tms-event-api-all.jar app/app.jar
ENV PORT=8080
EXPOSE $PORT
WORKDIR app
CMD ["app.jar"]
FROM ghcr.io/navikt/baseimages/temurin:21

ENV JAVA_OPTS='-XX:MaxRAMPercentage=75'

COPY build/libs/*.jar ./
9 changes: 3 additions & 6 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,18 +1,17 @@
import org.gradle.api.tasks.testing.logging.TestExceptionFormat

plugins {
// Apply the Kotlin JVM plugin to add support for Kotlin on the JVM.
kotlin("jvm").version(Kotlin.version)
kotlin("plugin.serialization").version(Kotlin.version)

id(Shadow.pluginId) version (Shadow.version)
// Apply the application plugin to add support for building a CLI application.
id(TmsJarBundling.plugin)

application
}

kotlin {
jvmToolchain {
languageVersion.set(JavaLanguageVersion.of(17))
languageVersion.set(JavaLanguageVersion.of(21))
}
}

Expand Down Expand Up @@ -52,8 +51,6 @@ dependencies {
testImplementation(Kluent.kluent)
testImplementation(Mockk.mockk)
testImplementation(Junit.params)
testImplementation("io.ktor:ktor-server-test-host-jvm:2.3.5")
testImplementation("org.jetbrains.kotlin:kotlin-test-junit:1.9.10")
testImplementation(TmsTestUtils.testUtils)

testRuntimeOnly(Jjwt.impl)
Expand Down
18 changes: 17 additions & 1 deletion buildSrc/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
plugins {
`kotlin-dsl`
`maven-publish`
}

repositories {
Expand All @@ -8,6 +9,21 @@ repositories {

kotlin {
jvmToolchain {
languageVersion.set(JavaLanguageVersion.of(17))
languageVersion.set(JavaLanguageVersion.of(21))
}
}

gradlePlugin {
plugins {
create("jar-bundling") {
id = "no.nav.tms.jar-bundling"
implementationClass = "JarBundling"
}
}
}

publishing {
repositories {
mavenLocal()
}
}
72 changes: 72 additions & 0 deletions buildSrc/src/main/kotlin/jarBundling.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
import org.gradle.api.DefaultTask
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.plugins.JavaApplication
import org.gradle.api.tasks.Input
import org.gradle.api.tasks.TaskAction
import org.gradle.jvm.tasks.Jar
import java.io.File

// Managed by tms-dependency-admin.

abstract class JarBundling : Plugin<Project> {

override fun apply(target: Project) {

val configureTask = target.tasks.register("configureJar", ConfigureJarTask::class.java) {
this.application = target

val classes = target.tasks.named("classes")

dependsOn(classes)
}

val packageTask = target.tasks.register("packageJar", BundleJarsTask::class.java) {
this.application = target
}

target.tasks.withType(Jar::class.java) {
dependsOn(configureTask)
finalizedBy(packageTask)
}
}
}

abstract class ConfigureJarTask : DefaultTask() {
@Input
lateinit var application: Project

@TaskAction
fun action() {
application.tasks.withType(Jar::class.java) {

val javaApplication = application.extensions.getByType(JavaApplication::class.java)

val mainClassName = javaApplication.mainClass

archiveBaseName.set("app")
manifest {
val classpath = application.configurations.getByName("runtimeClasspath")
attributes["Main-Class"] = mainClassName
attributes["Class-Path"] = classpath.joinToString(separator = " ") {
it.name
}
}
}
}
}

abstract class BundleJarsTask : DefaultTask() {
@Input
lateinit var application: Project

@TaskAction
fun action() {
val classpath = application.configurations.getByName("runtimeClasspath")

classpath.forEach {
val file = File("${application.layout.buildDirectory.get()}/libs/${it.name}")
if (!file.exists()) it.copyTo(file)
}
}
}
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
2 changes: 1 addition & 1 deletion src/main/kotlin/no/nav/tms/event/api/App.kt
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ fun Application.api(
}

private fun Application.configureShutdownHook(httpClient: HttpClient) {
environment.monitor.subscribe(ApplicationStopping) {
monitor.subscribe(ApplicationStopping) {
httpClient.close()
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import no.nav.tms.event.api.config.AzureTokenFetcher
import no.nav.tms.token.support.azure.validation.AzureHeader
import java.net.URI
import java.net.URL

class VarselReader(
Expand All @@ -21,7 +22,7 @@ class VarselReader(
fnr: String,
varselPath: String,
): List<DetaljertVarsel> {
val completePathToEndpoint = URL("$varselAuthorityUrl/$varselPath")
val completePathToEndpoint = URI.create("$varselAuthorityUrl/$varselPath").toURL()
val azureToken = azureTokenFetcher.fetchTokenForVarselAuthority()
return client.getWithAzureAndFnr(completePathToEndpoint, azureToken, fnr)
}
Expand Down
Loading