summaryrefslogtreecommitdiff
path: root/opendc-web/opendc-web-api/build.gradle.kts
diff options
context:
space:
mode:
Diffstat (limited to 'opendc-web/opendc-web-api/build.gradle.kts')
-rw-r--r--opendc-web/opendc-web-api/build.gradle.kts74
1 files changed, 73 insertions, 1 deletions
diff --git a/opendc-web/opendc-web-api/build.gradle.kts b/opendc-web/opendc-web-api/build.gradle.kts
index 7edfd134..853632a7 100644
--- a/opendc-web/opendc-web-api/build.gradle.kts
+++ b/opendc-web/opendc-web-api/build.gradle.kts
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021 AtLarge Research
+ * Copyright (c) 2020 AtLarge Research
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -19,3 +19,75 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
+
+description = "REST API for the OpenDC website"
+
+/* Build configuration */
+plugins {
+ `kotlin-conventions`
+ kotlin("plugin.allopen")
+ kotlin("plugin.jpa")
+ `testing-conventions`
+ `jacoco-conventions`
+ id("io.quarkus")
+}
+
+dependencies {
+ implementation(enforcedPlatform(libs.quarkus.bom))
+
+ implementation(projects.opendcWeb.opendcWebProto)
+
+ implementation(libs.quarkus.kotlin)
+ implementation(libs.quarkus.resteasy.core)
+ implementation(libs.quarkus.resteasy.jackson)
+ implementation(libs.jackson.module.kotlin)
+ implementation(libs.quarkus.smallrye.openapi)
+
+ implementation(libs.quarkus.security)
+ implementation(libs.quarkus.oidc)
+
+ implementation(libs.quarkus.hibernate.orm)
+ implementation(libs.quarkus.hibernate.validator)
+ implementation(libs.quarkus.jdbc.postgresql)
+ quarkusDev(libs.quarkus.jdbc.h2)
+
+ testImplementation(libs.quarkus.junit5.core)
+ testImplementation(libs.quarkus.junit5.mockk)
+ testImplementation(libs.quarkus.jacoco)
+ testImplementation(libs.restassured.core)
+ testImplementation(libs.restassured.kotlin)
+ testImplementation(libs.quarkus.test.security)
+ testImplementation(libs.quarkus.jdbc.h2)
+}
+
+allOpen {
+ annotation("javax.ws.rs.Path")
+ annotation("javax.enterprise.context.ApplicationScoped")
+ annotation("io.quarkus.test.junit.QuarkusTest")
+ annotation("javax.persistence.Entity")
+}
+
+tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
+ kotlinOptions.javaParameters = true
+}
+
+tasks.quarkusDev {
+ workingDir = rootProject.projectDir.toString()
+}
+
+tasks.test {
+ extensions.configure(JacocoTaskExtension::class) {
+ excludeClassLoaders = listOf("*QuarkusClassLoader")
+ // destinationFile = layout.buildDirectory.file("jacoco-quarkus.exec").get().asFile
+ }
+}
+
+/* Fix for Quarkus/ktlint-gradle incompatibilities */
+tasks.named("runKtlintCheckOverMainSourceSet").configure {
+ mustRunAfter(tasks.quarkusGenerateCode)
+ mustRunAfter(tasks.quarkusGenerateCodeDev)
+}
+
+tasks.named("runKtlintCheckOverTestSourceSet").configure {
+ mustRunAfter(tasks.quarkusGenerateCodeTests)
+}