Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: added info about Microsoft deprecating TLS < 1.2

...

Table of Contents
minLevel2
outlinetrue
stylenone

General Configuration

In the following sections you will learn about the different configuration files that you will need to edit so that you may make your DSpace installation work.

...

To get started, simply create your own [dspace-source]/dspace/config/local.cfg based on the example, e.g.

Code Block
languagebash
cd [dspace-source]/dspace/config/
cp local.cfg.EXAMPLE local.cfg

...

DSpace will look up a javax.mail.Session object in JNDI and, if found, will use that to send email.  Otherwise it will create a Session using some of the properties detailed below.

Property:

mail.server

Example Value:

mail.server = smtp.my.edu

Informational Note:

The address on which your outgoing SMTP email server can be reached.

Property:

mail.server.username

Example Value:

mail.server.username = myusername

Informational Note:

SMTP mail server authentication username, if required. This property is optional.

Property:

mail.server.password

Example Value:

mail.server.password = mypassword

Informational Note:

SMTP mail server authentication password, if required. This property is optional

/

.

Property:

mail.server.port

Example Value:

mail.server.port = 25

Informational Note:

The port on which your SMTP mail server can be reached. By default, port 25 is used, port 587 is commonly used for TLS connections. Change this setting if your SMTP mailserver is running on another port. This property is optional.

Property:

mail.from.address

Example Value:

mail.from.address = dspace-noreply@myu.edu

Informational Note:

The "From" address for email. Change the 'myu.edu' to the site's host name.

Property:

feedback.recipient

Example Value:

feedback.recipient = dspace-help@myu.edu

Informational Note:

When a user clicks on the feedback link/feature, the information will be sent to the email address of choice. This configuration is currently limited to only one recipient. Since DSpace 4.0, this is also the email address displayed on the contacts page.

Property:

mail.admin

Example Value:

mail.admin = dspace-help@myu.edu

Informational Note:

Email address of the general site administrator (Webmaster)

Property:

alert.recipient

Example Value:

alert.recipient = john.doe@myu.edu

Informational Note:

Enter the recipient for server errors and alerts. This property is optional.

Property:

registration.notify

Example Value:

registration.notify = mike.smith@myu.edu

Informational Note:

Enter the recipient that will be notified when a new user registers on DSpace. This property is optional.

Property:

mail.charset

Example Value:

mail.charset = UTF-8

Informational Note:

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.

Property:

mail.allowed.referrers

Example Value:

mail.allowed.referrers = localhost

Informational Note:

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. This property is optional.

Property:

mail.extraproperties

Example Value:


Code Block
mail.extraproperties = mail.smtp.socketFactory.port=465, \
       mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory, \
       mail.smtp.socketFactory.fallback=false


Informational Note:

If you need to pass extra settings to the Java mail library. Comma separated, equals sign between the key and the value. This property is optional.

Property:

mail.server.disabled

Example Value:

mail.server.disabled = false

Informational Note:

An option is added to disable the mailserver. By default, this property is set to 'false'. By setting value to '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. This property is optional.

Property:

mail.session.name

Example Value:

mail.session.name = myDSpace

Informational Note:

Specifies the name of a javax.mail.Session object stored in JNDI under java:comp/env/mail.  The default value is "Session".

Property:

default.language

Example Value:

default.language = en_US

Informational Note:

If no other language is explicitly stated in the input-forms.xml, the default language will be attributed to the metadata values.

Wording of E-mail Messages

...

Note: You should replace the contact-information "dspace-help@myu.edu or call us at xxx-555-xxxx" with your own contact details in:
config/emails/change_password
config/emails/register

File Storage

Info

Beginning with DSpace 6, your file storage location (aka bitstore) is now defined in the [dspace]/config/spring/api/bitstore.xml Spring configuration file.  By default it is defined as the [dspace]/assetstore/.  More information on modifying your file storage location can be found at   Configuring the Bitstream Store in the Storage Layer documentation.

DSpace supports multiple options for storing your repository bitstreams (uploaded files). The files are not stored in the database, instead they are provided via a configured "assetstore" or "bitstore".

By default, the assetstore is simply a directory on your server ([dspace]/assetstore/) under which bitstreams (files) are stored by DSpace.

At this time, DSpace supports two primary locations for storing your files:

  1. Your local filesystem (used by default), specifically under the [dspace]/assetstore/ directory
  2. OR, Amazon S3 (requires your own Amazon S3 account)

More information on configuring or customizing the storage location of your files can be found in the Storage Layer documentation.

Logging Configuration

Format of E-mail Messages

