DSpace System Documentation: Upgrading a DSpace Installation

This section describes how to upgrade a DSpace installation from one version to the next. Details of the differences between the functionality of each version are given in the Version History section.

In order to minimize downtime, it is always recommended to first perform a DSpace upgrade using a Development or Test server. You should note any problems you may have encountered (and also how to resolve them) before attempting to upgrade your Production server. It also gives you a chance to "practice" at the upgrade. Practice makes perfect, and minimizes problems and downtime. Additionally, if you are using a version control system, such as subversion or git, to manage your locally developed features or modifications, then you can do all of your upgrades in your local version control system on your Development server and commit the changes. That way your Production server can just checkout your well tested and upgraded code.

You should perform all of the steps of each upgrade between the version from which you are starting and the version to which you are upgrading. You do not need to install each intervening version, but you do need to carry out all of the configuration changes and additions, and all of the database updates, for each one. For example, when upgrading from 1.6.x to 1.8.x, you need to perform the configuration & database upgrade steps detailed in #Upgrading from 1.6.x to 1.7.x followed by those detailed in #Upgrading from 1.7.x to 1.8.x.

Upgrading from 1.7.x to 1.8.x

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.8. 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:DSpace Release 1.8.0 Notes] to see what changes are in this version.

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

  • *The dspace.cfg has been "split up":* Many "module" configurations have now been moved out of the 'dspace.cfg' and into separate configuration files in the {{\[dspace\]/config/modules/}} directory.
    • [Authentication Configurations|Authentication Plugins] are now in {{\[dspace\]/config/modules/authenticate*.cfg}} files
    • [Batch Metadata Editing Configurations|Batch Metadata Editing Configuration] are now in the {{\[dspace\]/config/modules/bulkedit.cfg}} file
    • [Discovery Configurations|Discovery] are now in the {{\[dspace\]/config/modules/discovery.cfg}} file
    • [OAI-PMH / OAI-ORE Configurations|OAI] are now in the {{\[dspace\]/config/modules/oai.cfg}} file
    • [Solr Statistics Configurations|DSpace Statistics] are now in the {{\[dspace\]/config/modules/solr-statistics.cfg}} file
    • [SWORD Configurations|SWORDv1 Server] are now in {{\[dspace\]/config/modules/sword*.cfg}} files
    • All other DSpace configurations are still in the dspace.cfg configuration file.
  • Behavior of 'ant update' has changed: The ant update upgrade command now defaults to replacing any existing configuration files (though the existing configuration files will first be backed up to a file with the suffix *.old).
    • In prior versions of DSpace (before 1.8.0), this ant update command would leave existing configuration files intact (and you would have to manually merge in new configuration settings, which would be in a file with the suffix *.new). If you prefer this previous behavior, you can still achieve the same result by running:
      • ant -Doverwrite=false update
    • *WARNING:* If you choose to run {{ant \-Doverwrite=false update}} please be aware that this will not auto-upgrade any of your configuration files. This means you must closely watch the output of this command, and ensure you manually upgrade all configuration files in the {{\[dspace\]/config/}} directory as well as all Solr configurations/schemas in the {{\[dspace\]/solr/search/conf/}} and {{\[dspace\]/solr/statistics/conf/}} directories.
  • The structure of the source release has now been changed: Please see Advanced Customisation for more details.

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 1.8 Either download DSpace 1.8 from DSpace.org or check it out directly from the SVN code 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. 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.
  4. Stop Tomcat. Take down your servlet container. For Tomcat, use the  $CATALINA/shutdown.sh  script. (Many Unix-based installations will have a startup/shutdown script in the /etc/init.d or /etc/rc.d directories.)
  5. 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 -Dconfig=[dspace]/config/dspace.cfg update
      

      The ant update script has changed slightly as of DSpace 1.8.0. It now defaults to replacing your existing configuration files (after backing them up first). See the note under #Upgrading from 1.7.x to 1.8.x for more details.

    2. Apply database changes to your database by running one of the following database schema upgrade scripts.

      Applying a database change will alter your database! The database upgrade scripts have been tested, however, there is always a chance something could go wrong. So, do yourself a favor and create a backup of your database before you run a script that will alter your database.

      1. PostgreSQL: \[dspace-source\]/dspace/etc/postgres/database_schema_17-18.sql
      2. Oracle: \[dspace-source\]/dspace/etc/oracle/database_schema_17-18.sql
  6. Update your DSpace Configurations.
    1. Merge existing configurations: After updating DSpace, you may notice a series of {{\*.old}} files in your newly updated {{\[dspace\]/config/}} directory (and all sub-directories). During the update process, if there is a difference between your old 1.7-compatible configuration file and the new 1.8-compatible configuration file, your previous settings will be moved to a {{\*.old}} file. You may want to review the differences between the {{\*.old}} file and the new version of that file, and ensure your previous configurations/settings are merged into the new configuration file. One way to compare these files is by using a comparison-utility like {{diff}} or a text editor that supports file comparison.
    2. Set New Configurations: There are new configuration settings in the new release that add or change functionality. You should review these new settings and ensure that they are set according to your needs.
    3. TODO - Add new configuration changes.
  7. Generate Browse and Search Indexes. The search mechanism has been updated in 1.8, so you must perform a full reindex of your site for searching and browsing to work. To do this, run the following command from your DSpace install directory (as the dspace user):
    [dspace]/bin/dspace index-init
    
  8. *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.
  9. Restart servlet container. Now restart your Tomcat/Jetty/Resin server program and test out the upgrade.

