All Versions
- DSpace 7.x (Current Release)
- DSpace 8.x (Unreleased)
- DSpace 6.x (EOL)
- DSpace 5.x (EOL)
- More Versions...
Unsupported Release
This documentation relates to an old, unsupported version of DSpace, version 1.7.x. Looking for another version? See all documentation.
As of January 2014, the DSpace 1.7.x platform is no longer supported. We recommend upgrading to a more recent version of DSpace.
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.
Test Your Upgrade Process
It is always recommended that when performing an upgrade that the user should use a Development or Test instance or server in order to minimize downtime. You should note any problems you have encountered (and also how to resolve them) before attempting to upgrade your production instance or server. It also gives you a chance to "practice" at the upgrade. (And practice makes perfect.)
If 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.5.x to 1.7.x, you need to perform the configuration & database upgrade steps detailed in Upgrading from 1.5.x to 1.6.x followed by those detailed in 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.1. Whenever you see these path references, be sure to replace them with the actual path names on your local system.
[dspace]/assetstore
by default)$CATALINA/shutdown.sh
script. (Many Unix-based installations will have a startup/shutdown script in the /etc/init.d
or /etc/rc.d
directories)[dspace-source]/dspace/modules/jspui/src/main/webapp/
[dspace-source]/dspace/modules/xmlui/src/main/webapp/
cd /[dspace-source]/dspace/ mvn -U clean package
[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.cd [dspace-source]/dspace/target/dspace-[version]-build.dir ant -Dconfig=[dspace]/config/dspace.cfg update
[dspace]/bin/dspace index-init
_[dspace]/webapps
directory to the subdirectory of your servlet container (e.g. tomcat):
cp -R [dspace]/webapps/* [tomcat]/webapps/
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
[dspace]/assetstore
by default)$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).[dspace-source]/dspace/modules/jspui/src/main/webapp/
[dspace-source]/dspace/modules/xmlui/src/main/webapp/
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:
# 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
# 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
#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
# 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
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
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
#### 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
# 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
# whether to display the contents of the licence bundle (often just the deposit # licence in standard DSpace installation webui.licence_bundle.show = false
# maximum width and height of generated thumbnails thumbnail.maxwidth = 80 thumbnail.maxheight = 80
## 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
## 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 = "::"
#### 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
##### Google Scholar Metadata Configuration ##### google-metadata.config = ${dspace.dir}/config/crosswalks/google-metadata.properties google-metadata.enable = true
# 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
### 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
# 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
# Define the metadata type EPDCX (EPrints DC XML) # to be handled by the SWORD crosswalk configuration # mets.default.ingest.crosswalk.EPDCX = SWORD
# 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
cd [dspace-source]/dspace/ mvn -U clean package
[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.cd [dspace-source]/dspace/target/dspace-[version]-build.dir ant -Dconfig=[dspace]/config/dspace.cfg update
psql -U [dspace-user] -f [dspace-source]/dspace/etc/postgres/database_schema_16_17.sql [database name]
psql -U dspace -f [dspace-source]/dspace/etc/postgres/database_schema_16_17.sql dspace
sqlplus [connect args]
SQL> spool 'upgrade.lst'
SQL> @[dspace-source]/dspace/etc/oracle/database_schema_16_17.sql
SQL> spool off
[dspace]/bin/dspace index-init
[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/
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.
$CATALINA/shutdown.sh
script. (Many installations will have a startup/shutdown script in the /etc/init.d
or /etc/rc.d
directories.[dspace-source]/dspace/modules/jspui/src/main/webapp/
[dspace-source]/dspace/modules/xmlui/src/main/webapp
cd /[dspace-source]/dspace/ mvn -U clean package
[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.cd [dspace-source]/dspace/target/dspace-[version]-build.dir ant -Dconfig=[dspace]/config/dspace.cfg update
[dspace]/bin/dspace registry-loader -bitstream [dspace]/etc/upgrades/15-16/new-bitstream-formats.xml
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
sqlplus
, recording the output:
"--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.
[dspace]/webapps
directory to the subdirectory of your servlet container (e.g. tomcat):
cp -R [dspace]/webapps/* [tomcat]/webapps/
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.
# 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
# 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
##### 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
# 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
#### 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
# consumer to clean up harvesting data event.consumer.harvester.class = org.dspace.harvest.HarvestConsumer event.consumer.harvester.filters = Item+Delete
#### 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
### 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
##### 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
## example of authority-controlled browse category--see authority control config #webui.browse.index.5 = lcAuthor:metadataAuthority:dc.contributor.author:authority
##### 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
#### 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
#### 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
# 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
# A comma separated list of MIME types that SWORD will accept sword.accepts = application/zip
#---------------------------------------------------------------# #--------------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
#---------------------------------------------------------------# #--------------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.item.authorization.admin=true
cd /[dspace-source]/dspace/ mvn -U clean package
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
"--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.
cd [dspace-source]/dspace/target/dspace-[version]-build.dir ant -Dconfig=[dspace]/config/dspace.cfg update
\[dspace\]/bin/dspace registry-loader \-bitstream \[dspace\]/etc/upgrades/15-16/new-bitstream-formats.xml_ # *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_ # *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/_ # *Restart servlet.* Now restart your Tomcat/Jetty/Resin server program and test out the upgrade. # *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.
The user is highly recommend to see the [System Administration : DSpace Log Converter|System Administration#DSpace Log Converter] documentation. h2. 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. # *Backup your DSpace* First and foremost, make a complete backup of your system, including: #* A snapshot of the database #* The asset store (_\[dspace\]/assetstore_ by default) #* Your configuration files and customizations to DSpace #* Your statistics scripts (_\[dspace\]/bin/stat\*_) which contain customizable dates # *Download DSpace 1.5.2* Get the new DSpace 1.5.2 source code either as a download from [DSpace.org|http://www.dspace.org/latest-release/] or check it out directly from the [SVN code repository|http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.5.2/]. If you downloaded DSpace do not unpack it on top of your existing installation. # *Build DSpace* Run the following commands to compile DSpace.
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. # *Stop Tomcat* Take down your servlet container, for Tomcat use the _bin/shutdown.sh_ script. # *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. # *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:
# *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.
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: #* New option to restrict the expose of private items. The following needs to be added to dspace.cfg:
#* Special groups for LDAP and password authentication.
#* new option for case insensitivity in browse tables.
#* New usage event handler for collecting statistics:
#* The location where sitemaps are stored is now configurable.
/sitemaps
#* MARC 21 ordering should now be used as default. Unless you have it set already, or you have it set to a different value, the following should be set:
plugin.named.org.dspace.sort.OrderFormatDelegate = org.dspace.sort.OrderFormatTitleMarc21=title
#* Hierarchical LDAP support.
#* Shibboleth authentication support.
#* DOI and handle identifiers can now be rendered in the JSPUI.
In configuration sections such as webui.itemdisplay.default, values can be changed from (e.g.) metadata.dc.identifier.doi to metadata.doi.dc.identifier.doi #* The whole of the SWORD configuration has changed. The SWORD section must be removed and replaced with
/sword/deposit
#
# *Restart Tomcat* Restart your servlet container, for Tomcat use the _bin/startup.sh_ script. h2. 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. # *Backup your DSpace* First and foremost, make a complete backup of your system, including: #* A snapshot of the database #* The asset store (_\[dspace\]/assetstore_ by default) #* Your configuration files and customizations to DSpace #* Your statistics scripts (_\[dspace\]/bin/stat\*_) which contain customizable dates # *Download DSpace 1.5* Get the new DSpace 1.5 source code either as a download from [SourceForge|http://sourceforge.net/projects/dspace/] or check it out directly from the [SVN code repository\|#\|SVN code repository|]. If you downloaded DSpace do not unpack it on top of your existing installation. # *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.
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. # *Stop Tomcat* Take down your servlet container, for Tomcat use the _bin/shutdown.sh_ script. # *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_.
org.dspace.app.webui.util.CollectionStyleSelection
# *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.
# *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.dtd
[dspace]/config/item-submission.dtd
# *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
# *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
# *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
# *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. #* For PostgreSQL _psql \-U \[dspace-user\] \-f \[dspace-source\]/dspace/etc/database_schema_14-15.sql \[database-name\]_ #* For Oracle _\[dspace-source\]/dspace/etc/oracle/database_schema_142-15.sql_ contains the commands necessary to upgrade your database schema on oracle. # *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. # *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
# *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
# *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
# *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_ # *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/
# *Restart Tomcat* Restart your servlet container, for Tomcat use the _bin/startup.sh_ script. h2. Upgrading From 1.4.1 to 1.4.2 See Upgrading From 1.4 to 1.4.x; the same instructions apply. h2. 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. # Get the new DSpace 1.4.x source code from [the DSpace page on SourceForge|http://sourceforge.net/projects/dspace/] and unpack it somewhere. Do not unpack it on top of your existing installation\!\! # Copy the PostgreSQL driver JAR to the source tree. For example:
cd [dspace]/lib
cp postgresql.jar [dspace-1.4.x-source]/lib
# *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. # Take down Tomcat (or whichever servlet container you're using). # 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:
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. # 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/]. # In _\[dspace-1.4.x-source\]_ run:
# 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.:
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. # Restart Tomcat. h2. Upgrading From 1.3.2 to 1.4.x # First and foremost, *make a complete backup* of your system, including: #* A snapshot of the database #* The asset store (_\[dspace\]/assetstore_ by default) #* Your configuration files and localized JSPs # Download the [latest DSpace 1.4.x source bundle|http://sourceforge.net/projects/dspace/] and unpack it in a suitable location (_not_ over your existing DSpace installation or source tree\!) # Copy the PostgreSQL driver JAR to the source tree. For example:
# *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. # Take down Tomcat (or whichever servlet container you're using). # Your DSpace configuration will need some updating: #* In _dspace.cfg_, paste in the following lines for the new stackable authentication feature, the new method for managing Media Filters, and the Checksum Checker.
plugin.sequence.org.dspace.app.mediafilter.MediaFilter = \
org.dspace.app.mediafilter.PDFFilter,
org.dspace.app.mediafilter.HTMLFilter, \
org.dspace.app.mediafilter.WordFilter,
org.dspace.app.mediafilter.JPEGFilter
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.JPEGFilter.inputFormats = GIF,
JPEG, image/png
filter.org.dspace.app.mediafilter.BrandedPreviewJPEGFilter.inputFormat
s = GIF, JPEG, image/png
#* If you have customized advanced search fields (_search.index.n_ fields, note that you now need to include the schema in the values. Dublin Core is specified as _dc_. So for example, if in 1.3.2 you had:
That needs to be changed to:
#* If you use LDAP or X509 authentication, you'll need to add _org.dspace.eperson.LDAPAuthentication_ or _org.dspace.eperson.X509Authentication_ respectively. See also configuring custom authentication code. #* If you have custom Media Filters, note that these are now configured through _dspace.cfg_ (instead of _mediafilter.cfg_ which is obsolete.) #* Also, take a look through the default _dspace.cfg_ file supplied with DSpace 1.4.x, as this contains configuration options for various new features you might like to use. In general, these new features default to 'off' and you'll need to add configuration properties as described in the default 1.4.x _dspace.cfg_ to activate them. # 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]. # In _\[dspace-1.4.x-source\]_ run:
# 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. #* *For PostgreSQL*: _\[dspace-1.4.x-source\]/etc/database_schema_13-14.sql_ contains the SQL commands to achieve this for PostgreSQL. To apply the changes, go to the source directory, and run:_psql \-f etc/database_schema_13-14.sql \[DSpace database name\] \-h localhost_ #* *For Oracle*: _\[dspace-1.4.x-source\]/etc/oracle/database_schema_13-14.sql_ should be run on the DSpace database to update the schema. # Rebuild the search indexes: _\[dspace\]/bin/index-all_ # 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.:
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. # Restart Tomcat. h2. Upgrading From 1.3.1 to 1.3.2 The changes in 1.3.2 are only code changes so the update is simply a matter of rebuilding the wars. 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. # Get the new DSpace 1.3.2 source code from [the DSpace page on SourceForge|http://sourceforge.net/projects/dspace/|the DSpace page on SourceForge] and unpack it somewhere. Do not unpack it on top of your existing installation\!\! # Copy the PostgreSQL driver JAR to the source tree. For example:
# Take down Tomcat (or whichever servlet container you're using). # 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.3.2 versions into your locally modified ones. You can use the _diff_ command to compare the 1.3.1 and 1.3.2 versions to do this. # In _\[dspace-1.3.2-source\]_ run:
# Copy the _.war_ Web application files in _\[dspace-1.3.2-source\]/build_ to the _webapps_ sub-directory of your servlet container (e.g. Tomcat). e.g.:
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. # Restart Tomcat. h2. Upgrading From 1.2.x to 1.3.x 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. # 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. # Get the new DSpace 1.3.x source code from [the DSpace page on SourceForge|http://sourceforge.net/projects/dspace/|the DSpace page on SourceForge] and unpack it somewhere. Do not unpack it on top of your existing installation\!\! # Copy the PostgreSQL driver JAR to the source tree. For example: _cd \[dspace\]/lib{_}{_}cp postgresql.jar \[dspace-1.2.2-source\]/lib_ # Take down Tomcat (or whichever servlet container you're using). # Remove the old version of _xerces.jar_ from your installation, so it is not inadvertently later used:_rm \[dspace\]/lib/xerces.jar_ # Install the new config files by moving _dstat.cfg_ and _dstat.map_ from _\[dspace-1.3.x-source\]/config/_ to _\[dspace\]/config_ # You need to add new parameters to your _\[dspace\]/dspace.cfg_:
# 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_ # 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_ # Customize the stat generating statistics as per the instructions in System Statistical Reports # Initialize the statistics using: _\[dspace\]/bin/stat-initial{_}_\[dspace\]/bin/stat-general{_}_\[dspace\]/bin/stat-report-initial{_}_\[dspace\]/bin/stat-report-general_ # Rebuild the search indexes: _\[dspace\]/bin/index-all_ # 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_ # Restart Tomcat. h2. Upgrading From 1.2.1 to 1.2.2 The changes in 1.2.2 are only code and config changes so the update should be fairly simple. 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. # Get the new DSpace 1.2.2 source code from [the DSpace page on SourceForge|http://sourceforge.net/projects/dspace/|the DSpace page on SourceForge] and unpack it somewhere. Do not unpack it on top of your existing installation\!\! # Copy the PostgreSQL driver JAR to the source tree. For example:
cd [dspace]/lib
cp postgresql.jar [dspace-1.2.2-source]/lib
# Take down Tomcat (or whichever servlet container you're using). # 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 might like to merge the changes in the new 1.2.2 versions into your locally modified ones. You can use the _diff_ command to compare the 1.2.1 and 1.2.2 versions to do this. Also see the version history for a list of modified JSPs. # You need to add a new parameter to your _\[dspace\]/dspace.cfg_ for configurable fulltext indexing
# In _\[dspace-1.2.2-source\]_ run:
# Copy the _.war_ Web application files in _\[dspace-1.2.2-source\]/build_ to the _webapps_ sub-directory of your servlet container (e.g. Tomcat). e.g.:
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. # To finalize the install of the new configurable submission forms you need to copy the file _\[dspace-1.2.2-source\]/config/input-forms.xml_ into _\[dspace\]/config_. # Restart Tomcat. h2. Upgrading From 1.2 to 1.2.1 The changes in 1.2.1 are only code changes so the update should be fairly simple. 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. # Get the new DSpace 1.2.1 source code from [the DSpace page on SourceForge|http://sourceforge.net/projects/dspace/|the DSpace page on SourceForge] and unpack it somewhere. Do not unpack it on top of your existing installation\!\! # Copy the PostgreSQL driver JAR to the source tree. For example:
# Take down Tomcat (or whichever servlet container you're using). # 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 might like to merge the changes in the new 1.2.1 versions into your locally modified ones. You can use the _diff_ command to compare the 1.2 and 1.2.1 versions to do this. Also see the version history for a list of modified JSPs. # You need to add a few new parameters to your _\[dspace\]/dspace.cfg_ for browse/search and item thumbnails display, and for configurable DC metadata fields to be indexed.
search.index.1 = author:contributor.*
search.index.2 = author:creator.*
search.index.3 = title:title.*
search.index.4 = keyword:subject.*
search.index.5 = abstract:description.abstract
search.index.6 = author:description.statementofresponsibility
search.index.7 = series:relation.ispartofseries
search.index.8 = abstract:description.tableofcontents
search.index.9 = mime:format.mimetype
search.index.10 = sponsor:description.sponsorship
search.index.11 = id:identifier.*
# In _\[dspace-1.2.1-source\]_ run:
ant -Dconfig= [dspace]/config/dspace.cfg update
# Copy the _.war_ Web application files in _\[dspace-1.2.1-source\]/build_ to the _webapps_ sub-directory of your servlet container (e.g. Tomcat). e.g.:
cp [dspace-1.2.1-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. # Restart Tomcat. h2. Upgrading From 1.1 (or 1.1.1) to 1.2 The process for upgrading to 1.2 from either 1.1 or 1.1.1 is the same. If you are running DSpace 1.0 or 1.0.1, you need to follow the instructions for upgrading from 1.0.1 to 1.1 to before following these instructions. Note also that if you've substantially modified DSpace, these instructions apply to an unmodified 1.1.1 DSpace instance, and you'll need to adapt the process to any modifications you've made. 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. # 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. # Get the new DSpace 1.2 source code from [the DSpace page on SourceForge|http://sourceforge.net/projects/dspace/|the DSpace page on SourceForge] and unpack it somewhere. Do not unpack it on top of your existing installation\!\! # Copy the required Java libraries that we couldn't include in the bundle to the source tree. For example:
cd [dspace]/lib
cp activation.jar servlet.jar mail.jar
[dspace-1.2-source]/lib
# Stop Tomcat (or other servlet container.) # 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 # You need to add the following new parameters to your _\[dspace\]/dspace.cfg_:
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:
# 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:
Be sure to remove the <Context> elements for both the Web UI and the OAI Web applications. # Build and install the updated DSpace 1.2 code. Go to the DSpace 1.2 source directory, and run:
# Copy the new config files in _config_ to your installation, e.g.:
# 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:
# A tool supplied with the DSpace 1.2 codebase will then update the actual data in the relational database. Run it using:
# Then rebuild the search indexes:
# 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.:
# Restart Tomcat. # 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:
You might also wish to run it now to generate thumbnails and index full text for the content already in your system. # *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. # *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 #* 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\! h2. Upgrading From 1.1 to 1.1.1 Fortunately the changes in 1.1.1 are only code changes so the update is fairly simple. 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. # Take down Tomcat. # It would be a good idea to update any of the third-party tools used by DSpace at this point (e.g. PostgreSQL), following the instructions provided with the relevant tools. # In _\[dspace-1.1.1-source\]_ run:
# If you have locally modified JSPs of the following JSPs in your _\[dspace\]/jsp/local_ directory, you might like to merge the changes in the new 1.1.1 versions into your locally modified ones. You can use the _diff_ command to compare the 1.1 and 1.1.1 versions to do this. The changes are quite minor.
# Restart Tomcat. h2. Upgrading From 1.0.1 to 1.1 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. # Take down Tomcat (or whichever servlet container you're using). # We recommend that you upgrade to the latest version of PostgreSQL (7.3.2). Included are some [notes to help you do this|postgres-upgrade-notes.txt|notes to help you do this]. Note you will also have to upgrade Ant to version 1.5 if you do this. # Make the necessary changes to the DSpace database. These include a couple of minor schema changes, and some new indexes which should improve performance. Also, the names of a couple of database views have been changed since the old names were so long they were causing problems. First run _psql_ to access your database (e.g. _psql \-U dspace \-W_ and then enter the password), and enter these SQL commands:
ALTER TABLE item ADD last_modified TIMESTAMP;
CREATE INDEX last_modified_idx ON Item(last_modified);
CREATE INDEX eperson_email_idx ON EPerson(email);
CREATE INDEX item2bundle_item_idx on Item2Bundle(item_id);
CREATE INDEX bundle2bitstream_bundle_idx ON
Bundle2Bitstream(bundle_id);
CREATE INDEX dcvalue_item_idx on DCValue(item_id);
CREATE INDEX collection2item_collection_idx ON
Collection2Item(collection_id);
CREATE INDEX resourcepolicy_type_id_idx ON ResourcePolicy
(resource_type_id,resource_id);
CREATE INDEX epersongroup2eperson_group_idx on
EPersonGroup2EPerson(eperson_group_id);
CREATE INDEX handle_handle_idx ON Handle(handle);
CREATE INDEX sort_author_idx on ItemsByAuthor(sort_author);
CREATE INDEX sort_title_idx on ItemsByTitle(sort_title);
CREATE INDEX date_issued_idx on ItemsByDate(date_issued);
DROP VIEW CollectionItemsByDateAccessioned;
DROP VIEW CommunityItemsByDateAccessioned;
CREATE VIEW CommunityItemsByDateAccession as SELECT
Community2Item.community_id, ItemsByDateAccessioned.* FROM
ItemsByDateAccessioned, Community2Item WHERE
ItemsByDateAccessioned.item_id = Community2Item.item_id;
CREATE VIEW CollectionItemsByDateAccession AS SELECT
collection2item.collection_id,
itemsbydateaccessioned.items_by_date_accessioned_id,
itemsbydateaccessioned.item_id,
itemsbydateaccessioned.date_accessioned FROM itemsbydateaccessioned,
collection2item WHERE (itemsbydateaccessioned.item_id =
collection2item.item_id);
# Fix your JSPs for Unicode. If you've modified the site 'skin' (_jsp/local/layout/header-default.jsp_) you'll need to add the Unicode header, i.e.:
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8">
to the <HEAD> element. If you have any locally-edited JSPs, you need to add this page directive to the top of all of them:
<%@ page contentType="text/html;charset=UTF-8" %>
(If you haven't modified any JSPs, you don't have to do anything.) # Copy the required Java libraries that we couldn't include in the bundle to the source tree. For example:
cd [dspace]/lib
cp *.policy activation.jar servlet.jar mail.jar
[dspace-1.1-source]/lib
# Compile up the new DSpace code, replacing _\[dspace\]/config/dspace.cfg_ with the path to your current, LIVE configuration. (The second line, _touch `find .`_, is a precaution, which ensures that the new code has a current datestamp and will overwrite the old code. Note that those are back quotes.)
cd [dspace-1.1-source]
touch `find .`
ant
ant -Dconfig= [dspace]/config/dspace.cfg update
# Update the database tables using the upgrader tool, which sets up the new >_last_modified_ date in the item table:
Run [dspace]/bin/dsrun
org.dspace.administer.Upgrade101To11
# Run the collection default authorization policy tool:
[dspace]/bin/dsrun
org.dspace.authorize.FixDefaultPolicies
# Fix the OAICat properties file. Edit _\[dspace\]/config/templates/oaicat.properties_. Change the line that says
Identify.deletedRecord=yes
To:
Identify.deletedRecord=persistent
This is needed to fix the OAI-PMH 'Identity' verb response. Then run _\[dspace\]/bin/install-configs_. # Re-run the indexing to index abstracts and fill out the renamed database views:
[dspace]/bin/index-all
# Restart Tomcat. Tomcat should be run with the following environment variable set, to ensure that Unicode is handled properly. Also, the default JVM memory heap sizes are rather small. Adjust _\-Xmx512M_ (512Mb maximum heap size) and _\-Xms64M_ (64Mb Java thread stack size) to suit your hardware.
JAVA_OPTS="-Xmx512M -Xms64M -Dfile.encoding=UTF-8"