mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-15 14:03:17 +00:00

git-svn-id: http://scm.dspace.org/svn/repo/dspace/trunk@4611 9c30dcfa-912a-0410-8fc2-9e0234be79fd
1376 lines
293 KiB
HTML
1376 lines
293 KiB
HTML
<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 5. DSpace System Documentation: Configuration</title><meta content="DocBook XSL Stylesheets V1.75.2" name="generator"><link rel="home" href="index.html" title="DSpace Manual"><link rel="up" href="index.html" title="DSpace Manual"><link rel="prev" href="ch04.html" title="Chapter 4. DSpace System Documentation: Upgrading a DSpace Installation"><link rel="next" href="ch06.html" title="Chapter 6. DSpace System Documentation: JPSUI Configuration and Customization"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF" marginwidth="5m"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">Chapter 5. DSpace System Documentation: Configuration</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="ch04.html">Prev</a> </td><th align="center" width="60%"> </th><td align="right" width="20%"> <a accesskey="n" href="ch06.html">Next</a></td></tr></table><hr></div><div class="chapter" title="Chapter 5. DSpace System Documentation: Configuration"><div class="titlepage"><div><div><h2 class="title"><a name="N11760"></a>Chapter 5. <a name="docbook-configure.html"></a>DSpace System Documentation: Configuration</h2></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="ch05.html#N1177C">5.1. General Configuration</a></span></dt><dd><dl><dt><span class="section"><a href="ch05.html#N1178B">5.1.1. Input Conventions</a></span></dt><dt><span class="section"><a href="ch05.html#N117CB">5.1.2. Update Reminder</a></span></dt></dl></dd><dt><span class="section"><a href="ch05.html#N1183F">5.2. The <code class="literal">dspace.cfg</code> Configuration Properties File</a></span></dt><dd><dl><dt><span class="section"><a href="ch05.html#N1188F">5.2.1. The <code class="literal">dspace.cfg</code> file</a></span></dt><dt><span class="section"><a href="ch05.html#N11BE6">5.2.2. Main DSpace Configurations</a></span></dt><dt><span class="section"><a href="ch05.html#N11CBE">5.2.3. DSpace Database Configuration</a></span></dt><dt><span class="section"><a href="ch05.html#N11E21">5.2.4. DSpace Email Settings</a></span></dt><dd><dl><dt><span class="section"><a href="ch05.html#N11FA6">5.2.4.1. Wording of E-mail Messages</a></span></dt></dl></dd><dt><span class="section"><a href="ch05.html#N11FCE">5.2.5. File Storage</a></span></dt><dt><span class="section"><a href="ch05.html#N1206E">5.2.6. SRB (Storage Resource Brokerage) File Storage</a></span></dt><dt><span class="section"><a href="ch05.html#N12173">5.2.7. Handle Server Configuration</a></span></dt><dt><span class="section"><a href="ch05.html#N121D0">5.2.8. Stackable Authentication Method(s)</a></span></dt><dd><dl><dt><span class="section"><a href="ch05.html#N1224F">5.2.8.1. Authentication by Password</a></span></dt><dt><span class="section"><a href="ch05.html#N1227A">5.2.8.2. X.509 Certificate Authentication</a></span></dt><dt><span class="section"><a href="ch05.html#N122CE">5.2.8.3. Example of a Custom Authentication Method</a></span></dt><dt><span class="section"><a href="ch05.html#N122E7">5.2.8.4. Configuring IP Authentication</a></span></dt><dt><span class="section"><a href="ch05.html#N12303">5.2.8.5. Configuring LDAP Authentication</a></span></dt></dl></dd><dt><span class="section"><a href="ch05.html#N12515">5.2.9. Shibboleth Authentication Configuration Settings</a></span></dt><dt><span class="section"><a href="ch05.html#N1263F">5.2.10. Logging Configuration</a></span></dt><dt><span class="section"><a href="ch05.html#N1269B">5.2.11. Configuring Lucene Search Indexes</a></span></dt><dt><span class="section"><a href="ch05.html#N12813">5.2.12. Proxy Settings</a></span></dt><dt><span class="section"><a href="ch05.html#N12865">5.2.13. Configuring Media Filters</a></span></dt><dt><span class="section"><a href="ch05.html#N12955">5.2.14. Configurable MODS Dissemination Crosswalk</a></span></dt><dt><span class="section"><a href="ch05.html#N129C6">5.2.15. XSLT-based Crosswalks</a></span></dt><dd><dl><dt><span class="section"><a href="ch05.html#N12A65">5.2.15.1. Testing XSLT Crosswalks</a></span></dt></dl></dd><dt><span class="section"><a href="ch05.html#N12A82">5.2.16. Configurable Qualified Dublin Core (QDC) dissemination crosswalk</a></span></dt><dt><span class="section"><a href="ch05.html#N12B45">5.2.17. Configuring Crosswalk Plugins</a></span></dt><dt><span class="section"><a href="ch05.html#N12B60">5.2.18. Configuring Packager Plugins</a></span></dt><dt><span class="section"><a href="ch05.html#N12B7F">5.2.19. Event System Configuration</a></span></dt><dt><span class="section"><a href="ch05.html#N12C7C">5.2.20. Checksum Checker Settings</a></span></dt><dt><span class="section"><a href="ch05.html#N12CF3">5.2.21. Item Export and Download Settings</a></span></dt><dt><span class="section"><a href="ch05.html#N12D98">5.2.22. Subscription Emails</a></span></dt><dt><span class="section"><a href="ch05.html#N12DCD">5.2.23. Settings for the Submission Process</a></span></dt><dt><span class="section"><a href="ch05.html#N12E25">5.2.24. Configuring Creative Commons License</a></span></dt><dt><span class="section"><a href="ch05.html#N12E62">5.2.25. WEB User Interface Configurations</a></span></dt><dt><span class="section"><a href="ch05.html#N13035">5.2.26. Browse Index Configuration</a></span></dt><dd><dl><dt><span class="section"><a href="ch05.html#N1309B">5.2.26.1. Defining the Indexes.</a></span></dt><dt><span class="section"><a href="ch05.html#N13156">5.2.26.2. Defining Sort Options</a></span></dt><dt><span class="section"><a href="ch05.html#N131E1">5.2.26.3. Browse Index Normalization Rule Configuration</a></span></dt><dt><span class="section"><a href="ch05.html#N13222">5.2.26.4. Other Browse Options</a></span></dt></dl></dd><dt><span class="section"><a href="ch05.html#N132B6">5.2.27. Author (Multiple metadata value) Display</a></span></dt><dt><span class="section"><a href="ch05.html#N13336">5.2.28. Links to Other Browse Contexts</a></span></dt><dt><span class="section"><a href="ch05.html#N133CE">5.2.29. Recent Submissions</a></span></dt><dt><span class="section"><a href="ch05.html#N1342A">5.2.30. Syndication Feed (RSS) Settings</a></span></dt><dt><span class="section"><a href="ch05.html#N1359A">5.2.31. Content Inline Disposition Threshold</a></span></dt><dt><span class="section"><a href="ch05.html#N135F0">5.2.32. Multi-file HTML Document/Site Settings</a></span></dt><dt><span class="section"><a href="ch05.html#N13639">5.2.33. Sitemap Settings</a></span></dt><dt><span class="section"><a href="ch05.html#N13693">5.2.34. Upload File Settings</a></span></dt><dt><span class="section"><a href="ch05.html#N136DD">5.2.35. Statistical Report Configuration Setting</a></span></dt><dt><span class="section"><a href="ch05.html#N13727">5.2.36. JSP Web Interface (JSPUI) Settings</a></span></dt><dt><span class="section"><a href="ch05.html#N1391B">5.2.37. Configuring Multilingual Support</a></span></dt><dd><dl><dt><span class="section"><a href="ch05.html#N13922">5.2.37.1. Setting the Default Language for the Application</a></span></dt><dt><span class="section"><a href="ch05.html#N13954">5.2.37.2. Supporting More Than One Language</a></span></dt><dd><dl><dt><span class="section"><a href="ch05.html#N13958">Changes in dspace.cfg</a></span></dt><dt><span class="section"><a href="ch05.html#N1399E">Related Files</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="ch05.html#N13A4D">5.2.38. Item Mapper</a></span></dt><dt><span class="section"><a href="ch05.html#N13A84">5.2.39. Display of Group Membership</a></span></dt><dt><span class="section"><a href="ch05.html#N13AB3">5.2.40. SFX Server</a></span></dt><dt><span class="section"><a href="ch05.html#N13AE4">5.2.41. Item Recommendation Setting</a></span></dt><dt><span class="section"><a href="ch05.html#N13B2B">5.2.42. Controlled Vocabulary Settings</a></span></dt><dt><span class="section"><a href="ch05.html#N13BBD">5.2.43. XMLUI Specific Configuration</a></span></dt><dt><span class="section"><a href="ch05.html#N13D7A">5.2.44. OAI-PMH Configuration and Activation</a></span></dt><dd><dl><dt><span class="section"><a href="ch05.html#N13D87">5.2.44.1. OAI-PMH Configuration</a></span></dt><dt><span class="section"><a href="ch05.html#N13DC0">5.2.44.2. Activating Additional OAI-PMH Crosswalks</a></span></dt><dd><dl><dt><span class="section"><a href="ch05.html#N13E23">DIDL</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="ch05.html#N13E55">5.2.45. Delegation Administration</a></span></dt><dt><span class="section"><a href="ch05.html#N13ED8">5.2.46. Batch Metadata Editing</a></span></dt><dt><span class="section"><a href="ch05.html#N13F6B">5.2.47. Hiding Metadata</a></span></dt></dl></dd><dt><span class="section"><a href="ch05.html#N13FBA">5.3. Optional or Advanced Configuration Settings</a></span></dt><dd><dl><dt><span class="section"><a href="ch05.html#N13FC3">5.3.1. The Metadata Format and Bitstream Format Registries</a></span></dt><dd><dl><dt><span class="section"><a href="ch05.html#N13FE1">5.3.1.1. Metadata Format Registries</a></span></dt><dt><span class="section"><a href="ch05.html#N14001">5.3.1.2. Bitstream Format Registry</a></span></dt></dl></dd><dt><span class="section"><a href="ch05.html#N1401C">5.3.2. XPDF Filter </a></span></dt><dd><dl><dt><span class="section"><a href="ch05.html#N14025">5.3.2.1. Installation</a></span></dt><dt><span class="section"><a href="ch05.html#N14040">5.3.2.2. Install XPDF Tools</a></span></dt><dt><span class="section"><a href="ch05.html#N14059">5.3.2.3. Installation within DSpace</a></span></dt><dd><dl><dt><span class="section"><a href="ch05.html#N14062">
|
||
<span class="bold"><strong>Fetch and install jai_imageio JAR</strong></span>
|
||
</a></span></dt><dt><span class="section"><a href="ch05.html#N14079">Edit DSpace Configuration</a></span></dt><dt><span class="section"><a href="ch05.html#N140B9">Build and Install</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="ch05.html#N140CF">5.3.3. Creating a new Media/Format Filter</a></span></dt><dd><dl><dt><span class="section"><a href="ch05.html#N140D6">5.3.3.1. Creating a simple Media Filter</a></span></dt><dt><span class="section"><a href="ch05.html#N14134">5.3.3.2. Creating a Dynamic or "Self-Named" Format Filter</a></span></dt></dl></dd><dt><span class="section"><a href="ch05.html#N141D3">5.3.4. Configuration Files for Other Applications</a></span></dt><dt><span class="section"><a href="ch05.html#N14235">5.3.5.
|
||
Configuring Usage Instrumentation Plugins</a></span></dt><dd><dl><dt><span class="section"><a href="ch05.html#N14246">5.3.5.1.
|
||
The Passive Plugin </a></span></dt><dt><span class="section"><a href="ch05.html#N14253">5.3.5.2.
|
||
The Tab File Logger Plugin </a></span></dt><dt><span class="section"><a href="ch05.html#N14266">5.3.5.3.
|
||
The XML Logger Plugin </a></span></dt></dl></dd><dt><span class="section"><a href="ch05.html#N14279">5.3.6. SWORD Configuration</a></span></dt><dt><span class="section"><a href="ch05.html#N14501">5.3.7. OpenSearch Support</a></span></dt><dt><span class="section"><a href="ch05.html#N14671">5.3.8. Embargo</a></span></dt></dl></dd></dl></div><p>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.</p><p>For ease of use, the Configuration documentation is broken into several parts:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Section 5.1 addresses general conventions used with configuring not only the dspace.cfg file, but other configuration files which use similar conventions.</p></li><li class="listitem"><p>Section 5.2 specifies the basic <code class="literal">dspace.cfg</code> file settings</p></li><li class="listitem"><p>Section 5.3 contain other more advanced settings that are optional in the <code class="literal">dspace.cfg</code> configuration file.</p></li></ul></div><div class="section" title="5.1. General Configuration"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="N1177C"></a>5.1. <a name="docbook-configure.html-general"></a>General Configuration</h2></div></div><div></div></div><p>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 <code class="literal">dspace.cfg</code> file you need to learn to configure first and foremost.</p><p>In general, most of the configuration files, namely dspace.cfg and xmlui.xconf will provide a good source of information not only with configuration but also with customization (cf. Customization chapter)</p><div class="section" title="5.1.1. Input Conventions"><div class="titlepage"><div><div><h3 class="title"><a name="N1178B"></a>5.1.1. <a name="docbook-configure.html-general-conventions"></a>Input Conventions</h3></div></div><div></div></div><p>We will use the <code class="literal">dspace.cfg</code> as our example for input conventions used through out the system. It is a basic Java properties file, where lines are either comments, starting with a '<code class="literal">#</code>', blank lines, or property/value pairs of the form:</p><p>
|
||
<code class="literal">property.name = property value</code>
|
||
</p><p>Some property defaults are "commented out". That is, they have a "#" proceeding them, and the DSpace software ignores the config property. This may cause the feature not to be enabled, or, cause a default property to be used when the software is compiled and updated.</p><p>The property value may contain <span class="emphasis"><em>references</em></span> to other configuration properties, in the form <code class="literal">${property.name}</code>. This follows the <code class="literal">ant</code> convention of allowing references in property files. A property may not refer to itself. Examples:</p><p>
|
||
<pre class="screen">
|
||
property.name = word1 ${other.property.name} more words
|
||
property2.name = ${dspace.dir}/rest/of/path
|
||
</pre>
|
||
</p><div class="tip" title="Tip" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Tip"><tr><td valign="top" align="center" rowspan="2" width="25"><img alt="[Tip]" src="/jspui/doc/image/tip.png"></td><th align="left"></th></tr><tr><td valign="top" align="left"><p>Property values can include other, previously defined values, by enclosing the property name in ${...}. For example, if your <code class="literal">dspace.cfg</code> contains:</p><pre class="screen">dspace.dir = /dspace
|
||
dspace.history = ${dspace.dir}/history
|
||
</pre><p>Then the value of <code class="literal">dspace.history</code> property is expanded to be <code class="literal">/dspace/history</code>. This method is especially useful for handling commonly used file paths.</p></td></tr></table></div></div><div class="section" title="5.1.2. Update Reminder"><div class="titlepage"><div><div><h3 class="title"><a name="N117CB"></a>5.1.2. <a name="docbook-configure.html-general-update"></a>Update Reminder</h3></div><div><h4 class="subtitle">Things you should know about editing <code class="literal">dspace.cfg</code> files.</h4></div></div><div></div></div><p>It is important to rememeber that there are <span class="bold"><strong> two <code class="literal">dspace.cfg</code> files after an installation of DSpace.</strong></span></p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>The "source" file that is found in <code class="literal">[dspace-source]/dspace/config/dspace.cfg</code></p></li><li class="listitem"><p>The "runtime" file that is found in <code class="literal">[dspace]/config/dspace.cfg</code></p></li></ol></div><p>The runtime file is supposed to be the <span class="bold"><strong>copy</strong></span> of the source file, which is considered the <span class="emphasis"><em>master</em></span> version. However, the DSpace server and command programs only look at the <span class="emphasis"><em>runtime</em></span> configuration file, so when you are revising your configuration values, it is tempting to <span class="emphasis"><em>only edit the runtime file</em></span>. DO NOT do this. Always make the same changes to the source version of <code class="literal">dspace.cfg</code> in addition to the runtime file. The two files <span class="emphasis"><em>should</em></span> always be identical, since the source <code class="literal">dspace.cfg</code> will be the basis of your next upgrade.</p><p>To keep the two files in synchronization, you can edit your files in <code class="literal">[dspace-source]/dspace/config/</code> and then you would run the following commands:</p><pre class="screen">
|
||
cd /[dspace-source]/dspace/target/dspace-<version>-build.dir
|
||
ant update_configs
|
||
</pre><p>This will copy the source <code class="literal">dspace.cfg</code> (along with other configuration files) into the runtime (<code class="literal">/[dspace]/config</code>) directory.</p><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td valign="top" align="center" rowspan="2" width="25"><img alt="[Note]" src="/jspui/doc/image/note.png"></td><th align="left"></th></tr><tr><td valign="top" align="left"><p>You should remember that after editing your configuration file(s), and you are done and wish to implement the changes, you will need to:</p></td></tr></table></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>To run <code class="literal">ant -Dconfig=/[dspace]/config/dspace.cfg update</code> if you are updating your <code class="literal">dspace.cfg</code> file and wish to see the changes appear. Follow the usual sequence with copying your webapps.</p></li><li class="listitem"><p>If you edit <code class="literal">dspace.cfg</code> in <code class="literal">[dspace-source]/dspace/config/</code>, you should then run '<code class="literal">ant init_configs</code>' in the directory <code class="literal">[dspace-source]/dspace/target/dspace-1.5.2-build.dir</code> 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. </p></li></ul></div></div></div><div class="section" title="5.2. The dspace.cfg Configuration Properties File"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="N1183F"></a>5.2. <a name="docbook-configure.html-dspace-cfg"></a>The <code class="literal">dspace.cfg</code> Configuration Properties File</h2></div></div><div></div></div><p>The primary way of configuring DSpace is to edit the <code class="literal">dspace.cfg</code>. You will definitely have to do this before you can run DSpace properly. <code class="literal">dspace.cfg</code> contains basic information about a DSpace installation, including system path information, network host information, and other like items. To assist you in this endeavor, below is a place for you to write down some of the preliminary data so that you may facilitate faster configuration. <table summary="Simple list" border="0" class="simplelist"><tr><td>Server IP:</td><td>
|
||
<code class="literal">______________________________</code>
|
||
</td></tr><tr><td>Host Name (Server name)</td><td>
|
||
<code class="literal">______________________________</code>
|
||
</td></tr><tr><td>dspace.url</td><td>
|
||
<code class="literal">______________________________</code>
|
||
</td></tr><tr><td>Administrator's email:</td><td>
|
||
<code class="literal">______________________________</code>
|
||
</td></tr><tr><td>handle prefix:</td><td>
|
||
<code class="literal">______________________________</code>
|
||
</td></tr><tr><td>assetstore directory:</td><td>
|
||
<code class="literal">______________________________</code>
|
||
</td></tr><tr><td>SMTP server:</td><td>
|
||
<code class="literal">______________________________</code>
|
||
</td></tr></table></p><div class="section" title="5.2.1. The dspace.cfg file"><div class="titlepage"><div><div><h3 class="title"><a name="N1188F"></a>5.2.1. <a name="docbook-configure.html-dspace-cfg-table"></a>The <code class="literal">dspace.cfg</code> file</h3></div></div><div></div></div><p>Below is a brief "Properties" table for the <code class="literal">dspace.cfg</code> file and the documented details are referenced. Please refer to those sections for the complete details of the parameter</p><div class="table"><a name="N118A0"></a><p class="title"><b>Table 5.1. The <code class="literal">dspace.cfg</code> Main Properties</b></p><div class="table-contents"><table summary="The dspace.cfg Main Properties" border="1" width="100%"><colgroup><col align="left"><col align="left"></colgroup><thead><tr><th align="left">
|
||
<span class="bold"><strong>Property</strong></span>
|
||
</th><th align="left">
|
||
<span class="bold"><strong>Ref. Sect.</strong></span>
|
||
</th></tr></thead><tbody><tr><td colspan="2" align="center">General Configurations</td></tr><tr><td align="left">
|
||
<pre class="screen">dspace.dir
|
||
dspace.url
|
||
dspace.baseUrl
|
||
dspace.oai.url
|
||
dspace.hostname
|
||
dspace.name</pre>
|
||
</td><td align="left">
|
||
<a class="link" href="ch05.html#docbook-configure.html-general-2">5.2.2</a>
|
||
</td></tr><tr><td colspan="2" align="center">Database Configurations</td></tr><tr><td align="left">
|
||
<pre class="screen">db.name
|
||
db.url
|
||
db.driver
|
||
db.username
|
||
db.password</pre>
|
||
</td><td align="left">3.2.3 or <a class="link" href="ch05.html#docbook-configure.html-database">5.2.3</a></td></tr><tr><td colspan="2" align="center">Advanced Database Configuration</td></tr><tr><td align="left">
|
||
<pre class="screen">db.schema
|
||
db.maxconnection
|
||
db.maxwait
|
||
db.maxidle
|
||
db.statementpool
|
||
db.poolname</pre>
|
||
</td><td align="left"><a class="link" href="ch05.html#docbook-configure.html-database">5.2.3</a></td></tr><tr><td colspan="2" align="center">Email Settings</td></tr><tr><td align="left">
|
||
<pre class="screen">mail.server
|
||
mail.server.username
|
||
mail.server.password
|
||
mail.server.port
|
||
mail.from.address
|
||
feedback.recipient
|
||
mail.admin
|
||
alert.recipient
|
||
registration.notify
|
||
mail.charset
|
||
mail.allowed.referrers
|
||
mail.extraproperties
|
||
mail.server.disabled</pre>
|
||
</td><td align="left">
|
||
<a class="link" href="ch05.html#docbook-configure.html-email">5.2.4</a>
|
||
</td></tr><tr><td colspan="2" align="center">File Storage</td></tr><tr><td align="left">
|
||
<pre class="screen">assetstore.dir
|
||
[assetstore.dir.1
|
||
assetstore.dir.2
|
||
assetstore.incoming]</pre>
|
||
</td><td align="left">
|
||
<a class="link" href="ch05.html#docbook-configure.html-storage">5.2.5</a>
|
||
</td></tr><tr><td colspan="2" align="center">SRB File Storage</td></tr><tr><td align="left">
|
||
<pre class="screen">srb.hosts.1
|
||
srb.port.1
|
||
srb.mcatzone.1
|
||
srb.mdasdomainname.1
|
||
srb.defaultstorageresource.1
|
||
srb.username.1
|
||
srb.password.1
|
||
srb.homedirectory.1
|
||
srb.parentdir.1</pre>
|
||
</td><td align="left">
|
||
<a class="link" href="ch05.html#docbook-configure.html-srb">5.2.6</a>
|
||
</td></tr><tr><td colspan="2" align="center">Handle Configuration</td></tr><tr><td align="left">
|
||
<pre class="screen">handle.prefix
|
||
handle.dir</pre>
|
||
</td><td align="left">
|
||
<a class="link" href="ch05.html#docbook-configure.html-handle">5.2.7</a>
|
||
</td></tr><tr><td colspan="2" align="center">Authorization System Configuration</td></tr><tr><td align="left">
|
||
<pre class="screen">core.authorization.community-admin.create-subelement
|
||
core.authorization.community-admin.delete-subelement
|
||
core.authorization.community-admin.policies
|
||
core.authorization.community-admin.admin-group
|
||
core.authorization.community-admin.collection.policies
|
||
core.authorization.community-admin.collection.template-item
|
||
core.authorization.community-admin.collection.submitters
|
||
core.authorization.community-admin.collection.workflows
|
||
core.authorization.community-admin.collection.admin-group
|
||
core.authorization.community-admin.item.delete
|
||
core.authorization.community-admin.item.withdraw
|
||
core.authorization.community-admin.item.reinstatiate
|
||
core.authorization.community-admin.item.policies
|
||
core.authorization.community-admin.item.create-bitstream
|
||
core.authorization.community-admin.item.delete-bitstream
|
||
core.authorization.community-admin.item-admin.cc-license
|
||
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
|
||
core.authorization.collection-admin.item.delete
|
||
core.authorization.collection-admin.item.withdraw
|
||
core.authorization.collection-admin.item.reinstatiate
|
||
core.authorization.collection-admin.item.policies
|
||
core.authorization.collection-admin.item.create-bitstream
|
||
core.authorization.collection-admin.item.delete-bitstream
|
||
core.authorization.collection-admin.item-admin.cc-license
|
||
core.authorization.item-admin.policies
|
||
core.authorization.item-admin.create-bitstream
|
||
core.authorization.item-admin.delete-bitstream
|
||
core.authorization.item-admin.cc-license</pre>
|
||
</td><td align="left"><a class="link" href="ch05.html#docbook-configure.html-authorization">5.2.45</a></td></tr><tr><td colspan="2" align="center">Stackable Authentication Methods</td></tr><tr><td align="left">
|
||
<pre class="screen">plugin.sequence.org.dspace.authenticate.AuthenticationMethod</pre>
|
||
</td><td align="left"><a class="link" href="ch05.html#docbook-configure.html-authentication">5.2.8</a> or <a class="link" href="ch05.html#docbook-configure.html-shibboleth">5.2.9</a></td></tr><tr><td colspan="2" align="center">LDAP Authentication</td></tr><tr><td align="left">
|
||
<pre class="screen">ldap.enable
|
||
ldap.provider_url
|
||
ldap.id_field
|
||
ldap.object_context
|
||
ldap.search_context
|
||
ldap.email_field
|
||
ldap.surname_field
|
||
ldap.givenname_field
|
||
ldap.phone_field
|
||
webui.ldap.autoregister
|
||
ldap.login.specialgroup</pre>
|
||
</td><td align="left"><a class="link" href="ch05.html#docbook-configure.html-ldap">5.2.8.5</a></td></tr><tr><td align="left"><span class="emphasis"><em>Hierarchical LDAP Settings:</em></span>
|
||
<pre class="screen">ldap.search_scope
|
||
ldap.search.user
|
||
ldap.netid_email_domain</pre></td><td align="left"><a class="link" href="ch05.html#docbook-configure.html-ldap">5.2.8.5</a></td></tr><tr><td colspan="2" align="center">Shibboleth Authentication Settings</td></tr><tr><td align="left">
|
||
<pre class="screen">authentication.shib.email-header
|
||
authentication.shib.firstname-header
|
||
authentication.shib.lastname-header
|
||
authentication.shib.email-use-tomcat-remote-user
|
||
authentication.shib.autoregister
|
||
authentication.shib.role-header
|
||
authentication.shib.default-roles</pre>
|
||
</td><td align="left"><a class="link" href="">5.2.9</a>-</td></tr><tr><td colspan="2" align="center">Log Configuration</td></tr><tr><td align="left">
|
||
<code class="literal">log.init.config</code>
|
||
</td><td align="left">
|
||
<a class="link" href="ch05.html#docbook-configure.html-logging">5.2.10</a>
|
||
</td></tr><tr><td colspan="2" align="center">Lucene Search Indexes</td></tr><tr><td align="left">
|
||
<pre class="screen">search.dir
|
||
search.max-clauses
|
||
search.analyzer
|
||
search.operator
|
||
search.maxfieldlengthsearch.index.<span class="emphasis"><em>n</em></span></pre>
|
||
</td><td align="left">
|
||
<a class="link" href="ch05.html#docbook-configure.html-lucene-search">5.2.11</a>
|
||
</td></tr><tr><td colspan="2" align="center">Proxy Settings</td></tr><tr><td align="left">
|
||
<pre class="screen">http.proxy.host
|
||
http.proxy.port</pre>
|
||
</td><td align="left">
|
||
<a class="link" href="ch05.html#docbook-configure.html-proxy">5.2.12</a>
|
||
</td></tr><tr><td colspan="2" align="center">Media Filter</td></tr><tr><td align="left"><code class="literal">filter.plugin</code></td><td align="left"><a class="link" href="ch05.html#docbook-configure.html-mediafilter">5.2.13</a></td></tr><tr><td align="left">
|
||
<pre class="screen">plugin.named.org.dspace.app.mediafilter.FormatFilter
|
||
filter.org.dspace.app.mediafilter.PDFFilter.inputFormats
|
||
filter.org.dspace.app.mediafilter.HTMLFilter.inputFormats
|
||
filter.org.dspace.app.mediafilter.WordFilter.inputFormats
|
||
filter.org.dspace.app.mediafilter.JPEGFilter.inputFormats
|
||
filter.org.dspace.app.mediafilter.BrandedPreviewJPEGFilter.inputFormats</pre>
|
||
</td><td align="left"><a class="link" href="ch05.html#docbook-configure.html-mediafilter">5.2.13</a></td></tr><tr><td align="left">
|
||
<pre class="screen">pdffilter.largepdfs
|
||
pdffilter.skiponmemoryexception</pre>
|
||
</td><td align="left"><a class="link" href="ch05.html#docbook-configure.html-mediafilter">5.2.13</a></td></tr><tr><td colspan="2" align="center">Crosswalks (MODS, QDC, XSLT, etc.)</td></tr><tr><td align="left">
|
||
<pre class="screen">crosswalk.mods.properties.MODS
|
||
crosswalk.submission.MODS.stylesheet
|
||
crosswalk.qdc.namespace.QDC.dc
|
||
crosswalk.qdc.namespace.QDC.dcterms
|
||
crosswalk.qdc.schemaLocation.QDC
|
||
plugin.named.org.dspace.content.crosswalk.IngestionCrosswalk
|
||
plugin.named.org.dspace.content.crosswalk.DisseminationCrosswalk</pre>
|
||
</td><td align="left">
|
||
<a class="link" href="ch05.html#docbook-configure.html-packager">5.2.18</a>
|
||
</td></tr><tr><td colspan="2" align="center">Event Settings</td></tr><tr><td align="left">
|
||
<pre class="screen">event.dispatcher.default.class
|
||
event.dispatcher.default.consumers
|
||
event.dispatcher.noindex.class
|
||
event.dispatcher.noindex.consumers
|
||
event.consumer.search.class
|
||
event.consumer.search.filters
|
||
event.consumer.browse.class
|
||
event.consumer.browse.filters
|
||
event.consumer.eperson.class
|
||
event.consumer.eperson.filters
|
||
event.consumer.test.class
|
||
event.consumer.test.filters
|
||
testConsumer.verbose</pre>
|
||
</td><td align="left">
|
||
<a class="link" href="ch05.html#docbook-configure.html-event">5.2.19</a>
|
||
</td></tr><tr><td colspan="2" align="center">Checksum Checker</td></tr><tr><td align="left">
|
||
<pre class="screen">plugin.single.org.dspace.checker.BitsreamDispatcher
|
||
checker.retention.default
|
||
checker.retention.CHECKSUM-MATCH</pre>
|
||
</td><td align="left">
|
||
<a class="link" href="ch05.html#docbook-configure.html-checksum">5.2.20</a>
|
||
</td></tr><tr><td colspan="2" align="center">Item Export and Download</td></tr><tr><td align="left">
|
||
<pre class="screen">org.dspace.app.itemexport.work.dir
|
||
org.dspace.app.itemexport.download.dir
|
||
org.dspace.app.itemexport.life.span.hours
|
||
org.dspace.app.itemexport.max.size</pre>
|
||
</td><td align="left">
|
||
<a class="link" href="ch05.html#docbook-configure.html-download">5.2.21</a>
|
||
</td></tr><tr><td colspan="2" align="center">Bulk Metadata Editing</td></tr><tr><td align="left">
|
||
<pre class="screen">bulkedit.valueseparator
|
||
bulkedit.fieldseparator
|
||
bulkedit.gui-item-limit
|
||
bulkedit.ignore-on-export</pre>
|
||
</td><td align="left"><a class="link" href="">5.2.46</a></td></tr><tr><td colspan="2" align="center">Subscription Email Option</td></tr><tr><td align="left">
|
||
<code class="literal">eperson.subscription.onlynew</code>
|
||
</td><td align="left">
|
||
<a class="link" href="ch05.html#docbook-configure.html-subscription">5.2.22</a>
|
||
</td></tr><tr><td colspan="2" align="center">Submission Process</td></tr><tr><td align="left">
|
||
<code class="literal">webui.submit.blocktheses</code>
|
||
</td><td align="left">
|
||
<a class="link" href="">5.2.23</a>
|
||
</td></tr><tr><td align="left">
|
||
<code class="literal">webui.submit.upload.required</code>
|
||
</td><td align="left">
|
||
<a class="link" href="">5.2.23</a>
|
||
</td></tr><tr><td align="left">
|
||
<code class="literal">webui.submit.enable-cc</code>
|
||
</td><td align="left">
|
||
<a class="link" href="ch05.html#docbook-configure.html-cc-license">5.2.24</a>
|
||
</td></tr><tr><td colspan="2" align="center">WEBUI Configurations [General]</td></tr><tr><td align="left">
|
||
<pre class="screen">webui.browse.thumbnail.max.height
|
||
webui.browse.thumbnail.max.width</pre>
|
||
</td><td align="left"><a class="link" href="ch05.html#docbook-configure.html-webui">5.2.25</a></td></tr><tr><td align="left"><code class="literal">webui.browse.thumbnail.linkbehaviour</code></td><td align="left"><a class="link" href="ch05.html#docbook-configure.html-webui">5.2.25</a></td></tr><tr><td align="left">
|
||
<pre class="screen">thumbnail.maxwidth
|
||
thumbnail.maxheight</pre>
|
||
</td><td align="left"><a class="link" href="ch05.html#docbook-configure.html-webui">5.2.25</a></td></tr><tr><td align="left"><code class="literal">webui.preview.enabled</code></td><td align="left"><a class="link" href="ch05.html#docbook-configure.html-webui">5.2.25</a></td></tr><tr><td align="left">
|
||
<pre class="screen">webui.preview.maxwidth
|
||
webui.preview.maxheight</pre>
|
||
</td><td align="left"><a class="link" href="ch05.html#docbook-configure.html-webui">5.2.25</a></td></tr><tr><td align="left">
|
||
<pre class="screen">webui.preview.brand
|
||
webui.preview.brand.abbrev</pre>
|
||
</td><td align="left"><a class="link" href="ch05.html#docbook-configure.html-webui">5.2.25</a></td></tr><tr><td align="left"><code class="literal">webui.preview.brand.height</code></td><td align="left"><a class="link" href="ch05.html#docbook-configure.html-webui">5.2.25</a></td></tr><tr><td align="left">
|
||
<pre class="screen">webui.preview.brand.font
|
||
webui.preview.brank.fontpoint</pre>
|
||
</td><td align="left"><a class="link" href="ch05.html#docbook-configure.html-webui">5.2.25</a></td></tr><tr><td align="left"><code class="literal">webui.preview.dc</code></td><td align="left"><a class="link" href="ch05.html#docbook-configure.html-webui">5.2.25</a></td></tr><tr><td align="left">
|
||
<pre class="screen">webui.strengths.show
|
||
webui.strengths.cache</pre>
|
||
</td><td align="left"><a class="link" href="ch05.html#docbook-configure.html-webui">5.2.25</a></td></tr><tr><td colspan="2" align="center">Browse Index Configuration</td></tr><tr><td align="left"><code class="literal">webui.browse.index.</code><span class="emphasis"><em>n</em></span></td><td align="left"><a class="link" href="ch05.html#docbook-configure.html-browse-index">5.2.26</a></td></tr><tr><td align="left"><code class="literal">webui.itemlist.sort-option.</code><span class="emphasis"><em>n</em></span></td><td align="left"><a class="link" href="ch05.html#docbook-configure.html-browse-index">5.2.26</a></td></tr><tr><td align="left"><code class="literal">webui.browse.medata.case-insensitive</code></td><td align="left"><a class="link" href="ch05.html#docbook-configure.html-browse-index-normalization">5.2.26.3</a></td></tr><tr><td align="left">
|
||
<pre class="screen">webui.browse.value_columns.max
|
||
webui.browse.sort_columns.max
|
||
webui.browse.value_columns.omission_mark
|
||
plugin.named.org.dspace.sort.OrderFormatDelegate</pre>
|
||
</td><td align="left"><a class="link" href="ch05.html#docbook-configure.html-browse-index-other">5.2.26.4</a></td></tr><tr><td colspan="2" align="center">Mulitple Metadata Value Display</td></tr><tr><td align="left"><code class="literal">webui.browse.author-field</code></td><td align="left"><a class="link" href="ch05.html#docbook-configure.html-author-display">5.2.27</a></td></tr><tr><td align="left"><code class="literal">webui.browse.author-limit</code></td><td align="left"><a class="link" href="ch05.html#docbook-configure.html-author-display">5.2.27</a></td></tr><tr><td colspan="2" align="center">Other Browse Contexts</td></tr><tr><td align="left"><code class="literal">webui.browse.link.</code><span class="emphasis"><em>n</em></span></td><td align="left"><a class="link" href="ch05.html#docbook-configure.html-links-browse">5.2.28</a></td></tr><tr><td colspan="2" align="center">Recent Submission</td></tr><tr><td align="left">
|
||
<pre class="screen">recent.submission.sort-option
|
||
recent.submissions.count</pre>
|
||
</td><td align="left"><a class="link" href="ch05.html#docbook-configure.html-recent-subs">5.2.29</a></td></tr><tr><td colspan="2" align="center">Syndication Feed (RSS) Settings</td></tr><tr><td align="left">
|
||
<pre class="screen">webui.feed.enable
|
||
webui.feed.items
|
||
webui.feed.cache.size
|
||
webui.cache.age
|
||
webui.feed.formats
|
||
webui.feed.localresolve
|
||
webui.feed.item.title
|
||
webui.feed.item.date
|
||
webui.feed.item.description</pre>
|
||
</td><td align="left"><a class="link" href="ch05.html#docbook-configure.html-rss_feeds">5.2.30</a></td></tr><tr><td colspan="2" align="center">Content Inline Disposition Threshold</td></tr><tr><td align="left">
|
||
<pre class="screen">webui.content_disposition_threshold
|
||
xmlui.content_disposition_threshold</pre>
|
||
</td><td align="left"><a class="link" href="ch05.html#docbook-configure.html-inline">5.2.31</a></td></tr><tr><td colspan="2" align="center">Multifile HTML Settings</td></tr><tr><td align="left">
|
||
<pre class="screen">webui.html.max-depth-guess
|
||
xmlui.html.max-depth-guess</pre>
|
||
</td><td align="left"><a class="link" href="ch05.html#docbook-configure.html-html-depth">5.2.32</a></td></tr><tr><td colspan="2" align="center">Other General Configuration Settings</td></tr><tr><td align="left"><code class="literal">sitemap.dir</code></td><td align="left"><a class="link" href="ch05.html#docbook-configure.html-sitemap">5.2.33</a></td></tr><tr><td align="left"><code class="literal">sitemap.engineurls</code></td><td align="left"><a class="link" href="ch05.html#docbook-configure.html-sitemap">5.2.33</a></td></tr><tr><td align="left"><code class="literal">upload.temp.dir</code></td><td align="left"><a class="link" href="ch05.html#docbook-configure.html-upload-file">5.2.34</a></td></tr><tr><td align="left"><code class="literal">default.locale</code></td><td align="left"><a class="link" href="ch05.html#docbook-configure.html-multilingual">5.2.37</a></td></tr><tr><td align="left"><code class="literal">itemmap.author.index</code></td><td align="left"><a class="link" href="">5.2.38</a></td></tr><tr><td align="left"><code class="literal">webui.mydspace.showgroupmembership</code></td><td align="left"><a class="link" href="">5.2.39 </a></td></tr><tr><td align="left"><code class="literal">sfx.server.url</code></td><td align="left"><a class="link" href="">5.2.40</a></td></tr><tr><td align="left">
|
||
<pre class="screen">webui.suggest.enable
|
||
webui.suggest.loggedinusers.only</pre>
|
||
</td><td align="left"><a class="link" href="">5.2.41</a></td></tr><tr><td align="left"><code class="literal">webui.controlledvocabulary.enable</code></td><td align="left"><a class="link" href="">5.2.42</a></td></tr><tr><td align="left"><code class="literal">oai.didl.maxresponse</code></td><td align="left"><a class="link" href="ch05.html#docbook-configure-html-oai">5.2.44</a></td></tr><tr><td colspan="2" align="center">JSP Web Interface Settings</td></tr><tr><td align="left">
|
||
<pre class="screen">webui.licence_bundle.show
|
||
webui.itemdisplay.default
|
||
webui.resolver.1.urn
|
||
webui.resolver.1.baseurl
|
||
webui.resolver.2.urn
|
||
webui.resolver.2.baseurl
|
||
plugin.single.org.dspace.app.webui.util.StyleSelection
|
||
webui.itemdisplay.thesis.collections
|
||
webui.itemdisplay.metadata-style
|
||
webui.itemlist.column
|
||
webui.itemlist.width
|
||
webui.itemlist.browse.<index name>.sort.<sort name>.columns
|
||
webui.itemlist.sort<sort name>.columns
|
||
webui.itemlist.browse.<browse name>.columns
|
||
webui.itemlist.*lt;sort or index name>.columns
|
||
webui.itemlist.dateaccessioned.columns
|
||
webui.itemlist.dateaccessioned.widths
|
||
webui.itemlist.tablewidth</pre>
|
||
</td><td align="left"><a class="link" href="ch05.html#docbook-configure.html-jspui-settings">5.2.36</a></td></tr><tr><td colspan="2" align="center">XMLUI Settings (Manakin)</td></tr><tr><td align="left">
|
||
<pre class="screen">xmlui.supported.locales
|
||
xmlui.force.ssl
|
||
xmlui.user.registration
|
||
xmlui.user.assumelogon
|
||
xmlui.user.logindirect
|
||
xmlui.theme.allowoverrides
|
||
xmlui.bundle.upload
|
||
xmlui.community-list.render.full
|
||
xmlui.community-list.cache
|
||
xmlui.bitstream.mods
|
||
xmlui.bitstream.mets
|
||
xmlui.google.analytics.key
|
||
xmlui.controlpanel.activity.max
|
||
xmlui.controlpanel.activity.ipheader</pre>
|
||
</td><td align="left"><a class="link" href="">5.2.43</a></td></tr></tbody></table></div></div><br class="table-break"></div><div class="section" title="5.2.2. Main DSpace Configurations"><div class="titlepage"><div><div><h3 class="title"><a name="N11BE6"></a>5.2.2. <a name="docbook-configure.html-general-2"></a>Main DSpace Configurations</h3></div></div><div></div></div><div class="informaltable"><table border="1" width="75%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td>
|
||
<code class="literal">dspace.dir</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">/dspace</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>Root directory of DSpace installation. Omit the trailing '<code class="literal">/</code>'. Note that if you change this, there are several other parameters you will probably want to change to match, e.g. <code class="literal">assetstore.dir</code>.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">dspace.baseUrl</code></td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">http://dspacetest.myu.edu:8080</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>Main URL at which DSpace Web UI webapp is deployed. Include any port number, but do not include the trailing '<code class="literal">/</code>'.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">dspace.url</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">dspace.url = ${dspace.baseUrl}/jspui</code></td></tr><tr><td align="right">Informational note</td><td>DSpace base URL. Include port number etc., but NOT trailing slash. Change to <code class="literal">/xmlui</code> if you wish to use the xmlui (Manakin) as the default, or remove "<code class="literal">/jspui</code>" and set webapp of your choice as the "ROOT" webapp in the servlet engine.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">dspace.oai.url</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">dspace.oai.url = ${dspace.baseUrl}/oai</code></td></tr><tr><td align="right">Informational note:</td><td>The base URL of the OAI webapp (do not include /request).</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">dspace.hostname </code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">dspace.hostname = dspace.mysu.edu</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>Fully qualified hostname; do not include port number.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">dspace.name</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">dspace.name = DSpace at My University</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>Short and sweet site name, used throughout Web UI, e-mails and elsewhere (such as OAI protocol)</td></tr></tbody></table></div></div><div class="section" title="5.2.3. DSpace Database Configuration"><div class="titlepage"><div><div><h3 class="title"><a name="N11CBE"></a>5.2.3. <a name="docbook-configure.html-database"></a>DSpace Database Configuration</h3></div></div><div></div></div><p>Many of the database configurations are software-dependent. That is, it will be based on the choice of database software being used. Documentation is below shows PostgreSQL and Oracle examples.</p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td>
|
||
<code class="literal">db.name</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">db.name = postgres</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>In <code class="literal">dspace.cfg</code> you choose either <code class="literal">postgres</code> or <code class="literal">oracle</code>.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">db.url </code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">db.url = dbc:postgresql://localhost:5432/dspace</code>-services </td></tr><tr><td align="right">Informational Note:</td><td>The above value is the default value when configuring with PostgreSQL. When using Oracle, use this value: <code class="literal">jbdc.oracle.thin:@//host:port/dspace</code></td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">db.username</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">db.username = dspace</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>In the installation directions, the administrator is instructed to create the user "dspace" who will own the database "dspace".</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">password</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">password = dspace5</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>This is the password that was prompted during the installation process (cf. 3.2.3. Installation)</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">db.schema</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">db.schema = vra</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>If your database contains multiple schemas, you can avoid problems with retrieving the definitions of duplicate objects by specifying the schema name here that is used for DSpace by uncommenting the entry. <span class="bold"><strong>This is commented out</strong></span></td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">db.maxconnections</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">db.maxconnections = 30</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>Maximum number of DB connections in pool</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">db.maxwait</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">db.maxwait = 5000</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>Maximum time to wait before giving up if all connections in pool are busy (in milliseconds).</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">db.maxidle</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">db.maxidle = -1</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>Maximum number of idle connections in pool. (<code class="literal">-1</code> = unlimited)</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">db.statementpool</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">db.statementpool = true</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>Determines if prepared statement should be cached. (Default is set to true)</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">db.poolname</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">db.poolname = dspacepool</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>Specify a name for the connection pool. This is useful if you have multiple applications sharing Tomcat's database connection pool. If nothing is specified, it will default to 'dspacepool'</td></tr></tbody></table></div></div><div class="section" title="5.2.4. DSpace Email Settings"><div class="titlepage"><div><div><h3 class="title"><a name="N11E21"></a>5.2.4. <a name="docbook-configure.html-email"></a>DSpace Email Settings</h3></div></div><div></div></div><p>The configuration of email is simple and provides a mechanism to alert the person(s) responsible for different features of the DSpace software.</p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td>
|
||
<code class="literal">mail.server</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">mail.server = smtp.my.edu</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>SMTP Mail Server </td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<pre class="screen">mail.server.username
|
||
mail.server.password</pre>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<pre class="screen">mail.server.username = myusername
|
||
mypassword</pre>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>SMTP mail server authentication username and password, if required.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">mail.server.port</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">mail.server.port = 25</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>SMTP mail server alternate port (Defaults to port 25 when commented out).</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">mail.from.address</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">mail.from.address = dspace-noreply@myu.edu</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>The "From" address for email. Change the 'myu.edu' to the site's host name.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">feedback.recipient</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">feedback.recipient = dspace-help@myu.edu</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>When a user clicks on the feedback link/feature, the information will be send to the email address of choice. This configuration is currently limited to only one recipient.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">mail.admin</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">mail.admin = dspace-help@myu.edu</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>Email address of the general site administrator (Webmaster)</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">alert.recipient</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">alert.recipient = john.doe@myu.edu</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>Enter the recipient for server errors and alerts.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">registration.notify</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">registration.notify = mike.smith@myu.edu</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>Enter the recipient that will be notified when a new user registers on DSpace.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">mail.charset</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">mail.charset = UTF8</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>Set the default mail character set. This may be over-ridden by providing a line inside the email template "<code class="literal">charset: <encoding></code>", otherwise this default is used.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">mail.allowed.referrers</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">mail.allowed.referrers = localhost</code></td></tr><tr><td align="right">Informational Note:</td><td>A comma separated list of hostnames that are allowed to refer browsers to email forms. Default behaviour is to accept referrals only from dspace.hostname</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">mail.extraproperties</code></td></tr><tr><td align="right">Example Value:</td><td>
|
||
<pre class="screen">mail.extraproperties = mail.smtp.socketFactory.port=465, \
|
||
mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory, \
|
||
mail.smtp.socketFactory.fallback=false</pre>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>If you need to pass extra settings to the Java mail library. Comma separated, equals sign between the key and the value. By default, commented out.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">mail.server.disabled</code></td></tr><tr><td align="right">Example Vavlue:</td><td><code class="literal">mail.server.disabled = false</code></td></tr><tr><td align="right">Informational Note:</td><td>An option is added to disable the mailserver. By default, this property is set to false. By setting value to 'true', DSpace will not send out emails. It will instead log the subject of the email which should have been sent. This is especially useful for development and test environments where production data is used when testing functionality.</td></tr></tbody></table></div><div class="section" title="5.2.4.1. Wording of E-mail Messages"><div class="titlepage"><div><div><h4 class="title"><a name="N11FA6"></a>5.2.4.1. <a name="docbook-configure.html-email-wording"></a>Wording of E-mail Messages</h4></div></div><div></div></div><p>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 <code class="literal">[dspace]/config/emails</code>. Each file is commented. Be careful to keep the right number 'placeholders' (e.g.<code class="literal">{2}</code>).</p><p><span class="bold"><strong>Note:</strong></span> You should replace the contact-information "<code class="literal">dspace-help@myu.edu or call us at xxx-555-xxxx</code>" with your own contact details in:</p><table summary="Simple list" border="0" class="simplelist"><tr><td>
|
||
<code class="literal">config/emails/change_password</code>
|
||
</td></tr><tr><td>
|
||
<code class="literal">config/emails/register</code>
|
||
</td></tr></table></div></div><div class="section" title="5.2.5. File Storage"><div class="titlepage"><div><div><h3 class="title"><a name="N11FCE"></a>5.2.5. <a name="docbook-configure.html-storage"></a>File Storage</h3></div></div><div></div></div><p>This is the default "technique" that is used by DSpace to store the bitstreams. DSpace can also use SRB (Storage Resource Brokerage) as an alternative. See section 5.2.6 for details regarding SRB.</p><div class="informaltable"><table border="1" width="75%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td>
|
||
<code class="literal">assetstore.dir</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">assetstore.dir = ${dspace.dir}/assetstore</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>This is Asset (bitstream) store number 0 (Zero). You need not place your assetstore under the <code class="literal">/dspace</code> 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: <code class="literal"> assetstore.dir = /storevgm/assestore</code>. </td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<pre class="screen">assetstore.dir.1
|
||
assetstore.dir.2</pre>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<pre class="screen">assetstore.dir.1 = /second/assetstore
|
||
assetstore.dir.2 = /third/assetstore</pre>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>This property specifies extra asset stores like the one above, counting from one (1) upwards. This property is commented out (#) until it is needed.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">assetstore.incoming</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">assetstore.incoming = 1</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>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.</td></tr></tbody></table></div><div class="tip" title="Tip" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Tip"><tr><td valign="top" align="center" rowspan="2" width="25"><img alt="[Tip]" src="/jspui/doc/image/tip.png"></td><th align="left"></th></tr><tr><td valign="top" align="left"><p>In the examples above, you can see that your storage does not have to be under the <code class="literal">/dspace</code> directory. For the default installation it needs to reside on the same server (unless you plan to configure SRB (cf. below)). So, if you added storage space to your server, and it has a different logical volume/name/directory, you could have the following as an example:</p></td></tr></table></div><table summary="Simple list" border="0" class="simplelist"><tr><td>
|
||
<code class="literal">assetstore.dir = /storevgm/assetstore</code>
|
||
</td></tr><tr><td>
|
||
<code class="literal">assetstore.dir.1 = /storevgm2/assetstore</code>
|
||
</td></tr><tr><td>
|
||
<code class="literal">assetstore.incoming = 1</code>
|
||
</td></tr></table><p><span class="bold"><strong>Please Note:</strong></span> When adding additional storage configuration, you will then need to uncomment and declare <code class="literal">assestore.incoming = 1</code>
|
||
</p></div><div class="section" title="5.2.6. SRB (Storage Resource Brokerage) File Storage"><div class="titlepage"><div><div><h3 class="title"><a name="N1206E"></a>5.2.6. <a name="docbook-configure.html-srb"></a>SRB (Storage Resource Brokerage) File Storage</h3></div></div><div></div></div><p>An alternate to using the default storage framework is to use Storage Resource Brokerage (SRB). This can provide a different level of storage and disaster recovery. (Storage can take place on storage that is off-site.) Refer to <a class="ulink" href="http://www.sdsc.edu/srb/index.php/Main_Page" target="_top">http://www.sdsc.edu/srb/index.php/Main_Page</a> for complete details regarding SRB.</p><p>The same framework is used to configure SRB storage. That is, the asset store number (0..n) can reference a file system directory as above or it can reference a set of SRB account parameters. But any particular asset store number can reference one or the other but not both. This way traditional and SRB storage can both be used but with different asset store numbers. The same cautions mentioned above apply to SRB asset stores as well. The particular asset store a bitstream is stored in is held in the database, so don't move bitstreams between asset stores, and do not renumber them.</p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td>
|
||
<code class="literal">srb.hosts.1</code>
|
||
</td></tr><tr><td align="right">Example value:</td><td>
|
||
<code class="literal">srb.hosts.1 = mysrbmcathost.myu.edu</code>
|
||
</td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">srb.port.1</code>
|
||
</td></tr><tr><td align="right">Example value:</td><td>
|
||
<code class="literal">srb.port.1 = 5544</code>
|
||
</td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">srb.mcatzone.1</code>
|
||
</td></tr><tr><td align="right">Example value:</td><td>
|
||
<code class="literal">srb.mcatzone.1 = mysrbzone</code>
|
||
</td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">srb.mdasdomainname.1</code>
|
||
</td></tr><tr><td align="right">Example value:</td><td>
|
||
<code class="literal">srb.mdasdomainname.1 = mysrbdomain</code>
|
||
</td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">srb.defaultstorageresource.1</code>
|
||
</td></tr><tr><td align="right">Example value:</td><td>
|
||
<code class="literal">srb.defaultstorageresource.1 = mydefaultsrbresource</code>
|
||
</td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">srb.username.1</code>
|
||
</td></tr><tr><td align="right">Example value:</td><td>
|
||
<code class="literal">srb.username.1 = mysrbuser</code>
|
||
</td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">srb.password.1</code>
|
||
</td></tr><tr><td align="right">Example value:</td><td>
|
||
<code class="literal">srb.password.1 = mysrbpassword</code>
|
||
</td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">srb.homedirectory.1</code>
|
||
</td></tr><tr><td align="right">Example value:</td><td>
|
||
<pre class="screen">srb.homedirectory.1 = /mysrbzone/home/mysrbuser.mysrbdomain
|
||
</pre>
|
||
</td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">srb.parentdir.1</code>
|
||
</td></tr><tr><td align="right">Example value:</td><td>
|
||
<code class="literal">srb.parentdir.1 = mysrbdspaceassetstore</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>Several of the terms, such as <code class="literal">mcatzone</code>, have meaning only in the SRB context and will be familiar to SRB users. The last, <code class="literal">srb.paratdir.n</code>, can be used for additional (SRB) upper directory structure within an SRB account. This property value could be blank as well.</td></tr></tbody></table></div><p>The 'assetstore.incoming' property is an integer that references where <span class="bold"><strong>new</strong></span> bitstreams will be stored. The default (say the starting reference) is zero. The value will be used to identify the storage where all new bitstreams will be stored until this number is changed. This number is stored in the Bitstream table (store_number column) in the DSpace database, so older bitstreams that may have been stored when 'asset.incoming' had a different value can be found.</p><p>In the simple case in which DSpace uses local (or mounted) storage the number can refer to different directories (or partitions). This gives DSpace some level of scalability. The number links to another set of properties 'assetstore.dir', 'assetstore.dir.1' (remember zero is default), assetstore.dir.2', etc., where the values are directories.</p><p>To support the use of SRB DSpace uses the same scheme but broaden to support:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>using SRB instead of the local file system</p></li><li class="listitem"><p>using the local file system (native DSpace)</p></li><li class="listitem"><p>using a mix of SRB and local file system</p></li></ul></div><p>in this broadened use of the 'asset.incoming' integer will refer to one of the following storage locations:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>a local file system directory (native DSpace)</p></li><li class="listitem"><p>a set of SRB account parameters (host, port, zone, domain, username, password, home directory, and resource</p></li></ul></div><p>Should the be any conflict, like '2' referring to a local directory and to a set of SRB parameters, the program will select the local directory.</p><p>If SRB is chosen from the first install of DSpace, it is suggested that 'assetstore.dir' (no integer appended) be retained to reference a local directory (as above under File Storage) because build.xml uses this value to do a mkdir. In this case, 'assetstore.incoming' can be set to 1 (i.e. uncomment the line in File Storage above) and the 'assetstore.dir' will not be used.</p></div><div class="section" title="5.2.7. Handle Server Configuration"><div class="titlepage"><div><div><h3 class="title"><a name="N12173"></a>5.2.7. <a name="docbook-configure.html-handle"></a>Handle Server Configuration</h3></div></div><div></div></div><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td>
|
||
<code class="literal">handle.prefix</code>
|
||
</td></tr><tr><td align="right">Example Value</td><td>
|
||
<code class="literal">handle.prefix = 1234.56789</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>The default installed by DSpace is <code class="literal">123456789</code> but you will replace this upon receiving a handle from CNRI.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">handle.dir</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">handle.dir = ${dspace.dir}/handle-server</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>The default files, as shown in the Example Value is where DSpace will install the files used for the Handle Server.</td></tr></tbody></table></div><p>For complete information regarding the Handle server, the user should consult <a class="link" href="ch03.html#docbook-install.html-handles">3.3.4. The Handle Server</a> section of Installing DSpace.</p></div><div class="section" title="5.2.8. Stackable Authentication Method(s)"><div class="titlepage"><div><div><h3 class="title"><a name="N121D0"></a>5.2.8. <a name="docbook-configure.html-authentication"></a>Stackable Authentication Method(s)</h3></div><div><h4 class="subtitle">(formally Custom Authentication)</h4></div></div><div></div></div><p>Since many institutions and organizations have existing authentication systems, DSpace has been designed to allow these to be easily integrated into an existing authentication infrastructure. It keeps a series, or "stack", of <span class="emphasis"><em>authentication methods</em></span>, so each one can be tried in turn. This makes it easy to add new authentication methods or rearrange the order without changing any existing code. You can also share authentication code with other sites.</p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td>
|
||
<code class="literal">plugin.sequence.org.dspace.authenticate.AuthenticationMethod</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<pre class="screen">plugin.sequence.org.dspace.authenticate.AuthenticationMethod = \
|
||
org.dspace.authenticate.PasswordAuthentication</pre>
|
||
</td></tr></tbody></table></div><p>The configuration property <code class="literal">plugin.sequence.org.dspace.authenticate.AuthenticationMethod</code> defines the authentication stack. It is a comma-separated list of class names. Each of these classes implements a different <span class="emphasis"><em>authentication method</em></span>, or way of determining the identity of the user. They are invoked in the order specified until one succeeds.</p><p>An authentication method is a class that implements the interface <code class="literal">org.dspace.authenticate.AuthenticationMethod</code>. It <span class="emphasis"><em>authenticates</em></span> a user by evaluating the <span class="emphasis"><em>credentials</em></span> (e.g. username and password) he or she presents and checking that they are valid.</p><p>The basic authentication procedure in the DSpace Web UI is this:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>A request is received from an end-user's browser that, if fulfilled, would lead to an action requiring authorization taking place.</p></li><li class="listitem"><p> If the end-user is already authenticated: </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>If the end-user is allowed to perform the action, the action proceeds</p></li><li class="listitem"><p>If the end-user is NOT allowed to perform the action, an authorization error is displayed.</p></li><li class="listitem"><p>If the end-user is NOT authenticated, i.e. is accessing DSpace anonymously:</p></li></ul></div></li><li class="listitem"><p> The parameters etc. of the request are stored</p></li><li class="listitem"><p> The Web UI's <code class="literal">startAuthentication</code> method is invoked.</p></li><li class="listitem"><p> First it tries all the authentication methods which do <span class="emphasis"><em>implicit</em></span> authentication (i.e. they work with just the information already in the Web request, such as an X.509 client certificate). If one of these succeeds, it proceeds from Step 2 above.</p></li><li class="listitem"><p> If none of the implicit methods succeed, the UI responds by putting up a "login" page to collect credentials for one of the <span class="emphasis"><em>explicit</em></span> authentication methods in the stack. The servlet processing that page then gives the proffered credentials to each authentication method in turn until one succeeds, at which point it retries the original operation from Step 2 above.</p></li></ol></div><p>Please see the source files <code class="literal">AuthenticationManager.java</code> and <code class="literal">AuthenticationMethod.java</code> for more details about this mechanism.</p><div class="section" title="5.2.8.1. Authentication by Password"><div class="titlepage"><div><div><h4 class="title"><a name="N1224F"></a>5.2.8.1. Authentication by Password</h4></div></div><div></div></div><p>The default method <code class="literal">org.dspace.authenticate.PasswordAuthentication</code> has the following properties:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> Use of inbuilt e-mail address/password-based log-in. This is achieved by forwarding a request that is attempting an action requiring authorization to the password log-in servlet, <code class="literal">/password-login</code>. The password log-in servlet (<code class="literal">org.dspace.app.webui.servlet.PasswordServlet</code> contains code that will resume the original request if authentication is successful, as per step 3. described above.</p></li><li class="listitem"><p> Users can register themselves (i.e. add themselves as e-people without needing approval from the administrators), and can set their own passwords when they do this</p></li><li class="listitem"><p> Users are not members of any special (dynamic) e-person groups</p></li><li class="listitem"><p> You can restrict the domains from which new users are able to register. To enable this feature, uncomment the following line from dspace.cfg: <code class="literal">authentication.password.domain.valid = example.com</code> Example options might be '<code class="literal">@example.com</code>' to restrict registration to users with addresses ending in @example.com, or '<code class="literal">@example.com, .ac.uk</code>' to restrict registration to users with addresses ending in @example.com or with addresses in the .ac.uk domain.</p></li></ul></div></div><div class="section" title="5.2.8.2. X.509 Certificate Authentication"><div class="titlepage"><div><div><h4 class="title"><a name="N1227A"></a>5.2.8.2. X.509 Certificate Authentication</h4></div></div><div></div></div><p>The X.509 authentication method uses an X.509 certificate sent by the client to establish his/her identity. It requires the client to have a personal Web certificate installed on their browser (or other client software) which is issued by a Certifying Authority (CA) recognized by the web server.</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p> See the <a class="link" href="ch03.html#docbook-install.html-https">HTTPS installation instructions</a> to configure your Web server. If you are using HTTPS with Tomcat, note that the <code class="literal"><Connector></code> tag <span class="emphasis"><em>must</em></span> include the attribute <code class="literal">clientAuth="true"</code> so the server requests a personal Web certificate from the client.</p></li><li class="listitem"><p> Add the <code class="literal">org.dspace.authenticate.X509Authentication</code> plugin <span class="emphasis"><em>first</em></span> to the list of stackable authentication methods in the value of the configuration key <code class="literal">plugin.sequence.org.dspace.authenticate.AuthenticationMethod</code>
|
||
<span class="emphasis"><em>e.g.:</em></span></p><pre class="screen">
|
||
plugin.sequence.org.dspace.authenticate.AuthenticationMethod = \
|
||
org.dspace.authenticate.X509Authentication, \
|
||
org.dspace.authenticate.PasswordAuthentication
|
||
</pre></li><li class="listitem"><p> You must also configure DSpace with the same CA certificates as the web server, so it can accept and interpret the clients' certificates. It can share the same keystore file as the web server, or a separate one, or a CA certificate in a file by itself. Configure it by <span class="emphasis"><em>one</em></span> of these methods, either the Java keystore </p><pre class="screen">
|
||
authentication.x509.keystore.path = <span class="emphasis"><em> path to Java keystore file</em></span>
|
||
authentication.x509.keystore.password = <span class="emphasis"><em> password to access the keystore</em></span>
|
||
</pre><p> ...or the separate CA certificate file (in PEM or DER format): </p><pre class="screen">authentication.x509.ca.cert = <span class="emphasis"><em> path to certificate file for CA
|
||
whose client certs to accept.</em></span> </pre></li><li class="listitem"><p> Choose whether to enable auto-registration: If you want users who authenticate successfully to be automatically registered as new E-Persons if they are not already, set the <code class="literal">authentication.x509.autoregister</code> configuration property to <code class="literal">true</code>. This lets you automatically accept all users with valid personal certificates. The default is <code class="literal">false</code>.</p></li></ol></div></div><div class="section" title="5.2.8.3. Example of a Custom Authentication Method"><div class="titlepage"><div><div><h4 class="title"><a name="N122CE"></a>5.2.8.3. Example of a Custom Authentication Method</h4></div></div><div></div></div><p>Also included in the source is an implementation of an authentication method used at MIT, <code class="literal">edu.mit.dspace.MITSpecialGroup</code>. This does not actually authenticate a user, it <span class="emphasis"><em>only</em></span> adds the current user to a special (dynamic) group called 'MIT Users' (which must be present in the system!). This allows us to create authorization policies for MIT users without having to manually maintain membership of the MIT users group.</p><p>By keeping this code in a separate method, we can customize the authentication process for MIT by simply adding it to the stack in the DSpace configuration. None of the code has to be touched.</p><p>You can create your own custom authentication method and add it to the stack. Use the most similar existing method as a model, e.g. <code class="literal">org.dspace.authenticate.PasswordAuthentication</code> for an "explicit" method (with credentials entered interactively) or <code class="literal">org.dspace.authenticate.X509Authentication</code> for an implicit method.</p></div><div class="section" title="5.2.8.4. Configuring IP Authentication"><div class="titlepage"><div><div><h4 class="title"><a name="N122E7"></a>5.2.8.4. <a name="docbook-configure.html-ipauthentication"></a>Configuring IP Authentication</h4></div></div><div></div></div><p>You can enable IP authentication by adding its method to the stack in the DSpace configuration, e.g.:</p><pre class="screen"> plugin.sequence.org.dspace.authenticate.AuthenticationMethod =
|
||
org.dspace.authenticate.IPAuthentication </pre><p>You are than able to map DSpace groups to IP's in dspace.cfg by setting <code class="literal">authentication.ip.GROUPNAME = iprange[, iprange ...],</code> e.g:</p><pre class="screen">
|
||
authentication.ip.MY_UNIVERSITY = 10.1.2.3, \ # Full IP
|
||
13.5, \ # Partial IP
|
||
11.3.4.5/24, \ # with CIDR
|
||
12.7.8.9/255.255.128.0 # with netmask
|
||
</pre><p>Negative matches can be set by prepending the entry with a '-'. For example if you want to include all of a class B network except for users of a contained class c network, you could use: 111.222,-111.222.333.</p><p><span class="bold"><strong>Note:</strong></span> if the Groupname contains blanks you must escape the, e.g. Department\ of\ Statistics</p></div><div class="section" title="5.2.8.5. Configuring LDAP Authentication"><div class="titlepage"><div><div><h4 class="title"><a name="N12303"></a>5.2.8.5. <a name="docbook-configure.html-ldap"></a>Configuring LDAP Authentication</h4></div></div><div></div></div><p>You can enable LDAP authentication by adding its method to the stack in the DSpace configuration, e.g.</p><pre class="screen">
|
||
plugin.sequence.org.dspace.authenticate.AuthenticationMethod =
|
||
org.dspace.authenticate.LDAPAuthentication
|
||
</pre><p>If LDAP is enabled in the dspace.cfg file, then new users will be able to register by entering their username and password without being sent the registration token. If users do not have a username and password, then they can still register and login with just their email address the same way they do now.</p><p>If you want to give any special privileges to LDAP users, create a stackable authentication method to automatically put people who have a netid into a special group. You might also want to give certain email addresses special privileges. Refer to the <a name="docbook-configure.html--authenticate.1"></a>Custom Authentication Code section above for more information about how to do this.</p><p>Here is an explanation of what each of the different configuration parameters are for:</p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td colspan="2" align="center">Standard LDAP Configuration</td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">ldap.enable</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">ldap.enable = false</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>This setting will enable or disable LDAP authentication in DSpace. With the setting off, users will be required to register and login with their email address. With this setting on, users will be able to login and register with their LDAP user ids and passwords.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">ldap.provider_url</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">ldap.provider_url = ldap://ldap.myu.edu/o=myu.edu</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>This is the url to your institution's LDAP server. You may or may not need the /o=myu.edu part at the end. Your server may also require the ldaps:// protocol.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">ldap.id_field</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">ldap.id_field = uid</code>
|
||
</td></tr><tr><td align="right">Explanation:</td><td>This is the unique identifier field in the LDAP directory where the username is stored.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">ldap.object_context</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">ldap.object_context = ou=people, o=myu.edu</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>This is the object context used when authenticating the user. It is appended to the <code class="literal">ldap.id_field</code> and username. For example <code class="literal">uid=username,ou=people,o=myu.edu</code>. You will need to modify this to match your LDAP configuration.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">ldap.search_context</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">ldap.search_context = ou=people</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>This is the search context used when looking up a user's LDAP object to retrieve their data for autoregistering. With ldap.autoregister turned on, when a user authenticates without an EPerson object we search the LDAP directory to get their name and email address so that we can create one for them. So after we have authenticated against <code class="literal">uid=username,ou=people,o=byu.edu</code> we now search in ou=people for filtering on [uid=username]. Often the <code class="literal">ldap.search_context</code> is the same as the <code class="literal">ldap.object_context</code> parameter. But again this depends on your LDAP server configuration.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">ldap.email_field</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">ldap.email_field = mail</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>This is the LDAP object field where the user's email address is stored. "mail" is the default and the most common for ldap servers. If the mail field is not found the username will be used as the email address when creating the eperson object.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">ldap.surname_field</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">ldap.surname_field = sn</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>This is the LDAP object field where the user's last name is stored. "sn" is the default and is the most common for LDAP servers. If the field is not found the field will be left blank in the new eperson object.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">ldap.givenname_field</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">ldap.givenname_field = givenName</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>This is the LDAP object field where the user's given names are stored. I'm not sure how common the givenName field is in different LDAP instances. If the field is not found the field will be left blank in the new eperson object.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">ldap.phone_field</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">ldap.phone_field = telephoneNumber</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>This is the field where the user's phone number is stored in the LDAP directory. If the field is not found the field will be left blank in the new eperson object.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">webui.ldap.autoregister</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">webui.ldap.autoregister = true</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>This will turn LDAP autoregistration on or off. With this on, a new EPerson object will be created for any user who successfully authenticates against the LDAP server when they first login. With this setting off, the user must first register to get an EPerson object by entering their ldap username and password and filling out the forms. </td></tr><tr><td colspan="2" align="center">LDAP Users Group</td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">ldap.login.specialgroup</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">ldap.login.specialgroup = group-name</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>If required, a group name can be given here, and all users who log into LDAP will automatically become members of this group. This is useful if you want a group made up of all internal authenticated users. (Remember to log on as the administrator, add this to the "Groups" with read rights). </td></tr></tbody></table></div><p><span class="bold"><strong>Hierarchical LDAP Settings.</strong></span># If your users are spread out across a hierarchical tree on your LDAP server, you will need to use the following stackable authentication class:</p><pre class="screen">
|
||
plugin.sequence.org.dspace.authenticate.AuthenticationMethod = \
|
||
org.dspace.authenticate.LDAPHierarchicalAuthentication</pre><p>You can optionally specify the search scope. If anonymous access is not enabled on your LDAP server, you will need to specify the full DN and password of a user that is allowed to bind in order to search for the users. </p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td>
|
||
<code class="literal">ldap.search_scope</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">ldap.search_scope = 2</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td> This is the search scope value for the LDAP search during autoregistering. This will depend on your LDAP server setup. This value must be one of the following integers corresponding to the following values: <pre class="screen">object scope : 0
|
||
one level scope : 1
|
||
subtree scope : 2</pre></td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<pre class="screen">ldap.search.user
|
||
ldap.search.password</pre>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<pre class="screen">ldap.search.user = cn=admin,ou=people,o=myu.edu
|
||
ldap.search.password = password</pre>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>The full DN and password of a user allowed to connect to the LDAP server and search for the DN of the user trying to log in. If these are not specified, the initial bind will be performed anonymously.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">ldap.netid_email_domain = </code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">ldap.netid_email_domain = @example.com</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>If your LDAP server does not hold an email address for a user, you can use the following field to specify your email domain. This value is appended to the netid in order to make an email address. E.g. a netid of 'user' and <code class="literal">ldap.netid_email_domain</code> as <code class="literal">@example.com</code> would set the email of the user to be <code class="literal">user@example.com</code>
|
||
</td></tr></tbody></table></div></div></div><div class="section" title="5.2.9. Shibboleth Authentication Configuration Settings"><div class="titlepage"><div><div><h3 class="title"><a name="N12515"></a>5.2.9. <a name="docbook-configure.html-shibboleth"></a>Shibboleth Authentication Configuration Settings</h3></div></div><div></div></div><p>Detailed instructions for installing Shibboleth on DSpace may be found at<a class="ulink" href="https://mams.melcoe.mq.edu.au/zope/mams/pub/Installation/dspace15" target="_top">https://mams.melcoe.mq.edu.au/zope/mams/pub/Installation/dspace15</a>.</p><p>DSpace requires email as the user's credentials. There are two ways of providing email to DSpace:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>By explicitly specifying to the user which attribute (header) carries the email address.</p></li><li class="listitem"><p>By turning on the user-email-using-tomcat=true which means the software will attempt to acquire the user's email from Tomcat.</p></li></ol></div><p>The first option takes <span class="bold"><strong>Precedence</strong></span> when specified. both options can be enabled to allow for fallback.</p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td>
|
||
<code class="literal">authentication.shib.email-header</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">authentication.shib.email-header = MAIL</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>The option specifies that the email comes from the mentioned header. This value is CASE-Sensitive.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">authentication.shib.firstname-header</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">authentication.shib.firstname-header = SHIB-EP-GIVENNAME</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>Optional. Specify the header that carries the user's first name. This is going to be used for the creation of new-user.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">authentication.shib.lastname-header</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">authentication.shib.lastname-header = SHIB-EP-SURNAME</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>Optional. Specify the header that carries user's last name. This is used for creation of new user.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">authentication.shib.email-use-tomcat-remote-user</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">authentication.shib.email-use-tomcat-remote-user = true</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>This option forces the software to acquire the email from Tomcat.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">authentication.shib.autoregister</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">authentication.shib.autoregister = true</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>Option will allow new users to be registered automatically if the IdP provides sufficient information (and the user does not exist in DSpace</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<pre class="screen">authentication.shib.role-header
|
||
authentication.shib-role.header.ignore-scope</pre>
|
||
</td></tr><tr><td align="right">Example Value:</td><td><pre class="screen">authentication.shib.role-header = Shib-EP-ScopedAffiliation
|
||
authentication.shib-role.header.ignore-scope = true</pre> or <pre class="screen">authentication.shib.role-header = Shib-EP-UnscopedAffiliation
|
||
authentication.shib-role.header.ignore-scope = false</pre></td></tr><tr><td align="right">Informational Note:</td><td>These two options specify which attribute that is responsible for providing user's roles to DSpace and unscope the attributes if needed. When not specified, it is defaulted to 'Shib-EP-UnscopedAffiliation', and ignore-scope is defaulted to 'false'. The value is specified in AAP.xml (Shib 1.3.x) or attribute-filter.xml (Shib 2.x). The value is CASE-Sensitive. The values provided in this header are separated by semi-colon or comma. If your sp only provides scoped role header, you need to set authentication.shib.role-header.ignore-Scope as true. For example if you only get Shib-EP-ScopedAffiliation instead of Shib-EP-ScopedAffiliation, you name to make your settings as in the example value above. </td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">authentication.shib.default-roles</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">authentication.shib.default-roles = Staff, Walk-ins</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>When user is fully authN or IdP but would not like to release his/her roles to DSpace (for privacy reasons?), what should the default roles be given to such user. The values are separated by semi-colon or comma.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<pre class="screen">authentication.shib.role.Senior\ Researcher
|
||
authentication.shib.role.Librarian</pre>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<pre class="screen">authentication.shib.role.Senior\ Researcher = Researcher, Staff
|
||
authentication.shib.role.Librarian = Administrator</pre>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>The following mappings specify role mapping between IdP and Dspace. The left side of the entry is IdP's role (prefixed with "authentication.shib.role.") which will be mapped to the right entry from DSpace. DSpace's group as indicated on the right entry has to EXIST in DSpace, otherwise user will be identified as 'anonymous'. Multiple values on the right entry should be separated by comma. The values are CASE-Sensitive. Heuristic one-to-one mapping will be done when the IdP groups entry are not listed below (i.e. if "X" group in IdP is not specified here, then it will be mapped to "X" group in DSpace if it exists, otherwise it will be mapped to simply 'anonymous'). Given sufficient demand, future release could support regex for the mapping special characters need to be escaped by '\'</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr></tbody></table></div></div><div class="section" title="5.2.10. Logging Configuration"><div class="titlepage"><div><div><h3 class="title"><a name="N1263F"></a>5.2.10. <a name="docbook-configure.html-logging"></a>Logging Configuration</h3></div></div><div></div></div><p>The following settings are currently <span class="bold"><strong>not</strong></span> used by XMLUI. XMLUI writes its logs to <code class="literal">[dspace-xmlui]/WEB-INF-logs/</code> in the actual XMLUI web application.</p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td>
|
||
<code class="literal">log.init.config</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">log.init.config = ${dspace.dir}/config/log4j.properties</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>This is where your configure file is located. You may override default log4j configuration by provided your own configurations. Existing alternatives are: <pre class="screen">
|
||
log.init.config = ${dspace.dir}/config/log4j.xml
|
||
log.init.config = ${dspace.dir}/config/log4j-console.properties</pre></td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td>Property:</td><td>
|
||
<code class="literal">log.dir</code>
|
||
</td></tr><tr><td>Example value:</td><td>
|
||
<code class="literal">log.dir = ${dspace.dir}/log</code>
|
||
</td></tr><tr><td>Informational Note:</td><td>This is where to put the logs. (This is used for initial configuration only)</td></tr></tbody></table></div></div><div class="section" title="5.2.11. Configuring Lucene Search Indexes"><div class="titlepage"><div><div><h3 class="title"><a name="N1269B"></a>5.2.11. <a name="docbook-configure.html-lucene-search"></a>Configuring Lucene Search Indexes</h3></div></div><div></div></div><p>Search indexes can be configured and customized easily in the <code class="literal">dspace.cfg</code> file. This allows institutions to choose which DSpace metadata fields are indexed by Lucene.</p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td>
|
||
<code class="literal">search.dir</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">search.dir = ${dspace.dir}/search</code>
|
||
</td></tr><tr><td align="right">Informational Note</td><td>Where to put the search index files</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">search.max-clauses</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">search.max-clauses = 2048</code>
|
||
</td></tr><tr><td align="right">Informational Note</td><td>By setting higher values of search.max-clauses will enable prefix searches to work on larger repositories.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">search.analyzer</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">search.analyzer = org.dspace.search.DSAnalyzer</code>
|
||
</td></tr><tr><td align="right">Informational Note</td><td>Which Lucene Analyzer implementation to use. If this is omitted or commented out, the standard DSpace analyzer (designed for English) is used by default.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">search.analyzer</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<pre class="screen">
|
||
search.analyzer = \
|
||
org.apache.lucene.analysis.cn.ChineseAnalyzer</pre>
|
||
</td></tr><tr><td align="right">Informational Note</td><td>Instead of the standard English analyzer, the Chinese analyzer is used.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">search.operator</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">search.operator = OR</code>
|
||
</td></tr><tr><td align="right">Informational Note</td><td>Boolean search operator to use. The currently supported values are OR and AND. If this configuration item is missing or commented out, OR is used. AND requires all the search terms to be present. OR requires one or more search terms to be present.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">search.maxfieldlength</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">search.maxfieldlength = 10000</code>
|
||
</td></tr><tr><td align="right">Informational Note</td><td>This is the maximum number of terms indexed for a single field in Lucene. The default is 10,000 words—often not enough for full-text indexing. If you change this, you will need to re-index for the change to take effect on previously added items. <code class="literal">-1</code> = unlimited (Integer.MAG_VALUE)</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">search.index.</code>
|
||
<span class="emphasis"><em>n</em></span>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">search.index.1 = author:dc.contributor.*</code>
|
||
</td></tr><tr><td align="right">Informational Note</td><td>See the details of this particular entry below.</td></tr></tbody></table></div><p>For example, the following entries appear in the default DSpace installation:</p><pre class="screen">
|
||
search.index.1 = author:dc.contributor.*
|
||
search.index.2 = author:dc.creator.*
|
||
search.index.3 = title:dc.title.*
|
||
search.index.4 = keyword:dc.subject.*
|
||
search.index.5 = abstract:dc.description.abstract
|
||
search.index.6 = author:dc.description.statementofresponsibility
|
||
search.index.7 = series:dc.relation.ispartofseries
|
||
search.index.8 = abstract:dc.description.tableofcontents
|
||
search.index.9 = mime:dc.format.mimetype
|
||
search.index.10 = sponsor:dc.description.sponsorship
|
||
search.index.11 = id:dc.identifier.*
|
||
search.index.11 = language:dc.language.iso
|
||
</pre><p>The format of each entry is <code class="literal">search.index.<id> = <search label> : <schema> . <metadata field></code> where:</p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td>
|
||
<code class="literal"><id></code>
|
||
</td><td>is an incremental number to distinguish each search index entry</td></tr><tr><td>
|
||
<code class="literal"><search label></code>
|
||
</td><td>is the identifier for the search field this index will correspond to</td></tr><tr><td>
|
||
<code class="literal"><schema></code>
|
||
</td><td>is the schema used. Dublin Core (DC) is the default. Others are possible.</td></tr><tr><td>
|
||
<code class="literal"><metadata field></code>
|
||
</td><td>is the DSpace metadata field to be indexed.</td></tr></tbody></table></div><p>In the example above, <code class="literal">search.index.1</code> and <code class="literal">search.index.2</code> and <code class="literal">search.index.3</code> are configured as the <code class="literal">author</code> search field. The <code class="literal">author</code> index is created by Lucene indexing all <code class="literal">dc.contributor.*</code>, <code class="literal">dc.creator.*</code> and <code class="literal">description.statementofresponsibility</code> metadata fields.</p><p>After changing the configuration run <code class="literal">/[dspace]/bin/index-init</code> to regenerate the indexes.</p><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td valign="top" align="center" rowspan="2" width="25"><img alt="[Note]" src="/jspui/doc/image/note.png"></td><th align="left"></th></tr><tr><td valign="top" align="left"><p>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.</p></td></tr></table></div><div class="tip" title="Tip" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Tip"><tr><td valign="top" align="center" rowspan="2" width="25"><img alt="[Tip]" src="/jspui/doc/image/tip.png"></td><th align="left"></th></tr><tr><td valign="top" align="left"><p>In the above examples, notice the asterisk (*). The metadata field (at least for Dublin Core) is made up of the "element" and the "qualifier". The asterisk is used as the "wildcard". So, for example, <code class="literal">keyword.dc.subject.*</code> will index all subjects regardless if the term resides in a qualified field. (subject versus subject.lcsh). One could customize the search and only index LCSH (Library of Congress Subject Headings) with the following entry <code class="literal">keyword:dc.subject.lcsh</code>
|
||
<span class="emphasis"><em> instead</em></span> of <code class="literal">keyword:dc.subject.*</code>
|
||
</p></td></tr></table></div></div><div class="section" title="5.2.12. Proxy Settings"><div class="titlepage"><div><div><h3 class="title"><a name="N12813"></a>5.2.12. <a name="docbook-configure.html-proxy"></a>Proxy Settings</h3></div></div><div></div></div><p>These settings for proxy are commented out by default. Uncomment and specify both properties if proxy server is required for external http requests. Use regular host name without port number.</p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td>
|
||
<code class="literal">http.proxy.host</code>
|
||
</td></tr><tr><td align="right">Example Value</td><td>
|
||
<code class="literal">http.proxy.host = proxy.myu.edu</code>
|
||
</td></tr><tr><td>Informational Note</td><td>Enter the host name without the port number.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">http.proxy.port</code>
|
||
</td></tr><tr><td align="right">Example Value</td><td>
|
||
<code class="literal">http.proxy.port = 2048</code>
|
||
</td></tr><tr><td>Informational Note</td><td>Enter the port number for the proxy server.</td></tr></tbody></table></div></div><div class="section" title="5.2.13. Configuring Media Filters"><div class="titlepage"><div><div><h3 class="title"><a name="N12865"></a>5.2.13. <a name="docbook-configure.html-mediafilter"></a>Configuring Media Filters</h3></div></div><div></div></div><p>Media or Format Filters are classes used to generate derivative or alternative versions of content or bitstreams within DSpace. For example, the PDF Media Filter will extract textual content from PDF bitstreams, the JPEG Media Filter can create thumbnails from image bitstreams.</p><p>Media Filters are configured as <a class="link" href="ch13.html#docbook-business.html-plugin">Named Plugins</a>, with each filter also having a separate configuration setting (in <code class="literal">dspace.cfg</code>) indicating which formats it can process. The default configuration is shown below.</p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td>
|
||
<code class="literal">filter.plugins</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td><span class="emphasis"><em>(See example below)</em></span>
|
||
</td></tr><tr><td colspan="2" align="center">
|
||
<pre class="screen">filter.plugins = PDF Text Extractor, Html Text Extractor, \
|
||
Word Text Extractor, JPEG Thumbnail</pre>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>Place the names of the enabled MediaFilter or FormatFilter plugins. To enable Branded Preview, comment out the previous one line and then uncomment the two lines in found in <code class="literal">dspace.cfg</code>: <pre class="screen">Word Text Extractor, JPEG Thumbnail,\
|
||
Branded Preview JPEG</pre></td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">plugin.named.org.dspace.app.mediafilter.FormatFilter</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td><span class="emphasis"><em>(See example below)</em></span></td></tr><tr><td colspan="2" align="center">
|
||
<pre class="screen">plugin.named.org.dspace.app.mediafilter.FormatFilter = \
|
||
org.dspace.app.mediafilter.PDFFilter = PDF Text Extractor, \
|
||
org.dspace.app.mediafilter.HTMLFilter = HTML Text Extractor, \
|
||
org.dspace.app.mediafilter.WordFilter = Word Text Extractor, \
|
||
org.dspace.app.mediafilter.JPEGFilter = JPEG Thumbnail, \
|
||
org.dspace.app.mediafilter.BrandedPreviewJPEGFilter = Branded Preview JPEG</pre>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>Assign "human-understandable" names to each filter</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><span class="emphasis"><em>(See key below)</em></span></td></tr><tr><td colspan="2" align="center">
|
||
<pre class="screen">filter.org.dspace.app.mediafilter.PDFFilter.inputFormats
|
||
filter.org.dspace.app.mediafilter.HTMLFilter.inputFormats
|
||
filter.org.dspace.app.mediafilter.WordFilter.inputFormats
|
||
filter.org.dspace.app.mediafilter.JPEGFilter.inputFormats
|
||
filter.org.dspace.app.mediafilter.BrandedPreviewJPEGFilter.inputFormats</pre>
|
||
</td></tr><tr><td align="right">Example Value:</td><td><span class="emphasis"><em>(See example below)</em></span>
|
||
</td></tr><tr><td colspan="2" align="center">
|
||
<pre class="screen">filter.org.dspace.app.mediafilter.PDFFilter.inputFormats = Adobe PDF
|
||
filter.org.dspace.app.mediafilter.HTMLFilter.inputFormats = HTML, Text
|
||
filter.org.dspace.app.mediafilter.WordFilter.inputFormats = Microsoft Word
|
||
filter.org.dspace.app.mediafilter.JPEGFilter.inputFormats = BMP, GIF, JPEG, \
|
||
image/png
|
||
filter.org.dspace.app.mediafilter.BrandedPreviewJPEGFilter.inputFormats = BMP, \
|
||
GIF, JPEG, image/png</pre>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>Configure each filter's input format(s)</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">pdffilter.largepdfs</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">pdffilter.largepdfs = true</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>It this value is set for "true", all PDF extractions are written to temp files as they are indexed. This is slower, but helps to ensure that PDFBox software DSpace uses does not eat up all your memory. </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">pdffilter.skiponmemoryexception</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">pdffilter.skiponmemoryexception = true</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>If this value is set for "true", PDFs which still result in an "Out of Memory" error from PDFBox are skipped over. These problematic PDFs will never be indexed until memory usage can be decreased in the PDFBox software.</td></tr></tbody></table></div><p>Names are assigned to each filter using the <code class="literal">plugin.named.org.dspace.app.mediafilter.FormatFilter</code> field (e.g. by default the PDFilter is named "PDF Text Extractor".</p><p>Finally, the appropriate <code class="literal">filter.<class path>.inputFormats</code> defines the valid input formats which each filter can be applied. These format names <span class="bold"><strong>must match</strong></span> the <code class="literal">short description</code> field of the Bitstream Format Registry.</p><p>You can also implement more dynamic or configurable Media/Format Filters which extend <a class="link" href="ch13.html#docbook-business.html-selfnamedplugin">
|
||
<code class="literal">SelfNamedPlugin</code>
|
||
</a></p></div><div class="section" title="5.2.14. Configurable MODS Dissemination Crosswalk"><div class="titlepage"><div><div><h3 class="title"><a name="N12955"></a>5.2.14. <a name="docbook-configure.html-mods"></a>Configurable MODS Dissemination Crosswalk</h3></div></div><div></div></div><p>The MODS crosswalk is a self-named plugin. To configure an instance of the MODS crosswalk, add a property to the DSpace configuration starting with <code class="literal">"crosswalk.mods.properties."</code>; the final word of the property name becomes the plugin's name. For example, a property name <code class="literal">crosswalk.mods.properties.MODS</code> defines a crosswalk plugin named <code class="literal">"MODS"</code>.</p><p>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, i.e. the <code class="literal">config</code> subdirectory of the DSpace install directory. Example from the <code class="literal">dspace.cfg</code>file:</p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Properties:</td><td>
|
||
<pre class="screen">crosswalk.mods.properties.MODS
|
||
crosswalk.mods.properties.mods</pre>
|
||
</td></tr><tr><td align="right">Example Values:</td><td>
|
||
<pre class="screen">crosswalk.mods.properties.MODS = crosswalks/mods.properties
|
||
crosswalk.mods.properties.mods = crosswalks/mods.properties</pre>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>This defines a crosswalk named MODS whose configuration comes from the file <code class="literal">[dspace]/config/crosswalks/mods.properties</code>. (In the above example, the lower-case name was added for OAI-PMH)</td></tr></tbody></table></div><p> 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 <code class="literal">contributor.author</code> element in the native Dublin Core schema would be: <code class="literal">dc.contributor.author</code>. The value of the property is a line containing two segments separated by the vertical bar (<code class="literal">"|"</code>): 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:</p><pre class="screen">
|
||
dc.contributor.author = <mods:name><mods:role><mods:roleTerm
|
||
type="text">author</mods:roleTerm>
|
||
</mods:role><mods:namePart>%s</mods:;
|
||
<mods:namePart>%s</mods:namePart></mods:name> |
|
||
mods:namePart/text() </pre><p> Some of the examples include the string <code class="literal">"%s"</code> in the prototype XML where the text value is to be inserted, but don't pay any attention to it, it is an artifact that the crosswalk ignores. For example, given an author named <span class="emphasis"><em>Jack Florey</em></span>, the crosswalk will insert</p><pre class="screen">
|
||
<mods:name>
|
||
<mods:role>
|
||
<mods:roleTerm type="text">author</mods:roleTerm>
|
||
</mods:role>
|
||
<mods:namePart> <span class="emphasis"><em> Jack Florey</em></span></mods:namePart>
|
||
</mods:name></pre><p>into the output document. Read the example configuration file for more details. </p></div><div class="section" title="5.2.15. XSLT-based Crosswalks"><div class="titlepage"><div><div><h3 class="title"><a name="N129C6"></a>5.2.15. <a name="docbook-configure.html-xslt"></a>XSLT-based Crosswalks</h3></div></div><div></div></div><p>The XSLT crosswalks use XSL stylesheet transformation (XSLT) to transform an XML-based external metadata format to or from DSpace's internal metadata. XSLT crosswalks are much more powerful and flexible than the configurable MODS and QDC crosswalks, but they demand some esoteric knowledge (XSL stylesheets). Given that, you can create all the crosswalks you need just by adding stylesheets and configuration lines, without touching any of the Java code.</p><p>The default settings in the <code class="literal">dspace.cfg</code> file for submission crosswalk:</p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Properties:</td><td>
|
||
<code class="literal">crosswalk.submission.MODS.stylesheet</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">crosswalk.submission.MODS.stylesheet = crosswalks/mods-submission.xsl</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>Configuration XSLT-driven submission crosswalk for MODS</td></tr></tbody></table></div><p>As shown above, there are three (3) parts that make up the properties "key":</p><p>
|
||
<pre class="screen"> crosswalk.submission<span class="emphasis"><em>PluginName.</em></span>stylesheet =
|
||
1 2 3 4 </pre>
|
||
</p><table summary="Simple list" border="0" class="simplelist"><tr><td><code class="literal">crosswalk</code> first part of the property key.</td></tr><tr><td><code class="literal">submission</code> second part of the property key.</td></tr><tr><td><span class="emphasis"><em>
|
||
<code class="literal">PluginName</code>
|
||
</em></span> is the name of the plugin. The <span class="emphasis"><em>path</em></span> value is the path to the file containing the crosswalk stylesheet (relative to <code class="literal">/[dspace]/config</code>).</td></tr></table><p>Here is an example that configures a crosswalk named "LOM" using a stylesheet in <code class="literal">[dspace]/config/crosswalks/d-lom.xsl</code>:</p><pre class="screen">
|
||
crosswalk.submission.LOM.stylesheet = crosswalks/d-lom.xsl</pre><p>A dissemination crosswalk can be configured by starting with the property key <code class="literal">crosswalk.dissemination</code>. Example:</p><pre class="screen">
|
||
crosswalk.dissemination.<span class="emphasis"><em>PluginName</em></span>.stylesheet = <span class="emphasis"><em>path</em></span></pre><p>The <span class="emphasis"><em>PluginName</em></span> is the name of the plugin (!). The <span class="emphasis"><em>path</em></span> value is the path to the file containing the crosswalk stylesheet (relative to <code class="literal">/[dspace]/config</code>).</p><p>You can make two different plugin names point to the same crosswalk, by adding two configuration entries with the same path:</p><pre class="screen">
|
||
crosswalk.submission.MyFormat.stylesheet = crosswalks/myformat.xslt
|
||
crosswalk.submission.almost_DC.stylesheet = crosswalks/myformat.xslt</pre><p>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:</p><pre class="screen">
|
||
crosswalk.dissemination.<span class="emphasis"><em>PluginName</em></span>.namespace.<span class="emphasis"><em>Prefix = namespace-URI</em></span>
|
||
crosswalk.dissemination.<span class="emphasis"><em>PluginName</em></span>.schemaLocation = <span class="emphasis"><em>schemaLocation value</em></span>
|
||
</pre><p>For example:</p><pre class="screen">
|
||
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</pre><div class="section" title="5.2.15.1. Testing XSLT Crosswalks"><div class="titlepage"><div><div><h4 class="title"><a name="N12A65"></a>5.2.15.1. Testing XSLT Crosswalks</h4></div></div><div></div></div><p> The XSLT crosswalks will automatically reload an XSL stylesheet that has been modified, so you can edit and test stylesheets without restarting DSpace. You can test a dissemination crosswalk by hooking it up to an OAI-PMH crosswalk and using an OAI request to get the metadata for a known item.</p><p>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:</p><pre class="screen"><span class="emphasis"><em>[dspace]</em></span>/bin/dsrun
|
||
org.dspace.content.crosswalk.XSLTIngestionCrosswalk [-l] <span class="emphasis"><em>plugin input-file</em></span></pre><p>where <span class="emphasis"><em>plugin</em></span> is the name of the crosswalk plugin to test (e.g. "LOM"), and <span class="emphasis"><em>input-file</em></span> is a file containing an XML document of metadata in the appropriate format.</p><p> Add the <code class="literal">-l</code> option to pass the ingestion crosswalk a list of elements instead of a whole document, as if the List form of the ingest() method had been called. This is needed to test ingesters for formats like DC that get called with lists of elements instead of a root element.</p></div></div><div class="section" title="5.2.16. Configurable Qualified Dublin Core (QDC) dissemination crosswalk"><div class="titlepage"><div><div><h3 class="title"><a name="N12A82"></a>5.2.16. <a name="docbook-configure.html-qdc"></a>Configurable Qualified Dublin Core (QDC) dissemination crosswalk</h3></div></div><div></div></div><p>The QDC crosswalk is a self-named plugin. To configure an instance of the QDC crosswalk, add a property to the DSpace configuration starting with <code class="literal">"crosswalk.qdc.properties."</code>; the final word of the property name becomes the plugin's name. For example, a property name <code class="literal">crosswalk.qdc.properties.QDC</code> defines a crosswalk plugin named <code class="literal">"QDC"</code>.</p><p>The following is from <code class="literal">dspace.cfg</code> file:</p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Properties:</td><td>
|
||
<code class="literal">crosswalk.qdc.namspace.qdc.dc</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">crosswalk.qdc.namspace.qdc.dc = http://purl.org/dc/elements/1.1</code>
|
||
</td></tr><tr><td align="right">Properties:</td><td>
|
||
<code class="literal">crosswalk.qdc.namspace.qdc.dcterms</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">crosswalk.qdc.namspace.qdc.dc = http://purl.org/dc/terms/</code>
|
||
</td></tr><tr><td align="right">Properties:</td><td>
|
||
<code class="literal">crosswalk.qdc.schemaLocation.QDC</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<pre class="screen">crosswalk.qdc.schemaLocation.QDC = http://www.purl.org/dc/terms \
|
||
http://dublincore.org/schemas/xmls/qdc/2006/01/06/dcterms.xsd \
|
||
http://purl.org/dc/elements/1.1 \
|
||
http://dublincore.org/schemas/xmls/qdc/2006/01/06/dc.xsd</pre>
|
||
</td></tr><tr><td align="right">Properties:</td><td>
|
||
<code class="literal">crosswalk.qdc.properties.QDC</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">crosswalk.qdc.properties.QDC = crosswalks/QDC.properties</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>Configuration of the QDC Crosswalk dissemination plugin for Qualified DC. <span class="emphasis"><em>(Add lower-case name for OAI-PMH. That is, change QDC to qdc.)</em></span></td></tr></tbody></table></div><p>In the property key "<code class="literal">crosswalk.qdc.properties.QDC</code>" 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 <span class="emphasis"><em>
|
||
<code class="literal">/[dspace]/config</code>
|
||
</em></span>. Referring back to the "Example Value" for this property key, one has <code class="literal">crosswalks/qdc.properties</code> which defines a crosswalk named <code class="literal">QDC</code> whose configuration comes from the file <code class="literal">[dspace]/config/crosswalks/qdc.properties</code>.</p><p>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:</p><p><code class="literal">crosswalk.qdc.namespace</code>.<span class="emphasis"><em>prefix = uri</em></span></p><p>where <span class="emphasis"><em>prefix</em></span> is the namespace prefix and <span class="emphasis"><em>uri</em></span> is the namespace URI. See the above Property and Example Value keys as the default dspace.cfg has been configured.</p><p>The QDC crosswalk properties file is a list of properties describing how DSpace metadata elements are to be turned into elements of the Qualified DC XML output document. The property name is a concatenation of the metadata schema, element name, and optionally the qualifier. For example, the <code class="literal">contributor.author</code> element in the native Dublin Core schema would be: <code class="literal">dc.contributor.author</code>. The value of the property is an XML fragment, the element whose value will be set to the value of the metadata field in the property key.</p><p>For example, in this property:</p><pre class="screen"> dc.coverage.temporal = <dcterms:temporal /></pre><p>the generated XML in the output document would look like, e.g.: <pre class="screen"> <dcterms:temporal>Fall, 2005</dcterms:temporal></pre></p></div><div class="section" title="5.2.17. Configuring Crosswalk Plugins"><div class="titlepage"><div><div><h3 class="title"><a name="N12B45"></a>5.2.17. <a name="docbook-configure.html-crosswalk"></a>Configuring Crosswalk Plugins</h3></div></div><div></div></div><p>Ingestion crosswalk plugins are configured as <a class="link" href="ch13.html#docbook-business.html-plugin">named or self-named plugins</a> for the interface <code class="literal">org.dspace.content.crosswalk.IngestionCrosswalk</code>. Dissemination crosswalk plugins are configured as <a class="link" href="ch13.html#docbook-business.html-plugin">named or self-named plugins</a> for the interface <code class="literal">org.dspace.content.crosswalk.DisseminationCrosswalk</code>.</p><p>You can add names for existing crosswalks, add new plugin classes, and add new configurations for the configurable crosswalks as noted below.</p></div><div class="section" title="5.2.18. Configuring Packager Plugins"><div class="titlepage"><div><div><h3 class="title"><a name="N12B60"></a>5.2.18. <a name="docbook-configure.html-packager"></a>Configuring Packager Plugins</h3></div></div><div></div></div><p>Package ingester plugins are configured as <a class="link" href="ch13.html#docbook-business.html-plugin">named or self-named plugins</a> for the interface <code class="literal">org.dspace.content.packager.PackageIngester</code>. Package disseminator plugins are configured as <a class="link" href="ch13.html#docbook-business.html-plugin">named or self-named plugins</a> for the interface <code class="literal">org.dspace.content.packager.PackageDisseminator</code>.</p><p>You can add names for the existing plugins, and add new plugins, by altering these configuration properties. See the <a class="link" href="ch13.html#docbook-business.html-plugin">Plugin Manager</a> architecture for more information about plugins.</p></div><div class="section" title="5.2.19. Event System Configuration"><div class="titlepage"><div><div><h3 class="title"><a name="N12B7F"></a>5.2.19. <a name="docbook-configure.html-event"></a>Event System Configuration</h3></div></div><div></div></div><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Properties:</td><td>
|
||
<pre class="screen">event.dispatcher.default.class
|
||
event.dispatcher.default.consumers</pre>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<pre class="screen">event.dispatcher.default.class = org.dspace.event.BasicDispatcher
|
||
event.dispatcher.default.consumers = search, browse, eperson</pre>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>This is the default synchronous dispatcher (Same behavior as traditional DSpace).</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Properties:</td><td>
|
||
<pre class="screen">event.dispatcher.noindex.class
|
||
event.dispatcher.noindex.consumers</pre>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<pre class="screen">event.dispatcher.noindex.class = org.dspace.event.BasicDispatcher
|
||
event.dispatcher.noindex.consumers = eperson</pre>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>The noindex dispatcher will not create search or browse indexes (useful for batch item imports).</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Properties:</td><td>
|
||
<pre class="screen">event.consumer.search.class
|
||
event.consumer.search.filters</pre>
|
||
</td></tr><tr><td align="right">Example Value:</td><td><span class="emphasis"><em>(See example below)</em></span></td></tr><tr><td colspan="2" align="center">
|
||
<pre class="screen">
|
||
event.consumer.search.class = org.dspace.search.SearchConsumer
|
||
event.consumer.search.filters = \
|
||
Community|Collection|Item|Bundle+Add|Create|Modify|Modify_Metadata|Delete|Remove</pre>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>Consumer to maintain the search index.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Properties:</td><td>
|
||
<pre class="screen">event.consumer.browse.class
|
||
event.consumer.browse.filters</pre>
|
||
</td></tr><tr><td align="right">Example Value:</td><td><span class="emphasis"><em>(See example below)</em></span></td></tr><tr><td colspan="2" align="center">
|
||
<pre class="screen">
|
||
event.consumer.browse.class = org.dspace.browse.BrowseConsumer
|
||
event.consumer.browse.filters = \
|
||
Community|Collection|Item|Bundle+Add|Create|Modify|Modify_Metadata|Delete|Remove</pre>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>Consumer to maintain the browse index.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Properties:</td><td>
|
||
<pre class="screen">event.consumer.eperson.class
|
||
event.consumer.eperson.filters</pre>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<pre class="screen">event.consumer.eperson.class = org.dspace.eperson.EPersonConsumer
|
||
event.consumer.eperson.filters = EPerson+Create</pre>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>Consumer related to EPerson changes</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Properties:</td><td>
|
||
<pre class="screen">event.consumer.test.class
|
||
event.consumer.test.filters</pre>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<pre class="screen">event.consumer.test.class = org.dspace.event.TestConsumer
|
||
event.consumer.test.filters = All+All
|
||
</pre>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>Test consumer for debugging and monitoring. <span class="bold"><strong>Commented out by default.</strong></span></td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Properties:</td><td>
|
||
<code class="literal">testConsumer.verbose</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">testConsumer.verbose = true</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>Set this to true to enable testConsumer messages to standard output. <span class="bold"><strong>Commented out by default.</strong></span></td></tr></tbody></table></div></div><div class="section" title="5.2.20. Checksum Checker Settings"><div class="titlepage"><div><div><h3 class="title"><a name="N12C7C"></a>5.2.20. <a name="docbook-configure.html-checksum"></a>Checksum Checker Settings</h3></div></div><div></div></div><p>DSpace now comes with a Checksum Checker script (<code class="literal">[dspace]/bin/checker</code>) 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). </p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td>
|
||
<code class="literal">plugin.single.org.dspace.checker.BitstreamDispatcher</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">plugin.single.org.dspace.checker.BitstreamDispatcher = org.dspace.checker.SimpleDispatcher</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>The Default dispatcher is case non is specified.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">checker.retention.default</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">checker.retention.default = 10y</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>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.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">checker.retention.CHECKSUM_MATCH</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">checker.retention.CHECKSUM_MATCH = 8w</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>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).</td></tr></tbody></table></div></div><div class="section" title="5.2.21. Item Export and Download Settings"><div class="titlepage"><div><div><h3 class="title"><a name="N12CF3"></a>5.2.21. <a name="docbook-configure.html-download"></a>Item Export and Download Settings</h3></div></div><div></div></div><p>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:</p><table summary="Simple list" border="0" class="simplelist"><tr><td>dublin_core.xml</td></tr><tr><td>license.txt</td></tr><tr><td>contents <span class="emphasis"><em>(listing of the contents)</em></span></td></tr><tr><td>handle</td></tr><tr><td>
|
||
<span class="emphasis"><em>file itself and the extract file if available</em></span>
|
||
</td></tr></table><p>The configuration settings control several aspects of this feature:</p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td>
|
||
<code class="literal">org.dspace.app.itemexport.work.dir</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">org.dspace.app.itemexport.work.dir = ${dspace.dir}/exports</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>The directory where the exports will be done and compressed.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">org.dspace.app.itemexport.download.dir</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">org.dspace.app.itemexport.download.dir = ${dspace.dir}/exports/download</code>
|
||
</td></tr><tr><td align="right">Informational Note</td><td>The directory where the compressed files will reside and be read by the downloader.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">org.dspace.app.itemexport.life.span.hours</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">org.dspace.app.itemexport.life.span.hours = 48</code>
|
||
</td></tr><tr><td align="right">Informational Note</td><td>The length of time in hours each archive should live for. When new archives are created this entry is used to delete old ones.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">org.dspace.app.itemexport.max.size</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">org.dspace.app.itemexport.max.size = 200</code>
|
||
</td></tr><tr><td align="right">Informational Note</td><td>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.</td></tr></tbody></table></div></div><div class="section" title="5.2.22. Subscription Emails"><div class="titlepage"><div><div><h3 class="title"><a name="N12D98"></a>5.2.22. <a name="docbook-configure.html-subscription"></a>Subscription Emails</h3></div></div><div></div></div><p>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.</p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td>
|
||
<code class="literal">eperson.subscription.onlynew</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">eperson.subscription.onlynew = true</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>For backwards compatibility, the subscription emails by default include any modified items. The property key is COMMENTED OUT by default.</td></tr></tbody></table></div></div><div class="section" title="5.2.23. Settings for the Submission Process"><div class="titlepage"><div><div><h3 class="title"><a name="N12DCD"></a>5.2.23. <a name="docboook-configure.html-submission"></a>Settings for the Submission Process</h3></div></div><div></div></div><p>These settings control two aspects of the submission process: thesis submission permission and whether or not a bitstream file is required when submitting to a collection.</p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td>
|
||
<code class="literal">webui.submit.blocktheses</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">webui.submit.blocktheses = false</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>Controls whether or not that the submission should be marked as a thesis.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">webui.submit.upload.required</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">webui.submit.upload.required = true</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>Whether or not a file is <span class="bold"><strong>required</strong></span> 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.</td></tr></tbody></table></div></div><div class="section" title="5.2.24. Configuring Creative Commons License"><div class="titlepage"><div><div><h3 class="title"><a name="N12E25"></a>5.2.24. <a name="docbook-configure.html-cc-license"></a>Configuring Creative Commons License</h3></div></div><div></div></div><p>This enables the Creative Commons license step in the submission process of the JSP User Interface (JSPUI). Submitters are given an opportunity to select a Creative Common license to accompany the item. Creative Commons license govern the use of the content. For further details, refer to the Creative Commons website at <a class="ulink" href="http://creativecommons.org" target="_top">http://creativecommons.org</a> .</p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td>
|
||
<code class="literal">webui.submit.enable-cc</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">webui.submit.enable-cc = false</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>
|
||
<code class="literal">Set key to "false" if you are not using CC License. Set key to "true" if you are using CC License.</code>
|
||
</td></tr></tbody></table></div></div><div class="section" title="5.2.25. WEB User Interface Configurations"><div class="titlepage"><div><div><h3 class="title"><a name="N12E62"></a>5.2.25. <a name="docbook-configure.html-webui"></a>WEB User Interface Configurations</h3></div><div><h4 class="subtitle">General Web User Interface Configurations</h4></div></div><div></div></div><p>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.</p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td>
|
||
<code class="literal">webui.browse.thubnail.show</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">webui.browse.thubnail.show = true</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>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. <span class="emphasis"><em>(This configuration property key is not used by XMLUI. To show thumbnails using XMLUI, you need to create a theme which displays them)</em></span>.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<pre class="screen">webui.browse.thumbnail.maxheight
|
||
webui.browse.thumbnail.maxwidth</pre>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<pre class="screen">webui.browse.thumbnail.maxheight = 80
|
||
webui.browse.thumbnail.maxwidth = 80</pre>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>This determines the maximum height and 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. </td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">webui.itme.thumbnail.show</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">webui.itme.thumbnail.show = true</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>This determines whether or not to display the thumbnail against each bitstream. <span class="emphasis"><em>(This configuration property key is not used by XMLUI. To show thumbnails using XMLUI, you need to create a theme which displays them)</em></span>.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">webui.browse.thumbnail.linkbehavior</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">webui.browse.thumbnail.linkbehavior = item</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>This determines where should the clicking on the thumbnail from browse/search screens take the user. The only values currently supported are "item" or "bitstream".</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<pre class="screen">thumbnail.maxwidth
|
||
thumbnail.maxheight</pre>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<pre class="screen">thumbnail.maxwidth 80
|
||
thumbnail.maxheight 80</pre>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>This is the where one sets the maximum height and width of generated thumbnails.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">webui.preview.enabled</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">webui.preview.enabled = false</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>Whether or not the user can "preview" the image.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<pre class="screen">webui.preview.maxwidth
|
||
webui.preview.maxheight</pre>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<pre class="screen">webui.preview.maxwidth = 600
|
||
webui.preview.maxheight = 600</pre>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>This sets the maximum dimensions for the preview image.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">webui.preview.brand</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">webui.preview.brand = My Institution Name</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>This is the brand text that will appear with the image.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">webui.preview.brand.abbrev</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">webui.preview.brand.abbrev = MyOrg</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>An abbreviated form of the full Branded Name. This will be used when the preview image cannot fit the normal text.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">webui.preview.brand.height</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">webui.preview.brand.height = 20</code></td></tr><tr><td align="right">Informational Note:</td><td>The height (in px) of the brand</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<pre class="screen">webui.preview.brand.font
|
||
webui.preview.brand.fontpoint</pre>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<pre class="screen">webui.preview.brand.font = SanSerif
|
||
webui.preview.brand.fontpoint = 12</pre>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>The font settings for the brand text.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">webui.preview.dc</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">webui.preview.dc = rights</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>The Dublin Core field that will display along with the preview.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">webui.strengths.show</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">webui.strengths.show = false</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>Determines if communities and collections should display item counts when listed. The default behavior if omitted, is true. <span class="emphasis"><em>(This configuration property key is not used by XMLUI. To show thumbnails using XMLUI, you need to create a theme which displays them)</em></span>.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">webui.strengths.cache</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">webui.strengths.cache = false</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>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: <code class="literal">/[dspace]/bin/dsrun org.dspace.browse.ItemCounter</code>. The default is to count in real time (set to "false").</td></tr></tbody></table></div></div><div class="section" title="5.2.26. Browse Index Configuration"><div class="titlepage"><div><div><h3 class="title"><a name="N13035"></a>5.2.26. <a name="docbook-configure.html-browse-index"></a>Browse Index Configuration</h3></div></div><div></div></div><p>The browse indexes for DSpace can be extensively configured. This section of the configuration allows you to take control of the indexes you wish to browse, and how you wish to present the results. The configuration is broken into several parts: defining the indexes, defining the fields upon which users can sort results, defining truncation for potentially long fields (e.g. authors), setting cross-links between different browse contexts (e.g. from an author's name to a complete list of their items), how many recent submissions to display, and configuration for item mapping browse.</p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td>
|
||
<code class="literal">webui.browse.index.<</code><span class="emphasis"><em>n</em></span><code class="literal">></code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">webui.browse.index.1 = dateissued:metadata:dc.date.issued:date:full </code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>This is an example of how one "Defines the Indexes". See<a class="link" href="ch05.html#docbook-configure.html-browse-index-define">Defining the Indexes</a> in the next sub-section.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<code class="literal">webui.itemlist.sort-option.<</code><span class="emphasis"><em>n</em></span><code class="literal">></code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">webui.itemlist.sort-option.1 = title:dc.title:title</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>This is an example of how one "Defines the Sort Options". See <a class="link" href="ch05.html#docbook-configure.html-browse-index-sort">Defining Sort Options</a> in the following sub-section.</td></tr></tbody></table></div><div class="section" title="5.2.26.1. Defining the Indexes."><div class="titlepage"><div><div><h4 class="title"><a name="N1309B"></a>5.2.26.1. <a name="docbook-configure.html-browse-index-define"></a>Defining the Indexes.</h4></div></div><div></div></div><p>DSpace arrives with four default indexes already defined: author, title, date issued, and subjects. Users may also define additional indexes or re-configure the current indexes for different levels of specificity. For example, the default entries that appear in the <code class="literal">dspace.cfg</code> as default installation:</p><pre class="screen">webui.browse.index.1 = dateissued:metadata:dc.date.issued:date:full
|
||
webui.browse.index.2 = author:metadata:dc.contributor.*:text
|
||
webui.browse.index.3 = title:metadata:dc.title:title:full
|
||
webui.browse.index.4 = subject:metadata:dc.subject.*:text
|
||
#webui.browse.index.5 = dateaccessioned:item:dateaccessioned</pre><p>The format of each entry is <code class="literal">webui.browse.index.<n> = <index name>:<metadata>:<schema prefix>.<element>.<qualifier>:<data-type field>:<sort option></code>. Please notice that the punctuation is paramount in typing this property key in the <code class="literal">dspace.cfg</code> file. The following table explains each element:</p><div class="informaltable"><table border="1" width="100%"><colgroup><col align="left"><col align="left"></colgroup><thead><tr><th align="left">
|
||
<span class="bold"><strong>Element</strong></span>
|
||
</th><th align="left">
|
||
<span class="bold"><strong>Definition and Options (if available)</strong></span>
|
||
</th></tr></thead><tbody><tr><td align="left">
|
||
<code class="literal">webui.browse.index.</code>
|
||
<span class="emphasis"><em>n</em></span>
|
||
</td><td align="left"><span class="emphasis"><em>n</em></span> is the index number. The index numbers must start from 1 and increment continuously by 1 thereafter. Deviation form 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).</td></tr><tr><td align="left">
|
||
<code class="literal"><index name></code>
|
||
</td><td align="left">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: <code class="literal">browse.type.metadata.<index name></code> .</td></tr><tr><td align="left">
|
||
<code class="literal"><metadata></code>
|
||
</td><td align="left">Only two options are available: "<code class="literal">metadata</code>" or "<code class="literal">item</code>"</td></tr><tr><td align="left">
|
||
<code class="literal"><schema prefix></code>
|
||
</td><td align="left">The schema used for the field to be index. The default is dc (for Dublin Core). </td></tr><tr><td align="left">
|
||
<code class="literal"><element></code>
|
||
</td><td align="left">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 <a class="link" href="">Appendix A</a>.</td></tr><tr><td align="left">
|
||
<code class="literal"><qualifier></code>
|
||
</td><td align="left">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.</td></tr><tr><td align="left">
|
||
<code class="literal"><datatype field></code>
|
||
</td><td align="left"> This refers to the datatype of the field: <table summary="Simple list" border="0" class="simplelist"><tr><td>
|
||
<code class="literal">date </code>the index type will be treated as a date object </td></tr><tr><td>
|
||
<code class="literal">title </code>the index type will be treated like a title, which will include a link to the item page </td></tr><tr><td>
|
||
<code class="literal">text </code>the index type will be treated as plain text. If single mode is specified then this will link to the full mode list </td></tr></table></td></tr><tr><td align="left">
|
||
<code class="literal"><index display></code>
|
||
</td><td align="left">Choose <code class="literal">full</code> or <code class="literal">single</code>. This refers to the way that the index will be displayed in the browse listing. "Full" will be the full item list as specified by <code class="literal">webui.itemlist.columns</code> ; "single" will be a single list of only the indexed term. </td></tr></tbody></table></div><p>If you are customizing this list beyond the default, you will need to insert the text you wish to appear in the navigation and on link and buttons. You need to edit the <code class="literal">Messages.properties</code> file. The form of the parameter(s) in the file:</p><pre class="screen"> browse.type.<index name></pre></div><div class="section" title="5.2.26.2. Defining Sort Options"><div class="titlepage"><div><div><h4 class="title"><a name="N13156"></a>5.2.26.2. <a name="docbook-configure.html-browse-index-sort"></a>Defining Sort Options</h4></div></div><div></div></div><p>Sort options will be available when browsing a list of items (i.e. only in "full" mode, not "single" mode). You can define an arbitrary number of fields to sort on, irrespective of which fields you display using <code class="literal">web.itemlist.columns</code>. For example, the default entries that appear in the <code class="literal">dspace.cfg</code> as default installation:</p><pre class="screen">webui.itemlist.sort-option.1 = title:dc.title:title
|
||
webui.itemlist.sort-option.2 = dateissued:dc.date.issued:date
|
||
webui.itemlist.sort-option.3 = dateaccessioned:dc.date.accessioned:date</pre><p>The format of each entry is<code class="literal">web.browse.sort-option.<n> = <option name>:<schema prefix>.<element>.<qualifier>:<datatype></code>. Please notice the punctuation used between the different elements. The following table explains the each element:</p><div class="informaltable"><table border="1" width="100%"><colgroup><col align="left"><col align="left"></colgroup><thead><tr><th align="left">
|
||
<span class="bold"><strong>Element</strong></span>
|
||
</th><th align="left">
|
||
<span class="bold"><strong>Definition and Options (if available)</strong></span>
|
||
</th></tr></thead><tbody><tr><td align="left">
|
||
<code class="literal">webui.browse.index.</code>
|
||
<span class="emphasis"><em>n</em></span>
|
||
</td><td align="left"><span class="emphasis"><em>n</em></span> is an arbitrary number you choose.</td></tr><tr><td align="left">
|
||
<code class="literal"><option name></code>
|
||
</td><td align="left">The name by which the sort option will be identified. This may be used in later configuration or to locate the message key (found in <code class="literal">Messages.properties</code> file) for this index.</td></tr><tr><td align="left">
|
||
<code class="literal"><schema prefix></code>
|
||
</td><td align="left">The schema used for the field to be index. The default is dc (for Dublin Core). </td></tr><tr><td align="left">
|
||
<code class="literal"><element></code>
|
||
</td><td align="left">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 <a class="link" href="">Appendix A</a>.</td></tr><tr><td align="left">
|
||
<code class="literal"><qualifier></code>
|
||
</td><td align="left">This is the qualifier to the <element> component. The user has two choices: an asterisk "*" or a proper qualifier of the element. </td></tr><tr><td align="left">
|
||
<code class="literal"><datatype field></code>
|
||
</td><td align="left"> This refers to the datatype of the field: <table summary="Simple list" border="0" class="simplelist"><tr><td>
|
||
<code class="literal">date</code>
|
||
</td><td>the sort type will be treated as a date object</td></tr><tr><td>
|
||
<code class="literal">text</code>
|
||
</td><td>the sort type will be treated as plain text.</td></tr></table></td></tr></tbody></table></div></div><div class="section" title="5.2.26.3. Browse Index Normalization Rule Configuration"><div class="titlepage"><div><div><h4 class="title"><a name="N131E1"></a>5.2.26.3. <a name="docbook-configure.html-browse-index-normalization"></a>Browse Index Normalization Rule Configuration</h4></div></div><div></div></div><p>Normalization Rules are those rules that make it possible for the indexes to intermix entries without regard to case sensitivity. By default, the display of metadata in the browse indexes are case-sensitive. In the example below, you retrieve separate entries:</p><table summary="Simple list" border="0" class="simplelist"><tr><td>Twain, Mark</td></tr><tr><td>twain, mark</td></tr><tr><td>TWAIN, MARK</td></tr></table><p>However, clicking through from either of these will result in the same set of items (i.e., any item that contains either representation in the correct field). </p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td>
|
||
<code class="literal">webui.browse.metadata.case-insensitive</code>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<code class="literal">webui.browse.metadata.case-insensitive = true</code>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>This controls the normalization of the index entry. Uncommenting the option (which is commented out by default) will make the metadata items case-insensitive. This will result in a single entry in the example above. However, the value displayed may be any one of the above—depending on what representation was present in the first item indexed.</td></tr></tbody></table></div><p>At the present time, you would need to edit your metadata to clean up the index presentation.</p></div><div class="section" title="5.2.26.4. Other Browse Options"><div class="titlepage"><div><div><h4 class="title"><a name="N13222"></a>5.2.26.4. <a name="docbook-configure.html-browse-index-other"></a>Other Browse Options</h4></div></div><div></div></div><p>We set other browse values in the following section.</p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td><code class="literal">webui.browse.value_columns.max</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">webui.browse.value_columns.max = 500</code></td></tr><tr><td>Informational Note:</td><td>This sets the options for the size (number of characters) of the fields stored in the database. The default is 0, which is unlimited size for fields holding indexed data. Some database implementations (e.g. Oracle) will enforce their own limit on this field size. Reducing the field size will decrease the potential size of your database and increase the speed of the browse, but it will also increase the chance of mis-ordering of similar fields. The values are commented out, but proposed values for reasonably performance versus result quality. This affects the size of field for the browse value (this will affect display, and value sorting )</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">webui.browse.sort_columns.max</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">webui.browse.sort_columns.max = 200</code></td></tr><tr><td align="right">Informational Note:</td><td>Size of field for hidden sort columns (this will affect only sorting, not display). Commented out as default.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">webui.browse.value_columns.omission_mark</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">webui.browse.value_columns.omission_mark = ...</code></td></tr><tr><td align="right">Informational Note:</td><td>Omission mark to be placed after truncated strings in display. The default is "...".</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">plugin.named.org.dspace.sort.OrderFormatDelegate</code></td></tr><tr><td align="right">Example Value:</td><td>
|
||
<pre class="screen">plugin.named.org.dspace.sort.OrderFormatDelegate = \
|
||
org.dspace.sort.OrderFormatTitleMarc21=title</pre>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>
|
||
<p>This sets the option for how the indexes are sorted. All sort normalizations are carried out by the OrderFormatDelegate. The plugin manager can be used to specify your own delegates for each datatype. The default datatypes (and delegates) are:</p>
|
||
<pre class="screen">author = org.dspace.sort.OrderFormatAuthor
|
||
title = org.dspace.sort.OrderFormatTitle
|
||
text = org.dspace.sort.OrderFormatText</pre>
|
||
<p>If you redefine a default datatype here, the configuration will be used in preferences to the default. However, if you do not explicitly redefine a datatype, then the default will still be used in addition to the datatypes you do specify.</p>
|
||
<p>As of DSpace release 1.5.2, the multi-lingual MARC21 title ordering is configured as default, as shown in the example above. To use the previous title ordering (before release 1.5.2), comment out the configuration in your <code class="literal">dspace.cfg</code> file.</p>
|
||
</td></tr></tbody></table></div></div></div><div class="section" title="5.2.27. Author (Multiple metadata value) Display"><div class="titlepage"><div><div><h3 class="title"><a name="N132B6"></a>5.2.27. <a name="docbook-configure.html-author-display"></a>Author (Multiple metadata value) Display</h3></div></div><div></div></div><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td valign="top" align="center" rowspan="2" width="25"><img alt="[Note]" src="/jspui/doc/image/note.png"></td><th align="left"></th></tr><tr><td valign="top" align="left"><p>This section actually applies to any field with multiple values, but authors are the define case and example here.</p></td></tr></table></div><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td><code class="literal">webui.browse.author-field</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">webui.browse.author-field = dc.contributor.*</code></td></tr><tr><td align="right">Informational Note:</td><td>This defines which field is the author/editor, etc. listing. </td></tr></tbody></table></div><p>Replace <code class="literal">dc.contributor.*</code> with another field if appropriate. The field should be listed in the configuration for <code class="literal">webui.itemlist.columns</code>, otherwise you will not see its effect. It must also be defined in <code class="literal">webui.itemlist.columns</code> as being of the datatype <code class="literal">text</code> otherwise the functionality will be overridden by the specific data type feature. (This setting is not used by the XMLUI as it is controlled by your theme).</p><p>Now that we know which field is our author or other multiple metadata value field we can provide the option to truncate the number of values displayed by default. We replace the remaining list of values with "et al" or the language pack specific alternative. Note that this is just for the default, and users will have the option of changing the number displayed when they browse the results. See the following table:</p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td><code class="literal">webui.browse.author-limit</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">webui.browse.author-limit = <</code><span class="emphasis"><em>n</em></span><code class="literal">></code></td></tr><tr><td align="right">Informational Note:</td><td>Where <code class="literal"><</code><span class="emphasis"><em>n</em></span><code class="literal">></code> is an integer number of values to be displayed. Use <code class="literal">-1</code> for unlimited (the default value).</td></tr></tbody></table></div></div><div class="section" title="5.2.28. Links to Other Browse Contexts"><div class="titlepage"><div><div><h3 class="title"><a name="N13336"></a>5.2.28. <a name="docbook-configure.html-links-browse"></a>Links to Other Browse Contexts</h3></div></div><div></div></div><p>We can define which fields link to other browse listings. This is useful, for example, to link an author's name to a list of just that author's items. The effect this has is to create links to browse views for the item clicked on. If it is a "single" type, it will link to a view of all the items which share that metadata element in common (i.e. all the papers by a single author). If it is a "full" type, it will link to a view of the standard full browse page, starting with the value of the link clicked on.</p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td><code class="literal">webui.browse.link.<</code><span class="emphasis"><em>n</em></span><code class="literal">></code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">webui.browse.link.1 = author:dc.contributor.*</code></td></tr><tr><td align="right">Informational Note:</td><td>This is used to configure which fields should link to other browse listings. This should be associated with the name of one of the browse indexes (<code class="literal">webui.browse.index.n</code>) with a metadata field listed in <code class="literal">webui.itemlist.columns</code> above. If this condition is not fulfilled, cross-linking will not work. Note also that crosslinking only works for metadata fields not tagged as <code class="literal">title</code> in <code class="literal">webui.itemlist.columns</code>.</td></tr></tbody></table></div><p>The format of the property key is <code class="literal">webui.browse.link.<n> = <index name>:<display column metadata></code> Please notice the punctuation used between the elements.</p><div class="informaltable"><table border="1" width="100%"><colgroup><col align="left"><col align="left"></colgroup><thead><tr><th align="left">
|
||
<span class="bold"><strong>Element</strong></span>
|
||
</th><th align="left">
|
||
<span class="bold"><strong>Definition and Options (if available)</strong></span>
|
||
</th></tr></thead><tbody><tr><td align="left"><code class="literal">webui.browse.link.</code><span class="emphasis"><em>n</em></span></td><td align="left"><span class="emphasis"><em>n</em></span> is an arbitrary number you choose</td></tr><tr><td align="left"><code class="literal"><index name></code></td><td align="left">This need to match your entry for the index name from <code class="literal">webui.browse.index</code> property key. </td></tr><tr><td align="left"><code class="literal"><display column metadata></code></td><td align="left">Use the DC element (and qualifier)</td></tr></tbody></table></div><p>Examples of some browse links used in a real DSpace installation instance:</p><table summary="Simple list" border="0" class="simplelist"><tr><td><code class="literal">webui.browse.link.1 = author:dc.contributor.* </code>Creates a link for all types of contributors (authors, editors, illustrators, others, etc.)</td><td><code class="literal">webui.browse.link.2 = subject:dc.subject.lcsh </code>Creates a link to subjects that are Library of Congress only. In this case, you have a browse index that contains only LC Subject Headings</td></tr><tr><td><code class="literal">webui.browse.link.3 = series:dc.relation.ispartofseries </code>Creates a link for the browse index "Series". Please note this is again, a customized browse index and not part of the DSpace distributed release.</td><td> </td></tr></table></div><div class="section" title="5.2.29. Recent Submissions"><div class="titlepage"><div><div><h3 class="title"><a name="N133CE"></a>5.2.29. <a name="docbook-configure.html-recent-subs"></a>Recent Submissions</h3></div></div><div></div></div><p>This allows us to define which index to base Recent Submission display on, and how many we should show at any one time. This uses the PluginManager to automatically load the relevant plugin for the Community and Collection home pages. Values given in examples are the defaults supplied in <code class="literal">dspace.cfg</code></p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td><code class="literal">recent.submission.sort-option</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">recent.submission.sort-option = dateaccessioned</code></td></tr><tr><td align="right">Informational Note:</td><td>First is to define the sort name (from <code class="literal">webui.browse.sort-options</code>) to use for displaying recent submissions.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">recent.submissions.count</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">recent.submissions.count = 5</code></td></tr><tr><td align="right">Informational Note:</td><td>Defines how many recent submissions should be displayed at any one time.</td></tr></tbody></table></div><p>There will be the need to set up the processors that the PluginManager will load to actually perform the recent submissions query on the relevant pages. This is already configured by default <code class="literal">dspace.cfg</code> so there should be no need for the administrator/programmer to worry about this.</p><pre class="screen">
|
||
plugin.sequence.org.dspace.plugin.CommunityHomeProcessor = \
|
||
org.dspace.app.webui.components.RecentCommunitySubmissions
|
||
|
||
plugin.sequence.org.dspace.plugin.CollectionHomeProcessor = \
|
||
org.dspace.app.webui.components.RecentCollectionSubmissions
|
||
</pre></div><div class="section" title="5.2.30. Syndication Feed (RSS) Settings"><div class="titlepage"><div><div><h3 class="title"><a name="N1342A"></a>5.2.30. <a name="docbook-configure.html-rss_feeds"></a>Syndication Feed (RSS) Settings</h3></div></div><div></div></div><p>This will enable syndication feeds—links display on community and collection home pages. This setting is not used by the XMLUI, as you enable feeds in your theme.</p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td><code class="literal">webui.feed.enable</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">webui.feed.enable = false</code></td></tr><tr><td align="right">Informational Note:</td><td>By default, RSS feeds are set to false (off). Change key to "true" to enable.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">webui.feed.items</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">webui.feed.items = 4</code></td></tr><tr><td align="right">Informational Note:</td><td>Defines the number of DSpace items per feed (the most recent submissions)</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">webui.feed.cache.size</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">webui.feed.cache.size = 100</code></td></tr><tr><td align="right">Informational Note:</td><td>Defines the maximum number of feeds in memory cache. Value of "<code class="literal">0</code>" will disable caching.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">webui.feed.cache.age</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">webui.feed.cache.age = 48</code></td></tr><tr><td align="right">Informational Note:</td><td>Defines the number of hours to keep cached feeds before checking currency. The value of "<code class="literal">0</code>" will force a check with each request.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">webui.feed.formats</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">webui.feed.formats = rss_1.0,rss_2.0,atom_1.0</code></td></tr><tr><td align="right">Informational Note:</td><td>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.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">webui.feed.localresolve</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">webui.feed.localresolve = false</code></td></tr><tr><td align="right">Informational Note:</td><td>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 <span class="bold"><strong><code class="literal">true</code></strong></span> the local server URLs are used (e.g. http://myserver.myorg/handle/123456789/1).</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<pre class="screen">webui.feed.item.title
|
||
webui.feed.item.date</pre>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<pre class="screen">webui.feed.item.title = dc.title
|
||
webui.feed.item.date = dc.date.issued</pre>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>This set of keys customize 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 <code class="literal"><scheme prefix>.<element>.<qualifier></code> 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.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">webui.feed.item.description</code></td></tr><tr><td align="right">Example Value:</td><td><span class="emphasis"><em>(See example below)</em></span></td></tr><tr><td colspan="2" align="center">
|
||
<pre class="screen">webui.feed.item.description = dc.title, dc.contributor.author, \
|
||
dc.contributor.editor, dc.description.abstract, \
|
||
dc.description</pre>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td><p>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 <code class="literal">dspace.cfg</code>.</p>
|
||
<p>Like other property keys, the format of this property key is: <code class="literal">webui.feed.item.description = <scheme prefix>.<element>.<qualifier></code>. 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. </p>
|
||
</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">webui.feed.item.author</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">webui.feed.item.author = dc.contributor.author</code></td></tr><tr><td align="right">Informational Note:</td><td>The name of field to use for authors (Atom only); repeatable.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">webui.feed.logo.url</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">webui.feed.logo.url = ${dspace.url}/themes/mysite/images/mysite-logo.png</code></td></tr><tr><td align="right">Informational Note:</td><td>Customize the image icon included with the site-wide feeds. This must be an absolute URL</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><pre class="screen">webui.feed.item.dc.creator
|
||
webui.feed.item.dc.date
|
||
webui.feed.item.dc.description
|
||
</pre></td></tr><tr><td align="right">Example Value:</td><td><pre class="screen">webui.feed.item.dc.creator = dc.contributor.author
|
||
webui.feed.item.dc.date = dc.date.issued
|
||
webui.feed.item.dc.description = dc.description.abstract</pre></td></tr><tr><td align="right">Informational Note:</td><td>These optional properties add <span class="emphasis"><em>structured</em></span> DC elements as XML elements to the feed description. They are not the same thing as, for example, <code class="literal">webui.feed.item.description</code>. Useful when a program or stylesheet will be transforming a feed and wants separate author, description, date, etc.</td></tr></tbody></table></div></div><div class="section" title="5.2.31. Content Inline Disposition Threshold"><div class="titlepage"><div><div><h3 class="title"><a name="N1359A"></a>5.2.31. <a name="docbook-configure.html-inline"></a>Content Inline Disposition Threshold</h3></div></div><div></div></div><p>The following configuration is used to change the disposition behavior of the browser. That is, when the browser will attempt to open the file or download it to the user's specified location. For example, the default size is 8Mb. When an item being viewed is larger than 8MB, the browser will download the file to the desktop (or wherever you have it set to download) and the user will have to open it manually.</p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td><code class="literal">webui.content_disposition_threshold</code></td></tr><tr><td align="right">Example value:</td><td><code class="literal">webui.content_disposition_threshold = 8388608</code></td></tr><tr><td align="right">Informational Note:</td><td>The default value is set to 8Mb. This property key applies to the JSPUI interface.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">xmlui.content_disposition_threshold</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">xmlui.content_disposition_threshold = 8388608</code></td></tr><tr><td align="right">Informational Note:</td><td>The default value is set to 8Mb. This property key applies to the XMLUI (Manakin) interface.</td></tr></tbody></table></div><p>Other values are possible: </p><table summary="Simple list" border="0" class="simplelist"><tr><td>4 MB = 4194304</td></tr><tr><td>8 MB = 8388608</td></tr><tr><td>16 MB = 16777216</td></tr></table></div><div class="section" title="5.2.32. Multi-file HTML Document/Site Settings"><div class="titlepage"><div><div><h3 class="title"><a name="N135F0"></a>5.2.32. <a name="docbook-configure.html-html-depth"></a>Multi-file HTML Document/Site Settings</h3></div></div><div></div></div><p>The setting is used to configure the "depth" of request for html documents bearing the same name. </p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td>
|
||
<pre class="screen">
|
||
webui.html.max-depth-guess
|
||
xmlui.html.max-depth-guess</pre>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<pre class="screen">
|
||
webui.html.max-depth-guess = 3
|
||
xmlui.html.max-depth-guess = 3</pre>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>When serving up composite HTML items, how deep can the request be for us to serve up a file with the same name? For example, if one receives a request for "<code class="literal">foo/bar/index.html</code>" and one has a bitstream called just "<code class="literal">index.html</code>", DSpace will serve up the former bitstream (foo/bar/index.html) for the request if <code class="literal">webui.html.max-depth-guess</code> is 2 or greater. If <code class="literal">webui.html.max-depth-guess</code> is 1 or less, then DSpace would not serve that bitstream, as the depth of the file is greater. If <code class="literal">webui.html.max-depth-guess</code> is zero, the request filename and path must always exactly match the bitstream name. The default is set to 3.</td></tr></tbody></table></div></div><div class="section" title="5.2.33. Sitemap Settings"><div class="titlepage"><div><div><h3 class="title"><a name="N13639"></a>5.2.33. <a name="docbook-configure.html-sitemap"></a>Sitemap Settings</h3></div></div><div></div></div><p>To aid web crawlers index the content within your repository, you can make use of sitemaps.</p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td><code class="literal">sitemap.dir</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">sitemap.dir = ${dspace.dir}/sitemaps</code></td></tr><tr><td align="right">Informational Note:</td><td>The directory where the generate sitemaps are stored.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">sitemap.engineurls</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">sitemap.engineurls = http://www.google.com/webmasters/sitemaps/ping?sitemap=</code></td></tr><tr><td align="right">Informational Note:</td><td>
|
||
<p>Comma-separated list of search engine URLs to 'ping' when a new Sitemap has been created. Include everything except the Sitemap UL itself (which will be URL-encoded and appended to form the actual URL 'pinged').</p>
|
||
<p>Add the following to the above parameter if you have an application ID with Yahoo: <code class="literal">http://search.yahooapis.com/SiteExplorererService/V1/updateNotification?appid=REPLACE_ME?url=</code>. (Replace the component <code class="literal">REPLACE_ME</code> with your application ID). There is no known 'ping' URL for MSN/Live search.</p>
|
||
</td></tr></tbody></table></div></div><div class="section" title="5.2.34. Upload File Settings"><div class="titlepage"><div><div><h3 class="title"><a name="N13693"></a>5.2.34. <a name="docbook-configure.html-upload-file"></a>Upload File Settings</h3></div></div><div></div></div><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td><code class="literal">upload.temp.dir</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">upload.temp.dir = ${dspace.dir}/upload</code></td></tr><tr><td align="right">Informational Note:</td><td>Where to temporarily store uploaded files.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">upload.max</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">upload.max = 536870912</code></td></tr><tr><td align="right">Informational Note:</td><td>Maximum size of uploaded files in bytes. A negative setting will result in no limit being set. The default is set for 512Mb.</td></tr></tbody></table></div></div><div class="section" title="5.2.35. Statistical Report Configuration Setting"><div class="titlepage"><div><div><h3 class="title"><a name="N136DD"></a>5.2.35. <a name="docbook-configure.html-statistics"></a>Statistical Report Configuration Setting</h3></div></div><div></div></div><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td><code class="literal">report.public</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">report.public = false</code></td></tr><tr><td align="right">Informational Note:</td><td>Controls whether or not the stats can be publicly available. Set it to false (the default) if you only want administrators to access the stats, or you do not intended to generate any statistics.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">report.dir</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">report.dir = ${dspace.dir}/reports</code></td></tr><tr><td align="right">Informational Note:</td><td>Directory where the live reports are stored.</td></tr></tbody></table></div></div><div class="section" title="5.2.36. JSP Web Interface (JSPUI) Settings"><div class="titlepage"><div><div><h3 class="title"><a name="N13727"></a>5.2.36. <a name="docbook-configure.html-jspui-settings"></a>JSP Web Interface (JSPUI) Settings</h3></div></div><div></div></div><p>The following section is limited to JSPUI. If the user wishes to use XMLUI settings, please refer to Chapter 7: XMLUI Configuration and Customization.</p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td><code class="literal">webui.licence_bundle.show</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">webui.licence_bundle.show = false</code></td></tr><tr><td align="right">Informational Note:</td><td>Sets whether to display the contents of the license bundle (often just the deposit license in the standard DSpace installation).</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">webui.itemdisplay.default</code></td></tr><tr><td align="right">Example Value:</td><td><span class="emphasis"><em>(See example below)</em></span></td></tr><tr><td colspan="2" align="center">
|
||
<pre class="screen">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</pre>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>
|
||
<p>This is used to customize the DC metadata fields that display in the itemdisplay (the brief display) when pulling up a record. The format is: <code class="literal"><schema>.<element>.<</code><span class="emphasis"><em>optional</em></span>
|
||
<code class="literal">qualifier></code> 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: <table summary="Simple list" border="0" class="simplelist"><tr><td><code class="literal">dc.title</code></td><td> = Dublin Core element 'title' (unqualified)</td></tr><tr><td><code class="literal">dc.title.alternative</code></td><td> = DC element 'title', qualifier 'alternative'</td></tr><tr><td><code class="literal">dc.title.*</code></td><td> = All fields with Dublin Core element 'title' (any or no qualifier)</td></tr><tr><td><code class="literal">dc.identifier.uri(link)</code></td><td> = DC identifier.uri, rendered as a link</td></tr><tr><td><code class="literal">dc.date.issued(date)</code></td><td> = DC date.issued, rendered as a date</td></tr></table></p>
|
||
<p>The <code class="literal">Messages.properties</code> file controls how the fields defined above will display to the user. If the field is missing from the <code class="literal">Messages.properties</code>file, it will not be display. Look in <code class="literal">Messages.properties</code> under <code class="literal">metadata.dc.<field></code>. Example: <pre class="screen">
|
||
metadata.dc.contributor.other = Authors
|
||
metadata.dc.contributor.author = Authors
|
||
metadata.dc.title.* = Title</pre></p>
|
||
<p><span class="bold"><strong>Please note:</strong></span> 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).</p>
|
||
</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<pre class="screen">webui.resolver.1.urn
|
||
webui.resolver.1.baseurl
|
||
webui.resolver.2.urn
|
||
webui.resolver.2.baseurl</pre>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<pre class="screen">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/</pre>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>
|
||
<p>When using "resolver" in <code class="literal">webui.itemdisplay</code> 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.</p>
|
||
<p>For the doi and hdl urn defaults values are provided, respectively http://dc.doi.org and http://hdl.handle.net are used.</p>
|
||
<p>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.</p>
|
||
</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">plugin.single.org.dspace.app.webui.util.StyleSelection</code></td></tr><tr><td align="right">Example Value:</td><td>
|
||
<pre class="screen">plugin.single.org.dspace.app.webui.util.StyleSelection = \
|
||
org.dspace.app.web.util.CollectionStyleSelection
|
||
#org.dspace.app.web.util.MetadataStyleSelection</pre>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>Specify which strategy to use for select the style for an item.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">webui.itemdisplay.thesis.collections</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">webui.itemdisplay.thesis.collections = 123456789/24, 123456789/35</code></td></tr><tr><td align="right">Informational Note:</td><td>Specify which collections use which views by Handle.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<pre class="screen">webui.itemdisplay.metadata-style
|
||
webui.itemdisplay.metadata-syle</pre>
|
||
</td></tr><tr><td align="right">Example Value:</td><td>
|
||
<pre class="screen">webui.itemdisplay.metadata-style = schema.element[.qualifier|.*]
|
||
webui.itemdisplay.metadata-syle = dc.type</pre>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>Specify which metadata to use as name of the style</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">webui.itemlist.columns</code></td></tr><tr><td align="right">Example Value:</td><td>
|
||
<pre class="screen">webui.itemlist.columns = thumbnail, dc.date.issued(date), dc.title, \
|
||
dc.contributor.*</pre>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>
|
||
<p>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)], ... </p>
|
||
<p>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 <code class="literal">webui.browse.index.*</code> configuration options in the next section mentioned. (cf.)</p>
|
||
<p>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.</p>
|
||
</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">webui.itemlist.width</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">webui.itemlist.width = *, 130, 60%, 40%</code></td></tr><tr><td align="right">Informational Note:</td><td>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. <code class="literal">webui.browse.thumbnail.maxwidth, thumbnail.maxwidth</code>)</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td>
|
||
<pre class="screen">
|
||
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</pre>
|
||
</td></tr><tr><td align="right">Example Value:</td><td><code class="literal">
|
||
</code></td></tr><tr><td align="right">Informational Note:</td><td>
|
||
<p>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.</p>
|
||
<p>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).</p>
|
||
<p>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 <code class="literal">itemlist.<field name></code> entry in the messages file.</p>
|
||
</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">webui.itemlist.dateaccessioned.columns</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">webui.itemlist.dateaccessioned.columns = thumbnail, dc.date.accessioned(date), dc.title, dc.contributor.*</code></td></tr><tr><td align="right">Informational Note:</td><td>This would display the date of the accession in place f the issue date whenever the dateaccessioned browsed index or sort option is selected. Just like <code class="literal">webui.itemlist.columns</code>, you will need to include a 'thumbnail' entry to display the thumbnails in the item list.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">webui.itemlist.dateaccessioned.widths</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">webui.itemlist.dateaccessioned.widths = *, 130, 60%, 40%</code></td></tr><tr><td align="right">Informational Note:</td><td>As in the aforementioned property key, you can customize the width of the columns for each configured column list, substituting '<code class="literal">.widths</code>' for '<code class="literal">.columns</code>' in the property name. See the setting for <code class="literal">webui.itemlist.widths</code>for more information.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">webui.itemlist.tablewidth</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">webui.itemlist.tablewidth = 100%</code></td></tr><tr><td align="right">Informational Note:</td><td>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.</td></tr></tbody></table></div></div><div class="section" title="5.2.37. Configuring Multilingual Support"><div class="titlepage"><div><div><h3 class="title"><a name="N1391B"></a>5.2.37. <a name="docbook-configure.html-multilingual"></a>Configuring Multilingual Support</h3></div></div><div></div></div><div class="section" title="5.2.37.1. Setting the Default Language for the Application"><div class="titlepage"><div><div><h4 class="title"><a name="N13922"></a>5.2.37.1. Setting the Default Language for the Application</h4></div></div><div></div></div><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td><code class="literal">default.locale</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">default.locale = en</code></td></tr><tr><td align="right">Informational Note:</td><td>
|
||
<p>The default language for the application is set with this property key. This is a locale according to i18n and might consist of country, country_language or country_language_variant. If no default locale is defined, then the server default locale will be used. </p>
|
||
<p>The format of a local specifier is described here: http://java.sun.com/j2se/1.4.2/docs/api/java/util/Locale.html</p>
|
||
</td></tr></tbody></table></div></div><div class="section" title="5.2.37.2. Supporting More Than One Language"><div class="titlepage"><div><div><h4 class="title"><a name="N13954"></a>5.2.37.2. Supporting More Than One Language</h4></div></div><div></div></div><div class="section" title="Changes in dspace.cfg"><div class="titlepage"><div><div><h5 class="title"><a name="N13958"></a>Changes in dspace.cfg</h5></div></div><div></div></div><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td><code class="literal">webui.supported.locale</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">webui.supported.locale = en, de</code> or perhaps<code class="literal">webui.supported.locals = en, en_ca, de</code></td></tr><tr><td align="right">Informational Note:</td><td>All the locales that are supported by this instance of DSpace. Comma separated list. </td></tr></tbody></table></div><p>The table above, if needed and is used will result in:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>a language switch in the default header</p></li><li class="listitem"><p>the user will be enabled to choose his/her preferred language, this will be part of his/her profile</p></li><li class="listitem"><p>wording of emails <div class="itemizedlist"><ul class="itemizedlist" type="circle"><li class="listitem"><p>mails to registered users, e.g. alerting service will use the preferred language of the user</p></li><li class="listitem"><p>mails to unregistered users, e.g. suggest an item will use the language of the session</p></li></ul></div></p></li><li class="listitem"><p>according to the language selected for the session, using dspace-admin Edit News will edit the news file of the language according to session</p></li></ul></div></div><div class="section" title="Related Files"><div class="titlepage"><div><div><h5 class="title"><a name="N1399E"></a>Related Files</h5></div></div><div></div></div><p> If you set webui.supported.locales make sure that all the related additional files for each language are available. <code class="literal">LOCALE</code> should correspond to the locale set in <code class="literal">webui.supported.locales</code>, e. g.: for webui.supported.locales = en, de, fr, there should be:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><code class="literal">[dspace-source]/dspace/modules/jspui/src/main/resources/Messages.properties</code></p></li><li class="listitem"><p>
|
||
<code class="literal">[dspace-source]/dspace/modules/jspui/src/main/resources/Messages_en.properties</code>
|
||
</p></li><li class="listitem"><p>
|
||
<code class="literal">[dspace-source]/dspace/modules/jspui/src/main/resources/Messages_de.properties</code>
|
||
</p></li><li class="listitem"><p>
|
||
<code class="literal">[dspace-source]/dspace/modules/jspui/src/main/resources/Messages_fr.properties</code>
|
||
</p></li></ul></div><p>Files to be localized:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
|
||
<code class="literal">[dspace-source]/dspace/modules/jspui/src/main/resources/Messages_LOCALE.properties</code>
|
||
</p></li><li class="listitem"><p>
|
||
<code class="literal">[dspace-source]/dspace/config/input-forms_LOCALE.xml</code>
|
||
</p></li><li class="listitem"><p>
|
||
<code class="literal">[dspace-source]/dspace/config/default_LOCALE.license</code>
|
||
<span class="emphasis"><em>should be pure ascii</em></span>
|
||
</p></li><li class="listitem"><p>
|
||
<code class="literal">[dspace-source]/dspace/config/news-top_LOCALE.html</code>
|
||
</p></li><li class="listitem"><p>
|
||
<code class="literal">[dspace-source]/dspace/config/news-side_LOCALE.html</code>
|
||
</p></li><li class="listitem"><p>
|
||
<code class="literal">[dspace-source]/dspace/config/emails/change_password_LOCALE</code>
|
||
</p></li><li class="listitem"><p>
|
||
<code class="literal">[dspace-source]/dspace/config/emails/feedback_LOCALE</code>
|
||
</p></li><li class="listitem"><p>
|
||
<code class="literal">[dspace-source]/dspace/config/emails/internal_error_LOCALE</code>
|
||
</p></li><li class="listitem"><p>
|
||
<code class="literal">[dspace-source]/dspace/config/emails/register_LOCALE</code>
|
||
</p></li><li class="listitem"><p>
|
||
<code class="literal">[dspace-source]/dspace/config/emails/submit_archive_LOCALE</code>
|
||
</p></li><li class="listitem"><p>
|
||
<code class="literal">[dspace-source]/dspace/config/emails/submit_reject_LOCALE</code>
|
||
</p></li><li class="listitem"><p>
|
||
<code class="literal">[dspace-source]/dspace/config/emails/submit_task_LOCALE</code>
|
||
</p></li><li class="listitem"><p>
|
||
<code class="literal">[dspace-source]/dspace/config/emails/subscription_LOCALE</code>
|
||
</p></li><li class="listitem"><p>
|
||
<code class="literal">[dspace-source]/dspace/config/emails/suggest_LOCALE</code>
|
||
</p></li><li class="listitem"><p>
|
||
<code class="literal">[dspace]/webapps/jspui/help/collection-admin_LOCALE.html</code>
|
||
<span class="emphasis"><em>in html keep the jump link as original; must be copied to [dspace-source]/dspace/modules/jspui/src/main/webapp/help</em></span>
|
||
</p></li><li class="listitem"><p>
|
||
<code class="literal">[dspace]/webapps/jspui/help/index_LOCALE.html</code>
|
||
<span class="emphasis"><em>must be copied to [dspace-source]/dspace/modules/jspui/src/main/webapp/help</em></span>
|
||
</p></li><li class="listitem"><p>
|
||
<code class="literal">[dspace]/webapps/jspui/help/site-admin_LOCALE.html</code>
|
||
<span class="emphasis"><em>must be copied to [dspace-source]/dspace/modules/jspui/src/main/webapp/help</em></span>
|
||
</p></li></ul></div></div></div></div><div class="section" title="5.2.38. Item Mapper"><div class="titlepage"><div><div><h3 class="title"><a name="N13A4D"></a>5.2.38. <a name="docbook-configure.html-itemmapper"></a>Item Mapper</h3></div></div><div></div></div><p>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</p><p>Define the index name (from <code class="literal">webui.browse.index</code>) to use for displaying items by author.</p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td><code class="literal">itemmap.author.index</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">itemmap.author.index = author</code></td></tr><tr><td align="right">Informational Note:</td><td>If you change the name of your author browse field, you will also need to update this property key.</td></tr></tbody></table></div></div><div class="section" title="5.2.39. Display of Group Membership"><div class="titlepage"><div><div><h3 class="title"><a name="N13A84"></a>5.2.39. <a name="docbook-configure.html-group"></a>Display of Group Membership</h3></div></div><div></div></div><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td><code class="literal">webui.mydspace.showgroupmembership</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">webui.mydspace.showgroupmembership = false</code></td></tr><tr><td align="right">Informational Note:</td><td>To display group membership set to "true". If omitted, the default behavior is false.</td></tr></tbody></table></div></div><div class="section" title="5.2.40. SFX Server"><div class="titlepage"><div><div><h3 class="title"><a name="N13AB3"></a>5.2.40. <a name="docbook-configure.html-sfx"></a>SFX Server</h3></div></div><div></div></div><p>SFX Server is an OpenURL Resolver.</p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td><code class="literal">sfx.server.url</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">sfx.server.url = http://sfx.myu.edu:8888/sfx?</code></td></tr><tr><td align="right">Informational Note:</td><td>SFX query is appended to this URL. If this property is commented out or omitted, SFX support is switched off.</td></tr></tbody></table></div></div><div class="section" title="5.2.41. Item Recommendation Setting"><div class="titlepage"><div><div><h3 class="title"><a name="N13AE4"></a>5.2.41. <a name="docbook-configure.html-recommend"></a>Item Recommendation Setting</h3></div></div><div></div></div><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td><code class="literal">webui.suggest.enable</code></td></tr><tr><td align="right">Example Value:</td><td>webui.suggest.enable = true</td></tr><tr><td align="right">Informational Note:</td><td>Show a link to the item recommendation page from item display page.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">webui.suggest.loggedinusers.only</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">webui.suggest.loggedinusers.only = true</code></td></tr><tr><td align="right">Informational Note:</td><td>Enable only if the user is logged in. If this key commented out, the default value is false.</td></tr></tbody></table></div></div><div class="section" title="5.2.42. Controlled Vocabulary Settings"><div class="titlepage"><div><div><h3 class="title"><a name="N13B2B"></a>5.2.42. <a name="docbook-configure.html-controlled-vocab"></a>Controlled Vocabulary Settings</h3></div></div><div></div></div><p>DSpace now supports controlled vocabularies to confine the set of keywords that users can use while describing items.</p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td><code class="literal">webui.controlledvocabulary.enable</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">webui.controlledvocabulary.enable = true</code></td></tr><tr><td align="right">Informational Note:</td><td>Enable or disable the controlled vocabulary add-on. WARNING: This feature is not compatible with WAI (it requires javascript to function).</td></tr></tbody></table></div><p>The need for a limited set of keywords is important since it eliminates the ambiguity of a free description system, consequently simplifying the task of finding specific items of information.</p><p>The controlled vocabulary add-on allows the user to choose from a defined set of keywords organized in an tree (taxonomy) and then use these keywords to describe items while they are being submitted.</p><p>We have also developed a small search engine that displays the classification tree (or taxonomy) allowing the user to select the branches that best describe the information that he/she seeks.</p><p>The taxonomies are described in XML following this (very simple) structure:</p><p>
|
||
<pre class="screen">
|
||
<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></pre>
|
||
</p><p>Your are free to use any application you want to create your controlled vocabularies. A simple text editor should be enough for small projects. Bigger projects will require more complex tools. You may use Proteg<65> to create your taxonomies, save them as OWL and then use a XML Stylesheet (XSLT) to transform your documents to the appropriate format. Future enhancements to this add-on should make it compatible with standard schemas such as OWL or RDF.</p><p>In order to make DSpace compatible with WAI 2.0, the add-on is <span class="bold"><strong>turned off</strong></span> by default (the add-on relies strongly on Javascript to function). It can be activated by setting the following property in <code class="literal">dspace.cfg</code>:</p><p>
|
||
<code class="literal">webui.controlledvocabulary.enable = true</code>
|
||
</p><p>New vocabularies should be placed in <code class="literal">[dspace]/config/controlled-vocabularies/</code> and must be according to the structure described. A validation XML Schema can be downloaded <a class="ulink" href="controlledvocabulary.xsd" target="_top">here</a>.</p><p>Vocabularies need to be associated with the correspondent DC metadata fields. Edit the file <code class="literal">[dspace]/config/input-forms.xml</code> and place a <code class="literal">"vocabulary"</code> tag under the <code class="literal">"field"</code> element that you want to control. Set value of the <code class="literal">"vocabulary"</code> 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:</p><p>
|
||
<pre class="screen">
|
||
<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></pre>
|
||
</p><p>The vocabulary element has an optional boolean attribute <span class="bold"><strong>closed</strong></span> that can be used to force input only with the javascript of controlled-vocabulary add-on. The default behavior (i.e. without this attribute) is as set <span class="bold"><strong>closed="false"</strong></span>. This allow the user also to enter the value in free way.</p><p>The following vocabularies are currently available by default:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><span class="bold"><strong>nsi</strong></span> - <span class="emphasis"><em>nsi.xml</em></span> - The Norwegian Science Index</p></li><li class="listitem"><p><span class="bold"><strong>srsc</strong></span> - <span class="emphasis"><em>srsc.xml</em></span> - Swedish Research Subject Categories</p></li></ul></div></div><div class="section" title="5.2.43. XMLUI Specific Configuration"><div class="titlepage"><div><div><h3 class="title"><a name="N13BBD"></a>5.2.43. <a name="docbook-xmlui.html-xmlui"></a>XMLUI Specific Configuration</h3></div></div><div></div></div><p>The DSpace digital repository supports two user interfaces: one based upon JSP technologies and the other based upon the Apache Cocoon framework. This section describes those configurations settings which are specific to the XMLUI interface based upon the Cocoon framework. <span class="emphasis"><em>(Prior to DSpace Release 1.5.1 XMLUI was referred to Manakin. You may still see references to "Manakin")</em></span></p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td><code class="literal">xmlui.supported.locales</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">xmlui.supported.locales = en, de</code></td></tr><tr><td align="right">Informational Note:</td><td>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.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">xmlui.force.ssl</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">xmlui.force.ssl = true</code></td></tr><tr><td align="right">Informational Note:</td><td>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 '<code class="literal">dspace.hostname</code>' parameter is set to the correctly.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">xmlui.user.registration</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">xmlui.user.registration = true</code></td></tr><tr><td align="right">Informational Note:</td><td>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.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">xmlui.user.editmetadata</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">xmlui.user.editmetadata = true</code></td></tr><tr><td align="right">Informational Note:</td><td>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.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">xmlui.user.assumelogon</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">xmlui.user.assumelogon = true</code></td></tr><tr><td align="right">Informational Note:</td><td>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.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">xmlui.user.loginredirect</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">xmlui.user.loginredirect = /profile</code></td></tr><tr><td align="right">Informational Note:</td><td>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 <code class="literal">/profile</code> for the user's profile, or another reasonable choice is <code class="literal">/submissions</code> to see if the user has any tasks awaiting their attention. The default is the repository home page.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">xmlui.theme.allowoverrides</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">xmlui.theme.allowoverrides = false</code></td></tr><tr><td align="right">Informational Note:</td><td>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".</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">xmlui.bundle.upload</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">xmlui.bundle.upload = ORIGINAL, METADATA, THUMBNAIL, LICENSE, CC_LICENSE</code></td></tr><tr><td align="right">Informational Note:</td><td>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.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">xmlui.community-list.render.full</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">xmlui.community-list.render.full = true</code></td></tr><tr><td align="right">Informational Note:</td><td>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.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">xmlui.community-list.cache</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">xmlui.community-list.cache = 12 hours</code></td></tr><tr><td align="right">Informational Note:</td><td>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.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">xmlui.bistream.mods</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">xmlui.bistream.mods = true</code></td></tr><tr><td align="right">Informational Note:</td><td>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.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">xmlui.bitstream.mets</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">xmlui.bitstream.mets = true</code></td></tr><tr><td align="right">Informational Note:</td><td>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 optino is set to "true" and the bitstream is present then it is made available to the theme for display.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">xmlui.google.analytics.key</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">xmlui.google.analytics.key = UA-XXXXXX-X</code></td></tr><tr><td align="right">Informational Note:</td><td>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 <a class="ulink" href="http://analytics.google.com" target="_top">http://analytics.google.com</a>, then create an entry for your repositories website. Google Analytics will give you a snipit 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.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">xmlui.controlpanel.activity.max</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">xmlui.controlpanel.activity.max = 250</code></td></tr><tr><td align="right">Informational Note:</td><td>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.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">xmlui.controlpanel.activity.ipheader</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">xmlui.controlpanel.activity.ipheader = X-Forward-For</code></td></tr><tr><td align="right">Informational Note:</td><td>Determine where the control panel's activity viewer recieves an events IP address from. If your DSpace is in a load balanced enviornment or otherwise behind a context-switch then you will need to set the paramater to the HTTP parameter that records the original IP address.</td></tr></tbody></table></div></div><div class="section" title="5.2.44. OAI-PMH Configuration and Activation"><div class="titlepage"><div><div><h3 class="title"><a name="N13D7A"></a>5.2.44. <a name="docbook-configure-html-oai"></a>OAI-PMH Configuration and Activation</h3></div></div><div></div></div><p>In the following sections, you will learn how to configure OAI-PMH and activate additional OAI-PMH crosswalks. The user is also referred to <a class="link" href="ch12.html#docbook-application.html-oai">9.2OAI-PMH Data Provider</a> for greater depth details of the program.</p><div class="section" title="5.2.44.1. OAI-PMH Configuration"><div class="titlepage"><div><div><h4 class="title"><a name="N13D87"></a>5.2.44.1. <a name="docbook-configure.html-oai-configure"></a>OAI-PMH Configuration</h4></div></div><div></div></div><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td><code class="literal">oai.didl.maxresponse</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">oai.didle.maxresponse = 0</code></td></tr><tr><td align="right">Informational Note:</td><td>
|
||
<p>Max response size for DIDL. This is the maximum size in bytes of the files you wish to enclose Base64 encoded in your responses, remember that the base64 encoding process uses a lot of memory. We recommend at most 200000 for answers of 30 records each on a 1 Gigabyte machine. Ultimately this will change to a streaming model and remove this restriction. Also please remember to allocate plenty of memory, at least 512 MB to your Tomcat.</p>
|
||
<p>Optional: DSpace uses 100 records as the limit for the oai responses. You can alter this by changing <code class="literal">/[dspace-source]/dspace-oai/dspace-oai-api/src/main/java/org/dspace/app/oai/DSpaceOAICatalog.java</code> to codify the declaration: private final int MAX_RECORDS = 100 to private final int MAX_RECORDS = 30</p>
|
||
</td></tr></tbody></table></div></div><div class="section" title="5.2.44.2. Activating Additional OAI-PMH Crosswalks"><div class="titlepage"><div><div><h4 class="title"><a name="N13DC0"></a>5.2.44.2. <a name="docbook-configure.html-oai-cross"></a>Activating Additional OAI-PMH Crosswalks</h4></div></div><div></div></div><p>DSpace comes with an unqualified DC Crosswalk used in the default OAI-PMH data provider. There are also other Crosswalks bundled with the DSpace distribution which can be activated by editing one or more configuration files. How to do this for each available Crosswalk is described below. The DSpace source includes the following crosswalk plugins available for use with OAI-PMH:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><span class="bold"><strong><code class="literal">mets</code></strong></span> - The manifest document from a DSpace METS SIP.</p></li><li class="listitem"><p><span class="bold"><strong><code class="literal">mods</code></strong></span> - MODS metadata, produced by the <a class="link" href="ch05.html#docbook-configure.html-mods">table-driven MODS dissemination crosswalk</a>.</p></li><li class="listitem"><p><span class="bold"><strong><code class="literal">qdc</code></strong></span> - Qualfied Dublin Core, produced by the <a class="link" href="ch05.html#docbook-configure.html-qdc">configurable QDC crosswalk</a>. Note that this QDC does <span class="emphasis"><em>not</em></span> include all of the DSpace "dublin core" metadata fields, since the XML standard for QDC is defined for a different set of elements and qualifiers.</p></li></ul></div><p>OAI-PMH crosswalks based on Crosswalk Plugins are activated as follows:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p> Ensure the crosswalk plugin has a <span class="emphasis"><em>lower-case</em></span> name (possibly in addition to its upper-case name) in the plugin configuration.</p></li><li class="listitem"><p> Add a line to the file <code class="literal">config/templates/oaicat.properties</code> of the form:</p><p>
|
||
<code class="literal">Crosswalks.</code>
|
||
<span class="emphasis"><em>plugin_name</em></span>
|
||
<code class="literal">=org.dspace.app.oai.PluginCrosswalk</code>
|
||
</p><p> substituting the plugin's name, e.g. <code class="literal">"mets"</code> or <code class="literal">"qdc"</code>for <span class="emphasis"><em>plugin_name</em></span>.</p></li><li class="listitem"><p> Run the <code class="literal">bin/install-configs</code> script</p></li><li class="listitem"><p> Restart your servlet container, e.g. Tomcat, for the change to take effect.</p></li></ol></div><div class="section" title="DIDL"><div class="titlepage"><div><div><h5 class="title"><a name="N13E23"></a>DIDL</h5></div></div><div></div></div><p>By activating the DIDL provider, DSpace items are represented as MPEG-21 DIDL objects. These DIDL objects are XML documents that wrap both the Dublin Core metadata that describes the DSpace item and its actual bitstreams. A bitstream is provided inline in the DIDL object in a base64 encoded manner, and/or by means of a pointer to the bitstream. The data provider exposes DIDL objects via the metadataPrefix didl.</p><p>The crosswalk does not deal with special characters and purposely skips dissemination of the <code class="literal">license.txt</code> file awaiting a better understanding on how to map DSpace rights information to MPEG21-DIDL.</p><p>The DIDL Crosswalk can be activated as follows:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p> Uncomment the <code class="literal">oai.didl.maxresponse</code> item in <code class="literal">dspace.cfg</code></p></li><li class="listitem"><p> Uncomment the DIDL Crosswalk entry from the <code class="literal">config/templates/oaicat.properties</code> file</p></li><li class="listitem"><p> Run the <code class="literal">bin/install-configs</code> script</p></li><li class="listitem"><p> Restart Tomcat</p></li><li class="listitem"><p> Verify the Crosswalk is activated by accessing a URL such as <code class="literal">http://mydspace/oai/request?verb=ListRecords&metadataPrefix=didl</code></p></li></ol></div></div></div></div><div class="section" title="5.2.45. Delegation Administration"><div class="titlepage"><div><div><h3 class="title"><a name="N13E55"></a>5.2.45. <a name="docbook-configure.html-authorization"></a>Delegation Administration</h3></div><div><h4 class="subtitle">(Authorization System Configuration)</h4></div></div><div></div></div><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td><code class="literal">core.authorization.community-admin.create-subelement</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">core.authorization.community-admin.create-subelement = true</code></td></tr><tr><td align="right">Informational Note:</td><td>
|
||
<p>It is now possible to delegate the administration of Communities and Collections without the need of the Administrator Superuser. The delegation uses an "inherited" technique. A community admin will be a collection admin for all the collections within the community and a collection admin will be always an item admin for all the item owned by the collection. All the functions that are allowed to user with WRITE permission on an object will always allowed to be the ADMIN of the object (e.g. community/collection/admin will be always allowed to edit metadata of the object). The default will be "on" for all the configurations.</p>
|
||
</td></tr><tr><td align="right">Community Administration: subcommunities and collections</td><td>
|
||
<pre class="screen">core.authorization.community-admin.create-subelement
|
||
core.authorization.community-admin.delete-subelement</pre>
|
||
</td></tr><tr><td align="right">then administers the following keys:</td><td>
|
||
<pre class="screen">core.authorization.community-admin.policies
|
||
core.authorization.community-admin.admin-group</pre>
|
||
</td></tr><tr><td align="right">Collections in the above community:</td><td>
|
||
<pre class="screen">core.authorization.community-admin.collection.policies
|
||
core.authorization.community-admin.collection.template-item
|
||
core.authorization.community-admin.collection.submitters
|
||
core.authorization.community-admin.collection.workflows
|
||
core.authorization.community-admin.collection.admin-group</pre>
|
||
</td></tr><tr><td align="right">Item owned by Collections in the above Community:</td><td><pre class="screen">core.authorization.community-admin.item.delete
|
||
core.authorization.community-admin.item.withdraw
|
||
core.authorization.community-admin.item.reinstatiate
|
||
core.authorization.community-admin.item.policies</pre> And also these bundles: <pre class="screen">core.authorization.community-admin.item.create-bitstream
|
||
core.authorization.community-admin.item.delete-bitstream
|
||
core.authorization.community-admin.item-admin.cc-license</pre></td></tr><tr><td align="right">Collection Administration:</td><td><pre class="screen">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</pre> Item owned by the above Collection <pre class="screen">core.authorization.collection-admin.item.delete
|
||
core.authorization.collection-admin.item.withdraw
|
||
core.authorization.collection-admin.item.reinstatiate
|
||
core.authorization.collection-admin.item.policies</pre> And also these bundles: <pre class="screen">core.authorization.collection-admin.item.create-bitstream
|
||
core.authorization.collection-admin.item.delete-bitstream
|
||
core.authorization.collection-admin.item-admin.cc-license</pre></td></tr><tr><td align="right">Item Administration:</td><td><pre class="screen">core.authorization.item-admin.policies</pre> And also these bundles: <pre class="screen">core.authorization.item-admin.create-bitstream
|
||
core.authorization.item-admin.delete-bitstream
|
||
core.authorization.item-admin.cc-license</pre></td></tr></tbody></table></div><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td valign="top" align="center" rowspan="2" width="25"><img alt="[Note]" src="/jspui/doc/image/note.png"></td><th align="left"></th></tr><tr><td valign="top" align="left"><p>Oracle users should consult <span class="underline"><a class="link" href="ch04.html#docbook-update.html">Chapter 4 Updating a DSpace Installation</a></span> regarding the necessary database changes that need to take place.</p></td></tr></table></div></div><div class="section" title="5.2.46. Batch Metadata Editing"><div class="titlepage"><div><div><h3 class="title"><a name="N13ED8"></a>5.2.46. <a name="docbook-configure.html-batchedits"></a>Batch Metadata Editing</h3></div></div><div></div></div><p>The following configurations allow the adminstrator extract from the DSpace database a set of records for editing by a metadata export. It provides an easier way of editing large collections.</p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td><code class="literal">bulkedit.valueseparator</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal"></code>bulkedit.valueseparator = ||</td></tr><tr><td align="right">Informational note</td><td>The delimiter used to separate values within a single field. For example, this will place the double pipe between multiple authors appearing in one record (Smith, William || Johannsen, Susan). This applies to any metadata field that appears more than once in a record. The user can change this to another character. </td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">bulkedit.fieldseparator</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">bulkedit.fieldseparator = ,</code></td></tr><tr><td align="right">Informational note</td><td>The delimiter used to serarate fields (defaults to a comma for CSV). Again, the user could change it something like '$'. If you wish to use a tab, semicolon, or hash (#) sign as the delimiter, set the value to be <code class="literal">tab</code>, <code class="literal">semicolon</code> or <code class="literal">hash</code>. <pre class="screen">bulkedit.fieldseparator = tab</pre></td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">bulkedit.gui-item-limit</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">bulkedit.gui-item-limit = 20</code></td></tr><tr><td align="right">Informational note</td><td>When using the WEBUI, this sets the limit of the number of items allowed to be edited in one processing. There is no limit when using the CLI.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">bulkedit.ignore-on-export</code></td></tr><tr><td align="right">Example Value:</td><td>
|
||
<pre class="screen">bulkedit.ignore-on-export = dc.date.accessioned, \
|
||
dc.date.available, \
|
||
dc.date.updated, dc.description.provenance</pre>
|
||
</td></tr><tr><td align="right">Informational note</td><td>Metadata elements to exclude when exporting via the user interfaces, or when using the command line version and not using the -a (all) option.</td></tr></tbody></table></div></div><div class="section" title="5.2.47. Hiding Metadata"><div class="titlepage"><div><div><h3 class="title"><a name="N13F6B"></a>5.2.47. <a name="docbook-configure.html-hidemetadata"></a>Hiding Metadata</h3></div></div><div></div></div><p>It is now possible to hide metadata from public consumption that is only avaialable to the Administrator.</p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td><code class="literal">metadata.hide.dc.description.provenance</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">metadata.hide.dc.description.provenance = true</code></td></tr><tr><td align="right">Informational Note:</td><td>
|
||
<p>Hides the metadata in the property key above except to the administrator. </p>
|
||
<p>Fields named here are hidden in the following places UNLESS the logged-in user is an Administrator: <div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>XMLUI metadata XML view, and Item splash pages (long and short views).</p></li><li class="listitem"><p>JSPUI Item splash pages</p></li><li class="listitem"><p>OAI-PMH server, "oai_dc" format. (Note: Other formats are **not** affected.)</p></li></ol></div></p>
|
||
<p>To designate a field as hidden, add a property here in the form:</p>
|
||
<p><code class="literal">metadata.hide.SCHEMA.ELEMENT.QUALIFIER = true</code></p>
|
||
<p>This default configuration hides the dc.description.provenance field, since that usually contains email addresses which ought to be kept private and is mainly of interest to administrators.</p>
|
||
</td></tr></tbody></table></div></div></div><div class="section" title="5.3. Optional or Advanced Configuration Settings"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="N13FBA"></a>5.3. <a name="docbook-configure.html-advanced"></a>Optional or Advanced Configuration Settings</h2></div></div><div></div></div><p>The following section explains how to configure either optional features or advanced features that are not necessary to make DSpace "out-of-the-box"</p><div class="section" title="5.3.1. The Metadata Format and Bitstream Format Registries"><div class="titlepage"><div><div><h3 class="title"><a name="N13FC3"></a>5.3.1. <a name="docbook-configure.html-general-registries"></a>The Metadata Format and Bitstream Format Registries</h3></div></div><div></div></div><p>The <code class="literal">[dspace]/config/registries</code> directory contains three XML files. These are used to load the <span class="emphasis"><em>initial</em></span> contents of the <a class="link" href="apa.html#docbook-appendix.html-dublincoreregistry">Dublin Core Metadata registry</a> and <a class="link" href="apa.html#docbook-appendix.html-bitstreamformatregistry">Bitstream Format registry</a> and SWORD metadata registry. After the initial loading (performed by <code class="literal">ant fresh_install</code> above), the registries reside in the database; the XML files are not updated.</p><p>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.</p><div class="section" title="5.3.1.1. Metadata Format Registries"><div class="titlepage"><div><div><h4 class="title"><a name="N13FE1"></a>5.3.1.1. Metadata Format Registries</h4></div></div><div></div></div><p>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.</p><p>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 <a class="link" href="apa.html#docbook-appendix.html-dublincoreregistry">Appendix: Default Dublin Core Metadata registry</a>.</p><p><span class="bold"><strong>Note</strong></span>: 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.</p><p><span class="bold"><strong>Note</strong></span> also that deleting a metadata element will delete all its corresponding values.</p><p>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:</p><pre class="screen">[dspace]/bin/dsrun org.dspace.administer.MetadataImporter -f [xml file]</pre><p>The XML file should be structured as follows:</p><pre class="screen"><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></pre></div><div class="section" title="5.3.1.2. Bitstream Format Registry"><div class="titlepage"><div><div><h4 class="title"><a name="N14001"></a>5.3.1.2. Bitstream Format Registry</h4></div></div><div></div></div><p>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 <code class="literal">[dspace]/config/registries/bitstream-formats.xml</code> or by the administation 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:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
|
||
<code class="literal">Unknown</code>
|
||
</p></li><li class="listitem"><p>
|
||
<code class="literal">License</code>
|
||
</p></li></ul></div><p> Deleting a format will cause any existing bitstreams of this format to be reverted to the unknown bitstream format. </p></div></div><div class="section" title="5.3.2. XPDF Filter"><div class="titlepage"><div><div><h3 class="title"><a name="N1401C"></a>5.3.2. <a name="docbook-configure.html-xpdf"></a>XPDF Filter </h3></div></div><div></div></div><p>These filters handle PDF resources with more sophisticated tools that can produce thumbnail images of PDF and 3D PDF files, and do much faster (and more complete) text extraction as well.</p><div class="section" title="5.3.2.1. Installation"><div class="titlepage"><div><div><h4 class="title"><a name="N14025"></a>5.3.2.1. Installation</h4></div></div><div></div></div><p>The following instructions are the "quick and dirty" method for installing the XPDF filter. It does not address any issues that may be affectively needed for Maven Modules or and POMs. This method below does not take into account the maintaining the DSpace installation or upgrading.</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Obtain a <span class="emphasis"><em>source</em></span> distribution of DSpace 1.6, configure, and build it.</p></li><li class="listitem"><p>Edit configuration lines in <code class="literal">dspace.cfg</code></p></li><li class="listitem"><p>Add -Pxpdf-mediafilter-support to maven build</p></li><li class="listitem"><p>Build and install.</p></li></ol></div></div><div class="section" title="5.3.2.2. Install XPDF Tools"><div class="titlepage"><div><div><h4 class="title"><a name="N14040"></a>5.3.2.2. Install XPDF Tools</h4></div></div><div></div></div><p>First, download the XPDF suite found at:<a class="ulink" href="http://www.foolabs.com/xpdf/" target="_top">http://www.foolabs.com/xpdf</a> and install it on your server under /usr/local/bin.</p><p>The only tools you <span class="emphasis"><em>really</em></span> need are:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> pdftoppm</p></li><li class="listitem"><p> pdfinfo</p></li><li class="listitem"><p> pdftotext</p></li></ul></div></div><div class="section" title="5.3.2.3. Installation within DSpace"><div class="titlepage"><div><div><h4 class="title"><a name="N14059"></a>5.3.2.3. Installation within DSpace</h4></div></div><div></div></div><p>The user will be using Java™ Advanced Imaging Image I/O Tools. </p><div class="caution" title="Caution" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Caution"><tr><td valign="top" align="center" rowspan="2" width="25"><img alt="[Caution]" src="/jspui/doc/image/caution.png"></td><th align="left"></th></tr><tr><td valign="top" align="left"><p>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."</p></td></tr></table></div><div class="section" title="Fetch and install jai_imageio JAR"><div class="titlepage"><div><div><h5 class="title"><a name="N14062"></a>
|
||
<span class="bold"><strong>Fetch and install jai_imageio JAR</strong></span>
|
||
</h5></div></div><div></div></div><p>Download the jai_imageio library version 1.0_01 or 1.1 found at<a class="ulink" href="https://jai-imageio.dev.java.net/binary-builds.html#Stable_builds" target="_top">https://jai-imageio.dev.java.net/binary-builds.html#Stable_builds</a> .</p><p>Install it in your local Maven repository with the command (assuming the library is installed locally at <span class="bold"><strong>/opt/facade/lib/jai_imageio.jar</strong></span>):</p><pre class="screen">
|
||
mvn install:install-file \
|
||
-Dfile=/opt/facade/lib/jai_imageio.jar \
|
||
-DgroupId=com.sun.media \
|
||
-DartifactId=jai_imageio \
|
||
-Dversion=1.0_01 \
|
||
-Dpackaging=jar \
|
||
-DgeneratePom=true
|
||
</pre></div><div class="section" title="Edit DSpace Configuration"><div class="titlepage"><div><div><h5 class="title"><a name="N14079"></a>Edit DSpace Configuration</h5></div></div><div></div></div><p>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.: (<span class="emphasis"><em>NOTE:</em></span> 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.)</p><pre class="screen">
|
||
# maximum width and height of generated thumbnails
|
||
thumbnail.maxwidth 300
|
||
thumbnail.maxheight 300
|
||
</pre><p>Now, add the absolute paths of the XPDF tools you installed:</p><pre class="screen">
|
||
xpdf.path.pdftotext = /var/local/bin/pdftotext
|
||
xpdf.path.pdftoppm = /var/local/bin/pdftoppm
|
||
xpdf.path.pdfinfo = /var/local/bin/pdfinfo
|
||
</pre><p>Also be sure the mediafilter configuration includes the new filters, e.g: (New sections are in bold)</p><pre class="screen">
|
||
filter.plugins = \
|
||
<span class="bold"><strong>PDF Text Extractor,</strong></span> \
|
||
<span class="bold"><strong>PDF Thumbnail,</strong></span> \
|
||
HTML Text Extractor, \
|
||
Word Text Extractor, \
|
||
JPEG Thumbnail
|
||
plugin.named.org.dspace.app.mediafilter.FormatFilter = \
|
||
<span class="bold"><strong>org.dspace.app.mediafilter.XPDF2Text = PDF Text Extractor, \</strong></span>
|
||
<span class="bold"><strong>org.dspace.app.mediafilter.XPDF2Thumbnail = PDF Thumbnail,</strong></span> \
|
||
org.dspace.app.mediafilter.HTMLFilter = HTML 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
|
||
</pre><p>#Configure each filter's input format(s)</p><pre class="screen">
|
||
<span class="bold"><strong>filter.org.dspace.app.mediafilter.XPDF2Thumbnail.inputFormats = Adobe PDF</strong></span>
|
||
<span class="bold"><strong>filter.org.dspace.app.mediafilter.XPDF2Text.inputFormats = Adobe PDF</strong></span>
|
||
<span class="bold"><strong>Add -Pxpdf-mediafilter-support to maven build</strong></span>
|
||
</pre><p>Edit the POM for the <span class="bold"><strong>dspace-api</strong></span> module. Within the <dependencies> element, add this new element:</p><pre class="screen">
|
||
%mvn -Pxpdf-mediafilter-support package
|
||
</pre></div><div class="section" title="Build and Install"><div class="titlepage"><div><div><h5 class="title"><a name="N140B9"></a>Build and Install</h5></div></div><div></div></div><p>Follow the usual DSpace installation/update procedure (<code class="literal">mvn package</code> and then <code class="literal">ant -Dconfig=</code><span class="emphasis"><em>etc. ...</em></span>)</p><p>These instructions were retrieved from "<a class="ulink" href="http://libstaff.mit.edu/facade/index.php/DSpace_PDF_Media_Filters" target="_top">http://libstaff.mit.edu/facade/index.php/DSpace_PDF_Media_Filters</a>"</p></div></div></div><div class="section" title="5.3.3. Creating a new Media/Format Filter"><div class="titlepage"><div><div><h3 class="title"><a name="N140CF"></a>5.3.3. <a name="docbook-configure.html-mediafilters"></a>Creating a new Media/Format Filter</h3></div></div><div></div></div><div class="section" title="5.3.3.1. Creating a simple Media Filter"><div class="titlepage"><div><div><h4 class="title"><a name="N140D6"></a>5.3.3.1. Creating a simple Media Filter</h4></div></div><div></div></div><p>New Media Filters <span class="bold"><strong>must implement</strong></span> the <code class="literal">org.dspace.app.mediafilter.FormatFilter</code> interface. More information on the methods you need to implement is provided in the <code class="literal">FormatFilter.java</code> source file. For example:</p><pre class="screen">
|
||
|
||
<code class="literal"> public class MySimpleMediaFilter implements
|
||
FormatFilter</code>
|
||
|
||
</pre><p>Alternatively, you could extend the <code class="literal">org.dspace.app.mediafilter.MediaFilter</code> class, which just defaults to performing no pre/post-processing of bitstreams before or after filtering.</p><pre class="screen">
|
||
|
||
<code class="literal"> public class MySimpleMediaFilter extends
|
||
MediaFilter</code>
|
||
|
||
</pre><p>You must give your new filter a "name", by adding it and its name to the <code class="literal">plugin.named.org.dspace.app.mediafilter.FormatFilter</code> field in <code class="literal">dspace.cfg</code>. In addition to naming your filter, make sure to specify its input formats in the <code class="literal">filter.<class path>.inputFormats</code> config item. Note the input formats must match the <code class="literal">short description</code> field in the <a class="link" href="apa.html#docbook-appendix.html-bitstreamformatregistry">Bitstream Format Registry</a> (i.e. <code class="literal">bitstreamformatregistry</code> table).</p><pre class="screen">
|
||
|
||
<code class="literal"> plugin.named.org.dspace.app.mediafilter.FormatFilter = \
|
||
org.dspace.app.mediafilter.MySimpleMediaFilter = My Simple Text
|
||
Filter, \ ...
|
||
filter.org.dspace.app.mediafilter.MySimpleMediaFilter.inputFormats =
|
||
Text</code>
|
||
|
||
</pre><p>
|
||
<span class="emphasis"><em>WARNING: If you neglect to define the <code class="literal">inputFormats</code> for a particular filter, the <code class="literal">MediaFilterManager</code> will never call that filter, since it will never find a bitstream which has a format matching that filter's input format(s).</em></span>
|
||
</p><p>If you have a complex Media Filter class, which actually performs different filtering for different formats (e.g. conversion from Word to PDF <span class="bold"><strong>and</strong></span> conversion from Excel to CSV), you should define this as a <a class="ulink" href="selfnamedfilter" target="_top">Dynamic / Self-Named Format Filter</a>.</p></div><div class="section" title="5.3.3.2. Creating a Dynamic or "Self-Named" Format Filter"><div class="titlepage"><div><div><h4 class="title"><a name="N14134"></a>5.3.3.2. Creating a Dynamic or "Self-Named" Format Filter</h4></div></div><div></div></div><p>If you have a more complex Media/Format Filter, which actually performs <span class="bold"><strong>multiple</strong></span> filtering or conversions for different formats (e.g. conversion from Word to PDF <span class="bold"><strong>and</strong></span> conversion from Excel to CSV), you should have define a class which implements the <code class="literal">FormatFilter</code> interface, while also extending the <a class="ulink" href="business.html#selfnamedplugin" target="_top">
|
||
<code class="literal">SelfNamedPlugin</code>
|
||
</a> class. For example:</p><pre class="screen">
|
||
|
||
<code class="literal"> public class MyComplexMediaFilter extends
|
||
SelfNamedPlugin implements FormatFilter</code>
|
||
|
||
</pre><p>Since <code class="literal">SelfNamedPlugins</code> are self-named (as stated), they must provide the various names the plugin uses by defining a <a class="link" href="ch13.html#docbook-business.html-pluginmethods">getPluginNames()</a> 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).</p><p>Self-Named Media/Format Filters are also configured differently in <code class="literal">dspace.cfg</code>. Below is a general template for a Self Named Filter (defined by an imaginary <code class="literal">MyComplexMediaFilter</code> class, which can perform both Word to PDF and Excel to CSV conversions):</p><pre class="screen">
|
||
|
||
<code class="literal"> #Add to a list of all Self Named filters
|
||
plugin.selfnamed.org.dspace.app.mediafilter.FormatFilter = \
|
||
org.dspace.app.mediafilter.MyComplexMediaFilter #Define input formats
|
||
for each "named" plugin this filter implements
|
||
filter.org.dspace.app.mediafilter.MyComplexMediaFilter.Word2PDF.inputF
|
||
ormats = Microsoft Word
|
||
filter.org.dspace.app.mediafilter.MyComplexMediaFilter.Excel2CSV.input
|
||
Formats = Microsoft Excel</code>
|
||
|
||
</pre><p>As shown above, each Self-Named Filter class must be listed in the <code class="literal">plugin.selfnamed.org.dspace.app.mediafilter.FormatFilter</code> item in <code class="literal">dspace.cfg</code>. In addition, each Self-Named Filter <span class="bold"><strong>must</strong></span> define the input formats for <span class="emphasis"><em>each named plugin</em></span> defined by that filter. In the above example the <code class="literal">MyComplexMediaFilter</code> class is assumed to have defined two named plugins, <code class="literal">Word2PDF</code> and <code class="literal">Excel2CSV</code>. So, these two valid plugin names ("Word2PDF" and "Excel2CSV") <span class="bold"><strong>must</strong></span> be returned by the <code class="literal">getPluginNames()</code> method of the <code class="literal">MyComplexMediaFilter</code> class.</p><p>These named plugins take different input formats as defined above (see the corresponding <code class="literal">inputFormats</code> setting). <span class="emphasis"><em>WARNING: If you neglect to define the <code class="literal">inputFormats</code> for a particular named plugin, the <code class="literal">MediaFilterManager</code> will never call that plugin, since it will never find a bitstream which has a format matching that plugin's input format(s).</em></span></p><p>For a particular Self-Named Filter, you are also welcome to define additional configuration settings in <code class="literal">dspace.cfg</code>. 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:</p><pre class="screen">
|
||
|
||
<code class="literal"> #Define output formats for each named plugin
|
||
filter.org.dspace.app.mediafilter.MyComplexMediaFilter.Word2PDF.output
|
||
Format = Adobe PDF
|
||
filter.org.dspace.app.mediafilter.MyComplexMediaFilter.Excel2CSV.outpu
|
||
tFormat = Comma Separated Values</code>
|
||
|
||
</pre><p>Any custom configuration fields in <code class="literal">dspace.cfg</code> defined by your filter are ignored by the <code class="literal">MediaFilterManager</code>, 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 <code class="literal">MyComplexMediaFilter</code> class to read these custom <code class="literal">outputFormat</code> configurations from <code class="literal">dspace.cfg</code> :</p><pre class="screen">
|
||
|
||
<code class="literal"> //get "outputFormat" configuration from dspace.cfg
|
||
String outputFormat =
|
||
ConfigurationManager.getProperty(MediaFilterManager.FILTER_PREFIX +
|
||
"." + MyComplexMediaFilter.class.getName() + "." +
|
||
this.getPluginInstanceName() + ".outputFormat");</code>
|
||
|
||
</pre></div></div><div class="section" title="5.3.4. Configuration Files for Other Applications"><div class="titlepage"><div><div><h3 class="title"><a name="N141D3"></a>5.3.4. <a name="docbook-configure.html-templates"></a>Configuration Files for Other Applications</h3></div></div><div></div></div><p>To ease the hassle of keeping configuration files for other applications involved in running a DSpace site, for example Apache, in sync, the DSpace system can automatically update them for you when the main DSpace configuration is changed. This feature of the DSpace system is entirely optional, but we found it useful.</p><p>The way this is done is by placing the configuration files for those applications in <code class="literal">[dspace]/config/templates</code>, and inserting special values in the configuration file that will be filled out with appropriate DSpace configuration properties. Then, tell DSpace where to put filled-out, 'live' version of the configuration by adding an appropriate property to <code class="literal">dspace.cfg</code>, and run <code class="literal">[dspace]/bin/install-configs</code>.</p><p>Take the <code class="literal">apache13.conf</code> file as an example. This contains plenty of Apache-specific stuff, but where it uses a value that should be kept in sync across DSpace and associated applications, a 'placeholder' value is written. For example, the host name:</p><pre class="screen">
|
||
ServerName @@dspace.hostname@@
|
||
</pre><p>The text <code class="literal">@@dspace.hostname@@</code> will be filled out with the value of the <code class="literal">dspace.hostname</code> property in <code class="literal">dspace.cfg</code>. Then we decide where we want the 'live' version, that is, the version actually read in by Apache when it starts up, will go.</p><p>Let's say we want the live version to be located at <code class="literal">/opt/apache/conf/dspace-httpd.conf</code>. To do this, we add the following property to <code class="literal">dspace.cfg</code> so DSpace knows where to put it:</p><pre class="screen">
|
||
config.template.apache13.conf = /opt/apache/conf/dspace-httpd.conf
|
||
</pre><p>Now, we run <code class="literal">[dspace]/bin/install-configs</code>. This reads in <code class="literal">[dspace]/config/templates/apache13.conf</code>, and places a copy at <code class="literal">/opt/apache/conf/dspace-httpd.conf</code> with the placeholders filled out.</p><p>So, in <code class="literal">/opt/apache/conf/dspace-httpd.conf</code>, there will be a line like:</p><pre class="screen">
|
||
ServerName dspace.myu.edu
|
||
</pre><p>The advantage of this approach is that if a property like the hostname changes, you can just change it in <code class="literal">dspace.cfg</code> and run <code class="literal">install-configs</code>, and all of your tools' configuration files will be updated.</p><p>However, take care to make all your edits to the versions in <code class="literal">[dspace]/config/templates</code>! It's a wise idea to put a big reminder at the top of each file, since someone might unwittingly edit a 'live' configuration file which would later be overwritten.</p></div><div class="section" title="5.3.5. Configuring Usage Instrumentation Plugins"><div class="titlepage"><div><div><h3 class="title"><a name="N14235"></a>5.3.5.
|
||
<a name="docbook-configure.html-usage-instrumentation"></a>Configuring Usage Instrumentation Plugins</h3></div></div><div></div></div><p>A usage instrumentation plugin is configured as a <a class="link" href="ch13.html#docbook-business.html-plugin">singleton plugin</a> for the abstract class <code class="code">org.dspace.app.statistics.AbstractUsageEvent</code>. </p><div class="section" title="5.3.5.1. The Passive Plugin"><div class="titlepage"><div><div><h4 class="title"><a name="N14246"></a>5.3.5.1.
|
||
<a name="docbook-configure.html-usage-insturmentation-passive"></a> The Passive Plugin </h4></div></div><div></div></div><p> The Passive plugin is provided as the class <code class="code">org.dspace.app.statistics.PassiveUsageEvent</code>. It absorbs events without effect. Use the Passive plugin when you have no use for usage event postings. This is the default if no plugin is configured. </p></div><div class="section" title="5.3.5.2. The Tab File Logger Plugin"><div class="titlepage"><div><div><h4 class="title"><a name="N14253"></a>5.3.5.2.
|
||
<a name="docbook-configure.html-usage-instrumentation-tsv"></a> The Tab File Logger Plugin </h4></div></div><div></div></div><p> The Tab File Logger plugin is provided as the class <code class="code">org.dspace.app.statistics.UsageEventTabFileLogger</code>. It writes event records to a file in tab-separated column format. If left unconfigured, an error will be noted in the DSpace log and no file will be produced. To specify the file path, provide an absolute path as the value for <code class="code">usageEvent.tabFileLogger.file</code> in <code class="code">dspace.cfg</code>. </p></div><div class="section" title="5.3.5.3. The XML Logger Plugin"><div class="titlepage"><div><div><h4 class="title"><a name="N14266"></a>5.3.5.3.
|
||
<a name="docbook-configure.html-usage-instrumentation-xml"></a> The XML Logger Plugin </h4></div></div><div></div></div><p> The XML Logger plugin is provided as the class <code class="code">org.dspace.app.statistics.UsageEventXMLLogger</code>. It writes event records to a file in a simple XML-like format. If left unconfigured, an error will be noted in the DSpace log and no file will be produced. To specify the file path, provide an absolute path as the value for <code class="code">usageEvent.xmlLogger.file</code> in <code class="code">dspace.cfg</code>. </p></div></div><div class="section" title="5.3.6. SWORD Configuration"><div class="titlepage"><div><div><h3 class="title"><a name="N14279"></a>5.3.6. <a name="docbook-configure.html-SWORD"></a>SWORD Configuration</h3></div></div><div></div></div><p>SWORD (Simple Web-service Offering Repository Deposit) is a protocol that allows the remote deposit of items into repositories. DSpace implements the SWORD protocol via the 'sword' web application. The version of SWORD currently supported by DSpace is 1.3. The specification and further information can be downloaded from<a class="ulink" href="http://swordapp.org/" target="_top">http://swordapp.org</a>. </p><p>SWORD is based on the Atom Publish Protocol and allows service documents to be requested which describe the structure of the repository, and packages to be deposited.</p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Properties:</td><td><code class="literal">sword.mets-ingester.package-ingester</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">sword.mets-ingester.package-ingester = METS</code></td></tr><tr><td align="right">Informational Note:</td><td>
|
||
<p>The property key tell the SWORD METS implementation which package ingester to use to install deposited content. This should refer to one of the classes configured for:</p>
|
||
<p>
|
||
<pre class="screen">
|
||
plugin.named.org.dspace.content.packager.PackageIngester</pre>
|
||
</p>
|
||
<p>The value of sword.mets-ingester.package-ingester tells the system which named plugin for this interface should be used to ingest SWORD METS packages.</p>
|
||
</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Properties:</td><td><code class="literal">mets.submission.crosswalk.EPDCX</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">mets.submission.crosswalk.EPDCX = SWORD</code></td></tr><tr><td align="right">Informational Note:</td><td>Define the metadata type EPDCX (EPrints DC XML)to be handled by the SWORD crosswalk configuration.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Properties:</td><td><code class="literal">crosswalk.submission.SWORD.stylesheet</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">crosswalk.submission.SWORD.stylesheet = crosswalks/sword-swap-ingest.xsl</code></td></tr><tr><td align="right">Informational Note:</td><td>Define the stylesheet which will be used by the self-named XSLTIngestionCrosswalk class when asked to load the SWORD configuration (as specified above). This will use the specified stylesheet to crosswalk the incoming SWAP metadata to the DIM format for ingestion.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Properties:</td><td><code class="literal">sword.deposit.url</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">sword.deposit.url = http://www.myu.ac.uk/sword/deposit</code></td></tr><tr><td align="right">Informational Note:</td><td>The base URL of the SWORD deposit. This is the URL from which DSpace will construct the deposit location urls for collections. The default is <code class="literal">{dspace.url}/sword/deposit</code>. In the event that you are not deploying DSpace as the ROOT application in the servlet container, this will generate incorrect URLs, and you should override the functionality by specifying in full as shown in the example value.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Properties:</td><td><code class="literal">sword.servicedocument.url </code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">sword.servicedocument.url = http://www.myu.ac.uk/sword/servicedocument</code></td></tr><tr><td align="right">Informational Note:</td><td>The base URL of the SWORD service document. This is the URL from which DSpace will construct the service document location urls for the site, and for individual collections. The default is <code class="literal">{dspace.url}/sword/servicedocument</code> . In the event that you are not deploying DSpace as the ROOT application in the servlet container, this will generate incorrect URLs, and you should override the functionality by specifying in full as shown in the example value.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Properties:</td><td><code class="literal">sword.media-link.url</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">sword.media-link.url = http://www.myu.ac.uk/sword/media-link</code></td></tr><tr><td align="right">Informational Note:</td><td>The base URL of the SWORD media links. This is the URL which DSpace will use to construct the media link urls for items which are deposited via sword. The default is <code class="literal">{dspace.url}/sword/media-link</code>. In the event that you are not deploying DSpace as the ROOT application in the servlet container, this will generate incorrect URLs, and you should override the functionality by specifying in full as shown in the example value.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Properties:</td><td><code class="literal">sword.generator.url</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">sword.generator.url = http://www.dspace.org/ns/sword/1.3.1</code></td></tr><tr><td align="right">Informational Note:</td><td>The URL which identifies the sword software which provides the sword interface. This is the URL which DSpace will use to fill out the atom:generator element of its atom documents. The default is: <code class="literal">http://www.dspace.org/ns/sword/1.3.1</code>. If you have modified your sword software, you should change this URI to identify your own version. If you are using the standard dspace-sword module you will not, in general, need to change this setting.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Properties:</td><td><code class="literal">sword.updated.field</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">sword.updated.field = dc.date.updated</code></td></tr><tr><td align="right">Informational Note:</td><td>The metadata field in which to store the updated date for items deposited via SWORD.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Properties:</td><td><code class="literal">sword.slug.field</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">sword.slug.field = dc.identifier.slug</code></td></tr><tr><td align="right">Informational Note:</td><td>The metadata field in which to store the value of the slug header if it is supplied.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Properties:</td><td>
|
||
<pre class="screen">
|
||
sword.accept-packaging.METSDSpaceSIP.identifier
|
||
sword.accept-packaging.METSDSpaceSIP.q</pre>
|
||
</td></tr><tr><td align="right">Example Value:</td><td><span class="emphasis"><em>(See example below) </em></span></td></tr><tr><td colspan="2" align="center">
|
||
<pre class="screen">
|
||
sword.accept-packaging.METSDSpaceSIP.identifier = http://purl.org/net/sword-types/METSDSpaceSIP
|
||
sword.accept-packaging.METSDSpaceSIP.q = 1.0</pre>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>The accept packaging properties, along with their associated quality values where appropriate. This is a Global Setting; these will be used on all DSpace collections</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Properties:</td><td>
|
||
<pre class="screen">
|
||
sword.accept-packaging.[handle].METSDSpaceSIP.identifier
|
||
sword.accept-packaging.[handle].METSDSpaceSIP.q</pre>
|
||
</td></tr><tr><td align="right">Example Value:</td><td><span class="emphasis"><em>(See example below)</em></span></td></tr><tr><td colspan="2" align="center">
|
||
<pre class="screen">
|
||
sword.accept-packaging.[handle].METSDSpaceSIP.identifier = http://purl.org/net/sword-types/METSDSpaceSIP
|
||
sword.accept-packaging.[handle].METSDSpaceSIP.q = 1.0</pre>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>Collection Specific settings: these will be used on the collections with the given handles.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Properties:</td><td><code class="literal">sword.expose-items</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">sword.expose-items = false</code></td></tr><tr><td align="right">Informational Note:</td><td>Should the server offer up items in collections as sword deposit targets. This will be effected by placing a URI in the collection description which will list all the allowed items for the depositing user in that collection on request. <span class="bold"><strong>NOTE:</strong></span> this will require an implementation of deposit onto items, which will not be forthcoming for a short while.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Properties:</td><td><code class="literal">sword.expose-communities</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">sword.expose-communities = false</code></td></tr><tr><td align="right">Informational Note:</td><td>Should the server offer as the default the list of all Communities to a Service Document request. If false, the server will offer the list of all collections, which is the default and recommended behavior at this stage. <span class="bold"><strong>NOTE:</strong></span> a service document for Communities will not offer any viable deposit targets, and the client will need to request the list of Collections in the target before deposit can continue.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Properties:</td><td><code class="literal">sword.max-upload-size</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">sword.max-upload-size = 0</code></td></tr><tr><td align="right">Informational Note:</td><td>The maximum upload size of a package through the sword interface, in bytes. This will be the combined size of all the files, the metadata and any manifest data. It is NOT the same as the maximum size set for an individual file upload through the user interface. If not set, or set to 0, the sword service will default to no limit.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Properties:</td><td><code class="literal">sword.keep-original-package</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">sword.keep-original-package = true</code></td></tr><tr><td align="right">Informational Note:</td><td>Whether or not DSpace should store a copy of the original sword deposit package. <span class="bold"><strong>NOTE:</strong></span> this will cause the deposit process to run slightly slower, and will accelerate the rate at which the repository consumes disk space. BUT, it will also mean that the deposited packages are recoverable in their original form. It is strongly recommended, therefore, to leave this option turned on. When set to "true", this requires that the configuration option <code class="literal">upload.temp.dir</code> above is set to a valid location.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Properties:</td><td><code class="literal">sword.bundle.name</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">sword.bundle.name = SWORD</code></td></tr><tr><td align="right">Informational Note:</td><td>The bundle name that SWORD should store incoming packages under if sword.keep-original-package is set to true. The default is "SWORD" if not value is set</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Properties:</td><td><code class="literal">sword.identify-version</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">sword.identify-version = true</code></td></tr><tr><td align="right">Informational Note:</td><td>Should the server identify the sword version in a deposti response. It is recommended to leave this unchanged.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Properties:</td><td><code class="literal">sword.on-behalf-of.enable</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">sword.on-behalf-of.enable = true</code></td></tr><tr><td align="right">Informational Note:</td><td>Should mediated deposit via sowrd be supported. If enabled, this will allow users to deposit content packages on behalf of other users.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Properties:</td><td>
|
||
<pre class="screen">
|
||
plugin.named.org.dspace.sword.SWORDingester</pre>
|
||
</td></tr><tr><td align="right">Example Value:</td><td><span class="emphasis"><em>(See example below)</em></span></td></tr><tr><td colspan="2" align="center">
|
||
<pre class="screen">
|
||
plugin.named.org.dspace.sword.SWORDIngester = \
|
||
org.dspace.sword.SWORDMETSIngester = http://purl.org/net/sword-types/METSDSpaceSIP \
|
||
org.dspace.sword.SimpleFileIngester = SimpleFileIngester</pre>
|
||
</td></tr><tr><td align="right">Informational Note:</td><td>Configure the plugins to process incoming packages. The form of this configuration is as per the Plugin Manager's Named Plugin documentation: <code class="literal">plugin.named.[interface] = [implementation] = [package format identifier] \</code> . Package ingesters should implement the SWORDIngester interface, and will be loaded when a package of the format specified above in: <code class="literal">sword.accept-packaging.[package format].identifier = [package format identifier]</code> is received. In the event that this is a simple file deposit, with no package format, then the class named by "SimpleFileIngester" will be loaded and executed where appropriate. This case will only occur when a single file is being deposited into an existing DSpace Item.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Properties:</td><td><code class="literal">sword.accepts</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">sword.accepts = application/zip, foo/bar</code></td></tr><tr><td align="right">Informational Note:</td><td>A comma separated list of MIME types that SWORD will accept.</td></tr></tbody></table></div></div><div class="section" title="5.3.7. OpenSearch Support"><div class="titlepage"><div><div><h3 class="title"><a name="N14501"></a>5.3.7. <a name="docbook-configure.html-opensearch"></a>OpenSearch Support</h3></div></div><div></div></div><p>OpenSearch is a small set of conventions and documents for describing and using "serach enginges", meaning any service that returns a set of results for a query. See extensive description in the <a class="link" href="ch13.html#docbook-business.html"><span class="underline">Business Layer section</span></a> of the documentation.</p><p>Please note that for result data formatting, OpenSearch uses Syndication Feed Settings (RSS). So, even if Syndication Feeds <span class="bold"><strong>are not</strong></span> enable, they <span class="bold"><strong>must</strong></span> be configured to enable OpenSearch. OpenSearch uses all the configuration properties for DSpace RSS to determine the mapping of metadata fields to feed fields. Note that a new field for authors has been added (used in Atom format only).</p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td><code class="literal">websvc.opensearch.enable</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">websvc.opensearch.enable = false</code></td></tr><tr><td align="right">Informational Note:</td><td>Whether or not OpenSearch is enabled. By default, the feature is disabled. Change the property key to 'ture' to enable.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">websvc.opensearch.uicontext</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">websvc.opensearch.uicontext = simple-search</code></td></tr><tr><td align="right">Informational Note:</td><td><code class="literal">Context for HTML request URLs. Change only for non-standard servlet mapping.</code></td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">websvc.opensearch.svccontext</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">websvc.opensearch.svccontext = open-search/</code></td></tr><tr><td align="right">Informational Note:</td><td>Context for RSS/Atom request URLs. Change only for non-standard servlet mapping.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">websvc.opensearch.autolink</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">websvc.opensearch.autolink = true</code></td></tr><tr><td align="right">Informational Note:</td><td><code class="literal">Present autodiscovery link in every page head.</code></td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">websvc.opensearch.validity</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">websvc.opensearch.validity = 48</code></td></tr><tr><td align="right">Informational Note:</td><td>Number of hours to retain results before recalculating. This applies to the Manakin interface only.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">websvc.opensearch.shortname</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">websvc.opensearch.shortname = DSpace</code></td></tr><tr><td align="right">Informational Note:</td><td>A short name used in browsers for search service. It should be sixteen (16) or fewer characters.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">websvc.opensearch.longname</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">websvc.opensearch.longname = ${dspace.name}</code></td></tr><tr><td align="right">Informational Note:</td><td>A longer name up to 48 characters.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">websvc.opensearch.description</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">websvc.opensearch.description = ${dspace.name} DSpace repository</code></td></tr><tr><td align="right">Informational Note:</td><td><code class="literal">Brief service description</code></td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">websvc.opensearch.faviconurl</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">websvc.opensearch.faviconurl = http://www.dspace.org/images/favicon.ico</code></td></tr><tr><td align="right">Informational Note:</td><td>Location of favicon for service, if any. They must by 16 x 16 pixels. You can profide your own local favicon instead of the default.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">websvc.opensearch.samplequery</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">websvc.opensearch.samplequery = photosynthesis</code></td></tr><tr><td align="right">Informational Note:</td><td>Sample query. This should return results. You can replace the sample query with search terms that should actually yield results in your repository.</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">websvc.opensearch.tags</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">websc.opensearch.tags = IR DSpace</code></td></tr><tr><td align="right">Informational Note:</td><td>Tags used to describe search service. </td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">websvc.opensearch.formats</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">websvc.opensearch.formats = html,atom,rss</code></td></tr><tr><td align="right">Informational Note:</td><td>Result formats offered. Use one or more comma-separated from the list: html, atom, rss. Please note that html is requred for autodiscovery in browsers to function, and must be the first in the list if present.</td></tr></tbody></table></div></div><div class="section" title="5.3.8. Embargo"><div class="titlepage"><div><div><h3 class="title"><a name="N14671"></a>5.3.8. <a name="docbook-configure.htmtl-embargo"></a>Embargo</h3></div></div><div></div></div><p>It is possible now to configure a DSpace instance to have an "Embargo" feature uses for thesis and dissertations.</p><div class="informaltable"><table border="1" width="100%"><colgroup><col><col></colgroup><tbody><tr><td align="right">Property:</td><td><code class="literal">embargo.field.terms</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">embargo.field.terms = SCHEMA.ELEMENT.QUALIFIER</code></td></tr><tr><td align="right">Informational Note:</td><td>DC metadata field to hold the user-supplied embargo terms</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">embargo.field.lift</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">embargo.field.lift = SCHEMA.ELEMENT.QUALIFIER</code></td></tr><tr><td align="right">Informational Note:</td><td>DC metadata field to hold computed "lift date" of embargo</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">embargo.terms.open</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">embargo.terms.open = forever</code></td></tr><tr><td align="right">Informational Note:</td><td>The string in terms field to indicate indefinite embargo</td></tr><tr height="5mm"><td colspan="2" align="center"> </td></tr><tr><td align="right">Property:</td><td><code class="literal">plugin.single.org.dspace.embargo.EmbargoSetter</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">plugin.single.org.dspace.embargo.EmbargoSetter = CLASSNAME</code></td></tr><tr><td align="right">Informational Note:</td><td>Implementation of embargo setter plugin</td></tr><tr><td align="right">Property:</td><td><code class="literal">plugin.single.org.dspace.embargo.EmbargoLifter</code></td></tr><tr><td align="right">Example Value:</td><td><code class="literal">plugin.single.org.dspace.embargo.EmbargoLifter = org.dspace.embargo.DefaultEm</code></td></tr><tr><td align="right">Informational Note:</td><td>Implementation of embargo lifter plugin</td></tr></tbody></table></div><p>Remember that you need to replace <code class="literal">SCHEMA.ELEMENT.QUALIFIER</code> with a real metadata field. Additionally, you need to replace the <code class="literal">CLASSNAME</code> with a properly impleented plugin.</p></div></div></div><HR><p class="copyright">Copyright <20> 2002-2009
|
||
<a class="ulink" href="http://www.dspace.org/" target="_top">The DSpace Foundation</a>
|
||
</p><div class="legalnotice" title="Legal Notice"><a name="N1001D"></a><p>
|
||
<a class="ulink" href="http://creativecommons.org/licenses/by/3.0/us/" target="_top">
|
||
<span class="inlinemediaobject"><img src="http://i.creativecommons.org/l/by/3.0/us/88x31.png"></span>
|
||
Licensed under a Creative Commons Attribution 3.0 United States License
|
||
</a>
|
||
</p></div><div class="navfooter"><hr><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="ch04.html">Prev</a> </td><td align="center" width="20%"> </td><td align="right" width="40%"> <a accesskey="n" href="ch06.html">Next</a></td></tr><tr><td valign="top" align="left" width="40%">Chapter 4. DSpace System Documentation: Upgrading a DSpace Installation </td><td align="center" width="20%"><a accesskey="h" href="index.html">Home</a></td><td valign="top" align="right" width="40%"> Chapter 6. DSpace System Documentation: JPSUI Configuration and Customization</td></tr></table></div></body></html> |