Page History
DSpace System Documentation: Configuration
There are a numbers of ways in which DSpace may be configured and/or customized. This chapter of the documentation will discuss the configuration of the software and will also reference customizations that may be performed in the chapter following.
...
The full table of contents follows:
Table of Contents | ||||||
---|---|---|---|---|---|---|
|
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. Of the several configuration files which you will work with, it is the dspace.cfg file you need to learn to configure first and foremost.
...
The property value may contain references to other configuration properties, in the form ${property.name
}. This follows the ant convention of allowing references in property files. A property may not refer to itself. Examples:
Code Block |
---|
property.name = word1 ${other.property.name} more words
property2.name = ${dspace.dir}/rest/of/path
|
Property values can include other, previously defined values, by enclosing the property name in ${...}. For example, if your dspace.cfg contains:
Code Block |
---|
dspace.dir = /dspace
dspace.history = ${dspace.dir}/history |
...
Things you should know about editing dspace.cfg
files.
It is important to remember that there are * two dspace.cfg
files after an installation of DSpace.*
The "source" file that is found in {{\Wiki Markup [dspace-source
\]/dspace/config/dspace.cfg
}} The "runtime" file that is found in {{\Wiki Markup [dspace
\]/config/dspace.cfg
}}
The runtime file is supposed to be the *copy* of the source file, which is considered the master version. However, the DSpace server and command programs only look at the _runtime_ configuration file, so when you are revising your configuration values, it is tempting to _only edit the runtime file_. *DO NOT* do this. Always make the same changes to the source version of {{dspace.cfg
}} in addition to the runtime file. The two files should always be identical, since the source {{dspace.cfg
}} will be the basis of your next upgrade.
To keep the two files in synchronization, you can edit your files in {{\ Wiki Markup [dspace-source
\]/dspace/config/
}} and then you would run the following commands:
Code Block |
---|
cd [dspace-source]/dspace/target/dspace- mvn package cd [dspace-source]/dspace/target/dspace-<version>-build.dir ant update_configs |
This will copy the source {{ Wiki Markup dspace.cfg
}} (along with other configuration files) into the runtime ({{\[dspace
\]/config
}}) directory.
You should remember that after editing your configuration file(s), and you are done and wish to implement the changes, you will need to:
...
- Run {{
ant
\-Dconfig=
\[dspace
\]/config/dspace.cfg
update
}} if you are updating your {{dspace.cfg
}} file and wish to see the changes appear. Follow the usual sequence with copying your webapps.unmigrated-wiki-markup - If you edit _dspace.cfg_ in _\[dspace-source\]/dspace/config/_, you should then run '_ant init_configs_' in the directory _\[dspace-source\]/dspace/target/dspace-1.5.2-build.dir_ so that any changes you may have made are reflected in the configuration files of other applications, for example Apache. You may then need to restart those applications, depending on what you changed.
The dspace.cfg
Configuration Properties File
...
Wording of E-mail Messages
Sometimes DSpace automatically sends e-mail messages to users, for example, to inform them of a new work flow task, or as a subscription e-mail alert. The wording of emails can be changed by editing the relevant file in {{\ Wiki Markup [dspace
\]/config/emails
}} . . Each file is commented. Be careful to keep the right number 'placeholders' (e.g._\{2\}_).
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
...
Property: |
| ||
Example Value: |
| ||
Informational Note: | This is Asset (bitstream) store number 0 (Zero). You need not place your assetstore under the /dspace directory, but may want to place it on a different logical volume on the server that DSpace resides. So, you might have something like this: | ||
Property: |
| ||
Example Value: |
| ||
Informational Note: | This property specifies extra asset stores like the one above, counting from one (1) upwards. This property is commented out (#) until it is needed. | ||
Property: |
| ||
Example Value: |
| ||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="eb56ef6c-cc0e-4a6c-9426-9897345a3da6"><ac:plain-text-body><![CDATA[ | Informational Note: | Informational Note: Specify the number of the store to use for new bitstreams with this property. The default is 0 [zero] which corresponds to the 'assestore.dir' above. As the asset store number is stored in the item metadata (in the database), always keep the assetstore numbering consistent and don't change the asset store number in the item metadata. | ]]></ac:plain-text-body></ac:structured-macro> |
Info | ||
---|---|---|
| ||
In the examples above, you can see that your storage does not have to be under the |
...
Property: |
| ||
Example Value: |
| ||
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:
| ||
Property: |
| ||
Example value: |
| ||
Informational Note: | This is where to put the logs. (This is used for initial configuration only) | ||
Property: |
| ||
Example Value: |
| ||
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. |
...
In the example above, search.index.1
and search.index.2
and search.index.3
are configured as the author
search field. The author
index is created by Lucene indexing all dc.contributor.*
,dc.creator.*
and description.statementofresponsibility
metadata fields.
After changing the configuration run {{ Wiki Markup /
\[dspace
\]/bin/dspace
index-init
}} to regenerate the indexes.
While the indexes are created, this only affects the search results and has no effect on the search components of the user interface. One will need to customize the user interface to reflect the changes, for example, to add the a new search category to the Advanced Search.
...
You can also implement more dynamic or configurable Media/Format Filters which extend SelfNamedPlugin
.
Info | ||
---|---|---|
| ||
For more information on Media/Format Filters, see the section on Transforming DSpace Content (MediaFilters). |
Crosswalk and Packager Plugin Settings
The subsections below give configuration details based on the types of crosswalks and packager plugins you need to implement.
Info | ||
---|---|---|
| ||
For more information on using Packagers and Crosswalks, see the section on Importing and Exporting Content via Packages. |
Configurable MODS Dissemination Crosswalk
...
Properties: |
| ||||
Example Values: |
| ||||
Informational Note: | This defines a crosswalk named MODS whose | <ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="e307b528-649c-4330-ae50-3f195083fdd3"><ac:plain-text-body><![CDATA[ | Informational Note: | This defines a crosswalk named MODS whose configuration comes from the file | ]]></ac:plain-text-body></ac:structured-macro> |
The MODS crosswalk properties file is a list of properties describing how DSpace metadata elements are to be turned into elements of the MODS XML output document. The property name is a concatenation of the metadata schema, element name, and optionally the qualifier. For example, the contributor.author element in the native Dublin Core schema would be: dc.contributor.author. The value of the property is a line containing two segments separated by the vertical bar ("|
"_): The first part is an XML fragment which is copied into the output document. The second is an XPath expression describing where in that fragment to put the value of the metadata element. For example, in this property:
...
Code Block |
---|
crosswalk.submissionPluginName.stylesheet = 1 2 3 4 |
{{ Wiki Markup crosswalk
}} first part of the property key.
{{submission}} second part of the property key.
{{PluginName}} is the name of the plugin. The _path_ value is the path to the file containing the crosswalk stylesheet (relative to {{/\[dspace\]/config}}).
Here is an example that configures a crosswalk named "LOM" using a stylesheet in {{\[dspace\
submission
second part of the property key.
PluginName
is the name of the plugin. The path value is the path to the file containing the crosswalk stylesheet (relative to /[dspace]/config
).
Here is an example that configures a crosswalk named "LOM" using a stylesheet in [dspace]/config/crosswalks/d-lom.xsl
}}:
{{crosswalk.submission.LOM.stylesheet
=
crosswalks/d-lom.xsl
}}
A dissemination crosswalk can be configured by starting with the property key _crosswalk.dissemination_. Example:
{{crosswalk.dissemination.PluginName.stylesheet
=
path
}}
The _PluginName_ is the name of the plugin (\!) . The _path_ value is the path to the file containing the crosswalk stylesheet (relative to {{/\[dspace\]/config}} PluginName is the name of the plugin (!) . The path value is the path to the file containing the crosswalk stylesheet (relative to /[dspace]/config
).
You can make two different plugin names point to the same crosswalk, by adding two configuration entries with the same path:
Code Block |
---|
crosswalk.submission.MyFormat.stylesheet = crosswalks/myformat.xslt
crosswalk.submission.almost_DC.stylesheet = crosswalks/myformat.xslt |
The dissemination crosswalk must also be configured with an XML Namespace (including prefix and URI) and an XML schema for its output format. This is configured on additional properties in the DSpace configuration:
Code Block |
---|
crosswalk.dissemination.PluginName.namespace.Prefix = namespace-URI
crosswalk.dissemination.PluginName.schemaLocation = schemaLocation value |
For example:
Code Block |
---|
crosswalk.dissemination.qdc.namespace.dc = http://purl.org/dc/elements/1.1/
crosswalk.dissemination.qdc.namespace.dcterms = http://purl.org/dc/terms/
crosswalk.dissemination.qdc.schemalocation = http://purl.org/dc/elements/1.1/ \
http://dublincore.org/schemas/xmls/qdc/2003/04/02/qualifieddc.xsd |
...
Testing the submission crosswalk is more difficult, so we have supplied a command-line utility to help. It calls the crosswalk plugin to translate an XML document you submit, and displays the resulting intermediate XML (DIM). Invoke it with:
Code Block |
---|
[dspace]/bin/dspace dsrun
org.dspace.content.crosswalk.XSLTIngestionCrosswalk [-l] plugin input-file |
...
Properties: |
| ||
Example Value: |
| ||
Properties: |
| ||
Example Value: |
| ||
Properties: |
| ||
Example Value: |
| ||
Properties: |
| ||
Example Value: |
| ||
Informational Note: | Configuration of the QDC Crosswalk dissemination plugin for Qualified DC. (Add lower-case name for OAI-PMH. That is, change QDC to qdc.)}} |
...
In the property key "{{crosswalk.qdc.properties.QDC
}}" the value of this property is a path to a separate properties file containing the configuration for this crosswalk. The pathname is relative to the DSpace configuration directory {{/
\[dspace
\]/config
}} . Referring back to the "Example Value" for this property key, one has {{crosswalks/qdc.properties
}} which defines a crosswalk named {{QDC
}} whose configuration comes from the file {{\[dspace
\]/config/crosswalks/qdc.properties
}} .
You will also need to configure the namespaces and schema location strings for the XML output generated by this crosswalk. The namespaces properties names are formatted:
...
You can add names for the existing plugins, and add new plugins, by altering these configuration properties. See the Plugin Manager architecture for more information about plugins.
...
Property: |
|
Example Value: |
|
Informational Note: | Embargo terms will be stored in the item metadata. This property determines in which metadata field these terms will be stored. An example could be dc.embargo.terms |
Property: |
|
Example Value: |
|
Informational Note: | The Embargo lift date will be stored in the item metadata. This property determines in which metadata field the computed embargo lift date will be stored. You may need to create a DC metadata field in your Metadata Format Registry if it does not already exist. An example could be dc.embargo.liftdate |
Property: |
|
Example Value: |
|
Informational Note: | You can determine your own values for the embargo.field.terms property (see above). This property determines what the string value will be for indefinite embargos. The string in terms field to indicate indefinite embargo. |
Property: |
|
Example Value: |
|
Informational Note: | To implement the business logic to set your embargos, you need to override the EmbargoSetter class. If you use the value DefaultEmbargoSetter, the default implementation will be used. |
Property: |
|
Example Value: |
|
Informational Note: | To implement the business logic to lift your embargos, you need to override the EmbargoLifter class. If you use the value DefaultEmbargoLifter, the default implementation will be used. |
Key Recommendations:
- If using existing metadata fields, avoid any that are automatically managed by DSpace. For example, fields like 'date.issued' or 'date.accessioned' are normally automatically assigned, and thus must not be recruited for embargo use.
- Do not place the field for 'lift date' in submission screens. This can potentially confuse submitters because they may feel that they can directly assign values to it. As noted in the life-cycle above, this is erroneous: the lift date gets assigned by the embargo system based on the terms. Any pre-existing value will be over-written. But see next recommendation for an exception.
- As the life-cycle discussion above makes clear, after the terms are applied, that field is no longer actionable in the embargo system. Conversely, the 'lift date' field is not actionable until the application. Thus you may want to consider configuring both the 'terms' and 'lift date' to use the same metadata field. In this way, during workflow you would see only the terms, and after item installation, only the lift date. If you wish the metadata to retain the terms for any reason, use two distinct fields instead.
. Detailed Operation
After the fields defined for terms and lift date have been assigned in dspace.cfg, and created and configured wherever they will be used, you can begin to embargo items simply by entering data (dates, if using the default setter) in the terms field. They will automatically be embargoed as they exit workflow. For the embargo to be lifted on any item, however, a new administrative procedure must be added: the 'embargo lifter' must be invoked on a regular basis. This task examines all embargoed items, and if their 'lift date' has passed, it removes the access restrictions on the item. Good practice dictates automating this procedure using cron jobs or the like, rather than manually running it. The lifter is available as a target of the 1.6 DSpace launcher: see Section 8.
Extending Embargo Functionality
The 1.6 Embargo system supplies a default 'interpreter/imposition' class (the 'Setter') as well as a 'Lifter', but they are fairly rudimentary in several aspects.
- Setter. The default setter recognizes only two expressions of terms: either a literal, non-relative date in the fixed format 'yyyy-mm-dd' (known as ISO 8601), or a special string used for open-ended embargo (the default configured value for this is 'forever', but this can be changed in dspace.cfg to 'toujours', 'unendlich', etc). It will perform a minimal sanity check that the date is not in the past. Similarly, the default setter will only remove all read policies as noted above, rather than applying more nuanced rules (e.g allow access to certain IP groups, deny the rest). Fortunately, the setter class itself is configurable and you can 'plug in' any behavior you like, provided it is written in java and conforms to the setter interface. The dspace.cfg property:
controls which setter to use.Code Block # implementation of embargo setter plugin - replace with local implementation if applicable plugin.single.org.dspace.embargo.EmbargoSetter = org.dspace.embargo.DefaultEmbargoSetter
- Lifter.The default lifter behavior as described above‚ essentially applying the collection policy rules to the item‚ might also not be sufficient for all purposes. It also can be replaced with another class:
Code Block # implementation of embargo lifter plugin--replace with local implementation if applicable plugin.single.org.dspace.embargo.EmbargoLifter = org.dspace.embargo.DefaultEmbargoLifter
Step-by-Step Setup Examples
- Simple Dates.If you want to enter simple calendar dates for when an embargo will expire, follow these steps.
- Select a metadata field. Let's use dc.description.embargo. This field does not exist in in the default DSpace metadata directory, so login as an administrator, go the metadata registry page, select the 'dc' schema, then add the metadata field.
Wiki Markup Expose the metadata field. Edit _\[dspace\]/config/input-forms.xml_ . If you have only one form‚ usually 'traditional', add it there. If you have multiple forms, add it only to the forms linked to collections for which embargo applies:
Note: if you want to require embargo terms for every item, put a phrase in the <required> element. Example:<required>You must enter an embargo date</required>Code Block <form name="traditional"> <page number="1"> ... <field> <dc-schema>dc</dc-schema> <dc-element>description</dc-element> <dc-qualifier>embargo</dc-qualifier> <repeatable>false</repeatable> <label>Embargo Date</label> <input-type>onebox</input-type> <hint>If required, enter date 'yyyy-mm-dd' when embargo expires or 'forever'.</hint> <required></required> </field>
Wiki Markup Configure Embargo. Edit _\[dspace\]/config/dspace.cfg_. Find the Embargo properties and set these two:
Code Block # DC metadata field to hold the user-supplied embargo terms embargo.field.terms = dc.description.embargo # DC metadata field to hold computed "lift date" of embargo embargo.field.lift = dc.description.embargo
- Restart DSpace application. This will pick up these changes. Now just enter future dates (if applicable) in web submission and the items will be placed under embargo. You can enter years ('2020'), years and months ('2020-12'), or also days ('2020-12-15').
Wiki Markup Periodically run the lifter. Run the task:_\[dspace\]/bin/dspace embargo-lifter_You will want to run this task in a cron-scheduled or other repeating way. Item embargoes will be lifted as their dates pass.
- Period Sets. If you wish to use a fixed set of time periods (e.g. 90 days, 6 months and 1 year) as embargo terms, follow these steps, which involve using a custom 'setter'.
- Select two metadata fields. Let's use 'dc.embargo.terms' and 'dc.embargo.lift'. These fields do not exist in the default DSpace metadata registry. Login as an administrator, go the metadata registry page, select the 'dc' schema, then add the metadata fields.
Wiki Markup Expose the 'term' metadata field. The lift field will be assigned by the embargo system, so it should not be exposed directly. Edit _\[dspace\]/config/input-forms.xml_ . If you have only one form (usually 'traditional') add it there. If you have multiple forms, add it only to the form(s) linked to collection(s) for which embargo applies. First, add the new field to the 'form definition':
Note: If you want to require embargo terms for every item, put a phrase in the <required> element, e.g._<required>You must select embargo terms</required>_Observe that we have referenced a new value-pair list: "embargo_terms'. We must now define that as well (only once even if references by multiple forms):Code Block <form name="traditional"> <page number="1"> ... <field> <dc-schema>dc</dc-schema> <dc-element>embargo</dc-element> <dc-qualifier>terms</dc-qualifier> <repeatable>false</repeatable> <label>Embargo Terms</label> <input-type value-pairs-name="embargo_terms">dropdown</input-type> <hint>If required, select embargo terms.</hint> <required></required> </field>
Note: if desired, you could localize the language of the displayed value.Code Block <form-value-pairs> ... <value-pairs value-pairs-name="embargo_terms" dc-term="embargo.terms"> <pair> <displayed-value>90 days</displayed-value> <stored-value>90 days</stored-value> </pair> <pair> <displayed-value>6 months</displayed-value> <stored-value>6 months</stored-value> </pair> <pair> <displayed-value>1 year</displayed-value> <stored-value>1 year</stored-value> </pair> </value-pairs>
- Configure Embargo. Edit /dspace/config/dspace.cfg. Find the Embargo properties and set the following properties:
Code Block # DC metadata field to hold the user-supplied embargo terms embargo.field.terms = dc.embargo.terms # DC metadata field to hold computed "lift date" of embargo embargo.field.lift = dc.embargo.lift # implementation of embargo setter plugin - replace with local implementation if applicable plugin.single.org.dspace.embargo.EmbargoSetter = org.dspace.embargo.DayTableEmbargoSetter
Now add a new property called 'embargo.terms.days' as follows:
Code Block |
---|
# DC metadata field to hold computed "lift date" of embargo
embargo.terms.days = 90 days:90, 6 months:180, 1 year:365 |
- This step is the same as Step A.4 above, except that instead of entering a date, the submitter will select a value form a drop-down list.
Wiki Markup Periodically run the lifter. Run the task: {{\[dspace\]/bin/dspace embargo-lifter}} . You will want to run this task in a cron-scheduled or other repeating way. Item embargoes will be lifted as their dates pass.
Checksum Checker Settings
Wiki Markup |
---|
DSpace now comes with a Checksum Checker script ({{\[dspace\]/bin/dspace checker}}) which can be scheduled to verify the checksum of every item within DSpace. Since DSpace calculates and records the checksum of every file submitted to it, this script is able to determine whether or not a file has been changed (either manually or by some sort of corruption or virus). The idea being that the earlier you can identify a file has changed, the more likely you'd be able to recover it (assuming it was not a wanted change). |
Property: | |
Example Value: | |
Informational Note: | The Default dispatcher is case non is specified. |
Property: | |
Example Value: | |
Informational Note: | This option specifies the default time frame after which all checksum checks are removed from the database (defaults to 10 years). This means that after 10 years, all successful or unsuccessful matches are removed from the database. |
Property: | |
Example Value: | |
Informational Note: | This option specifies the time frame after which a successful match will be removed from your DSpace database (defaults to 8 weeks). This means that after 8 weeks, all successful matches are automatically deleted from your database (in order to keep that database table from growing too large). |
Item Export and Download Settings
It is possible for an authorized user to request a complete export and download of a DSpace item in a compressed zip file. This zip file may contain the following:
dublin_core.xml
license.txt
contents (listing of the contents)
handle file itself and the extract file if available
The configuration settings control several aspects of this feature:
Property: | |
Example Value: | |
Informational Note: | The directory where the exports will be done and compressed. |
Property: | |
Example Value: | |
Informational Note | The directory where the compressed files will reside and be read by the downloader. |
Property: | |
Example Value: | |
Informational Note | The length of time in hours each archive should live for. When new archives are created this entry is used to delete old ones. |
Property: | |
Example Value: | |
Informational Note | The maximum size in Megabytes (Mb) that the export should be. This is enforced before the compression. Each bitstream's size in each item being exported is added up, if their cumulative sizes are more than this entry the export is not kicked off. |
Subscription Emails
DSpace, through some advanced installation and setup, is able to send out an email to collections that a user has subscribed. The user who is subscribed to a collection is emailed each time an item id added or modified. The following property key controls whether or not a user should be notified of a modification.
Property: | |
Example Value: | |
Informational Note: | For backwards compatibility, the subscription emails by default include any modified items. The property key is COMMENTED OUT by default. |
Hiding Metadata
It is now possible to hide metadata from public consumption that is only available to the Administrator.
Info | ||
---|---|---|
| ||
More details on Embargo configuration, including specific examples can be found in the Embargo section of the documentation. |
Checksum Checker Settings
DSpace now comes with a Checksum Checker script ([dspace]/bin/dspace checker
) which can be scheduled to verify the checksum of every item within DSpace. Since DSpace calculates and records the checksum of every file submitted to it, this script is able to determine whether or not a file has been changed (either manually or by some sort of corruption or virus). The idea being that the earlier you can identify a file has changed, the more likely you'd be able to recover it (assuming it was not a wanted change).
Property: |
|
Example Value: |
|
Informational Note: | The Default dispatcher is case non is specified. |
Property: |
|
Example Value: |
|
Informational Note: | This option specifies the default time frame after which all checksum checks are removed from the database (defaults to 10 years). This means that after 10 years, all successful or unsuccessful matches are removed from the database. |
Property: |
|
Example Value: |
|
Informational Note: | This option specifies the time frame after which a successful match will be removed from your DSpace database (defaults to 8 weeks). This means that after 8 weeks, all successful matches are automatically deleted from your database (in order to keep that database table from growing too large). |
Info | ||
---|---|---|
| ||
For more information on using DSpace's built-in Checksum verification system, see the section on Validating CheckSums of Bitstreams. |
Item Export and Download Settings
It is possible for an authorized user to request a complete export and download of a DSpace item in a compressed zip file. This zip file may contain the following:
dublin_core.xml
license.txt
contents (listing of the contents)
handle file itself and the extract file if available
The configuration settings control several aspects of this feature:
Property: |
|
Example Value: |
|
Informational Note: | The directory where the exports will be done and compressed. |
Property: |
|
Example Value: |
|
Informational Note | The directory where the compressed files will reside and be read by the downloader. |
Property: |
|
Example Value: |
|
Informational Note | The length of time in hours each archive should live for. When new archives are created this entry is used to delete old ones. |
Property: |
|
Example Value: |
|
Informational Note | The maximum size in Megabytes (Mb) that the export should be. This is enforced before the compression. Each bitstream's size in each item being exported is added up, if their cumulative sizes are more than this entry the export is not kicked off. |
Subscription Emails
DSpace, through some advanced installation and setup, is able to send out an email to collections that a user has subscribed. The user who is subscribed to a collection is emailed each time an item id added or modified. The following property key controls whether or not a user should be notified of a modification.
Property: |
|
Example Value: |
|
Informational Note: | For backwards compatibility, the subscription emails by default include any modified items. The property key is COMMENTED OUT by default. |
Hiding Metadata
It is now possible to hide metadata from public consumption that is only available to the Administrator.
Property: |
|
Example Value: |
|
Informational Note: | Hides the metadata in the property |
Property: | |
Example Value: | |
Informational Note: | Hides the metadata in the property key above except to the administrator. Fields named here are hidden in the following places UNLESS the logged-in user is an Administrator:
|
...
Configuring Creative Commons License
...
This enables the Creative Commons license step in the submission process of either the JSP or XML User Interface (JSP UI or XML UI). Submitters are given an opportunity to select a Creative Common license to accompany the item. Creative Commons licenses govern the use of the content. For further details, refer to the Creative Commons website at [http://creativecommons.org|http://creativecommons . org|http://creativecommons.org] . Creative Commons licensing is enabled as one step of the configurable submission process, and therefore may be configured for any given collection that has a defined submission sequence, or be part of the 'default' submission process. This process is described in the 'Customizing and Configuring Submission User Interface' section of this manual. There is a Creative Commons step already defined (step 5), but it is commented out, so enabling Creative Commons licensing is typically just a matter of uncommenting the CC License step. For the JSP UI, Creative Commons licensing is effected by opening an Iframe to the Creative Commons site and capturing the selection result in several bitstreams, but the XML UI utilizes a more flexible web service. By default, when a license is selected in the interface, the URI for the license is stored in the 'dc.rights.uri' metadata field for the Item, and a representation of the license text is stored in a license bundle. In addition, the following properties in {{\[dspace
\]/config/dspace.cfg
}} may be customized for use:
Property: |
|
Example Value: |
|
Informational Note: |
|
Property: |
|
Example Value: |
|
Informational Note: |
|
Property: |
|
Example Value: |
|
Informational Note: |
|
Property: |
|
Example Value: |
|
Informational Note: |
|
Property: |
|
Example Value: |
|
Informational Note: |
|
Property: |
|
Example Value: |
|
Informational Note: |
|
Property: |
|
Example Value: |
|
Informational Note: | Should a jurisdiction be used? If so, which one? See http://creativecommons.org/international/ for a list of possible codes (e.g. nz = New Zealand, uk = England and Wales, jp = Japan) |
...
General Web User Interface Configurations
In this section of Configuration, we address the agnostic WEB User Interface that is used for JSP UI and XML UI. Some of the configurations will give information towards customization or refer you to the appropriate documentation.
Property: | webui.licence_bundle.show | |
Example Value: | webui.licence_bundle.show = false | |
Informational Note: | Sets whether to display the contents of the license bundle (often just the deposit license in the standard DSpace installation). | |
Property: |
| |
Example Value: |
| |
Informational Note: | Controls whether to display thumbnails on browse and search result pages. If you have customized the Browse columnlist, then you must also include a "thumbnail" column in your configuration. _(This configuration property key is not used by XMLUI. To show thumbnails using XMLUI, you need to create a theme which displays them)._ | |
Property: |
| |
Example Value: |
| |
Informational Note: | This property determines the maximum height of the browse/search thumbnails in pixels (px). This only needs to be set if the thumbnails are required to be smaller than the dimensions of thumbnails generated by MediaFilter. | |
Property: |
| |
Example Value: |
| |
Informational Note: | This determines the maximum width of the browse/search thumbnails in pixels (px). This only needs to be set if the thumbnails are required to be smaller than the dimensions of thumbnails generated by MediaFilter. | |
Property: |
| |
Example Value: |
| |
Informational Note: | This determines whether or not to display the thumbnail against each bitstream. (This configuration property key is not used by XMLUI. To show thumbnails using XMLUI, you need to create a theme which displays them). | |
Property: |
| |
Example Value: |
| |
Informational Note: | This determines where clicks on the thumbnail in browse and search screens should lead. The only values currently supported are "item" or "bitstream", which will either take the user to the item page, or directly download the bitstream. | |
Property: |
| |
Example Value: |
| |
Informational Note: | This property sets the maximum width of generated thumbnails that are being displayed on item pages. | |
Property: |
| |
Example Value: |
| |
Informational Note: | This property sets the maximum height of generated thumbnails that are being displayed on item pages. | |
Property: |
| |
Example Value: |
| |
Informational Note: | Whether or not the user can "preview" the image. | |
Property: |
| |
Example Value: |
| |
Informational Note: | This property sets the maximum width for the preview image. | |
Property: |
| |
Example Value: |
| |
Informational Note: | This property sets the maximum height for the preview image. | |
Property: |
| |
Example Value: |
| |
Informational Note: | This is the brand text that will appear with the image. | |
Property: |
| |
Example Value: |
| |
Informational Note: | An abbreviated form of the full Branded Name. This will be used when the preview image cannot fit the normal text. | |
Property: |
| |
Example Value: |
| |
Informational Note: | The height (in px) of the brand. | |
Property: |
| |
Example Value: |
| |
Informational Note: | This property sets the font for your Brand text that appears with the image. | |
Property: |
| |
Example Value: |
| |
Informational Note: | This property sets the font point (size) for your Brand text that appears with the image. | |
Property: |
| |
Example Value: |
| |
Informational Note: | The Dublin Core field that will display along with the preview. This field is optional. | |
Property: |
| |
Example Value: |
| |
Informational Note: | Determines if communities and collections should display item counts when listed. The default behavior if omitted, is true. (This configuration property key is not used by XMLUI. To show thumbnails using XMLUI, you need to create a theme which displays them). | |
Property: |
| |
Example Value: |
| |
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="a96f056c-60ef-48a2-ac98-3f0a7387b72a"><ac:plain-text-body><![CDATA[ | Informational Note: | When showing the strengths, should they be counted in real time, or fetched from the cache. Counts fetched in real time will perform an actual count of the database contents every time a page with this feature is requested, which will not scale. If you set the property key is set to cache ("true") you must run the following command periodically to update the count: |
Browse Index Configuration
...
Element | Definition and Options (if available) |
---|---|
| n is the index number. The index numbers must start from 1 and increment continuously by 1 thereafter. Deviation from this will cause an error during install or a configuration update. So anytime you add a new browse index, remember to increase the number. (Commented out index numbers may be used over again). |
| The name by which the index will be identified. You will need to update your Messages.properties file to match this field. (The form used in the Messages.properties file is: |
| Only two options are available: " |
| The schema used for the field to be index. The default is dc (for Dublin Core). |
| The schema element. In Dublin Core, for example, the author element is referred to as "Contributor". The user should consult the default Dublin Core Metadata Registry table in Appendix A. |
| This is the qualifier to the <element> component. The user has two choices: an asterisk "" or a proper qualifier of the element. The asterisk is a wildcard and causes DSpace to index all types of the schema element. For example, if you have the element "contributor" and the qualifier "" then you would index all contributor data regardless of the qualifier. Another example, you have the element "subject" and the qualifier "lcsh" would cause the indexing of only those fields that have the qualifier "lcsh". (This means you would only index Library of Congress Subject Headings and not all data elements that are subjects. |
| This refers to the datatype of the field: |
| Choose |
...
Submission License Substitution Variables
Property: |
(property key broken up for display purposes only) | ||
Example Value: |
| ||
Informational Note: | It is possible include contextual information in the submission license using substitution variables. The text substitution is driven by a plugin implementation. |
...
Property: |
| ||
Example Value: |
| ||
Informational Note: | By default, RSS feeds are set to true (on) . Change key to "false" to disable. | ||
Property: |
| ||
Example Value: |
| ||
Informational Note: | Defines the number of DSpace items per feed (the most recent submissions) | ||
Property: |
| ||
Example Value: |
| ||
Informational Note: | Defines the maximum number of feeds in memory cache. Value of " | ||
Property: |
| ||
Example Value: |
| ||
Informational Note: | Defines the number of hours to keep cached feeds before checking currency. The value of "0" will force a check with each request. | ||
Property: |
| ||
Example Value: |
| ||
Informational Note: | Defines which syndication formats to offer. You can use more than one; use a comma-separated list. The following list are the available values: rss_0.90, rss_0.91, rss_0.92, rss_0.93, rss_0.94, rss_1.0, rss_2.0, atom_1.0. | ||
Property: |
| ||
Example Value: |
| ||
Informational Note: | By default, (set to false), URLs returned by the feed will point at the global handle resolver (e.g. http://hdl.handle.net/123456789/1). If set to true the local server URLs are used (e.g. http://myserver.myorg/handle/123456789/1). | ||
Property: |
| ||
Example Value: |
| ||
Informational Note: | This property customizes each single-value field displayed in the feed information for each item. Each of the fields takes a single metadata field. The form of the key is <scheme prefix>.<element>.<qualifier> In place of the qualifier, one may leave it blank to exclude any qualifiers or use the wildcard "*" to include all qualifiers for a particular element. | ||
Property: |
| ||
Example Value: |
| ||
Informational Note: | This property customizes each single-value field displayed in the feed information for each item. Each of the fields takes a single metadata field. The form of the key is <scheme prefix>.<element>.<qualifier> In place of the qualifier, one may leave it blank to exclude any qualifiers or use the wildcard "*" to include all qualifiers for a particular element. | ||
Property: |
| ||
Example Value: |
| ||
Informational Note: | One can customize the metadata fields to show in the feed for each item's description. Elements are displayed in the order they are specified in dspace.cfg.Like other property keys, the format of this property key is: webui.feed.item.description = <scheme prefix>.<element>.<qualifier>. In place of the qualifier, one may leave it blank to exclude any qualifiers or use the wildcard "*" to include all qualifiers for a particular element. | ||
Property: |
| ||
Example Value: |
| ||
Informational Note: | The name of field to use for authors (Atom only); repeatable. | ||
Property: |
| ||
Example Value: |
| ||
Informational Note: | Customize the image icon included with the site-wide feeds. This must be an absolute URL. | ||
Property: |
| ||
Example Value: |
| ||
Informational Note: | This optional property adds structured DC elements as XML elements to the feed description. They are not the same thing as, for example, webui.feed.item.description. Useful when a program or stylesheet will be transforming a feed and wants separate author, description, date, etc. | ||
Property: |
| ||
Example Value: |
| ||
Informational Note: | This optional property adds structured DC elements as XML elements to the feed description. They are not the same thing as, for example, webui.feed.item.description. Useful when a program or stylesheet will be transforming a feed and wants separate author, description, date, etc. | ||
Property: |
| ||
Example Value: |
| ||
Informational Note: | This optional property adds structured DC elements as XML elements to the feed description. They are not the same thing as, for example, webui.feed.item.description. Useful when a program or stylesheet will be transforming a feed and wants separate author, description, date, etc. | ||
Property: |
| ||
Example Value: |
| ||
Informational Note: | This optional property enables Podcast Support on the RSS feed for the specified collection handles. The podcast is iTunes compatible and will expose the bitstreams in the items for viewing and download by the podcast reader. Multiple values are separated by commas. For more on using/enabling Media RSS Feeds to share content via iTunesU, see: Enable Media RSS Feeds | ||
Property: |
| ||
Example Value: |
| ||
Informational Note: | This optional property enables Podcast Support on the RSS feed for the specified community handles. The podcast is iTunes compatible and will expose the bitstreams in the items for viewing and download by the podcast reader. Multiple values are separated by commas. commas. For more on using/enabling Media RSS Feeds to share content via iTunesU, see: Enable Media RSS Feeds | ||
Property: |
| ||
Example Value: |
| ||
Informational Note: | This optional property for Podcast Support, allows you to choose which MIME types of bitstreams are to be enclosed in the podcast feed. Multiple values are separated by commas. For more on using/enabling Media RSS Feeds to share content via iTunesU, see: Enable Media RSS Feeds | ||
Property: |
| ||
Example Value: |
| ||
Informational Note: | This optional property for the Podcast Support will allow you to use a value for a metadata field as a replacement for actual bitstreams to be enclosed in the RSS feed. A use case for specifying the external sourceuri would be if you have a non-DSpace media streaming server that has a copy of your media file that you would prefer to have the media streamed from. For more on using/enabling Media RSS Feeds to share content via iTunesU, see: Enable Media RSS Feeds |
OpenSearch Support
OpenSearch is a small set of conventions and documents for describing and using "search engines", meaning any service that returns a set of results for a query. See extensive description in the Business Layer section of the documentation.
...
Authority Control Settings
Two new features of DSpace 1.6 fall under the header of Authority Control: Choice Management and Authority Control of Item ("DC") metadata values. Authority control is a fully optional feature in DSpace 1.6. Implemented out of the box are the Library of Congress Names service, and the Sherpa Romeo authority plugin.
For an in-depth description of this feature, please consult: http: //wiki.dspace.org/index.php/Authority _ Control _ of _ Metadata _ Values
Property: |
| ||
Example Value: |
| ||
Informational Note: |
| ||
Property: |
| ||
Example Value: |
| ||
Property: |
| ||
Example Value: |
| ||
Informational Note: | Location (URL) of the Library of Congress Name Service | ||
Property: |
| ||
Example Value: |
| ||
Informational Note: | Location (URL) of the SHERPA/RoMEO authority plugin | ||
Property: |
| ||
Example Value: |
| ||
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 | ||
Property: |
| ||
Example Value: |
| ||
Informational Note: | This property sets the number of selectable choices in the Choices lookup popup |
...
Property: |
| ||
Example Value: |
| ||
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: | ||
Property: |
| ||
Example Value: |
| ||
Informational Note: | When using "resolver" in webui.itemdisplay to render identifiers as resolvable links, the base URL is take 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: |
| ||
Example Value: |
| ||
Informational Note: | Specify which strategy to use for select the style for an item. | ||
Property: |
| ||
Example Value: |
| ||
Informational Note: | Specify which collections use which views by Handle. | ||
Property: |
| ||
Example Value: |
| ||
Informational Note: | Specify which metadata to use as name of the style | ||
Property: |
| ||
Example Value: |
| ||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="244dd3eb-fc9d-4ddb-ac6c-7d37cec6d958"><ac:plain-text-body><![CDATA[ | 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)], ... | |
Property: |
| ||
Example Value: |
| ||
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. | ||
Property: |
| ||
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: |
| ||
Example Value: |
| ||
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: |
| ||
Example Value: |
| ||
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: |
| ||
Example Value: |
| ||
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: |
| ||
Example Value: |
| ||
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]. | ]]></ac:plain-text-body></ac:structured-macro> |
JSPUI Configuring Multilingual Support
...
\[i18n -- – Locales\]
Setting the Default Language for the Application
...
If you set webui.supported.locales make sure that all the related additional files for each language are available. LOCALE should correspond to the locale set in webui.supported.locales, e. g.: for webui.supported.locales = en, de, fr, there should be:
{{\Wiki Markup [dspace-source
\]/dspace/modules/jspui/src/main/resources/Messages.properties
}}Wiki Markup - {{\
[dspace-source
\]/dspace/modules/jspui/src/main/resources/Messages_en.properties
}}Wiki Markup - {{\
[dspace-source
\]/dspace/modules/jspui/src/main/resources/Messages_de.properties
}} {{\Wiki Markup [dspace-source
\]/dspace/modules/jspui/src/main/resources/Messages_fr.properties
}} \\ Files to be localized:
Files to be localized:
{{\Wiki Markup [dspace-source
\]/dspace/modules/jspui/src/main/resources/Messages_LOCALE.properties
}} {{\Wiki Markup [dspace-source
\]/dspace/config/input-forms_LOCALE.xml
}}unmigrated-wiki-markup- {{\
[dspace-source
\]/dspace/config/default_LOCALE.license
-
should
be
pure
ASCII
}}unmigrated-wiki-markup - {{\
[dspace-source
\]/dspace/config/news-top_LOCALE.html
}}unmigrated-wiki-markup - {{\
[dspace-source
\]/dspace/config/news-side_LOCALE.html
}} {{\Wiki Markup [dspace-source
\]/dspace/config/emails/change_password_LOCALE
}}Wiki Markup - {{\
[dspace-source
\]/dspace/config/emails/feedback_LOCALE
}}unmigrated-wiki-markup - {{\
[dspace-source
\]/dspace/config/emails/internal_error
_LOCALE}}_LOCALE
{{\Wiki Markup [dspace-source
\]/dspace/config/emails/register_LOCALE
}}Wiki Markup - {{\
[dspace-source
\]/dspace/config/emails/submit_archive_LOCALE
}}unmigrated-wiki-markup - {{\
[dspace-source
\]/dspace/config/emails/submit_reject_LOCALE
}}Wiki Markup - {{\
[dspace-source
\]/dspace/config/emails/submit_task_LOCALE
}} {{\Wiki Markup [dspace-source
\]/dspace/config/emails/subscription_LOCALE
}}Wiki Markup - {{\
[dspace-source
\]/dspace/config/emails/suggest_LOCALE
}} {{\Wiki Markup [dspace
\]/webapps/jspui/help/collection-admin_LOCALE.html
-
in
html
keep
the
jump
link
as
original;
must
be
copied
to
\[dspace-source
\]/dspace/modules/jspui/src/main/webapp/help
}}Wiki Markup - {{\
[dspace
\]/webapps/jspui/help/index_LOCALE.html
-
must
be
copied
to
\[dspace-source
\]/dspace/modules/jspui/src/main/webapp/help
}} {{\Wiki Markup [dspace
\]/webapps/jspui/help/site-admin_LOCALE.html
-
must
be
copied
to
\[dspace-source
\]/dspace/modules/jspui/src/main/webapp/help
}}
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: |
|
Example Value: |
|
 |
|
Informational Note: | SFX query is appended to this URL. If this property is commented out or omitted, SFX support is switched off. |
...
All the parameters mapping are defined in {{\[dspace
\]/config/sfx.xml
}} file. The program will check the parameters in {{sfx.xml
}} and retrieve the correct metadata of the item. It will then parse the string to your resolver.
For the following example, the program will search the first query-pair which is DOI of the item. If there is a DOI for that item, your retrieval results will be, for example:
http://researchspace.auckland.ac.nz/handle/2292/5763
...
Code Block |
---|
<query-pairs> <field> <querystring>rft_id=info:doi/</querystring> <dc-schema>dc</dc-schema> <dc-element>identifier</dc-element> <dc-qualifier>doi</dc-qualifier> </field> </query-pairs> |
...
If there is no DOI for that item, it will search next query-pair based on the {{\[dspace
\]/config/sfx.xml
}} and then so on.unmigrated-wiki-markup
Example of using ISSN, volume, issue for item without DOI
{{\[http://researchspace.auckland.ac.nz/handle/2292/4947
\]
}}
For parameter passing to the <querystring>
Code Block |
---|
<querystring>rft_id=info:doi/</querystring> |
Please refer to these:
{{\ Wiki Markup [http://ocoins.info/cobgbook.html
\]}}
{{\]
[http://ocoins.info/cobg.html
\]
}}
Program assume won't won’t get empty string for the item, as there will at least author, title for the item to pass to the resolver.
For contributor author, program maintains original DSpace SFX function of extracting author's author‘s first and last name.
Code Block |
---|
<field> <querystring>rft.aulast=</querystring> <dc-schema>dc</dc-schema> <dc-element>contributor</dc-element> <dc-qualifier>author</dc-qualifier> </field> <field> <querystring>rft.aufirst=</querystring> <dc-schema>dc</dc-schema> <dc-element>contributor</dc-element> <dc-qualifier>author</dc-qualifier> </field> |
...
The taxonomies are described in XML following this (very simple) structure:
Code Block |
---|
<node id="acmccs98" label="ACMCCS98">
<isComposedBy>
<node id="A." label="General Literature">
<isComposedBy>
<node id="A.0" label="GENERAL"/>
<node id="A.1" label="INTRODUCTORY AND SURVEY"/>
</isComposedBy>
</node>
</isComposedBy>
</node> |
...
webui.controlledvocabulary.enable = true
unmigrated-wiki-markup
New vocabularies should be placed in {{\[dspace
\]/config/controlled-vocabularies/
}} and must be according to the structure described. A validation XML Schema (named {{controlledvocabulary.xsd
}}) is also available in that directory.
Vocabularies need to be associated with the correspondent DC metadata fields. Edit the file {{\ Wiki Markup [dspace
\]/config/input-forms.xml
}} and place a _"vocabulary"_ tag under the _"field"_ element that you want to control. Set value of the _"vocabulary"_ element to the name of the file that contains the vocabulary, leaving out the extension (the add-on will only load files with extension "*.xml"). For example:
Code Block |
---|
<field>
<dc-schema>dc</dc-schema>
<dc-element>subject</dc-element>
<dc-qualifier></dc-qualifier>
<!-- An input-type of twobox MUST be marked as repeatable -->
<repeatable>true</repeatable>
<label>Subject Keywords</label>
<input-type>twobox</input-type>
<hint> Enter appropriate subject keywords or phrases below. </hint>
<required></required>
<vocabulary [closed="false"]>nsi</vocabulary>
</field> |
...
Property: |
|
Example Value: |
|
Informational Note: | A list of supported locales for Manakin. Manakin will look at a user's browser configuration for the first language that appears in this list to make available to in the interface. This parameter is a comma separated list of Locales. All types of Locales country, country_language, country_language_variant. Note that if the appropriate files are not present (i.e. Messages_XX_XX.xml) then Manakin will fall back through to a more general language. |
Property: |
|
Example Value: |
|
Informational Note: | Force all authenticated connections to use SSL, only non-authenticated connections are allowed over plain http. If set to true, then you need to ensure that the 'dspace.hostname' parameter is set to the correctly. |
Property: |
|
Example Value: |
|
Informational Note: | Determine if new users should be allowed to register. This parameter is useful in conjunction with Shibboleth where you want to disallow registration because Shibboleth will automatically register the user. Default value is true. |
Property: |
|
Example Value: |
|
Informational Note: | Determines if users should be able to edit their own metadata. This parameter is useful in conjunction with Shibboleth where you want to disable the user's ability to edit their metadata because it came from Shibboleth. Default value is true. |
Property: |
|
Example Value: |
|
Informational Note: | Determine if super administrators (those whom are in the Administrators group) can login as another user from the "edit eperson" page. This is useful for debugging problems in a running dspace instance, especially in the workflow process. The default value is false, i.e., no one may assume the login of another user. |
Property: |
|
Example Value: |
|
Informational Note: | After a user has logged into the system, which url should they be directed? Leave this parameter blank or undefined to direct users to the homepage, or /profile for the user's profile, or another reasonable choice is /submissions to see if the user has any tasks awaiting their attention. The default is the repository home page. |
Property: |
|
Example Value: |
|
Informational Note: | Allow the user to override which theme is used to display a particular page. When submitting a request add the HTTP parameter "themepath" which corresponds to a particular theme, that specified theme will be used instead of the any other configured theme. Note that this is a potential security hole allowing execution of unintended code on the server, this option is only for development and debugging it should be turned off for any production repository. The default value unless otherwise specified is "false". |
Property: |
|
Example Value: |
|
Informational Note: | Determine which bundles administrators and collection administrators may upload into an existing item through the administrative interface. If the user does not have the appropriate privileges (add and write) on the bundle then that bundle will not be shown to the user as an option. |
Property: |
|
Example Value: |
|
Informational Note: | On the community-list page should all the metadata about a community/collection be available to the theme. This parameter defaults to true, but if you are experiencing performance problems on the community-list page you should experiment with turning this option off. |
Property: |
|
Example Value: |
|
Informational Note: | Normally, Manakin will fully verify any cache pages before using a cache copy. This means that when the community-list page is viewed the database is queried for each community/collection to see if their metadata has been modified. This can be expensive for repositories with a large community tree. To help solve this problem you can set the cache to be assumed valued for a specific set of time. The downside of this is that new or editing communities/collections may not show up the website for a period of time. |
Property: |
|
Example Value: |
|
Informational Note: | Optionally, you may configure Manakin to take advantage of metadata stored as a bitstream. The MODS metadata file must be inside the "METADATA" bundle and named MODS.xml. If this option is set to 'true' and the bitstream is present then it is made available to the theme for display. |
Property: |
|
Example Value: |
|
Informational Note: | Optionally, you may configure Manakin to take advantage of metadata stored as a bitstream. The METS metadata file must be inside the "METADATA" bundle and named METS.xml. If this option is set to "true" and the bitstream is present then it is made available to the theme for display. |
Property: |
|
Example Value: |
|
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. First sign up for an account at http://analytics.google.com, then create an entry for your repositories website. Google Analytics will give you a snippet of javascript code to place on your site, inside that snip it is your Google Analytics key usually found in the line: _uacct = "UA-XXXXXXX-X" Take this key (just the UA-XXXXXX-X part) and place it here in this parameter. |
Property: | |
Example Value: | |
Informational Note: | Assign how many page views will be recorded and displayed in the control panel's activity viewer. The activity tab allows an administrator to debug problems in a running DSpace by understanding who and how their dspace is currently being used. The default value is 250. |
Property: | |
Example Value: | |
Informational Note: | Determine where the control panel's activity viewer receives an events IP address from. If your DSpace is in a load balanced environment or otherwise behind a context-switch then you will need to set the parameter to the HTTP parameter that records the original IP address. |
DSpace SOLR Statistics Configuration
Property: | | ||
Example Value: | | ||
Informational Note: | Is used by the SolrLogger Client class to connect to the SOLR server over http and perform updates and queries. | ||
Property: | | ||
Example Value: | | ||
Informational Note: | Spiders file is utilized by the SolrLogger, this will be populated by running the following command: | ||
Property: | | ||
Example Value: | | ||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="e03da657-e99f-4f21-8e10-f0cc234a92d5"><ac:plain-text-body><![CDATA[ | Informational Note: | The following refers to the GeoLiteCity database file utilized by the LocationUtils to calculate the location of client requests based on IP address. During the Ant build process (both fresh_install and update) this file will be downloaded from [http://www.maxmind.com/app/geolitecity] if a new version has been published or it is absent from your | ]]></ac:plain-text-body></ac:structured-macro> |
Property: | | ||
Example Value: | | ||
Informational Note: | Timeout for the resolver in the DNS lookup time in milliseconds, defaults to 200 for backward compatibility; your system's default is usually set in | ||
Property: | | ||
Example Value: | | ||
Informational Note: | Enables access control restriction on DSpace Statistics pages, Restrictions are based on access rights to Community, Collection and Item Pages. This will require the user to sign on to see that statistics. Setting the statistics to "false" will make them publicly available. | ||
Property: | | ||
Example Value: | {{solr.statistics.logBots = true }} | ||
Informational Note: | 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 | ||
Property: | | ||
Example Value: | | ||
Informational Note: | Controls solr statistics querying to filter out spider IPs. False by default. | ||
Property: | {{solr.statistics.query.filter.isBot }} | ||
Example Value: | | ||
Informational Note: | Controls solr statistics querying to look at "isBot" field to determine if record is a bot. True by default. | ||
Property: | | ||
Example Value: |
| ||
Informational Note: | URLs to download IP addresses of search engine spiders from |
Optional or Advanced Configuration Settings
The following section explains how to configure either optional features or advanced features that are not necessary to make DSpace "out-of-the-box"
The Metadata Format and Bitstream Format Registries
Wiki Markup |
---|
The _\[dspace\]/config/registries_ directory contains three XML files. These are used to load the _initial_ contents of the Dublin Core Metadata registry and Bitstream Format registry and SWORD metadata registry. After the initial loading (performed by _ant fresh_install_ above), the registries reside in the database; the XML files are not updated. |
In order to change the registries, you may adjust the XML files before the first installation of DSpace. On an already running instance it is recommended to change bitstream registries via DSpace admin UI, but the metadata registries can be loaded again at any time from the XML files without difficult. The changes made via admin UI are not reflected in the XML files.
Metadata Format Registries
The default metadata schema is Dublin Core, so DSpace is distributed with a default Dublin Core Metadata Registry. Currently, the system requires that every item have a Dublin Core record.
There is a set of Dublin Core Elements, which is used by the system and should not be removed or moved to another schema, see Appendix: Default Dublin Core Metadata registry.
Note: altering a Metadata Registry has no effect on corresponding parts, e.g. item submission interface, item display, item import and vice versa. Every metadata element used in submission interface or item import must be registered before using it.
Note also that deleting a metadata element will delete all its corresponding values.
If you wish to add more metadata elements, you can do this in one of two ways. Via the DSpace admin UI you may define new metadata elements in the different available schemas. But you may also modify the XML file (or provide an additional one), and re-import the data as follows:
Code Block |
---|
[dspace]/bin/dsrun org.dspace.administer.MetadataImporter -f [xml file] |
The XML file should be structured as follows:
Code Block |
---|
<dspace-dc-types>
<dc-type>
<schema>dc</schema>
<element>contributor</element>
<qualifier>advisor</qualifier>
<scope_note>Use primarily for thesis advisor.</scope_note>
</dc-type>
</dspace-dc-types> |
Bitstream Format Registry
Wiki Markup |
---|
The bitstream formats recognized by the system and levels of support are similarly stored in the bitstream format registry. This can also be edited at install-time via _\[dspace\]/config/registries/bitstream-formats.xml_ or by the administration Web UI. The contents of the bitstream format registry are entirely up to you, though the system requires that the following two formats are present: |
- Unknown
- License
Deleting a format will cause any existing bitstreams of this format to be reverted to the unknown bitstream format.
XPDF Filter
This is an alternative suite of MediaFilter plugins that offers faster and more reliable text extraction from PDF Bitstreams, as well as thumbnail image generation. It replaces the built-in default PDF MediaFilter.
If this filter is so much better, why isn't it the default? The answer is that it relies on external executable programs which must be obtained and installed for your server platform. This would add too much complexity to the installation process, so it left out as an optional "extra" step.
Installation Overview
Here are the steps required to install and configure the filters:
- Install the xpdf tools for your platform, from the downloads at http://www.foolabs.com/xpdf
- Acquire the Sun Java Advanced Imaging Tools and create a local Maven package.
- Edit DSpace configuration properties to add location of xpdf executables, reconfigure MediaFilter plugins.
- Build and install DSpace, adding -Pxpdf-mediafilter-support to Maven invocation.
Install XPDF Tools
First, download the XPDF suite found at: http://www.foolabs.com/xpdf and install it on your server. The executables can be located anywhere, but make a note of the full path to each command.
You may be able to download a binary distribution for your platform, which simplifies installation. Xpdf is readily available for Linux, Solaris, MacOSX, Windows, NetBSD, HP-UX, AIX, and OpenVMS, and is reported to work on AIX, OS/2, and many other systems.
The only tools you really need are:
- pdfinfo - displays properties and Info dict
- pdftotext - extracts text from PDF
- pdftoppm - images PDF for thumbnails
Fetch and install jai_imageio JAR
Fetch and install the Java Advanced Imaging Image I/O Tools.
For AIX, Sun support has the following: "JAI has native acceleration for the above but it also works in pure Java mode. So as long as you have an appropriate JDK for AIX (1.3 or later, I believe), you should be able to use it. You can download any of them, extract just the jars, and put those in your $CLASSPATH."
Download the jai_imageio library version 1.0_01 or 1.1 found at: https://jai-imageio.dev.java.net/binary-builds.html#Stable_builds .
For these filters you do NOT have to worry about the native code, just the JAR, so choose a download for any platform.
Code Block |
---|
curl -O http://download.java.net/media/jai-imageio/builds/release/1.1/jai_imageio-1_1-lib-linux-i586.tar.gz
tar xzf jai_imageio-1_1-lib-linux-i586.tar.gz
|
The preceding example leaves the JAR in jai_imageio-1_1/lib/jai_imageio.jar . Now install it in your local Maven repository, e.g.: (changing the path after file= if necessary)
Code Block |
---|
mvn install:install-file \
-Dfile=jai_imageio-1_1/lib/jai_imageio.jar \
-DgroupId=com.sun.media \
-DartifactId=jai_imageio \
-Dversion=1.0_01 \
-Dpackaging=jar \
-DgeneratePom=true
|
You may have to repeat this procedure for the jai_core.jar library, as well, if it is not available in any of the public Maven repositories. Once acquired, this command installs it locally:
Code Block |
---|
mvn install:install-file -Dfile=jai_core-1.1.2_01.jar \
-DgroupId=javax.media -DartifactId=jai_core -Dversion=1.1.2_01 -Dpackaging=jar -DgeneratePom=true |
Edit DSpace Configuration
First, be sure there is a value for thumbnail.maxwidth and that it corresponds to the size you want for preview images for the UI, e.g.: (NOTE: this code doesn't pay any attention to thumbnail.maxheight but it's best to set it too so the other thumbnail filters make square images.)
Code Block |
---|
# maximum width and height of generated thumbnails
thumbnail.maxwidth= 80
thumbnail.maxheight = 80 |
Now, add the absolute paths to the XPDF tools you installed. In this example they are installed under /usr/local/bin (a logical place on Linux and MacOSX), but they may be anywhere.
Code Block |
---|
xpdf.path.pdftotext = /usr/local/bin/pdftotext
xpdf.path.pdftoppm = /usr/local/bin/pdftoppm
xpdf.path.pdfinfo = /usr/local/bin/pdfinfo |
Change the MediaFilter plugin configuration to remove the old org.dspace.app.mediafilter.PDFFilter and add the new filters, e.g: (New sections are in bold)
found in the line: _uacct = "UA-XXXXXXX-X" Take this key (just the UA-XXXXXX-X part) and place it here in this parameter. | |
Property: |
|
Example Value: |
|
Informational Note: | Assign how many page views will be recorded and displayed in the control panel's activity viewer. The activity tab allows an administrator to debug problems in a running DSpace by understanding who and how their dspace is currently being used. The default value is 250. |
Property: |
|
Example Value: |
|
Informational Note: | Determine where the control panel's activity viewer receives an events IP address from. If your DSpace is in a load balanced environment or otherwise behind a context-switch then you will need to set the parameter to the HTTP parameter that records the original IP address. |
DSpace SOLR Statistics Configuration
Property: |
| ||
Example Value: |
| ||
Informational Note: | Is used by the SolrLogger Client class to connect to the SOLR server over http and perform updates and queries. | ||
Property: |
| ||
Example Value: |
| ||
Informational Note: | Spiders file is utilized by the SolrLogger, this will be populated by running the following command: | ||
Property: |
| ||
Example Value: |
| ||
Informational Note: | The following refers to the GeoLiteCity database file utilized by the LocationUtils to calculate the location of client requests based on IP address. During the Ant build process (both fresh_install and update) this file will be downloaded from http://www.maxmind.com/app/geolitecity if a new version has been published or it is absent from your | ||
Property: |
| ||
Example Value: |
| ||
Informational Note: | Timeout for the resolver in the DNS lookup time in milliseconds, defaults to 200 for backward compatibility; your system's default is usually set in | ||
Property: |
| ||
Example Value: |
| ||
Informational Note: | Enables access control restriction on DSpace Statistics pages, Restrictions are based on access rights to Community, Collection and Item Pages. This will require the user to sign on to see that statistics. Setting the statistics to "false" will make them publicly available. | ||
Property: |
| ||
Example Value: | {{solr.statistics.logBots = true }} | ||
Informational Note: | 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 | ||
Property: |
| ||
Example Value: |
| ||
Informational Note: | Controls solr statistics querying to filter out spider IPs. False by default. | ||
Property: | {{solr.statistics.query.filter.isBot }} | ||
Example Value: |
| ||
Informational Note: | Controls solr statistics querying to look at "isBot" field to determine if record is a bot. True by default. | ||
Property: |
| ||
Example Value: |
| ||
Informational Note: | URLs to download IP addresses of search engine spiders from |
Optional or Advanced Configuration Settings
The following section explains how to configure either optional features or advanced features that are not necessary to make DSpace "out-of-the-box"
The Metadata Format and Bitstream Format Registries
The [dspace]/config/registries directory contains three XML files. These are used to load the initial contents of the Dublin Core Metadata registry and Bitstream Format registry and SWORD metadata registry. After the initial loading (performed by ant fresh_install above), the registries reside in the database; the XML files are not updated.
In order to change the registries, you may adjust the XML files before the first installation of DSpace. On an already running instance it is recommended to change bitstream registries via DSpace admin UI, but the metadata registries can be loaded again at any time from the XML files without difficult. The changes made via admin UI are not reflected in the XML files.
Metadata Format Registries
The default metadata schema is Dublin Core, so DSpace is distributed with a default Dublin Core Metadata Registry. Currently, the system requires that every item have a Dublin Core record.
There is a set of Dublin Core Elements, which is used by the system and should not be removed or moved to another schema, see Appendix: Default Dublin Core Metadata registry.
Note: altering a Metadata Registry has no effect on corresponding parts, e.g. item submission interface, item display, item import and vice versa. Every metadata element used in submission interface or item import must be registered before using it.
Note also that deleting a metadata element will delete all its corresponding values.
If you wish to add more metadata elements, you can do this in one of two ways. Via the DSpace admin UI you may define new metadata elements in the different available schemas. But you may also modify the XML file (or provide an additional one), and re-import the data as follows:
Code Block |
---|
[dspace]/bin/dspace dsrun org.dspace.administer.MetadataImporter -f [xml file] |
The XML file should be structured as follows:
Code Block |
---|
<dspace-dc-types>
<dc-type>
<schema>dc</schema>
<element>contributor</element>
<qualifier>advisor</qualifier>
<scope_note>Use primarily for thesis advisor.</scope_note>
</dc-type>
</dspace-dc-types> |
Bitstream Format Registry
The bitstream formats recognized by the system and levels of support are similarly stored in the bitstream format registry. This can also be edited at install-time via [dspace]/config/registries/bitstream-formats.xml or by the administration Web UI. The contents of the bitstream format registry are entirely up to you, though the system requires that the following two formats are present:
- Unknown
- License
Deleting a format will cause any existing bitstreams of this format to be reverted to the unknown bitstream format.
XPDF Filter
This is an alternative suite of MediaFilter plugins that offers faster and more reliable text extraction from PDF Bitstreams, as well as thumbnail image generation. It replaces the built-in default PDF MediaFilter.
If this filter is so much better, why isn't it the default? The answer is that it relies on external executable programs which must be obtained and installed for your server platform. This would add too much complexity to the installation process, so it left out as an optional "extra" step.
Installation Overview
Here are the steps required to install and configure the filters:
- Install the xpdf tools for your platform, from the downloads at http://www.foolabs.com/xpdf
- Acquire the Sun Java Advanced Imaging Tools and create a local Maven package.
- Edit DSpace configuration properties to add location of xpdf executables, reconfigure MediaFilter plugins.
- Build and install DSpace, adding -Pxpdf-mediafilter-support to Maven invocation.
Install XPDF Tools
First, download the XPDF suite found at: http://www.foolabs.com/xpdf and install it on your server. The executables can be located anywhere, but make a note of the full path to each command.
You may be able to download a binary distribution for your platform, which simplifies installation. Xpdf is readily available for Linux, Solaris, MacOSX, Windows, NetBSD, HP-UX, AIX, and OpenVMS, and is reported to work on AIX, OS/2, and many other systems.
The only tools you really need are:
- pdfinfo - displays properties and Info dict
- pdftotext - extracts text from PDF
- pdftoppm - images PDF for thumbnails
Fetch and install jai_imageio JAR
Fetch and install the Java Advanced Imaging Image I/O Tools.
For AIX, Sun support has the following: "JAI has native acceleration for the above but it also works in pure Java mode. So as long as you have an appropriate JDK for AIX (1.3 or later, I believe), you should be able to use it. You can download any of them, extract just the jars, and put those in your $CLASSPATH."
Download the jai_imageio library version 1.0_01 or 1.1 found at: https://jai-imageio.dev.java.net/binary-builds.html#Stable_builds .
For these filters you do NOT have to worry about the native code, just the JAR, so choose a download for any platform.
Code Block |
---|
curl -O http://download.java.net/media/jai-imageio/builds/release/1.1/jai_imageio-1_1-lib-linux-i586.tar.gz
tar xzf jai_imageio-1_1-lib-linux-i586.tar.gz
|
The preceding example leaves the JAR in jai_imageio-1_1/lib/jai_imageio.jar . Now install it in your local Maven repository, e.g.: (changing the path after file= if necessary)
Code Block |
---|
mvn install:install-file |
Code Block |
filter.plugins = \ PDF Text Extractor, \ PDF Thumbnail, \ HTML Text Extractor, -Dfile=jai_imageio-1_1/lib/jai_imageio.jar \ Word Text Extractor, \ -DgroupId=com.sun.media JPEG Thumbnail plugin.named.org.dspace.app.mediafilter.FormatFilter = \ org.dspace.app.mediafilter.XPDF2Text = PDF Text Extractor, \ -DartifactId=jai_imageio org.dspace.app.mediafilter.XPDF2Thumbnail = PDF Thumbnail, \ -Dversion=1.0_01 org.dspace.app.mediafilter.HTMLFilter = HTML Text Extractor, \ org.dspace.app.mediafilter.WordFilter = Word Text Extractor, \ \ org.dspace.app.mediafilter.JPEGFilter = JPEG Thumbnail, \ -Dpackaging=jar org.dspace.app.mediafilter.BrandedPreviewJPEGFilter = Branded Preview JPEG |
Then add the input format configuration properties for each of the new filters, e.g.:
Code Block |
---|
filter.org.dspace.app.mediafilter.XPDF2Thumbnail.inputFormats = Adobe PDFfilter.org.dspace.app.mediafilter.XPDF2Text.inputFormats = Adobe PDF |
Finally, if you want PDF thumbnail images, don't forget to add that filter name to the filter.plugins property, e.g.:
Code Block |
---|
filter.plugins = PDF Thumbnail, PDF Text Extractor, ... |
Build and Install
Follow your usual DSpace installation/update procedure, only add -Pxpdf-mediafilter-support to the Maven invocation:
Code Block |
---|
mvn -Pxpdf-mediafilter-support package \ ant -Dconfig=\[dspace\]/config/dspace.cfg update |
Creating a new Media/Format Filter
Creating a simple Media Filter
New Media Filters must implement the org.dspace.app.mediafilter.FormatFilter interface. More information on the methods you need to implement is provided in the FormatFilter.java source file. For example:
public class MySimpleMediaFilter implements FormatFilter
Alternatively, you could extend the org.dspace.app.mediafilter.MediaFilter class, which just defaults to performing no pre/post-processing of bitstreams before or after filtering.
public class MySimpleMediaFilter extends MediaFilter
You must give your new filter a "name", by adding it and its name to the plugin.named.org.dspace.app.mediafilter.FormatFilter field in dspace.cfg. In addition to naming your filter, make sure to specify its input formats in the filter.<class path>.inputFormats config item. Note the input formats must match the short description field in the Bitstream Format Registry (i.e. bitstreamformatregistry table).
DgeneratePom=true
|
You may have to repeat this procedure for the jai_core.jar library, as well, if it is not available in any of the public Maven repositories. Once acquired, this command installs it locally:
Code Block |
---|
mvn install:install-file -Dfile=jai_core-1.1.2_01.jar \
-DgroupId=javax.media -DartifactId=jai_core -Dversion=1.1.2_01 -Dpackaging=jar -DgeneratePom=true |
Edit DSpace Configuration
First, be sure there is a value for thumbnail.maxwidth and that it corresponds to the size you want for preview images for the UI, e.g.: (NOTE: this code doesn't pay any attention to thumbnail.maxheight but it's best to set it too so the other thumbnail filters make square images.)
Code Block |
---|
# maximum width and height of generated thumbnails
thumbnail.maxwidth= 80 |
Code Block |
plugin.named.org.dspace.app.mediafilter.FormatFilter = \ org.dspace.app.mediafilter.MySimpleMediaFilter = My Simple Text Filter, \ ... filter.org.dspace.app.mediafilter.MySimpleMediaFilter.inputFormats = Text |
If you neglect to define the inputFormats for a particular filter, the MediaFilterManager will never call that filter, since it will never find a bitstream which has a format matching that filter's input format(s).
If you have a complex Media Filter class, which actually performs different filtering for different formats (e.g. conversion from Word to PDF and conversion from Excel to CSV), you should define this as described in Chapter 13.3.2.2 .
Creating a Dynamic or "Self-Named" Format Filter
If you have a more complex Media/Format Filter, which actually performs multiple filtering or conversions for different formats (e.g. conversion from Word to PDF and conversion from Excel to CSV), you should have define a class which implements the FormatFilter interface, while also extending the Chapter 13.3.2.2 SelfNamedPlugin class. For example:
public class MyComplexMediaFilter extends SelfNamedPlugin implements FormatFilter
Since SelfNamedPlugins are self-named (as stated), they must provide the various names the plugin uses by defining a getPluginNames() method. Generally speaking, each "name" the plugin uses should correspond to a different type of filter it implements (e.g. "Word2PDF" and "Excel2CSV" are two good names for a complex media filter which performs both Word to PDF and Excel to CSV conversions).
Self-Named Media/Format Filters are also configured differently in dspace.cfg. Below is a general template for a Self Named Filter (defined by an imaginary MyComplexMediaFilter class, which can perform both Word to PDF and Excel to CSV conversions):
thumbnail.maxheight = 80 |
Now, add the absolute paths to the XPDF tools you installed. In this example they are installed under /usr/local/bin (a logical place on Linux and MacOSX), but they may be anywhere.
Code Block |
---|
xpdf.path.pdftotext = /usr/local/bin/pdftotext
xpdf.path.pdftoppm = /usr/local/bin/pdftoppm
xpdf.path.pdfinfo = /usr/local/bin/pdfinfo |
Change the MediaFilter plugin configuration to remove the old org.dspace.app.mediafilter.PDFFilter and add the new filters, e.g: (New sections are in bold)
Code Block |
---|
filter.plugins = \
PDF Text Extractor, \
PDF Thumbnail, \
HTML Text Extractor, \
Word Text Extractor, \
JPEG Thumbnail
plugin.named |
Code Block |
#Add to a list of all Self Named filters plugin.selfnamed.org.dspace.app.mediafilter.FormatFilter = \ org.dspace.app.mediafilter.MyComplexMediaFilter #DefineXPDF2Text input= formatsPDF forText each "named" plugin this filter implementsExtractor, \ filter.org.dspace.app.mediafilter.MyComplexMediaFilter.Word2PDF.inputFormatsXPDF2Thumbnail = PDF MicrosoftThumbnail, Word\ filter.org.dspace.app.mediafilter.MyComplexMediaFilter.Excel2CSV.inputFormatsHTMLFilter = HTML Microsoft Excel |
...
Text Extractor, \ org.dspace.app.mediafilter |
...
.WordFilter = Word Text Extractor, \
org.dspace.app.mediafilter.JPEGFilter = JPEG Thumbnail, \
org.dspace.app.mediafilter.BrandedPreviewJPEGFilter = Branded Preview JPEG |
Then add the input format configuration properties for each of the new filters, e.g.:
Code Block |
---|
These named plugins take different input formats as defined above (see the corresponding inputFormats setting).
Note |
---|
If you neglect to define the |
For a particular Self-Named Filter, you are also welcome to define additional configuration settings in dspace.cfg. To continue with our current example, each of our imaginary plugins actually results in a different output format (Word2PDF creates "Adobe PDF", while Excel2CSV creates "Comma Separated Values"). To allow this complex Media Filter to be even more configurable (especially across institutions, with potential different "Bitstream Format Registries"), you may wish to allow for the output format to be customizable for each named plugin. For example:
Code Block |
---|
#Define output formats for each named plugin filter.org.dspace.app.mediafilter.MyComplexMediaFilter.Word2PDF.output FormatXPDF2Thumbnail.inputFormats = Adobe PDF filter.org.dspace.app.mediafilter.MyComplexMediaFilterXPDF2Text.Excel2CSV.outputFormatinputFormats = Comma SeparatedAdobe Values |
Any custom configuration fields in dspace.cfg defined by your filter are ignored by the MediaFilterManager, so it is up to your custom media filter class to read those configurations and apply them as necessary. For example, you could use the following sample Java code in your MyComplexMediaFilter class to read these custom outputFormat configurations from dspace.cfg:
PDF |
Finally, if you want PDF thumbnail images, don't forget to add that filter name to the filter.plugins property, e.g.:
Code Block |
---|
filter.plugins = PDF Thumbnail, PDF Text Extractor, ... |
Build and Install
Follow your usual DSpace installation/update procedure, only add -Pxpdf-mediafilter-support to the Maven invocation:
Code Block |
---|
mvn -Pxpdf-mediafilter-support package
ant -Dconfig=\[dspace\]/config/dspace.cfg update |
Code Block |
#Get "outputFormat" configuration from dspace.cfg
String outputFormat = ConfigurationManager.getProperty(MediaFilterManager.FILTER_PREFIX + "." + MyComplexMediaFilter.class.getName() + "." + this.getPluginInstanceName() + ".outputFormat"); |
Configuring Usage Instrumentation Plugins
...