bpm-crafters / bpm-crafters/process-engine-worker
[Feature] Quarkus Support for the Process Engine Worker
- Dominant language
- Kotlin
- Stars
- 17
- Forks
- 2
- Avg merge
- 2d 20h
- Merged PRs (30d)
- 4
Description
## Context & Motivation
The Process Engine Worker currently supports only Spring Boot and relies on Spring-specific mechanisms such as @Autowired component scanning and lifecycle hooks (postProcessAfterInitialization).
For Quarkus-based projects, we need lightweight, native Quarkus support. The goal is to let developers define worker handlers in Quarkus applications with the same declarative, annotation-based experience as in Spring — without boilerplate.
## Proposed Solution & Architecture
1. Shared core module (process-engine-worker-core): Extract the framework-independent logic from the existing Spring worker. Share domain objects, error handling (e.g. BpmErrorOccurred), subscription handling, and task-execution logic. (No Spring dependencies in the core module.)
2. Quarkus auto-detection & CDI registration (process-engine-worker-quarkus): Quarkus uses build-time / ahead-of-time dependency injection (Arc) instead of runtime reflection scanning.
Implement a build-time auto-detection mechanism (e.g. a Quarkus extension using build steps / Jandex indexing, similar to declarative scanners like Axon’s). Automatically detect and register annotated worker handlers in the Quarkus Arc CDI container.
## Acceptance Criteria (Definition of Done)
- [ ] Core extracted: Framework-independent logic lives in process-engine-worker-core.
- [ ] Spring module adapted: The existing Spring module consumes the core module with no breaking changes for current Spring projects.
- [ ] Quarkus module: New process-engine-worker-quarkus module is available.
- [ ] Declarative annotations: Worker handlers can be defined in Quarkus via annotations, analogous to Spring.
- [ ] Build-time / AoT: Registration is compatible with the Quarkus build-time CDI model.
- [ ] Tests: Unit and integration tests for the Quarkus worker exist and pass.
- [ ] Documentation: README and module docs describe setup and configuration in Quarkus.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.