The files in dspace/config/emails are templates with a specific structure.

  • A line beginning with "#" is a comment and will not be included in the message.
  • A line beginning with "Subject: " will set the Subject: header of the message and will not be included in the body.
  • A line beginning with "Charset: " will set the character set in which the subject and single message bodypart are assumed to be encoded, will be used as the value of the charset parameter of the Content-Encoding header for the message, and will not be included in the body. If the message has multiple bodyparts (i.e. attachments are included) then all are assumed to be encoded in US-ASCII and the "Charset: " line has no effect on them (but still affects the subject).
  • A number enclosed in braces, such as {2}, anywhere in a non-comment line, will be replaced with the corresponding parameter which was supplied to the message when the message formatter was called. Parameter numbers are 0-based.  Refer to the comments in the template or to the code which uses it for the meaning of each parameter.

Using an external mail server

If you want to use an external mail server setting the value of mail.server to the domain name is enough if authentication is not required. Most external SMTP mail servers will however require authentication for obvious reasons. To enable TLS encryption you will typically have to set the mail.server.port to the secure default 587 and for the mail.server.username and mail.server.password to be set. In addition you will need to enable TLS by setting the following extra properties:


Code Block
mail.extraproperties = mail.smtp.auth=true, \
                       mail.smtp.starttls.enable=true

Note that as of January 2020 Microsoft has started to remove support for Transport Layer Security (TLS) versions 1.0 and 1.1 in Office 365 and Office 365 GCC (see more information here). This necessitates using TLS 1.2 then. Some users have reported being able to use the following configuration successfully (see discussion):


Code Block
mail.extraproperties = mail.smtp.socketFactory.port=587, \
                        mail.smtp.starttls.enable=true, \
                        mail.smtp.starttls.required=true, \
                        mail.smtp.ssl.protocols=TLSv1.2

File Storage

Info

Beginning with DSpace 6, your file storage location (aka bitstore) is now defined in the [dspace]/config/spring/api/bitstore.xml Spring configuration file.  By default it is defined as the [dspace]/assetstore/.  More information on modifying your file storage location can be found at   Configuring the Bitstream Store in the Storage Layer documentation.

DSpace supports multiple options for storing your repository bitstreams (uploaded files). The files are not stored in the database, instead they are provided via a configured "assetstore" or "bitstore".

By default, the assetstore is simply a directory on your server ([dspace]/assetstore/) under which bitstreams (files) are stored by DSpace.

At this time, DSpace supports two primary locations for storing your files:

  1. Your local filesystem (used by default), specifically under the [dspace]/assetstore/ directory
  2. OR, Amazon S3 (requires your own Amazon S3 account)

More information on configuring or customizing the storage location of your files can be found in the Storage Layer documentation.

Logging Configuration

This is where your logging configuration file is located. You may override the default log4j configuration by providing your own. Existing alternatives are:

Property:

log.init.config

Example Value:

log.init.config = ${dspace.dir}/config/log4j.properties

Informational Note:

This is where your logging configuration file is located. You may override the default log4j configuration by providing your own. Existing alternatives are:

Code Block
log.init.config = ${dspace.dir}/config/log4j.properties
log.init.config = ${dspace.dir}/config/log4j-console.properties


Property:

log.dir

Example value:

log.dir = ${dspace.dir}/log

Informational Note:

This is where to put the logs. (This is used for initial configuration only)

Property:

loglevel.dspace (defined in log4j.properties)
Example value:loglevel.dspace = INFO
Informational Note:

Log level for all DSpace-specific code (org.dspace.* packages).  By default, DSpace only provides general INFO logs (in order to keep log sizes reasonable). As necessary, you can temporarily change this setting to any of the following (ordered for most information to least): DEBUG, INFO, WARN, ERROR, FATAL

Property:

log.init.config

Example Value:

log.init.config = ${dspace.dir}/config/log4j.properties

Informational Note:

Code Block
log.init.config = ${dspace.dir}/config/log4j.properties
log.init.config = ${dspace.dir}/config/log4j-console.properties

Property:

log.dir

Example value:

log.dir = ${dspace.dir}/log

Informational Note:

This is where to put the logs. (This is used for initial configuration only)

Property:

loglevel.dspaceExample value:loglevel.dspace = INFOInformational Note:

Log level for all DSpace-specific code (org.dspace.* packages).  By default, DSpace only provides general INFO logs (in order to keep log sizes reasonable). As necessary, you can temporarily change this setting to any of the following (ordered for most information to least): DEBUG, INFO, WARN, ERROR, FATAL

Please be aware we do not recommend running at the DEBUG level in Production for significant periods of time, as it will cause the logs to be extremely large in size.

Property:

loglevel.other (defined in log4j.properties)Example value:loglevel.other = INFOInformational Note:

Log level for other third-party tools/APIs used by DSpace (non-DSpace specific code). By default, DSpace only provides general INFO logs (in order to keep log sizes reasonable). As necessary, you can temporarily change this setting to any of the following (ordered for most information to least): DEBUG, INFO, WARN, ERROR, FATAL

Please be aware we do not recommend running at the DEBUG level in Production for significant periods of time, as it will cause the logs to be extremely large in size.