Optional Upgrade Step: Fix Broken File Statistics

In DSpace 1.6.x & 1.7.x the file download statistics were generated without regard to the bundle in which the file was located. In DSpace 1.8.0 it is possible to configure the bundles for which the file statistics are to be shown by using the query.filter.bundles property. If required the old file statistics can also be upgraded to include the bundle name so that the old file statistics are fixed.

Updating the file statistics will ensure that old file downloads statistics data will also be filterable using the filter bundle feature. The benefit of upgrading is that only files within, for example, the "ORIGINAL" bundle are shown as opposed to also showing statistics from the LICENSE bundle. More information about this feature can be found at Statistics differences between DSpace 1.7.x and 1.8.0

Applying this change will involve dumping all the old file statistics into a file and re-loading them. Therefore it is wise to create a backup of the \[DSpace\]/solr/statistics/data directory. It is best to create this backup when the Tomcat/Jetty/Resin server program isn't running.

When a backup has been made, start the Tomcat/Jetty/Resin server program.
The update script has one option (-r) which will, if given, not only update the broken file statistics but also delete statistics for files that were removed from the system. If this option isn't active, these statistics will receive the "BITSTREAM_DELETED" bundle name.

#The -r is optional
[dspace]/bin/dspace stats-util -b -r

Upgrading from 1.7 to 1.7.x

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.7.2. Whenever you see these path references, be sure to replace them with the actual path names on your local system. Additionally, be sure to backup your configs, source code modifications, and database before doing a step that could destroy your instance.

  1. Download DSpace 1.7.2 Either download DSpace 1.7.2 from DSpace.org or check it out directly from the SVN code 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. 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. These are housed in one of the following places:
  3. 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.
  4. Stop Tomcat. Take down your servlet container. For Tomcat, use the  $CATALINA/shutdown.sh  script. (Many Unix-based installations will have a startup/shutdown script in the /etc/init.d or /etc/rc.d directories.)
  5. Backup Your DSpace. Make a complete backup of your system, including:
  6. Update DSpace. 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 -Dconfig=[dspace]/config/dspace.cfg update
  7. Generate Browse and Search Indexes. Though there are not any database changes between 1.7 and 1.7.1 release, it makes good policy to rebuild your search and browse indexes when upgrading to a new release. To do this, run the following command from your DSpace install directory (as the dspace user):
    [dspace]/bin/dspace index-init
  8. *Deploy Web Applications*. 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/
  9. Restart servlet container. Now restart your Tomcat/Jetty/Resin server program and test out the upgrade.

Upgrading from 1.6.x to 1.7.x

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.7.x. Whenever you see these path references, be sure to replace them with the actual path names on your local system.

