diff --git a/build.gradle.kts b/build.gradle.kts index 3cfe025..6dd2f7c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,5 +1,10 @@ plugins { id("it.nicolasfarabegoli.conventional-commits") version "3.1.3" + id("io.micronaut.application") version "4.6.2" apply false + id("io.micronaut.library") version "4.5.3" apply false + id("io.micronaut.openapi") version "4.5.3" apply false + id("io.micronaut.aot") version "4.6.2" apply false + id("com.gradleup.shadow") version "8.3.9" apply false + id("org.graalvm.buildtools.native") version "0.10.6" apply false + id("com.github.hauner.jarTest") version "1.1.0" apply false } - - diff --git a/cli/build.gradle.kts b/cli/build.gradle.kts index b6db6cd..46ba51e 100644 --- a/cli/build.gradle.kts +++ b/cli/build.gradle.kts @@ -3,9 +3,9 @@ import java.util.* plugins { id("groovy") - id("io.micronaut.application") version "4.6.2" - id("com.gradleup.shadow") version "8.3.9" - id("org.graalvm.buildtools.native") version "0.10.6" + id("io.micronaut.application") + id("com.gradleup.shadow") + id("org.graalvm.buildtools.native") } group = "org.justserve" @@ -75,4 +75,4 @@ graalvmNative.binaries { imageName.set("justserve") buildArgs.add("--color=always") } -} \ No newline at end of file +} diff --git a/core/build.gradle.kts b/core/build.gradle.kts index f0e2760..5148922 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -3,9 +3,9 @@ import java.util.* plugins { id("groovy") - id("io.micronaut.library") version "4.5.3" - id("io.micronaut.openapi") version "4.5.3" - id("com.github.hauner.jarTest") version "1.1.0" + id("io.micronaut.library") + id("io.micronaut.openapi") + id("com.github.hauner.jarTest") } version = project.properties["justserveCliVersion"]!! @@ -77,4 +77,4 @@ tasks.withType { filesMatching("**/application.yml") { filter(mapOf("tokens" to props), ReplaceTokens::class.java) } -} \ No newline at end of file +} diff --git a/core/src/test/groovy/org/justserve/BoundaryPermissionSpec.groovy b/core/src/test/groovy/org/justserve/BoundaryPermissionSpec.groovy index 596b38b..992bf23 100644 --- a/core/src/test/groovy/org/justserve/BoundaryPermissionSpec.groovy +++ b/core/src/test/groovy/org/justserve/BoundaryPermissionSpec.groovy @@ -5,7 +5,7 @@ import io.micronaut.test.extensions.spock.annotation.MicronautTest import org.justserve.client.BoundaryPermissionClient import spock.lang.Shared -import static io.micronaut.http.HttpStatus.FORBIDDEN +import static io.micronaut.http.HttpStatus.INTERNAL_SERVER_ERROR import static io.micronaut.http.HttpStatus.UNAUTHORIZED @MicronautTest @@ -43,9 +43,9 @@ class BoundaryPermissionSpec extends JustServeSpec { exception.status == expectedError where: - client | expectedError | orgID | title - noAuthBoundaryPermissionClient | UNAUTHORIZED | createOrg() | "as an unauthorized user" - authBoundaryPermissionClient | FORBIDDEN | UUID.randomUUID() | "with a non-existent OrgID" + client | expectedError | orgID | title + noAuthBoundaryPermissionClient | UNAUTHORIZED | createOrg() | "as an unauthorized user" + authBoundaryPermissionClient | INTERNAL_SERVER_ERROR | UUID.randomUUID() | "with a non-existent OrgID" } diff --git a/observer/build.gradle.kts b/observer/build.gradle.kts new file mode 100644 index 0000000..a7cfa7f --- /dev/null +++ b/observer/build.gradle.kts @@ -0,0 +1,66 @@ +plugins { + id("groovy") + id("io.micronaut.application") + id("com.gradleup.shadow") + id("io.micronaut.aot") +} + +version = "0.1" +group = "org.justserve.devkit" + + + +repositories { + mavenCentral() +} + +dependencies { + annotationProcessor("org.projectlombok:lombok") + annotationProcessor("io.micronaut:micronaut-http-validation") + annotationProcessor("io.micronaut.micrometer:micronaut-micrometer-annotation") + annotationProcessor("io.micronaut.serde:micronaut-serde-processor") + implementation("io.micronaut:micronaut-management") + implementation("io.micronaut.micrometer:micronaut-micrometer-core") + implementation("io.micronaut.micrometer:micronaut-micrometer-observation") + implementation("io.micronaut.micrometer:micronaut-micrometer-registry-prometheus") + implementation("io.micronaut.serde:micronaut-serde-jackson") + implementation(project(":core")) + compileOnly("io.micronaut:micronaut-http-client") + compileOnly("org.projectlombok:lombok") + runtimeOnly("ch.qos.logback:logback-classic") + runtimeOnly("org.yaml:snakeyaml") + testImplementation("io.micronaut:micronaut-http-client") +} + + + +application { + mainClass = "org.justserve.devkit.Application" +} + +java { + sourceCompatibility = JavaVersion.toVersion("21") + targetCompatibility = JavaVersion.toVersion("21") +} + +micronaut { + runtime("netty") + testRuntime("spock2") + processing { + incremental(true) + annotations("org.justserve.devkit.*") + } + aot { + // Please review carefully the optimizations enabled below + // Check https://micronaut-projects.github.io/micronaut-aot/latest/guide/ for more details + optimizeServiceLoading = false + convertYamlToJava = false + precomputeOperations = true + cacheEnvironment = true + optimizeClassLoading = true + deduceEnvironment = true + optimizeNetty = true + replaceLogbackXml = true + } + +} diff --git a/observer/src/main/java/org/justserve/devkit/Application.java b/observer/src/main/java/org/justserve/devkit/Application.java new file mode 100644 index 0000000..ec3bb1d --- /dev/null +++ b/observer/src/main/java/org/justserve/devkit/Application.java @@ -0,0 +1,10 @@ +package org.justserve.devkit; + +import io.micronaut.runtime.Micronaut; + +public class Application { + + public static void main(String[] args) { + Micronaut.run(Application.class, args); + } +} \ No newline at end of file diff --git a/observer/src/main/resources/application.yml b/observer/src/main/resources/application.yml new file mode 100644 index 0000000..a970cfc --- /dev/null +++ b/observer/src/main/resources/application.yml @@ -0,0 +1,10 @@ +micronaut: + application: + name: observer + metrics: + enabled: true + export: + prometheus: + enabled: true + descriptions: true + step: PT1M diff --git a/observer/src/main/resources/logback.xml b/observer/src/main/resources/logback.xml new file mode 100644 index 0000000..2d77bda --- /dev/null +++ b/observer/src/main/resources/logback.xml @@ -0,0 +1,14 @@ + + + + + + %cyan(%d{HH:mm:ss.SSS}) %gray([%thread]) %highlight(%-5level) %magenta(%logger{36}) - %msg%n + + + + + + + diff --git a/observer/src/test/groovy/org/justserve/devkit/ObserverSpec.groovy b/observer/src/test/groovy/org/justserve/devkit/ObserverSpec.groovy new file mode 100644 index 0000000..c6bb1fb --- /dev/null +++ b/observer/src/test/groovy/org/justserve/devkit/ObserverSpec.groovy @@ -0,0 +1,20 @@ +package org.justserve.devkit + + +import io.micronaut.runtime.EmbeddedApplication +import io.micronaut.test.extensions.spock.annotation.MicronautTest +import spock.lang.Specification +import jakarta.inject.Inject + +@MicronautTest +class ObserverSpec extends Specification { + + @Inject + EmbeddedApplication application + + void 'test it works'() { + expect: + application.running + } + +} diff --git a/observer/src/test/resources/Application-test.yaml b/observer/src/test/resources/Application-test.yaml new file mode 100644 index 0000000..e69de29 diff --git a/observer/src/test/resources/SpockConfig.groovy b/observer/src/test/resources/SpockConfig.groovy new file mode 100644 index 0000000..e69de29 diff --git a/settings.gradle b/settings.gradle index 9025124..62e8734 100644 --- a/settings.gradle +++ b/settings.gradle @@ -11,9 +11,10 @@ rootProject.name="devkit" include "core" include "cli" +include 'observer' dependencyResolutionManagement { repositories { mavenCentral() } -} +} \ No newline at end of file