Property:

useProxies

Example Value:

useProxies = true

Informational Note:

If your DSpace instance is protected by a proxy server, in order for log4j  to log the correct IP address of the user rather than of the proxy, it must be configured to look for the X-Forwarded-For header.  This feature can be enabled by ensuring this setting is set to true.  This also affects IPAuthentication, and should be enabled for that to work properly if your installation uses a proxy server.

Previous releases of DSpace provided an example ${dspace.dir}/config/log4j.xml as an alternative to log4j.properties. This caused some confusion and has been removed. log4j continues to support both Properties and XML forms of configuration, and you may continue (or begin) to use any form that log4j supports.

...

Property:
plugin.classpath
Example Value:/opt/dspace/plugins/aPlugin.jar:/opt/dspace/moreplugins
Informational Note:Search path for third-party plugin classes.  This is a colon-separated list of directories and JAR files, each of which will be searched for plugin classes after looking in all the places where DSpace classes are found.  In this way you can designate one or more locations for plugin files which will not be affected by DSpace upgrades.

...


Configuring the Search Engine

...

 

Community Administration: Subcommunities and Collections

Property:

core.authorization.community-admin.create-subelement

Example Value:

core.authorization.community-admin.create-subelement = true

Informational Note:

Authorization for a delegated community administrator to create subcommunities or collections.

Property:

core.authorization.community-admin.delete-subelement

Example Value:

core.authorization.community-admin.delete-subelement = true

Informational Note:

Authorization for a delegated community administrator to delete subcommunities or collections.

Community Administration: Policies and The group of administrators

Property:

core.authorization.community-admin.policies

Example Value:

core.authorization.community-admin.policies = true

Informational Note:

Authorization for a delegated community administrator to administrate the community policies.

Property:

core.authorization.community-admin.admin-group

Example Value:

core.authorization.community-admin.admin-group = true

Informational Note:

Authorization for a delegated community administrator to edit the group of community admins.

Community Administration: Collections in the above Community


Property:

core.authorization.community-admin.collection.policies

Example Value:

core.authorization.community-admin.collection.policies = true

Informational Note:

Authorization for a delegated community administrator to administrate the policies for underlying collections.

Property:

core.authorization.community-admin.collection.template-item

Example Value:

core.authorization.community-admin.collection.template-item = true

Informational Note:

Authorization for a delegated community administrator to administrate the item template for underlying collections.

Property:

core.authorization.community-admin.collection.submitters

Example Value:

core.authorization.community-admin.collection.submitters = true

Informational Note:

Authorization for a delegated community administrator to administrate the group of submitters for underlying collections.

Property:

core.authorization.community-admin.collection.workflows

Example Value:

core.authorization.community-admin.collection.workflows = true

Informational Note:

Authorization for a delegated community administrator to administrate the workflows for underlying collections.

Property:

core.authorization.community-admin.collection.admin-group

Example Value:

core.authorization.community-admin.collection.admin-group = true

Informational Note:

Authorization for a delegated community administrator to administrate the group of administrators for underlying collections.

Community Administration: Items Owned by Collections in the Above Community

Property:

core.authorization.community-admin.item.delete

Example Value:

core.authorization.community-admin.item.delete = true

Informational Note:

Authorization for a delegated community administrator to delete items in underlying collections.

Property:

core.authorization.community-admin.item.withdraw

Example Value:

core.authorization.community-admin.item.withdraw = true

Informational Note:

Authorization for a delegated community administrator to withdraw items in underlying collections.

Property:

core.authorization.community-admin.item.reinstate

Example Value:

core.authorization.community-admin.item.reinstate = true

Informational Note:

Authorization for a delegated community administrator to reinstate items in underlying collections.

Property:

core.authorization.community-admin.item.policies

Example Value:

core.authorization.community-admin.item.policies = true

Informational Note:

Authorization for a delegated community administrator to administrate item policies in underlying collections.

Community Administration: Bundles of Bitstreams, related to items owned by collections in the above Community

Property:

core.authorization.community-admin.item.create-bitstream

Example Value:

core.authorization.community-admin.item.create-bitstream = true

Informational Note:

Authorization for a delegated community administrator to create additional bitstreams in items in underlying collections.

Property:

core.authorization.community-admin.item.delete-bitstream

Example Value:

core.authorization.community-admin.item.delete-bitstream = true

Informational Note:

Authorization for a delegated community administrator to delete bitstreams from items in underlying collections.

Property:

core.authorization.community-admin.item.cc-license

Example Value:

core.authorization.community-admin.item.cc-license = true

Informational Note:

Authorization for a delegated community administrator to administer licenses from items in underlying collections.

Community Administration:
The properties for collection administrators work similar to those
of community administrators,
with respect to collection administration.


Code Block
core.authorization.collection-admin.policies
core.authorization.collection-admin.template-item
core.authorization.collection-admin.submitters
core.authorization.collection-admin.workflows
core.authorization.collection-admin.admin-group


