...
- Dynamic configurations (runtime changes)
- Derived values support
- Modules support
- File Based
The under development SpringUI and its associated features made us recognize that, changing the core ConfigurationManager, is an important change to make DSpace more user friendly.
NOTE: Our team have internally discussed about a database based implementation (https://wiki.duraspace.org/display/DSPACE/Database+Persistence+of+Configuration+State), but it would have conceptual problems. Mainly:
- How to get the database configuration? (it must be placed somewhere - not in the database)
- Reading configurations from there will put an avoidable extra task on top of the DB
- On database crashes, some services (that do not use database at all), will also crash
- Derived values aren't advisable (it would make many SQL queries to get a simple configuration value)