Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 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
  • (tick) Identify and remove unused modules and classes with module dependencies.
  • (lightbulb) 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)

...