Collection Administration:
Item owned by the above CollectionThe properties for collection
administrators work similar to those of
community administrators,
with respect to administration of
items in underlying collections.


Code Block
core.authorization.collection-admin.item.delete
core.authorization.collection-admin.item.withdraw
core.authorization.collection-admin.item.reinstatiate
core.authorization.collection-admin.item.policies


Collection Administration:
Bundles of bitstreams, related to items owned by collections in the
above Community. The properties for collection administrators
work similar to those of community administrators, with respect to
administration of bitstreams related to items in underlying collections.


Code Block
core.authorization.collection-admin.item.create-bitstream
core.authorization.collection-admin.item.delete-bitstream
core.authorization.collection-admin.item-admin.cc-license


Item Administration.
The properties for item administrators work similar to those
of community and collection administrators, with respect to administration of
items in underlying collections.

core.authorization.item-admin.policies

Item Administration:
Bundles of bitstreams, related to items owned by collections in the
above Community. The properties for item administrators work
similar to those of community and collection administrators,
with respect to administration of bitstreams
related to items in underlying collections.


Code Block
core.authorization.item-admin.create-bitstream
core.authorization.item-admin.delete-bitstream
core.authorization.item-admin.cc-license


...

Property:

http.proxy.host

Example Value

http.proxy.host = proxy.myu.edu

Informational Note

Enter the host name without the port number.

Property:

http.proxy.port

Example Value

http.proxy.port = 2048

Example Value

http.proxy.port = 2048

Informational NoteEnter the port number for the proxy server.

Property

useProxies

Example Value:

useProxies = true

Informational Note:

If your DSpace instance is protected by a proxy server, in order for log4j  to log the correct IP address of the user rather than of the proxy, it must be configured to look for the X-Forwarded-For header.  This feature can be enabled by ensuring this setting is set to true (default is false).  This also affects IPAuthentication, and should be enabled for that to work properly if your installation uses a

Informational Note

Enter the port number for the proxy server.

Configuring Media Filters

...

These settings control three aspects of the submission process: thesis submission permission, whether or not a bitstream file is required when submitting to a collection and whether to show a progress bar during the file upload. 


Property:

webui.submit.blocktheses

Example Value:

webui.submit.blocktheses = false

Informational Note:

Controls whether or not the UI blocks a submission which is marked as a thesis.

Property:

webui.submit.upload.required

Example Value:

webui.submit.upload.required = true

Informational Note:

Whether or not a file is required to be uploaded during the "Upload" step in the submission process. The default is true. If set to "false", then the submitter (human being) has the option to skip the uploading of a file.

Property:

webui.submit.upload.html5

Example Value:webui.submit.upload.html5 = true
Informational Note:If the browser supports it, JSPUI uses html5 File API to enhance file upload. If this property is set to false the enhanced file upload is not used even if the browser would support it.

Property:

webui.submit.upload.progressbar

Example Value:
webui.submit.upload.progressbar = true
Informational Note:

Whether to show a progress bar during file upload. Please note that to work this feature requires a JSON endpoint (json/uploadProgress) that is enabled by default. See the named plugin for the interface org.dspace.app.webui.json.JSONRequest

org.dspace.app.webui.json.UploadProgressJSON = uploadProgress

This property is actually supported only by the JSPUI.  The XMLUI doesn't yet provide a progress bar indicator for file upload.

...

DSpace 4.0 introduced integration with the Sherpa/RoMEO Publishers Policy Database in order to allow displaying the publisher policy in the submission upload step. The submission step interface is available in JSPUI (since DSpace 4.0) and in XMLUI (since DSpace 5.0) and enabled by default, however to use it in production (over 500 requests per day), you must register for a free API key (see below for details). 


Property:

webui.submission.sherparomeo-policy-enabled

Example Value:

webui.submission.sherparomeo-policy-enabled = true

Informational Note:

Controls whether or not the UI submission should try to use the Sherpa/RoMEO Publishers Policy Database Integration (default true)

Property:

sherpa.romeo.url

Example Value:

sherpa.romeo.url = http://www.sherpa.ac.uk/romeo/api29.php

Informational Note:

The Sherpa/RoMEO endpoint. Shared with the authority control feauture for Journal Title autocomplete see AuthorityControlSettings

Property:

sherpa.romeo.apikey

Example Value:
sherpa.romeo.apikey = YOUR-API-KEY
Informational Note:

Allow to use a specific API key to raise the usage limit (500 calls/day for unregistred user).

You can register for a free api access key at http://www.sherpa.ac.uk/news/romeoapikeys.htm

