Add an Extension Point for templating such that other plugins can supply their own template rule instead of ez-templates trying to handle everything itself.
This pre-reqs an amount of maturing of the codebase:
- pipeline support (this changes the interface quite a bit)
- step support (at least a rough idea of how it would look so the public API isn't going to limit us)
- rollback support?
Solution must be:
- migratable (newer ez-templates should continue to support older collaborators with existing in-house code but defer to extensions if they exist)
- backwards-compatible (users can upgrade ez/collaborators independently and expect templating to still work)
- Investigate how Jenkins uses semantic versioning to see if we can rely on major version changes to block clashing upgrades
- Should use resources (or jelly?) for textual content
- Have unit test which runs in the collaborating project
- Assert templating works with and without a given exclusion
- Assert UI text of the exclusion follows any expected pattern
- Documented - JavaDoc mostly then link to it from Confluence