just sharing thoughts and starting (or at least trying to start) a discussion.
As DSpace grows, the number of modules grows. However, DSpace already has lot's of modules (there are also some planned contributions that will increase this number) and, in the general case, some of them aren't used at all. Also the current add-on deployment procedure is complex, most of the add-ons requires a DSpace rebuild and re-deployment (restarting the webapp container), this complexity grows if one tries to apply multiple add-ons. So, my point is:
- What about following an OSGi Model in DSpace, based in some OSGi framework?
An increasing number of Java application servers are being based on OSGi. The OSGi framework provides a runtime environment for the application server's modules. As the application server initialises, its modules are started and can communicate between themselves either using services or by importing classes from each other.
Applications running inside container modules provided by the application server need not be aware of the OSGi framework. This provides a low-cost migration path for existing applications. It will provide users an easy way deploying add-ons (without the need of rebuild/restart the webapp container) and also allow to select only the required services.
As we (Lyncode) are currently developing a completely new and dynamic UI for DSpace based on this model, our current intents are to embed this module (SpringUI) in the DSpace (static) structure making use of some tweaks over the application server, however, i think that makes more sense to embed DSpace in an OSGi framework.
What do you think?