Before upgrading you need to check you are using the current recommended minimum versions of Java (1.6), Maven (2.0.8 or above) and ant (1.7 or above). For more details, see the current listing of Prerequisite Software

  1. Backup Your DSpace. First, and foremost, make a complete backup of your system, including:
  2. Download DSpace 1.7.x Retrieve the new DSpace 1.7.x source code either as a download from DSpace.org or check it out directly from the SVN code repository. If you downloaded DSpace do not unpack it on top of your existing installation. Refer to Installation Instructions, Step 3 for unpacking directives.
  3. Stop Tomcat. Take down your servlet container. For Tomcat, use the $CATALINA_HOME/bin/shutdown.sh script. (Many Unix-based installations will have a startup/shutdown script in the /etc/init.d or /etc/rc.d directories).
  4. 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. These are normally housed in one of the following places:
  5. Update Configuration Files. Some parameters have changed and some are new. You can either attempt to make these changes in your current 1.6.x dspace.cfg file, or you can start with a new 1.7 dspace.cfg and re-modify it as needed. Configuration changes are noted below:
  6. 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, 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 code repository.
  7. Update DSpace. 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 -Dconfig=[dspace]/config/dspace.cfg update
  8. Update the Database. You will need to run the 1.6.x to 1.7.x database upgrade script.
  9. Generate Browse and Search Indexes. It's always good policy to rebuild your search and browse indexes when upgrading to a new release. To do this, run the following command from your DSpace install directory (as the 'dspace' user):
    [dspace]/bin/dspace index-init
  10. *Deploy Web Applications*. If your servlet container (e.g. Tomcat) is not configured to look for new web applications in your {{\[dspace\]/webapps}} directory, then you will need to copy the web applications files into the appropriate subdirectory of your servlet container. For example: 
    cp -R [dspace]/webapps/* [tomcat]/webapps/
  11. Restart servlet container. Now restart your Tomcat/Jetty/Resin server program and test out the upgrade.
  12. Add a new crontab entry, or add to your system's scheduler, the following, run as the DSpace user, to enable routine maintenance of your SOLR indexes. If you do not run this command daily, it is likely your production instances of DSpace will exhaust the available memory in your servlet container
    [dspace]/bin/dspace stats-util -o

Upgrading from 1.6 to 1.6.x

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.6.1. Whenever you see these path references, be sure to replace them with the actual path names on your local system.

  1. Backup Your DSpace. First, and foremost, make a complete backup of your system, including:
  2. Download DSpace 1.6.2 Retrieve the new DSpace 1.6.2 source code either as a download from DSpace.org or check it out directly from the SVN code repository. If you downloaded DSpace do not unpack it on top of your existing installation. Refer to Installation Instructions, Step 3 for unpacking directives.
  3. Stop Tomcat. Take down your servlet container. For Tomcat, use the $CATALINA/shutdown.sh script. (Many installations will have a startup/shutdown script in the /etc/init.d or /etc/rc.d directories.
  4. 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. These are housed in one of the following places:
  5. Update Configuration Files. There are no additions to this release. So you do not have to update the configuration files.
  6. 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, 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.
  7. Update DSpace. 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 -Dconfig=[dspace]/config/dspace.cfg update
  8. *Run Registry Format Update for CC License.* Creative Commons licenses have been assigned the wrong mime-type in past versions of DSpace. Even if you are not currently using CC Licenses, you should update your Bitstream Format Registry to include a new entry with the proper mime-type. To update your registry, run the following command: _dspace\]/bin/dspace registry-loader \-bitstream \[dspace\]/etc/upgrades/15-16/new-bitstream-formats.xml_
  9. Update the Database. If you are using Creative Commons Licenses in your DSpace submission process, you will need to run the 1.5.x to 1.6.x database upgrade script again. In 1.6.0 the improper mime-type was being assigned to all CC Licenses. This has now been resolved, and rerunning the upgrade script will now assign the proper mime-type to all existing CC Licenses in your DSpace installation. NOTE: You will receive messages that most of the script additions already exist. This is normal, and nothing to be worried about.
  10. *Generate Browse and Search Indexes*. Though there are not any database changes in the 1.6 to 1.6.1 release, it makes good policy to rebuild your search and browse indexes when upgrading to a new release. To do this, run the following command from your DSpace install directory (as the dspace user):_\[dspace\]/bin/dspace index-init_
  11. *Deploy Web Applications*. 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/_
  12. Restart servlet. Now restart your Tomcat/Jetty/Resin server program and test out the upgrade.

Upgrading from 1.5.x to 1.6.x

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.6. Whenever you see these path references, be sure to replace them with the actual path names on your local system.

  1. Backup Your DSpace. First, and foremost, make a complete backup of your system, including:
  2. Download DSpace 1.6.x Retrieve the new DSpace 1.6.x source code either as a download from DSpace.org or check it out directly from the SVN code repository. If you downloaded DSpace do not unpack it on top of your existing installation. Refer to Installation Instructions, Step 3 for unpacking directives.
  3. Stop Tomcat. Take down your servlet container. For Tomcat, use the $CATALINA/shutdown.sh script. (Many installations will have a startup/shutdown script in the /etc/init.d or /etc/rc.d directories.
  4. 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. These are housed in one of the following places:
  5. Update Configuration Files. Some of the parameters have change and some are new. Changes will be noted below:
  6. 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, 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.
  7. Update the database. The database schema needs to be updated to accommodate changes to the database. SQL files contain the relevant updates are provided. Please note that if you have made any local customizations to the database schema, you should consult these updates and make sure they will work for you.
  8. Update DSpace. 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 -Dconfig=[dspace]/config/dspace.cfg update
  9. *Update Registry for the CC License.* If you use the CC License, an incorrect mime-type type is being assigned. You will need to run the following step: \_dspace\]/bin/dspace registry-loader \-bitstream \[dspace\]/etc/upgrades/15-16/new-bitstream-formats.xml _
  10. *Generate Browse and Search Indexes*. It makes good policy to rebuild your search and browse indexes when upgrading to a new release. Almost every release has database changes and indexes can be affected by this. In the DSpace 1.6 release there is Authority Control features and those will need the indexes to be regenerated. To do this, run the following command from your DSpace install directory (as the dspace user):_\[dspace\]/bin/dspace index-init_
  11. *Deploy Web Applications*. 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/_
  12. Restart servlet. Now restart your Tomcat/Jetty/Resin server program and test out the upgrade.
  13. Rolling Log Appender Upgrade. You will want to upgrade your logs to the new format to use the SOLR Statistics now included with DSpace. While the commands for this are found in Chapter 8, here is the steps needed to be performed.
    [dspace]/bin/dspace stats-log-converter -i input file name -o output file name -m (if you have more than one dspace.log file)
    [dspace]/bin/dspace stats-log-importer -i input file name (probably the output name from above) -m
    
    The user is highly recommend to see the System Administration : DSpace Log Converter documentation.

Upgrading From 1.5 or 1.5.1 to 1.5.2

The changes in DSpace 1.5.2 do not include any database schema upgrades, and the upgrade should be straightforward.

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.

  1. Backup your DSpace First and foremost, make a complete backup of your system, including:
  2. Download DSpace 1.5.2 Get the new DSpace 1.5.2 source code either as a download from DSpace.org 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 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.2-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. *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.
  6. *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
    
  7. *Update configuration files* This ant target preserves existing files in _\[dspace\]/config _ and will copy any new configuration files in place. If an existing file prevents copying the new file in place, the new file will have the suffix \_.new_, for example _\[dspace\]/local/dspace.cfg.new_. Note: there is also a configuration option _\-Doverwrite=true_ which will instead copy the conflicting target files to \*.old suffixes and overwrite target file then with the new file (essentially the opposite) this is beneficial for developers and those who use the _\[dspace-source\]/dspace/config_ to maintain their changes. 
    cd [dspace-source]/dspace/target/dspace-1.5-build.dir/
    ant -Dconfig=[dspace]/config/dspace.cfg update_configs
    
    You must then verify that you've merged and differenced in the _\[dspace\]/config/\*_{*}_/_{*}_.new_ files into your configuration. Some of the new parameters you should look out for in dspace.cfg include:
  8. Restart Tomcat Restart your servlet container, for Tomcat use the bin/startup.sh script.

Upgrading From 1.4.2 to 1.5

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.

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.

  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 = 2005{_}{_}start.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.

Upgrading From 1.4.1 to 1.4.2

See Upgrading From 1.4 to 1.4.x; the same instructions apply.

Upgrading From 1.4 to 1.4.x

The changes in 1.4.x releases are only code and configuration changes so the update is simply a matter of rebuilding the wars and slight changes to your config file.

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

  1. Get the new DSpace 1.4.x source code from the DSpace page on SourceForge and unpack it somewhere. Do not unpack it on top of your existing installation!!
  2. Copy the PostgreSQL driver JAR to the source tree. For example:
    cd  [dspace]/lib
    cp postgresql.jar  [dspace-1.4.x-source]/lib
    
  3. *Note:* Licensing conditions for the _handle.jar_ file have changed. As a result, the latest version of the _handle.jar_ file is not included in this distribution. It is recommended you read the [new license conditions|http://www.handle.net/upgrade_6-2_DSpace.html|new license conditions] and decide whether you wish to update your installation's _handle.jar_. If you decide to update, you should replace the existing _handle.jar_ in _\[dspace-1.4.x-source\]_/lib with the new version.
  4. Take down Tomcat (or whichever servlet container you're using).
  5. A new configuration item webui.html.max-depth-guess has been added to avoid infinite URL spaces. Add the following to the dspace.cfg file:
    #### Multi-file HTML document/site settings #####
    #
    # When serving up composite HTML items, how deep can the request be
    	for us to
    # serve up a file with the same name?
    #
    # e.g. if we receive a request for "foo/bar/index.html"
    # and we have a bitstream called just "index.html"
    # we will serve up that bitstream for the request if
    	webui.html.max-depth-guess
    # is 2 or greater.  If webui.html.max-depth-guess is 1 or less, we
    	would not
    # serve that bitstream, as the depth of the file is greater.
    #
    # If webui.html.max-depth-guess is zero, the request filename and
    	path must
    # always exactly match the bitstream name.  Default value is 3.
    #
    webui.html.max-depth-guess = 3
    
    If webui.html.max-depth-guess is not present in dspace.cfg the default value is used. If archiving entire web sites or deeply nested HTML documents it is advisable to change the default to a higher value more suitable for these types of materials.
  6. Your 'localized' JSPs (those in jsp/local) now need to be maintained in the _source_ directory. If you have locally modified JSPs in your _\[dspace\]/jsp/local_ directory, you will need to merge the changes in the new 1.4.x versions into your locally modified ones. You can use the _diff_ command to compare your JSPs against the 1.4.x versions to do this. You can also check against the [DSpace CVS|http://dspace.cvs.sourceforge.net/dspace/].
  7. In _\[dspace-1.4.x-source\]_ run: 
    ant -Dconfig= [dspace]/config/dspace.cfg update
    
  8. Copy the _.war_ Web application files in _\[dspace-1.4.x-source\]/build_ to the _webapps_ sub-directory of your servlet container (e.g. Tomcat). e.g.: 
    cp  [dspace-1.4.x-source]/build/*.war
    	[tomcat]/webapps
    
    If you're using Tomcat, you need to delete the directories corresponding to the old _.war_ files. For example, if _dspace.war_ is installed in _\[tomcat\]/webapps/dspace.war_, you should delete the _\[tomcat\]/webapps/dspace_ directory. Otherwise, Tomcat will continue to use the old code in that directory.
  9. Restart Tomcat.

Upgrading From 1.3.2 to 1.4.x

  1. First and foremost, make a complete backup of your system, including:
  2. Download the latest DSpace 1.4.x source bundle and unpack it in a suitable location (not over your existing DSpace installation or source tree!)
  3. Copy the PostgreSQL driver JAR to the source tree. For example:
    cd  [dspace]/lib
    cp postgresql.jar  [dspace-1.4.x-source]/lib
    
  4. *Note:* Licensing conditions for the _handle.jar_ file have changed. As a result, the latest version of the _handle.jar_ file is not included in this distribution. It is recommended you read the [new license conditions|http://www.handle.net/upgrade_6-2_DSpace.html|new license conditions] and decide whether you wish to update your installation's _handle.jar_. If you decide to update, you should replace the existing _handle.jar_ in _\[dspace-1.4.x-source\]_/lib with the new version.
  5. Take down Tomcat (or whichever servlet container you're using).
  6. Your DSpace configuration will need some updating:
  7. Your 'localized' JSPs (those in jsp/local) now need to be maintained in the _source_ directory. If you have locally modified JSPs in your _\[dspace\]/jsp/local_ directory, you will need to merge the changes in the new 1.4.x versions into your locally modified ones. You can use the _diff_ command to compare your JSPs against the 1.4.x versions to do this. You can also check against the [DSpace CVS|http://dspace.cvs.sourceforge.net/dspace/|DSpace CVS].
  8. In _\[dspace-1.4.x-source\]_ run: 
    ant -Dconfig= [dspace]/config/dspace.cfg update
    
  9. The database schema needs updating. SQL files containing the relevant file are provided. If you've modified the schema locally, you may need to check over this and make alterations.
  10. Rebuild the search indexes: _\[dspace\]/bin/index-all_
  11. Copy the _.war_ Web application files in _\[dspace-1.4-source\]/build_ to the _webapps_ sub-directory of your servlet container (e.g. Tomcat). e.g.: 
    cp  [dspace-1.4-source]/build/*.war
    	[tomcat]/webapps
    
    If you're using Tomcat, you need to delete the directories corresponding to the old _.war_ files. For example, if _dspace.war_ is installed in _\[tomcat\]/webapps/dspace.war_, you should delete the _\[tomcat\]/webapps/dspace_ directory. Otherwise, Tomcat will continue to use the old code in that directory.
  12. Restart Tomcat.