Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

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.

...

Info
titleIf you are upgrading across multiple versions

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 Upgrading From 1.6.x to 1.7.x followed by those detailed in #Upgrading from Upgrading From 1.7.x to 1.8.x.

Table of Contents
Children Display

Upgrading from 1.7.x to 1.8.x

Wiki Markup
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.

Note
titleChanges to the DSpace 1.8 Upgrade / Configuration Process

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

  • Wiki Markup
    *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.
    • Wiki Markup
      [Authentication Configurations|Authentication Plugins] are now in {{\[dspace\]/config/modules/authenticate*.cfg}} files
    • Wiki Markup
      [Batch Metadata Editing Configurations|Batch Metadata Editing Configuration] are now in the {{\[dspace\]/config/modules/bulkedit.cfg}} file
    • Wiki Markup
      [Discovery Configurations|Discovery] are now in the {{\[dspace\]/config/modules/discovery.cfg}} file
    • Wiki Markup
      [OAI-PMH / OAI-ORE Configurations|OAI] are now in the {{\[dspace\]/config/modules/oai.cfg}} file
    • Wiki Markup
      [Solr Statistics Configurations|DSpace Statistics] are now in the {{\[dspace\]/config/modules/solr-statistics.cfg}} file
    • Wiki Markup
      [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
    • Wiki Markup
      *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:

  • Database: Make a snapshot/dump of the database. For the PostgreSQL database use Postgres' pg_dump command. For example:
    Code Block
    pg_dump -U [database-user] -f [backup-file-location] [database-name]
  • Wiki Markup
    Assetstore: Backup the directory ({{\[dspace\]/assetstore}} by default, and any other assetstores configured in the {{\[dspace\]/config/dspace.cfg}} "assetstore.dir" and "assetstore.dir.#" settings)
  • Wiki Markup
    Configuration: Backup the entire directory content of {{\[dspace\]/config}}.
  • Customizations: If you have custom code, such as themes, modifications, or custom scripts, you will want to back them up to a safe location.

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:
    • Wiki Markup
      JSPUI modifications: {{\[dspace-source\]/dspace/modules/jspui/src/main/webapp/}}
    • Wiki Markup
      XMLUI modifications: {{\[dspace-source\]/dspace/modules/xmlui/src/main/webapp/}}
    • Wiki Markup
      Config modifications: {{\[dspace\]/config}}
  3. Build DSpace. Run the following commands to compile DSpace:
    No Format
    cd [dspace-source]/dspace/
    mvn -U clean package
    Wiki Markup
    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:
      Code Block
      
      cd [dspace-source]/dspace/target/dspace-[version]-build.dir
      ant -Dconfig=[dspace]/config/dspace.cfg update
      
      Note
      titleChanges to the behavior of the 'ant update' script

      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.
      Warning
      titleBackup Your Database First

      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. Wiki Markup
        PostgreSQL: \[dspace-source\]/dspace/etc/postgres/database_schema_17-18.sql
      2. Wiki Markup
        Oracle: \[dspace-source\]/dspace/etc/oracle/database_schema_17-18.sql
  6. Update your DSpace Configurations.
    1. Wiki Markup
      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):
    Code Block
    
    [dspace]/bin/dspace index-init
    
  8. Wiki Markup
    *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):
    Code Block
    
    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

Warning
titleBackup Your statistics data first

Wiki Markup
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.

Code Block

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

Upgrading from 1.7 to 1.7.x

Wiki Markup
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:
    • Wiki Markup
      JSPUI modifications: {{\[dspace-source\]/dspace/modules/jspui/src/main/webapp/}}
    • Wiki Markup
      XMLUI modifications: {{\[dspace-source\]/dspace/modules/xmlui/src/main/webapp/}}
    • Wiki Markup
      Config modifications: {{\[dspace\]/config}}
  3. Build DSpace. Run the following commands to compile DSpace:
    No Format
    cd [dspace-source]/dspace/
    mvn -U clean package
    Wiki Markup
    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:
    • A snapshot of the database. To have a "snapshot" of the PostgreSQL database use Postgres' pg_dump command.
    • Wiki Markup
      The asset store ({{\[dspace\]/assetstore}} by default, and any other assetstores configured in the {{\[dspace\]/config/dspace.cfg}} "assetstore.dir" and "assetstore.dir.#" settings)
    • Your configuration files and customizations to DSpace (including any customized scripts).
  6. Update DSpace. Update the DSpace installed directory with the new code and libraries. Issue the following commands:
    Code Block
    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):
    Code Block
    [dspace]/bin/dspace index-init
  8. Wiki Markup
    *Deploy Web Applications*. Copy the web applications files from your {{\[dspace\]/webapps}} directory to the subdirectory of your servlet container (e.g. tomcat): 
    Code Block
    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