...

  • The URL of the CC License is stored in the "dc.rights.uri" metadata field (or whatever field is configured in the "cc.license.uri" setting below)
  • The name of the CC License is stored in the "dc.rights" metadata field (or whatever field is configured in the "cc.license.name" setting below). This only occurs if "cc.submit.setname=true" (default value)
  • The RDF version of the CC License is stored in a bitstream named "license_rdf" in the CC-LICENSE bundle (as long as "cc.submit.addbitstream=true", which is the default value)

 


Warning
titleBehaviour change

Since DSpace 5.6 Creative Commons licensing is captured in exactly the same way in each UI and some fix has been introduced.

For JSPUI users this mean:

  • The full (HTML) text of the CC License is not longer stored in a bitstream named "license_txt" in the CC-LICENSE bundle
  • Previous existent license_txt remain untouched but new item will not receive such bitstream

For XMLUI users:

  • the RDF version of the CC License is now stored properly without the Creative Commons API XML envelop (
    Jira
    serverDuraSpace JIRA
    serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
    keyDS-3326
    )
  • previous RDF license, i.e. the one associated with item created with version less than 5.6 remain untouched

...


The following configurations (in dspace.cfg) relate to the Creative Commons license process:

...

Property:

webui.browse.index.<n>

Example Value:

webui.browse.index.5 = lcAuthor:metadataAuthority:dc.contributor.author:authority

Informational Note: 


Tag cloud

Apart from the single (type=metadata) and full (type=item) browse pages, tag cloud is a new way to display the unique values of a metadata field.

...

Property:

plugin.named.org.dspace.content.authority.ChoiceAuthority

Example Value:


Code Block
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


Informational Note:

--

Property:

plugin.selfnamed.org.dspace.content.authority.ChoiceAuthority

Example Value:


Code Block
plugin.selfnamed.org.dspace.content.authority.ChoiceAuthority = \
	org.dspace.content.authority.DCInputAuthority


Property:

lcname.url

Example Value:

lcname.url = http://alcme.oclc.org/srw/search/lcnaf_

The Linked Data Service at the Library of Congress might be a better, and more stable, option: http://id.loc.gov/authorities/names.html

Informational Note:

Location (URL) of the Library of Congress Name Service

Property:

sherpa.romeo.url / sherpa.romeo.apikey

Informational Note:

Please refers to the Sherpa/RoMEO Publishers Policy Database Integration section for details about such properties. See Configuring the Sherpa/RoMEO Publishers Policy Database Integration

Property:

orcid.api.url

Example Value:orcid.api.url = https://pub.orcid.org/v2.1

Informational Note:

Location (URL) of the ORCID v2 Public API

Property:

authority.minconfidence

Example Value:

authority.minconfidence = ambiguous

Informational Note:

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 org.dspace.content.authority.Choices source for descriptions.

Property:

xmlui.lookup.select.size

Example Value:

xmlui.lookup.select.size = 12

Informational Note:

This property sets the number of selectable choices in the Choices lookup popup

...

Property:

webui.itemdisplay.default

Example Value:


Code Block
webui.itemdisplay.default = dc.title, dc.title.alternative, \
           dc.contributor.*, dc.subject, dc.data.issued(date), \
           dc.publisher, dc.identifier.citation, \
           dc.relation.ispartofseries, dc.description.abstract, \
           dc.description, dc.identifier.govdoc, \
           dc.identifier.uri(link), dc.identifier.isbn, \
           dc.identifier.issn, dc.identifier.ismn, dc.identifier


Informational Note:

This is used to customize the DC metadata fields that display in the item display (the brief display) when pulling up a record. The format is: <schema>.<element>.<_optional_qualifier> . In place of the qualifier, one can use the wildcard "*" to include all fields of the same element, or, leave it blank for unqualified elements. Additionally, two additional options are available for behavior/rendering: (date) and (link). See the following examples:

dc.title = Dublin Core element "title" (unqualified)
dc.title.alternative = DC element "title", qualifier "alternative"
dc.title.* = All fields with Dublin Core element 'title' (any or no qualifier)
dc.identifier.uri(link) = DC identifier.uri, rendered as a link
dc.date.issued(date) = DC date.issued, rendered as a date
The Messages.properties file controls how the fields defined above will display to the user. If the field is missing from the Messages.properties file, it will not be displayed. Look in Messages.properties under the metadata.dc.<field>. Example:
metadata.dc.contributor.other = Authors
metadata.dc.contributor.author = Authors
metadata.dc.title.* = Title
Please note: The order in which you place the values to the property key control the order in which they will display to the user on the outside world. (See the Example Value above).

Property:


Code Block
webui.resolver.1.urn
webui.resolver.1.baseurl
webui.resolver.2.urn
webui.resolver.2.baseurl


Example Value:


Code Block
webui.resolver.1.urn = doi
webui.resolver.1.baseurl = http://dx.doi.org/
webui.resolver.2.urn = hdl
webui.resolver.2.baseurl = http://hdl.handle.net/


Informational Note:

