antenna
antenna copied to clipboard
Proposal: Plugins should be side loaded without any dependency manager like maven
Proposal copied from internal repo. Inital reporter: @bs-matil
Summary of the Feature
Today we package antenna with all plugins it needs and use this as "fat" dependency. Also we rely on the dependency management of the chosen frondend (e.g. maven). If we want to deliver a small and fast usable antanna cli in the future it might be better to think of the plugins as remote resources which can be side loaded at run time.
I would like to have terrform like plugin management https://www.terraform.io/docs/plugins/index.html https://www.terraform.io/docs/plugins/basics.html
- Plugins MUST be downloaded while antanna run
- Plugins MUST be qualified with a plugin name and a version (optional) in workflow.xml instead of class path
- Plugins SHOULD register them self. The class path MUST not be exposed , or equally generic way like a manifest in each plugin which is read by antenna and contains the classpath.
- Plugins SHOULD be cached in a .antenna-cache directory
- Plugins SHOULD be configurable from local filesystem to provider custom plugins
- Plugins SHOULD be fetchable from configured repositories in any frontend (e.g. private nexus)
Acceptance Criteria
- [ ] antenna without any module/workflowstep preloaded can be used with any workflow.xml
- [ ] antenna works within any corporate context by side loading private plugins from internal sources
- [ ] workflowsteps MAY be released independent from antenna core
Definition of Done
- [ ] Acceptance criteria fulfilled
- [ ] A PR is created, the CI infrastructure reports green
- [ ] The PR is reviewed and approved
- [ ] No TODOs left in the code unless explained in the ticket, if something else is still open, this is summarized in a comment in the issue
- [ ] Test cases are created to prove the functionality of the feature
- [ ] Documentation is updated