-
Notifications
You must be signed in to change notification settings - Fork 2
Implement proper preference framework #21
Description
Feature request
Expected Behavior - What were you expecting to happen?
This feature should be for the core framework for preferences. With this ticket a simple preference to switch/change the log-level for both GEM and third-party ones should be implemented.
Current Behavior - What happens?
Current framework for preferences is not used and not flexible enough, as it is just a draft. The solution to this issue should be also a draft but more refined as it might be changed when UI for preferences is implemented. By now, it should be usable so the file-based configuration can be edited by hand and the preferences being picked up.
Possible Solution
The preference framework should contain:
- Preferences for the core and also plug-in specific preferences, stored as a HOCON config on the GEM application folder to be consistent with our file-based config structure.
- A way to communicate plug-in preferences to the UI the different kind of preferences to display properly (the UI part should be a different feature request). A new provider should be available to configure preferences.
- Resolution of preferences should use also the configuration, so plug-ins can request preferences instead of configuration for their plug-ins. This will also make more flexible the framework so for example for the new JIRA plug-in (see Add JIRA feature branch provider #3) some JQL parts can be part of the preferences (e.g., user-name on JIRA).
- A way to set by default some preferences values with the configuration and/or programatically.
- New configuration entry for framework that allows to include on the configuration resolvable preferences not determined by source code (e.g., the user-name for JIRA).
Context
The context is to enable user-preferences at the core level (not UI) to allow user-input on the behavior of GEM core and plug-ins.
Notes and further information
Follow up this ticket the UI counterpart should be created (see next ticket).