Work on using the DSpace ServiceManagers ConfigurationService, Activators and Spring Configuration of Services to replace Configuration and Plugin Manager will finally and effectively encapsulate this functionality and remove a few sore spots in DSpace design where these "God Objects" interfere with our ability to make all parts of DSpace more easily replaceable and reconfigurable.
These tasks are recommended to occur on the following schedule.
DSpace 1.7.x and 1.8.0
- Release new version of DSpace Services with additional support for loading configs from dspace/config/modules (although that naming convention is conflated with the dspace/modules directory and should probably change).
- Adjust ServiceManager to load plugin classes from dspace.cfg as individual services in spring by adjusting Activator design.
- Upgrade DSpace 1.7.x and trunk to use new version of dspace services prior to their release.
- Deprecate all DSpace ConfigurationManager and PluginManager methods.
- Replace implementation of ConfigurationManager methods to use ServiceManager.getConfigurationService().
- Replace all usage of ConfigurationManager with ServiceManager.getConfigurationService().
- Replace implementation of PluginManager with ServiceManager services. Exposing all service through PluginManager.
- Replace all references to PluginManager from DSpace code.
- Remove ConfigurationManager.
- Remove PluginManager.
Please take these refactoring plans into consideration when designing your contributions to DSpace in the future.