Comprehensive examples demonstrating all GuicedEE functionality. Each example includes:
- JPMS module-info.java — proper
requires,exports,opens, andprovidesdeclarations - Moditect JLink — runtime image creation via
moditect-maven-plugin(create-runtime-image) - Maven JLink — classic
maven-jlink-pluginpackaging (inBasicJLink/submodules where available)
- JDK 25+
- Maven 4 (or use the Maven wrapper)
- GuicedEE BOM must be installed locally or available from your configured Maven repository
mvn clean install -Penable-guicedeeTo build an individual example:
cd Rest/Basic
mvn clean packageThe moditect jlink image is output to target/jlink-image/. Run with:
target/jlink-image/bin/<launcher-name>| Module | Description | Key Dependencies |
|---|---|---|
| Inject | Core DI bootstrap, lifecycle hooks (IGuiceModule, IGuicePostStartup), Guice bindings | inject |
| CDI | Jakarta CDI annotation bridge (@ApplicationScoped, @Inject via CDI) | inject |
| Config | MicroProfile Config with @ConfigProperty injection | inject, config |
| Health | MicroProfile Health with @Liveness and @Readiness checks | inject, health |
| Metrics | MicroProfile Metrics with @Counted, @Timed, Prometheus endpoint | inject, metrics |
| Telemetry | OpenTelemetry tracing with @Trace and @SpanAttribute | inject, guiced-telemetry |
| Vertx | Vert.x event bus consumers and publishers with @VertxEventDefinition | inject, vertx |
| Web | Vert.x Web server with custom routes via VertxRouterConfigurator SPI | inject, web |
| Rest | Jakarta REST (JAX-RS) resources with @Path, @GET, @POST | inject, rest |
| RestClient | Annotation-driven REST client with @Endpoint and RestClient | inject, rest-client |
| OpenAPI | Automatic OpenAPI 3.1 spec generation + Swagger UI | inject, rest, openapi, guiced-swagger-ui |
| WebServices | SOAP web services with JAX-WS annotations | inject, guiced-web-services |
| WebSockets | WebSocket messaging with action-based routing (IWebSocketMessageReceiver) | inject, websockets |
| Persistence | Reactive JPA with Hibernate Reactive 7 and Mutiny sessions | inject, persistence, hibernate-reactive |
| RabbitMQ | Annotation-driven RabbitMQ with @QueueExchange, QueueConsumer/Publisher | inject, rabbitmq |
| Kafka | Kafka messaging integration | inject, kafka |
| Cerial | Serial port connectivity with @Named CerialPortConnection | inject, cerial |
| Hazelcast | Hazelcast-clustered Vert.x (Server, Client, Queues) | inject, vertx, hazelcast |
| MailClient | Annotation-driven SMTP mail client with @MailConnectionOptions | inject, mail-client |
Every Basic/ example includes the moditect-maven-plugin configured to produce a minimal runtime image.
The Rest/BasicJLink/ submodule also demonstrates the alternative maven-jlink-plugin approach with <packaging>jlink</packaging>.