<?xml version="1.0" encoding="utf-8"?>
<html>
<b><font style="color: red">WARNINGWARNING: This page is still under development</font></b>development
The addon-mechanism for DSpace is a compile time modularity mechanism that allows code level separation between DSpace components. The main goal is to be able to extend DSpace without requiring patches and re-patches that lock developers into a single version of DSpace with no path to upgrade. This addon-mechanism moves DSpace closer to a binary distribution. These changes made by this proposal will make all compiled distributions (war files) non unique, so in the future we could just post binaries for DSpace user's to download and deploy. However the installation and upgrade processes will need to be refactored for this to be fully realized, this moves us a bit closer to that goal.
...
The process that was completed on the trunk and is outlined here
SimpleAddonMechanism - CodeReorganization
Maven based Addon Mechanism
...
6.) Currently, the configuration process is still Ant driven for the moment. Installation and Upgrade can be done via the original targets.
Panel |
---|
~% ant [-Dconfig=-path-to-your-dspace.cfg] [fresh_install] |
How does one
...
decide which addons to use?
Addons can be included into the main dspace/pom.xml as modules, and/or configured in the pom via "profiles" which can be activated via command-line or configuration properies. Addons are included into the build process either via being added as a dependency to the "appropriate" dspace webapplication project, or by inclusion as a dependency into the main dspace/pom.xml project descriptor.
...
- Resolve any and all necessary dependencies from maven repositories (jars and wars) and make them available locally for compilation and packaging.
- Publish binary versions of our addons into ours http__--ours http://maven.dspace.org DSpace Maven Repository/ and others maven repositories to make them available for the previous process.
...
- In the main dspace projects pom file (
) one can outline the modules that are to be included into the projects build process.Code Block trunk/dspace/pom.xml
Code Block |
---|
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.dspace</groupId>
<artifactId>dspace</artifactId>
<name>DSpace Installation Project</name>
<version>1.5-SNAPSHOT</version>
<packaging>pom</packaging>
...
<modules>
<module>../dspace-oai</module>
<module>../dspace-jspui</module>
<module>../dspace-xmlui</module>
<module>../dspace-lni</module>
</modules>
...
|
...