Separate App Build Processes

Currently there is one DSpace build file that will build all applications and the core of dspace. This logic could be divided into individual pieces for easier processing. Right now I have an experiment using the XML UI with this approach but I will describe the example below as if it was the JSP UI. Each DSpace application (JSP UI, XML UI, OAI UI, METS exporter, etc...) would be separated into a top level directory. Inside that directory would be everything needed for that application including source code. For the JSP UI this would include all the java source code currently under "org.dspace.app.webui.*". Also the directory would include an ant build file specific to that application, each of these build files would then be imported by the global ant build file.
The global build file:

  1. Increases the distinction between core and non core code by separating them physically on the file system.
  2. Removes unused classes from specific builds, i.e. the OAI war includes all the servlets used by the JSPs.
  3. Makes it easier to support multiple interfaces, just build the one that you're going to use not all of them.