- GraalVM native image
Helidon applications can be compiled into a native executable using GraalVM native image.
When using applications created using the CLI, or when you configure Helidon application pom as a parent of your module, you can use the following steps to build a native image from your application:
- Create an environment variable
GRAALVM_HOMEpointing to your installation of GraalVM withnative-imageinstalled - Run Maven command
mvn clean package -Pnative-image - Execute the native executable created in
targetdirectory of your project
- Create an environment variable
AOT supported modules
Some Helidon components are not (yet) supported in native image, some have restrictions. The following table lists all Helidon features and their support for native image.
Helidon MP features in AOT
| Feature | Component | AOT note | |
|---|---|---|---|
| ✅ | CDI | CDI | |
| ✅ | Config | Config | |
| ✅ | Encryption | ||
| ✅ | YAML | ||
| ✅ | Fault Tolerance | Fault Tolerance | |
| ✅ | Health | Health | |
| ✅ | Built-ins | ||
| ✅ | JAX-RS | JAX-RS | |
| ✅ | JPA | JPA | |
| ❓ | EclipseLink | Not yet tested. | |
| 🔶 | Hibernate | Experimental support, tested on limited use cases with Helidon Oracle and H2 JDBC modules | |
| 🔶 | JTA | JTA | Experimental support, tested on limited use cases |
| ✅ | Messaging | Messaging | |
| ✅ | Metrics | Metrics | |
| ✅ | Open API | Open API | |
| 🔶 | REST Client | REST Client | Does not support execution of default methods on interfaces. |
| ✅ | Security | Security | |
| ✅ | Integration: Jersey | ||
| ✅ | Integration: WebServer | ||
| ✅ | Integration: gRPC | ||
| ✅ | JWT Auth | ||
| ✅ | OIDC | ||
| ✅ | Provider: ABAC | ||
| ✅ | Provider/ABAC/Policy: EL | Requires reflection configuration for used classes. | |
| ✅ | Provider/ABAC: Role | ||
| ✅ | Provider/ABAC: Scope | ||
| ✅ | Provider/ABAC: Time | ||
| ❓ | Provider: Google Login | Not yet tested. | |
| ✅ | Provider: Header | ||
| ✅ | Provider: HTTP Basic | ||
| ✅ | Provider: HTTP Digest | ||
| ✅ | Provider: HTTP Signatures | ||
| ❓ | Provider: IDCS Role Mapper | Not yet tested. | |
| ✅ | Provider: JWT | ||
| ✅ | Server | Server | |
| ✅ | Access Log | ||
| ✅ | CORS | ||
| ✅ | Tracing | Tracing | |
| ✅ | Integration: Jersey Server | ||
| ✅ | Integration: Jersey Client | ||
| ✅ | Jaeger | ||
| ✅ | Zipkin | ||
| ✅ | Web Client | Web Client | |
| ✅ | Metrics | ||
| ✅ | Security | ||
| ✅ | Tracing | ||
| ✅ | Websocket | Server only. | |
| ✅ | gRPC Server | gRPC Server | Since GraalVM 21.0.0 |
| ✅ | Metrics | ||
| ✅ | gRPC Client | gRPC Client | Since GraalVM 21.0.0 |
| ✅ | Metrics | ||
| ✅ | Scheduling | Scheduling | |
| ✅ | OCI | OCI Integration | Modules with group id io.helidon.integrations.oci |
| ✅ | Vault | Hashicorp Vault Integration | |
| ✅ | Long Running Actions | Client | |
| ✅ | Coordinator | Only with external database |