When using "resolver" in webui.itemdisplay to render identifiers as resolvable links, the base URL is taken from <code>webui.resolver.<n>.baseurl<code> where <code>webui.resolver.<n>.baseurl<code> matches the urn specified in the metadata value. The value is appended to the "baseurl" as is, so the baseurl needs to end with the forward slash almost in any case. If no urn is specified in the value it will be displayed as simple text. For the doi and hdl urn defaults values are provided, respectively http://dc.doi.org and http://hdl.handle.net are used. If a metadata value with style "doi", "handle" or "resolver" matches a URL already, it is simply rendered as a link with no other manipulation.

Property: webui.preferred.identifier
Example Value: webui.preferred.identifier = handle
Informational Note: At the top of the item view a persistent identifier is shown to be used to refer to this item. If you use Item Level Versioning and DSpace is configured to, it shows a version history. Per default DSpace uses handle as preferred identifier. If you've configured DSpace to register DOIs you can decide to use DOIs instead of handles at the top of the item view and within the version history. Set the property webui.preferred.identifier = doi to do so.
Property: webui.identifier.strip-prefixes
Example Value: webui.identifier.strip-prefixes = true
Informational Note:In the version history Persistent Identifiers can be shown with or without their prefixes, e.g. a handle can be shown as handle:10673/6 or just as 10673/6. A DOI can be  can be shown as 10.5072/example-doi-123 or as doi:105072/example-doi-123. This property controlls whether the handles are stripped (default) or not.

Property:

plugin.single.org.dspace.app.webui.util.StyleSelection

Example Value:


Code Block
plugin.single.org.dspace.app.webui.util.StyleSelection = \
  org.dspace.app.web.util.CollectionStyleSelection
  #org.dspace.app.web.util.MetadataStyleSelection


Informational Note:

Specify which strategy to use for select the style for an item.

Property:

webui.itemdisplay.thesis.collections

Example Value:

webui.itemdisplay.thesis.collections = 123456789/24, 123456789/35

Informational Note:

Specify which collections use which views by Handle.

Property:

webui.itemdisplay.label.restricted.bitstreams

Example Value:webui.itemdisplay.label.restricted.bitstreams = true
Informational Note:
If set to all, all users will get a warning if access restrictions are in place for an bitstream. If a resource policy with an unreached start date for anonymous users is in place, the date is shown as well. Any other values than "all" will suppress the warning.
Should access restricted bitstreams be labeled as such? If set true, all bitstreams which cannot currently not be read by an anonymous user are labeled as being access restricted. If a resource policy to allow read access for anonymous users with an unreached start date exists, this date is shown as well.

Property:


Code Block
webui.itemdisplay.metadata-style
webui.itemdisplay.metadata-style


Example Value:


Code Block
webui.itemdisplay.metadata-style = schema.element[.qualifier|.*]
webui.itemdisplay.metadata-style = dc.type


Informational Note:

Specify which metadata to use as name of the style

Property:

webui.itemlist.columns

Example Value:


Code Block
webui.itemlist.columns = thumbnail, dc.date.issued(date), dc.title, \
          dc.contributor.*


Informational Note:

Customize the DC fields to use in the item listing page. Elements will be displayed left to right in the order they are specified here. The form is <schema prefix>.<element>[.<qualifier> | .*][(date)], ...
Although not a requirement, it would make sense to include among the listed fields at least the date and title fields as specified by the webui.browse.index configuration options in the next section mentioned. (cf.)
If you have enabled thumbnails (webui.browse.thumbnail.show), you must also include a 'thumbnail' entry in your columns‚ this is where the thumbnail will be displayed.

Property:

webui.itemlist.width

Example Value:

webui.itemlist.width = *, 130, 60%, 40%

Informational Note:

You can customize the width of each column with the following line--you can have numbers (pixels) or percentages. For the 'thumbnail' column, a setting of '*' will use the max width specified for browse thumbnails (cf. webui.browse.thumbnail.maxwidth, thumbnail.maxwidth)

Property:


Code Block
webui.itemlist.browse.<index name>.sort.<sort name>.columns
webui.itemlist.sort.<sort name>.columns
webui.itemlist.browse.<browse name>.columns
webui.itemlist.<sort or index name>.columns


Example Value:

 


Informational Note:

You can override the DC fields used on the listing page for a given browse index and/or sort option. As a sort option or index may be defined on a field that isn't normally included in the list, this allows you to display the fields that have been indexed/sorted on. There are a number of forms the configuration can take, and the order in which they are listed below is the priority in which they will be used (so a combination of an index name and sort name will take precedence over just the browse name).In the last case, a sort option name will always take precedence over a browse index name. Note also, that for any additional columns you list, you will need to ensure there is an itemlist.<field name> entry in the messages file.

Property:

webui.itemlist.dateaccessioned.columns

Example Value:

webui.itemlist.dateaccessioned.columns = thumbnail, dc.date.accessioned(date), dc.title, dc.contributor.*

