This project uses Quarkus, the Supersonic Subatomic Java Framework.
If you want to learn more about Quarkus, please visit its website: https://quarkus.io/ .
The purpose of the quarkus-items-api-resteasy-reactive project is to provide an archetype for how to make a quarkus CRUD application that mimics the springboot-items-api project that is in an adjacent repository. This version uses the resteasy-reactive libraries.
- Need to fix getting the last identifier on the save
- Need to implement the pageable interface to be consistant with the other examples
- Uses the SQL Client without using the hibernate ORM. This code has some of the ORM stuff in it, but haven't been able to get it to work yet
- localization currently only working with javax validation messages, localization of other strings, currency, and times need work
- issue with openapi in showing the pageable as a sample needs to be fixed
- need to find out how to properly use filters for logging since AOP for cross-cutting concerns doesn't seem to work.
- can't use junit5 nested classes - quarkusio/quarkus#4393
- need to add unit/functional tests
- written as a reactive using the newly released resteasy reactive libraries
- successfully compiles as a native binary; uses @RegisterForReflection for DTOs and reflection-config.json entries for third party model objects
- uses javax validation and successfully throws constraint violation exceptions when ran as a native executable
- all the size and memory advantages outlined at quarkus.io
You can run your application in dev mode that enables live coding using:
./mvnw compile quarkus:dev
The application can be packaged using:
./mvnw package
It produces the quarkus-items-api-resteasy-reactive-1.0.0-SNAPSHOT-runner.jar
file in the /target
directory.
Be aware that it’s not an über-jar as the dependencies are copied into the target/lib
directory.
If you want to build an über-jar, execute the following command:
./mvnw package -Dquarkus.package.type=uber-jar
The application is now runnable using java -jar target/quarkus-items-api-resteasy-reactive-1.0.0-SNAPSHOT-runner.jar
.
You can create a native executable using:
./mvnw package -Pnative
Or, if you don't have GraalVM installed, you can run the native executable build in a container using:
./mvnw package -Pnative -Dquarkus.native.container-build=true
You can then execute your native executable with: ./target/quarkus-items-api-resteasy-reactive-1.0.0-SNAPSHOT-runner
If you want to learn more about building native executables, please consult https://quarkus.io/guides/maven-tooling.html.
A Hello World RESTEasy resource