.mvn/wrapper | ||
src | ||
.dockerignore | ||
.gitignore | ||
mvnw | ||
mvnw.cmd | ||
perfs.jmx | ||
pom.xml | ||
README.md |
perftests-quarkus
This is a test for Quarkus to handle large projets, in quantity of objects to manage.
To use this project, you have to generate the actual code:
- Set the root path in
src/main/java/fr/spacefox/perftests/quarkus/generator/Generator.java
constantROOT_PATH
to the actual path of your project sources. - You may change the number of elements to generate with
ELEMENTS
in the same file. - Run the Generator: now you have a giant Quarkus project ready to be used!
- Build and play! You can keep the tests, they will run in a reasonable amount of time.
- You can run some kind of performance tests by using
perfs.jmx
in Apache JMeter
See also the Spring Boot version.
Requirements:
- JRE ⩾ 21
- PostgreSQL (you may use
src/test/docker/compose.yaml
)
Note: generating too much ELEMENTS
will not work due to Quarkus internals.
Actual limit with this project is somewhere between 4100 and 4200.
Generated arborescence kind of follow the hexagonal / ports & adapters architecture, so Panache ORM is used with its repository variant:
fr.spacefox.perftests.quarkus
.core
.port
.data
EntityNDatasourcePort.java
.serviceN
.model
ModelN.java
ServiceN
.data
.entityN
EntityN.java
EntityNRepository.java
Mapper.java
.rest
.endpointN
.schema
SchemaN.java
EndpointNResource.java
Mapper.java
+ tests
Running the application in dev mode
You can run your application in dev mode that enables live coding using:
./mvnw quarkus:dev
NOTE: Quarkus now ships with a Dev UI, which is available in dev mode only at http://localhost:8080/q/dev/.
Packaging and running the application
The application can be packaged using:
./mvnw package
It produces the quarkus-run.jar
file in the target/quarkus-app/
directory.
Be aware that it’s not an über-jar as the dependencies are copied into the target/quarkus-app/lib/
directory.
The application is now runnable using java -jar target/quarkus-app/quarkus-run.jar
.
If you want to build an über-jar, execute the following command:
./mvnw package -Dquarkus.package.jar.type=uber-jar
The application, packaged as an über-jar, is now runnable using java -jar target/*-runner.jar
.
Creating a native executable
You can create a native executable using:
./mvnw package -Dnative
Or, if you don't have GraalVM installed, you can run the native executable build in a container using:
./mvnw package -Dnative -Dquarkus.native.container-build=true
You can then execute your native executable with: ./target/perftests-quarkus-1.0.0-SNAPSHOT-runner
If you want to learn more about building native executables, please consult https://quarkus.io/guides/maven-tooling.
Related Guides
- REST resources for Hibernate ORM with Panache (guide): Generate Jakarta REST resources for your Hibernate Panache entities and repositories
- JDBC Driver - PostgreSQL (guide): Connect to the PostgreSQL database via JDBC
Provided Code
REST Data with Panache
Generating Jakarta REST resources with Panache
RESTEasy JAX-RS
Easily start your RESTful Web Services