-
written in Kotlin for the JVM
-
using Quarkus and MicroProfile 3.3
-
exposes a REST API defined by a Kotlin interface with JAX-RS annotations
-
Gradle build using Kotlin DSL
-
targeting Java 11
The platform comprises all libraries/modules/packages that are by definition always present and are pre-approved to appear in all layers of the system, including domain
.
-
Jave SE 11 (https://docs.oracle.com/en/java/javase/11/docs/api/java.se/module-summary.html), but trying to use only
-
Kotlin standard library for Common and JVM targets (https://kotlinlang.org/api/latest/jvm/stdlib/)
-
JSR-330
javax.inject
-
CDI
javax.enterprise.context
docker run --rm --name mvn -it -v $(pwd):/proj -w /proj maven:3-jdk-11 /bin/bash -c "\
apt-get update; \
apt-get install -y --no-install-recommends gradle; \
mvn io.quarkus:quarkus-maven-plugin:1.3.1.Final:create \
-DprojectGroupId=org.integrational \
-DprojectArtifactId=kotlin-quarkus-mp-rest-service \
-DclassName='org.integrational.greetings.restapi.GreetingsResource' \
-Dpath='/greetings' \
-Dextensions='kotlin,smallrye-fault-tolerance,smallrye-health,smallrye-jwt,smallrye-metrics,smallrye-openapi,smallrye-opentracing,rest-client,arc,resteasy,resteasy-jsonb,jsonb,jsonp' \
-DbuildTool=gradle"
This fails in the final Gradle build, which generates the Gradle wrapper. Hence:
cd kotlin-quarkus-mp-rest-service
docker run --rm --name gradle -it -v $(pwd):/proj -w /proj gradle:jdk11 gradle wrapper