Wiki Markup
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.

Info

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

...

  • A snapshot of the database. To have a "snapshot" of the PostgreSQL database, you need to shut it down during the backup. You should also have your regular PostgreSQL Backup output (using Postgres' pg_dump command).
  • Wiki Markup
    The asset store ({{\[dspace\]/assetstore}} by default)
  • Your configuration files and customizations to DSpace (including any customized scripts).

...

  • Wiki Markup
    JSPUI modifications: {{\[dspace-source\]/dspace/modules/jspui/src/main/webapp/}}
  • Wiki Markup
    XMLUI modifications: {{\[dspace-source\]/dspace/modules/xmlui/src/main/webapp/}}

...

  • *CORRECTION*  There was a missing hyphen "-" in the property key for mail character set:
    Code Block
    # Set the default mail character set. This may be over ridden by providing a line
    # inside the email template "charset: <encoding>", otherwise this default is used.
    #mail.charset = UTF-8
  • *CORRECTION* This was moved from the end of the solr configuration section to just under Logging Configurations:
    Code Block
    # If enabled, the logging and the solr statistics system will look for
    # an X-Forward header. If it finds it, it will use this for the user IP Address
    # useProxies = true
  • *CHANGE* The MediaFilter is now able to process Power Point Text Extracter
    Code Block
    #Names of the enabled MediaFilter or FormatFilter plugins
    filter.plugins = PDF Text Extractor, HTML Text Extractor, \
                                     PowerPoint Text Extractor, \
                                     Word Text Extractor, JPEG Thumbnail
    # [To enable Branded Preview]: remove last line above, and uncomment 2 lines below
    #                        Word Text Extractor, JPEG Thumbnail, \
    #                        Branded Preview JPEG
    
    #Assign 'human-understandable' names to each filter
    plugin.named.org.dspace.app.mediafilter.FormatFilter = \
      org.dspace.app.mediafilter.PDFFilter = PDF Text Extractor, \
      org.dspace.app.mediafilter.HTMLFilter = HTML Text Extractor, \
      org.dspace.app.mediafilter.WordFilter = Word Text Extractor, \
      org.dspace.app.mediafilter.PowerPointFilter = PowerPoint Text Extractor, \
      org.dspace.app.mediafilter.JPEGFilter = JPEG Thumbnail, \
      org.dspace.app.mediafilter.BrandedPreviewJPEGFilter = Branded Preview JPEG
    
    #Configure each filter's input format(s)
    filter.org.dspace.app.mediafilter.PDFFilter.inputFormats = Adobe PDF
    filter.org.dspace.app.mediafilter.HTMLFilter.inputFormats = HTML, Text
    filter.org.dspace.app.mediafilter.WordFilter.inputFormats = Microsoft Word
    filter.org.dspace.app.mediafilter.PowerPointFilter.inputFormats = Microsoft Powerpoint, Microsoft Powerpoint XML
    filter.org.dspace.app.mediafilter.JPEGFilter.inputFormats = BMP, GIF, JPEG, image/png
    filter.org.dspace.app.mediafilter.BrandedPreviewJPEGFilter.inputFormats = BMP, GIF, JPEG, image/png
  • *CHANGE* The Crosswalk Plugin Configuration has changed with additional lines. Edit your file accordingly:
    Code Block
    # Crosswalk Plugin Configuration:
    #   The purpose of Crosswalks is to translate an external metadata format to/from
    #   the DSpace Internal Metadata format (DIM) or the DSpace Database.
    #   Crosswalks are often used by one or more Packager plugins (see below).
    plugin.named.org.dspace.content.crosswalk.IngestionCrosswalk = \
      org.dspace.content.crosswalk.AIPDIMCrosswalk = DIM, \
      org.dspace.content.crosswalk.AIPTechMDCrosswalk = AIP-TECHMD, \
      org.dspace.content.crosswalk.PREMISCrosswalk = PREMIS, \
      org.dspace.content.crosswalk.OREIngestionCrosswalk = ore, \
      org.dspace.content.crosswalk.NullIngestionCrosswalk = NIL, \
      org.dspace.content.crosswalk.OAIDCIngestionCrosswalk = dc, \
      org.dspace.content.crosswalk.DIMIngestionCrosswalk = dim, \
      org.dspace.content.crosswalk.METSRightsCrosswalk = METSRIGHTS, \
      org.dspace.content.crosswalk.RoleCrosswalk = DSPACE-ROLES
    
    plugin.selfnamed.org.dspace.content.crosswalk.IngestionCrosswalk = \
      org.dspace.content.crosswalk.XSLTIngestionCrosswalk, \
      org.dspace.content.crosswalk.QDCCrosswalk
    
    plugin.named.org.dspace.content.crosswalk.StreamIngestionCrosswalk = \
      org.dspace.content.crosswalk.NullStreamIngestionCrosswalk = NULLSTREAM, \
      org.dspace.content.crosswalk.CreativeCommonsRDFStreamIngestionCrosswalk = DSPACE_CCRDF, \
      org.dspace.content.crosswalk.LicenseStreamIngestionCrosswalk = DSPACE_DEPLICENSE
    
    plugin.named.org.dspace.content.crosswalk.DisseminationCrosswalk = \
      org.dspace.content.crosswalk.AIPDIMCrosswalk = DIM, \
      org.dspace.content.crosswalk.AIPTechMDCrosswalk = AIP-TECHMD, \
      org.dspace.content.crosswalk.SimpleDCDisseminationCrosswalk = DC, \
      org.dspace.content.crosswalk.SimpleDCDisseminationCrosswalk = dc, \
      org.dspace.content.crosswalk.PREMISCrosswalk = PREMIS, \
      org.dspace.content.crosswalk.METSDisseminationCrosswalk = METS, \
      org.dspace.content.crosswalk.METSDisseminationCrosswalk = mets, \
      org.dspace.content.crosswalk.METSRightsCrosswalk = METSRIGHTS, \
      org.dspace.content.crosswalk.OREDisseminationCrosswalk = ore, \
      org.dspace.content.crosswalk.DIMDisseminationCrosswalk = dim, \
      org.dspace.content.crosswalk.RoleCrosswalk = DSPACE-ROLES
    
  • *NEW*
    Code Block
    plugin.named.org.dspace.content.crosswalk.StreamDisseminationCrosswalk = \
      org.dspace.content.crosswalk.CreativeCommonsRDFStreamDisseminationCrosswalk = DSPACE_CCRDF, \
      org.dspace.content.crosswalk.CreativeCommonsTextStreamDisseminationCrosswalk = DSPACE_CCTEXT, \
      org.dspace.content.crosswalk.LicenseStreamDisseminationCrosswalk = DSPACE_DEPLICENSE
  • *CHANGE* The Packager Plugin Configuration has changed considerably. Carefully revise your configuration file:
    Code Block
    Packager Plugin Configuration:
    #   Configures the ingest and dissemination packages that DSpace supports.
    #   These Ingester and Disseminator classes support a specific package file format
    #   (e.g. METS) which DSpace understands how to import/export.  Each Packager
    #   plugin often will use one (or more) Crosswalk plugins to translate metadata (see above).
    plugin.named.org.dspace.content.packager.PackageDisseminator = \
      org.dspace.content.packager.DSpaceAIPDisseminator = AIP, \
      org.dspace.content.packager.DSpaceMETSDisseminator = METS, \
      org.dspace.content.packager.RoleDisseminator = DSPACE-ROLES
    
    plugin.named.org.dspace.content.packager.PackageIngester = \
      org.dspace.content.packager.DSpaceAIPIngester = AIP, \
      org.dspace.content.packager.PDFPackager  = Adobe PDF, PDF, \
      org.dspace.content.packager.DSpaceMETSIngester = METS, \
      org.dspace.content.packager.RoleIngester = DSPACE-ROLES
    
  • *CHANGE* The Mets Ingester configuration has change and been updated. Carefully edit:
    Code Block
    #### METS ingester configuration:
    # These settings configure how DSpace will ingest a METS-based package
    
    # Configures the METS-specific package ingesters (defined above)
    # 'default' settings are specified by 'default' key
    
    # Default Option to save METS manifest in the item: (default is false)
    mets.default.ingest.preserveManifest = false
    
    # Default Option to make use of collection templates when using the METS ingester (default is false)
    mets.default.ingest.useCollectionTemplate = false
    
    # Default crosswalk mappings
    # Maps a METS 'mdtype' value to a DSpace crosswalk for processing.
    # When the 'mdtype' value is same as the name of a crosswalk, that crosswalk
    # will be called automatically (e.g. mdtype='PREMIS' calls the crosswalk named
    # 'PREMIS', unless specified differently in below mapping)
    # Format is 'mets.default.ingest.crosswalk.<mdType> = <DSpace-crosswalk-name>'
    mets.default.ingest.crosswalk.DC = QDC
    mets.default.ingest.crosswalk.DSpaceDepositLicense = DSPACE_DEPLICENSE
    mets.default.ingest.crosswalk.Creative\ Commons = DSPACE_CCRDF
    mets.default.ingest.crosswalk.CreativeCommonsRDF = DSPACE_CCRDF
    mets.default.ingest.crosswalk.CreativeCommonsText = NULLSTREAM
    
    # Locally cached copies of METS schema documents to save time on ingest.  This
    # will often speed up validation & ingest significantly.  Before enabling
    # these settings, you must manually cache all METS schemas in
    # [dspace]/config/schemas/ (does not exist by default).  Most schema documents
    # can be found on the http://www.loc.gov/ website.
    # Enable the below settings to pull these *.xsd files from your local cache.
    # (Setting format: mets.xsd.<abbreviation> = <namespace> <local-file-name>)
    #mets.xsd.mets = http://www.loc.gov/METS/ mets.xsd
    #mets.xsd.xlink = http://www.w3.org/1999/xlink xlink.xsd
    #mets.xsd.mods = http://www.loc.gov/mods/v3 mods.xsd
    #mets.xsd.xml = http://www.w3.org/XML/1998/namespace xml.xsd
    #mets.xsd.dc = http://purl.org/dc/elements/1.1/ dc.xsd
    #mets.xsd.dcterms = http://purl.org/dc/terms/ dcterms.xsd
    #mets.xsd.premis = http://www.loc.gov/standards/premis PREMIS.xsd
    #mets.xsd.premisObject = http://www.loc.gov/standards/premis PREMIS-Object.xsd
    #mets.xsd.premisEvent = http://www.loc.gov/standards/premis PREMIS-Event.xsd
    #mets.xsd.premisAgent = http://www.loc.gov/standards/premis PREMIS-Agent.xsd
    #mets.xsd.premisRights = http://www.loc.gov/standards/premis PREMIS-Rights.xsd
    
    #### AIP Ingester & Disseminator Configuration
    # These settings configure how DSpace will ingest/export its own
    # AIP (Archival Information Package) format for backups and restores
    # (Please note, as the DSpace AIP format is also METS based, it will also
    # use many of the 'METS ingester configuration' settings directly above)
    
    # AIP-specific ingestion crosswalk mappings
    # (overrides 'mets.default.ingest.crosswalk' settings)
    # Format is 'mets.dspaceAIP.ingest.crosswalk.<mdType> = <DSpace-crosswalk-name>'
    mets.dspaceAIP.ingest.crosswalk.DSpaceDepositLicense = NULLSTREAM
    mets.dspaceAIP.ingest.crosswalk.CreativeCommonsRDF = NULLSTREAM
    mets.dspaceAIP.ingest.crosswalk.CreativeCommonsText = NULLSTREAM
    
    # Create EPerson if necessary for Submitter when ingesting AIP (default=false)
    # (by default, EPerson creation is already handled by 'DSPACE-ROLES' Crosswalk)
    #mets.dspaceAIP.ingest.createSubmitter = false
    
    ## AIP-specific Disseminator settings
    # These settings allow you to customize which metadata formats are exported in AIPs
    
    # Technical metadata in AIP (exported to METS <techMD> section)
    # Format is <label-for-METS>:<DSpace-crosswalk-name> [, ...] (label is optional)
    # If unspecfied, defaults to "PREMIS"
    aip.disseminate.techMD = PREMIS, DSPACE-ROLES
    
    # Source metadata in AIP (exported to METS <sourceMD> section)
    # Format is <label-for-METS>:<DSpace-crosswalk-name> [, ...] (label is optional)
    # If unspecfied, defaults to "AIP-TECHMD"
    aip.disseminate.sourceMD = AIP-TECHMD
    
    # Preservation metadata in AIP (exported to METS <digipovMD> section)
    # Format is <label-for-METS>:<DSpace-crosswalk-name> [, ...] (label is optional)
    # If unspecified, defaults to nothing in <digiprovMD> section
    #aip.disseminate.digiprovMD =
    
    # Rights metadata in AIP (exported to METS <rightsMD> section)
    # Format is <label-for-METS>:<DSpace-crosswalk-name> [, ...] (label is optional)
    # If unspecified, default to adding all Licenses (CC and Deposit licenses),
    # as well as METSRights information
    aip.disseminate.rightsMD = DSpaceDepositLicense:DSPACE_DEPLICENSE, \
        CreativeCommonsRDF:DSPACE_CCRDF, CreativeCommonsText:DSPACE_CCTEXT, METSRIGHTS
    
    # Descriptive metadata in AIP (exported to METS <dmdSec> section)
    # Format is <label-for-METS>:<DSpace-crosswalk-name> [, ...] (label is optional)
    # If unspecfied, defaults to "MODS, DIM"
    aip.disseminate.dmd = MODS, DIM
  • *NEW* A new property has been added to control the discovery index for the Event System Configuration:
    Code Block
    # consumer to maintain the discovery index
    event.consumer.discovery.class = org.dspace.discovery.IndexEventConsumer
    event.consumer.discovery.filters = Community|Collection|Item|Bundle+Add|Create|Modify|Modify_Metadata|Delete|Remove
  • *NEW* License bundle display is now configurable. You are able to either display or suppress.
    Code Block
    # whether to display the contents of the licence bundle (often just the deposit
    # licence in standard DSpace installation
    webui.licence_bundle.show = false
  • *CORRECTION* Thumbnail generation. The width and height of generated thumbnails had a missing equal sign.
    Code Block
    # maximum width and height of generated thumbnails
    thumbnail.maxwidth  = 80
    thumbnail.maxheight = 80
  • *CORRECTION and ADDITION* Authority Control Settings have changed. Formerly called ChoiceAuthority, it is now referred to as DCInputAuthority.
    Code Block
    ## The DCInputAuthority plugin is automatically configured with every
    ## value-pairs element in input-forms.xml, namely:
    ##   common_identifiers, common_types, common_iso_languages
    ##
    ## The DSpaceControlledVocabulary plugin is automatically configured
    ## with every *.xml file in [dspace]/config/controlled-vocabularies,
    ## and creates a plugin instance for each, using base filename as the name.
    ## eg: nsi, srsc.
    ## Each DSpaceControlledVocabulary plugin comes with three configuration options:
    # vocabulary.plugin._plugin_.hierarchy.store = <true|false>    # default: true
    # vocabulary.plugin._plugin_.hierarchy.suggest = <true|false>  # default: true
    # vocabulary.plugin._plugin_.delimiter = "<string>"            # default: "::"
    ##
    ## An example using "srsc" can be found later in this section
    
    #plugin.selfnamed.org.dspace.content.authority.ChoiceAuthority = \
    # org.dspace.content.authority.DCInputAuthority, \
    # org.dspace.content.authority.DSpaceControlledVocabulary
    
  • *NEW* Controls autocomplete for authority control
    Code Block
    ## demo: subject code autocomplete, using srsc as authority
    ## (DSpaceControlledVocabulary plugin must be enabled)
    #choices.plugin.dc.subject = srsc
    #choices.presentation.dc.subject = select
    #vocabulary.plugin.srsc.hierarchy.store = true
    #vocabulary.plugin.srsc.hierarchy.suggest = true
    #vocabulary.plugin.srsc.delimiter = "::"
    
  • *NEW* You are now able to order your bitstreams by sequence id or file name.
    Code Block
    #### Ordering of bitstreams ####
    
    ## Specify the ordering that bitstreams are listed.
    ##
    ## Bitstream field to sort on.  Values: sequence_id or name. Default: sequence_id
    #webui.bitstream.order.field = "sequence_id"
    
    ## Direction of sorting order. Values: DESC or ASC. Default: ASC
    #webui.bitstream.order.direction = ASC
    
  • *NEW* DSpace now includes a metadata mapping feature that makes repository content discoverable by Google Scholar:
    Code Block
    
    ##### Google Scholar Metadata Configuration #####
    google-metadata.config = ${dspace.dir}/config/crosswalks/google-metadata.properties
    google-metadata.enable = true
    
  • *NEW* XMLUI is now able to concatenate CSS, JS and JSON files:
    Code Block
    
    # Enabling this property will concatenate CSS, JS and JSON files where possible.
    # CSS files can be concatenated if multiple CSS files with the same media attribute
    # are used in the same page. Links to the CSS files are automatically referring to the
    # concatenated resulting CSS file.
    # The theme sitemap should be updated to use the ConcatenationReader for all js, css and json
    # files before enabling this property.
    #xmlui.theme.enableConcatenation = false
    
    # Enabling this property will minify CSS, JS and JSON files where possible.
    # The theme sitemap should be updated to use the ConcatenationReader for all js, css and json
    # files before enabling this property.
    #xmlui.theme.enableMinification = false
    
  • *NEW* XMLUI Mirage Theme. This is a new theme with it's own configuration:
    Code Block
    
    ### Setings for Item lists in Mirage theme ###
    # What should the emphasis be in the display of item lists?
    # Possible values : 'file', 'metadata'. If your repository is
    # used mainly for scientific papers 'metadata' is probably the
    # best way. If you have a lot of images and other files 'file'
    # will be the best starting point
    # (metdata is the default value if this option is not specified)
    #xmlui.theme.mirage.item-list.emphasis = file
  • *NEW* OAI Response default change.
    Code Block
    # DSpace by default uses 100 records as the limit for the oai responses.
    # This can be altered by enabling the oai.response.max-records parameter
    # and setting the desired amount of results.
    oai.response.max-records = 100
  • *CHANGE* EPDCX property key has been renamed.
    Code Block
    # Define the metadata type EPDCX (EPrints DC XML)
    # to be handled by the SWORD crosswalk configuration
    #
    mets.default.ingest.crosswalk.EPDCX = SWORD
    
  • *NEW* New SOLR Statistic Property keys:
    Code Block
    
    # Timeout for the resolver in the dns lookup
    # Time in milliseconds, defaults to 200 for backward compatibility
    # Your systems default is usually set in /etc/resolv.conf and varies
    # between 2 to 5 seconds, to high a value might result in solr exhausting
    # your connection pool
    solr.resolver.timeout = 200
    
    ----
    
    # Enable/disable logging of spiders in solr statistics.
    # If false, and IP matches an address in solr.spiderips.urls, event is not logged.
    # If true, event will be logged with the 'isBot' field set to true
    # (see solr.statistics.query.filter.* for query filter options)
    # Default value is true.
    #solr.statistics.logBots = true

...

Code Block
cd [dspace-source]/dspace/
mvn -U clean package
Wiki Markup
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.

...

Code Block
cd [dspace-source]/dspace/target/dspace-[version]-build.dir
ant -Dconfig=[dspace]/config/dspace.cfg update

...

  • For PostgreSQL:
    Code Block
    psql -U [dspace-user] -f [dspace-source]/dspace/etc/postgres/database_schema_16-17.sql [database name]
    (Your database name is by default 'dspace'). Example:
    Code Block
    psql -U dspace -f [dspace-source]/dspace/etc/postgres/database_schema_16-17.sql dspace
  • For Oracle: Execute the upgrade script, e.g. with sqlplus, recording the output:
    1. Wiki Markup
      Start SQL*Plus with {{sqlplus \[connect args\]}}
    2. Record the output: SQL> spool 'upgrade.lst'
    3. Wiki Markup
      Run the upgrade script {{SQL> @\[dspace-source\]/dspace/etc/oracle/database_schema_16-17.sql}}
    4. Turn off recording of output: SQL> spool off

...

Code Block
[dspace]/bin/dspace index-init

...

Wiki Markup
*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: 
Code Block
cp -R [dspace]/webapps/* [tomcat]/webapps/

...