Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

...

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

...

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.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:
    • 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 pg_dump commands). _
    • Wiki Markup
      The asset store (_\[dspace\]/assetstore_ by default)
    • Your configuration files and customizations to DSpace (including any customized scripts).
  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 Chapter 3.3.3 Installation, 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. Wiki Markup
    *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:JSPUI modifications: _\[dspace-source\]/dspace/modules/jspui/src/main/webapp/_XMLUI modifications: \_\[dspace-source\]/dspace/modules/xmlui/src/main/webapp_
  5. Update Configuration Files. Some of the parameters have change and some are new. Changes will be noted below:
    • **CHANGE** The base url and oai urls property keys are set differently
      Code Block
      # DSpace host name - should match base URL.  Do not include port number
      dspace.hostname = localhost
      
      # DSpace base host URL.  Include port number etc.
      dspace.baseUrl = http://localhost:8080
      
      # DSpace base URL.  Include port number etc., but NOT trailing slash
      # Change to xmlui if you wish to use the xmlui as the default, or remove
      # "/jspui" and set webapp of your choice as the "ROOT" webapp in
      # the servlet engine.
      dspace.url = ${dspace.baseUrl}/xmlui
      
      # The base URL of the OAI webapp (do not include /request).
      dspace.oai.url = ${dspace.baseUrl}/oai
    • **NEW** New email options (Add these at the end of the "Email Settings" sub-section):
      Code Block
      # A comma separated list of hostnames that are allowed to refer browsers to
      # email forms. Default behavior is to accept referrals only from
      # dspace.hostname
      #mail.allowed.referrers = localhost
      
      # Pass extra settings to the Java mail library. Comma separated, equals sign
      # between the key and the value.
      #mail.extraproperties = mail.smtp.socketFactory.port=465, \
      #                mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory, \
      #                mail.smtp.socketFactory.fallback=false
      
      # An option is added to disable the mailserver. By default, this property is
      # set to false. By setting mail.server.disabled = true, DSpace will not send
      # out emails. It will instead log the subject of the email which should have
      # been sent. This is especially useful for development and test environments
      # where production data is used when testing functionality.
      #mail.server.disabled = false
      
    • **NEW**New Authorization levels and parameters. See the Configuration documentation, "Delegation Administration" section for further information.
      Code Block
      ##### Authorization system configuration - Delegate ADMIN #####
      
      # COMMUNITY ADMIN configuration
      # subcommunities and collections
      #core.authorization.community-admin.create-subelement = true
      #core.authorization.community-admin.delete-subelement = true
      # his community
      #core.authorization.community-admin.policies = true
      #core.authorization.community-admin.admin-group = true
      # collections in his community
      #core.authorization.community-admin.collection.policies = true
      #core.authorization.community-admin.collection.template-item = true
      #core.authorization.community-admin.collection.submitters = true
      #core.authorization.community-admin.collection.workflows = true
      #core.authorization.community-admin.collection.admin-group = true
      # item owned by collections in his community
      #core.authorization.community-admin.item.delete = true
      #core.authorization.community-admin.item.withdraw = true
      #core.authorization.community-admin.item.reinstatiate = true
      #core.authorization.community-admin.item.policies = true
      # also bundle...
      #core.authorization.community-admin.item.create-bitstream = true
      #core.authorization.community-admin.item.delete-bitstream = true
      #core.authorization.community-admin.item-admin.cc-license = true
      
      # COLLECTION ADMIN
      #core.authorization.collection-admin.policies = true
      #core.authorization.collection-admin.template-item = true
      #core.authorization.collection-admin.submitters = true
      #core.authorization.collection-admin.workflows = true
      #core.authorization.collection-admin.admin-group = true
      # item owned by his collection
      #core.authorization.collection-admin.item.delete = true
      #core.authorization.collection-admin.item.withdraw = true
      #core.authorization.collection-admin.item.reinstatiate = true
      #core.authorization.collection-admin.item.policies = true
      # also bundle...
      #core.authorization.collection-admin.item.create-bitstream = true
      #core.authorization.collection-admin.item.delete-bitstream = true
      #core.authorization.collection-admin.item-admin.cc-license = true
      
      # ITEM ADMIN
      #core.authorization.item-admin.policies = true
      # also bundle...
      #core.authorization.item-admin.create-bitstream = true
      #core.authorization.item-admin.delete-bitstream = true
      #core.authorization.item-admin.cc-license = true
    • **CHANGE** METS ingester has been revised. (Modify In "Crosswalk and Packager Plugin Settings")
      Code Block
      # Option to make use of collection templates when using the METS ingester (default is false)
      mets.submission.useCollectionTemplate = false
      
      # Crosswalk Plugins:
      plugin.named.org.dspace.content.crosswalk.IngestionCrosswalk = \
        org.dspace.content.crosswalk.PREMISCrosswalk = PREMIS \
        org.dspace.content.crosswalk.OREIngestionCrosswalk = ore \
        org.dspace.content.crosswalk.NullIngestionCrosswalk = NIL \
        org.dspace.content.crosswalk.QDCCrosswalk = qdc \
        org.dspace.content.crosswalk.OAIDCIngestionCrosswalk = dc \
        org.dspace.content.crosswalk.DIMIngestionCrosswalk = dim
      
      plugin.selfnamed.org.dspace.content.crosswalk.IngestionCrosswalk = \
        org.dspace.content.crosswalk.XSLTIngestionCrosswalk
      
      plugin.named.org.dspace.content.crosswalk.DisseminationCrosswalk = \
        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.OREDisseminationCrosswalk = ore \
        org.dspace.content.crosswalk.QDCCrosswalk = qdc \
        org.dspace.content.crosswalk.DIMDisseminationCrosswalk = dim
    • **CHANGE** Event Settings have had the following revision with the addition of 'harvester' (modify in "Event System Configuration"):
      Code Block
      #### 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, harvester
      also:
      Code Block
      # consumer to clean up harvesting data
      event.consumer.harvester.class = org.dspace.harvest.HarvestConsumer
      event.consumer.harvester.filters = Item+Delete
      
    • **NEW** New option for the Embargo of Thesis and Dissertations.
      Code Block
      #### Embargo Settings ####
      # DC metadata field to hold the user-supplied embargo terms
      embargo.field.terms = SCHEMA.ELEMENT.QUALIFIER
      
      # DC metadata field to hold computed "lift date" of embargo
      embargo.field.lift = SCHEMA.ELEMENT.QUALIFIER
      
      # string in terms field to indicate indefinite embargo
      embargo.terms.open = forever
      
      # implementation of embargo setter plugin--replace with local implementation if
      # applicable
      plugin.single.org.dspace.embargo.EmbargoSetter = \
      				org.dspace.embargo.DefaultEmbargoSetter
      
      # implementation of embargo lifter plugin--replace with local implementation if
      # applicable
      plugin.single.org.dspace.embargo.EmbargoLifter = \
      				org.dspace.embargo.DefaultEmbargoLifter
    • **NEW** New option for using the Batch Editing capabilities. See Batch Metadata Editing Configuration and also System Administration : Batch Metadata Editing
      Code Block
      ### Bulk metadata editor settings ###
      # The delimiter used to separate values within a single field (defaults to a double pipe ||)
      # bulkedit.valueseparator = ||
      
      # The delimiter used to separate fields (defaults to a comma for CSV)
      # bulkedit.fieldseparator = ,
      
      # A hard limit of the number of items allowed to be edited in one go in the UI
      # (does not apply to the command line version)
      # bulkedit.gui-item-limit = 20
      
      # Metadata elements to exclude when exporting via the user interfaces, or when
      # using the command line version and not using the -a (all) option.
      # bulkedit.ignore-on-export = dc.date.accessioned, dc.date.available, \
      #                             dc.date.updated, dc.description.provenance
    • **NEW** Ability to hide metadata fields is now available. (Look for "JSPUI & XMLUI Configurations" Section)
      Code Block
      ##### Hide Item Metadata Fields  #####
      # Fields named here are hidden in the following places UNLESS the
      # logged-in user is an Administrator:
      #  1. XMLUI metadata XML view, and Item splash pages (long and short views).
      #  2. JSPUI Item splash pages
      #  3. OAI-PMH server, "oai_dc" format.
      #     (NOTE: Other formats are _not_ affected.)
      # To designate a field as hidden, add a property here in the form:
      #    metadata.hide.SCHEMA.ELEMENT.QUALIFIER = true
      #
      # This default configuration hides the dc.description.provenance field,
      # since that usually contains email addresses which ought to be kept
      # private and is mainly of interest to administrators:
      metadata.hide.dc.description.provenance = true
      
    • **NEW**Choice Control and Authority Control options are available (Look for "JSPUI & XMLUI Configurations" Section):
      Code Block
      ## example of authority-controlled browse category--see authority control config
      #webui.browse.index.5 = lcAuthor:metadataAuthority:dc.contributor.author:authority
      
      And also:
      Code Block
      #####  Authority Control Settings  #####
      
      #plugin.named.org.dspace.content.authority.ChoiceAuthority = \
      # org.dspace.content.authority.SampleAuthority = Sample, \
      # org.dspace.content.authority.LCNameAuthority = LCNameAuthority, \
      # org.dspace.content.authority.SHERPARoMEOPublisher = SRPublisher, \
      # org.dspace.content.authority.SHERPARoMEOJournalTitle = SRJournalTitle
      
      ## This ChoiceAuthority plugin is automatically configured with every
      ## value-pairs element in input-forms.xml, namely:
      ##   common_identifiers, common_types, common_iso_languages
      #plugin.selfnamed.org.dspace.content.authority.ChoiceAuthority = \
      # org.dspace.content.authority.DCInputAuthority
      
      ## configure LC Names plugin
      #lcname.url = http://alcme.oclc.org/srw/search/lcnaf
      
      ## configure SHERPA/RoMEO authority plugin
      #sherpa.romeo.url = http://www.sherpa.ac.uk/romeo/api24.php
      
      ##
      ## This sets the default lowest confidence level at which a metadata value is included
      ## in an authority-controlled browse (and search) index.  It is a symbolic
      ## keyword, one of the following values (listed in descending order):
      ##   accepted
      ##   uncertain
      ##   ambiguous
      ##   notfound
      ##   failed
      ##   rejected
      ##   novalue
      ##   unset
      ## See manual or org.dspace.content.authority.Choices source for descriptions.
      authority.minconfidence = ambiguous
      
      ## demo: use LC plugin for author
      #choices.plugin.dc.contributor.author =  LCNameAuthority
      #choices.presentation.dc.contributor.author = lookup
      #authority.controlled.dc.contributor.author = true
      ##
      ## This sets the lowest confidence level at which a metadata value is included
      ## in an authority-controlled browse (and search) index.  It is a symbolic
      ## keyword from the same set as for the default "authority.minconfidence"
      #authority.minconfidence.dc.contributor.author = accepted
      
      
      ## Demo: publisher name lookup through SHERPA/RoMEO:
      #choices.plugin.dc.publisher = SRPublisher
      #choices.presentation.dc.publisher = suggest
      
      ## demo: journal title lookup, with ISSN as authority
      #choices.plugin.dc.title.alternative = SRJournalTitle
      #choices.presentation.dc.title.alternative = suggest
      #authority.controlled.dc.title.alternative = true
      
      ## demo: use choice authority (without authority-control) to restrict dc.type on EditItemMetadata page
      # choices.plugin.dc.type = common_types
      # choices.presentation.dc.type = select
      
      ## demo: same idea for dc.language.iso
      # choices.plugin.dc.language.iso = common_iso_languages
      # choices.presentation.dc.language.iso = select
      
      # Change number of choices shown in the select in Choices lookup popup
      #xmlui.lookup.select.size = 12
    • **REPLACE** RSS Feeds now support Atom 1.0. Replace its previous configuration with the one below:
      Code Block
      #### Syndication Feed (RSS) Settings ######
      
      # enable syndication feeds - links display on community and collection home pages
      # (This setting is not used by XMLUI, as you enable feeds in your theme)
      webui.feed.enable = false
      # number of DSpace items per feed (the most recent submissions)
      webui.feed.items = 4
      # maximum number of feeds in memory cache
      # value of 0 will disable caching
      webui.feed.cache.size = 100
      # number of hours to keep cached feeds before checking currency
      # value of 0 will force a check with each request
      webui.feed.cache.age = 48
      # which syndication formats to offer
      # use one or more (comma-separated) values from list:
      # rss_0.90, rss_0.91, rss_0.92, rss_0.93, rss_0.94, rss_1.0, rss_2.0
      webui.feed.formats = rss_1.0,rss_2.0,atom_1.0
      # URLs returned by the feed will point at the global handle server (e.g. http://hdl.handle.net/123456789/1)
      # Set to true to use local server URLs (i.e. http://myserver.myorg/handle/123456789/1)
      webui.feed.localresolve = false
      
      # Customize each single-value field displayed in the
      # feed information for each item.  Each of
      # the below fields takes a *single* metadata field
      #
      # The form is <schema prefix>.<element>[.<qualifier>|.*]
      webui.feed.item.title = dc.title
      webui.feed.item.date = dc.date.issued
      
      # Customize the metadata fields to show in the feed for each item's description.
      # Elements will be displayed in the order that they are specified here.
      #
      # The form is <schema prefix>.<element>[.<qualifier>|.*][(date)], ...
      #
      # Similar to the item display UI, the name of the field for display
      # in the feed will be drawn from the current UI dictionary,
      # using the key:
      # "metadata.<field>"
      #
      # e.g.   "metadata.dc.title"
      #        "metadata.dc.contributor.author"
      #        "metadata.dc.date.issued"
      webui.feed.item.description = dc.title, dc.contributor.author, \
                     dc.contributor.editor, dc.description.abstract, \
                     dc.description
      # name of field to use for authors (Atom only) - repeatable
      webui.feed.item.author = dc.contributor.author
      
      # Customize the extra namespaced DC elements added to the item (RSS) or entry
      # (Atom) element.  These let you include individual metadata values in a
      # structured format for easy extraction by the recipient, instead of (or in
      # addition to) appending these values to the Description field.
      ## dc:creator value(s)
      #webui.feed.item.dc.creator = dc.contributor.author
      ## dc:date value (may be contradicted by webui.feed.item.date)
      #webui.feed.item.dc.date = dc.date.issued
      ## dc:description (e.g. for a distinct field that is ONLY the abstract)
      #webui.feed.item.dc.description = dc.description.abstract
      
      # Customize the image icon included with the site-wide feeds:
      # Must be an absolute URL, e.g.
      ## webui.feed.logo.url = ${dspace.url}/themes/mysite/images/mysite-logo.png
    • **NEW** Opensearch Feature is new to DSpace
      Code Block
      #### OpenSearch Settings ####
      # NB: for result data formatting, OpenSearch uses Syndication Feed Settings
      # so even if Syndication Feeds are not enabled, they must be configured
      # enable open search
      websvc.opensearch.enable = false
      # context for html request URLs - change only for non-standard servlet mapping
      websvc.opensearch.uicontext = simple-search
      # context for RSS/Atom request URLs - change only for non-standard servlet mapping
      websvc.opensearch.svccontext = open-search/
      # present autodiscovery link in every page head
      websvc.opensearch.autolink = true
      # number of hours to retain results before recalculating
      websvc.opensearch.validity = 48
      # short name used in browsers for search service
      # should be 16 or fewer characters
      websvc.opensearch.shortname = DSpace
      # longer (up to 48 characters) name
      websvc.opensearch.longname = ${dspace.name}
      # brief service description
      websvc.opensearch.description = ${dspace.name} DSpace repository
      # location of favicon for service, if any must be 16X16 pixels
      websvc.opensearch.faviconurl = http://www.dspace.org/images/favicon.ico
      # sample query - should return results
      websvc.opensearch.samplequery = photosynthesis
      # tags used to describe search service
      websvc.opensearch.tags = IR DSpace
      # result formats offered - use 1 or more comma-separated from: html,atom,rss
      # NB: html is required for autodiscovery in browsers to function,
      # and must be the first in the list if present
      websvc.opensearch.formats = html,atom,rss
    • **NEW* *Exposure of METS metadata can be now hidden. (See "OAI-PMH SPECIFIC CONFIGURATIONS" in the dspace.cfg file)
      Code Block
      # When exposing METS/MODS via OAI-PMH all metadata that can be mapped to MODS
      # is exported. This includes description.provenance which can contain personal
      # email addresses and other information not intended for public consumption. To
      # hide this information set the following property to true
      oai.mets.hide-provenance = true
      
    • **NEW* *SWORD has added the following to accept MIME/types. (See "SWORD Specific Configurations" Section)
      Code Block
      # A comma separated list of MIME types that SWORD will accept
      sword.accepts = application/zip
      
    • **NEW* *New OAI Harvesting Configuration settings are now available. (See "OAI Harvesting Configurations"
      Code Block
      #---------------------------------------------------------------#
      #--------------OAI HARVESTING CONFIGURATIONS--------------------#
      #---------------------------------------------------------------#
      # These configs are only used by the OAI-ORE related functions  #
      #---------------------------------------------------------------#
      
      ### Harvester settings
      
      # Crosswalk settings; the {name} value must correspond to a declared ingestion crosswalk
      # harvester.oai.metadataformats.{name} = {namespace},{optional display name}
      harvester.oai.metadataformats.dc = http://www.openarchives.org/OAI/2.0/oai_dc/, Simple Dublin Core
      harvester.oai.metadataformats.qdc = http://purl.org/dc/terms/, Qualified Dublin Core
      harvester.oai.metadataformats.dim = http://www.dspace.org/xmlns/dspace/dim, DSpace Intermediate Metadata
      
      # This field works in much the same way as harvester.oai.metadataformats.PluginName
      # The {name} must correspond to a declared ingestion crosswalk, while the
      # {namespace} must be supported by the target OAI-PMH provider when harvesting content.
      # harvester.oai.oreSerializationFormat.{name} = {namespace}
      
      # Determines whether the harvester scheduling process should be started
      # automatically when the DSpace webapp is deployed.
      # default: false
      harvester.autoStart=false
      
      # Amount of time subtracted from the from argument of the PMH request to account
      # for the time taken to negotiate a connection. Measured in seconds. Default value is 120.
      #harvester.timePadding = 120
      
      # How frequently the harvest scheduler checks the remote provider for updates,
      # measured in minutes. The default value is 12 hours (or 720 minutes)
      #harvester.harvestFrequency = 720
      
      # The heartbeat is the frequency at which the harvest scheduler queries the local
      # database to determine if any collections are due for a harvest cycle (based on
      # the harvestFrequency) value. The scheduler is optimized to then sleep until the
      # next collection is actually ready to be harvested. The minHeartbeat and
      # maxHeartbeat are the lower and upper bounds on this timeframe. Measured in seconds.
      # Default minHeartbeat is 30.  Default maxHeartbeat is 3600.
      #harvester.minHeartbeat = 30
      #harvester.maxHeartbeat = 3600
      
      # How many harvest process threads the scheduler can spool up at once. Default value is 3.
      #harvester.maxThreads = 3
      
      # How much time passes before a harvest thread is terminated. The termination process
      # waits for the current item to complete ingest and saves progress made up to that point.
      # Measured in hours. Default value is 24.
      #harvester.threadTimeout = 24
      
      # When harvesting an item that contains an unknown schema or field within a schema what
      # should the harvester do? Either add a new registry item for the field or schema, ignore
      # the specific field or schema (importing everything else about the item), or fail with
      # an error. The default value if undefined is: fail.
      # Possible values: 'fail', 'add', or 'ignore'
      harvester.unknownField  = add
      harvester.unknownSchema = fail
      
      # The webapp responsible for minting the URIs for ORE Resource Maps.
      # If using oai, the dspace.oai.uri config value must be set.
      # The URIs generated for ORE ReMs follow the following convention for both cases.
      # format: [baseURI]/metadata/handle/[theHandle]/ore.xml
      # Default value is oai
      #ore.authoritative.source = oai
      
      # A harvest process will attempt to scan the metadata of the incoming items
      # (dc.identifier.uri field, to be exact) to see if it looks like a handle.
      # If so, it matches the pattern against the values of this parameter.
      # If there is a match the new item is assigned the handle from the metadata value
      # instead of minting a new one. Default value: hdl.handle.net
      #harvester.acceptedHandleServer = hdl.handle.net, handle.myu.edu
      
      # Pattern to reject as an invalid handle prefix (known test string, for example)
      # when attempting to find the handle of harvested items. If there is a match with
      # this config parameter, a new handle will be minted instead. Default value: 123456789.
      #harvester.rejectedHandlePrefix = 123456789, myTestHandle
      						
    • **NEW** SOLR Statistics Configurations. For a little more detailed information regarding the configuration, please refer to DSpace SOLR Statistics Configuration ; or, for installation procedures, refer to Advanced Installation: Dspace Statistics.
      Code Block
      #---------------------------------------------------------------#
      #--------------SOLR STATISTICS CONFIGURATIONS-------------------#
      #---------------------------------------------------------------#
      # These configs are only used by the SOLR interface/webapp to   #
      # track usage statistics.                                       #
      #---------------------------------------------------------------#
      
      ##### Usage Logging #####
      solr.log.server = ${dspace.baseUrl}/solr/statistics
      solr.spidersfile = ${dspace.dir}/config/spiders.txt
      solr.dbfile = ${dspace.dir}/config/GeoLiteCity.dat
      useProxies = true
      
      statistics.items.dc.1=dc.identifier
      statistics.items.dc.2=dc.date.accessioned
      statistics.items.type.1=dcinput
      statistics.items.type.2=date
      statistics.default.start.datepick = 01/01/1977
      
      statistics.item.authorization.admin=true
  6. Build DSpace. Run the following commands to compile DSpace.:
    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 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.
    • Wiki Markup
      For PostgreSQL: {{psql \-U \[dspace-user\] \-f \[dspace-source\]/dspace/etc/postgres/database_schema_15-16.sql \[database name\]}} (Your database name is by default 'dspace'). Example: {{psql \-U dspace \-f /dspace-1.6-1-src-release/dspace/etc/postgres/database_schema_15-16.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_15_16.sql{_}{_}SQL> spool off_
      4. Please note: The final few statements WILL FAIL. That is because you have run some queries and use the results to construct the statements to remove the constraints, manually‚ Oracle doesn't have any easy way to automate this (unless you know PL/SQL). So, look for the comment line beginning:
        Code Block
        "--You need to remove the already in place constraints"
        and follow the instructions in the actual SQL file.
        Refer to the contents of the spool file "upgrade.lst" for
        the output of the queries you'll need.
  8. 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
  9. Wiki Markup
    *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. Wiki Markup
    *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. 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):_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.
    Code Block
    [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.

...

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

...

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

...

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

...

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

...

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

  1. Wiki Markup
    Step one is, of course, to *back up all your data* before proceeding\!\! Include all of the contents of _{{\[dspace\]_}} and the PostgreSQL database in your backup.
  2. Get the new DSpace 1.3.x source code from the DSpace page on SourceForge and unpack it somewhere. Do not unpack it on top of your existing installation!!
  3. Wiki Markup
    Copy the PostgreSQL driver JAR to the source tree. For example: _cd \[dspace\]/lib{_}{_}cp postgresql.jar \[dspace-1.2.2-source\]/lib_
  4. Take down Tomcat (or whichever servlet container you're using).
  5. Wiki Markup
    Remove the old version of _xerces.jar_ from your installation, so it is not inadvertently later used:_rm \[dspace\]/lib/xerces.jar_
  6. Wiki Markup
    Install the new config files by moving _dstat.cfg_ and _dstat.map_ from _\[dspace-1.3.x-source\]/config/_ to _\[dspace\]/config_
  7. Wiki Markup
    You need to add new parameters to your _\[dspace\]/dspace.cfg_:
    Code Block
    ###### Statistical Report Configuration Settings ######
    
    # should the stats be publicly available?  should be set to false if
    	you only
    # want administrators to access the stats, or you do not intend to
    	generate
    # any
    report.public = false
    
    # directory where live reports are stored
    report.dir = /dspace/reports/
    
    
  8. Wiki Markup
    Build and install the updated DSpace 1.3.x code. Go to the _\[dspace-1.3.x-source\]_ directory, and run:_ant \-Dconfig=\[dspace\]/config/dspace.cfg update_
  9. Wiki Markup
    You'll need to make some changes to the database schema in your PostgreSQL database. _\[dspace-1.3.x-source\]/etc/database_schema_12-13.sql_ contains the SQL commands to achieve this. If you've modified the schema locally, you may need to check over this and make alterations.To apply the changes, go to the source directory, and run: _psql \-f etc/database_schema_12-13.sql \[DSpace database name\] \-h localhost_
  10. Customize the stat generating statistics as per the instructions in System Statistical Reports
  11. Wiki Markup
    Initialize the statistics using: _\[dspace\]/bin/stat-initial{_}_\[dspace\]/bin/stat-general{_}_\[dspace\]/bin/stat-report-initial{_}_\[dspace\]/bin/stat-report-general_
  12. Wiki Markup
    Rebuild the search indexes: _\[dspace\]/bin/index-all_
  13. Wiki Markup
    Copy the _.war_ Web application files in _\[dspace-1.3.x-source\]/build_ to the _webapps_ sub-directory of your servlet container (e.g. Tomcat). e.g.:_cp \[dspace-1.3.x-source\]/build/*.war \[tomcat\]/webapps_
  14. Restart Tomcat.

...

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

...

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

...

Wiki Markup
This document refers to the install directory for your existing DSpace installation as _{{\[dspace\]_}}, and to the source directory for DSpace 1.2 as _\[dspace-1.2-source\]_. Whenever you see these path references below, be sure to replace them with the actual path names on your local system.

  1. Wiki Markup
    Step one is, of course, to *back up all your data* before proceeding\!\! Include all of the contents of _{{\[dspace\]_}} and the PostgreSQL database in your backup.
  2. Get the new DSpace 1.2 source code from the DSpace page on SourceForge and unpack it somewhere. Do not unpack it on top of your existing installation!!
  3. Copy the required Java libraries that we couldn't include in the bundle to the source tree. For example:
    Code Block
    cd  [dspace]/lib
    cp activation.jar servlet.jar mail.jar
    	[dspace-1.2-source]/lib
    
  4. Stop Tomcat (or other servlet container.)
  5. It's a good idea to upgrade all of the various third-party tools that DSpace uses to their latest versions:
    • Java (note that now version 1.4.0 or later is required)
    • Tomcat (Any version after 4.0 will work; symbolic links are no longer an issue)
    • PostgreSQL (don't forget to build/download an updated JDBC driver .jar file! Also, back up the database first.)
    • Ant
  6. Wiki Markup
    You need to add the following new parameters to your _\[dspace\]/dspace.cfg_:
    Code Block
    ##### Media Filter settings #####
    # maximum width and height of generated thumbnails
    thumbnail.maxwidth = 80
    thumbnail.maxheight = 80
    
    There are one or two other, optional extra parameters (for controlling the pool of database connections). See the version history for details. If you leave them out, defaults will be used.Also, to avoid future confusion, you might like to remove the following property, which is no longer required:
    Code Block
    config.template.oai-web.xml =
    	[dspace]/oai/WEB-INF/web.xml
    
  7. Wiki Markup
    The layout of the installation directory (i.e. the structure of the contents of _{{\[dspace\]_}}) has changed somewhat since 1.1.1. First up, your 'localized' JSPs (those in jsp/local) now need to be maintained in the _source_ directory. So make a copy of them now\!Once you've done that, you can remove _\[dspace\]/jsp_ and _\[dspace\]/oai_, these are no longer used. (.war Web application archive files are used instead).Also, if you're using the same version of Tomcat as before, you need to *remove the lines from Tomcat's conf/server.xml file that enable symbolic links for DSpace.* These are the _<Context>_ elements you added to get DSpace 1.1.1 working, looking something like this:
    Code Block
    <Context path="/dspace" docBase="dspace" debug="0" reloadable="true"
    	crossContext="true">
      <Resources className="org.apache.naming.resources.FileDirContext"
    	allowLinking="true" />
    </Context>
    
    Be sure to remove the <Context> elements for both the Web UI and the OAI Web applications.
  8. Build and install the updated DSpace 1.2 code. Go to the DSpace 1.2 source directory, and run:
    Code Block
    ant -Dconfig= [dspace]/config/dspace.cfg update
    
  9. Copy the new config files in config to your installation, e.g.:
    Code Block
    cp  [dspace-1.2-source]/config/news-*
    	[dspace-1.2-source]/config/mediafilter.cfg
    	[dspace-1.2-source]/config/dc2mods.cfg
    	[dspace]/config
    
  10. Wiki Markup
    You'll need to make some changes to the database schema in your PostgreSQL database. _\[dspace-1.2-source\]/etc/database_schema_11-12.sql_ contains the SQL commands to achieve this. If you've modified the schema locally, you may need to check over this and make alterations.To apply the changes, go to the source directory, and run: 
    Code Block
    psql -f etc/database_schema_11-12.sql [DSpace database name] -h
    	localhost
    
  11. A tool supplied with the DSpace 1.2 codebase will then update the actual data in the relational database. Run it using:
    Code Block
     [dspace]/bin/dsrun
    	org.dspace.administer.Upgrade11To12
    
  12. Then rebuild the search indexes:
    Code Block
     [dspace]/bin/index-all
    
  13. Wiki Markup
    Delete the existing symlinks from your servlet container's (e.g. Tomcat's) _webapp_ sub-directory.Copy the _.war_ Web application files in _\[dspace-1.2-source\]/build_ to the _webapps_ sub-directory of your servlet container (e.g. Tomcat). e.g.:
    Code Block
    cp  [dspace-1.2-source]/build/*.war
    	[tomcat]/webapps
    
  14. Restart Tomcat.
  15. To get image thumbnails generated and full-text extracted for indexing automatically, you need to set up a 'cron' job, for example one like this:
    Code Block
    # Run the media filter at 02:00 every day
    0 2 * * *  [dspace]/bin/filter-media
    
    You might also wish to run it now to generate thumbnails and index full text for the content already in your system.
  16. Note 1: This update process has effectively 'touched' all of your items. Although the dates in the Dublin Core metadata won't have changed (accession date and so forth), the 'last modified' date in the database for each will have been changed.This means the e-mail subscription tool may be confused, thinking that all items in the archive have been deposited that day, and could thus send a rather long email to lots of subscribers. So, it is recommended that you turn off the e-mail subscription feature for the next day, by commenting out the relevant line in DSpace's cron job, and then re-activating it the next day.Say you performed the update on 08-June-2004 (UTC), and your e-mail subscription cron job runs at 4am (UTC). When the subscription tool runs at 4am on 09-June-2004, it will find that everything in the system has a modification date in 08-June-2004, and accordingly send out huge emails. So, immediately after the update, you would edit DSpace's 'crontab' and comment out the /dspace/bin/subs-daily line. Then, after 4am on 09-June-2004 you'd 'un-comment' it out, so that things proceed normally.Of course this means, any real new deposits on 08-June-2004 won't get e-mailed, however if you're updating the system it's likely to be down for some time so this shouldn't be a big problem.
  17. Note 2: After consultation with the OAI community, various OAI-PMH changes have occurred:
    • The OAI-PMH identifiers have changed (they're now of the form oai:hostname:handle as opposed to just Handles)
    • The set structure has changed, due to the new sub-communities feature.
    • The default base URL has changed
    • Wiki Markup
      As noted in note 1, every item has been 'touched' and will need re-harvesting. The above means that, if already registered and harvested, you will need to re-register your repository, effectively as a 'new' OAI-PMH data provider. You should also consider posting an announcement to the [OAI implementers e-mail list|http://www.openarchives.org/mailman/listinfo/OAI-implementers|OAI implementers e-mail list] so that harvesters know to update their systems.Also note that your site may, over the next few days, take quite a big hit from OAI-PMH harvesters. The resumption token support should alleviate this a little, but you might want to temporarily whack up the database connection pool parameters in _\[dspace\]/config/dspace.cfg_. See the _dspace.cfg_ distributed with the source code to see what these parameters are and how to use them. (You need to stop and restart Tomcat after changing them.)I realize this is not ideal; for discussion as to the reasons behind this please see relevant posts to the OAI community: [post one|http://openarchives.org/pipermail/oai-implementers/2004-June/001214.html|post one], [post two|http://openarchives.org/pipermail/oai-implementers/2004-June/001224.html|post two], as well as [this post to the dspace-tech mailing list\|#\|this post to the dspace-tech mailing list|].If you really can't live with updating the base URL like this, you can fairly easily have thing proceed more-or-less as they are, by doing the following:
    • Change the value of OAI_ID_PREFIX at the top of the org.dspace.app.oai.DSpaceOAICatalog class to hdl:
    • Change the servlet mapping for the OAIHandler servlet back to / (from /request)
    • Rebuild and deploy _oai.war_However, note that in this case, all the records will be re-harvested by harvesters anyway, so you still need to brace for the associated DB activity; also note that the set spec changes may not be picked up by some harvesters. It's recommended you read the above-linked mailing list posts to understand why the change was made.
      Now, you should be finished!

...

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

...

Wiki Markup
To upgrade from DSpace 1.0.1 to 1.1, follow the steps below. Your _dspace.cfg_ does not need to be changed. In the notes below _{{\[dspace\]_}} refers to the install directory for your existing DSpace installation, and _\[dspace-1.1-source\]_ to the source directory for DSpace 1.1. Whenever you see these path references, be sure to replace them with the actual path names on your local system.

...