jqa-core-framework
jqa-core-framework copied to clipboard
Introduce a mechanism to enable and disable plugins explicitly
Userstory
As a user of jQA, I would like to have a mechanism to enable and disable plugins of jQA explicitly, so that I have a better control of the plugins jQA runs during a invocation.
Rationale
jQA offers a wide range of plugins for scanning, running concepts and constraints and for various reports. Currently we run all of them during a single invocation of jQA. Each plugin we run prolongs the execution time and the might increase the size of the used Neo4j database, even if the result of a plugin is not needed by the user. Allowing the user to enable of disable plugins gives him more control over these aspects and can result in a faster scan or a smaller database. The advantage of a smaller database is also that it might become easier to query the database as it might contain fewer labels or nodes.
Acceptance Criteria
- [ ] Each core plugin has a unique id and for the user easy to remember identifier
- [ ] Each plugin can by explicitly disabled
- [ ] Each plugin can by explicitly activated
- [ ] Having an id is optional for a plugin to avoid problems with third party plugins should issue a warning
- [ ] If jQA finds an plugin without an id jQA
- [ ] Without any given configuration jQA will run all plugins
- [ ] It is possible to disable all plugins and to enabler some plugins afterwards explicitly
- [ ] The meachnism is well documented