...
- List all dependents of existing module interfaces
Identify and remove unused modules and classes with module dependencies.
Remove ReportServlet - FCREPO-646
Remove ThreadMonitor - FCREPO-647
Identify circular module dependencies (noted with
on above page).
- Modify all classes existing modules to accept module dependencies and fcfg-configured values at construction time.
- Decouple module interface impl from Module abstract class where needed
- For those with circular dependencies that can't be refactored outeasily, provide setters.
Phase II - Swap
- Decide on DI framework
- Design and implement a way to deal with non-module configuration currently in fedora.fcfg (global configuration and datastores)
- Convert fcfg to DI configuration
- Trigger initialization of module singletons via DI framework in context initialization
- Use injected module dependencies onlywherever possible, avoiding use of Module and Server at runtime
...