This project uses Quarkus, the Supersonic Subatomic Java Framework.
If you want to learn more about Quarkus, please visit its website: https://quarkus.io/ .
You can run your application in dev mode that enables live coding using:
./mvnw compile quarkus:dev
NOTE: Quarkus now ships with a Dev UI, which is available in dev mode only at http://localhost:8080/q/dev/.
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.type=uber-jar
The application, packaged as an über-jar, is now runnable using java -jar target/*-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/quarkus3-1.0.0-SNAPSHOT-runner
If you want to learn more about building native executables, please consult https://quarkus.io/guides/maven-tooling.
- OpenID Connect Client (guide): Get and refresh access tokens from OpenID Connect providers
- JSON-B (guide): JSON Binding support
- OpenID Connect Client Filter Reactive (guide): Use Reactive RestClient filter to get and refresh access tokens with OpenId Connect Client and send them as HTTP Authorization Bearer tokens
- SmallRye JWT (guide): Secure your applications with JSON Web Token
- Apache POI (guide): Read and write files in Microsoft Office formats, such as Word, Excel and PowerPoint
- Elasticsearch REST client (guide): Connect to an Elasticsearch cluster using the REST low level client
- JDBC Driver - PostgreSQL (guide): Connect to the PostgreSQL database via JDBC
- Keycloak Authorization (guide): Policy enforcer using Keycloak-managed permissions to control access to protected resources
- Kubernetes Client (guide): Interact with Kubernetes and develop Kubernetes Operators
- Jacoco - Code Coverage (guide): Jacoco test coverage support
- OpenTelemetry (guide): Use OpenTelemetry to trace services
- Hibernate Search + Elasticsearch (guide): Automatically index your Hibernate entities in Elasticsearch
- Mailer (guide): Send emails
- Reactive PostgreSQL client (guide): Connect to the PostgreSQL database using the reactive pattern
- Hibernate ORM (guide): Define your persistent model with Hibernate ORM and Jakarta Persistence
- Minikube (guide): Generate Minikube resources from annotations
- Apache Avro (guide): Provide support for the Avro data serialization system
- Vault (guide): Store your credentials securely in HashiCorp Vault
- REST resources for Hibernate Reactive with Panache (guide): Generate Jakarta REST resources for your Hibernate Reactive Panache entities and repositories
- Kubernetes (guide): Generate Kubernetes resources from annotations
- SmallRye Reactive Messaging (guide): Produce and consume messages and implement event driven and data streaming applications
- Quartz (guide): Schedule clustered tasks with Quartz
- Liquibase (guide): Handle your database schema migrations with Liquibase
- Redis Cache (guide): Use Redis as the caching backend
- Kubernetes Config (guide): Read runtime configuration from Kubernetes ConfigMaps and Secrets
- Redis Client (guide): Connect to Redis in either imperative or reactive style
- Cache (guide): Enable application data caching in CDI beans
- Narayana LRA - LRA Participant Support (guide): Coordinate Long Running Actions (LRA)
- SmallRye Fault Tolerance (guide): Build fault-tolerant network services
- Scheduler (guide): Schedule jobs and tasks
- Apicurio Registry - Avro (guide): Use Apicurio as Avro schema registry
- SmallRye OpenAPI (guide): Document your REST APIs with OpenAPI - comes with Swagger UI
- Picocli (guide): Develop command line applications with Picocli
- SmallRye Reactive Messaging - Kafka Connector (guide): Connect to Kafka with Reactive Messaging
- Hibernate ORM with Panache (guide): Simplify your persistence code for Hibernate ORM via the active record or the repository pattern
- OpenID Connect Token Propagation (guide): Use Jakarta REST Client filter to propagate the incoming Bearer access token or token acquired from Authorization Code Flow as HTTP Authorization Bearer token
- Apache Kafka Streams (guide): Implement stream processing applications based on Apache Kafka
- Reactive Routes (guide): REST framework offering the route model to define non blocking endpoints
- Mutiny (guide): Write reactive applications with the modern Reactive Programming library Mutiny
- REST Client Reactive (guide): Call REST services reactively
- RESTEasy Reactive (guide): A Jakarta REST implementation utilizing build time processing and Vert.x. This extension is not compatible with the quarkus-resteasy extension, or any of the extensions that depend on it.
- OpenID Connect Client Filter (guide): Use Jakarta REST Client filter to get and refresh access tokens with OpenId Connect Client and send them as HTTP Authorization Bearer tokens
- RESTEasy Reactive Links (guide): Web Links support for RESTEasy Reactive. Inject web links into response HTTP headers by annotating your endpoint resources.
- Apache Kafka Client (guide): Connect to Apache Kafka with its native API
- YAML Configuration (guide): Use YAML to configure your Quarkus application
- OpenID Connect Token Propagation Reactive (guide): Use Reactive REST Client to propagate the incoming Bearer access token or token acquired from Authorization Code Flow as HTTP Authorization Bearer token
- Logging JSON (guide): Add JSON formatter for console logging
- SmallRye Health (guide): Monitor service health
- RESTEasy Classic Links (guide): Web Links support for RESTEasy Classic. Inject web links into response HTTP headers by annotating your endpoint resources.
- Micrometer metrics (guide): Instrument the runtime and your application with dimensional metrics using Micrometer.
- REST resources for Hibernate ORM with Panache (guide): Generate Jakarta REST resources for your Hibernate Panache entities and repositories
- Elasticsearch Java Client (guide): Connect to an Elasticsearch cluster using the Java client
- Micrometer Registry Prometheus (guide): Enable Prometheus support for Micrometer
- Hibernate Validator (guide): Validate object properties (field, getter) and method parameters for your beans (REST, CDI, Jakarta Persistence)
- OpenID Connect (guide): Verify Bearer access tokens and authenticate users with Authorization Code Flow
- Security JPA (guide): Secure your applications with username/password stored in a database via Jakarta Persistence
Configure your application with YAML
The Quarkus application configuration is located in src/main/resources/application.yml
.
Create your first JPA entity
Related Hibernate with Panache section...
Hello and goodbye are civilization fundamentals. Let's not forget it with this example picocli application by changing the command
and parameters
.
Also for picocli applications the dev mode is supported. When running dev mode, the picocli application is executed and on press of the Enter key, is restarted.
As picocli applications will often require arguments to be passed on the commandline, this is also possible in dev mode via:
./mvnw compile quarkus:dev -Dquarkus.args='Quarky'
Use SmallRye Reactive Messaging
Related Apache Kafka guide section...
Easily start your RESTful Web Services
Easily start your Reactive RESTful Web Services
Monitor your application's health using SmallRye Health