Versions Compared

Key

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

...

  1. A developer or user downloads a copy of DSpace to build & install
  2. He/She can edit the [dspace-source]/build.properties to specify the very basic settings for building & installing DSpace
    1. OR, alternatively he/she can copy/rename the "build.properties" to a different "*.properties" file & edit it.  For example, you could choose  to create a separate properties file for each environment (dev.properties, test.properties, prod.properties)
  3. He/She can then build the DSpace Installation Package using the *.properties file they choose
    1. Running simply "mvn package" will always use the default "build.properties" settings.
    2. Passing in the "-Denv" (environment) flag, will cause the build process to use a custom properties file.  Some examples:
      1. "mvn package -Denv=test" would build DSpace using a custom file named [dspace-source]/test.properties
      2. "mvn package -Denv=local" would build DSpace using a custom file named [dspace-source]/local.properties
      3. "mvn package -Denv=john" would build DSpace using a custom file named [dspace-source]/john.properties
  4. No matter which build options are used, the values in the enabled properties file will be automatically copied over to your [dspace-source]/dspace/target/dspace-[version]-build/dspace.cfg file in the DSpace Installation Package. That way they can be installed using the appropriate Apache Ant command (see Installing DSpace for all the details of the full install.)

 


Note
titlebuild.properties file is only used with building/compiling DSpace

It is worth noting that the [dspace-source]/build.properties file (or custom properties file) is ONLY used in the act of building/installing/upgrading DSpace. During that build/install/upgrade process, any setting currently available in the build.properties will be inherited (copied) to the dspace.cfg file. However, if you need to add new settings to your build.properties file, you will need to modify your dspace.cfg file in order for it to be inherited (see the note below titled "You may add new settings to your build.properties or custom *.properties").

Once DSpace is installed, the system only uses the settings in your [dspace]/config/dspace.cfg file.  So, the build.properties file will not be copied into your installation directory, and all runtime configurations are pulled from the final dspace.cfg file.

...

Info
titleYou may add new settings to your build.properties or custom *.properties

Based on your institution's needs, you may wish to add settings to your own build.properties (or custom *.properties) file. This is actually a relatively easy process.

Any existing DSpace configuration (any config in dspace.cfg or in any configuration file under [dspace-src]/dspace/config/modules/*.cfg) can be "moved" into your local build.properties file via the following process:

  1. First, copy the existing configuration from the *.cfg file into your local build.properties file.  You can actually choose to rename this configuration in build.properties, if it makes more sense. Essentially, the name of the new configuration in build.properties is entirely up to you.
    1. For example, if you want to copy the LDAP "provider_url" from [dspace-src]/dspace/config/modules/authentication-ldap.cfg to your build.properties, you may wish to rename it to "ldap.provider_url" within build.properties
    2. You can also choose to keep the name of the configuration the same in build.properties. For example, if you wish to move the "xmlui.google.analytics.key" (from dspace.cfg) to your build.properties, you could keep the name the same.
  2. Second, you will need to modify the corresponding configuration file (the config file you copied the setting from) so that it now references your newly added build.properties setting. This is achieved by using the "${setting-in-build.properties}" placeholder.
    1. For example, to reference a new "ldap.provider_url" setting in build.properties (mentioned in 1.a above) , just modify the [dspace-src]/dspace/config/modules/authentication-ldap.cfg file to have a line that says provider_url=${ldap.provider_url} (The first part is the name of the actual config in authentication-ldap.cfg, and the second part is the name of the config in build.properties)
    2. Another example: To reference a new "xmlui.google.analytics.key" setting in build.properties (mentioned in 1.b above), just modify the [dspace-src]/dspace/config/dspace.cfg file to have a line that says xmlui.google.analytics.key=${xmlui.google.analytics.key}  (The first part is the name of the actual config in dspace.cfg, and the second part is the name of the config in build.properties)
  3. Finally, rebuild DSpace (using Maven), and redeploy (using Ant).  The new settings in your build.properties file will automatically be copied into your configuration file during the rebuild process.

...


The dspace.cfg Configuration Properties File

...

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

Info

Since DSpace 4.0 the advanced search module named Discovery (based on Apache SOLR) is the default search provider. It provides up-to-date features, such as filtering/faceting, hit highlighting, search snippets, etc.

A detailed documentation is available for customization, see Discovery

Please refer to Legacy methods for re-indexing content if you want re-enable and customize the "legacy" DSpace search engine (based on Apache Lucene).

Handle Server Configuration

The CNRI Handle system is a 3rd party service for maintaining persistent URL's. For a nominal fee, you can register a handle prefix for your repository. As a result, your repository items will be also available under the links http://handle.net/<<handle prefix>>/<<item id>>. As the base url of your repository might change or evolve, the persistent handle.net URL's secure the consistency of links to your repository items. For complete information regarding the Handle server, the user should consult The Handle Server section of Installing DSpace.

...

 

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


...

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 (new in DSpace 4.0)

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)

 

...



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:

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:

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:


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.

...

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.

...

webui.submit.upload.required 


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:

...

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.

...