diff --git a/dspace/CHANGES b/dspace/CHANGES index dce475e6eb..35320ea651 100644 --- a/dspace/CHANGES +++ b/dspace/CHANGES @@ -58,6 +58,7 @@ - [DS-333] Adjust SWORD ingest crosswalk to store bibliographic citation (Larry Stone) + - [DS-297] Move PostgreSQL-specific SQL into etc/postgres for greater clarity - [DS-338] Disable cache advice (Expires header) on Bitstream download that requires authorization (XMLUI) - [DS-285] Respond to If-Modified-Since request header in XMLUI, also provide Last-Modified response header for Bitstreams - [DS-288] Configurable option to hide metadata fields in public UIs and OAI-PMH diff --git a/dspace/docs/docbook/directories.xml b/dspace/docs/docbook/directories.xml index 36d34e571c..de2da1ea7c 100644 --- a/dspace/docs/docbook/directories.xml +++ b/dspace/docs/docbook/directories.xml @@ -92,8 +92,12 @@ docs/ - DSpace system documentation. The technical documentation for functionality, installation, configuration, etc. - etc/ - Miscelleanous configuration need to install DSpace that isn't really to do with system configuration - e.g. the PostgreSQL database schema, and a couple of configuration files that are used during the build process but not by the live system. Also contains the deployment descriptors (web.xml files) for the Web UI and OAI-PMH support .war files. + etc/ - +This directory contains administrative files needed for the install process and by developers, mostly database initialization and upgrade scripts. Any .xml files in etc/ are common to all supported database systems. + + postgres/ - Versions of the database schema and updater SQL scripts for PostgreSQL. + oracle/ - Versions of the database schema and updater SQL scripts for Oracle. @@ -417,5 +421,3 @@ Manakin)"/>Contents of XMLUI Web Application (aka Manakin) - - diff --git a/dspace/docs/docbook/install.xml b/dspace/docs/docbook/install.xml index 75e7b7b11b..d58f7cb59c 100644 --- a/dspace/docs/docbook/install.xml +++ b/dspace/docs/docbook/install.xml @@ -93,13 +93,13 @@ URIEncoding="UTF-8" <!-- Define a non-SSL HTTP/1.1 Connector on port 8080 --> <Connector port="8080" maxThreads="150" minSpareThreads="25" - maxSpareThreads="75" + maxSpareThreads="75" enableLookups="false" redirectPort="8443" - acceptCount="100" + acceptCount="100" connectionTimeout="20000" - disableUploadTimeout="true" + disableUploadTimeout="true" URIEncoding="UTF-8" - /> + /> You may change the port from 8080 by editing it in the file above, and by setting the variable CONNECTOR_PORT in tomcat.conf @@ -309,14 +309,6 @@ db.url = jdbc:oracle:thin:@//host:port/dspace db.driver = oracle.jdbc.OracleDriver - - Go to [dspace-source]/dspace/etc/oracle and copy the contents to their parent directory, overwriting the versions in the parent: - -cd [dspace-source]/dspace/etc/oracle -cp * .. - - You now have Oracle-specific .sql files in your etc directory, and your dspace.cfg is modified to point to your Oracle database. - @@ -363,7 +355,7 @@ mvn -Ddb.name=oracle package As the dspace UNIX user, initialize the DSpace database and install DSpace to [dspace]: cd - [dspace-source]/dspace/target/dspace-[version].dir/ + [dspace-source]/dspace/target/dspace-[version].dir/ ant fresh_install Note: to see a complete list of build targets, run @@ -377,20 +369,20 @@ ant help <!-- DEFINE A CONTEXT PATH FOR DSpace JSP User Interface --> <Context path="/jspui" docBase="[dspace]\webapps\jspui" debug="0" - reloadable="true" cachingAllowed="false" - allowLinking="true"/> + reloadable="true" cachingAllowed="false" + allowLinking="true"/> <!-- DEFINE A CONTEXT PATH FOR DSpace OAI User Interface --> <Context path="/oai" docBase="[dspace]\webapps\oai" debug="0" - reloadable="true" cachingAllowed="false" - allowLinking="true"/> + reloadable="true" cachingAllowed="false" + allowLinking="true"/> Alternatively, you could copy only the DSpace Web application(s) you wish to use from [dspace]/webapps to the appropriate directory in your Tomcat/Jetty/Resin installation. For example: cp -r [dspace]/webapps/jspui - [tomcat]/webapps + [tomcat]/webapps cp -r [dspace]/webapps/oai - [tomcat]/webapps + [tomcat]/webapps @@ -438,7 +430,7 @@ crontab -e 0 3 * * * [dspace]/bin/checker -lp # Mail the results to the sysadmin at 04:00 0 4 * * * [dspace]/bin/dsrun org.dspace.checker.DailyReportEmailer - -c + -c Naturally you should change the frequencies to suit your environment. PostgreSQL also benefits from regular 'vacuuming', which optimizes the indices and clears out any deleted data. Become the postgres UNIX user, run crontab -e and add (for example): @@ -481,24 +473,24 @@ crontab -e Create a Java keystore for your server with the password changeit, and install your server certificate under the alias "tomcat". This assumes the certificate was put in the file server.pem: $JAVA_HOME/bin/keytool -import -noprompt -v -storepass changeit - -keystore $CATALINA_BASE/conf/keystore -alias tomcat -file - myserver.pem + -keystore $CATALINA_BASE/conf/keystore -alias tomcat -file + myserver.pem Install the CA (Certifying Authority) certificate for the CA that granted your server cert, if necessary. This assumes the server CA certificate is in ca.pem: $JAVA_HOME/bin/keytool -import -noprompt -storepass changeit - -trustcacerts -keystore $CATALINA_BASE/conf/keystore -alias ServerCA - -file ca.pem + -trustcacerts -keystore $CATALINA_BASE/conf/keystore -alias ServerCA + -file ca.pem Optional -- ONLY if you need to accept client certificates for the X.509 certificate stackable authentication module See the configuration section for instructions on enabling the X.509 authentication method. Load the keystore with the CA (certifying authority) certificates for the authorities of any clients whose certificates you wish to accept. For example, assuming the client CA certificate is in client1.pem: $JAVA_HOME/bin/keytool -import -noprompt -storepass changeit - -trustcacerts -keystore $CATALINA_BASE/conf/keystore -alias client1 - -file client1.pem + -trustcacerts -keystore $CATALINA_BASE/conf/keystore -alias client1 + -file client1.pem @@ -506,25 +498,25 @@ crontab -e <Connector port="8443" maxThreads="150" minSpareThreads="25" - maxSpareThreads="75" + maxSpareThreads="75" enableLookups="false" - disableUploadTimeout="true" + disableUploadTimeout="true" acceptCount="100" debug="0" scheme="https" secure="true" sslProtocol="TLS" - keystoreFile="conf/keystore" keystorePass="changeit" clientAuth="true" - - ONLY if using client X.509 certs for authentication! - truststoreFile="conf/keystore" trustedstorePass="changeit" - /> + keystoreFile="conf/keystore" keystorePass="changeit" clientAuth="true" + - ONLY if using client X.509 certs for authentication! + truststoreFile="conf/keystore" trustedstorePass="changeit" + /> Also, check that the default Connector is set up to redirect "secure" requests to the same port as your SSL connector, e.g.: <Connector port="8080" maxThreads="150" minSpareThreads="25" - maxSpareThreads="75" + maxSpareThreads="75" enableLookups="false" - redirectPort="8443" + redirectPort="8443" acceptCount="100" debug="0" - /> + /> @@ -543,11 +535,11 @@ crontab -e Create a new key pair under the alias name "tomcat". When generating your key, give the Distinguished Name fields the appropriate values for your server and institution. CN should be the fully-qualified domain name of your server host. Here is an example: $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA -keysize - 1024 \ + 1024 \ -keystore $CATALINA_BASE/conf/keystore -storepass changeit - -validity 365 \ + -validity 365 \ -dname 'CN=dspace.myuni.edu, OU=MIT Libraries, O=Massachusetts - Institute of Technology, L=Cambridge, S=MA, C=US' + Institute of Technology, L=Cambridge, S=MA, C=US' @@ -555,7 +547,7 @@ $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA -keysize Then, create a CSR (Certificate Signing Request) and send it to your Certifying Authority. They will send you back a signed Server Certificate. This example command creates a CSR in the file tomcat.csr $JAVA_HOME/bin/keytool -keystore $CATALINA_BASE/conf/keystore - -storepass changeit \ + -storepass changeit \ -certreq -alias tomcat -v -file tomcat.csr @@ -563,7 +555,7 @@ $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA -keysize Before importing the signed certificate, you must have the CA's certificate in your keystore as a trusted certificate. Get their certificate, and import it with a command like this (for the example mitCA.pem): $JAVA_HOME/bin/keytool -keystore $CATALINA_BASE/conf/keystore - -storepass changeit \ + -storepass changeit \ -import -alias mitCA -trustcacerts -file mitCA.pem @@ -571,7 +563,7 @@ $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA -keysize Finally, when you get the signed certificate from your CA, import it into the keystore with a command like the following example: (cert is in the file signed-cert.pem) $JAVA_HOME/bin/keytool -keystore $CATALINA_BASE/conf/keystore - -storepass changeit \ + -storepass changeit \ -import -alias tomcat -trustcacerts -file signed-cert.pem Since you now have a signed server certificate in your keystore, you can, obviously, skip the next steps of installing a signed server certificate and the server CA's certificate. @@ -582,7 +574,7 @@ $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA -keysize Create a Java keystore for your server with the password changeit, and install your server certificate under the alias "tomcat". This assumes the certificate was put in the file server.pem: $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA -keystore - $CATALINA_BASE/conf/keystore -storepass changeit + $CATALINA_BASE/conf/keystore -storepass changeit When answering the questions to identify the certificate, be sure to respond to "First and last name" with the fully-qualified domain name of your server (e.g. test-dspace.myuni.edu). The other questions are not important. @@ -590,8 +582,8 @@ $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA -keysize Optional -- ONLY if you need to accept client certificates for the X.509 certificate stackable authentication module See the configuration section for instructions on enabling the X.509 authentication method. Load the keystore with the CA (certifying authority) certificates for the authorities of any clients whose certificates you wish to accept. For example, assuming the client CA certificate is in client1.pem: $JAVA_HOME/bin/keytool -import -noprompt -storepass changeit - -trustcacerts -keystore $CATALINA_BASE/conf/keystore -alias client1 - -file client1.pem + -trustcacerts -keystore $CATALINA_BASE/conf/keystore -alias client1 + -file client1.pem @@ -610,11 +602,11 @@ $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA -keysize add these configuration options to the appropriate httpd configuration file, e.g. ssl.conf, and be sure they are in force for the virtual host and namespace locations dedicated to DSpace: ## SSLVerifyClient can be "optional" or - "require" + "require" SSLVerifyClient optional SSLVerifyDepth 10 SSLCACertificateFile - path-to-your-client-CA-certificate + path-to-your-client-CA-certificate SSLOptions StdEnvVars ExportCertData @@ -648,7 +640,7 @@ java -cp /hs/bin/handle.jar net.handle.server.SimpleSetup /hs/svr_1 as directed in the Handle Server Administration Guide, you should run [dspace]/bin/dsrun net.handle.server.SimpleSetup - [dspace]/handle-server + [dspace]/handle-server ensuring that [dspace]/handle-server matches whatever you have in dspace.cfg for the handle.dir property. @@ -657,7 +649,7 @@ java -cp /hs/bin/handle.jar net.handle.server.SimpleSetup /hs/svr_1 "storage_type" = "CUSTOM" "storage_class" = - "org.dspace.handle.HandlePlugin" + "org.dspace.handle.HandlePlugin" This tells the Handle server to get information about individual Handles from the DSpace code. @@ -815,13 +807,13 @@ ant help <!-- DEFINE A CONTEXT PATH FOR DSpace JSP User Interface --> <Context path="/jspui" docBase="[dspace]\webapps\jspui" debug="0" - reloadable="true" cachingAllowed="false" - allowLinking="true"/> + reloadable="true" cachingAllowed="false" + allowLinking="true"/> <!-- DEFINE A CONTEXT PATH FOR DSpace OAI User Interface --> <Context path="/oai" docBase="[dspace]\webapps\oai" debug="0" - reloadable="true" cachingAllowed="false" - allowLinking="true"/> + reloadable="true" cachingAllowed="false" + allowLinking="true"/> @@ -854,15 +846,15 @@ ant help There are two common errors that occur. If your error looks like this-- -[java] 2004-03-25 15:17:07,730 INFO - org.dspace.storage.rdbms.InitializeDatabase @ Initializing Database +[java] 2004-03-25 15:17:07,730 INFO + org.dspace.storage.rdbms.InitializeDatabase @ Initializing Database [java] 2004-03-25 15:17:08,816 FATAL - org.dspace.storage.rdbms.InitializeDatabase @ Caught exception: + org.dspace.storage.rdbms.InitializeDatabase @ Caught exception: [java] org.postgresql.util.PSQLException: Connection refused. Check - that the hostname and port are correct and that the postmaster is - accepting TCP/IP connections. + that the hostname and port are correct and that the postmaster is + accepting TCP/IP connections. [java] at - org.postgresql.jdbc1.AbstractJdbc1Connection.openConnection(AbstractJd + org.postgresql.jdbc1.AbstractJdbc1Connection.openConnection(AbstractJd bc1Connection.java:204) [java] at org.postgresql.Driver.connect(Driver.java:139) @@ -874,17 +866,17 @@ psql -U dspace -W -h localhost Enter the dspacedatabase password, and you should be dropped into the psql tool with a dspace=> prompt. Another common error looks like this: -[java] 2004-03-25 16:37:16,757 INFO - org.dspace.storage.rdbms.InitializeDatabase @ Initializing Database -[java] 2004-03-25 16:37:17,139 WARN - org.dspace.storage.rdbms.DatabaseManager @ Exception initializing DB - pool +[java] 2004-03-25 16:37:16,757 INFO + org.dspace.storage.rdbms.InitializeDatabase @ Initializing Database +[java] 2004-03-25 16:37:17,139 WARN + org.dspace.storage.rdbms.DatabaseManager @ Exception initializing DB + pool [java] java.lang.ClassNotFoundException: org.postgresql.Driver [java] at java.net.URLClassLoader$1.run(URLClassLoader.java:198) [java] at java.security.AccessController.doPrivileged(Native - Method) + Method) [java] at - java.net.URLClassLoader.findClass(URLClassLoader.java:186) + java.net.URLClassLoader.findClass(URLClassLoader.java:186) This means that the PostgreSQL JDBC driver is not present in [dspace-source]/lib. See above. @@ -909,12 +901,12 @@ ps -ef | grep postgres You might see some processes like this dspace 16325 1997 0 Feb 14 ? 0:00 postgres: dspace dspace - 127.0.0.1 idle in transaction + 127.0.0.1 idle in transaction This is normal--DSpace maintains a 'pool' of open database connections, which are re-used to avoid the overhead of constantly opening and closing connections. If they're 'idle' it's OK; they're waiting to be used. However sometimes, if something went wrong, they might be stuck in the middle of a query, which seems to prevent other connections from operating, e.g.: dspace 16325 1997 0 Feb 14 ? 0:00 postgres: dspace dspace - 127.0.0.1 SELECT + 127.0.0.1 SELECT This means the connection is in the middle of a SELECT operation, and if you're not using DSpace right that instant, it's probably a 'zombie' connection. If this is the case, try killing the process, and stopping and restarting Tomcat. diff --git a/dspace/docs/docbook/storage.xml b/dspace/docs/docbook/storage.xml index 393fc72fb8..291b9a5e42 100644 --- a/dspace/docs/docbook/storage.xml +++ b/dspace/docs/docbook/storage.xml @@ -13,8 +13,18 @@ Most of the functionality that DSpace uses can be offered by any standard SQL database that supports transactions. Presently, the browse indices use some features specific to PostgreSQL and Oracle, so some modification to the code would be needed before DSpace would function fully with an alternative database back-end. The org.dspace.storage.rdbms package provides access to an SQL database in a somewhat simpler form than using JDBC directly. The main class is DatabaseManager, which executes SQL queries and returns TableRow or TableRowIterator objects. The InitializeDatabase class is used to load SQL into the database via JDBC, for example to set up the schema. All calls to the Database Manager require a DSpace Context object. Example use of the database manager API is given in the org.dspace.storage.rdbms package Javadoc. - The database schema used by DSpace (for PostgreSQL) is stored in [dspace-source]/dspace/etc/database_schema.sql in the source distribution. It is stored in the form of SQL that can be fed straight into the DBMS to construct the database. The schema SQL file also directly creates two e-person groups in the database that are required for the system to function properly. - Also in [dspace-source]/dspace/etc are various SQL files called database_schema_1x_1y. These contain the necessary SQL commands to update a live DSpace database from version 1.x to 1.y. Note that this might not be the only part of an upgrade process: see Updating a DSpace Installation for details. + + The database schema used by DSpace is created by SQL statements stored in a directory specific to each supported RDBMS platform: + + + PostgreSQL schemas are in [dspace-source]/dspace/etc/postgres/ + + + Oracle schemas are in [dspace-source]/dspace/etc/oracle/ + + + The SQL (DDL) statements to create the tables for the current release, starting with an empty database, aer in database_schema.sql. The schema SQL file also creates the two required e-person groups (Anonymous and Administrator) that are required for the system to function properly. + Also in [dspace-source]/dspace/etc/[database] are various SQL files called database_schema_1x_1y. These contain the necessary SQL commands to update a live DSpace database from version 1.x to 1.y. Note that this might not be the only part of an upgrade process: see Updating a DSpace Installation for details. The DSpace database code uses an SQL function getnextid to assign primary keys to newly created rows. This SQL function must be safe to use if several JVMs are accessing the database at once; for example, the Web UI might be creating new rows in the database at the same time as the batch item importer. The PostgreSQL-specific implementation of the method uses SEQUENCES for each table in order to create new IDs. If an alternative database backend were to be used, the implementation of getnextid could be updated to operate with that specific DBMS. The etc directory in the source distribution contains two further SQL files. clean-database.sql contains the SQL necessary to completely clean out the database, so use with caution! The Ant target clean_database can be used to execute this. update-sequences.sql contains SQL to reset the primary key generation sequences to appropriate values. You'd need to do this if, for example, you're restoring a backup database dump which creates rows with specific primary keys already defined. In such a case, the sequences would allocate primary keys that were already used. Versions of the *.sql* files for Oracle are stored in [dspace-source]/dspace/etc/oracle. These need to be copied over their PostgreSQL counterparts in [dspace-source]/dspace/etc prior to installation. @@ -24,7 +34,7 @@ # clean up the database nightly 40 2 * * * /usr/local/pgsql/bin/vacuumdb --analyze dspace > /dev/null - 2>&1 + 2>&1 The DSpace database can be backed up and restored using usual methods, for example with pg_dump and psql. However when restoring a database, you will need to perform these additional steps: @@ -40,7 +50,7 @@ DELETE FROM epersongroup; After restoring a backup, you will need to reset the primary key generation sequences so that they do not produce already-used primary keys. Do this by executing the SQL in [dspace-source]/dspace/etc/update-sequences.sql, for example with: psql -U dspace -f - [dspace-source]/dspace/etc/update-sequences.sql + [dspace-source]/dspace/etc/update-sequences.sql @@ -251,5 +261,3 @@ srb.parentdir.1 = mysrbdspaceassetstore - - diff --git a/dspace/docs/docbook/update.xml b/dspace/docs/docbook/update.xml index ece4a63530..f418f6db66 100644 --- a/dspace/docs/docbook/update.xml +++ b/dspace/docs/docbook/update.xml @@ -4,7 +4,7 @@ This section describes how to update a DSpace installation from one version to the next. Details of the differences between the functionality of each version are given in the Version History section.
<anchor id="docbook-update.html-15_152" xreflabel="Updating From 1.5 or 1.5.1 to 1.5.2"/>Updating From 1.5 or 1.5.1 to 1.5.2 - This section needs review + This section needs review The changes in DSpace 1.5.2 do not include any database schema upgrades, and the upgrade should be straightforward. In the notes below [dspace] refers to the install directory for your existing DSpace installation, and [dspace-source] to the source directory for DSpace 1.5. Whenever you see these path references, be sure to replace them with the actual path names on your local system. @@ -55,12 +55,12 @@ ant -Dconfig=[dspace]/config/dspace.cfg update cd [dspace-source]/dspace/target/dspace-1.5-build.dir/ ant -Dconfig=[dspace]/config/dspace.cfg update_configs - You must then verify that you've merged and differenced in the [dspace]/config/**/*.new files into your configuration. - Some of the new parameters you should look out for in dspace.cfg include: + You must then verify that you've merged and differenced in the [dspace]/config/**/*.new files into your configuration. + Some of the new parameters you should look out for in dspace.cfg include: - New option to restrict the expose of private items. The following needs to be added to dspace.cfg: - + New option to restrict the expose of private items. The following needs to be added to dspace.cfg: + #### Restricted item visibility settings ### # By default RSS feeds, OAI-PMH and subscription emails will include ALL items # regardless of permissions set on them. @@ -71,10 +71,10 @@ ant -Dconfig=[dspace]/config/dspace.cfg update_configs #harvest.includerestricted.oai = true #harvest.includerestricted.subscription = true - + Special groups for LDAP and password authentication. - + ##### Password users group ##### # If required, a group name can be given here, and all users who log in @@ -90,10 +90,10 @@ ant -Dconfig=[dspace]/config/dspace.cfg update_configs # if you want a group made up of all internal authenticated users. #ldap.login.specialgroup = group-name - + new option for case insensitivity in browse tables. - + # By default, the display of metadata in the browse indexes is case sensitive # So, you will get separate entries for the terms # @@ -112,7 +112,7 @@ ant -Dconfig=[dspace]/config/dspace.cfg update_configs # # webui.browse.metadata.case-insensitive = true - + New usage event handler for collecting statistics: @@ -121,7 +121,7 @@ ant -Dconfig=[dspace]/config/dspace.cfg update_configs # plugin.single.org.dspace.app.statistics.AbstractUsageEvent = \ # org.dspace.app.statistics.PassiveUsageEvent - + The location where sitemaps are stored is now configurable. @@ -129,13 +129,13 @@ ant -Dconfig=[dspace]/config/dspace.cfg update_configs # the directory where the generated sitemaps are stored sitemap.dir = ${dspace.dir}/sitemaps - + MARC 21 ordering should now be used as default. Unless you have it set already, or you have it set to a different value, the following should be set: plugin.named.org.dspace.sort.OrderFormatDelegate = org.dspace.sort.OrderFormatTitleMarc21=title - + Hierarchical LDAP support. @@ -159,7 +159,7 @@ plugin.named.org.dspace.sort.OrderFormatDelegate = org.dspace.sort.OrderFormatTi # one level scope : 1 # subtree scope : 2 #ldap.search_scope = 2 - + # 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. @@ -173,7 +173,7 @@ plugin.named.org.dspace.sort.OrderFormatDelegate = org.dspace.sort.OrderFormatTi # to be 'user@example.com #ldap.netid_email_domain = @example.com - + Shibboleth authentication support. @@ -181,7 +181,7 @@ plugin.named.org.dspace.sort.OrderFormatDelegate = org.dspace.sort.OrderFormatTi # Check https://mams.melcoe.mq.edu.au/zope/mams/pubs/Installation/dspace15/view # for installation detail. # -# org.dspace.authenticate.ShibAuthentication +# org.dspace.authenticate.ShibAuthentication # # DSpace requires email as user's credential. There are 2 ways of providing # email to DSpace: @@ -198,7 +198,7 @@ authentication.shib.email-header = MAIL # optional. Specify the header that carries user's first name # this is going to be used for creation of new-user -authentication.shib.firstname-header = SHIB-EP-GIVENNAME +authentication.shib.firstname-header = SHIB-EP-GIVENNAME # optional. Specify the header that carries user's last name # this is used for creation of new user @@ -242,7 +242,7 @@ authentication.shib.autoregister = true authentication.shib.role.Senior\ Researcher = Researcher, Staff authentication.shib.role.Librarian = Administrator - + DOI and handle identifiers can now be rendered in the JSPUI. @@ -267,7 +267,7 @@ In configuration sections such as webui.itemdisplay.default, values can be changed from (e.g.) metadata.dc.identifier.doi to metadata.doi.dc.identifier.doi - + The whole of the SWORD configuration has changed. The SWORD section must be removed and replaced with @@ -470,7 +470,7 @@ plugin.named.org.dspace.sword.SWORDIngester = \ http://purl.org/net/sword-types/METSDSpaceSIP \ org.dspace.sword.SimpleFileIngester = SimpleFileIngester - + @@ -532,7 +532,7 @@ plugin.sequence.org.dspace.authenticate.AuthenticationMethod = \ # Specify which strategy use for select the style for an item plugin.single.org.dspace.app.webui.util.StyleSelection = \ - org.dspace.app.webui.util.CollectionStyleSelection + org.dspace.app.webui.util.CollectionStyleSelection ###### Browse Configuration ###### @@ -551,7 +551,7 @@ webui.browse.index.4 = subject:metadata:dc.subject.*:text 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 + dateaccessioned:dc.date.accessioned:date # Recent submissions recent.submissions.count = 5 @@ -575,20 +575,20 @@ webui.content_disposition_threshold = 8388608 #### Event System Configuration #### # # default synchronous dispatcher (same behavior as traditional - DSpace) + DSpace) event.dispatcher.default.class = org.dspace.event.BasicDispatcher event.dispatcher.default.consumers = search, browse, eperson # consumer to maintain the search index event.consumer.search.class = org.dspace.search.SearchConsumer event.consumer.search.filters = - Item|Collection|Community|Bundle+Create|Modify|Modify_Metadata|Delete: + Item|Collection|Community|Bundle+Create|Modify|Modify_Metadata|Delete: Bundle+Add|Remove # consumer to maintain the browse index event.consumer.browse.class = org.dspace.browse.BrowseConsumer event.consumer.browse.filters = - Item+Create|Modify|Modify_Metadata:Collection+Add|Remove + Item+Create|Modify|Modify_Metadata:Collection+Add|Remove # consumer related to EPerson changes event.consumer.eperson.class = org.dspace.eperson.EPersonConsumer @@ -599,46 +599,46 @@ event.consumer.eperson.filters = EPerson+Create Add xmlui.xconf Manakin configuration The new Manakin user interface available with DSpace 1.5 requires an extra configuration file that you will need to manually copy it over to your configuration directory. cp [dspace-source]/dspace/config/xmlui.xconf - [dspace]/config/xmlui.xconf + [dspace]/config/xmlui.xconf Add item-submission.xml and item-submission.dtd configurable submission configuration The new configurable submission system that enables an administrator to re-arrange, or add/remove item submission steps requires this configuration file. You need to manually copy it over to your configuration directory. cp [dspace-source]/dspace/config/item-submission.xml - [dspace]/config/item-submission.xml + [dspace]/config/item-submission.xml cp [dspace-source]/dspace/config/item-submission.dtd - [dspace]/config/item-submission.dtd + [dspace]/config/item-submission.dtd Add new input-forms.xml and input-forms.dtd configurable submission configuration The input-forms.xml now has an included dtd reference to support validation. You'll need to merge in your changes to both file/and or copy them into place. cp [dspace-source]/dspace/config/input-forms.xml - [dspace]/config/input-forms.xml + [dspace]/config/input-forms.xml cp [dspace-source]/dspace/config/input-forms.dtd - [dspace]/config/inputforms.dtd + [dspace]/config/inputforms.dtd Add sword-swap-ingest.xsl and xhtml-head-item.properties crosswalk files New crosswalk files are required to support SWORD and the inclusion of metadata into the head of items. cp [dspace-source]/dspace/config/crosswalks/sword-swap-ingest.xsl - [dspace]/config/crosswalks/sword-swap-ingest.xsl + [dspace]/config/crosswalks/sword-swap-ingest.xsl cp - [dspace-source]/dspace/config/crosswalks/xhtml-head-item.properties - [dspace]/config/crosswalks/xhtml-head-item.properties + [dspace-source]/dspace/config/crosswalks/xhtml-head-item.properties + [dspace]/config/crosswalks/xhtml-head-item.properties Add registration_notify email files A new configuration option (registration.notify = you@your-email.com) can be set to send a notification email whenever a new user registers to use your DSpace. The email template for this email needs to be copied. cp [dspace-source]/dspace/config/emails/registration_notify - [dspace]/config/emails/registration_notify + [dspace]/config/emails/registration_notify @@ -648,7 +648,7 @@ cp [dspace-source]/dspace/config/emails/registration_notify For PostgreSQL - psql -U [dspace-user] -f [dspace-source]/dspace/etc/database_schema_14-15.sql [database-name] + psql -U [dspace-user] -f [dspace-source]/dspace/etc/postgres/database_schema_14-15.sql [database-name] @@ -671,10 +671,10 @@ ant -Dconfig=[dspace]/config/dspace.cfg update Update the Metadata Registry New Metadata Registry updates are required to support SWORD. cp [dspace-source]/dspace/config/registries/sword-metadata.xml - [dspace]/config/registries/sword-metadata.xml; + [dspace]/config/registries/sword-metadata.xml; [dspace]/bin/dsrun org.dspace.administer.MetadataImporter -f - [dspace]/config/registries/sword-metadata.xml + [dspace]/config/registries/sword-metadata.xml @@ -750,19 +750,19 @@ cp postgresql.jar [dspace-1.4.x-source]/lib #### Multi-file HTML document/site settings ##### # # When serving up composite HTML items, how deep can the request be - for us to + for us to # serve up a file with the same name? # # e.g. if we receive a request for "foo/bar/index.html" # and we have a bitstream called just "index.html" # we will serve up that bitstream for the request if - webui.html.max-depth-guess + webui.html.max-depth-guess # is 2 or greater. If webui.html.max-depth-guess is 1 or less, we - would not + would not # serve that bitstream, as the depth of the file is greater. # # If webui.html.max-depth-guess is zero, the request filename and - path must + path must # always exactly match the bitstream name. Default value is 3. # webui.html.max-depth-guess = 3 @@ -782,7 +782,7 @@ ant -Dconfig= [dspace]/config/dspace.cfg update Copy the .war Web application files in [dspace-1.4.x-source]/build to the webapps sub-directory of your servlet container (e.g. Tomcat). e.g.: cp [dspace-1.4.x-source]/build/*.war - [tomcat]/webapps + [tomcat]/webapps If you're using Tomcat, you need to delete the directories corresponding to the old .war files. For example, if dspace.war is installed in [tomcat]/webapps/dspace.war, you should delete the [tomcat]/webapps/dspace directory. Otherwise, Tomcat will continue to use the old code in that directory. @@ -854,22 +854,22 @@ plugin.sequence.org.dspace.eperson.AuthenticationMethod = \ plugin.sequence.org.dspace.app.mediafilter.MediaFilter = \ org.dspace.app.mediafilter.PDFFilter, - org.dspace.app.mediafilter.HTMLFilter, \ + org.dspace.app.mediafilter.HTMLFilter, \ org.dspace.app.mediafilter.WordFilter, - org.dspace.app.mediafilter.JPEGFilter + org.dspace.app.mediafilter.JPEGFilter # to enable branded preview: remove last line above, and uncomment 2 - lines below + lines below # org.dspace.app.mediafilter.WordFilter, - org.dspace.app.mediafilter.JPEGFilter, \ + org.dspace.app.mediafilter.JPEGFilter, \ # org.dspace.app.mediafilter.BrandedPreviewJPEGFilter filter.org.dspace.app.mediafilter.PDFFilter.inputFormats = Adobe PDF filter.org.dspace.app.mediafilter.HTMLFilter.inputFormats = HTML, - Text + Text filter.org.dspace.app.mediafilter.WordFilter.inputFormats = Microsoft - Word + Word filter.org.dspace.app.mediafilter.JPEGFilter.inputFormats = GIF, - JPEG, image/png + JPEG, image/png filter.org.dspace.app.mediafilter.BrandedPreviewJPEGFilter.inputFormat s = GIF, JPEG, image/png @@ -897,7 +897,7 @@ webui.preview.brand.fontpoint = 12 plugin.single.org.dspace.checker.BitstreamDispatcher=org.dspace.checke r.SimpleDispatcher # Standard interface implementations. You shouldn't need to tinker - with these. + with these. plugin.single.org.dspace.checker.ReporterDAO=org.dspace.checker.Report erDAOImpl @@ -966,7 +966,7 @@ ant -Dconfig= [dspace]/config/dspace.cfg update Copy the .war Web application files in [dspace-1.4-source]/build to the webapps sub-directory of your servlet container (e.g. Tomcat). e.g.: cp [dspace-1.4-source]/build/*.war - [tomcat]/webapps + [tomcat]/webapps If you're using Tomcat, you need to delete the directories corresponding to the old .war files. For example, if dspace.war is installed in [tomcat]/webapps/dspace.war, you should delete the [tomcat]/webapps/dspace directory. Otherwise, Tomcat will continue to use the old code in that directory. @@ -1006,7 +1006,7 @@ ant -Dconfig= [dspace]/config/dspace.cfg update Copy the .war Web application files in [dspace-1.3.2-source]/build to the webapps sub-directory of your servlet container (e.g. Tomcat). e.g.: cp [dspace-1.3.2-source]/build/*.war - [tomcat]/webapps + [tomcat]/webapps If you're using Tomcat, you need to delete the directories corresponding to the old .war files. For example, if dspace.war is installed in [tomcat]/webapps/dspace.war, you should delete the [tomcat]/webapps/dspace directory. Otherwise, Tomcat will continue to use the old code in that directory. @@ -1052,9 +1052,9 @@ cp [dspace-1.3.2-source]/build/*.war ###### Statistical Report Configuration Settings ###### # should the stats be publicly available? should be set to false if - you only + you only # want administrators to access the stats, or you do not intend to - generate + generate # any report.public = false @@ -1154,7 +1154,7 @@ ant -Dconfig= [dspace]/config/dspace.cfg update Copy the .war Web application files in [dspace-1.2.2-source]/build to the webapps sub-directory of your servlet container (e.g. Tomcat). e.g.: cp [dspace-1.2.2-source]/build/*.war - [tomcat]/webapps + [tomcat]/webapps If you're using Tomcat, you need to delete the directories corresponding to the old .war files. For example, if dspace.war is installed in [tomcat]/webapps/dspace.war, you should delete the [tomcat]/webapps/dspace directory. Otherwise, Tomcat will continue to use the old code in that directory. @@ -1191,13 +1191,13 @@ cp postgresql.jar [dspace-1.2.1-source]/lib You need to add a few new parameters to your [dspace]/dspace.cfg for browse/search and item thumbnails display, and for configurable DC metadata fields to be indexed. # whether to display thumbnails on browse and search results pages - (1.2+) + (1.2+) webui.browse.thumbnail.show = false # max dimensions of the browse/search thumbs. Must be <= - thumbnail.maxwidth + thumbnail.maxwidth # and thumbnail.maxheight. Only need to be set if required to be - smaller than + smaller than # dimension of thumbnails generated by mediafilter (1.2+) #webui.browse.thumbnail.maxheight = 80 #webui.browse.thumbnail.maxwidth = 80 @@ -1206,9 +1206,9 @@ webui.browse.thumbnail.show = false webui.item.thumbnail.show = true # where should clicking on a thumbnail from browse/search take the - user + user # Only values currently supported are "item" and - "bitstream" + "bitstream" #webui.browse.thumbnail.linkbehaviour = item @@ -1244,7 +1244,7 @@ ant -Dconfig= [dspace]/config/dspace.cfg update Copy the .war Web application files in [dspace-1.2.1-source]/build to the webapps sub-directory of your servlet container (e.g. Tomcat). e.g.: cp [dspace-1.2.1-source]/build/*.war - [tomcat]/webapps + [tomcat]/webapps If you're using Tomcat, you need to delete the directories corresponding to the old .war files. For example, if dspace.war is installed in [tomcat]/webapps/dspace.war, you should delete the [tomcat]/webapps/dspace directory. Otherwise, Tomcat will continue to use the old code in that directory. @@ -1270,7 +1270,7 @@ cp [dspace-1.2.1-source]/build/*.war cd [dspace]/lib cp activation.jar servlet.jar mail.jar - [dspace-1.2-source]/lib + [dspace-1.2-source]/lib @@ -1305,7 +1305,7 @@ thumbnail.maxheight 80 Also, to avoid future confusion, you might like to remove the following property, which is no longer required: config.template.oai-web.xml = - [dspace]/oai/WEB-INF/web.xml + [dspace]/oai/WEB-INF/web.xml @@ -1314,9 +1314,9 @@ config.template.oai-web.xml = Also, if you're using the same version of Tomcat as before, you need to remove the lines from Tomcat's conf/server.xml file that enable symbolic links for DSpace. These are the <Context> elements you added to get DSpace 1.1.1 working, looking something like this: <Context path="/dspace" docBase="dspace" debug="0" reloadable="true" - crossContext="true"> + crossContext="true"> <Resources className="org.apache.naming.resources.FileDirContext" - allowLinking="true" /> + allowLinking="true" /> </Context> Be sure to remove the <Context> elements for both the Web UI and the OAI Web applications. @@ -1331,9 +1331,9 @@ ant -Dconfig= [dspace]/config/dspace.cfg update Copy the new config files in config to your installation, e.g.: cp [dspace-1.2-source]/config/news-* - [dspace-1.2-source]/config/mediafilter.cfg - [dspace-1.2-source]/config/dc2mods.cfg - [dspace]/config + [dspace-1.2-source]/config/mediafilter.cfg + [dspace-1.2-source]/config/dc2mods.cfg + [dspace]/config @@ -1341,14 +1341,14 @@ cp [dspace-1.2-source]/config/news-* To apply the changes, go to the source directory, and run: psql -f etc/database_schema_11-12.sql [DSpace database name] -h - localhost + localhost A tool supplied with the DSpace 1.2 codebase will then update the actual data in the relational database. Run it using: [dspace]/bin/dsrun - org.dspace.administer.Upgrade11To12 + org.dspace.administer.Upgrade11To12 @@ -1362,7 +1362,7 @@ psql -f etc/database_schema_11-12.sql [DSpace database name] -h Copy the .war Web application files in [dspace-1.2-source]/build to the webapps sub-directory of your servlet container (e.g. Tomcat). e.g.: cp [dspace-1.2-source]/build/*.war - [tomcat]/webapps + [tomcat]/webapps @@ -1472,14 +1472,14 @@ CREATE INDEX last_modified_idx ON Item(last_modified); CREATE INDEX eperson_email_idx ON EPerson(email); CREATE INDEX item2bundle_item_idx on Item2Bundle(item_id); REATE INDEX bundle2bitstream_bundle_idx ON - Bundle2Bitstream(bundle_id); + Bundle2Bitstream(bundle_id); CREATE INDEX dcvalue_item_idx on DCValue(item_id); CREATE INDEX collection2item_collection_idx ON - Collection2Item(collection_id); + Collection2Item(collection_id); CREATE INDEX resourcepolicy_type_id_idx ON ResourcePolicy - (resource_type_id,resource_id); + (resource_type_id,resource_id); CREATE INDEX epersongroup2eperson_group_idx on - EPersonGroup2EPerson(eperson_group_id); + EPersonGroup2EPerson(eperson_group_id); CREATE INDEX handle_handle_idx ON Handle(handle); CREATE INDEX sort_author_idx on ItemsByAuthor(sort_author); CREATE INDEX sort_title_idx on ItemsByTitle(sort_title); @@ -1489,23 +1489,23 @@ DROP VIEW CollectionItemsByDateAccessioned; DROP VIEW CommunityItemsByDateAccessioned; CREATE VIEW CommunityItemsByDateAccession as SELECT - Community2Item.community_id, ItemsByDateAccessioned.* FROM - ItemsByDateAccessioned, Community2Item WHERE - ItemsByDateAccessioned.item_id = Community2Item.item_id; + Community2Item.community_id, ItemsByDateAccessioned.* FROM + ItemsByDateAccessioned, Community2Item WHERE + ItemsByDateAccessioned.item_id = Community2Item.item_id; CREATE VIEW CollectionItemsByDateAccession AS SELECT - collection2item.collection_id, - itemsbydateaccessioned.items_by_date_accessioned_id, - itemsbydateaccessioned.item_id, - itemsbydateaccessioned.date_accessioned FROM itemsbydateaccessioned, - collection2item WHERE (itemsbydateaccessioned.item_id = - collection2item.item_id); + collection2item.collection_id, + itemsbydateaccessioned.items_by_date_accessioned_id, + itemsbydateaccessioned.item_id, + itemsbydateaccessioned.date_accessioned FROM itemsbydateaccessioned, + collection2item WHERE (itemsbydateaccessioned.item_id = + collection2item.item_id); Fix your JSPs for Unicode. If you've modified the site 'skin' (jsp/local/layout/header-default.jsp) you'll need to add the Unicode header, i.e.: <meta http-equiv="Content-Type" content="text/html; - charset=UTF-8"> + charset=UTF-8"> to the <HEAD> element. If you have any locally-edited JSPs, you need to add this page directive to the top of all of them: @@ -1518,7 +1518,7 @@ CREATE VIEW CollectionItemsByDateAccession AS SELECT cd [dspace]/lib cp *.policy activation.jar servlet.jar mail.jar - [dspace-1.1-source]/lib + [dspace-1.1-source]/lib @@ -1534,14 +1534,14 @@ ant -Dconfig= [dspace]/config/dspace.cfg update Update the database tables using the upgrader tool, which sets up the new >last_modified date in the item table: Run [dspace]/bin/dsrun - org.dspace.administer.Upgrade101To11 + org.dspace.administer.Upgrade101To11 Run the collection default authorisation policy tool: [dspace]/bin/dsrun - org.dspace.authorize.FixDefaultPolicies + org.dspace.authorize.FixDefaultPolicies @@ -1570,5 +1570,3 @@ JAVA_OPTS="-Xmx512M -Xms64M -Dfile.encoding=UTF-8"
- - diff --git a/dspace/etc/database_schema.sql b/dspace/etc/postgres/database_schema.sql similarity index 100% rename from dspace/etc/database_schema.sql rename to dspace/etc/postgres/database_schema.sql diff --git a/dspace/etc/database_schema_11-12.sql b/dspace/etc/postgres/database_schema_11-12.sql similarity index 100% rename from dspace/etc/database_schema_11-12.sql rename to dspace/etc/postgres/database_schema_11-12.sql diff --git a/dspace/etc/database_schema_12-13.sql b/dspace/etc/postgres/database_schema_12-13.sql similarity index 100% rename from dspace/etc/database_schema_12-13.sql rename to dspace/etc/postgres/database_schema_12-13.sql diff --git a/dspace/etc/database_schema_13-14.sql b/dspace/etc/postgres/database_schema_13-14.sql similarity index 100% rename from dspace/etc/database_schema_13-14.sql rename to dspace/etc/postgres/database_schema_13-14.sql diff --git a/dspace/etc/database_schema_14-15.sql b/dspace/etc/postgres/database_schema_14-15.sql similarity index 100% rename from dspace/etc/database_schema_14-15.sql rename to dspace/etc/postgres/database_schema_14-15.sql diff --git a/dspace/etc/database_schema_15-16.sql b/dspace/etc/postgres/database_schema_15-16.sql similarity index 100% rename from dspace/etc/database_schema_15-16.sql rename to dspace/etc/postgres/database_schema_15-16.sql diff --git a/dspace/etc/update-sequences.sql b/dspace/etc/postgres/update-sequences.sql similarity index 100% rename from dspace/etc/update-sequences.sql rename to dspace/etc/postgres/update-sequences.sql