Informational Note:

This would display the date of the accession in place of the issue date whenever the dateaccessioned browsed index or sort option is selected. Just like webui.itemlist.columns, you will need to include a 'thumbnail' entry to display the thumbnails in the item list.

Property:

webui.itemlist.dateaccessioned.widths

Example Value:

webui.itemlist.dateaccessioned.widths = *, 130, 60%, 40%

Informational Note:

As in the aforementioned property key, you can customize the width of the columns for each configured column list, substituting ".widths" for ".columns" in the property name. See the setting for webui.itemlist.widths for more information.

Property:

webui.itemlist.tablewidth

Example Value:

webui.itemlist.tablewidth = 100%

Informational Note:

You can also set the overall size of the item list table with the following setting. It can lead to faster table rendering when used with the column widths above, but not generally recommended.

Property:

webui.session.invalidate

Example Value:

webui.session.invalidate = true

Informational Note:

Enable or disable session invalidation upon login or logout. This feature is enabled by default to help prevent session hijacking but may cause problems for shibboleth, etc. If omitted, the default value is "true". [Only used for JSPUI authentication].

Property:

jspui.google.analytics.key

Example Value: jspui.google.analytics.key = UA-XXXXXX-X
Informational Note:

If you would like to use Google Analytics to track general website statistics then use the following parameter to provide your Analytics key.

 


JSPUI Item Mapper

Because the item mapper requires a primitive implementation of the browse system to be present, we simply need to tell that system which of our indexes defines the author browse (or equivalent) so that the mapper can list authors' items for mapping

...

Property:

sfx.server.url

Example Value:

sfx.server.url = http://sfx.myu.edu:8888/sfx? 


sfx.server.url = http://worldcatlibraries.org/registry/gateway?

Informational Note:

SFX query is appended to this URL. If this property is commented out or omitted, SFX support is switched off.

...

Code Block
title\[dspace\]/config/modules/workflow.cfg
#Allow the reviewers to add/edit/remove files from the submission
#When changing this property you might want to alert submitters in the license that reviewers can alter their files
workflow.reviewer.file-edit=false

...


Both workflow systems send notifications on new Items waiting to be reviewed to all EPersons that may resolve those. Tasks can be taken to avoid that two EPersons work on the same task at the same time without knowing from each other. When a EPerson returns a task to the pool without resolving it (by accepting or rejecting the submission), another E-Mail is sent. In case you only want to be notified of completely new tasks entering a step of the workflow system, you may switch off notifications on tasks returned to the pool by setting workflow.notify.returend.tasks to false in config/modules/workflow.cfg as shown below:

...

JSPUI: Per item visual indicators for browse and search results

 


Visual indicators per item allow users to mark items in browse and search results. This could be useful in many scenarios, some of them follow:

...

  1. Multiple marks can be added per item (i.e. mark the type of the item and the availability of the bitstreams) 
  2. Easy configuration of the strategy of what mark to display in every item 
  3. Marks based on images or a generic class (i.e. a glyphicon icon for bootstrap) 
  4. Display tooltip when hovering the mark + localization of the tooltip 
  5. Easy addtion of new strategies for any type of mark the user desires 
  6. Add css styles for the user to configure the position of the marks in the list row 

...


Some theory:

A mark is an instance of the class: org.dspace.app.itemmarking.ItemMarkingInfo.

...

Moreover, this strategy add a link in the mark (in case there are bitstreams in the item) to the first bitstream of the item

...


How to:

In order to enable a mark for the result or browse list you need to change the option:

...

Code Block
languagexml
<bean class="org.dspace.app.itemmarking.ItemMarkingInfo" id="type1MarkingInfo">
       <property name="classInfo" value="glyphicon glyphicon-picture"/>
       <property name="tooltip" value="itemlist.mark.type1MarkingInfo"/>
</bean>
<bean class="org.dspace.app.itemmarking.ItemMarkingInfo" id="type2MarkingInfo">
       <property name="imageName" value="image/type2.png"/>
       <property name="tooltip" value="itemlist.mark.type2MarkingInfotype1MarkingInfo"/>
</bean>

Tooltip property contains the localized key to display.

Keep in mind that the Strategy that you may write can have its own logic on how to create the ItemMarkingInfo per item. The only requirement of the feature is to add in the Spring configuration file the initial beans one for each mark you have declared in the dspace.cfg file.

 

Styling:

The title for the column of each mark is titled based on the localized key “itemlist.mark_[value]”, so you just need to add the specific keys in the messages.propertied files.

Moreover, the following CSS styles are applied to the various aspects of the mark:

  • mark_[value]_th: a style applied to the column header
  • mark_[value]_tr: a style applied to the each row

Add these classes to the css file and apply any style you like (like centering the text or the image)

Recognizing Web Spiders (Bots, Crawlers, etc.)

