...
- Keep each as a separate Maven module
- Turn each Maven module into a JAR (i.e. update each module's POM)
- Add a new dependency on Spring Boot (spring-boot-starter-web), to allow each module to use Spring Boot annotations/APIs.
- Replace each module's
web.xml
webapp configuration with a Spring@Configuration
class (defining several @Beans). This is a direct replacement for the web.xml concept.- For example, in PR#2265, SWORDWebConfig.java replaces SWORDv1's web.xml
- Notice how the class defines a series of @Beans, all of which can be enabled/disabled via DSpace configuration (in this case a "sword-server.enabled" property).
- Additionally, this class can pull in other DSpace configuration/settings to allow for path customization (see the "swordPath" variable in this example, which reads from the "sword-server.path" configuration)
- For example, in PR#2265, SWORDWebConfig.java replaces SWORDv1's web.xml
- Remove the Overlay folder for the module (from
[dspace-src]/dspace/modules/
). The Maven Overlay concept is only supported by WARs, and therefore, all Overlays would be applied to the Spring Boot webapp.
...