...
- Resolve inter-module dependencies via dependency injection
- Provide hooks to initialize/de-initialize modules when the webapp container starts and stops
- Allow re-configuration and plugging in of alternative modules without re-compiling
The JIRA issue for this work is FCREPO-648
Non-requirements
This work will NOT attempt to:
...
- 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 and address circular module dependencies. Refactor to avoid circular dependency, else prepare to use setter injection.** DefaultAccess <--> DynamicAccessModule
- DefaultDOManager <--> FieldSearchSQLModule
- DefaultDOManager <--> ManagementModule
- ManagementModule <--> DefaultExternalContentManager
- BasicServer <--> DefaultDOManager
- DatastreamManagedContent <--> DefaultManagement
- DisseminationService <--> DefaultAccess
- Server <--> DefaultAuthorization
- Decouple module impls from Module abstract class (as is already done with ResourceIndexImpl/Module and others)
...