In the notes below [dspace] refers to the install directory for your existing DSpace installation, and [dspace-source] to the source directory for DSpace 3.0. Whenever you see these path references, be sure to replace them with the actual path names on your local system. You should also check the DSpace Release 3.0 Notes to see what changes are in this version.

In DSpace 3.0 there have been a few significant changes to how you upgrade and configure DSpace. Notably:

  • A build.properties file has been introduced: This file provides a convenient place to set the most commonly used configuration properties held in dspace.cfg. For a more detailed explanation please refer to the Installing DSpace and Configuration Reference sections.

Backup your DSpace

Before you start your upgrade, it is strongly recommended that you create a backup of your DSpace instance. Backups are easy to recover from; a botched install/upgrade is very difficult if not impossible to recover from. The DSpace specific things to backup are: configs, source code modifications, database, and assetstore. On your server that runs DSpace, you might additionally consider checking on your cron/scheduled tasks, servlet container, and database.

Make a complete backup of your system, including:

Upgrade Steps

  1. Download DSpace 3.0: Either download DSpace 3.0 from DSpace.org or check it out directly from the Github repository. If you downloaded DSpace do not unpack it on top of your existing installation. Refer to Installation Instructions, Step 3 for unpacking directives.
  2. Merge any customizations. If you have made any local customizations to your DSpace installation they will need to be migrated over to the new DSpace. Customizations are typically housed in one of the following places:
  3. Edit the build.properties file ([dspace-source]/build.properties).  This new configuration file allows for an easier way to quickly configure your primary DSpace settings before building DSpace.  It provides a subset of the most important configurations you may wish to make for your DSpace installation.  Any settings changed in this build.properties file are automatically copied over to the final dspace.cfg file during the "Build DSpace" process (in the next step).  For more information on the build.properties file, see "The build.properties Configuration Properties File" section of the Configuration Reference documentation.

     

  4. Build DSpace. Run the following commands to compile DSpace:

    cd [dspace-source]/dspace/
    mvn -U clean package

    You will find the result in [dspace-source]/dspace/target/dspace-[version]-build.dir . Inside this directory is the compiled binary distribution of DSpace. Before rebuilding DSpace ('package'), the above command will clean out any previously compiled code ('clean') and ensure that your local DSpace JAR files are updated from the remote maven repository.

  5. Stop Tomcat. Take down your servlet container. For Tomcat, use the $CATALINA_HOME/shutdown.sh script. (Many Unix-based installations will have a startup/shutdown script in the /etc/init.d or /etc/rc.d directories.)
  6. Update DSpace.
    1. Update the DSpace installed directory with the new code and libraries. Issue the following commands:

      cd [dspace-source]/dspace/target/dspace-[version]-build.dir
      ant update
      
    2. Please run one of the following scripts to update your database:-
  7. Update your DSpace Configurations. As necessary, you may wish to review the settings in  [dspace]/config/dspace.cfg and all configurations under [dspace]/config/modules/.  This configuration settings can also be modified at any time in the future. You'd just need to restart Tomcat for any settings to take effect.

     

  8. Refresh Browse and Search Indexes. To do this, run the following command from your DSpace install directory (as the dspace user):

    [dspace]/bin/dspace index-init
    

     


    1. Refresh Discovery: If you are using Discovery (Solr) for search/browse, you will also need to refresh Discovery indexes by running the following command:

      [dspace]/bin/dspace update-discovery-index -f
  9. Update OAI-PMH indexes. DSpace 3.0 comes with a brand new OAI 2.0 Server which uses a Solr backend by default.  As such, it needs to have its indexes updated on a regular basis.  To update the OAI 2.0 indexes, you should run the following command:

    [dspace]/bin/dspace oai import

    This same 'dspace oai import' command should also be run on a regular basis (e.g. via cron) to keep the OAI 2.0 indexes in sync. For more information, see the Scheduled Tasks section of the OAI 2.0 documentation.

    If you are using OAI-PMH, but do not yet have the Solr webapp ([dspace]/webapps/solr/) installed, you will need to:

    (1) EITHER Modify the default OAI 2.0 config file ([dspace]/config/modules/oai.cfg) to use a database backend. See: OAI 2.0 Server#UsingDatabase

    (2) OR install/enable Tomcat to use the DSpace Solr webapp ([dspace]/webapps/solr/), and optionally configure the OAI settings in [dspace]/config/modules/oai.cfg

  10. Change LDAPHierarchicalAuthentication to LDAPAuthentication. If you were using the LDAPHierarchicalAuthentication method in DSpace 1.8.x, you need to change your authentication plugin to LDAPAuthentication. The functionality from LDAPHierarchicalAuthentication is now part of LDAPAuthentication. This change should be made in [dspace]/config/modules/authentication.cfg in the plugin.sequence.org.dspace.authenticate.AuthenticationMethod property. LDAP configuration in [dspace]/config/modules/authentication-ldap.cfg remains the same, so you won't need to change anything. The only case (which should apply to a minority of users) when you do need to update your configuration is if you were using anonymous search (i.e. you were using LDAPHierarchicalAuthentication, but you didn't have search.user and search.password set); if that applies to you, edit [dspace]/config/modules/authentication-ldap.cfg and set:

    search.anonymous = true

    A new feature in 3.0 is that you can now put users into DSpace groups based on a part of their DN in LDAP. See the new login.groupmap.* options in Authentication Plugins#ConfiguringLDAPAuthentication.

  11. Deploy Web Applications. If necessary, copy the web applications files from your [dspace]/webapps directory to the subdirectory of your servlet container (e.g. Tomcat):

    cp -R [dspace]/webapps/* [tomcat]/webapps/
    

    See the installation guide for full details.

  12. Restart servlet container. Now restart your Tomcat/Jetty/Resin server program and test out the upgrade.