In the notes below [dspace] refers to the install directory for your existing DSpace installation, and [dspace-source] to the source directory for DSpace 1.5. Whenever you see these path references, be sure to replace them with the actual path names on your local system.

Upgrade Steps

The changes in DSpace 1.5 are significant and wide spread involving database schema upgrades, code restructuring, completely new user and programmatic interfaces, and new build system.

  1. Backup your DSpace First and foremost, make a complete backup of your system, including:
  2. Download DSpace 1.5.x Get the new DSpace 1.5 source code either as a download from SourceForge or check it out directly from the SVN code repository. If you downloaded DSpace do not unpack it on top of your existing installation.
  3. Build DSpace The build process has radically changed for DSpace 1.5. With this new release the build system has moved to a maven-based system enabling the various projects (JSPUI, XMLUI, OAI, and Core API) into separate projects. See the Installation section for more information on building DSpace using the new maven-based build system. Run the following commands to compile DSpace.
    cd [dspace-source]/dspace/;
      mvn package
    
    You will find the result in [dspace-source]/dspace/target/dspace-1.5-build.dir/; inside this directory is the compiled binary distribution of DSpace.
  4. Stop Tomcat Take down your servlet container, for Tomcat use the bin/shutdown.sh script.
  5. Update dspace.cfg Several new parameters need to be added to your [dspace]/config/dspace.cfg. While it is advisable to start with a fresh DSpace 1.5 _dspace.cfg configuration file_ here are the minimum set of parameters that need to be added to an old DSpace 1.4.2 configuration.
    #### Stackable Authentication Methods #####
    #
    # Stack of authentication methods
    #  (See org.dspace.authenticate.AuthenticationManager)
    # Note when upgrading you should remove the parameter:
    #  plugin.sequence.org.dspace.eperson.AuthenticationMethod
    plugin.sequence.org.dspace.authenticate.AuthenticationMethod = \
            org.dspace.authenticate.PasswordAuthentication
    
    ###### JSPUI item style plugin #####
    #
    # Specify which strategy use for select the style for an item
    plugin.single.org.dspace.app.webui.util.StyleSelection = \
    
    	org.dspace.app.webui.util.CollectionStyleSelection
    
    
    ###### Browse Configuration ######
    #
    # The following configuration will mimic the previous
    # behavior exhibited  by DSpace 1.4.2. For alternative
    # configurations see the manual.
    
    # Browse indexes
    webui.browse.index.1 = dateissued:item:dateissued
    webui.browse.index.2 = author:metadata:dc.contributor.*:text
    webui.browse.index.3 = title:item:title
    webui.browse.index.4 = subject:metadata:dc.subject.*:text
    
    # Sorting options
    webui.itemlist.sort-option.1 = title:dc.title:title
    webui.itemlist.sort-option.2 = dateissued:dc.date.issued:date
    webui.itemlist.sort-option.3 =
    	dateaccessioned:dc.date.accessioned:date
    
    # Recent submissions
    recent.submissions.count = 5
    
    # Itemmapper browse index
    itemmap.author.index = author
    
    # Recent submission processor plugins
    plugin.sequence.org.dspace.plugin.CommunityHomeProcessor = \
            org.dspace.app.webui.components.RecentCommunitySubmissions
    plugin.sequence.org.dspace.plugin.CollectionHomeProcessor = \
            org.dspace.app.webui.components.RecentCollectionSubmissions
    
    #### Content Inline Disposition Threshold ####
    #
    # Set the max size of a bitstream that can be served inline
    # Use -1 to force all bitstream to be served inline
    # webui.content_disposition_threshold = -1
    webui.content_disposition_threshold = 8388608
    
    #### Event System Configuration ####
    #
    # default synchronous dispatcher (same behavior as traditional
    	DSpace)
    event.dispatcher.default.class = org.dspace.event.BasicDispatcher
    event.dispatcher.default.consumers = search, browse, eperson
    
    # consumer to maintain the search index
    event.consumer.search.class = org.dspace.search.SearchConsumer
    event.consumer.search.filters =
    	Item|Collection|Community|Bundle+Create|Modify|Modify_Metadata|Delete:
    Bundle+Add|Remove
    
    # consumer to maintain the browse index
    event.consumer.browse.class = org.dspace.browse.BrowseConsumer
    event.consumer.browse.filters =
    	Item+Create|Modify|Modify_Metadata:Collection+Add|Remove
    
    # consumer related to EPerson changes
    event.consumer.eperson.class = org.dspace.eperson.EPersonConsumer
    event.consumer.eperson.filters = EPerson+Create
    
  6. Add 'xmlui.xconf' Manakin configuration The new Manakin user interface available with DSpace 1.5 requires an extra configuration file that you will need to manually copy it over to your configuration directory.
    cp [dspace-source]/dspace/config/xmlui.xconf
    	[dspace]/config/xmlui.xconf
    
  7. Add 'item-submission.xml' and 'item-submission.dtd' configurable submission configuration The new configurable submission system that enables an administrator to re-arrange, or add/remove item submission steps requires this configuration file. You need to manually copy it over to your configuration directory.
    cp [dspace-source]/dspace/config/item-submission.xml
    	[dspace]/config/item-submission.xml
    
    cp [dspace-source]/dspace/config/item-submission.dtd
    	[dspace]/config/item-submission.dtd
    
  8. Add new 'input-forms.xml' and 'input-forms.dtd' configurable submission configuration The input-forms.xml now has an included dtd reference to support validation. You'll need to merge in your changes to both file/and or copy them into place.
    cp [dspace-source]/dspace/config/input-forms.xml
    	[dspace]/config/input-forms.xml
    
    cp [dspace-source]/dspace/config/input-forms.dtd
    	[dspace]/config/inputforms.dtd
    
  9. Add 'sword-swap-ingest.xsl' and 'xhtml-head-item.properties' crosswalk files New crosswalk files are required to support SWORD and the inclusion of metadata into the head of items.
    cp [dspace-source]/dspace/config/crosswalks/sword-swap-ingest.xsl
    	[dspace]/config/crosswalks/sword-swap-ingest.xsl
    
    
    cp
    	[dspace-source]/dspace/config/crosswalks/xhtml-head-item.properties
    	[dspace]/config/crosswalks/xhtml-head-item.properties
    
  10. Add 'registration_notify' email files A new configuration option (registration.notify = you@your-email.com) can be set to send a notification email whenever a new user registers to use your DSpace. The email template for this email needs to be copied.
    cp [dspace-source]/dspace/config/emails/registration_notify
    	[dspace]/config/emails/registration_notify
    
  11. Update the database The database schema needs updating. SQL files contain the relevant updates are provided, note if you have made any local customizations to the database schema you should consult these updates and make sure they will work for you.
  12. Apply any customizations If you have made any local customizations to your DSpace installation they will need to be migrated over to the new DSpace. Commonly these modifications are made to "JSP" pages located inside the [dspace 1.4.2]/jsp/local directory. These should be moved [dspace-source]/dspace/modules/jspui/src/main/webapp/ in the new build structure. See Customizing the JSP Pages for more information.
  13. Update DSpace Update the DSpace installed directory with new code and libraries. Inside the [dspace-source]/dspace/target/dspace-1.5-build.dir/ directory run:
    cd [dspace-source]/dspace/target/dspace-1.5-build.dir/;
    ant -Dconfig=[dspace]/config/dspace.cfg update
    
  14. Update the Metadata Registry New Metadata Registry updates are required to support SWORD.
    cp [dspace-source]/dspace/config/registries/sword-metadata.xml
    	[dspace]/config/registries/sword-metadata.xml;
    
    [dspace]/bin/dsrun org.dspace.administer.MetadataImporter -f
    	[dspace]/config/registries/sword-metadata.xml
    
  15. Rebuild browse and search indexes One of the major new features of DSpace 1.5 is the browse system which necessitates that the indexes be recreated. To do this run the following command from your DSpace installed directory:
    [dspace]/bin/index-init
    
  16. Update statistics scripts The statistics scripts have been rewritten for DSpace 1.5. Prior to 1.5 they were written in Perl, but have been rewritten in Java to avoid having to install Perl. First, make a note of the dates you have specified in your statistics scripts for the statistics to run from. You will find these in [dspace]/bin/stat-initial, as $start_year and $start_month. Note down these values.Copy the new stats scripts:
    cp [dspace-source]/dspace/bin/stat* [dspace]/bin/
    
    Then edit your statistics configuration file with the start details. Add the following to [dspace]/conf/dstat.cfg# the year and month to start creating reports from# - year as four digits (e.g. 2005)# - month as a number (e.g. January is 1, December is 12)start.year = 2005start.month = 1 Replace '2005' and '1' as with the values you noted down. dstat.cfg also used to contain the hostname and service name as displayed at the top of the statistics. These values are now taken from dspace.cfg so you can remove host.name and host.url from dstat.cfg if you wish. The values now used are dspace.hostname and dspace.name from dspace.cfg
  17. Deploy web applications Copy the web applications files from your [dspace]/webapps directory to the subdirectory of your servlet container (e.g. Tomcat):
    cp [dspace]/webapps/* [tomcat]/webapps/
    
  18. Restart Tomcat Restart your servlet container, for Tomcat use the bin/startup.sh script.