DSpace can often recognize that a given access request comes from a web spider that is indexing your repository.  These accesses can be flagged for separate treatment (perhaps exclusion) in usage statistics.  This requires patterns to match against incoming requests.  These patterns exist in files that you will find in config/spiders.

In the spiders directory itself, you will find a number of files provided by iplists.com.  These files contain network address patterns which have been discovered to identify a number of known indexing services and other spiders.  You can add your own files here if you wish to exclude more addresses that you know of.  You will need to include your files' names in the list configured in config/modules/solr-statistics.cfg.  The iplists.com-*.txt files can be updated using a tool provided by DSpace.  See SOLR Statistics for details.

In the spiders directory you will also find two subdirectories.  agents contains files filled with regular expressions, one per line.  An incoming request's User-Agent header is tested with each expression found in any of these files until an expression matches.  If there is a match, the request is marked as being from a spider, otherwise not.  domains similarly contains files filled with regular expressions which are used to test the domain name from which the request comes.  You may add your own files of regular expressions to either directory if you wish to test requests with patterns of your own devising.

webui.itemdisplay.label.restricted.bitstreams 

Many configuration names/keys have changed!

 

If you are upgrading from an earlier version of DSpace, you will need to be aware that many configuration names/keys have changed. Because Apache Commons Configuration allows for auto-overriding of configurations, all configuration names/keys in different *.cfg files MUST be uniquely named (otherwise accidental, unintended overriding may occur).

In order to compensate for this, all modules/*.cfg files had their configurations renamed to be prepended with the module name.  As a basic example, all the configuration settings within the modules/oai.cfg configuration now start with "oai.".

Additionally, while the local.cfg may look similar to the old build.properties, many of its configurations have slightly different names. So, simply copying your build.properties into a local.cfg will NOT work.

This means that DSpace 5.x (or below) configurations are NOT compatible with the Enhanced Configuration Scheme.  While you obviously can use your old configurations as a reference, you will need to start with fresh copy of all configuration files, and reapply any necessary configuration changes (this has always been the recommended procedure). However, as you'll see in the next section, you'll likely want to do that anyways in order to take full advantage of the new local.cfg file.


<bean class="org.dspace.app.itemmarking.ItemMarkingInfo" id="type2MarkingInfo">
       <property name="imageName" value="image/type2.png"/>
       <property name="tooltip" value="itemlist.mark.type2MarkingInfo"/>
</bean>

Tooltip property contains the localized key to display.

Keep in mind that the Strategy that you may write can have its own logic on how to create the ItemMarkingInfo per item. The only requirement of the feature is to add in the Spring configuration file the initial beans one for each mark you have declared in the dspace.cfg file.


Styling:

The title for the column of each mark is titled based on the localized key “itemlist.mark_[value]”, so you just need to add the specific keys in the messages.propertied files.

Moreover, the following CSS styles are applied to the various aspects of the mark:

  • mark_[value]_th: a style applied to the column header
  • mark_[value]_tr: a style applied to the each row

Add these classes to the css file and apply any style you like (like centering the text or the image)

Recognizing Web Spiders (Bots, Crawlers, etc.)

DSpace can often recognize that a given access request comes from a web spider that is indexing your repository.  These accesses can be flagged for separate treatment (perhaps exclusion) in usage statistics.  This requires patterns to match against incoming requests.  These patterns exist in files that you will find in config/spiders.

In the spiders directory itself, you will find a number of files provided by iplists.com.  These files contain network address patterns which have been discovered to identify a number of known indexing services and other spiders.  You can add your own files here if you wish to exclude more addresses that you know of.  You will need to include your files' names in the list configured in config/modules/solr-statistics.cfg.  The iplists.com-*.txt files can be updated using a tool provided by DSpace.  See SOLR Statistics for details.

In the spiders directory you will also find two subdirectories.  agents contains files filled with regular expressions, one per line.  An incoming request's User-Agent header is tested with each expression found in any of these files until an expression matches.  If there is a match, the request is marked as being from a spider, otherwise not.  domains similarly contains files filled with regular expressions which are used to test the domain name from which the request comes.  You may add your own files of regular expressions to either directory if you wish to test requests with patterns of your own devising.[dspace]/config/config-definition.xml


Command-line Access to Configuration Properties

...

nameargumentmeaning

--property

-p

namethe name of the desired configuration property.  This option is required.

--module

-m

namethe name of the module in which the property is found.  If omitted, the value of --property is the entire name.  If used, the name will be composed as module.property.  For example, "-m dspace -p url" will look up the value of dspace.url.

--raw

-r

 


if used, this prevents the substitution of other property values into the value of the requested property.

It is also useful to see all of the propery values when a specific property has an array of values (i.e. the configuration supports specifying multiple values). Otherwise, by default , dsprop may only return the first value in the array.

--help

-h

-?

 


Display help similar to this table.

...